forked from fanruan/fineui
Treecat
2 years ago
50 changed files with 1713 additions and 1579 deletions
@ -1,123 +1,127 @@ |
|||||||
BI.Plugin = BI.Plugin || {}; |
const _WidgetsPlugin = {}; |
||||||
!(function () { |
const _ObjectPlugin = {}; |
||||||
var _WidgetsPlugin = {}; |
const _ConfigPlugin = {}; |
||||||
var _ObjectPlugin = {}; |
const _ConfigRenderPlugin = {}; |
||||||
var _ConfigPlugin = {}; |
let _GlobalWidgetConfigFns = []; |
||||||
var _ConfigRenderPlugin = {}; |
let __GlobalObjectConfigFns = []; |
||||||
var _GlobalWidgetConfigFns = []; |
|
||||||
var __GlobalObjectConfigFns = []; |
export const Plugin = { |
||||||
BI.defaults(BI.Plugin, { |
getWidget (type, options) { |
||||||
|
if (_GlobalWidgetConfigFns.length > 0) { |
||||||
getWidget: function (type, options) { |
const fns = _GlobalWidgetConfigFns.slice(0); |
||||||
if (_GlobalWidgetConfigFns.length > 0) { |
for (let i = fns.length - 1; i >= 0; i--) { |
||||||
var fns = _GlobalWidgetConfigFns.slice(0); |
fns[i](type, options); |
||||||
for (var i = fns.length - 1; i >= 0; i--) { |
|
||||||
fns[i](type, options); |
|
||||||
} |
|
||||||
} |
} |
||||||
|
} |
||||||
|
|
||||||
var res; |
let res; |
||||||
if (_ConfigPlugin[type]) { |
if (_ConfigPlugin[type]) { |
||||||
for (var i = _ConfigPlugin[type].length - 1; i >= 0; i--) { |
for (let i = _ConfigPlugin[type].length - 1; i >= 0; i--) { |
||||||
if (res = _ConfigPlugin[type][i](options)) { |
res = _ConfigPlugin[type][i](options); |
||||||
options = res; |
if (res) { |
||||||
} |
options = res; |
||||||
} |
} |
||||||
} |
} |
||||||
// Deprecated
|
} |
||||||
if (_WidgetsPlugin[type]) { |
// Deprecated
|
||||||
for (var i = _WidgetsPlugin[type].length - 1; i >= 0; i--) { |
if (_WidgetsPlugin[type]) { |
||||||
if (res = _WidgetsPlugin[type][i](options)) { |
for (let i = _WidgetsPlugin[type].length - 1; i >= 0; i--) { |
||||||
return res; |
res = _WidgetsPlugin[type][i](options); |
||||||
} |
if (res) { |
||||||
|
return res; |
||||||
} |
} |
||||||
} |
} |
||||||
return options; |
} |
||||||
}, |
|
||||||
|
return options; |
||||||
config: function (widgetConfigFn, objectConfigFn) { |
}, |
||||||
_GlobalWidgetConfigFns = _GlobalWidgetConfigFns.concat(BI._.isArray(widgetConfigFn) ? widgetConfigFn : [widgetConfigFn]); |
|
||||||
__GlobalObjectConfigFns = __GlobalObjectConfigFns.concat(BI._.isArray(objectConfigFn) ? objectConfigFn : [objectConfigFn]); |
config (widgetConfigFn, objectConfigFn) { |
||||||
}, |
_GlobalWidgetConfigFns = _GlobalWidgetConfigFns.concat(BI._.isArray(widgetConfigFn) ? widgetConfigFn : [widgetConfigFn]); |
||||||
|
__GlobalObjectConfigFns = __GlobalObjectConfigFns.concat(BI._.isArray(objectConfigFn) ? objectConfigFn : [objectConfigFn]); |
||||||
configWidget: function (type, fn, opt) { |
}, |
||||||
// opt.single: true 最后一次注册有效
|
|
||||||
if (!_ConfigPlugin[type] || (opt && opt.single)) { |
configWidget (type, fn, opt) { |
||||||
_ConfigPlugin[type] = []; |
// opt.single: true 最后一次注册有效
|
||||||
} |
if (!_ConfigPlugin[type] || (opt && opt.single)) { |
||||||
_ConfigPlugin[type].push(fn); |
_ConfigPlugin[type] = []; |
||||||
}, |
} |
||||||
|
_ConfigPlugin[type].push(fn); |
||||||
getRender: function (type, rendered) { |
}, |
||||||
var res; |
|
||||||
if (_ConfigRenderPlugin[type]) { |
getRender (type, rendered) { |
||||||
for (var i = _ConfigRenderPlugin[type].length - 1; i >= 0; i--) { |
let res; |
||||||
if (res = _ConfigRenderPlugin[type][i](rendered)) { |
if (_ConfigRenderPlugin[type]) { |
||||||
rendered = res; |
for (let i = _ConfigRenderPlugin[type].length - 1; i >= 0; i--) { |
||||||
} |
res = _ConfigRenderPlugin[type][i](rendered); |
||||||
|
if (res) { |
||||||
|
rendered = res; |
||||||
} |
} |
||||||
} |
} |
||||||
return rendered; |
} |
||||||
}, |
|
||||||
|
|
||||||
configRender: function (type, fn) { |
return rendered; |
||||||
if (!_ConfigRenderPlugin[type]) { |
}, |
||||||
_ConfigRenderPlugin[type] = []; |
|
||||||
} |
|
||||||
_ConfigRenderPlugin[type].push(fn); |
|
||||||
}, |
|
||||||
|
|
||||||
// Deprecated
|
configRender (type, fn) { |
||||||
registerWidget: function (type, fn) { |
if (!_ConfigRenderPlugin[type]) { |
||||||
if (!_WidgetsPlugin[type]) { |
_ConfigRenderPlugin[type] = []; |
||||||
_WidgetsPlugin[type] = []; |
} |
||||||
} |
_ConfigRenderPlugin[type].push(fn); |
||||||
if (_WidgetsPlugin[type].length > 0) { |
}, |
||||||
console.log("组件已经注册过了!"); |
|
||||||
} |
|
||||||
_WidgetsPlugin[type].push(fn); |
|
||||||
}, |
|
||||||
|
|
||||||
// Deprecated
|
// Deprecated
|
||||||
relieveWidget: function (type) { |
registerWidget (type, fn) { |
||||||
delete _WidgetsPlugin[type]; |
if (!_WidgetsPlugin[type]) { |
||||||
}, |
_WidgetsPlugin[type] = []; |
||||||
|
} |
||||||
getObject: function (type, object) { |
if (_WidgetsPlugin[type].length > 0) { |
||||||
if (__GlobalObjectConfigFns.length > 0) { |
console.log("组件已经注册过了!"); |
||||||
var fns = __GlobalObjectConfigFns.slice(0); |
} |
||||||
for (var i = fns.length - 1; i >= 0; i--) { |
_WidgetsPlugin[type].push(fn); |
||||||
fns[i](type, object); |
}, |
||||||
} |
|
||||||
|
// Deprecated
|
||||||
|
relieveWidget (type) { |
||||||
|
delete _WidgetsPlugin[type]; |
||||||
|
}, |
||||||
|
|
||||||
|
getObject (type, object) { |
||||||
|
if (__GlobalObjectConfigFns.length > 0) { |
||||||
|
const fns = __GlobalObjectConfigFns.slice(0); |
||||||
|
for (let i = fns.length - 1; i >= 0; i--) { |
||||||
|
fns[i](type, object); |
||||||
} |
} |
||||||
|
} |
||||||
|
|
||||||
if (_ObjectPlugin[type]) { |
let res; |
||||||
var res; |
if (_ObjectPlugin[type]) { |
||||||
for (var i = 0, len = _ObjectPlugin[type].length; i < len; i++) { |
for (let i = 0, len = _ObjectPlugin[type].length; i < len; i++) { |
||||||
if (res = _ObjectPlugin[type][i](object)) { |
res = _ObjectPlugin[type][i](object); |
||||||
object = res; |
if (res) { |
||||||
} |
object = res; |
||||||
} |
} |
||||||
} |
} |
||||||
return res || object; |
} |
||||||
}, |
|
||||||
|
|
||||||
hasObject: function (type) { |
return res || object; |
||||||
return __GlobalObjectConfigFns.length > 0 || !!_ObjectPlugin[type]; |
}, |
||||||
}, |
|
||||||
|
|
||||||
registerObject: function (type, fn) { |
hasObject (type) { |
||||||
if (!_ObjectPlugin[type]) { |
return __GlobalObjectConfigFns.length > 0 || !!_ObjectPlugin[type]; |
||||||
_ObjectPlugin[type] = []; |
}, |
||||||
} |
|
||||||
if (_ObjectPlugin[type].length > 0) { |
|
||||||
console.log("对象已经注册过了!"); |
|
||||||
} |
|
||||||
_ObjectPlugin[type].push(fn); |
|
||||||
}, |
|
||||||
|
|
||||||
relieveObject: function (type) { |
registerObject (type, fn) { |
||||||
delete _ObjectPlugin[type]; |
if (!_ObjectPlugin[type]) { |
||||||
|
_ObjectPlugin[type] = []; |
||||||
|
} |
||||||
|
if (_ObjectPlugin[type].length > 0) { |
||||||
|
console.log("对象已经注册过了!"); |
||||||
} |
} |
||||||
}); |
_ObjectPlugin[type].push(fn); |
||||||
})(); |
}, |
||||||
|
|
||||||
|
relieveObject (type) { |
||||||
|
delete _ObjectPlugin[type]; |
||||||
|
}, |
||||||
|
}; |
||||||
|
@ -1,2 +1,2 @@ |
|||||||
export { Action } from "./action"; |
export { Action } from "./action"; |
||||||
export { ShowAction } from "./action.show"; |
export { ShowAction, ActionFactory } from "./action.show"; |
||||||
|
@ -1,3 +1,26 @@ |
|||||||
|
|
||||||
|
import { HighlightBehavior } from "./behavior.highlight"; |
||||||
|
import { RedMarkBehavior } from "./behavior.redmark"; |
||||||
|
|
||||||
|
export const BehaviorFactory = { |
||||||
|
createBehavior (key, options) { |
||||||
|
let Behavior; |
||||||
|
switch (key) { |
||||||
|
case "highlight": |
||||||
|
Behavior = HighlightBehavior; |
||||||
|
break; |
||||||
|
case "redmark": |
||||||
|
Behavior = RedMarkBehavior; |
||||||
|
break; |
||||||
|
default: |
||||||
|
} |
||||||
|
|
||||||
|
return new Behavior(options); |
||||||
|
}, |
||||||
|
}; |
||||||
|
|
||||||
export { Behavior } from "./0.behavior"; |
export { Behavior } from "./0.behavior"; |
||||||
export { HighlightBehavior } from "./behavior.highlight"; |
export { |
||||||
export { RedMarkBehavior } from "./behavior.redmark"; |
HighlightBehavior, |
||||||
|
RedMarkBehavior |
||||||
|
}; |
||||||
|
@ -1,444 +1,441 @@ |
|||||||
/** |
/** |
||||||
* 事件集合 |
* 事件集合 |
||||||
* @class BI.Events |
|
||||||
*/ |
*/ |
||||||
BI._.extend(BI, { |
export const Events = { |
||||||
Events: { |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property keydown事件 |
||||||
* @property keydown事件 |
*/ |
||||||
*/ |
KEYDOWN: "_KEYDOWN", |
||||||
KEYDOWN: "_KEYDOWN", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 回撤事件 |
||||||
* @property 回撤事件 |
*/ |
||||||
*/ |
BACKSPACE: "_BACKSPACE", |
||||||
BACKSPACE: "_BACKSPACE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 空格事件 |
||||||
* @property 空格事件 |
*/ |
||||||
*/ |
SPACE: "_SPACE", |
||||||
SPACE: "_SPACE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 回车事件 |
||||||
* @property 回车事件 |
*/ |
||||||
*/ |
ENTER: "_ENTER", |
||||||
ENTER: "_ENTER", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 确定事件 |
||||||
* @property 确定事件 |
*/ |
||||||
*/ |
CONFIRM: "_CONFIRM", |
||||||
CONFIRM: "_CONFIRM", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 错误事件 |
||||||
* @property 错误事件 |
*/ |
||||||
*/ |
ERROR: "_ERROR", |
||||||
ERROR: "_ERROR", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 暂停事件 |
||||||
* @property 暂停事件 |
*/ |
||||||
*/ |
PAUSE: "_PAUSE", |
||||||
PAUSE: "_PAUSE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property destroy事件 |
||||||
* @property destroy事件 |
*/ |
||||||
*/ |
DESTROY: "_DESTROY", |
||||||
DESTROY: "_DESTROY", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 挂载事件 |
||||||
* @property 挂载事件 |
*/ |
||||||
*/ |
MOUNT: "_MOUNT", |
||||||
MOUNT: "_MOUNT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 取消挂载事件 |
||||||
* @property 取消挂载事件 |
*/ |
||||||
*/ |
UNMOUNT: "_UNMOUNT", |
||||||
UNMOUNT: "_UNMOUNT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 清除选择 |
||||||
* @property 清除选择 |
*/ |
||||||
*/ |
CLEAR: "_CLEAR", |
||||||
CLEAR: "_CLEAR", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 添加数据 |
||||||
* @property 添加数据 |
*/ |
||||||
*/ |
ADD: "_ADD", |
||||||
ADD: "_ADD", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 正在编辑状态事件 |
||||||
* @property 正在编辑状态事件 |
*/ |
||||||
*/ |
EDITING: "_EDITING", |
||||||
EDITING: "_EDITING", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 空状态事件 |
||||||
* @property 空状态事件 |
*/ |
||||||
*/ |
EMPTY: "_EMPTY", |
||||||
EMPTY: "_EMPTY", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 显示隐藏事件 |
||||||
* @property 显示隐藏事件 |
*/ |
||||||
*/ |
VIEW: "_VIEW", |
||||||
VIEW: "_VIEW", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 窗体改变大小 |
||||||
* @property 窗体改变大小 |
*/ |
||||||
*/ |
RESIZE: "_RESIZE", |
||||||
RESIZE: "_RESIZE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 编辑前事件 |
||||||
* @property 编辑前事件 |
*/ |
||||||
*/ |
BEFOREEDIT: "_BEFOREEDIT", |
||||||
BEFOREEDIT: "_BEFOREEDIT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 编辑后事件 |
||||||
* @property 编辑后事件 |
*/ |
||||||
*/ |
AFTEREDIT: "_AFTEREDIT", |
||||||
AFTEREDIT: "_AFTEREDIT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 开始编辑事件 |
||||||
* @property 开始编辑事件 |
*/ |
||||||
*/ |
STARTEDIT: "_STARTEDIT", |
||||||
STARTEDIT: "_STARTEDIT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 停止编辑事件 |
||||||
* @property 停止编辑事件 |
*/ |
||||||
*/ |
STOPEDIT: "_STOPEDIT", |
||||||
STOPEDIT: "_STOPEDIT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 值改变事件 |
||||||
* @property 值改变事件 |
*/ |
||||||
*/ |
CHANGE: "_CHANGE", |
||||||
CHANGE: "_CHANGE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 下拉弹出菜单事件 |
||||||
* @property 下拉弹出菜单事件 |
*/ |
||||||
*/ |
EXPAND: "_EXPAND", |
||||||
EXPAND: "_EXPAND", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 关闭下拉菜单事件 |
||||||
* @property 关闭下拉菜单事件 |
*/ |
||||||
*/ |
COLLAPSE: "_COLLAPSE", |
||||||
COLLAPSE: "_COLLAPSE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 下拉菜单切换展开收起事件 |
||||||
* @property 下拉菜单切换展开收起事件 |
*/ |
||||||
*/ |
TOGGLE: "_TOGGLE", |
||||||
TOGGLE: "_TOGGLE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 回调事件 |
||||||
* @property 回调事件 |
*/ |
||||||
*/ |
CALLBACK: "_CALLBACK", |
||||||
CALLBACK: "_CALLBACK", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 点击事件 |
||||||
* @property 点击事件 |
*/ |
||||||
*/ |
CLICK: "_CLICK", |
||||||
CLICK: "_CLICK", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 状态改变事件,一般是用在复选按钮和单选按钮 |
||||||
* @property 状态改变事件,一般是用在复选按钮和单选按钮 |
*/ |
||||||
*/ |
STATECHANGE: "_STATECHANGE", |
||||||
STATECHANGE: "_STATECHANGE", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 状态改变前事件 |
||||||
* @property 状态改变前事件 |
*/ |
||||||
*/ |
BEFORESTATECHANGE: "_BEFORESTATECHANGE", |
||||||
BEFORESTATECHANGE: "_BEFORESTATECHANGE", |
|
||||||
|
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 初始化事件 |
||||||
* @property 初始化事件 |
*/ |
||||||
*/ |
INIT: "_INIT", |
||||||
INIT: "_INIT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 初始化后事件 |
||||||
* @property 初始化后事件 |
*/ |
||||||
*/ |
AFTERINIT: "_AFTERINIT", |
||||||
AFTERINIT: "_AFTERINIT", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 滚动条滚动事件 |
||||||
* @property 滚动条滚动事件 |
*/ |
||||||
*/ |
SCROLL: "_SCROLL", |
||||||
SCROLL: "_SCROLL", |
|
||||||
|
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 开始加载事件 |
||||||
* @property 开始加载事件 |
*/ |
||||||
*/ |
STARTLOAD: "_STARTLOAD", |
||||||
STARTLOAD: "_STARTLOAD", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 加载后事件 |
||||||
* @property 加载后事件 |
*/ |
||||||
*/ |
AFTERLOAD: "_AFTERLOAD", |
||||||
AFTERLOAD: "_AFTERLOAD", |
|
||||||
|
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 提交前事件 |
||||||
* @property 提交前事件 |
*/ |
||||||
*/ |
BS: "beforesubmit", |
||||||
BS: "beforesubmit", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 提交后事件 |
||||||
* @property 提交后事件 |
*/ |
||||||
*/ |
AS: "aftersubmit", |
||||||
AS: "aftersubmit", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 提交完成事件 |
||||||
* @property 提交完成事件 |
*/ |
||||||
*/ |
SC: "submitcomplete", |
||||||
SC: "submitcomplete", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 提交失败事件 |
||||||
* @property 提交失败事件 |
*/ |
||||||
*/ |
SF: "submitfailure", |
||||||
SF: "submitfailure", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 提交成功事件 |
||||||
* @property 提交成功事件 |
*/ |
||||||
*/ |
SS: "submitsuccess", |
||||||
SS: "submitsuccess", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 校验提交前事件 |
||||||
* @property 校验提交前事件 |
*/ |
||||||
*/ |
BVW: "beforeverifywrite", |
||||||
BVW: "beforeverifywrite", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 校验提交后事件 |
||||||
* @property 校验提交后事件 |
*/ |
||||||
*/ |
AVW: "afterverifywrite", |
||||||
AVW: "afterverifywrite", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 校验后事件 |
||||||
* @property 校验后事件 |
*/ |
||||||
*/ |
AV: "afterverify", |
||||||
AV: "afterverify", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 填报前事件 |
||||||
* @property 填报前事件 |
*/ |
||||||
*/ |
BW: "beforewrite", |
||||||
BW: "beforewrite", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 填报后事件 |
||||||
* @property 填报后事件 |
*/ |
||||||
*/ |
AW: "afterwrite", |
||||||
AW: "afterwrite", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 填报成功事件 |
||||||
* @property 填报成功事件 |
*/ |
||||||
*/ |
WS: "writesuccess", |
||||||
WS: "writesuccess", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 填报失败事件 |
||||||
* @property 填报失败事件 |
*/ |
||||||
*/ |
WF: "writefailure", |
||||||
WF: "writefailure", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 添加行前事件 |
||||||
* @property 添加行前事件 |
*/ |
||||||
*/ |
BA: "beforeappend", |
||||||
BA: "beforeappend", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 添加行后事件 |
||||||
* @property 添加行后事件 |
*/ |
||||||
*/ |
AA: "afterappend", |
||||||
AA: "afterappend", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 删除行前事件 |
||||||
* @property 删除行前事件 |
*/ |
||||||
*/ |
BD: "beforedelete", |
||||||
BD: "beforedelete", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 删除行后事件 |
||||||
* @property 删除行后事件 |
*/ |
||||||
*/ |
AD: "beforedelete", |
||||||
AD: "beforedelete", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 未提交离开事件 |
||||||
* @property 未提交离开事件 |
*/ |
||||||
*/ |
UC: "unloadcheck", |
||||||
UC: "unloadcheck", |
|
||||||
|
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property PDF导出前事件 |
||||||
* @property PDF导出前事件 |
*/ |
||||||
*/ |
BTOPDF: "beforetopdf", |
||||||
BTOPDF: "beforetopdf", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property PDF导出后事件 |
||||||
* @property PDF导出后事件 |
*/ |
||||||
*/ |
ATOPDF: "aftertopdf", |
||||||
ATOPDF: "aftertopdf", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Excel导出前事件 |
||||||
* @property Excel导出前事件 |
*/ |
||||||
*/ |
BTOEXCEL: "beforetoexcel", |
||||||
BTOEXCEL: "beforetoexcel", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Excel导出后事件 |
||||||
* @property Excel导出后事件 |
*/ |
||||||
*/ |
ATOEXCEL: "aftertoexcel", |
||||||
ATOEXCEL: "aftertoexcel", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Word导出前事件 |
||||||
* @property Word导出前事件 |
*/ |
||||||
*/ |
BTOWORD: "beforetoword", |
||||||
BTOWORD: "beforetoword", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Word导出后事件 |
||||||
* @property Word导出后事件 |
*/ |
||||||
*/ |
ATOWORD: "aftertoword", |
||||||
ATOWORD: "aftertoword", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 图片导出前事件 |
||||||
* @property 图片导出前事件 |
*/ |
||||||
*/ |
BTOIMAGE: "beforetoimage", |
||||||
BTOIMAGE: "beforetoimage", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 图片导出后事件 |
||||||
* @property 图片导出后事件 |
*/ |
||||||
*/ |
ATOIMAGE: "aftertoimage", |
||||||
ATOIMAGE: "aftertoimage", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property HTML导出前事件 |
||||||
* @property HTML导出前事件 |
*/ |
||||||
*/ |
BTOHTML: "beforetohtml", |
||||||
BTOHTML: "beforetohtml", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property HTML导出后事件 |
||||||
* @property HTML导出后事件 |
*/ |
||||||
*/ |
ATOHTML: "aftertohtml", |
||||||
ATOHTML: "aftertohtml", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Excel导入前事件 |
||||||
* @property Excel导入前事件 |
*/ |
||||||
*/ |
BIMEXCEL: "beforeimportexcel", |
||||||
BIMEXCEL: "beforeimportexcel", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Excel导出后事件 |
||||||
* @property Excel导出后事件 |
*/ |
||||||
*/ |
AIMEXCEL: "afterimportexcel", |
||||||
AIMEXCEL: "afterimportexcel", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property PDF打印前事件 |
||||||
* @property PDF打印前事件 |
*/ |
||||||
*/ |
BPDFPRINT: "beforepdfprint", |
||||||
BPDFPRINT: "beforepdfprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property PDF打印后事件 |
||||||
* @property PDF打印后事件 |
*/ |
||||||
*/ |
APDFPRINT: "afterpdfprint", |
||||||
APDFPRINT: "afterpdfprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Flash打印前事件 |
||||||
* @property Flash打印前事件 |
*/ |
||||||
*/ |
BFLASHPRINT: "beforeflashprint", |
||||||
BFLASHPRINT: "beforeflashprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Flash打印后事件 |
||||||
* @property Flash打印后事件 |
*/ |
||||||
*/ |
AFLASHPRINT: "afterflashprint", |
||||||
AFLASHPRINT: "afterflashprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Applet打印前事件 |
||||||
* @property Applet打印前事件 |
*/ |
||||||
*/ |
BAPPLETPRINT: "beforeappletprint", |
||||||
BAPPLETPRINT: "beforeappletprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property Applet打印后事件 |
||||||
* @property Applet打印后事件 |
*/ |
||||||
*/ |
AAPPLETPRINT: "afterappletprint", |
||||||
AAPPLETPRINT: "afterappletprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 服务器打印前事件 |
||||||
* @property 服务器打印前事件 |
*/ |
||||||
*/ |
BSEVERPRINT: "beforeserverprint", |
||||||
BSEVERPRINT: "beforeserverprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 服务器打印后事件 |
||||||
* @property 服务器打印后事件 |
*/ |
||||||
*/ |
ASERVERPRINT: "afterserverprint", |
||||||
ASERVERPRINT: "afterserverprint", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 邮件发送前事件 |
||||||
* @property 邮件发送前事件 |
*/ |
||||||
*/ |
BEMAIL: "beforeemail", |
||||||
BEMAIL: "beforeemail", |
|
||||||
|
/** |
||||||
/** |
* @static |
||||||
* @static |
* @property 邮件发送后事件 |
||||||
* @property 邮件发送后事件 |
*/ |
||||||
*/ |
AEMAIL: "afteremail", |
||||||
AEMAIL: "afteremail" |
}; |
||||||
} |
|
||||||
}); |
|
||||||
|
@ -0,0 +1,2 @@ |
|||||||
|
export { Events } from "./events"; |
||||||
|
export * from "./var"; |
@ -1,167 +1,170 @@ |
|||||||
/** |
/** |
||||||
* 常量 |
* 常量 |
||||||
*/ |
*/ |
||||||
|
import { isNumber } from "../2.base"; |
||||||
|
|
||||||
BI._.extend(BI, { |
export const MAX = 0xfffffffffffffff; |
||||||
MAX: 0xfffffffffffffff, |
export const MIN = -0xfffffffffffffff; |
||||||
MIN: -0xfffffffffffffff, |
export const EVENT_RESPONSE_TIME = 200; |
||||||
EVENT_RESPONSE_TIME: 200, |
export const EVENT_BLUR = true; |
||||||
EVENT_BLUR: true, |
export const zIndex_layer = 1e5; |
||||||
zIndex_layer: 1e5, |
export const zIndex_popover = 1e6; |
||||||
zIndex_popover: 1e6, |
export const zIndex_popup = 1e7; |
||||||
zIndex_popup: 1e7, |
export const zIndex_masker = 1e8; |
||||||
zIndex_masker: 1e8, |
export const zIndex_tip = 1e9; |
||||||
zIndex_tip: 1e9, |
export const emptyStr = ""; |
||||||
emptyStr: "", |
export const pixUnit = "px"; |
||||||
pixUnit: "px", |
export const pixRatio = 1; |
||||||
pixRatio: 1, |
export const empty = null; |
||||||
// 一定返回最终的单位
|
export const Key = { |
||||||
pixFormat: function (pix, border) { |
48: "0", |
||||||
if (!BI.isNumber(pix)) { |
49: "1", |
||||||
return pix; |
50: "2", |
||||||
} |
51: "3", |
||||||
if (BI.pixUnit === "px") { |
52: "4", |
||||||
return (pix / BI.pixRatio - (border || 0)) + BI.pixUnit; |
53: "5", |
||||||
} |
54: "6", |
||||||
var length = pix / BI.pixRatio + BI.pixUnit; |
55: "7", |
||||||
if (border > 0) { |
56: "8", |
||||||
return `calc(${length} - ${border + "px"})`; |
57: "9", |
||||||
} |
65: "a", |
||||||
return length; |
66: "b", |
||||||
}, |
67: "c", |
||||||
toPix: function (pix, border) { |
68: "d", |
||||||
if (!BI.isNumber(pix)) { |
69: "e", |
||||||
return pix; |
70: "f", |
||||||
} |
71: "g", |
||||||
if (BI.pixUnit === "px") { |
72: "h", |
||||||
return pix - (border || 0) * BI.pixRatio; |
73: "i", |
||||||
} |
74: "j", |
||||||
if (border > 0) { |
75: "k", |
||||||
return `calc(${pix / BI.pixRatio + BI.pixUnit} - ${border + "px"})`; |
76: "l", |
||||||
} |
77: "m", |
||||||
|
78: "n", |
||||||
|
79: "o", |
||||||
|
80: "p", |
||||||
|
81: "q", |
||||||
|
82: "r", |
||||||
|
83: "s", |
||||||
|
84: "t", |
||||||
|
85: "u", |
||||||
|
86: "v", |
||||||
|
87: "w", |
||||||
|
88: "x", |
||||||
|
89: "y", |
||||||
|
90: "z", |
||||||
|
96: "0", |
||||||
|
97: "1", |
||||||
|
98: "2", |
||||||
|
99: "3", |
||||||
|
100: "4", |
||||||
|
101: "5", |
||||||
|
102: "6", |
||||||
|
103: "7", |
||||||
|
104: "8", |
||||||
|
105: "9", |
||||||
|
106: "*", |
||||||
|
107: "+", |
||||||
|
109: "-", |
||||||
|
110: ".", |
||||||
|
111: "/", |
||||||
|
}; |
||||||
|
export const KeyCode = { |
||||||
|
BACKSPACE: 8, |
||||||
|
COMMA: 188, |
||||||
|
DELETE: 46, |
||||||
|
DOWN: 40, |
||||||
|
END: 35, |
||||||
|
ENTER: 13, |
||||||
|
ESCAPE: 27, |
||||||
|
HOME: 36, |
||||||
|
LEFT: 37, |
||||||
|
NUMPAD_ADD: 107, |
||||||
|
NUMPAD_DECIMAL: 110, |
||||||
|
NUMPAD_DIVIDE: 111, |
||||||
|
NUMPAD_ENTER: 108, |
||||||
|
NUMPAD_MULTIPLY: 106, |
||||||
|
NUMPAD_SUBTRACT: 109, |
||||||
|
PAGE_DOWN: 34, |
||||||
|
PAGE_UP: 33, |
||||||
|
PERIOD: 190, |
||||||
|
RIGHT: 39, |
||||||
|
SPACE: 32, |
||||||
|
TAB: 9, |
||||||
|
UP: 38, |
||||||
|
}; |
||||||
|
export const Status = { |
||||||
|
SUCCESS: 1, |
||||||
|
WRONG: 2, |
||||||
|
START: 3, |
||||||
|
END: 4, |
||||||
|
WAITING: 5, |
||||||
|
READY: 6, |
||||||
|
RUNNING: 7, |
||||||
|
OUTOFBOUNDS: 8, |
||||||
|
NULL: -1, |
||||||
|
}; |
||||||
|
export const Direction = { |
||||||
|
Top: "top", |
||||||
|
Bottom: "bottom", |
||||||
|
Left: "left", |
||||||
|
Right: "right", |
||||||
|
Custom: "custom", |
||||||
|
}; |
||||||
|
export const Axis = { |
||||||
|
Vertical: "vertical", |
||||||
|
Horizontal: "horizontal", |
||||||
|
}; |
||||||
|
export const Selection = { |
||||||
|
Default: -2, |
||||||
|
None: -1, |
||||||
|
Single: 0, |
||||||
|
Multi: 1, |
||||||
|
All: 2, |
||||||
|
}; |
||||||
|
export const HorizontalAlign = { |
||||||
|
Left: "left", |
||||||
|
Right: "right", |
||||||
|
Center: "center", |
||||||
|
Stretch: "stretch", |
||||||
|
}; |
||||||
|
export const VerticalAlign = { |
||||||
|
Middle: "middle", |
||||||
|
Top: "top", |
||||||
|
Bottom: "bottom", |
||||||
|
Stretch: "stretch", |
||||||
|
}; |
||||||
|
export const StartOfWeek = 1; |
||||||
|
export const BlankSplitChar = "\u200b \u200b"; |
||||||
|
|
||||||
|
// 一定返回最终的单位
|
||||||
|
export function pixFormat(pix, border) { |
||||||
|
if (!isNumber(pix)) { |
||||||
|
return pix; |
||||||
|
} |
||||||
|
if (pixUnit === "px") { |
||||||
|
return (pix / pixRatio - (border || 0)) + pixUnit; |
||||||
|
} |
||||||
|
const length = pix / pixRatio + pixUnit; |
||||||
|
if (border > 0) { |
||||||
|
return `calc(${length} - ${`${border}px`})`; |
||||||
|
} |
||||||
|
|
||||||
|
return length; |
||||||
|
} |
||||||
|
|
||||||
|
export function toPix(pix, border) { |
||||||
|
if (!isNumber(pix)) { |
||||||
return pix; |
return pix; |
||||||
}, |
} |
||||||
emptyFn: function () { |
if (pixUnit === "px") { |
||||||
}, |
return pix - (border || 0) * pixRatio; |
||||||
empty: null, |
} |
||||||
Key: { |
if (border > 0) { |
||||||
48: "0", |
return `calc(${pix / pixRatio + pixUnit} - ${`${border}px`})`; |
||||||
49: "1", |
} |
||||||
50: "2", |
|
||||||
51: "3", |
return pix; |
||||||
52: "4", |
} |
||||||
53: "5", |
|
||||||
54: "6", |
export function emptyFn() {} |
||||||
55: "7", |
|
||||||
56: "8", |
|
||||||
57: "9", |
|
||||||
65: "a", |
|
||||||
66: "b", |
|
||||||
67: "c", |
|
||||||
68: "d", |
|
||||||
69: "e", |
|
||||||
70: "f", |
|
||||||
71: "g", |
|
||||||
72: "h", |
|
||||||
73: "i", |
|
||||||
74: "j", |
|
||||||
75: "k", |
|
||||||
76: "l", |
|
||||||
77: "m", |
|
||||||
78: "n", |
|
||||||
79: "o", |
|
||||||
80: "p", |
|
||||||
81: "q", |
|
||||||
82: "r", |
|
||||||
83: "s", |
|
||||||
84: "t", |
|
||||||
85: "u", |
|
||||||
86: "v", |
|
||||||
87: "w", |
|
||||||
88: "x", |
|
||||||
89: "y", |
|
||||||
90: "z", |
|
||||||
96: "0", |
|
||||||
97: "1", |
|
||||||
98: "2", |
|
||||||
99: "3", |
|
||||||
100: "4", |
|
||||||
101: "5", |
|
||||||
102: "6", |
|
||||||
103: "7", |
|
||||||
104: "8", |
|
||||||
105: "9", |
|
||||||
106: "*", |
|
||||||
107: "+", |
|
||||||
109: "-", |
|
||||||
110: ".", |
|
||||||
111: "/" |
|
||||||
}, |
|
||||||
KeyCode: { |
|
||||||
BACKSPACE: 8, |
|
||||||
COMMA: 188, |
|
||||||
DELETE: 46, |
|
||||||
DOWN: 40, |
|
||||||
END: 35, |
|
||||||
ENTER: 13, |
|
||||||
ESCAPE: 27, |
|
||||||
HOME: 36, |
|
||||||
LEFT: 37, |
|
||||||
NUMPAD_ADD: 107, |
|
||||||
NUMPAD_DECIMAL: 110, |
|
||||||
NUMPAD_DIVIDE: 111, |
|
||||||
NUMPAD_ENTER: 108, |
|
||||||
NUMPAD_MULTIPLY: 106, |
|
||||||
NUMPAD_SUBTRACT: 109, |
|
||||||
PAGE_DOWN: 34, |
|
||||||
PAGE_UP: 33, |
|
||||||
PERIOD: 190, |
|
||||||
RIGHT: 39, |
|
||||||
SPACE: 32, |
|
||||||
TAB: 9, |
|
||||||
UP: 38 |
|
||||||
}, |
|
||||||
Status: { |
|
||||||
SUCCESS: 1, |
|
||||||
WRONG: 2, |
|
||||||
START: 3, |
|
||||||
END: 4, |
|
||||||
WAITING: 5, |
|
||||||
READY: 6, |
|
||||||
RUNNING: 7, |
|
||||||
OUTOFBOUNDS: 8, |
|
||||||
NULL: -1 |
|
||||||
}, |
|
||||||
Direction: { |
|
||||||
Top: "top", |
|
||||||
Bottom: "bottom", |
|
||||||
Left: "left", |
|
||||||
Right: "right", |
|
||||||
Custom: "custom" |
|
||||||
}, |
|
||||||
Axis: { |
|
||||||
Vertical: "vertical", |
|
||||||
Horizontal: "horizontal" |
|
||||||
}, |
|
||||||
Selection: { |
|
||||||
Default: -2, |
|
||||||
None: -1, |
|
||||||
Single: 0, |
|
||||||
Multi: 1, |
|
||||||
All: 2 |
|
||||||
}, |
|
||||||
HorizontalAlign: { |
|
||||||
Left: "left", |
|
||||||
Right: "right", |
|
||||||
Center: "center", |
|
||||||
Stretch: "stretch" |
|
||||||
}, |
|
||||||
VerticalAlign: { |
|
||||||
Middle: "middle", |
|
||||||
Top: "top", |
|
||||||
Bottom: "bottom", |
|
||||||
Stretch: "stretch" |
|
||||||
}, |
|
||||||
StartOfWeek: 1, |
|
||||||
BlankSplitChar: "\u200b \u200b", |
|
||||||
}); |
|
||||||
|
@ -1,9 +1,21 @@ |
|||||||
|
// export * from "../../typescript/core/decorator/decorator.ts";
|
||||||
|
|
||||||
|
import { shortcut as biShortcut, provider as biProvider } from "./5.inject"; |
||||||
|
|
||||||
/** |
/** |
||||||
* 注册widget |
* 注册widget |
||||||
*/ |
*/ |
||||||
import { shortcut as biShortcut } from "./5.inject"; |
|
||||||
export function shortcut() { |
export function shortcut() { |
||||||
return function decorator(Target) { |
return function decorator(Target) { |
||||||
biShortcut(Target.xtype, Target); |
biShortcut(Target.xtype, Target); |
||||||
}; |
}; |
||||||
} |
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 注册provider |
||||||
|
*/ |
||||||
|
export function provider() { |
||||||
|
return function decorator(Target) { |
||||||
|
biProvider(Target.xtype, Target); |
||||||
|
}; |
||||||
|
} |
||||||
|
@ -1,74 +1,76 @@ |
|||||||
import { registFunction } from './plugins'; |
import { registFunction } from "./plugins"; |
||||||
|
import { isWidget, isString } from "../2.base"; |
||||||
|
|
||||||
export function Element(widget, attribs) { |
export function Element(widget, attribs) { |
||||||
this.l = this.r = this.t = this.b = 0; // 边框
|
this.l = this.r = this.t = this.b = 0; // 边框
|
||||||
this.marginLeft = this.marginRight = this.marginTop = this.marginBottom = 0; //间距
|
this.marginLeft = this.marginRight = this.marginTop = this.marginBottom = 0; // 间距
|
||||||
this.position = {}; |
this.position = {}; |
||||||
this.classMap = {}; |
this.classMap = {}; |
||||||
this.classList = []; |
this.classList = []; |
||||||
this.children = []; |
this.children = []; |
||||||
this.attribs = attribs || {}; |
this.attribs = attribs || {}; |
||||||
this.styles = {}; |
this.styles = {}; |
||||||
// 兼容处理
|
// 兼容处理
|
||||||
this['0'] = this; |
this["0"] = this; |
||||||
this.style = {}; |
this.style = {}; |
||||||
if (!widget) { |
if (!widget) { |
||||||
this.nodeName = 'body'; |
this.nodeName = "body"; |
||||||
this.position.x = 0; |
this.position.x = 0; |
||||||
this.position.y = 0; |
this.position.y = 0; |
||||||
this.attribs.id = 'body'; |
this.attribs.id = "body"; |
||||||
} else if (BI.isWidget(widget)) { |
} else if (isWidget(widget)) { |
||||||
this.widget = widget; |
this.widget = widget; |
||||||
this.nodeName = widget.options.tagName; |
this.nodeName = widget.options.tagName; |
||||||
this.textBaseLine = widget.options.textBaseLine; |
this.textBaseLine = widget.options.textBaseLine; |
||||||
} else if (BI.isString(widget)) { |
} else if (isString(widget)) { |
||||||
this.nodeName = widget; |
this.nodeName = widget; |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
initElement(Element); |
initElement(Element); |
||||||
registFunction(Element); |
registFunction(Element); |
||||||
|
|
||||||
function initElement(element) { |
function initElement(element) { |
||||||
element.prototype = { |
element.prototype = { |
||||||
appendChild(child) { |
appendChild(child) { |
||||||
child.parent = this; |
child.parent = this; |
||||||
if (this.children.push(child) !== 1) { |
if (this.children.push(child) !== 1) { |
||||||
var sibling = this.children[this.children.length - 2]; |
const sibling = this.children[this.children.length - 2]; |
||||||
sibling.next = child; |
sibling.next = child; |
||||||
child.prev = sibling; |
child.prev = sibling; |
||||||
child.next = null; |
child.next = null; |
||||||
} |
} |
||||||
}, |
}, |
||||||
append(child) { |
append(child) { |
||||||
child.parent = this; |
child.parent = this; |
||||||
if (this.children.push(child) !== 1) { |
if (this.children.push(child) !== 1) { |
||||||
var sibling = this.children[this.children.length - 2]; |
const sibling = this.children[this.children.length - 2]; |
||||||
sibling.next = child; |
sibling.next = child; |
||||||
child.prev = sibling; |
child.prev = sibling; |
||||||
child.next = null; |
child.next = null; |
||||||
} |
} |
||||||
}, |
}, |
||||||
getParent() { |
getParent() { |
||||||
return this.parent; |
return this.parent; |
||||||
}, |
}, |
||||||
getSiblings() { |
getSiblings() { |
||||||
var parent = this.getParent(); |
const parent = this.getParent(); |
||||||
return parent ? parent.getChildren() : [this]; |
|
||||||
}, |
|
||||||
getChildren() { |
|
||||||
return this.children; |
|
||||||
}, |
|
||||||
|
|
||||||
getBounds() { |
return parent ? parent.getChildren() : [this]; |
||||||
return {}; |
}, |
||||||
}, |
getChildren() { |
||||||
|
return this.children; |
||||||
|
}, |
||||||
|
|
||||||
width() { |
getBounds() { |
||||||
|
return {}; |
||||||
|
}, |
||||||
|
|
||||||
}, |
width() { |
||||||
height() { |
|
||||||
|
|
||||||
} |
}, |
||||||
}; |
height() { |
||||||
|
|
||||||
|
}, |
||||||
|
}; |
||||||
} |
} |
||||||
|
@ -1,22 +1,25 @@ |
|||||||
export const registAttrFun = (Element) => { |
import { isObject, each, isNull, isNotNull } from "../../2.base"; |
||||||
Element.registerFunction('attr', function (key, value) { |
|
||||||
var self = this; |
export const registAttrFun = Element => { |
||||||
if (BI.isObject(key)) { |
Element.registerFunction("attr", function (key, value) { |
||||||
BI.each(key, (k, v) => { |
if (isObject(key)) { |
||||||
self.attr(k, v); |
each(key, (k, v) => { |
||||||
}); |
this.attr(k, v); |
||||||
return this; |
}); |
||||||
} |
|
||||||
if (BI.isNull(value)) { |
return this; |
||||||
return this.attribs[key]; |
} |
||||||
} |
if (isNull(value)) { |
||||||
this.attribs[key] = value; |
return this.attribs[key]; |
||||||
return this; |
} |
||||||
}); |
this.attribs[key] = value; |
||||||
Element.registerFunction('hasAttrib', function (key) { |
|
||||||
return this.attribs[key] != null; |
return this; |
||||||
}); |
}); |
||||||
Element.registerFunction('removeAttr', function (key) { |
Element.registerFunction("hasAttrib", function (key) { |
||||||
delete this.attribs[key]; |
return isNotNull(this.attribs[key]); |
||||||
}); |
}); |
||||||
|
Element.registerFunction("removeAttr", function (key) { |
||||||
|
delete this.attribs[key]; |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,23 +1,23 @@ |
|||||||
export const registClassFun = (Element) => { |
export const registClassFun = Element => { |
||||||
Element.registerFunction('addClass', function (classList) { |
Element.registerFunction("addClass", function (classList) { |
||||||
var self = this; |
BI.each(classList.split(" "), (i, cls) => { |
||||||
BI.each(classList.split(' '), (i, cls) => { |
if (cls && !this.classMap[cls]) { |
||||||
if (cls && !self.classMap[cls]) { |
this.classList.push(cls); |
||||||
self.classList.push(cls); |
} |
||||||
} |
cls && (this.classMap[cls] = true); |
||||||
cls && (self.classMap[cls] = true); |
}); |
||||||
|
|
||||||
|
return this; |
||||||
}); |
}); |
||||||
return this; |
|
||||||
}); |
|
||||||
|
|
||||||
Element.registerFunction('removeClass', function (classList) { |
Element.registerFunction("removeClass", function (classList) { |
||||||
var self = this; |
BI.each(classList.split(" "), (i, cls) => { |
||||||
BI.each(classList.split(' '), (i, cls) => { |
if (cls && this.classMap[cls]) { |
||||||
if (cls && self.classMap[cls]) { |
delete this.classMap[cls]; |
||||||
delete self.classMap[cls]; |
this.classList.splice(this.classList.indexOf(cls), 1); |
||||||
self.classList.splice(self.classList.indexOf(cls), 1); |
} |
||||||
} |
}); |
||||||
|
|
||||||
|
return this; |
||||||
}); |
}); |
||||||
return this; |
|
||||||
}); |
|
||||||
}; |
}; |
||||||
|
@ -1,22 +1,26 @@ |
|||||||
export const registCssFun = (Element) => { |
import { isNull, isObject, each, trim, camelize } from "../../2.base"; |
||||||
Element.registerFunction('css', function (key, value) { |
|
||||||
var self = this; |
export const registCssFun = Element => { |
||||||
if (BI.isObject(key)) { |
Element.registerFunction("css", function (key, value) { |
||||||
BI.each(key, (k, v) => { |
if (isObject(key)) { |
||||||
self.css(k, v); |
each(key, (k, v) => { |
||||||
}); |
this.css(k, v); |
||||||
return this; |
}); |
||||||
} |
|
||||||
key = BI.trim(BI.camelize(key)); |
return this; |
||||||
return css(this, key, value); |
} |
||||||
}); |
key = trim(camelize(key)); |
||||||
|
|
||||||
|
return css(this, key, value); |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
|
||||||
const css = (elem, key, value) => { |
const css = (elem, key, value) => { |
||||||
key = BI.trim(BI.camelize(key)); |
key = trim(camelize(key)); |
||||||
if (BI.isNull(value)) { |
if (isNull(value)) { |
||||||
return elem.styles[key]; |
return elem.styles[key]; |
||||||
} |
} |
||||||
elem.styles[key] = value; |
elem.styles[key] = value; |
||||||
return elem; |
|
||||||
|
return elem; |
||||||
}; |
}; |
||||||
|
@ -1,12 +1,15 @@ |
|||||||
export const registDataFun = (Element) => { |
import { isNull } from "../../2.base"; |
||||||
Element.registerFunction('data', function (key, value) { |
|
||||||
if (!this._data) { |
export const registDataFun = Element => { |
||||||
this._data = {}; |
Element.registerFunction("data", function (key, value) { |
||||||
} |
if (!this._data) { |
||||||
if (BI.isNull(value)) { |
this._data = {}; |
||||||
return this._data[key]; |
} |
||||||
} |
if (isNull(value)) { |
||||||
this._data[key] = value; |
return this._data[key]; |
||||||
return this; |
} |
||||||
}); |
this._data[key] = value; |
||||||
|
|
||||||
|
return this; |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,9 +1,10 @@ |
|||||||
export const registEmptyFun = (Element) => { |
export const registEmptyFun = Element => { |
||||||
Element.registerFunction('empty', function (text) { |
Element.registerFunction("empty", function (text) { |
||||||
this.children = []; |
this.children = []; |
||||||
return this; |
|
||||||
}); |
return this; |
||||||
Element.registerFunction('destroy', function (text) { |
}); |
||||||
return this; |
Element.registerFunction("destroy", function (text) { |
||||||
}); |
return this; |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,32 +1,33 @@ |
|||||||
var returnThis = function () { |
function returnThis () { |
||||||
return this; |
return this; |
||||||
}; |
} |
||||||
export const registEventFun = (Element) => { |
|
||||||
[ |
export const registEventFun = Element => { |
||||||
'mousedown', |
[ |
||||||
'mouseup', |
"mousedown", |
||||||
'mousewheel', |
"mouseup", |
||||||
'keydown', |
"mousewheel", |
||||||
'keyup', |
"keydown", |
||||||
'focus', |
"keyup", |
||||||
'focusin', |
"focus", |
||||||
'focusout', |
"focusin", |
||||||
'click', |
"focusout", |
||||||
'on', |
"click", |
||||||
'off', |
"on", |
||||||
'bind', |
"off", |
||||||
'unbind', |
"bind", |
||||||
'trigger', |
"unbind", |
||||||
'hover', |
"trigger", |
||||||
'scroll', |
"hover", |
||||||
'scrollLeft', |
"scroll", |
||||||
'scrollTop', |
"scrollLeft", |
||||||
'resize', |
"scrollTop", |
||||||
'show', |
"resize", |
||||||
'hide', |
"show", |
||||||
'dblclick', |
"hide", |
||||||
'blur', |
"dblclick", |
||||||
].forEach((event) => { |
"blur" |
||||||
Element.registerFunction(event, returnThis); |
].forEach(event => { |
||||||
}); |
Element.registerFunction(event, returnThis); |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,15 +1,19 @@ |
|||||||
export const registHtmlFun = (Element) => { |
import { createWidget } from "../../5.inject"; |
||||||
Element.registerFunction('html', function (text) { |
import { htmlDecode } from "../../func"; |
||||||
if (text && text.charAt(0) === '<') { |
|
||||||
BI.createWidget({ |
export const registHtmlFun = Element => { |
||||||
type: 'bi.html', |
Element.registerFunction("html", function (text) { |
||||||
element: this.widget, |
if (text && text.charAt(0) === "<") { |
||||||
html: text, |
createWidget({ |
||||||
}); |
type: "bi.html", |
||||||
this.originalHtml = text; |
element: this.widget, |
||||||
} else { |
html: text, |
||||||
this.text = BI.htmlDecode(text); |
}); |
||||||
} |
this.originalHtml = text; |
||||||
return this; |
} else { |
||||||
}); |
this.text = htmlDecode(text); |
||||||
|
} |
||||||
|
|
||||||
|
return this; |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,31 +1,31 @@ |
|||||||
import { registAttrFun } from './attr'; |
import { registAttrFun } from "./attr"; |
||||||
import { registClassFun } from './class'; |
import { registClassFun } from "./class"; |
||||||
import { registCssFun } from './css'; |
import { registCssFun } from "./css"; |
||||||
import { registDataFun } from './data'; |
import { registDataFun } from "./data"; |
||||||
import { registEmptyFun } from './empty'; |
import { registEmptyFun } from "./empty"; |
||||||
import { registEventFun } from './event'; |
import { registEventFun } from "./event"; |
||||||
import { registHtmlFun } from './html'; |
import { registHtmlFun } from "./html"; |
||||||
import { registKeywordMarkFun } from './keywordMark'; |
import { registKeywordMarkFun } from "./keywordMark"; |
||||||
import { registRenderToHtmlFun } from './renderToHtml'; |
import { registRenderToHtmlFun } from "./renderToHtml"; |
||||||
import { registRenderToStringFun } from './renderToString'; |
import { registRenderToStringFun } from "./renderToString"; |
||||||
import { registTextFun } from './text'; |
import { registTextFun } from "./text"; |
||||||
import { registValFun } from './val'; |
import { registValFun } from "./val"; |
||||||
|
|
||||||
export const registFunction = (Element) => { |
export const registFunction = Element => { |
||||||
var functionMap = {}; |
const functionMap = {}; |
||||||
Element.registerFunction = (key, fn) => { |
Element.registerFunction = (key, fn) => { |
||||||
Element.prototype[key] = functionMap[key] = fn; |
Element.prototype[key] = functionMap[key] = fn; |
||||||
}; |
}; |
||||||
registAttrFun(Element); |
registAttrFun(Element); |
||||||
registClassFun(Element); |
registClassFun(Element); |
||||||
registCssFun(Element); |
registCssFun(Element); |
||||||
registDataFun(Element); |
registDataFun(Element); |
||||||
registEmptyFun(Element); |
registEmptyFun(Element); |
||||||
registEventFun(Element); |
registEventFun(Element); |
||||||
registHtmlFun(Element); |
registHtmlFun(Element); |
||||||
registKeywordMarkFun(Element); |
registKeywordMarkFun(Element); |
||||||
registRenderToStringFun(Element); |
registRenderToStringFun(Element); |
||||||
registRenderToHtmlFun(Element); |
registRenderToHtmlFun(Element); |
||||||
registTextFun(Element); |
registTextFun(Element); |
||||||
registValFun(Element); |
registValFun(Element); |
||||||
}; |
}; |
||||||
|
@ -1,6 +1,7 @@ |
|||||||
export const registKeywordMarkFun = (Element) => { |
export const registKeywordMarkFun = Element => { |
||||||
Element.registerFunction('__textKeywordMarked__', function (text) { |
Element.registerFunction("__textKeywordMarked__", function (text) { |
||||||
this[0].textContent = text; |
this[0].textContent = text; |
||||||
return this; |
|
||||||
}); |
return this; |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,65 +1,69 @@ |
|||||||
var skipArray = []; |
import { each, isNull, hyphenate, isNumeric, isKey } from "../../2.base"; |
||||||
var pxStyle = ['font-size', 'width', 'height']; |
|
||||||
var _renderToHtml = function (root) { |
const skipArray = []; |
||||||
var str = ''; |
const pxStyle = ["font-size", "width", "height"]; |
||||||
if (BI.isNull(root.originalHtml)) { |
function _renderToHtml(root) { |
||||||
if (root.tag !== 'body') { |
let str = ""; |
||||||
str += `<${root.tag}`; |
if (isNull(root.originalHtml)) { |
||||||
if (root.classList.length > 0) { |
if (root.tag !== "body") { |
||||||
str += ' class="'; |
str += `<${root.tag}`; |
||||||
BI.each(root.classList, (i, cls) => { |
if (root.classList.length > 0) { |
||||||
str += ` ${cls}`; |
str += " class=\""; |
||||||
}); |
each(root.classList, (i, cls) => { |
||||||
str += '"'; |
str += ` ${cls}`; |
||||||
} |
}); |
||||||
str += ' style="'; |
str += "\""; |
||||||
BI.each(root.originalStyles, (key, stl) => { |
} |
||||||
if ( |
str += " style=\""; |
||||||
skipArray.contains(key) || |
each(root.originalStyles, (key, stl) => { |
||||||
(key == 'height' && root.classList.contains('bi-design-components-data-data-table-cell')) |
if ( |
||||||
) { |
skipArray.contains(key) || |
||||||
return; |
(key === "height" && root.classList.contains("bi-design-components-data-data-table-cell")) |
||||||
} |
) { |
||||||
key = BI.hyphenate(key); |
return; |
||||||
if (key === 'font-family') { |
} |
||||||
stl = stl.replace(/\"/g, ''); |
key = hyphenate(key); |
||||||
} |
if (key === "font-family") { |
||||||
if (pxStyle.contains(key) && BI.isNumeric(stl)) { |
stl = stl.replace(/"/g, ""); |
||||||
stl += 'px'; |
} |
||||||
} |
if (pxStyle.contains(key) && isNumeric(stl)) { |
||||||
if (BI.isKey(stl)) { |
stl += "px"; |
||||||
str += ` ${key}:${stl};`; |
} |
||||||
|
if (isKey(stl)) { |
||||||
|
str += ` ${key}:${stl};`; |
||||||
|
} |
||||||
|
}); |
||||||
|
str += "\""; |
||||||
|
each(root.attribs, (key, attr) => { |
||||||
|
if (isKey(attr)) { |
||||||
|
str += ` ${key}=${attr}`; |
||||||
|
} |
||||||
|
}); |
||||||
|
if (root.textContent) { |
||||||
|
str += ` title=${root.textContent}`; |
||||||
|
} |
||||||
|
str += ">"; |
||||||
} |
} |
||||||
}); |
// 特殊处理,spread_table的行列元素是不取配置里的高度的,使用stretch拉伸的(leaves取了高度),但是功能代码里给单元格默认高度了,导致拉伸不了
|
||||||
str += '"'; |
// 而spread_grid_table的行列元素是取配置里的高度的,拉不拉伸都一样
|
||||||
BI.each(root.attribs, (key, attr) => { |
each(root.children, (i, child) => { |
||||||
if (BI.isKey(attr)) { |
str += _renderToHtml(child); |
||||||
str += ` ${key}=${attr}`; |
}); |
||||||
|
} else { |
||||||
|
str += root.originalHtml; |
||||||
|
} |
||||||
|
if (root.tag !== "body") { |
||||||
|
if (root.textContent) { |
||||||
|
str += root.textContent; |
||||||
} |
} |
||||||
}); |
str += `</${root.tag}>`; |
||||||
if (root.textContent) { |
|
||||||
str += ` title=${root.textContent}`; |
|
||||||
} |
|
||||||
str += '>'; |
|
||||||
} |
} |
||||||
// 特殊处理,spread_table的行列元素是不取配置里的高度的,使用stretch拉伸的(leaves取了高度),但是功能代码里给单元格默认高度了,导致拉伸不了
|
|
||||||
// 而spread_grid_table的行列元素是取配置里的高度的,拉不拉伸都一样
|
return str; |
||||||
BI.each(root.children, (i, child) => { |
} |
||||||
str += _renderToHtml(child); |
|
||||||
|
export const registRenderToHtmlFun = Element => { |
||||||
|
Element.registerFunction("renderToHtml", function () { |
||||||
|
return _renderToHtml(this); |
||||||
}); |
}); |
||||||
} else { |
|
||||||
str += root.originalHtml; |
|
||||||
} |
|
||||||
if (root.tag !== 'body') { |
|
||||||
if (root.textContent) { |
|
||||||
str += root.textContent; |
|
||||||
} |
|
||||||
str += `</${root.tag}>`; |
|
||||||
} |
|
||||||
return str; |
|
||||||
}; |
|
||||||
export const registRenderToHtmlFun = (Element) => { |
|
||||||
Element.registerFunction('renderToHtml', function () { |
|
||||||
return _renderToHtml(this); |
|
||||||
}); |
|
||||||
}; |
}; |
||||||
|
@ -1,50 +1,54 @@ |
|||||||
var skipArray = ['width', 'height']; |
import { each, hyphenate } from "../../2.base"; |
||||||
var _renderToString = function (root) { |
|
||||||
var str = ''; |
const skipArray = ["width", "height"]; |
||||||
if (root.nodeName !== 'body') { |
function _renderToString(root) { |
||||||
str += `<${root.nodeName}`; |
let str = ""; |
||||||
if (root.classList.length > 0) { |
if (root.nodeName !== "body") { |
||||||
str += ' class="'; |
str += `<${root.nodeName}`; |
||||||
BI.each(root.classList, (i, cls) => { |
if (root.classList.length > 0) { |
||||||
str += ` ${cls}`; |
str += " class=\""; |
||||||
}); |
each(root.classList, (i, cls) => { |
||||||
str += '"'; |
str += ` ${cls}`; |
||||||
|
}); |
||||||
|
str += "\""; |
||||||
|
} |
||||||
|
str += " style=\""; |
||||||
|
each(root.styles, (key, stl) => { |
||||||
|
if (skipArray.includes(key)) { |
||||||
|
return; |
||||||
|
} |
||||||
|
key = hyphenate(key); |
||||||
|
str += ` ${key}:${stl};`; |
||||||
|
}); |
||||||
|
str += ` width:${root.width}px;`; |
||||||
|
str += ` height:${root.height}px;`; |
||||||
|
str += " position: fixed;"; |
||||||
|
str += ` left: ${root.position.x}px;`; |
||||||
|
str += ` top: ${root.position.y}px;`; |
||||||
|
str += "\""; |
||||||
|
each(root.attribs, (key, attr) => { |
||||||
|
str += ` ${key}:${attr}`; |
||||||
|
}); |
||||||
|
str += ">"; |
||||||
} |
} |
||||||
str += ' style="'; |
each(root.children, (i, child) => { |
||||||
BI.each(root.styles, (key, stl) => { |
str += _renderToString(child); |
||||||
if (skipArray.includes(key)) { |
|
||||||
return; |
|
||||||
} |
|
||||||
key = BI.hyphenate(key); |
|
||||||
str += ` ${key}:${stl};`; |
|
||||||
}); |
}); |
||||||
str += ` width:${root.width}px;`; |
// if (root.htmlContent) {
|
||||||
str += ` height:${root.height}px;`; |
// str += root.htmlContent;
|
||||||
str += ' position: fixed;'; |
// }
|
||||||
str += ` left: ${root.position.x}px;`; |
if (root.nodeName !== "body") { |
||||||
str += ` top: ${root.position.y}px;`; |
if (root.text) { |
||||||
str += '"'; |
str += root.text; |
||||||
BI.each(root.attribs, (key, attr) => { |
} |
||||||
str += ` ${key}:${attr}`; |
str += `</${root.nodeName}>`; |
||||||
}); |
|
||||||
str += '>'; |
|
||||||
} |
|
||||||
BI.each(root.children, (i, child) => { |
|
||||||
str += _renderToString(child); |
|
||||||
}); |
|
||||||
// if (root.htmlContent) {
|
|
||||||
// str += root.htmlContent;
|
|
||||||
// }
|
|
||||||
if (root.nodeName !== 'body') { |
|
||||||
if (root.text) { |
|
||||||
str += root.text; |
|
||||||
} |
} |
||||||
str += `</${root.nodeName}>`; |
|
||||||
} |
return str; |
||||||
return str; |
} |
||||||
}; |
|
||||||
export const registRenderToStringFun = (Element) => { |
export const registRenderToStringFun = Element => { |
||||||
Element.registerFunction('renderToString', function () { |
Element.registerFunction("renderToString", function () { |
||||||
return _renderToString(this); |
return _renderToString(this); |
||||||
}); |
}); |
||||||
}; |
}; |
||||||
|
@ -1,10 +1,12 @@ |
|||||||
export const registTextFun = (Element) => { |
export const registTextFun = Element => { |
||||||
Element.registerFunction('setText', function (text) { |
Element.registerFunction("setText", function (text) { |
||||||
this.text = text; |
this.text = text; |
||||||
return this; |
|
||||||
}); |
return this; |
||||||
Element.registerFunction('setValue', function (text) { |
}); |
||||||
this.text = text; |
Element.registerFunction("setValue", function (text) { |
||||||
return this; |
this.text = text; |
||||||
}); |
|
||||||
|
return this; |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,9 +1,11 @@ |
|||||||
export const registValFun = (Element) => { |
export const registValFun = Element => { |
||||||
Element.registerFunction('val', function (value) { |
Element.registerFunction("val", function (value) { |
||||||
if (BI.isNotNull(value)) { |
if (BI.isNotNull(value)) { |
||||||
this.text = `${value}`; |
this.text = `${value}`; |
||||||
return this; |
|
||||||
} |
return this; |
||||||
return this.text; |
} |
||||||
}); |
|
||||||
|
return this.text; |
||||||
|
}); |
||||||
}; |
}; |
||||||
|
@ -1,58 +1,59 @@ |
|||||||
BI.Fragment = function () { |
import { isNotNull, isArray, isFunction, isKey, extend } from "./2.base"; |
||||||
}; |
|
||||||
|
|
||||||
BI.h = function (type, props, children) { |
export function Fragment () {} |
||||||
if (children != null) { |
|
||||||
if (!BI.isArray(children)) { |
export function h (type, props, children) { |
||||||
|
if (isNotNull(children)) { |
||||||
|
if (!isArray(children)) { |
||||||
children = [children]; |
children = [children]; |
||||||
} |
} |
||||||
} else { |
} else { |
||||||
children = []; |
children = []; |
||||||
} |
} |
||||||
if (arguments.length > 3) { |
if (arguments.length > 3) { |
||||||
for (var i = 3; i < arguments.length; i++) { |
for (let i = 3; i < arguments.length; i++) { |
||||||
if (BI.isArray(arguments[i])) { |
if (isArray(arguments[i])) { |
||||||
children = children.concat(arguments[i]); |
children = children.concat(arguments[i]); |
||||||
} else { |
} else { |
||||||
children.push(arguments[i]); |
children.push(arguments[i]); |
||||||
} |
} |
||||||
} |
} |
||||||
} |
} |
||||||
if (type === BI.Fragment) { |
if (type === Fragment) { |
||||||
return children; |
return children; |
||||||
} |
} |
||||||
if (BI.isFunction(type)) { |
if (isFunction(type)) { |
||||||
type = type.xtype || type; |
type = type.xtype || type; |
||||||
} |
} |
||||||
if (type === "el") { |
if (type === "el") { |
||||||
return BI.extend({ |
return extend({ |
||||||
el: children[0] |
el: children[0], |
||||||
}, props); |
}, props); |
||||||
} |
} |
||||||
if (type === "left") { |
if (type === "left") { |
||||||
return BI.extend({ |
return extend({ |
||||||
left: children |
left: children, |
||||||
}, props); |
}, props); |
||||||
} |
} |
||||||
if (type === "right") { |
if (type === "right") { |
||||||
return BI.extend({ |
return extend({ |
||||||
right: children |
right: children, |
||||||
}, props); |
}, props); |
||||||
} |
} |
||||||
if (children.length === 1) { |
if (children.length === 1) { |
||||||
if (BI.isKey(children[0])) { |
if (isKey(children[0])) { |
||||||
return BI.extend({ |
return extend({ |
||||||
type: type |
type, |
||||||
}, { text: children[0] }, props); |
}, { text: children[0] }, props); |
||||||
} |
} |
||||||
if (BI.isFunction(children[0])) { |
if (isFunction(children[0])) { |
||||||
return BI.extend({ |
return extend({ |
||||||
type: type |
type, |
||||||
}, { items: children[0] }, props); |
}, { items: children[0] }, props); |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
return BI.extend({ |
return extend({ |
||||||
type: type |
type, |
||||||
}, children.length > 0 ? { items: children } : {}, props); |
}, children.length > 0 ? { items: children } : {}, props); |
||||||
}; |
} |
||||||
|
@ -0,0 +1,83 @@ |
|||||||
|
import { Logic } from "./logic"; |
||||||
|
import { VerticalLayoutLogic, HorizontalLayoutLogic, TableLayoutLogic, HorizontalFillLayoutLogic } from "./logic.layout"; |
||||||
|
|
||||||
|
export const LogicFactory = { |
||||||
|
Type: { |
||||||
|
Vertical: "vertical", |
||||||
|
Horizontal: "horizontal", |
||||||
|
Table: "table", |
||||||
|
HorizontalFill: "horizontal_fill", |
||||||
|
}, |
||||||
|
createLogic (key, options) { |
||||||
|
let LogicCls; |
||||||
|
switch (key) { |
||||||
|
case LogicFactory.Type.Vertical: |
||||||
|
LogicCls = VerticalLayoutLogic; |
||||||
|
break; |
||||||
|
case LogicFactory.Type.Horizontal: |
||||||
|
LogicCls = HorizontalLayoutLogic; |
||||||
|
break; |
||||||
|
case LogicFactory.Type.Table: |
||||||
|
LogicCls = TableLayoutLogic; |
||||||
|
break; |
||||||
|
case LogicFactory.Type.HorizontalFill: |
||||||
|
LogicCls = HorizontalFillLayoutLogic; |
||||||
|
break; |
||||||
|
default: |
||||||
|
LogicCls = Logic; |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
return new LogicCls(options).createLogic(); |
||||||
|
}, |
||||||
|
|
||||||
|
createLogicTypeByDirection (direction) { |
||||||
|
switch (direction) { |
||||||
|
case BI.Direction.Top: |
||||||
|
case BI.Direction.Bottom: |
||||||
|
case BI.Direction.Custom: |
||||||
|
return BI.LogicFactory.Type.Vertical; |
||||||
|
case BI.Direction.Left: |
||||||
|
case BI.Direction.Right: |
||||||
|
return BI.LogicFactory.Type.Horizontal; |
||||||
|
default: |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
createLogicItemsByDirection (direction) { |
||||||
|
let items = Array.prototype.slice.call(arguments, 1); |
||||||
|
items = BI.map(items, (i, item) => { |
||||||
|
if (BI.isWidget(item)) { |
||||||
|
return { |
||||||
|
el: item, |
||||||
|
width: item.options.width, |
||||||
|
height: item.options.height, |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
return item; |
||||||
|
}); |
||||||
|
switch (direction) { |
||||||
|
case BI.Direction.Bottom: |
||||||
|
items.reverse(); |
||||||
|
break; |
||||||
|
case BI.Direction.Right: |
||||||
|
items.reverse(); |
||||||
|
break; |
||||||
|
case BI.Direction.Custom: |
||||||
|
items = items.slice(1); |
||||||
|
break; |
||||||
|
default: |
||||||
|
} |
||||||
|
|
||||||
|
return items; |
||||||
|
}, |
||||||
|
}; |
||||||
|
|
||||||
|
export { |
||||||
|
Logic, |
||||||
|
VerticalLayoutLogic, |
||||||
|
HorizontalLayoutLogic, |
||||||
|
TableLayoutLogic, |
||||||
|
HorizontalFillLayoutLogic |
||||||
|
}; |
@ -1,80 +1,8 @@ |
|||||||
/** |
|
||||||
* @class BI.Logic |
|
||||||
* @extends BI.OB |
|
||||||
*/ |
|
||||||
BI.Logic = BI.inherit(BI.OB, { |
|
||||||
createLogic: function () { |
|
||||||
return this.options || {}; |
|
||||||
} |
|
||||||
}); |
|
||||||
|
|
||||||
BI.LogicFactory = { |
import { OB } from "../3.ob"; |
||||||
Type: { |
|
||||||
Vertical: "vertical", |
|
||||||
Horizontal: "horizontal", |
|
||||||
Table: "table", |
|
||||||
HorizontalFill: "horizontal_fill" |
|
||||||
}, |
|
||||||
createLogic: function (key, options) { |
|
||||||
var logic; |
|
||||||
switch (key) { |
|
||||||
case BI.LogicFactory.Type.Vertical: |
|
||||||
logic = BI.VerticalLayoutLogic; |
|
||||||
break; |
|
||||||
case BI.LogicFactory.Type.Horizontal: |
|
||||||
logic = BI.HorizontalLayoutLogic; |
|
||||||
break; |
|
||||||
case BI.LogicFactory.Type.Table: |
|
||||||
logic = BI.TableLayoutLogic; |
|
||||||
break; |
|
||||||
case BI.LogicFactory.Type.HorizontalFill: |
|
||||||
logic = BI.HorizontalFillLayoutLogic; |
|
||||||
break; |
|
||||||
default: |
|
||||||
logic = BI.Logic; |
|
||||||
break; |
|
||||||
} |
|
||||||
return new logic(options).createLogic(); |
|
||||||
}, |
|
||||||
|
|
||||||
createLogicTypeByDirection: function (direction) { |
export class Logic extends OB { |
||||||
switch (direction) { |
createLogic() { |
||||||
case BI.Direction.Top: |
return this.options || {}; |
||||||
case BI.Direction.Bottom: |
|
||||||
case BI.Direction.Custom: |
|
||||||
return BI.LogicFactory.Type.Vertical; |
|
||||||
case BI.Direction.Left: |
|
||||||
case BI.Direction.Right: |
|
||||||
return BI.LogicFactory.Type.Horizontal; |
|
||||||
} |
|
||||||
}, |
|
||||||
|
|
||||||
createLogicItemsByDirection: function (direction) { |
|
||||||
var layout; |
|
||||||
var items = Array.prototype.slice.call(arguments, 1); |
|
||||||
items = BI.map(items, function (i, item) { |
|
||||||
if (BI.isWidget(item)) { |
|
||||||
return { |
|
||||||
el: item, |
|
||||||
width: item.options.width, |
|
||||||
height: item.options.height |
|
||||||
}; |
|
||||||
} |
|
||||||
return item; |
|
||||||
}); |
|
||||||
switch (direction) { |
|
||||||
case BI.Direction.Bottom: |
|
||||||
layout = BI.LogicFactory.Type.Vertical; |
|
||||||
items.reverse(); |
|
||||||
break; |
|
||||||
case BI.Direction.Right: |
|
||||||
layout = BI.LogicFactory.Type.Horizontal; |
|
||||||
items.reverse(); |
|
||||||
break; |
|
||||||
case BI.Direction.Custom: |
|
||||||
items = items.slice(1); |
|
||||||
break; |
|
||||||
} |
|
||||||
return items; |
|
||||||
} |
} |
||||||
}; |
} |
||||||
|
@ -1,51 +1,54 @@ |
|||||||
!(function () { |
import { isPlainObject, extend, each, isArray } from "./2.base"; |
||||||
BI.useInWorker = function () { |
import { Models } from "./5.inject"; |
||||||
function createWatcher (model, keyOrFn, cb, options) { |
|
||||||
if (BI.isPlainObject(cb)) { |
export function useInWorker () { |
||||||
options = cb; |
function createWatcher (model, keyOrFn, cb, options) { |
||||||
cb = cb.handler; |
if (isPlainObject(cb)) { |
||||||
} |
options = cb; |
||||||
options = options || {}; |
cb = cb.handler; |
||||||
return Fix.watch(model, keyOrFn, cb, BI.extend(options, { |
|
||||||
store: model |
|
||||||
})); |
|
||||||
} |
} |
||||||
|
options = options || {}; |
||||||
|
|
||||||
|
return Fix.watch(model, keyOrFn, cb, extend(options, { |
||||||
|
store: model, |
||||||
|
})); |
||||||
|
} |
||||||
|
|
||||||
var models = {}, watches = {}; |
const models = {}, watches = {}; |
||||||
addEventListener("message", function (e) { |
addEventListener("message", e => { |
||||||
var data = e.data; |
const data = e.data; |
||||||
switch (data.eventType) { |
let store; |
||||||
case "action": |
switch (data.eventType) { |
||||||
models[data.name][data.action].apply(models[data.name], data.args); |
case "action": |
||||||
break; |
models[data.name][data.action](...data.args); |
||||||
case "destroy": |
break; |
||||||
BI.each(watches[data.name], function (i, unwatches) { |
case "destroy": |
||||||
unwatches = BI.isArray(unwatches) ? unwatches : [unwatches]; |
each(watches[data.name], (i, unwatches) => { |
||||||
BI.each(unwatches, function (j, unwatch) { |
unwatches = isArray(unwatches) ? unwatches : [unwatches]; |
||||||
unwatch(); |
each(unwatches, (j, unwatch) => { |
||||||
}); |
unwatch(); |
||||||
}); |
}); |
||||||
delete models[data.name]; |
}); |
||||||
delete watches[data.name]; |
delete models[data.name]; |
||||||
break; |
delete watches[data.name]; |
||||||
case "create": |
break; |
||||||
var store = models[data.name] = BI.Models.getModel(data.type, data.options); |
case "create": |
||||||
watches[data.name] = []; |
store = models[data.name] = Models.getModel(data.type, data.options); |
||||||
BI.each(data.watches, function (i, key) { |
watches[data.name] = []; |
||||||
watches[data.name].push(createWatcher(store.model, key, function (newValue, oldValue) { |
each(data.watches, (i, key) => { |
||||||
postMessage(BI.extend({}, data, { |
watches[data.name].push(createWatcher(store.model, key, (newValue, oldValue) => { |
||||||
eventType: "watch", |
postMessage(extend({}, data, { |
||||||
currentWatchType: key |
eventType: "watch", |
||||||
}, {args: [newValue, oldValue]})); |
currentWatchType: key, |
||||||
})); |
}, { args: [newValue, oldValue] })); |
||||||
}); |
})); |
||||||
postMessage(BI.extend({}, data, { |
}); |
||||||
eventType: "create" |
postMessage(extend({}, data, { |
||||||
}, {msg: store.model})); |
eventType: "create", |
||||||
break; |
}, { msg: store.model })); |
||||||
default: |
break; |
||||||
break; |
default: |
||||||
} |
break; |
||||||
}, false); |
} |
||||||
}; |
}, false); |
||||||
}()); |
} |
||||||
|
Loading…
Reference in new issue