Browse Source

Merge pull request #695 in VISUAL/fineui from ~GUY/fineui:master to master

* commit '8c339515753b2dde168aac92e6223bd31f597110':
  update
  update
es6
guy 6 years ago
parent
commit
d7f75724ec
  1. 86
      dist/bundle.js
  2. 52
      dist/bundle.min.js
  3. 40
      dist/core.js
  4. 584
      dist/fineui.js
  5. 50
      dist/fineui.min.js
  6. 86
      dist/fineui_without_jquery_polyfill.js
  7. 40
      dist/utils.js
  8. 4
      dist/utils.min.js
  9. 40
      src/core/ob.js

86
dist/bundle.js vendored

@ -11478,21 +11478,46 @@ if (!_global.BI) {
} }
}); });
})();/** })();!(function () {
function extend () {
var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy;
for (; i < length; i++) {
// Only deal with non-null/undefined values
if ((options = arguments[i]) != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target === copy) {
continue;
}
if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
/**
* 客户端观察者主要处理事件的添加删除执行等 * 客户端观察者主要处理事件的添加删除执行等
* @class BI.OB * @class BI.OB
* @abstract * @abstract
*/ */
BI.OB = function (config) { BI.OB = function (config) {
var props = this.props; var props = this.props;
if (BI.isFunction(this.props)) { if (BI.isFunction(this.props)) {
props = this.props(config); props = this.props(config);
} }
this.options = (_global.$ || _global._).extend(this._defaultConfig(config), props, config); this.options = extend(this._defaultConfig(config), props, config);
this._init(); this._init();
this._initRef(); this._initRef();
}; };
_.extend(BI.OB.prototype, { _.extend(BI.OB.prototype, {
props: {}, props: {},
init: null, init: null,
destroyed: null, destroyed: null,
@ -11525,7 +11550,7 @@ _.extend(BI.OB.prototype, {
}, },
//释放当前对象 //释放当前对象
_purgeRef: function(){ _purgeRef: function () {
if (this.options.ref) { if (this.options.ref) {
this.options.ref.call(null); this.options.ref.call(null);
} }
@ -11629,7 +11654,8 @@ _.extend(BI.OB.prototype, {
this._purgeRef(); this._purgeRef();
this.purgeListeners(); this.purgeListeners();
} }
});/** });
})();/**
* Widget超类 * Widget超类
* @class BI.Widget * @class BI.Widget
* @extends BI.OB * @extends BI.OB
@ -43842,18 +43868,30 @@ BI.Editor = BI.inherit(BI.Single, {
} }
e.stopEvent(); e.stopEvent();
}); });
this.watermark.element.css({ }
position: "absolute",
left: "3px", var _items = [];
right: "3px", if (this.watermark) {
top: "0px", _items.push({
bottom: "0px" el: this.watermark,
left: 3,
right: 3,
top: 0,
bottom: 0
}); });
} }
_items.push({
el: this.editor,
left: 0,
right: 0,
top: 0,
bottom: 0
});
var items = [{ var items = [{
el: { el: {
type: "bi.default", type: "bi.absolute",
items: this.watermark ? [this.editor, this.watermark] : [this.editor] items: _items
}, },
left: o.hgap + o.lgap, left: o.hgap + o.lgap,
right: o.hgap + o.rgap, right: o.hgap + o.rgap,
@ -43888,8 +43926,11 @@ BI.Editor = BI.inherit(BI.Single, {
this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) { this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) {
self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments); self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments);
}); });
this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (v) { this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (e) {
self.watermark && self.watermark.invisible(); // tab键就不要隐藏了
if (e.keyCode !== BI.KeyCode.TAB && self.watermark) {
self.watermark.invisible();
}
}); });
this.editor.on(BI.Input.EVENT_VALID, function () { this.editor.on(BI.Input.EVENT_VALID, function () {
@ -45129,6 +45170,10 @@ BI.Input = BI.inherit(BI.Single, {
"leading": true, "leading": true,
"trailing": false "trailing": false
}); });
this._focusDebounce = BI.debounce(BI.bind(this._focus, this), BI.EVENT_RESPONSE_TIME, {
"leading": true,
"trailing": false
});
this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, { this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, {
"leading": true, "leading": true,
"trailing": false "trailing": false
@ -45137,7 +45182,7 @@ BI.Input = BI.inherit(BI.Single, {
.keydown(function (e) { .keydown(function (e) {
inputEventValid = false; inputEventValid = false;
ctrlKey = e.ctrlKey; ctrlKey = e.ctrlKey;
self.fireEvent(BI.Input.EVENT_QUICK_DOWN); self.fireEvent(BI.Input.EVENT_QUICK_DOWN, arguments);
}) })
.keyup(function (e) { .keyup(function (e) {
if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) { if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) {
@ -45160,6 +45205,9 @@ BI.Input = BI.inherit(BI.Single, {
.mousedown(function (e) { .mousedown(function (e) {
self.element.val(self.element.val()); self.element.val(self.element.val());
}) })
.focus(function (e) { // 可以不用冒泡
self._focusDebounce();
})
.focusout(function (e) { .focusout(function (e) {
self._blurDebounce(); self._blurDebounce();
}); });
@ -45207,7 +45255,6 @@ BI.Input = BI.inherit(BI.Single, {
_click: function () { _click: function () {
if (this._isEditing !== true) { if (this._isEditing !== true) {
this._focus();
this.selectAll(); this.selectAll();
this.fireEvent(BI.Input.EVENT_CLICK); this.fireEvent(BI.Input.EVENT_CLICK);
} }
@ -45308,7 +45355,6 @@ BI.Input = BI.inherit(BI.Single, {
} }
if (!this._isEditing === true) { if (!this._isEditing === true) {
this.element.focus(); this.element.focus();
this._focus();
this.selectAll(); this.selectAll();
} }
}, },

52
dist/bundle.min.js vendored

File diff suppressed because one or more lines are too long

40
dist/core.js vendored

@ -11478,21 +11478,46 @@ if (!_global.BI) {
} }
}); });
})();/** })();!(function () {
function extend () {
var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy;
for (; i < length; i++) {
// Only deal with non-null/undefined values
if ((options = arguments[i]) != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target === copy) {
continue;
}
if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
/**
* 客户端观察者主要处理事件的添加删除执行等 * 客户端观察者主要处理事件的添加删除执行等
* @class BI.OB * @class BI.OB
* @abstract * @abstract
*/ */
BI.OB = function (config) { BI.OB = function (config) {
var props = this.props; var props = this.props;
if (BI.isFunction(this.props)) { if (BI.isFunction(this.props)) {
props = this.props(config); props = this.props(config);
} }
this.options = (_global.$ || _global._).extend(this._defaultConfig(config), props, config); this.options = extend(this._defaultConfig(config), props, config);
this._init(); this._init();
this._initRef(); this._initRef();
}; };
_.extend(BI.OB.prototype, { _.extend(BI.OB.prototype, {
props: {}, props: {},
init: null, init: null,
destroyed: null, destroyed: null,
@ -11525,7 +11550,7 @@ _.extend(BI.OB.prototype, {
}, },
//释放当前对象 //释放当前对象
_purgeRef: function(){ _purgeRef: function () {
if (this.options.ref) { if (this.options.ref) {
this.options.ref.call(null); this.options.ref.call(null);
} }
@ -11629,7 +11654,8 @@ _.extend(BI.OB.prototype, {
this._purgeRef(); this._purgeRef();
this.purgeListeners(); this.purgeListeners();
} }
});/** });
})();/**
* Widget超类 * Widget超类
* @class BI.Widget * @class BI.Widget
* @extends BI.OB * @extends BI.OB

584
dist/fineui.js vendored

@ -11720,21 +11720,46 @@ if (!_global.BI) {
} }
}); });
})();/** })();!(function () {
function extend () {
var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy;
for (; i < length; i++) {
// Only deal with non-null/undefined values
if ((options = arguments[i]) != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target === copy) {
continue;
}
if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
/**
* 客户端观察者主要处理事件的添加删除执行等 * 客户端观察者主要处理事件的添加删除执行等
* @class BI.OB * @class BI.OB
* @abstract * @abstract
*/ */
BI.OB = function (config) { BI.OB = function (config) {
var props = this.props; var props = this.props;
if (BI.isFunction(this.props)) { if (BI.isFunction(this.props)) {
props = this.props(config); props = this.props(config);
} }
this.options = (_global.$ || _global._).extend(this._defaultConfig(config), props, config); this.options = extend(this._defaultConfig(config), props, config);
this._init(); this._init();
this._initRef(); this._initRef();
}; };
_.extend(BI.OB.prototype, { _.extend(BI.OB.prototype, {
props: {}, props: {},
init: null, init: null,
destroyed: null, destroyed: null,
@ -11767,7 +11792,7 @@ _.extend(BI.OB.prototype, {
}, },
//释放当前对象 //释放当前对象
_purgeRef: function(){ _purgeRef: function () {
if (this.options.ref) { if (this.options.ref) {
this.options.ref.call(null); this.options.ref.call(null);
} }
@ -11871,7 +11896,8 @@ _.extend(BI.OB.prototype, {
this._purgeRef(); this._purgeRef();
this.purgeListeners(); this.purgeListeners();
} }
});/** });
})();/**
* Widget超类 * Widget超类
* @class BI.Widget * @class BI.Widget
* @extends BI.OB * @extends BI.OB
@ -44084,18 +44110,30 @@ BI.Editor = BI.inherit(BI.Single, {
} }
e.stopEvent(); e.stopEvent();
}); });
this.watermark.element.css({ }
position: "absolute",
left: "3px", var _items = [];
right: "3px", if (this.watermark) {
top: "0px", _items.push({
bottom: "0px" el: this.watermark,
left: 3,
right: 3,
top: 0,
bottom: 0
}); });
} }
_items.push({
el: this.editor,
left: 0,
right: 0,
top: 0,
bottom: 0
});
var items = [{ var items = [{
el: { el: {
type: "bi.default", type: "bi.absolute",
items: this.watermark ? [this.editor, this.watermark] : [this.editor] items: _items
}, },
left: o.hgap + o.lgap, left: o.hgap + o.lgap,
right: o.hgap + o.rgap, right: o.hgap + o.rgap,
@ -44130,8 +44168,11 @@ BI.Editor = BI.inherit(BI.Single, {
this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) { this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) {
self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments); self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments);
}); });
this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (v) { this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (e) {
self.watermark && self.watermark.invisible(); // tab键就不要隐藏了
if (e.keyCode !== BI.KeyCode.TAB && self.watermark) {
self.watermark.invisible();
}
}); });
this.editor.on(BI.Input.EVENT_VALID, function () { this.editor.on(BI.Input.EVENT_VALID, function () {
@ -45371,6 +45412,10 @@ BI.Input = BI.inherit(BI.Single, {
"leading": true, "leading": true,
"trailing": false "trailing": false
}); });
this._focusDebounce = BI.debounce(BI.bind(this._focus, this), BI.EVENT_RESPONSE_TIME, {
"leading": true,
"trailing": false
});
this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, { this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, {
"leading": true, "leading": true,
"trailing": false "trailing": false
@ -45379,7 +45424,7 @@ BI.Input = BI.inherit(BI.Single, {
.keydown(function (e) { .keydown(function (e) {
inputEventValid = false; inputEventValid = false;
ctrlKey = e.ctrlKey; ctrlKey = e.ctrlKey;
self.fireEvent(BI.Input.EVENT_QUICK_DOWN); self.fireEvent(BI.Input.EVENT_QUICK_DOWN, arguments);
}) })
.keyup(function (e) { .keyup(function (e) {
if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) { if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) {
@ -45402,6 +45447,9 @@ BI.Input = BI.inherit(BI.Single, {
.mousedown(function (e) { .mousedown(function (e) {
self.element.val(self.element.val()); self.element.val(self.element.val());
}) })
.focus(function (e) { // 可以不用冒泡
self._focusDebounce();
})
.focusout(function (e) { .focusout(function (e) {
self._blurDebounce(); self._blurDebounce();
}); });
@ -45449,7 +45497,6 @@ BI.Input = BI.inherit(BI.Single, {
_click: function () { _click: function () {
if (this._isEditing !== true) { if (this._isEditing !== true) {
this._focus();
this.selectAll(); this.selectAll();
this.fireEvent(BI.Input.EVENT_CLICK); this.fireEvent(BI.Input.EVENT_CLICK);
} }
@ -45550,7 +45597,6 @@ BI.Input = BI.inherit(BI.Single, {
} }
if (!this._isEditing === true) { if (!this._isEditing === true) {
this.element.focus(); this.element.focus();
this._focus();
this.selectAll(); this.selectAll();
} }
}, },
@ -81837,255 +81883,7 @@ BI.ValueChooserPane = BI.inherit(BI.AbstractValueChooser, {
} }
}); });
BI.ValueChooserPane.EVENT_CHANGE = "ValueChooserPane.EVENT_CHANGE"; BI.ValueChooserPane.EVENT_CHANGE = "ValueChooserPane.EVENT_CHANGE";
BI.shortcut("bi.value_chooser_pane", BI.ValueChooserPane);;(function () { BI.shortcut("bi.value_chooser_pane", BI.ValueChooserPane);(function () {
function initWatch(vm, watch) {
vm._watchers || (vm._watchers = []);
for (var key in watch) {
var handler = watch[key];
if (BI.isArray(handler)) {
for (var i = 0; i < handler.length; i++) {
vm._watchers.push(createWatcher(vm, key, handler[i]));
}
} else {
vm._watchers.push(createWatcher(vm, key, handler));
}
}
}
function createWatcher(vm, keyOrFn, handler) {
return Fix.watch(vm.model, keyOrFn, _.bind(handler, vm), {
store: vm.store
});
}
var target = null;
var targetStack = [];
function pushTarget(_target) {
if (target) targetStack.push(target);
Fix.Model.target = target = _target;
}
function popTarget() {
Fix.Model.target = target = targetStack.pop();
}
var context = null;
var contextStack = [];
function pushContext(_context) {
if (context) contextStack.push(context);
Fix.Model.context = context = _context;
}
function popContext() {
Fix.Model.context = context = contextStack.pop();
}
var oldWatch = Fix.watch;
Fix.watch = function (model, expOrFn, cb, options) {
if (BI.isPlainObject(cb)) {
options = cb;
cb = cb.handler;
}
if (typeof cb === "string") {
cb = model[cb];
}
return oldWatch.call(this, model, expOrFn, function () {
options && options.store && pushTarget(options.store);
var res = cb.apply(this, arguments);
options && options.store && popTarget();
return res;
}, options);
};
function findStore(widget) {
if (target != null) {
return target;
}
widget = widget || context;
var p = widget;
while (p) {
if (p instanceof Fix.Model || p.store || p.__cacheStore) {
break;
}
p = p._parent || (p.options && p.options.element);
}
if (p) {
if (p instanceof Fix.Model) {
return widget.__cacheStore = p;
}
widget.__cacheStore = p.store || p.__cacheStore;
return p.__cacheStore || p.store;
}
}
var _create = BI.createWidget;
BI.createWidget = function (item, options, context) {
var pushed = false;
if (BI.isWidget(options)) {
pushContext(options);
pushed = true;
} else if (context != null) {
pushContext(context);
pushed = true;
}
var result = _create.apply(this, arguments);
pushed && popContext();
return result;
};
_.each(["populate", "addItems", "prependItems"], function (name) {
var old = BI.Loader.prototype[name];
BI.Loader.prototype[name] = function () {
pushContext(this);
var result = old.apply(this, arguments);
popContext();
return result;
};
});
function createStore() {
var needPop = false;
if (_global.Fix && this._store) {
var store = findStore(this.options.context || this.options.element);
if (store) {
pushTarget(store);
needPop = true;
}
this.store = this._store();
this.store && (this.store._widget = this);
needPop && popTarget();
needPop = false;
pushTarget(this.store);
if (this.store instanceof Fix.Model) {
this.model = this.store.model;
} else {
this.model = this.store;
}
needPop = true;
}
return needPop;
}
var _init = BI.Widget.prototype._init;
BI.Widget.prototype._init = function () {
var self = this;
var needPop = createStore.call(this);
_init.apply(this, arguments);
needPop && popTarget();
};
var _render = BI.Widget.prototype._render;
BI.Widget.prototype._render = function () {
var needPop = false;
if (_global.Fix && this._store) {
needPop = true;
pushTarget(this.store);
initWatch(this, this.watch);
}
_render.apply(this, arguments);
needPop && popTarget();
};
var unMount = BI.Widget.prototype.__d;
BI.Widget.prototype.__d = function () {
unMount.apply(this, arguments);
this.store && BI.isFunction(this.store.destroy) && this.store.destroy();
BI.each(this._watchers, function (i, unwatches) {
unwatches = BI.isArray(unwatches) ? unwatches : [unwatches];
BI.each(unwatches, function (j, unwatch) {
unwatch();
});
});
this._watchers && (this._watchers = []);
if (this.store) {
this.store._parent && (this.store._parent = null);
this.store._widget && (this.store._widget = null);
this.store = null;
}
delete this.__cacheStore;
};
_.each(["_mount"], function (name) {
var old = BI.Widget.prototype[name];
old && (BI.Widget.prototype[name] = function () {
this.store && pushTarget(this.store);
var res = old.apply(this, arguments);
this.store && popTarget();
return res;
});
});
if (BI.isIE9Below && BI.isIE9Below()) {
_.each(["each", "map", "reduce", "reduceRight", "find", "filter", "reject", "every", "all", "some", "any", "max", "min",
"sortBy", "groupBy", "indexBy", "countBy", "partition",
"keys", "allKeys", "values", "pairs", "invert",
"mapObject", "findKey", "pick", "omit", "tap"], function (name) {
var old = BI[name];
BI[name] = function (obj, fn, context) {
return typeof fn === "function" ? old(obj, function (key, value) {
if (!(key in Fix.$$skipArray)) {
return fn.apply(this, arguments);
}
}, context) : old.apply(this, arguments);
};
});
BI.isEmpty = function (ob) {
if (BI.isPlainObject(ob) && ob.__ob__) {
return BI.keys(ob).length === 0;
}
return _.isEmpty(ob);
};
BI.keys = function (ob) {
var keys = _.keys(ob);
var nKeys = [];
for (var i = 0; i < keys.length; i++) {
if (!(keys[i] in Fix.$$skipArray)) {
nKeys.push(keys[i]);
}
}
return nKeys;
};
BI.values = function (ob) {
var keys = BI.keys(obj);
var length = keys.length;
var values = [];
for (var i = 0; i < length; i++) {
values[i] = obj[keys[i]];
}
return values;
};
BI.extend = function () {
var args = Array.prototype.slice.call(arguments);
if (args.length < 1) {
return {};
}
var object = args[0];
var i = 1;
while (i < args.length) {
BI.each(args[i], function (key, v) {
object[key] = v;
});
i++;
}
return object;
};
BI.size = function (ob) {
if (BI.isPlainObject(ob) && ob.__ob__) {
return BI.keys(ob).length;
}
return _.size(ob);
};
BI.isEmptyObject = function (ob) {
return BI.size(ob) === 0;
};
BI.deepClone = function (ob) {
return Fix.toJSON(ob);
};
}
BI.watch = Fix.watch;
}());(function () {
var Events = { var Events = {
// Bind an event to a `callback` function. Passing `"all"` will bind // Bind an event to a `callback` function. Passing `"all"` will bind
@ -82669,4 +82467,252 @@ BI.shortcut("bi.value_chooser_pane", BI.ValueChooserPane);;(function () {
// Create the default BI.history. // Create the default BI.history.
BI.history = new History; BI.history = new History;
}());;(function () {
function initWatch(vm, watch) {
vm._watchers || (vm._watchers = []);
for (var key in watch) {
var handler = watch[key];
if (BI.isArray(handler)) {
for (var i = 0; i < handler.length; i++) {
vm._watchers.push(createWatcher(vm, key, handler[i]));
}
} else {
vm._watchers.push(createWatcher(vm, key, handler));
}
}
}
function createWatcher(vm, keyOrFn, handler) {
return Fix.watch(vm.model, keyOrFn, _.bind(handler, vm), {
store: vm.store
});
}
var target = null;
var targetStack = [];
function pushTarget(_target) {
if (target) targetStack.push(target);
Fix.Model.target = target = _target;
}
function popTarget() {
Fix.Model.target = target = targetStack.pop();
}
var context = null;
var contextStack = [];
function pushContext(_context) {
if (context) contextStack.push(context);
Fix.Model.context = context = _context;
}
function popContext() {
Fix.Model.context = context = contextStack.pop();
}
var oldWatch = Fix.watch;
Fix.watch = function (model, expOrFn, cb, options) {
if (BI.isPlainObject(cb)) {
options = cb;
cb = cb.handler;
}
if (typeof cb === "string") {
cb = model[cb];
}
return oldWatch.call(this, model, expOrFn, function () {
options && options.store && pushTarget(options.store);
var res = cb.apply(this, arguments);
options && options.store && popTarget();
return res;
}, options);
};
function findStore(widget) {
if (target != null) {
return target;
}
widget = widget || context;
var p = widget;
while (p) {
if (p instanceof Fix.Model || p.store || p.__cacheStore) {
break;
}
p = p._parent || (p.options && p.options.element);
}
if (p) {
if (p instanceof Fix.Model) {
return widget.__cacheStore = p;
}
widget.__cacheStore = p.store || p.__cacheStore;
return p.__cacheStore || p.store;
}
}
var _create = BI.createWidget;
BI.createWidget = function (item, options, context) {
var pushed = false;
if (BI.isWidget(options)) {
pushContext(options);
pushed = true;
} else if (context != null) {
pushContext(context);
pushed = true;
}
var result = _create.apply(this, arguments);
pushed && popContext();
return result;
};
_.each(["populate", "addItems", "prependItems"], function (name) {
var old = BI.Loader.prototype[name];
BI.Loader.prototype[name] = function () {
pushContext(this);
var result = old.apply(this, arguments);
popContext();
return result;
};
});
function createStore() {
var needPop = false;
if (_global.Fix && this._store) {
var store = findStore(this.options.context || this.options.element);
if (store) {
pushTarget(store);
needPop = true;
}
this.store = this._store();
this.store && (this.store._widget = this);
needPop && popTarget();
needPop = false;
pushTarget(this.store);
if (this.store instanceof Fix.Model) {
this.model = this.store.model;
} else {
this.model = this.store;
}
needPop = true;
}
return needPop;
}
var _init = BI.Widget.prototype._init;
BI.Widget.prototype._init = function () {
var self = this;
var needPop = createStore.call(this);
_init.apply(this, arguments);
needPop && popTarget();
};
var _render = BI.Widget.prototype._render;
BI.Widget.prototype._render = function () {
var needPop = false;
if (_global.Fix && this._store) {
needPop = true;
pushTarget(this.store);
initWatch(this, this.watch);
}
_render.apply(this, arguments);
needPop && popTarget();
};
var unMount = BI.Widget.prototype.__d;
BI.Widget.prototype.__d = function () {
unMount.apply(this, arguments);
this.store && BI.isFunction(this.store.destroy) && this.store.destroy();
BI.each(this._watchers, function (i, unwatches) {
unwatches = BI.isArray(unwatches) ? unwatches : [unwatches];
BI.each(unwatches, function (j, unwatch) {
unwatch();
});
});
this._watchers && (this._watchers = []);
if (this.store) {
this.store._parent && (this.store._parent = null);
this.store._widget && (this.store._widget = null);
this.store = null;
}
delete this.__cacheStore;
};
_.each(["_mount"], function (name) {
var old = BI.Widget.prototype[name];
old && (BI.Widget.prototype[name] = function () {
this.store && pushTarget(this.store);
var res = old.apply(this, arguments);
this.store && popTarget();
return res;
});
});
if (BI.isIE9Below && BI.isIE9Below()) {
_.each(["each", "map", "reduce", "reduceRight", "find", "filter", "reject", "every", "all", "some", "any", "max", "min",
"sortBy", "groupBy", "indexBy", "countBy", "partition",
"keys", "allKeys", "values", "pairs", "invert",
"mapObject", "findKey", "pick", "omit", "tap"], function (name) {
var old = BI[name];
BI[name] = function (obj, fn, context) {
return typeof fn === "function" ? old(obj, function (key, value) {
if (!(key in Fix.$$skipArray)) {
return fn.apply(this, arguments);
}
}, context) : old.apply(this, arguments);
};
});
BI.isEmpty = function (ob) {
if (BI.isPlainObject(ob) && ob.__ob__) {
return BI.keys(ob).length === 0;
}
return _.isEmpty(ob);
};
BI.keys = function (ob) {
var keys = _.keys(ob);
var nKeys = [];
for (var i = 0; i < keys.length; i++) {
if (!(keys[i] in Fix.$$skipArray)) {
nKeys.push(keys[i]);
}
}
return nKeys;
};
BI.values = function (ob) {
var keys = BI.keys(obj);
var length = keys.length;
var values = [];
for (var i = 0; i < length; i++) {
values[i] = obj[keys[i]];
}
return values;
};
BI.extend = function () {
var args = Array.prototype.slice.call(arguments);
if (args.length < 1) {
return {};
}
var object = args[0];
var i = 1;
while (i < args.length) {
BI.each(args[i], function (key, v) {
object[key] = v;
});
i++;
}
return object;
};
BI.size = function (ob) {
if (BI.isPlainObject(ob) && ob.__ob__) {
return BI.keys(ob).length;
}
return _.size(ob);
};
BI.isEmptyObject = function (ob) {
return BI.size(ob) === 0;
};
BI.deepClone = function (ob) {
return Fix.toJSON(ob);
};
}
BI.watch = Fix.watch;
}());BI.resourceURL = "file?path=/com/fr/web/ui/resource"; }());BI.resourceURL = "file?path=/com/fr/web/ui/resource";

50
dist/fineui.min.js vendored

File diff suppressed because one or more lines are too long

86
dist/fineui_without_jquery_polyfill.js vendored

@ -11478,21 +11478,46 @@ if (!_global.BI) {
} }
}); });
})();/** })();!(function () {
function extend () {
var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy;
for (; i < length; i++) {
// Only deal with non-null/undefined values
if ((options = arguments[i]) != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target === copy) {
continue;
}
if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
/**
* 客户端观察者主要处理事件的添加删除执行等 * 客户端观察者主要处理事件的添加删除执行等
* @class BI.OB * @class BI.OB
* @abstract * @abstract
*/ */
BI.OB = function (config) { BI.OB = function (config) {
var props = this.props; var props = this.props;
if (BI.isFunction(this.props)) { if (BI.isFunction(this.props)) {
props = this.props(config); props = this.props(config);
} }
this.options = (_global.$ || _global._).extend(this._defaultConfig(config), props, config); this.options = extend(this._defaultConfig(config), props, config);
this._init(); this._init();
this._initRef(); this._initRef();
}; };
_.extend(BI.OB.prototype, { _.extend(BI.OB.prototype, {
props: {}, props: {},
init: null, init: null,
destroyed: null, destroyed: null,
@ -11525,7 +11550,7 @@ _.extend(BI.OB.prototype, {
}, },
//释放当前对象 //释放当前对象
_purgeRef: function(){ _purgeRef: function () {
if (this.options.ref) { if (this.options.ref) {
this.options.ref.call(null); this.options.ref.call(null);
} }
@ -11629,7 +11654,8 @@ _.extend(BI.OB.prototype, {
this._purgeRef(); this._purgeRef();
this.purgeListeners(); this.purgeListeners();
} }
});/** });
})();/**
* Widget超类 * Widget超类
* @class BI.Widget * @class BI.Widget
* @extends BI.OB * @extends BI.OB
@ -31752,18 +31778,30 @@ BI.Editor = BI.inherit(BI.Single, {
} }
e.stopEvent(); e.stopEvent();
}); });
this.watermark.element.css({ }
position: "absolute",
left: "3px", var _items = [];
right: "3px", if (this.watermark) {
top: "0px", _items.push({
bottom: "0px" el: this.watermark,
left: 3,
right: 3,
top: 0,
bottom: 0
}); });
} }
_items.push({
el: this.editor,
left: 0,
right: 0,
top: 0,
bottom: 0
});
var items = [{ var items = [{
el: { el: {
type: "bi.default", type: "bi.absolute",
items: this.watermark ? [this.editor, this.watermark] : [this.editor] items: _items
}, },
left: o.hgap + o.lgap, left: o.hgap + o.lgap,
right: o.hgap + o.rgap, right: o.hgap + o.rgap,
@ -31798,8 +31836,11 @@ BI.Editor = BI.inherit(BI.Single, {
this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) { this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) {
self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments); self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments);
}); });
this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (v) { this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (e) {
self.watermark && self.watermark.invisible(); // tab键就不要隐藏了
if (e.keyCode !== BI.KeyCode.TAB && self.watermark) {
self.watermark.invisible();
}
}); });
this.editor.on(BI.Input.EVENT_VALID, function () { this.editor.on(BI.Input.EVENT_VALID, function () {
@ -32423,6 +32464,10 @@ BI.Input = BI.inherit(BI.Single, {
"leading": true, "leading": true,
"trailing": false "trailing": false
}); });
this._focusDebounce = BI.debounce(BI.bind(this._focus, this), BI.EVENT_RESPONSE_TIME, {
"leading": true,
"trailing": false
});
this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, { this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, {
"leading": true, "leading": true,
"trailing": false "trailing": false
@ -32431,7 +32476,7 @@ BI.Input = BI.inherit(BI.Single, {
.keydown(function (e) { .keydown(function (e) {
inputEventValid = false; inputEventValid = false;
ctrlKey = e.ctrlKey; ctrlKey = e.ctrlKey;
self.fireEvent(BI.Input.EVENT_QUICK_DOWN); self.fireEvent(BI.Input.EVENT_QUICK_DOWN, arguments);
}) })
.keyup(function (e) { .keyup(function (e) {
if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) { if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) {
@ -32454,6 +32499,9 @@ BI.Input = BI.inherit(BI.Single, {
.mousedown(function (e) { .mousedown(function (e) {
self.element.val(self.element.val()); self.element.val(self.element.val());
}) })
.focus(function (e) { // 可以不用冒泡
self._focusDebounce();
})
.focusout(function (e) { .focusout(function (e) {
self._blurDebounce(); self._blurDebounce();
}); });
@ -32501,7 +32549,6 @@ BI.Input = BI.inherit(BI.Single, {
_click: function () { _click: function () {
if (this._isEditing !== true) { if (this._isEditing !== true) {
this._focus();
this.selectAll(); this.selectAll();
this.fireEvent(BI.Input.EVENT_CLICK); this.fireEvent(BI.Input.EVENT_CLICK);
} }
@ -32602,7 +32649,6 @@ BI.Input = BI.inherit(BI.Single, {
} }
if (!this._isEditing === true) { if (!this._isEditing === true) {
this.element.focus(); this.element.focus();
this._focus();
this.selectAll(); this.selectAll();
} }
}, },

40
dist/utils.js vendored

@ -12237,21 +12237,46 @@ if (!_global.BI) {
} }
}); });
})();/** })();!(function () {
function extend () {
var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy;
for (; i < length; i++) {
// Only deal with non-null/undefined values
if ((options = arguments[i]) != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target === copy) {
continue;
}
if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
/**
* 客户端观察者主要处理事件的添加删除执行等 * 客户端观察者主要处理事件的添加删除执行等
* @class BI.OB * @class BI.OB
* @abstract * @abstract
*/ */
BI.OB = function (config) { BI.OB = function (config) {
var props = this.props; var props = this.props;
if (BI.isFunction(this.props)) { if (BI.isFunction(this.props)) {
props = this.props(config); props = this.props(config);
} }
this.options = (_global.$ || _global._).extend(this._defaultConfig(config), props, config); this.options = extend(this._defaultConfig(config), props, config);
this._init(); this._init();
this._initRef(); this._initRef();
}; };
_.extend(BI.OB.prototype, { _.extend(BI.OB.prototype, {
props: {}, props: {},
init: null, init: null,
destroyed: null, destroyed: null,
@ -12284,7 +12309,7 @@ _.extend(BI.OB.prototype, {
}, },
//释放当前对象 //释放当前对象
_purgeRef: function(){ _purgeRef: function () {
if (this.options.ref) { if (this.options.ref) {
this.options.ref.call(null); this.options.ref.call(null);
} }
@ -12388,7 +12413,8 @@ _.extend(BI.OB.prototype, {
this._purgeRef(); this._purgeRef();
this.purgeListeners(); this.purgeListeners();
} }
});(function () { });
})();(function () {
var _global; var _global;
if (typeof window !== "undefined") { if (typeof window !== "undefined") {
_global = window; _global = window;

4
dist/utils.min.js vendored

File diff suppressed because one or more lines are too long

40
src/core/ob.js

@ -1,18 +1,43 @@
/** !(function () {
function extend () {
var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy;
for (; i < length; i++) {
// Only deal with non-null/undefined values
if ((options = arguments[i]) != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target === copy) {
continue;
}
if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
}
/**
* 客户端观察者主要处理事件的添加删除执行等 * 客户端观察者主要处理事件的添加删除执行等
* @class BI.OB * @class BI.OB
* @abstract * @abstract
*/ */
BI.OB = function (config) { BI.OB = function (config) {
var props = this.props; var props = this.props;
if (BI.isFunction(this.props)) { if (BI.isFunction(this.props)) {
props = this.props(config); props = this.props(config);
} }
this.options = (_global.$ || _global._).extend(this._defaultConfig(config), props, config); this.options = extend(this._defaultConfig(config), props, config);
this._init(); this._init();
this._initRef(); this._initRef();
}; };
_.extend(BI.OB.prototype, { _.extend(BI.OB.prototype, {
props: {}, props: {},
init: null, init: null,
destroyed: null, destroyed: null,
@ -45,7 +70,7 @@ _.extend(BI.OB.prototype, {
}, },
//释放当前对象 //释放当前对象
_purgeRef: function(){ _purgeRef: function () {
if (this.options.ref) { if (this.options.ref) {
this.options.ref.call(null); this.options.ref.call(null);
} }
@ -149,4 +174,5 @@ _.extend(BI.OB.prototype, {
this._purgeRef(); this._purgeRef();
this.purgeListeners(); this.purgeListeners();
} }
}); });
})();
Loading…
Cancel
Save