diff --git a/bi/case.js b/bi/case.js
index 7f196ca752..c5d73ef20e 100644
--- a/bi/case.js
+++ b/bi/case.js
@@ -1,12444 +1,12444 @@
-/**
- * 可以改变图标的button
- *
- * Created by GUY on 2016/2/2.
- *
- * @class BI.IconChangeButton
- * @extends BI.Single
- */
-BI.IconChangeButton = BI.inherit(BI.Single, {
- _defaultConfig: function () {
- var conf = BI.IconChangeButton.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: "bi-icon-change-button",
- iconClass: "",
- iconWidth: null,
- iconHeight: null,
-
- stopEvent: false,
- stopPropagation: false,
- selected: false,
- once: false, //点击一次选中有效,再点无效
- forceSelected: false, //点击即选中, 选中了就不会被取消
- forceNotSelected: false, //无论怎么点击都不会被选中
- disableSelected: false, //使能选中
-
- shadow: false,
- isShadowShowingOnSelected: false, //选中状态下是否显示阴影
- trigger: null,
- handler: BI.emptyFn
- })
- },
-
- _init: function () {
- BI.IconChangeButton.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.button = BI.createWidget({
- type: "bi.icon_button",
- element: this,
- cls: o.iconClass,
- height: o.height,
- iconWidth: o.iconWidth,
- iconHeight: o.iconHeight,
-
- stopEvent: o.stopEvent,
- stopPropagation: o.stopPropagation,
- selected: o.selected,
- once: o.once,
- forceSelected: o.forceSelected,
- forceNotSelected: o.forceNotSelected,
- disableSelected: o.disableSelected,
-
- shadow: o.shadow,
- isShadowShowingOnSelected: o.isShadowShowingOnSelected,
- trigger: o.trigger,
- handler: o.handler
- });
-
- this.button.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.button.on(BI.IconButton.EVENT_CHANGE, function () {
- self.fireEvent(BI.IconChangeButton.EVENT_CHANGE, arguments);
- });
- },
-
- isSelected: function () {
- return this.button.isSelected();
- },
-
- setSelected: function (b) {
- this.button.setSelected(b);
- },
-
- setIcon: function (cls) {
- var o = this.options;
- if (o.iconClass !== cls) {
- this.element.removeClass(o.iconClass).addClass(cls);
- o.iconClass = cls;
- }
- }
-});
-BI.IconChangeButton.EVENT_CHANGE = "IconChangeButton.EVENT_CHANGE";
-BI.shortcut("bi.icon_change_button", BI.IconChangeButton);/**
- * guy
- * @extends BI.Single
- * @type {*|void|Object}
- */
-BI.HalfIconButton = BI.inherit(BI.IconButton, {
- _defaultConfig: function() {
- var conf = BI.HalfIconButton.superclass._defaultConfig.apply(this,arguments);
- return BI.extend(conf, {
- extraCls: "bi-half-icon-button check-half-select-icon",
- height: 16,
- width: 16,
- iconWidth: 16,
- iconHeight: 16,
- selected: false
- })
- },
-
- _init : function() {
- BI.HalfIconButton.superclass._init.apply(this, arguments);
- },
-
- doClick: function(){
- BI.HalfIconButton.superclass.doClick.apply(this, arguments);
- if(this.isValid()){
- this.fireEvent(BI.HalfIconButton.EVENT_CHANGE);
- }
- }
-});
-BI.HalfIconButton.EVENT_CHANGE = "HalfIconButton.EVENT_CHANGE";
-
-BI.shortcut("bi.half_icon_button", BI.HalfIconButton);/**
- * 统一的trigger图标按钮
- *
- * Created by GUY on 2015/9/16.
- * @class BI.TriggerIconButton
- * @extends BI.IconButton
- */
-BI.TriggerIconButton = BI.inherit(BI.IconButton, {
-
- _defaultConfig: function () {
- var conf = BI.TriggerIconButton.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-trigger-icon-button",
- extraCls: "pull-down-font"
- });
- },
-
- _init: function () {
- BI.TriggerIconButton.superclass._init.apply(this, arguments);
- },
-
- doClick: function () {
- BI.TriggerIconButton.superclass.doClick.apply(this, arguments);
- if (this.isValid()) {
- this.fireEvent(BI.TriggerIconButton.EVENT_CHANGE, this);
- }
- }
-});
-BI.TriggerIconButton.EVENT_CHANGE = "TriggerIconButton.EVENT_CHANGE";
-BI.shortcut("bi.trigger_icon_button", BI.TriggerIconButton);/**
- * guy
- * 复选框item
- * @type {*|void|Object}
- */
-BI.MultiSelectItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.MultiSelectItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-multi-select-item",
- height: 25,
- logic: {
- dynamic: false
- }
- })
- },
- _init: function () {
- BI.MultiSelectItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.checkbox"
- });
- this.text = BI.createWidget({
- type: "bi.label",
- cls: "list-item-text",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- rgap: o.rgap,
- text: o.text,
- keyword: o.keyword,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(self.isSelected());
- }
- });
-
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic("horizontal", BI.extend(o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection("left", {
- type: "bi.center_adapt",
- items: [this.checkbox],
- width: 36
- }, this.text)
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.MultiSelectItem.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- if (this.isValid()) {
- this.fireEvent(BI.MultiSelectItem.EVENT_CHANGE, this.getValue(), this);
- }
- },
-
- setSelected: function (v) {
- BI.MultiSelectItem.superclass.setSelected.apply(this, arguments);
- this.checkbox.setSelected(v);
- }
-});
-BI.MultiSelectItem.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.multi_select_item", BI.MultiSelectItem);/**
- * Created by GUY on 2016/2/2.
- *
- * @class BI.SingleSelectIconTextItem
- * @extends BI.BasicButton
- */
-BI.SingleSelectIconTextItem = BI.inherit(BI.Single, {
- _defaultConfig: function () {
- return BI.extend(BI.SingleSelectIconTextItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-single-select-icon-text-item bi-list-item-active",
- iconClass: "",
- hgap: 10,
- height: 25
- })
- },
- _init: function () {
- BI.SingleSelectIconTextItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.text = BI.createWidget({
- type: "bi.icon_text_item",
- element: this,
- cls: o.iconClass,
- once: o.once,
- selected: o.selected,
- height: o.height,
- iconHeight: o.iconHeight,
- iconWidth: o.iconWidth,
- text: o.text,
- keyword: o.keyword,
- value: o.value,
- py: o.py
- });
- this.text.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- },
-
- isSelected: function () {
- return this.text.isSelected();
- },
-
- setSelected: function (b) {
- this.text.setSelected(b);
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.SingleSelectIconTextItem.superclass.doClick.apply(this, arguments);
- }
-});
-
-BI.shortcut("bi.single_select_icon_text_item", BI.SingleSelectIconTextItem);/**
- * guy
- * 复选框item
- * @type {*|void|Object}
- */
-BI.SingleSelectItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.SingleSelectItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-single-select-item bi-list-item-active",
- hgap: 10,
- height: 25,
- textAlign: "left",
- })
- },
- _init: function () {
- BI.SingleSelectItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.text = BI.createWidget({
- type: "bi.label",
- element: this,
- textAlign: o.textAlign,
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- keyword: o.keyword,
- value: o.value,
- py: o.py
- });
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.SingleSelectItem.superclass.doClick.apply(this, arguments);
- },
-
- setSelected: function (v) {
- BI.SingleSelectItem.superclass.setSelected.apply(this, arguments);
- }
-});
-
-BI.shortcut("bi.single_select_item", BI.SingleSelectItem);/**
- * guy
- * 单选框item
- * @type {*|void|Object}
- */
-BI.SingleSelectRadioItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.SingleSelectRadioItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-single-select-radio-item bi-list-item-active",
- logic: {
- dynamic: false
- },
- hgap: 10,
- height: 25
- })
- },
- _init: function () {
- BI.SingleSelectRadioItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.radio = BI.createWidget({
- type: "bi.radio"
- });
- this.radio.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(!self.isSelected());
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.text = BI.createWidget({
- type: "bi.label",
- cls: "list-item-text",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- keyword: o.keyword,
- value: o.value,
- py: o.py
- });
-
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic("horizontal", BI.extend(o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection("left", {
- type: "bi.center_adapt",
- items: [this.radio],
- width: 36
- }, this.text)
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.SingleSelectRadioItem.superclass.doClick.apply(this, arguments);
- this.radio.setSelected(this.isSelected());
- },
-
- setSelected: function (v) {
- BI.SingleSelectRadioItem.superclass.setSelected.apply(this, arguments);
- this.radio.setSelected(v);
-
- }
-});
-
-BI.shortcut("bi.single_select_radio_item", BI.SingleSelectRadioItem);/**
- * Created by roy on 15/10/16.
- */
-BI.ArrowNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.ArrowNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-arrow-group-node bi-list-item",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- open: false,
- height: 25
- });
- },
- _init: function () {
- var self = this, o = this.options;
- BI.ArrowNode.superclass._init.apply(this, arguments);
- this.checkbox = BI.createWidget({
- type: "bi.arrow_tree_group_node_checkbox",
- iconWidth: 13,
- iconHeight: 13
- });
-
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
-
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(self.isSelected());
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 25,
- el: this.checkbox
- }, this.text);
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.ArrowNode.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isOpened());
- },
- setValue: function (v) {
- this.text.setValue(v);
- },
-
- setOpened: function (v) {
- BI.ArrowNode.superclass.setOpened.apply(this, arguments);
- this.checkbox.setSelected(v);
- }
-});
-
-BI.shortcut("bi.arrow_group_node", BI.ArrowNode);/**
- * 加号表示的组节点
- * Created by GUY on 2015/9/6.
- * @class BI.FirstPlusGroupNode
- * @extends BI.NodeButton
- */
-BI.FirstPlusGroupNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.FirstPlusGroupNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-first-plus-group-node bi-list-item",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- open: false,
- height: 25
- })
- },
- _init: function () {
- BI.FirstPlusGroupNode.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.first_tree_node_checkbox",
- stopPropagation: true
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- if (this.isSelected()) {
- self.triggerExpand();
- } else {
- self.triggerCollapse();
- }
- }
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 25,
- el: this.checkbox
- }, this.text);
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.FirstPlusGroupNode.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- },
-
- setOpened: function (v) {
- BI.FirstPlusGroupNode.superclass.setOpened.apply(this, arguments);
- if (BI.isNotNull(this.checkbox)) {
- this.checkbox.setSelected(v);
- }
- }
-});
-
-BI.shortcut("bi.first_plus_group_node", BI.FirstPlusGroupNode);/**
- * Created by User on 2016/3/31.
- */
-/**
- * > + icon + 文本
- * @class BI.IconArrowNode
- * @extends BI.NodeButton
- */
-BI.IconArrowNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.IconArrowNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-icon-arrow-node bi-list-item",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- open: false,
- height: 25,
- iconHeight: 13,
- iconWidth: 13,
- iconCls: ""
- })
- },
- _init: function () {
- BI.IconArrowNode.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.tree_group_node_checkbox",
- width: 23,
- stopPropagation: true
- });
-
- var icon = BI.createWidget({
- type: "bi.center_adapt",
- cls: o.iconCls,
- width: 23,
- items: [{
- type: "bi.icon",
- height: o.iconHeight,
- width: o.iconWidth
- }]
- });
-
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- if (this.isSelected()) {
- self.triggerExpand();
- } else {
- self.triggerCollapse();
- }
- }
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 25,
- el: this.checkbox
- }, {
- width: 23,
- el: icon
- }, this.text);
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.IconArrowNode.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- },
-
- setOpened: function (v) {
- BI.IconArrowNode.superclass.setOpened.apply(this, arguments);
- if (BI.isNotNull(this.checkbox)) {
- this.checkbox.setSelected(v);
- }
- }
-});
-
-BI.shortcut("bi.icon_arrow_node", BI.IconArrowNode);/**
- * 加号表示的组节点
- * Created by GUY on 2015/9/6.
- * @class BI.LastPlusGroupNode
- * @extends BI.NodeButton
- */
-BI.LastPlusGroupNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.LastPlusGroupNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-last-plus-group-node bi-list-item",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- open: false,
- height: 25
- })
- },
- _init: function () {
- BI.LastPlusGroupNode.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.last_tree_node_checkbox",
- stopPropagation: true
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if(type === BI.Events.CLICK) {
- if (this.isSelected()) {
- self.triggerExpand();
- } else {
- self.triggerCollapse();
- }
- }
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 25,
- el: this.checkbox
- }, this.text);
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.LastPlusGroupNode.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- },
-
- setOpened: function (v) {
- BI.LastPlusGroupNode.superclass.setOpened.apply(this, arguments);
- if (BI.isNotNull(this.checkbox)) {
- this.checkbox.setSelected(v);
- }
- }
-});
-
-BI.shortcut("bi.last_plus_group_node", BI.LastPlusGroupNode);/**
- * 加号表示的组节点
- * Created by GUY on 2015/9/6.
- * @class BI.MidPlusGroupNode
- * @extends BI.NodeButton
- */
-BI.MidPlusGroupNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.MidPlusGroupNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-mid-plus-group-node bi-list-item",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- open: false,
- height: 25
- })
- },
- _init: function () {
- BI.MidPlusGroupNode.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.mid_tree_node_checkbox",
- stopPropagation: true
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- if (this.isSelected()) {
- self.triggerExpand();
- } else {
- self.triggerCollapse();
- }
- }
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 25,
- el: this.checkbox
- }, this.text);
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.MidPlusGroupNode.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- },
-
- setOpened: function (v) {
- BI.MidPlusGroupNode.superclass.setOpened.apply(this, arguments);
- if (BI.isNotNull(this.checkbox)) {
- this.checkbox.setSelected(v);
- }
- }
-});
-
-BI.shortcut("bi.mid_plus_group_node", BI.MidPlusGroupNode);BI.MultiLayerIconArrowNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.MultiLayerIconArrowNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- extraCls: "bi-multilayer-icon-arrow-node bi-list-item",
- layer: 0,//第几层级
- id: "",
- pId: "",
- open: false,
- height: 25,
- iconHeight: 13,
- iconWidth: 13,
- iconCls: ""
- })
- },
- _init: function () {
- BI.MultiLayerIconArrowNode.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.node = BI.createWidget({
- type: "bi.icon_arrow_node",
- iconCls: o.iconCls,
- //logic: {
- // dynamic: true
- //},
- id: o.id,
- pId: o.pId,
- open: o.open,
- height: o.height,
- iconHeight: o.iconHeight,
- iconWidth: o.iconWidth,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.node.on(BI.Controller.EVENT_CHANGE, function (type) {
- self.setSelected(self.isSelected());
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- var items = [];
- BI.count(0, o.layer, function () {
- items.push({
- type: "bi.layout",
- width: 13,
- height: o.height
- })
- });
- items.push(this.node);
- BI.createWidget({
- type: "bi.td",
- element: this,
- columnSize: BI.makeArray(o.layer, 13),
- items: [items]
- })
- },
-
- isOnce: function () {
- return true;
- },
-
- doRedMark: function () {
- this.node.doRedMark.apply(this.node, arguments);
- },
-
- unRedMark: function () {
- this.node.unRedMark.apply(this.node, arguments);
- },
-
- isSelected: function () {
- return this.node.isSelected();
- },
-
- setSelected: function (b) {
- BI.MultiLayerIconArrowNode.superclass.setSelected.apply(this, arguments);
- this.node.setSelected(b);
- },
-
- doClick: function () {
- BI.NodeButton.superclass.doClick.apply(this, arguments);
- this.node.setSelected(this.isSelected());
- },
-
- setOpened: function (v) {
- BI.MultiLayerIconArrowNode.superclass.setOpened.apply(this, arguments);
- this.node.setOpened(v);
- }
-});
-
-BI.shortcut("bi.multilayer_icon_arrow_node", BI.MultiLayerIconArrowNode);/**
- * 加号表示的组节点
- * Created by GUY on 2015/9/6.
- * @class BI.PlusGroupNode
- * @extends BI.NodeButton
- */
-BI.PlusGroupNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.PlusGroupNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-plus-group-node bi-list-item",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- open: false,
- height: 25
- })
- },
- _init: function () {
- BI.PlusGroupNode.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.tree_node_checkbox"
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(self.isSelected());
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 25,
- el: this.checkbox
- }, this.text);
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.PlusGroupNode.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- },
-
- setOpened: function (v) {
- BI.PlusGroupNode.superclass.setOpened.apply(this, arguments);
- if (this.checkbox) {
- this.checkbox.setSelected(v);
- }
- }
-});
-
-BI.shortcut("bi.plus_group_node", BI.PlusGroupNode);/**
- * 三角号表示的组节点
- * Created by GUY on 2015/9/6.
- * @class BI.TriangleGroupNode
- * @extends BI.NodeButton
- */
-BI.TriangleGroupNode = BI.inherit(BI.NodeButton, {
- _defaultConfig: function () {
- var conf = BI.TriangleGroupNode.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-triangle-group-node bi-list-item",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- open: false,
- height: 25
- })
- },
- _init: function () {
- BI.TriangleGroupNode.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- iconWidth: 13,
- iconHeight: 13,
- type: "bi.tree_group_node_checkbox"
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py,
- keyword: o.keyword
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(self.isSelected());
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 25,
- el: this.checkbox
- }, this.text);
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doClick: function () {
- BI.TriangleGroupNode.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isOpened());
- },
-
- setOpened: function (v) {
- BI.TriangleGroupNode.superclass.setOpened.apply(this, arguments);
- this.checkbox.setSelected(v);
- },
-
- setText: function(text){
- BI.TriangleGroupNode.superclass.setText.apply(this, arguments);
- this.text.setText(text);
- }
-});
-
-BI.shortcut("bi.triangle_group_node", BI.TriangleGroupNode);/**
- * guy
- * 复选框item
- * @type {*|void|Object}
- */
-BI.FirstTreeLeafItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.FirstTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-first-tree-leaf-item bi-list-item-active",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- layer: 0,
- height: 25
- })
- },
- _init: function () {
- BI.FirstTreeLeafItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.checkbox"
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(self.isSelected());
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, ((o.layer === 0) ? "" : {
- width: 13,
- el: {
- type: "bi.layout",
- cls: "base-line-conn-background",
- width: 13,
- height: o.height
- }
- }), {
- width: 25,
- el: {
- type: "bi.layout",
- cls: "mid-line-conn-background",
- width: 25,
- height: o.height
- }
- }, {
- el: this.text
- });
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- getId: function () {
- return this.options.id;
- },
-
- getPId: function () {
- return this.options.pId;
- },
-
- doClick: function () {
- BI.FirstTreeLeafItem.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- },
-
- setSelected: function (v) {
- BI.FirstTreeLeafItem.superclass.setSelected.apply(this, arguments);
- this.checkbox.setSelected(v);
- }
-});
-
-BI.shortcut("bi.first_tree_leaf_item", BI.FirstTreeLeafItem);BI.IconTreeLeafItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.IconTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-icon-tree-leaf-item bi-list-item-active",
- logic: {
- dynamic: false
- },
- height: 25,
- iconWidth: 16,
- iconHeight: 16,
- iconCls: ""
- })
- },
-
- _init: function () {
- BI.IconTreeLeafItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- var icon = BI.createWidget({
- type: "bi.center_adapt",
- width: 23,
- cls: o.iconCls,
- items: [{
- type: "bi.icon",
- width: o.iconWidth,
- height: o.iconHeight
- }]
- });
-
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
- width: 23,
- el: icon
- }, {
- el: this.text
- });
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- getId: function () {
- return this.options.id;
- },
-
- getPId: function () {
- return this.options.pId;
- },
-
- doClick: function () {
- BI.IconTreeLeafItem.superclass.doClick.apply(this, arguments);
- },
-
- setSelected: function (v) {
- BI.IconTreeLeafItem.superclass.setSelected.apply(this, arguments);
- }
-});
-
-BI.shortcut("bi.icon_tree_leaf_item", BI.IconTreeLeafItem);/**
- * guy
- * 复选框item
- * @type {*|void|Object}
- */
-BI.LastTreeLeafItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.LastTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-last-tree-leaf-item bi-list-item-active",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- layer: 0,
- height: 25
- })
- },
- _init: function () {
- BI.LastTreeLeafItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.checkbox"
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(self.isSelected());
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, ((o.layer === 0) ? "" : {
- width: 13,
- el: {
- type: "bi.layout",
- cls: "base-line-conn-background",
- width: 13,
- height: o.height
- }
- }), {
- width: 25,
- el: {
- type: "bi.layout",
- cls: "mid-line-conn-background",
- width: 25,
- height: o.height
- }
- }, {
- el: this.text
- });
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- getId: function () {
- return this.options.id;
- },
-
- getPId: function () {
- return this.options.pId;
- },
-
- doClick: function () {
- BI.LastTreeLeafItem.superclass.doClick.apply(this, arguments);
- // this.checkbox.setSelected(this.isSelected());
- },
-
- setSelected: function (v) {
- BI.LastTreeLeafItem.superclass.setSelected.apply(this, arguments);
- // this.checkbox.setSelected(v);
- }
-});
-
-BI.shortcut("bi.last_tree_leaf_item", BI.LastTreeLeafItem);/**
- * guy
- * 复选框item
- * @type {*|void|Object}
- */
-BI.MidTreeLeafItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.MidTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-mid-tree-leaf-item bi-list-item-active",
- logic: {
- dynamic: false
- },
- id: "",
- pId: "",
- layer: 0,
- height: 25
- })
- },
- _init: function () {
- BI.MidTreeLeafItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.checkbox"
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self.setSelected(self.isSelected());
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
- var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, ((o.layer === 0) ? "" : {
- width: 13,
- el: {
- type: "bi.layout",
- cls: "base-line-conn-background",
- width: 13,
- height: o.height
- }
- }), {
- width: 25,
- el: {
- type: "bi.layout",
- cls: "mid-line-conn-background",
- width: 25,
- height: o.height
- }
- }, {
- el: this.text
- });
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
- items: items
- }))));
- },
-
- doRedMark: function () {
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- getId: function () {
- return this.options.id;
- },
-
- getPId: function () {
- return this.options.pId;
- },
-
- doClick: function () {
- BI.MidTreeLeafItem.superclass.doClick.apply(this, arguments);
- this.checkbox.setSelected(this.isSelected());
- },
-
- setSelected: function (v) {
- BI.MidTreeLeafItem.superclass.setSelected.apply(this, arguments);
- this.checkbox.setSelected(v);
- }
-});
-
-BI.shortcut("bi.mid_tree_leaf_item", BI.MidTreeLeafItem);/**
- * @class BI.MultiLayerIconTreeLeafItem
- * @extends BI.BasicButton
- */
-BI.MultiLayerIconTreeLeafItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.MultiLayerIconTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-multilayer-icon-tree-leaf-item bi-list-item-active",
- layer: 0,
- height: 25,
- iconCls: "",
- iconHeight: 14,
- iconWidth: 12
- })
- },
- _init: function () {
- BI.MultiLayerIconTreeLeafItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.item = BI.createWidget({
- type: "bi.icon_tree_leaf_item",
- cls: "bi-list-item-none",
- iconCls: o.iconCls,
- id: o.id,
- pId: o.pId,
- isFront: true,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py,
- iconWidth: o.iconWidth,
- iconHeight: o.iconHeight
- });
- this.item.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {//本身实现click功能
- return;
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- var items = [];
- BI.count(0, o.layer, function () {
- items.push({
- type: "bi.layout",
- width: 13,
- height: o.height
- })
- });
- items.push(this.item);
- BI.createWidget({
- type: "bi.td",
- element: this,
- columnSize: BI.makeArray(o.layer, 13),
- items: [items]
- });
- },
-
- doRedMark: function () {
- this.item.doRedMark.apply(this.item, arguments);
- },
-
- unRedMark: function () {
- this.item.unRedMark.apply(this.item, arguments);
- },
-
- doHighLight: function () {
- this.item.doHighLight.apply(this.item, arguments);
- },
-
- unHighLight: function () {
- this.item.unHighLight.apply(this.item, arguments);
- },
-
- getId: function () {
- return this.options.id;
- },
-
- getPId: function () {
- return this.options.pId;
- },
-
- doClick: function () {
- BI.MultiLayerIconTreeLeafItem.superclass.doClick.apply(this, arguments);
- this.item.setSelected(this.isSelected());
- },
-
- setSelected: function (v) {
- BI.MultiLayerIconTreeLeafItem.superclass.setSelected.apply(this, arguments);
- this.item.setSelected(v);
- },
-
- getValue: function(){
- return this.options.value;
- }
-});
-
-BI.shortcut("bi.multilayer_icon_tree_leaf_item", BI.MultiLayerIconTreeLeafItem);/**
- * 树叶子节点
- * Created by GUY on 2015/9/6.
- * @class BI.TreeTextLeafItem
- * @extends BI.BasicButton
- */
-BI.TreeTextLeafItem = BI.inherit(BI.BasicButton, {
- _defaultConfig: function() {
- return BI.extend(BI.TreeTextLeafItem.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-tree-text-leaf-item bi-list-item-active",
- id: "",
- pId: "",
- height: 25,
- hgap: 0,
- lgap: 0,
- rgap: 0
- })
- },
- _init : function() {
- BI.TreeTextLeafItem.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- lgap: o.lgap,
- rgap: o.hgap,
- text: o.text,
- value: o.value,
- py: o.py
- });
- BI.createWidget({
- type: "bi.htape",
- element: this,
- items: [{
- el: this.text
- }]
- })
- },
-
- doRedMark: function(){
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function(){
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function(){
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function(){
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- getId: function(){
- return this.options.id;
- },
-
- getPId: function(){
- return this.options.pId;
- }
-});
-
-BI.shortcut("bi.tree_text_leaf_item", BI.TreeTextLeafItem);/**
- * Created by GUY on 2015/8/28.
- * @class BI.Calendar
- * @extends BI.Widget
- */
-BI.Calendar = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.Calendar.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: "bi-calendar",
- logic: {
- dynamic: false
- },
- min: '1900-01-01', //最小日期
- max: '2099-12-31', //最大日期
- year: 2015,
- month: 7, //7表示八月
- day: 25
- })
- },
-
- _dateCreator: function (Y, M, D) {
- var self = this, o = this.options, log = {}, De = new Date();
- var mins = o.min.match(/\d+/g);
- var maxs = o.max.match(/\d+/g);
- Y < (mins[0] | 0) && (Y = (mins[0] | 0));
- Y > (maxs[0] | 0) && (Y = (maxs[0] | 0));
-
- De.setFullYear(Y, M, D);
- log.ymd = [De.getFullYear(), De.getMonth(), De.getDate()];
-
- var MD = Date._MD.slice(0);
- MD[1] = Date.isLeap(log.ymd[0]) ? 29 : 28;
-
- De.setFullYear(log.ymd[0], log.ymd[1], 1);
- log.FDay = De.getDay();
-
- log.PDay = MD[M === 0 ? 11 : M - 1] - log.FDay + 1;
- log.NDay = 1;
-
- var items = [];
- BI.each(BI.range(42), function (i) {
- var td = {}, YY = log.ymd[0], MM = log.ymd[1] + 1, DD;
- if (i < log.FDay) {
- td.lastMonth = true;
- DD = i + log.PDay;
- MM === 1 && (YY -= 1);
- MM = MM === 1 ? 12 : MM - 1;
- } else if (i >= log.FDay && i < log.FDay + MD[log.ymd[1]]) {
- DD = i - log.FDay + 1;
- if (i - log.FDay + 1 === log.ymd[2]) {
- td.currentDay = true;
- }
- } else {
- td.nextMonth = true;
- DD = log.NDay++;
- MM === 12 && (YY += 1);
- MM = MM === 12 ? 1 : MM + 1;
- }
- if (Date.checkVoid(YY, MM, DD, mins, maxs)[0]) {
- td.disabled = true;
- }
- td.text = DD;
- items.push(td);
- })
- return items;
- },
-
- _init: function () {
- BI.Calendar.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- var items = BI.map(Date._SDN.slice(0, 7), function (i, value) {
- return {
- type: "bi.label",
- height: 25,
- text: value
- }
- })
- var title = BI.createWidget({
- type: "bi.button_group",
- height: 25,
- items: items
- })
- var days = this._dateCreator(o.year, o.month, o.day);
- items = [];
- items.push(days.slice(0, 7));
- items.push(days.slice(7, 14));
- items.push(days.slice(14, 21));
- items.push(days.slice(21, 28));
- items.push(days.slice(28, 35));
- items.push(days.slice(35, 42));
-
- items = BI.map(items, function (i, item) {
- return BI.map(item, function (j, td) {
- return BI.extend(td, {
- type: "bi.text_item",
- cls: "bi-list-item-active",
- textAlign: "center",
- whiteSpace: "normal",
- once: false,
- forceSelected: true,
- height: 25,
- value: o.year + "-" + o.month + "-" + td.text,
- disabled: td.lastMonth || td.nextMonth || td.disabled
- //selected: td.currentDay
- });
- });
- });
-
- this.days = BI.createWidget({
- type: "bi.button_group",
- items: BI.createItems(items, {}),
- layouts: [BI.LogicFactory.createLogic("table", BI.extend({}, o.logic, {
- columns: 7,
- rows: 6,
- columnSize: [1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7],
- rowSize: 25
- }))]
- });
- this.days.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- })
- BI.createWidget(BI.extend({
- element: this
-
- }, BI.LogicFactory.createLogic("vertical", BI.extend({}, o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection("top", title, this.days)
- }))));
- },
-
- isFrontDate: function () {
- var o = this.options, c = this._const;
- var Y = o.year, M = o.month, De = new Date(), day = De.getDay();
- Y = Y | 0;
- De.setFullYear(Y, M, 1);
- var newDate = De.getOffsetDate(-1 * (day + 1));
- return !!Date.checkVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), o.min, o.max)[0];
- },
-
- isFinalDate: function () {
- var o = this.options, c = this._const;
- var Y = o.year, M = o.month, De = new Date(), day = De.getDay();
- Y = Y | 0;
- De.setFullYear(Y, M, 1);
- var newDate = De.getOffsetDate(42 - day);
- return !!Date.checkVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), o.min, o.max)[0];
- },
-
- setValue: function (ob) {
- this.days.setValue([ob.year + "-" + ob.month + "-" + ob.day]);
- },
-
- getValue: function () {
- var date = this.days.getValue()[0].match(/\d+/g);
- return {
- year: date[0] | 0,
- month: date[1] | 0,
- day: date[2] | 0
- }
- }
-});
-
-BI.extend(BI.Calendar, {
- getPageByDateJSON: function (json) {
- var year = new Date().getFullYear();
- var month = new Date().getMonth();
- var page = (json.year - year) * 12;
- page += json.month - month;
- return page;
- },
- getDateJSONByPage: function(v){
- var months = new Date().getMonth();
- var page = v;
-
- //对当前page做偏移,使到当前年初
- page = page + months;
-
- var year = BI.parseInt(page / 12);
- if(page < 0 && page % 12 !== 0){
- year--;
- }
- var month = page >= 0 ? (page % 12) : ((12 + page % 12) % 12);
- return {
- year: new Date().getFullYear() + year,
- month: month
- }
- }
-});
-
-BI.shortcut("bi.calendar", BI.Calendar);/**
- * Created by GUY on 2015/8/28.
- * @class BI.YearCalendar
- * @extends BI.Widget
- */
-BI.YearCalendar = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- var conf = BI.YearCalendar.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: "bi-year-calendar",
- behaviors: {},
- logic: {
- dynamic: false
- },
- min: '1900-01-01', //最小日期
- max: '2099-12-31', //最大日期
- year: null
- })
- },
-
- _yearCreator: function (Y) {
- var o = this.options;
- Y = Y | 0;
- var start = BI.YearCalendar.getStartYear(Y);
- var items = [];
- BI.each(BI.range(BI.YearCalendar.INTERVAL), function (i) {
- var td = {};
- if (Date.checkVoid(start + i, 1, 1, o.min, o.max)[0]) {
- td.disabled = true;
- }
- td.text = start + i;
- items.push(td);
- });
- return items;
- },
-
- _init: function () {
- BI.YearCalendar.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.currentYear = new Date().getFullYear();
- var years = this._yearCreator(o.year || this.currentYear);
-
- //纵向排列年
- var len = years.length, tyears = BI.makeArray(len, "");
- var map = [0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11];
- BI.each(years, function (i, y) {
- tyears[i] = years[map[i]];
- });
- var items = [];
- items.push(tyears.slice(0, 2));
- items.push(tyears.slice(2, 4));
- items.push(tyears.slice(4, 6));
- items.push(tyears.slice(6, 8));
- items.push(tyears.slice(8, 10));
- items.push(tyears.slice(10, 12));
-
- items = BI.map(items, function (i, item) {
- return BI.map(item, function (j, td) {
- return BI.extend(td, {
- type: "bi.text_item",
- cls: "bi-list-item-active",
- textAlign: "center",
- whiteSpace: "normal",
- once: false,
- forceSelected: true,
- height: 23,
- width: 38,
- value: td.text,
- disabled: td.disabled
- });
- });
- });
-
- this.years = BI.createWidget({
- type: "bi.button_group",
- behaviors: o.behaviors,
- items: BI.createItems(items, {}),
- layouts: [BI.LogicFactory.createLogic("table", BI.extend({}, o.logic, {
- columns: 2,
- rows: 6,
- columnSize: [1 / 2, 1 / 2],
- rowSize: 25
- })), {
- type: "bi.center_adapt",
- vgap: 1
- }]
- });
- this.years.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- BI.createWidget(BI.extend({
- element: this
-
- }, BI.LogicFactory.createLogic("vertical", BI.extend({}, o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection("top", this.years)
- }))));
- },
-
- isFrontYear: function () {
- var o = this.options;
- var Y = o.year;
- Y = Y | 0;
- return !!Date.checkVoid(BI.YearCalendar.getStartYear(Y) - 1, 1, 1, o.min, o.max)[0];
- },
-
- isFinalYear: function () {
- var o = this.options, c = this._const;
- var Y = o.year;
- Y = Y | 0;
- return !!Date.checkVoid(BI.YearCalendar.getEndYear(Y) + 1, 1, 1, o.min, o.max)[0];
- },
-
- setValue: function (val) {
- this.years.setValue([val]);
- },
-
- getValue: function () {
- return this.years.getValue()[0];
- }
-});
-//类方法
-BI.extend(BI.YearCalendar, {
- INTERVAL: 12,
-
- //获取显示的第一年
- getStartYear: function (year) {
- var cur = new Date().getFullYear();
- return year - ((year - cur + 3) % BI.YearCalendar.INTERVAL + 12) % BI.YearCalendar.INTERVAL;
- },
-
- getEndYear: function (year) {
- return BI.YearCalendar.getStartYear(year) + BI.YearCalendar.INTERVAL;
- },
-
- getPageByYear: function (year) {
- var cur = new Date().getFullYear();
- year = BI.YearCalendar.getStartYear(year);
- return (year - cur + 3) / BI.YearCalendar.INTERVAL;
- }
-});
-
-BI.shortcut("bi.year_calendar", BI.YearCalendar);/**
- * 绘制一些较复杂的canvas
- *
- * Created by GUY on 2015/11/24.
- * @class BI.ComplexCanvas
- * @extends BI.Widget
- */
-BI.ComplexCanvas = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.ComplexCanvas.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-complex-canvas"
- })
- },
-
-
- _init: function () {
- BI.ComplexCanvas.superclass._init.apply(this, arguments);
- var o = this.options;
- this.canvas = BI.createWidget({
- type: "bi.canvas",
- element: this,
- width: o.width,
- height: o.height
- });
- },
-
- //绘制树枝节点
- branch: function (x0, y0, x1, y1, x2, y2) {
- var self = this, args = [].slice.call(arguments);
- if (args.length <= 5) {
- return this.canvas.line.apply(this.canvas, arguments);
- }
- var options;
- if (BI.isOdd(args.length)) {
- options = BI.last(args);
- args = BI.initial(args);
- }
- args = [].slice.call(args, 2);
- var odd = BI.filter(args, function (i) {
- return i % 2 === 0;
- });
- var even = BI.filter(args, function (i) {
- return i % 2 !== 0;
- });
- options || (options = {});
- var offset = options.offset || 20;
- if ((y0 > y1 && y0 > y2) || (y0 < y1 && y0 < y2)) {
- if (y0 > y1 && y0 > y2) {
- var y = Math.max.apply(this, even) + offset;
- } else {
- var y = Math.min.apply(this, even) - offset;
- }
- var minx = Math.min.apply(this, odd);
- var minix = BI.indexOf(odd, minx);
- var maxx = Math.max.apply(this, odd);
- var maxix = BI.indexOf(odd, maxx);
- this.canvas.line(minx, even[minix], minx, y, maxx, y, maxx, even[maxix], options);
- BI.each(odd, function (i, dot) {
- if (i !== maxix && i !== minix) {
- self.canvas.line(dot, even[i], dot, y, options);
- }
- });
- this.canvas.line(x0, y, x0, y0, options);
- return;
- }
- if ((x0 > x1 && x0 > x2) || (x0 < x1 && x0 < x2)) {
- if (x0 > x1 && x0 > x2) {
- var x = Math.max.apply(this, odd) + offset;
- } else {
- var x = Math.min.apply(this, odd) - offset;
- }
- var miny = Math.min.apply(this, even);
- var miniy = BI.indexOf(even, miny);
- var maxy = Math.max.apply(this, even);
- var maxiy = BI.indexOf(even, maxy);
- this.canvas.line(odd[miniy], miny, x, miny, x, maxy, odd[maxiy], maxy, options);
- BI.each(even, function (i, dot) {
- if (i !== miniy && i !== maxiy) {
- self.canvas.line(odd[i], dot, x, dot, options);
- }
- });
- this.canvas.line(x, y0, x0, y0, options);
- return;
- }
- },
-
- stroke: function (callback) {
- this.canvas.stroke(callback);
- }
-});
-
-BI.shortcut("bi.complex_canvas", BI.ComplexCanvas);/**
- * Created by roy on 15/10/16.
- * 上箭头与下箭头切换的树节点
- */
-BI.ArrowTreeGroupNodeCheckbox=BI.inherit(BI.IconButton,{
- _defaultConfig:function(){
- return BI.extend(BI.ArrowTreeGroupNodeCheckbox.superclass._defaultConfig.apply(this,arguments),{
- extraCls:"bi-arrow-tree-group-node",
- iconWidth: 13,
- iconHeight: 13
- });
- },
- _init:function(){
- BI.ArrowTreeGroupNodeCheckbox.superclass._init.apply(this,arguments);
- },
- setSelected: function(v){
- BI.ArrowTreeGroupNodeCheckbox.superclass.setSelected.apply(this, arguments);
- if(v) {
- this.element.removeClass("column-next-page-h-font").addClass("column-pre-page-h-font");
- } else {
- this.element.removeClass("column-pre-page-h-font").addClass("column-next-page-h-font");
- }
- }
-});
-BI.shortcut("bi.arrow_tree_group_node_checkbox",BI.ArrowTreeGroupNodeCheckbox);/**
- * 十字型的树节点
- * @class BI.CheckingMarkNode
- * @extends BI.IconButton
- */
-BI.CheckingMarkNode = BI.inherit(BI.IconButton, {
- _defaultConfig: function() {
- return BI.extend( BI.CheckingMarkNode.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "check-mark-font",
- iconWidth: 13,
- iconHeight: 13
- });
- },
- _init:function() {
- BI.CheckingMarkNode.superclass._init.apply(this, arguments);
- this.setSelected(this.options.selected);
-
- },
- setSelected: function(v){
- BI.CheckingMarkNode.superclass.setSelected.apply(this, arguments);
- if(v===true) {
- this.element.addClass("check-mark-font");
- } else {
- this.element.removeClass("check-mark-font");
- }
- }
-});
-BI.shortcut("bi.checking_mark_node", BI.CheckingMarkNode);/**
- * 十字型的树节点
- * @class BI.FirstTreeNodeCheckbox
- * @extends BI.IconButton
- */
-BI.FirstTreeNodeCheckbox = BI.inherit(BI.IconButton, {
- _defaultConfig: function() {
- return BI.extend( BI.FirstTreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "tree-collapse-icon-type2",
- iconWidth: 25,
- iconHeight: 25
- });
- },
- _init:function() {
- BI.FirstTreeNodeCheckbox.superclass._init.apply(this, arguments);
-
- },
- setSelected: function(v){
- BI.FirstTreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
- if(v===true) {
- this.element.addClass("tree-expand-icon-type2");
- } else {
- this.element.removeClass("tree-expand-icon-type2");
- }
- }
-});
-BI.shortcut("bi.first_tree_node_checkbox", BI.FirstTreeNodeCheckbox);/**
- * 十字型的树节点
- * @class BI.LastTreeNodeCheckbox
- * @extends BI.IconButton
- */
-BI.LastTreeNodeCheckbox = BI.inherit(BI.IconButton, {
- _defaultConfig: function() {
- return BI.extend( BI.LastTreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "tree-collapse-icon-type4",
- iconWidth: 25,
- iconHeight: 25
- });
- },
- _init:function() {
- BI.LastTreeNodeCheckbox.superclass._init.apply(this, arguments);
-
- },
- setSelected: function(v){
- BI.LastTreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
- if(v===true) {
- this.element.addClass("tree-expand-icon-type3");
- } else {
- this.element.removeClass("tree-expand-icon-type3");
- }
- }
-});
-BI.shortcut("bi.last_tree_node_checkbox", BI.LastTreeNodeCheckbox);/**
- * 十字型的树节点
- * @class BI.MidTreeNodeCheckbox
- * @extends BI.IconButton
- */
-BI.MidTreeNodeCheckbox = BI.inherit(BI.IconButton, {
- _defaultConfig: function() {
- return BI.extend( BI.MidTreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "tree-collapse-icon-type3",
- iconWidth: 25,
- iconHeight: 25
- });
- },
- _init:function() {
- BI.MidTreeNodeCheckbox.superclass._init.apply(this, arguments);
-
- },
- setSelected: function(v){
- BI.MidTreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
- if(v===true) {
- this.element.addClass("tree-expand-icon-type3");
- } else {
- this.element.removeClass("tree-expand-icon-type3");
- }
- }
-});
-BI.shortcut("bi.mid_tree_node_checkbox", BI.MidTreeNodeCheckbox);/**
- * 三角形的树节点
- * Created by GUY on 2015/9/6.
- * @class BI.TreeGroupNodeCheckbox
- * @extends BI.IconButton
- */
-BI.TreeGroupNodeCheckbox = BI.inherit(BI.IconButton, {
- _defaultConfig: function() {
- return BI.extend( BI.TreeGroupNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "tree-node-triangle-collapse-font",
- iconWidth: 13,
- iconHeight: 13
- });
- },
- _init:function() {
- BI.TreeGroupNodeCheckbox.superclass._init.apply(this, arguments);
-
- },
- setSelected: function(v){
- BI.TreeGroupNodeCheckbox.superclass.setSelected.apply(this, arguments);
- if(v) {
- this.element.removeClass("tree-node-triangle-collapse-font").addClass("tree-node-triangle-expand-font");
- } else {
- this.element.removeClass("tree-node-triangle-expand-font").addClass("tree-node-triangle-collapse-font");
- }
- }
-});
-BI.shortcut("bi.tree_group_node_checkbox", BI.TreeGroupNodeCheckbox);/**
- * 十字型的树节点
- * @class BI.TreeNodeCheckbox
- * @extends BI.IconButton
- */
-BI.TreeNodeCheckbox = BI.inherit(BI.IconButton, {
- _defaultConfig: function() {
- return BI.extend( BI.TreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "tree-collapse-icon-type1",
- iconWidth: 25,
- iconHeight: 25
- });
- },
- _init:function() {
- BI.TreeNodeCheckbox.superclass._init.apply(this, arguments);
-
- },
- setSelected: function(v){
- BI.TreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
- if(v) {
- this.element.addClass("tree-expand-icon-type1");
- } else {
- this.element.removeClass("tree-expand-icon-type1");
- }
- }
-});
-BI.shortcut("bi.tree_node_checkbox", BI.TreeNodeCheckbox);/*!
- * clipboard.js v1.6.1
- * https://zenorocha.github.io/clipboard.js
- *
- * Licensed MIT © Zeno Rocha
- */
-try {//IE8下会抛错
- (function (f) {
- if (typeof exports === "object" && typeof module !== "undefined") {
- module.exports = f()
- } else if (typeof define === "function" && define.amd) {
- define([], f)
- } else {
- var g;
- if (typeof window !== "undefined") {
- g = window
- } else if (typeof global !== "undefined") {
- g = global
- } else if (typeof self !== "undefined") {
- g = self
- } else {
- g = this
- }
- g.Clipboard = f()
- }
- })(function () {
- var define, module, exports;
- return (function e(t, n, r) {
- function s(o, u) {
- if (!n[o]) {
- if (!t[o]) {
- var a = typeof require == "function" && require;
- if (!u && a)return a(o, !0);
- if (i)return i(o, !0);
- var f = new Error("Cannot find module '" + o + "'");
- throw f.code = "MODULE_NOT_FOUND", f
- }
- var l = n[o] = {exports: {}};
- t[o][0].call(l.exports, function (e) {
- var n = t[o][1][e];
- return s(n ? n : e)
- }, l, l.exports, e, t, n, r)
- }
- return n[o].exports
- }
-
- var i = typeof require == "function" && require;
- for (var o = 0; o < r.length; o++)s(r[o]);
- return s
- })({
- 1: [function (require, module, exports) {
- var DOCUMENT_NODE_TYPE = 9;
-
- /**
- * A polyfill for Element.matches()
- */
- if (typeof Element !== 'undefined' && !Element.prototype.matches) {
- var proto = Element.prototype;
-
- proto.matches = proto.matchesSelector ||
- proto.mozMatchesSelector ||
- proto.msMatchesSelector ||
- proto.oMatchesSelector ||
- proto.webkitMatchesSelector;
- }
-
- /**
- * Finds the closest parent that matches a selector.
- *
- * @param {Element} element
- * @param {String} selector
- * @return {Function}
- */
- function closest(element, selector) {
- while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
- if (element.matches(selector)) return element;
- element = element.parentNode;
- }
- }
-
- module.exports = closest;
-
- }, {}], 2: [function (require, module, exports) {
- var closest = require('./closest');
-
- /**
- * Delegates event to a selector.
- *
- * @param {Element} element
- * @param {String} selector
- * @param {String} type
- * @param {Function} callback
- * @param {Boolean} useCapture
- * @return {Object}
- */
- function delegate(element, selector, type, callback, useCapture) {
- var listenerFn = listener.apply(this, arguments);
-
- element.addEventListener(type, listenerFn, useCapture);
-
- return {
- destroy: function () {
- element.removeEventListener(type, listenerFn, useCapture);
- }
- }
- }
-
- /**
- * Finds closest match and invokes callback.
- *
- * @param {Element} element
- * @param {String} selector
- * @param {String} type
- * @param {Function} callback
- * @return {Function}
- */
- function listener(element, selector, type, callback) {
- return function (e) {
- e.delegateTarget = closest(e.target, selector);
-
- if (e.delegateTarget) {
- callback.call(element, e);
- }
- }
- }
-
- module.exports = delegate;
-
- }, {"./closest": 1}], 3: [function (require, module, exports) {
- /**
- * Check if argument is a HTML element.
- *
- * @param {Object} value
- * @return {Boolean}
- */
- exports.node = function (value) {
- return value !== undefined
- && value instanceof HTMLElement
- && value.nodeType === 1;
- };
-
- /**
- * Check if argument is a list of HTML elements.
- *
- * @param {Object} value
- * @return {Boolean}
- */
- exports.nodeList = function (value) {
- var type = Object.prototype.toString.call(value);
-
- return value !== undefined
- && (type === '[object NodeList]' || type === '[object HTMLCollection]')
- && ('length' in value)
- && (value.length === 0 || exports.node(value[0]));
- };
-
- /**
- * Check if argument is a string.
- *
- * @param {Object} value
- * @return {Boolean}
- */
- exports.string = function (value) {
- return typeof value === 'string'
- || value instanceof String;
- };
-
- /**
- * Check if argument is a function.
- *
- * @param {Object} value
- * @return {Boolean}
- */
- exports.fn = function (value) {
- var type = Object.prototype.toString.call(value);
-
- return type === '[object Function]';
- };
-
- }, {}], 4: [function (require, module, exports) {
- var is = require('./is');
- var delegate = require('delegate');
-
- /**
- * Validates all params and calls the right
- * listener function based on its target type.
- *
- * @param {String|HTMLElement|HTMLCollection|NodeList} target
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
- function listen(target, type, callback) {
- if (!target && !type && !callback) {
- throw new Error('Missing required arguments');
- }
-
- if (!is.string(type)) {
- throw new TypeError('Second argument must be a String');
- }
-
- if (!is.fn(callback)) {
- throw new TypeError('Third argument must be a Function');
- }
-
- if (is.node(target)) {
- return listenNode(target, type, callback);
- }
- else if (is.nodeList(target)) {
- return listenNodeList(target, type, callback);
- }
- else if (is.string(target)) {
- return listenSelector(target, type, callback);
- }
- else {
- throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
- }
- }
-
- /**
- * Adds an event listener to a HTML element
- * and returns a remove listener function.
- *
- * @param {HTMLElement} node
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
- function listenNode(node, type, callback) {
- node.addEventListener(type, callback);
-
- return {
- destroy: function () {
- node.removeEventListener(type, callback);
- }
- }
- }
-
- /**
- * Add an event listener to a list of HTML elements
- * and returns a remove listener function.
- *
- * @param {NodeList|HTMLCollection} nodeList
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
- function listenNodeList(nodeList, type, callback) {
- Array.prototype.forEach.call(nodeList, function (node) {
- node.addEventListener(type, callback);
- });
-
- return {
- destroy: function () {
- Array.prototype.forEach.call(nodeList, function (node) {
- node.removeEventListener(type, callback);
- });
- }
- }
- }
-
- /**
- * Add an event listener to a selector
- * and returns a remove listener function.
- *
- * @param {String} selector
- * @param {String} type
- * @param {Function} callback
- * @return {Object}
- */
- function listenSelector(selector, type, callback) {
- return delegate(document.body, selector, type, callback);
- }
-
- module.exports = listen;
-
- }, {"./is": 3, "delegate": 2}], 5: [function (require, module, exports) {
- function select(element) {
- var selectedText;
-
- if (element.nodeName === 'SELECT') {
- element.focus();
-
- selectedText = element.value;
- }
- else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
- var isReadOnly = element.hasAttribute('readonly');
-
- if (!isReadOnly) {
- element.setAttribute('readonly', '');
- }
-
- element.select();
- element.setSelectionRange(0, element.value.length);
-
- if (!isReadOnly) {
- element.removeAttribute('readonly');
- }
-
- selectedText = element.value;
- }
- else {
- if (element.hasAttribute('contenteditable')) {
- element.focus();
- }
-
- var selection = window.getSelection();
- var range = document.createRange();
-
- range.selectNodeContents(element);
- selection.removeAllRanges();
- selection.addRange(range);
-
- selectedText = selection.toString();
- }
-
- return selectedText;
- }
-
- module.exports = select;
-
- }, {}], 6: [function (require, module, exports) {
- function E() {
- // Keep this empty so it's easier to inherit from
- // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
- }
-
- E.prototype = {
- on: function (name, callback, ctx) {
- var e = this.e || (this.e = {});
-
- (e[name] || (e[name] = [])).push({
- fn: callback,
- ctx: ctx
- });
-
- return this;
- },
-
- once: function (name, callback, ctx) {
- var self = this;
-
- function listener() {
- self.off(name, listener);
- callback.apply(ctx, arguments);
- };
-
- listener._ = callback
- return this.on(name, listener, ctx);
- },
-
- emit: function (name) {
- var data = [].slice.call(arguments, 1);
- var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
- var i = 0;
- var len = evtArr.length;
-
- for (i; i < len; i++) {
- evtArr[i].fn.apply(evtArr[i].ctx, data);
- }
-
- return this;
- },
-
- off: function (name, callback) {
- var e = this.e || (this.e = {});
- var evts = e[name];
- var liveEvents = [];
-
- if (evts && callback) {
- for (var i = 0, len = evts.length; i < len; i++) {
- if (evts[i].fn !== callback && evts[i].fn._ !== callback)
- liveEvents.push(evts[i]);
- }
- }
-
- // Remove event from queue to prevent memory leak
- // Suggested by https://github.com/lazd
- // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
-
- (liveEvents.length)
- ? e[name] = liveEvents
- : delete e[name];
-
- return this;
- }
- };
-
- module.exports = E;
-
- }, {}], 7: [function (require, module, exports) {
- (function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define(['module', 'select'], factory);
- } else if (typeof exports !== "undefined") {
- factory(module, require('select'));
- } else {
- var mod = {
- exports: {}
- };
- factory(mod, global.select);
- global.clipboardAction = mod.exports;
- }
- })(this, function (module, _select) {
- 'use strict';
-
- var _select2 = _interopRequireDefault(_select);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
- }
-
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
- return typeof obj;
- } : function (obj) {
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- };
-
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
-
- var _createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
-
- var ClipboardAction = function () {
- /**
- * @param {Object} options
- */
- function ClipboardAction(options) {
- _classCallCheck(this, ClipboardAction);
-
- this.resolveOptions(options);
- this.initSelection();
- }
-
- /**
- * Defines base properties passed from constructor.
- * @param {Object} options
- */
-
-
- _createClass(ClipboardAction, [{
- key: 'resolveOptions',
- value: function resolveOptions() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- this.action = options.action;
- this.emitter = options.emitter;
- this.target = options.target;
- this.text = options.text;
- this.trigger = options.trigger;
-
- this.selectedText = '';
- }
- }, {
- key: 'initSelection',
- value: function initSelection() {
- if (this.text) {
- this.selectFake();
- } else if (this.target) {
- this.selectTarget();
- }
- }
- }, {
- key: 'selectFake',
- value: function selectFake() {
- var _this = this;
-
- var isRTL = document.documentElement.getAttribute('dir') == 'rtl';
-
- this.removeFake();
-
- this.fakeHandlerCallback = function () {
- return _this.removeFake();
- };
- this.fakeHandler = document.body.addEventListener('click', this.fakeHandlerCallback) || true;
-
- this.fakeElem = document.createElement('textarea');
- // Prevent zooming on iOS
- this.fakeElem.style.fontSize = '12pt';
- // Reset box model
- this.fakeElem.style.border = '0';
- this.fakeElem.style.padding = '0';
- this.fakeElem.style.margin = '0';
- // Move element out of screen horizontally
- this.fakeElem.style.position = 'absolute';
- this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
- // Move element to the same position vertically
- var yPosition = window.pageYOffset || document.documentElement.scrollTop;
- this.fakeElem.style.top = yPosition + 'px';
-
- this.fakeElem.setAttribute('readonly', '');
- this.fakeElem.value = this.text;
-
- document.body.appendChild(this.fakeElem);
-
- this.selectedText = (0, _select2["default"])(this.fakeElem);
- this.copyText();
- }
- }, {
- key: 'removeFake',
- value: function removeFake() {
- if (this.fakeHandler) {
- document.body.removeEventListener('click', this.fakeHandlerCallback);
- this.fakeHandler = null;
- this.fakeHandlerCallback = null;
- }
-
- if (this.fakeElem) {
- document.body.removeChild(this.fakeElem);
- this.fakeElem = null;
- }
- }
- }, {
- key: 'selectTarget',
- value: function selectTarget() {
- this.selectedText = (0, _select2["default"])(this.target);
- this.copyText();
- }
- }, {
- key: 'copyText',
- value: function copyText() {
- var succeeded = void 0;
-
- try {
- succeeded = document.execCommand(this.action);
- } catch (err) {
- succeeded = false;
- }
-
- this.handleResult(succeeded);
- }
- }, {
- key: 'handleResult',
- value: function handleResult(succeeded) {
- this.emitter.emit(succeeded ? 'success' : 'error', {
- action: this.action,
- text: this.selectedText,
- trigger: this.trigger,
- clearSelection: this.clearSelection.bind(this)
- });
- }
- }, {
- key: 'clearSelection',
- value: function clearSelection() {
- if (this.target) {
- this.target.blur();
- }
-
- window.getSelection().removeAllRanges();
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.removeFake();
- }
- }, {
- key: 'action',
- set: function set() {
- var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
-
- this._action = action;
-
- if (this._action !== 'copy' && this._action !== 'cut') {
- throw new Error('Invalid "action" value, use either "copy" or "cut"');
- }
- },
- get: function get() {
- return this._action;
- }
- }, {
- key: 'target',
- set: function set(target) {
- if (target !== undefined) {
- if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {
- if (this.action === 'copy' && target.hasAttribute('disabled')) {
- throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
- }
-
- if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
- throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
- }
-
- this._target = target;
- } else {
- throw new Error('Invalid "target" value, use a valid Element');
- }
- }
- },
- get: function get() {
- return this._target;
- }
- }]);
-
- return ClipboardAction;
- }();
-
- module.exports = ClipboardAction;
- });
-
- }, {"select": 5}], 8: [function (require, module, exports) {
- (function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], factory);
- } else if (typeof exports !== "undefined") {
- factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));
- } else {
- var mod = {
- exports: {}
- };
- factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);
- global.clipboard = mod.exports;
- }
- })(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {
- 'use strict';
-
- var _clipboardAction2 = _interopRequireDefault(_clipboardAction);
-
- var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);
-
- var _goodListener2 = _interopRequireDefault(_goodListener);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
- }
-
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
-
- var _createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
-
- function _possibleConstructorReturn(self, call) {
- if (!self) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
-
- return call && (typeof call === "object" || typeof call === "function") ? call : self;
- }
-
- function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
- }
-
- subClass.prototype = Object.create(superClass && superClass.prototype, {
- constructor: {
- value: subClass,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
- }
-
- var Clipboard = function (_Emitter) {
- _inherits(Clipboard, _Emitter);
-
- /**
- * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
- * @param {Object} options
- */
- function Clipboard(trigger, options) {
- _classCallCheck(this, Clipboard);
-
- var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));
-
- _this.resolveOptions(options);
- _this.listenClick(trigger);
- return _this;
- }
-
- /**
- * Defines if attributes would be resolved using internal setter functions
- * or custom functions that were passed in the constructor.
- * @param {Object} options
- */
-
-
- _createClass(Clipboard, [{
- key: 'resolveOptions',
- value: function resolveOptions() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
- this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
- this.text = typeof options.text === 'function' ? options.text : this.defaultText;
- }
- }, {
- key: 'listenClick',
- value: function listenClick(trigger) {
- var _this2 = this;
-
- this.listener = (0, _goodListener2["default"])(trigger, 'click', function (e) {
- return _this2.onClick(e);
- });
- }
- }, {
- key: 'onClick',
- value: function onClick(e) {
- var trigger = e.delegateTarget || e.currentTarget;
-
- if (this.clipboardAction) {
- this.clipboardAction = null;
- }
-
- this.clipboardAction = new _clipboardAction2["default"]({
- action: this.action(trigger),
- target: this.target(trigger),
- text: this.text(trigger),
- trigger: trigger,
- emitter: this
- });
- }
- }, {
- key: 'defaultAction',
- value: function defaultAction(trigger) {
- return getAttributeValue('action', trigger);
- }
- }, {
- key: 'defaultTarget',
- value: function defaultTarget(trigger) {
- var selector = getAttributeValue('target', trigger);
-
- if (selector) {
- return document.querySelector(selector);
- }
- }
- }, {
- key: 'defaultText',
- value: function defaultText(trigger) {
- return getAttributeValue('text', trigger);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.listener.destroy();
-
- if (this.clipboardAction) {
- this.clipboardAction.destroy();
- this.clipboardAction = null;
- }
- }
- }], [{
- key: 'isSupported',
- value: function isSupported() {
- var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
-
- var actions = typeof action === 'string' ? [action] : action;
- var support = !!document.queryCommandSupported;
-
- actions.forEach(function (action) {
- support = support && !!document.queryCommandSupported(action);
- });
-
- return support;
- }
- }]);
-
- return Clipboard;
- }(_tinyEmitter2["default"]);
-
- /**
- * Helper function to retrieve attribute value.
- * @param {String} suffix
- * @param {Element} element
- */
- function getAttributeValue(suffix, element) {
- var attribute = 'data-clipboard-' + suffix;
-
- if (!element.hasAttribute(attribute)) {
- return;
- }
-
- return element.getAttribute(attribute);
- }
-
- module.exports = Clipboard;
- });
-
- }, {"./clipboard-action": 7, "good-listener": 4, "tiny-emitter": 6}]
- }, {}, [8])(8)
- });
-} catch (e) {
- /*
- * zClip :: jQuery ZeroClipboard v1.1.1
- * http://steamdev.com/zclip
- *
- * Copyright 2011, SteamDev
- * Released under the MIT license.
- * http://www.opensource.org/licenses/mit-license.php
- *
- * Date: Wed Jun 01, 2011
- */
-
-
- (function ($) {
-
- $.fn.zclip = function (params) {
-
- if (typeof params == "object" && !params.length) {
-
- var settings = $.extend({
-
- path: 'ZeroClipboard.swf',
- copy: null,
- beforeCopy: null,
- afterCopy: null,
- clickAfter: true,
- setHandCursor: true,
- setCSSEffects: true
-
- }, params);
-
-
- return this.each(function () {
-
- var o = $(this);
-
- if (o.is(':visible') && (typeof settings.copy == 'string' || $.isFunction(settings.copy))) {
-
- ZeroClipboard.setMoviePath(settings.path);
- var clip = new ZeroClipboard.Client();
-
- if ($.isFunction(settings.copy)) {
- o.bind('zClip_copy', settings.copy);
- }
- if ($.isFunction(settings.beforeCopy)) {
- o.bind('zClip_beforeCopy', settings.beforeCopy);
- }
- if ($.isFunction(settings.afterCopy)) {
- o.bind('zClip_afterCopy', settings.afterCopy);
- }
-
- clip.setHandCursor(settings.setHandCursor);
- clip.setCSSEffects(settings.setCSSEffects);
- clip.addEventListener('mouseOver', function (client) {
- o.trigger('mouseenter');
- });
- clip.addEventListener('mouseOut', function (client) {
- o.trigger('mouseleave');
- });
- clip.addEventListener('mouseDown', function (client) {
-
- o.trigger('mousedown');
-
- if (!$.isFunction(settings.copy)) {
- clip.setText(settings.copy);
- } else {
- clip.setText(o.triggerHandler('zClip_copy'));
- }
-
- if ($.isFunction(settings.beforeCopy)) {
- o.trigger('zClip_beforeCopy');
- }
-
- });
-
- clip.addEventListener('complete', function (client, text) {
-
- if ($.isFunction(settings.afterCopy)) {
-
- o.trigger('zClip_afterCopy');
-
- } else {
- if (text.length > 500) {
- text = text.substr(0, 500) + "...\n\n(" + (text.length - 500) + " characters not shown)";
- }
-
- o.removeClass('hover');
- alert("Copied text to clipboard:\n\n " + text);
- }
-
- if (settings.clickAfter) {
- o.trigger('click');
- }
-
- });
-
-
- clip.glue(o[0], o.parent()[0]);
-
- $(window).bind('load resize', function () {
- clip.reposition();
- });
-
-
- }
-
- });
-
- } else if (typeof params == "string") {
-
- return this.each(function () {
-
- var o = $(this);
-
- params = params.toLowerCase();
- var zclipId = o.data('zclipId');
- var clipElm = $('#' + zclipId + '.zclip');
-
- if (params == "remove") {
-
- clipElm.remove();
- o.removeClass('active hover');
-
- } else if (params == "hide") {
-
- clipElm.hide();
- o.removeClass('active hover');
-
- } else if (params == "show") {
-
- clipElm.show();
-
- }
-
- });
-
- }
-
- }
-
-
- })(jQuery);
-
-
-// ZeroClipboard
-// Simple Set Clipboard System
-// Author: Joseph Huckaby
- var ZeroClipboard = {
-
- version: "1.0.7",
- clients: {},
- // registered upload clients on page, indexed by id
- moviePath: 'ZeroClipboard.swf',
- // URL to movie
- nextId: 1,
- // ID of next movie
- $: function (thingy) {
- // simple DOM lookup utility function
- if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
- if (!thingy.addClass) {
- // extend element with a few useful methods
- thingy.hide = function () {
- this.style.display = 'none';
- };
- thingy.show = function () {
- this.style.display = '';
- };
- thingy.addClass = function (name) {
- this.removeClass(name);
- this.className += ' ' + name;
- };
- thingy.removeClass = function (name) {
- var classes = this.className.split(/\s+/);
- var idx = -1;
- for (var k = 0; k < classes.length; k++) {
- if (classes[k] == name) {
- idx = k;
- k = classes.length;
- }
- }
- if (idx > -1) {
- classes.splice(idx, 1);
- this.className = classes.join(' ');
- }
- return this;
- };
- thingy.hasClass = function (name) {
- return !!this.className.match(new RegExp("\\s*" + name + "\\s*"));
- };
- }
- return thingy;
- },
-
- setMoviePath: function (path) {
- // set path to ZeroClipboard.swf
- this.moviePath = path;
- },
-
- dispatch: function (id, eventName, args) {
- // receive event from flash movie, send to client
- var client = this.clients[id];
- if (client) {
- client.receiveEvent(eventName, args);
- }
- },
-
- register: function (id, client) {
- // register new client to receive events
- this.clients[id] = client;
- },
-
- getDOMObjectPosition: function (obj, stopObj) {
- // get absolute coordinates for dom element
- var info = {
- left: 0,
- top: 0,
- width: obj.width ? obj.width : obj.offsetWidth,
- height: obj.height ? obj.height : obj.offsetHeight
- };
-
- if (obj && (obj != stopObj)) {
- info.left += obj.offsetLeft;
- info.top += obj.offsetTop;
- }
-
- return info;
- },
-
- Client: function (elem) {
- // constructor for new simple upload client
- this.handlers = {};
-
- // unique ID
- this.id = ZeroClipboard.nextId++;
- this.movieId = 'ZeroClipboardMovie_' + this.id;
-
- // register client with singleton to receive flash events
- ZeroClipboard.register(this.id, this);
-
- // create movie
- if (elem) this.glue(elem);
- }
- };
-
- ZeroClipboard.Client.prototype = {
-
- id: 0,
- // unique ID for us
- ready: false,
- // whether movie is ready to receive events or not
- movie: null,
- // reference to movie object
- clipText: '',
- // text to copy to clipboard
- handCursorEnabled: true,
- // whether to show hand cursor, or default pointer cursor
- cssEffects: true,
- // enable CSS mouse effects on dom container
- handlers: null,
- // user event handlers
- glue: function (elem, appendElem, stylesToAdd) {
- // glue to DOM element
- // elem can be ID or actual DOM element object
- this.domElement = ZeroClipboard.$(elem);
-
- // float just above object, or zIndex 99 if dom element isn't set
- var zIndex = 99;
- if (this.domElement.style.zIndex) {
- zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
- }
-
- if (typeof(appendElem) == 'string') {
- appendElem = ZeroClipboard.$(appendElem);
- } else if (typeof(appendElem) == 'undefined') {
- appendElem = document.getElementsByTagName('body')[0];
- }
-
- // find X/Y position of domElement
- var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
-
- // create floating DIV above element
- this.div = document.createElement('div');
- this.div.className = "zclip";
- this.div.id = "zclip-" + this.movieId;
- $(this.domElement).data('zclipId', 'zclip-' + this.movieId);
- var style = this.div.style;
- style.position = 'absolute';
- style.left = '' + box.left + 'px';
- style.top = '' + box.top + 'px';
- style.width = '' + box.width + 'px';
- style.height = '' + box.height + 'px';
- style.zIndex = zIndex;
-
- if (typeof(stylesToAdd) == 'object') {
- for (addedStyle in stylesToAdd) {
- style[addedStyle] = stylesToAdd[addedStyle];
- }
- }
-
- // style.backgroundColor = '#f00'; // debug
- appendElem.appendChild(this.div);
-
- this.div.innerHTML = this.getHTML(box.width, box.height);
- },
-
- getHTML: function (width, height) {
- // return HTML for movie
- var html = '';
- var flashvars = 'id=' + this.id + '&width=' + width + '&height=' + height;
-
- if (navigator.userAgent.match(/MSIE/)) {
- // IE gets an OBJECT tag
- var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
- html += '';
- } else {
- // all other browsers get an EMBED tag
- html += '';
- }
- return html;
- },
-
- hide: function () {
- // temporarily hide floater offscreen
- if (this.div) {
- this.div.style.left = '-2000px';
- }
- },
-
- show: function () {
- // show ourselves after a call to hide()
- this.reposition();
- },
-
- destroy: function () {
- // destroy control and floater
- if (this.domElement && this.div) {
- this.hide();
- this.div.innerHTML = '';
-
- var body = document.getElementsByTagName('body')[0];
- try {
- body.removeChild(this.div);
- } catch (e) {
- ;
- }
-
- this.domElement = null;
- this.div = null;
- }
- },
-
- reposition: function (elem) {
- // reposition our floating div, optionally to new container
- // warning: container CANNOT change size, only position
- if (elem) {
- this.domElement = ZeroClipboard.$(elem);
- if (!this.domElement) this.hide();
- }
-
- if (this.domElement && this.div) {
- var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
- var style = this.div.style;
- style.left = '' + box.left + 'px';
- style.top = '' + box.top + 'px';
- }
- },
-
- setText: function (newText) {
- // set text to be copied to clipboard
- this.clipText = newText;
- if (this.ready) {
- this.movie.setText(newText);
- }
- },
-
- addEventListener: function (eventName, func) {
- // add user event listener for event
- // event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
- eventName = eventName.toString().toLowerCase().replace(/^on/, '');
- if (!this.handlers[eventName]) {
- this.handlers[eventName] = [];
- }
- this.handlers[eventName].push(func);
- },
-
- setHandCursor: function (enabled) {
- // enable hand cursor (true), or default arrow cursor (false)
- this.handCursorEnabled = enabled;
- if (this.ready) {
- this.movie.setHandCursor(enabled);
- }
- },
-
- setCSSEffects: function (enabled) {
- // enable or disable CSS effects on DOM container
- this.cssEffects = !!enabled;
- },
-
- receiveEvent: function (eventName, args) {
- // receive event from flash
- eventName = eventName.toString().toLowerCase().replace(/^on/, '');
-
- // special behavior for certain events
- switch (eventName) {
- case 'load':
- // movie claims it is ready, but in IE this isn't always the case...
- // bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
- this.movie = document.getElementById(this.movieId);
- if (!this.movie) {
- var self = this;
- setTimeout(function () {
- self.receiveEvent('load', null);
- }, 1);
- return;
- }
-
- // firefox on pc needs a "kick" in order to set these in certain cases
- if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
- var self = this;
- setTimeout(function () {
- self.receiveEvent('load', null);
- }, 100);
- this.ready = true;
- return;
- }
-
- this.ready = true;
- try {
- this.movie.setText(this.clipText);
- } catch (e) {
- }
- try {
- this.movie.setHandCursor(this.handCursorEnabled);
- } catch (e) {
- }
- break;
-
- case 'mouseover':
- if (this.domElement && this.cssEffects) {
- this.domElement.addClass('hover');
- if (this.recoverActive) {
- this.domElement.addClass('active');
- }
-
-
- }
-
-
- break;
-
- case 'mouseout':
- if (this.domElement && this.cssEffects) {
- this.recoverActive = false;
- if (this.domElement.hasClass('active')) {
- this.domElement.removeClass('active');
- this.recoverActive = true;
- }
- this.domElement.removeClass('hover');
-
- }
- break;
-
- case 'mousedown':
- if (this.domElement && this.cssEffects) {
- this.domElement.addClass('active');
- }
- break;
-
- case 'mouseup':
- if (this.domElement && this.cssEffects) {
- this.domElement.removeClass('active');
- this.recoverActive = false;
- }
- break;
- } // switch eventName
- if (this.handlers[eventName]) {
- for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
- var func = this.handlers[eventName][idx];
-
- if (typeof(func) == 'function') {
- // actual function reference
- func(this, args);
- } else if ((typeof(func) == 'object') && (func.length == 2)) {
- // PHP style object + method, i.e. [myObject, 'myMethod']
- func[0][func[1]](this, args);
- } else if (typeof(func) == 'string') {
- // name of function
- window[func](this, args);
- }
- } // foreach event handler defined
- } // user defined handler for event
- }
-
- };
-}/**
- * 复制
- * Created by GUY on 2016/2/16.
- * @class BI.ClipBoard
- * @extends BI.BasicButton
- */
-BI.ClipBoard = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.ClipBoard.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-clipboard",
- copy: BI.emptyFn,
- afterCopy: BI.emptyFn
- })
- },
-
- _init: function () {
- BI.ClipBoard.superclass._init.apply(this, arguments);
- },
-
- mounted: function () {
- var self = this, o = this.options;
- if (window.Clipboard) {
- this.clipboard = new Clipboard(this.element[0], {
- text: function () {
- return BI.isFunction(o.copy) ? o.copy() : o.copy;
- }
- });
- this.clipboard.on("success", o.afterCopy)
- } else {
- this.element.zclip({
- path: BI.resourceURL + "/ZeroClipboard.swf",
- copy: o.copy,
- beforeCopy: o.beforeCopy,
- afterCopy: o.afterCopy
- });
- }
- },
-
- destroyed: function () {
- this.clipboard && this.clipboard.destroy();
- }
-});
-
-BI.shortcut("bi.clipboard", BI.ClipBoard);/**
- * 自定义选色
- *
- * Created by GUY on 2015/11/17.
- * @class BI.CustomColorChooser
- * @extends BI.Widget
- */
-BI.CustomColorChooser = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CustomColorChooser.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-custom-color-chooser",
- width: 227,
- height: 245
- })
- },
-
- _init: function () {
- BI.CustomColorChooser.superclass._init.apply(this, arguments);
- var self = this;
- this.editor = BI.createWidget({
- type: "bi.color_picker_editor",
- width: 195
- });
- this.editor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () {
- self.setValue(this.getValue());
- });
- this.farbtastic = BI.createWidget({
- type: "bi.farbtastic"
- });
- this.farbtastic.on(BI.Farbtastic.EVENT_CHANGE, function () {
- self.setValue(this.getValue());
- });
-
- BI.createWidget({
- type: "bi.vtape",
- element: this,
- items: [{
- type: "bi.absolute",
- items: [{
- el: this.editor,
- left: 15,
- top: 10,
- right: 15
- }],
- height: 30
- }, {
- type: "bi.absolute",
- items: [{
- el: this.farbtastic,
- left: 15,
- right: 15,
- top: 10
- }],
- height: 215
- }]
- })
- },
-
- setValue: function (color) {
- this.editor.setValue(color);
- this.farbtastic.setValue(color);
- },
-
- getValue: function () {
- return this.editor.getValue();
- }
-});
-BI.CustomColorChooser.EVENT_CHANGE = "CustomColorChooser.EVENT_CHANGE";
-BI.shortcut("bi.custom_color_chooser", BI.CustomColorChooser);/**
- * 选色控件
- *
- * Created by GUY on 2015/11/17.
- * @class BI.ColorChooser
- * @extends BI.Widget
- */
-BI.ColorChooser = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ColorChooser.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-color-chooser",
- el: {}
- })
- },
-
- _init: function () {
- BI.ColorChooser.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget(BI.extend({
- type: "bi.color_chooser_trigger",
- width: o.width,
- height: o.height
- }, o.el));
- this.colorPicker = BI.createWidget({
- type: "bi.color_chooser_popup"
- });
-
- this.combo = BI.createWidget({
- type: "bi.combo",
- element: this,
- adjustLength: 1,
- el: this.trigger,
- popup: {
- el: this.colorPicker,
- stopPropagation: false,
- minWidth: 202
- }
- });
-
- var fn = function () {
- var color = self.colorPicker.getValue();
- self.trigger.setValue(color);
- var colors = BI.string2Array(BI.Cache.getItem("colors") || "");
- var que = new BI.Queue(8);
- que.fromArray(colors);
- que.remove(color);
- que.unshift(color);
- BI.Cache.setItem("colors", BI.array2String(que.toArray()));
- };
-
- this.colorPicker.on(BI.ColorChooserPopup.EVENT_VALUE_CHANGE, function () {
- fn();
- });
-
- this.colorPicker.on(BI.ColorChooserPopup.EVENT_CHANGE, function () {
- fn();
- self.combo.hideView();
- });
- this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
- self.colorPicker.setStoreColors(BI.string2Array(BI.Cache.getItem("colors") || ""));
- });
-
- this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW, function () {
- self.fireEvent(BI.ColorChooser.EVENT_CHANGE, arguments);
- })
- },
-
- isViewVisible: function () {
- return this.combo.isViewVisible();
- },
-
- setValue: function (color) {
- this.combo.setValue(color);
- },
-
- getValue: function () {
- return this.colorPicker.getValue();
- }
-});
-BI.ColorChooser.EVENT_CHANGE = "ColorChooser.EVENT_CHANGE";
-BI.shortcut("bi.color_chooser", BI.ColorChooser);/**
- * 选色控件
- *
- * Created by GUY on 2015/11/17.
- * @class BI.ColorChooserPopup
- * @extends BI.Widget
- */
-BI.ColorChooserPopup = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ColorChooserPopup.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-color-chooser-popup",
- height: 145
- })
- },
-
- _init: function () {
- BI.ColorChooserPopup.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.colorEditor = BI.createWidget({
- type: "bi.color_picker_editor"
- });
-
- this.colorEditor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () {
- self.setValue(this.getValue());
- self.fireEvent(BI.ColorChooserPopup.EVENT_VALUE_CHANGE, arguments);
- });
-
- this.storeColors = BI.createWidget({
- type: "bi.color_picker",
- items: [[{
- value: "",
- disabled: true
- }, {
- value: "",
- disabled: true
- }, {
- value: "",
- disabled: true
- }, {
- value: "",
- disabled: true
- }, {
- value: "",
- disabled: true
- }, {
- value: "",
- disabled: true
- }, {
- value: "",
- disabled: true
- }, {
- value: "",
- disabled: true
- }]],
- width: 190,
- height: 25
- });
- this.storeColors.on(BI.ColorPicker.EVENT_CHANGE, function () {
- self.setValue(this.getValue()[0]);
- self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
- });
-
- this.colorPicker = BI.createWidget({
- type: "bi.color_picker",
- width: 190,
- height: 50
- });
-
- this.colorPicker.on(BI.ColorPicker.EVENT_CHANGE, function () {
- self.setValue(this.getValue()[0]);
- self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
- });
-
- this.customColorChooser = BI.createWidget({
- type: "bi.custom_color_chooser"
- });
-
- var panel = BI.createWidget({
- type: "bi.popup_panel",
- buttons: [BI.i18nText("BI-Basic_Cancel"), BI.i18nText("BI-Basic_Save")],
- title: BI.i18nText("BI-Custom_Color"),
- el: this.customColorChooser,
- stopPropagation: false,
- bgap: -1,
- rgap: 1,
- lgap: 1,
- minWidth: 227
- });
-
- this.more = BI.createWidget({
- type: "bi.combo",
- direction: "right,top",
- isNeedAdjustHeight: false,
- el: {
- type: "bi.text_item",
- cls: "color-chooser-popup-more bi-list-item",
- textAlign: "center",
- height: 20,
- text: BI.i18nText("BI-Basic_More") + "..."
- },
- popup: panel
- });
-
- this.more.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () {
- self.customColorChooser.setValue(self.getValue());
- });
- panel.on(BI.PopupPanel.EVENT_CLICK_TOOLBAR_BUTTON, function (index) {
- switch (index) {
- case 0:
- self.more.hideView();
- break;
- case 1:
- self.setValue(self.customColorChooser.getValue());
- self.more.hideView();
- self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
- break;
- }
- });
-
- BI.createWidget({
- type: "bi.vtape",
- element: this,
- items: [{
- el: {
- type: "bi.absolute",
- cls: "bi-background bi-border-bottom",
- items: [{
- el: this.colorEditor,
- left: 0,
- right: 0,
- top: 5
- }]
- },
- height: 30
- }, {
- el: {
- type: "bi.absolute",
- items: [{
- el: this.storeColors,
- left: 5,
- right: 5,
- top: 5
- }]
- },
- height: 30
- }, {
- el: {
- type: "bi.absolute",
- items: [{
- el: this.colorPicker,
- left: 5,
- right: 5,
- top: 5
- }]
- },
- height: 65
- }, {
- el: this.more,
- height: 20
- }]
- })
- },
-
- setStoreColors: function (colors) {
- if (BI.isArray(colors)) {
- var items = BI.map(colors, function (i, color) {
- return {
- value: color
- }
- });
- BI.count(colors.length, 8, function (i) {
- items.push({
- value: "",
- disabled: true
- })
- });
- this.storeColors.populate([items]);
- }
- },
-
- setValue: function (color) {
- this.colorEditor.setValue(color);
- this.colorPicker.setValue(color);
- this.storeColors.setValue(color);
- },
-
- getValue: function () {
- return this.colorEditor.getValue();
- }
-});
-BI.ColorChooserPopup.EVENT_VALUE_CHANGE = "ColorChooserPopup.EVENT_VALUE_CHANGE";
-BI.ColorChooserPopup.EVENT_CHANGE = "ColorChooserPopup.EVENT_CHANGE";
-BI.shortcut("bi.color_chooser_popup", BI.ColorChooserPopup);/**
- * 选色控件
- *
- * Created by GUY on 2015/11/17.
- * @class BI.ColorChooserTrigger
- * @extends BI.Trigger
- */
-BI.ColorChooserTrigger = BI.inherit(BI.Trigger, {
-
- _defaultConfig: function () {
- var conf = BI.ColorChooserTrigger.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-color-chooser-trigger",
- height: 30
- })
- },
-
- _init: function () {
- BI.ColorChooserTrigger.superclass._init.apply(this, arguments);
- this.colorContainer = BI.createWidget({
- type: "bi.layout",
- cls: "bi-card color-chooser-trigger-content"
- });
-
- var down = BI.createWidget({
- type: "bi.icon_button",
- disableSelected: true,
- cls: "icon-combo-down-icon trigger-triangle-font",
- width: 12,
- height: 8
- });
-
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [{
- el: this.colorContainer,
- left: 3,
- right: 3,
- top: 3,
- bottom: 3
- }, {
- el: down,
- right: 3,
- bottom: 3
- }]
- });
- if (this.options.value) {
- this.setValue(this.options.value);
- }
- },
-
- setValue: function (color) {
- BI.ColorChooserTrigger.superclass.setValue.apply(this, arguments);
- if (color === "") {
- this.colorContainer.element.css("background-color", "").removeClass("trans-color-background").addClass("auto-color-background");
- } else if (color === "transparent") {
- this.colorContainer.element.css("background-color", "").removeClass("auto-color-background").addClass("trans-color-background")
- } else {
- this.colorContainer.element.css({"background-color": color}).removeClass("auto-color-background").removeClass("trans-color-background");
- }
- }
-});
-BI.ColorChooserTrigger.EVENT_CHANGE = "ColorChooserTrigger.EVENT_CHANGE";
-BI.shortcut("bi.color_chooser_trigger", BI.ColorChooserTrigger);/**
- * 简单选色控件按钮
- *
- * Created by GUY on 2015/11/16.
- * @class BI.ColorPickerButton
- * @extends BI.BasicButton
- */
-BI.ColorPickerButton = BI.inherit(BI.BasicButton, {
-
- _defaultConfig: function () {
- var conf = BI.ColorPickerButton.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-color-picker-button bi-background bi-border-top bi-border-left"
- })
- },
-
- _init: function () {
- BI.ColorPickerButton.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- if (o.value) {
- this.element.css("background-color", o.value);
- var name = this.getName();
- this.element.hover(function () {
- self._createMask();
- if (self.isEnabled()) {
- BI.Maskers.show(name);
- }
- }, function () {
- if (!self.isSelected()) {
- BI.Maskers.hide(name);
- }
- });
- }
- },
-
- _createMask: function () {
- var o = this.options, name = this.getName();
- if (this.isEnabled() && !BI.Maskers.has(name)) {
- var w = BI.Maskers.make(name, this, {
- offset: {
- left: -1,
- top: -1,
- right: -1,
- bottom: -1
- }
- });
- w.element.addClass("color-picker-button-mask").css("background-color", o.value);
- }
- },
-
- setSelected: function (b) {
- BI.ColorPickerButton.superclass.setSelected.apply(this, arguments);
- if (!!b) {
- this._createMask();
- }
- BI.Maskers[!!b ? "show" : "hide"](this.getName());
- }
-});
-BI.ColorPickerButton.EVENT_CHANGE = "ColorPickerButton.EVENT_CHANGE";
-BI.shortcut("bi.color_picker_button", BI.ColorPickerButton);/**
- * 简单选色控件
- *
- * Created by GUY on 2015/11/16.
- * @class BI.ColorPicker
- * @extends BI.Widget
- */
-BI.ColorPicker = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ColorPicker.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-color-picker",
- items: null
- })
- },
-
- _items: [
- [{
- value: "#ffffff"
- }, {
- value: "#f2f2f2"
- }, {
- value: "#e5e5e5"
- }, {
- value: "#d9d9d9"
- }, {
- value: "#cccccc"
- }, {
- value: "#bfbfbf"
- }, {
- value: "#b2b2b2"
- }, {
- value: "#a6a6a6"
- }, {
- value: "#999999"
- }, {
- value: "#8c8c8c"
- }, {
- value: "#808080"
- }, {
- value: "#737373"
- }, {
- value: "#666666"
- }, {
- value: "#4d4d4d"
- }, {
- value: "#333333"
- }, {
- value: "#000000"
- }],
- [{
- value: "#d8b5a6"
- }, {
- value: "#ff9e9a"
- }, {
- value: "#ffc17d"
- }, {
- value: "#f5e56b"
- }, {
- value: "#d8e698"
- }, {
- value: "#e0ebaf"
- }, {
- value: "#c3d825"
- }, {
- value: "#bce2e8"
- }, {
- value: "#85d3cd"
- }, {
- value: "#bce2e8"
- }, {
- value: "#a0d8ef"
- }, {
- value: "#89c3eb"
- }, {
- value: "#bbc8e6"
- }, {
- value: "#bbbcde"
- }, {
- value: "#d6b4cc"
- }, {
- value: "#fbc0d3"
- }],
- [{
- value: "#bb9581"
- }, {
- value: "#f37d79"
- }, {
- value: "#fba74f"
- }, {
- value: "#ffdb4f"
- }, {
- value: "#c7dc68"
- }, {
- value: "#b0ca71"
- }, {
- value: "#99ab4e"
- }, {
- value: "#84b9cb"
- }, {
- value: "#00a3af"
- }, {
- value: "#2ca9e1"
- }, {
- value: "#0095d9"
- }, {
- value: "#4c6cb3"
- }, {
- value: "#8491c3"
- }, {
- value: "#a59aca"
- }, {
- value: "#cc7eb1"
- }, {
- value: "#e89bb4"
- }],
- [{
- value: "#9d775f"
- }, {
- value: "#dd4b4b"
- }, {
- value: "#ef8b07"
- }, {
- value: "#fcc800"
- }, {
- value: "#aacf53"
- }, {
- value: "#82ae46"
- }, {
- value: "#69821b"
- }, {
- value: "#59b9c6"
- }, {
- value: "#2a83a2"
- }, {
- value: "#007bbb"
- }, {
- value: "#19448e"
- }, {
- value: "#274a78"
- }, {
- value: "#4a488e"
- }, {
- value: "#7058a3"
- }, {
- value: "#884898"
- }, {
- value: "#d47596"
- }]
- ],
-
- _init: function () {
- BI.ColorPicker.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.colors = BI.createWidget({
- type: "bi.button_group",
- element: this,
- items: BI.createItems(o.items || this._items, {
- type: "bi.color_picker_button",
- once: false
- }),
- layouts: [{
- type: "bi.grid"
- }]
- });
- this.colors.on(BI.ButtonGroup.EVENT_CHANGE, function () {
- self.fireEvent(BI.ColorPicker.EVENT_CHANGE, arguments);
- })
- },
-
- populate: function(items){
- var args =[].slice.call(arguments);
- args[0] = BI.createItems(items, {
- type: "bi.color_picker_button",
- once: false
- });
- this.colors.populate.apply(this.colors, args);
- },
-
- setValue: function (color) {
- this.colors.setValue(color);
- },
-
- getValue: function () {
- return this.colors.getValue();
- }
-});
-BI.ColorPicker.EVENT_CHANGE = "ColorPicker.EVENT_CHANGE";
-BI.shortcut("bi.color_picker", BI.ColorPicker);/**
- * 简单选色控件
- *
- * Created by GUY on 2015/11/16.
- * @class BI.ColorPickerEditor
- * @extends BI.Widget
- */
-BI.ColorPickerEditor = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ColorPickerEditor.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-color-picker-editor",
- width: 200,
- height: 20
- })
- },
-
- _init: function () {
- BI.ColorPickerEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.colorShow = BI.createWidget({
- type: "bi.layout",
- cls: "color-picker-editor-display bi-card",
- height: 20
- });
- var RGB = BI.createWidgets(BI.createItems([{text: "R"}, {text: "G"}, {text: "B"}], {
- type: "bi.label",
- cls: "color-picker-editor-label",
- width: 10,
- height: 20
- }));
-
- var checker = function (v) {
- return BI.isNumeric(v) && (v | 0) >= 0 && (v | 0) <= 255;
- };
- var Ws = BI.createWidgets([{}, {}, {}], {
- type: "bi.small_text_editor",
- cls: "color-picker-editor-input",
- validationChecker: checker,
- errorText: BI.i18nText("BI-Color_Picker_Error_Text"),
- allowBlank: true,
- value: 255,
- width: 32,
- height: 20
- });
- BI.each(Ws, function (i, w) {
- w.on(BI.TextEditor.EVENT_CHANGE, function () {
- if (self.R.isValid() && self.G.isValid() && self.B.isValid()) {
- self.colorShow.element.css("background-color", self.getValue());
- self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE);
- }
- });
- });
- this.R = Ws[0];
- this.G = Ws[1];
- this.B = Ws[2];
-
- this.none = BI.createWidget({
- type: "bi.checkbox",
- title: BI.i18nText("BI-Basic_Auto")
- });
- this.none.on(BI.Checkbox.EVENT_CHANGE, function () {
- if (this.isSelected()) {
- self.lastColor = self.getValue();
- self.setValue("");
- } else {
- self.setValue(self.lastColor || "#000000");
- }
- if (self.R.isValid() && self.G.isValid() && self.B.isValid()) {
- self.colorShow.element.css("background-color", self.getValue());
- self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE);
- }
- });
-
- this.transparent = BI.createWidget({
- type: "bi.checkbox",
- title: BI.i18nText("BI-Transparent_Color")
- });
- this.transparent.on(BI.Checkbox.EVENT_CHANGE, function () {
- if (this.isSelected()) {
- self.lastColor = self.getValue();
- self.setValue("transparent");
- } else {
- self.setValue(self.lastColor || "#000000");
- }
- if (self.R.isValid() && self.G.isValid() && self.B.isValid()) {
- self.colorShow.element.css("background-color", self.getValue());
- self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE);
- }
- });
-
- BI.createWidget({
- type: "bi.htape",
- element: this,
- items: [{
- el: this.colorShow,
- width: 'fill'
- }, {
- el: RGB[0],
- lgap: 10,
- width: 16
- }, {
- el: this.R,
- width: 32
- }, {
- el: RGB[1],
- lgap: 10,
- width: 16
- }, {
- el: this.G,
- width: 32
- }, {
- el: RGB[2],
- lgap: 10,
- width: 16
- }, {
- el: this.B,
- width: 32
- }, {
- el: {
- type: "bi.center_adapt",
- items: [this.none]
- },
- width: 18
- }, {
- el: {
- type: "bi.center_adapt",
- items: [this.transparent]
- },
- width: 18
- }]
- })
- },
-
- setValue: function (color) {
- if (color === "transparent") {
- this.transparent.setSelected(true);
- this.none.setSelected(false);
- this.R.setValue("");
- this.G.setValue("");
- this.B.setValue("");
- return;
- }
- if (!color) {
- color = "";
- this.none.setSelected(true);
- } else {
- this.none.setSelected(false);
- }
- this.transparent.setSelected(false);
- this.colorShow.element.css("background-color", color);
- var json = BI.DOM.rgb2json(BI.DOM.hex2rgb(color));
- this.R.setValue(BI.isNull(json.r) ? "" : json.r);
- this.G.setValue(BI.isNull(json.g) ? "" : json.g);
- this.B.setValue(BI.isNull(json.b) ? "" : json.b);
- },
-
- getValue: function () {
- if (this.transparent.isSelected()) {
- return "transparent";
- }
- return BI.DOM.rgb2hex(BI.DOM.json2rgb({
- r: this.R.getValue(),
- g: this.G.getValue(),
- b: this.B.getValue()
- }))
- }
-});
-BI.ColorPickerEditor.EVENT_CHANGE = "ColorPickerEditor.EVENT_CHANGE";
-BI.shortcut("bi.color_picker_editor", BI.ColorPickerEditor);/**
- * 选色控件
- *
- * Created by GUY on 2015/11/16.
- * @class BI.Farbtastic
- * @extends BI.Widget
- */
-BI.Farbtastic = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.Farbtastic.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-farbtastic",
- width: 195,
- height: 195
- })
- },
-
- _init: function () {
- BI.Farbtastic.superclass._init.apply(this, arguments);
- },
-
- mounted: function () {
- var self = this;
- this.farbtastic = $.farbtastic(this.element, function (v) {
- self.fireEvent(BI.Farbtastic.EVENT_CHANGE, self.getValue(), self);
- });
- },
-
- setValue: function (color) {
- this.farbtastic.setColor(color);
- },
-
- getValue: function () {
- return this.farbtastic.color;
- }
-});
-BI.Farbtastic.EVENT_CHANGE = "Farbtastic.EVENT_CHANGE";
-BI.shortcut("bi.farbtastic", BI.Farbtastic);/**
- * Farbtastic Color Picker 1.2
- * © 2008 Steven Wittens
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-jQuery.fn.farbtastic = function (callback) {
- $.farbtastic(this, callback);
- return this;
-};
-
-jQuery.farbtastic = function (container, callback) {
- var container = $(container).get(0);
- return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
-}
-
-jQuery._farbtastic = function (container, callback) {
- // Store farbtastic object
- var fb = this;
-
- // Insert markup
- $(container).html('
');
- var e = $('.farbtastic', container);
- fb.wheel = $('.wheel', container).get(0);
- // Dimensions
- fb.radius = 84;
- fb.square = 100;
- fb.width = 194;
-
- // Fix background PNGs in IE6
- if (navigator.appVersion.match(/MSIE [0-6]\./)) {
- $('*', e).each(function () {
- if (this.currentStyle.backgroundImage != 'none') {
- var image = this.currentStyle.backgroundImage;
- image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
- $(this).css({
- 'backgroundImage': 'none',
- 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
- });
- }
- });
- }
-
- /**
- * Link to the given element(s) or callback.
- */
- fb.linkTo = function (callback) {
- // Unbind previous nodes
- if (typeof fb.callback == 'object') {
- $(fb.callback).unbind('keyup', fb.updateValue);
- }
-
- // Reset color
- fb.color = null;
-
- // Bind callback or elements
- if (typeof callback == 'function') {
- fb.callback = callback;
- }
- else if (typeof callback == 'object' || typeof callback == 'string') {
- fb.callback = $(callback);
- fb.callback.bind('keyup', fb.updateValue);
- if (fb.callback.get(0).value) {
- fb.setColor(fb.callback.get(0).value);
- }
- }
- return this;
- }
- fb.updateValue = function (event) {
- if (this.value && this.value != fb.color) {
- fb.setColor(this.value);
- }
- }
-
- /**
- * Change color with HTML syntax #123456
- */
- fb.setColor = function (color) {
- var unpack = fb.unpack(color);
- if (fb.color != color && unpack) {
- fb.color = color;
- fb.rgb = unpack;
- fb.hsl = fb.RGBToHSL(fb.rgb);
- fb.updateDisplay();
- }
- return this;
- }
-
- /**
- * Change color with HSL triplet [0..1, 0..1, 0..1]
- */
- fb.setHSL = function (hsl) {
- fb.hsl = hsl;
- fb.rgb = fb.HSLToRGB(hsl);
- fb.color = fb.pack(fb.rgb);
- fb.updateDisplay();
- return this;
- }
-
- /////////////////////////////////////////////////////
-
- /**
- * Retrieve the coordinates of the given event relative to the center
- * of the widget.
- */
- fb.widgetCoords = function (event) {
- var x, y;
- var el = event.target || event.srcElement;
- var reference = fb.wheel;
-
- if (typeof event.offsetX != 'undefined') {
- // Use offset coordinates and find common offsetParent
- var pos = { x: event.offsetX, y: event.offsetY };
-
- // Send the coordinates upwards through the offsetParent chain.
- var e = el;
- while (e) {
- e.mouseX = pos.x;
- e.mouseY = pos.y;
- pos.x += e.offsetLeft;
- pos.y += e.offsetTop;
- e = e.offsetParent;
- }
-
- // Look for the coordinates starting from the wheel widget.
- var e = reference;
- var offset = { x: 0, y: 0 }
- while (e) {
- if (typeof e.mouseX != 'undefined') {
- x = e.mouseX - offset.x;
- y = e.mouseY - offset.y;
- break;
- }
- offset.x += e.offsetLeft;
- offset.y += e.offsetTop;
- e = e.offsetParent;
- }
-
- // Reset stored coordinates
- e = el;
- while (e) {
- e.mouseX = undefined;
- e.mouseY = undefined;
- e = e.offsetParent;
- }
- }
- else {
- // Use absolute coordinates
- var pos = fb.absolutePosition(reference);
- x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
- y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
- }
- // Subtract distance to middle
- return { x: x - fb.width / 2, y: y - fb.width / 2 };
- }
-
- /**
- * Mousedown handler
- */
- fb.mousedown = function (event) {
- // Capture mouse
- if (!document.dragging) {
- $(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup);
- document.dragging = true;
- }
-
- // Check which area is being dragged
- var pos = fb.widgetCoords(event);
- fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;
-
- // Process
- fb.mousemove(event);
- return false;
- }
-
- /**
- * Mousemove handler
- */
- fb.mousemove = function (event) {
- // Get coordinates relative to color picker center
- var pos = fb.widgetCoords(event);
-
- // Set new HSL parameters
- if (fb.circleDrag) {
- var hue = Math.atan2(pos.x, -pos.y) / 6.28;
- if (hue < 0) hue += 1;
- fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
- }
- else {
- var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
- var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
- fb.setHSL([fb.hsl[0], sat, lum]);
- }
- return false;
- }
-
- /**
- * Mouseup handler
- */
- fb.mouseup = function () {
- // Uncapture mouse
- $(document).unbind('mousemove', fb.mousemove);
- $(document).unbind('mouseup', fb.mouseup);
- document.dragging = false;
- }
-
- /**
- * Update the markers and styles
- */
- fb.updateDisplay = function () {
- // Markers
- var angle = fb.hsl[0] * 6.28;
- $('.h-marker', e).css({
- left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px',
- top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px'
- });
-
- $('.sl-marker', e).css({
- left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px',
- top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px'
- });
-
- // Saturation/Luminance gradient
- $('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5])));
-
- // Linked elements or callback
- if (typeof fb.callback == 'object') {
- // Set background/foreground color
- $(fb.callback).css({
- backgroundColor: fb.color,
- color: fb.hsl[2] > 0.5 ? '#000' : '#fff'
- });
-
- // Change linked value
- $(fb.callback).each(function() {
- if (this.value && this.value != fb.color) {
- this.value = fb.color;
- }
- });
- }
- else if (typeof fb.callback == 'function') {
- fb.callback.call(fb, fb.color);
- }
- }
-
- /**
- * Get absolute position of element
- */
- fb.absolutePosition = function (el) {
- var r = { x: el.offsetLeft, y: el.offsetTop };
- // Resolve relative to offsetParent
- if (el.offsetParent) {
- var tmp = fb.absolutePosition(el.offsetParent);
- r.x += tmp.x;
- r.y += tmp.y;
- }
- return r;
- };
-
- /* Various color utility functions */
- fb.pack = function (rgb) {
- var r = Math.round(rgb[0] * 255);
- var g = Math.round(rgb[1] * 255);
- var b = Math.round(rgb[2] * 255);
- return '#' + (r < 16 ? '0' : '') + r.toString(16) +
- (g < 16 ? '0' : '') + g.toString(16) +
- (b < 16 ? '0' : '') + b.toString(16);
- }
-
- fb.unpack = function (color) {
- if (color.length == 7) {
- return [parseInt('0x' + color.substring(1, 3)) / 255,
- parseInt('0x' + color.substring(3, 5)) / 255,
- parseInt('0x' + color.substring(5, 7)) / 255];
- }
- else if (color.length == 4) {
- return [parseInt('0x' + color.substring(1, 2)) / 15,
- parseInt('0x' + color.substring(2, 3)) / 15,
- parseInt('0x' + color.substring(3, 4)) / 15];
- }
- }
-
- fb.HSLToRGB = function (hsl) {
- var m1, m2, r, g, b;
- var h = hsl[0], s = hsl[1], l = hsl[2];
- m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
- m1 = l * 2 - m2;
- return [this.hueToRGB(m1, m2, h+0.33333),
- this.hueToRGB(m1, m2, h),
- this.hueToRGB(m1, m2, h-0.33333)];
- }
-
- fb.hueToRGB = function (m1, m2, h) {
- h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
- if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
- if (h * 2 < 1) return m2;
- if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
- return m1;
- }
-
- fb.RGBToHSL = function (rgb) {
- var min, max, delta, h, s, l;
- var r = rgb[0], g = rgb[1], b = rgb[2];
- min = Math.min(r, Math.min(g, b));
- max = Math.max(r, Math.max(g, b));
- delta = max - min;
- l = (min + max) / 2;
- s = 0;
- if (l > 0 && l < 1) {
- s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
- }
- h = 0;
- if (delta > 0) {
- if (max == r && max != g) h += (g - b) / delta;
- if (max == g && max != b) h += (2 + (b - r) / delta);
- if (max == b && max != r) h += (4 + (r - g) / delta);
- h /= 6;
- }
- return [h, s, l];
- }
-
- // Install mousedown handler (the others are set on the document on-demand)
- $('*', e).mousedown(fb.mousedown);
-
- // Init color
- fb.setColor('#000000');
-
- // Set linked elements/callback
- if (callback) {
- fb.linkTo(callback);
- }
-}/**
- * Created by GUY on 2017/2/8.
+/**
+ * 可以改变图标的button
*
- * @class BI.BubbleCombo
- * @extends BI.Widget
+ * Created by GUY on 2016/2/2.
+ *
+ * @class BI.IconChangeButton
+ * @extends BI.Single
*/
-BI.BubbleCombo = BI.inherit(BI.Widget, {
- _const: {
- TRIANGLE_LENGTH: 6
- },
+BI.IconChangeButton = BI.inherit(BI.Single, {
_defaultConfig: function () {
- return BI.extend(BI.BubbleCombo.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-bubble-combo",
- trigger: "click",
- toggle: true,
- direction: "bottom", //top||bottom||left||right||top,left||top,right||bottom,left||bottom,right
- isDefaultInit: false,
- destroyWhenHide: false,
- isNeedAdjustHeight: true,//是否需要高度调整
- isNeedAdjustWidth: true,
+ var conf = BI.IconChangeButton.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: "bi-icon-change-button",
+ iconClass: "",
+ iconWidth: null,
+ iconHeight: null,
+
+ stopEvent: false,
stopPropagation: false,
- adjustLength: 0,//调整的距离
- // adjustXOffset: 0,
- // adjustYOffset: 10,
- hideChecker: BI.emptyFn,
- offsetStyle: "left", //left,right,center
- el: {},
- popup: {},
+ selected: false,
+ once: false, //点击一次选中有效,再点无效
+ forceSelected: false, //点击即选中, 选中了就不会被取消
+ forceNotSelected: false, //无论怎么点击都不会被选中
+ disableSelected: false, //使能选中
+
+ shadow: false,
+ isShadowShowingOnSelected: false, //选中状态下是否显示阴影
+ trigger: null,
+ handler: BI.emptyFn
})
},
+
_init: function () {
- BI.BubbleCombo.superclass._init.apply(this, arguments);
+ BI.IconChangeButton.superclass._init.apply(this, arguments);
var self = this, o = this.options;
- this.combo = BI.createWidget({
- type: "bi.combo",
+ this.button = BI.createWidget({
+ type: "bi.icon_button",
element: this,
- trigger: o.trigger,
- toggle: o.toggle,
- direction: o.direction,
- isDefaultInit: o.isDefaultInit,
- destroyWhenHide: o.destroyWhenHide,
- isNeedAdjustHeight: o.isNeedAdjustHeight,
- isNeedAdjustWidth: o.isNeedAdjustWidth,
- adjustLength: this._getAdjustLength(),
+ cls: o.iconClass,
+ height: o.height,
+ iconWidth: o.iconWidth,
+ iconHeight: o.iconHeight,
+
+ stopEvent: o.stopEvent,
stopPropagation: o.stopPropagation,
- adjustXOffset: 0,
- adjustYOffset: 0,
- hideChecker: o.hideChecker,
- offsetStyle: o.offsetStyle,
- el: o.el,
- popup: BI.extend({
- type: "bi.bubble_popup_view"
- }, o.popup),
+ selected: o.selected,
+ once: o.once,
+ forceSelected: o.forceSelected,
+ forceNotSelected: o.forceNotSelected,
+ disableSelected: o.disableSelected,
+
+ shadow: o.shadow,
+ isShadowShowingOnSelected: o.isShadowShowingOnSelected,
+ trigger: o.trigger,
+ handler: o.handler
});
- this.combo.on(BI.Combo.EVENT_TRIGGER_CHANGE, function () {
- self.fireEvent(BI.BubbleCombo.EVENT_TRIGGER_CHANGE, arguments);
+
+ this.button.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
});
- this.combo.on(BI.Combo.EVENT_CHANGE, function () {
- self.fireEvent(BI.BubbleCombo.EVENT_CHANGE, arguments);
+ this.button.on(BI.IconButton.EVENT_CHANGE, function () {
+ self.fireEvent(BI.IconChangeButton.EVENT_CHANGE, arguments);
});
- this.combo.on(BI.Combo.EVENT_EXPAND, function () {
- self.fireEvent(BI.BubbleCombo.EVENT_EXPAND, arguments);
+ },
+
+ isSelected: function () {
+ return this.button.isSelected();
+ },
+
+ setSelected: function (b) {
+ this.button.setSelected(b);
+ },
+
+ setIcon: function (cls) {
+ var o = this.options;
+ if (o.iconClass !== cls) {
+ this.element.removeClass(o.iconClass).addClass(cls);
+ o.iconClass = cls;
+ }
+ }
+});
+BI.IconChangeButton.EVENT_CHANGE = "IconChangeButton.EVENT_CHANGE";
+BI.shortcut("bi.icon_change_button", BI.IconChangeButton);/**
+ * guy
+ * @extends BI.Single
+ * @type {*|void|Object}
+ */
+BI.HalfIconButton = BI.inherit(BI.IconButton, {
+ _defaultConfig: function() {
+ var conf = BI.HalfIconButton.superclass._defaultConfig.apply(this,arguments);
+ return BI.extend(conf, {
+ extraCls: "bi-half-icon-button check-half-select-icon",
+ height: 16,
+ width: 16,
+ iconWidth: 16,
+ iconHeight: 16,
+ selected: false
+ })
+ },
+
+ _init : function() {
+ BI.HalfIconButton.superclass._init.apply(this, arguments);
+ },
+
+ doClick: function(){
+ BI.HalfIconButton.superclass.doClick.apply(this, arguments);
+ if(this.isValid()){
+ this.fireEvent(BI.HalfIconButton.EVENT_CHANGE);
+ }
+ }
+});
+BI.HalfIconButton.EVENT_CHANGE = "HalfIconButton.EVENT_CHANGE";
+
+BI.shortcut("bi.half_icon_button", BI.HalfIconButton);/**
+ * 统一的trigger图标按钮
+ *
+ * Created by GUY on 2015/9/16.
+ * @class BI.TriggerIconButton
+ * @extends BI.IconButton
+ */
+BI.TriggerIconButton = BI.inherit(BI.IconButton, {
+
+ _defaultConfig: function () {
+ var conf = BI.TriggerIconButton.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-trigger-icon-button",
+ extraCls: "pull-down-font"
});
- this.combo.on(BI.Combo.EVENT_COLLAPSE, function () {
- self.fireEvent(BI.BubbleCombo.EVENT_COLLAPSE, arguments);
+ },
+
+ _init: function () {
+ BI.TriggerIconButton.superclass._init.apply(this, arguments);
+ },
+
+ doClick: function () {
+ BI.TriggerIconButton.superclass.doClick.apply(this, arguments);
+ if (this.isValid()) {
+ this.fireEvent(BI.TriggerIconButton.EVENT_CHANGE, this);
+ }
+ }
+});
+BI.TriggerIconButton.EVENT_CHANGE = "TriggerIconButton.EVENT_CHANGE";
+BI.shortcut("bi.trigger_icon_button", BI.TriggerIconButton);/**
+ * guy
+ * 复选框item
+ * @type {*|void|Object}
+ */
+BI.MultiSelectItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.MultiSelectItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-multi-select-item",
+ height: 25,
+ logic: {
+ dynamic: false
+ }
+ })
+ },
+ _init: function () {
+ BI.MultiSelectItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.checkbox"
});
- this.combo.on(BI.Combo.EVENT_AFTER_INIT, function () {
- self.fireEvent(BI.BubbleCombo.EVENT_AFTER_INIT, arguments);
+ this.text = BI.createWidget({
+ type: "bi.label",
+ cls: "list-item-text",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ rgap: o.rgap,
+ text: o.text,
+ keyword: o.keyword,
+ value: o.value,
+ py: o.py
});
- this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
- self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW, arguments);
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(self.isSelected());
+ }
});
- this.combo.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () {
- self._showTriangle();
- self.fireEvent(BI.BubbleCombo.EVENT_AFTER_POPUPVIEW, arguments);
+
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic("horizontal", BI.extend(o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection("left", {
+ type: "bi.center_adapt",
+ items: [this.checkbox],
+ width: 36
+ }, this.text)
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.MultiSelectItem.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ if (this.isValid()) {
+ this.fireEvent(BI.MultiSelectItem.EVENT_CHANGE, this.getValue(), this);
+ }
+ },
+
+ setSelected: function (v) {
+ BI.MultiSelectItem.superclass.setSelected.apply(this, arguments);
+ this.checkbox.setSelected(v);
+ }
+});
+BI.MultiSelectItem.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.multi_select_item", BI.MultiSelectItem);/**
+ * Created by GUY on 2016/2/2.
+ *
+ * @class BI.SingleSelectIconTextItem
+ * @extends BI.BasicButton
+ */
+BI.SingleSelectIconTextItem = BI.inherit(BI.Single, {
+ _defaultConfig: function () {
+ return BI.extend(BI.SingleSelectIconTextItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-single-select-icon-text-item bi-list-item-active",
+ iconClass: "",
+ hgap: 10,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.SingleSelectIconTextItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.text = BI.createWidget({
+ type: "bi.icon_text_item",
+ element: this,
+ cls: o.iconClass,
+ once: o.once,
+ selected: o.selected,
+ height: o.height,
+ iconHeight: o.iconHeight,
+ iconWidth: o.iconWidth,
+ text: o.text,
+ keyword: o.keyword,
+ value: o.value,
+ py: o.py
});
- this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW, function () {
- self._hideTriangle();
- self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW, arguments);
+ this.text.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
});
- this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW, function () {
- self.fireEvent(BI.BubbleCombo.EVENT_AFTER_HIDEVIEW, arguments);
+ },
+
+ isSelected: function () {
+ return this.text.isSelected();
+ },
+
+ setSelected: function (b) {
+ this.text.setSelected(b);
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.SingleSelectIconTextItem.superclass.doClick.apply(this, arguments);
+ }
+});
+
+BI.shortcut("bi.single_select_icon_text_item", BI.SingleSelectIconTextItem);/**
+ * guy
+ * 复选框item
+ * @type {*|void|Object}
+ */
+BI.SingleSelectItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.SingleSelectItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-single-select-item bi-list-item-active",
+ hgap: 10,
+ height: 25,
+ textAlign: "left",
+ })
+ },
+ _init: function () {
+ BI.SingleSelectItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.text = BI.createWidget({
+ type: "bi.label",
+ element: this,
+ textAlign: o.textAlign,
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ keyword: o.keyword,
+ value: o.value,
+ py: o.py
});
},
- _getAdjustLength: function () {
- return this._const.TRIANGLE_LENGTH + this.options.adjustLength;
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
},
- _createTriangle: function (direction) {
- var pos = {}, op = {};
- var adjustLength = this.options.adjustLength;
- var offset = this.element.offset();
- var left = offset.left, right = offset.left + this.element.outerWidth();
- var top = offset.top, bottom = offset.top + this.element.outerHeight();
- switch (direction) {
- case "left":
- pos = {
- top: top,
- height: this.element.outerHeight(),
- left: left - adjustLength - this._const.TRIANGLE_LENGTH
- };
- op = {width: this._const.TRIANGLE_LENGTH};
- break;
- case "right":
- pos = {
- top: top,
- height: this.element.outerHeight(),
- left: right + adjustLength
- };
- op = {width: this._const.TRIANGLE_LENGTH};
- break;
- case "top":
- pos = {
- left: left,
- width: this.element.outerWidth(),
- top: top - adjustLength - this._const.TRIANGLE_LENGTH
- };
- op = {height: this._const.TRIANGLE_LENGTH};
- break;
- case "bottom":
- pos = {
- left: left,
- width: this.element.outerWidth(),
- top: bottom + adjustLength
- };
- op = {height: this._const.TRIANGLE_LENGTH};
- break;
- default:
- break;
- }
- this.triangle && this.triangle.destroy();
- this.triangle = BI.createWidget(op, {
- type: "bi.center_adapt",
- cls: "button-combo-triangle-wrapper",
- items: [{
- type: "bi.layout",
- cls: "bubble-combo-triangle-" + direction + " bi-high-light-border"
- }]
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.SingleSelectItem.superclass.doClick.apply(this, arguments);
+ },
+
+ setSelected: function (v) {
+ BI.SingleSelectItem.superclass.setSelected.apply(this, arguments);
+ }
+});
+
+BI.shortcut("bi.single_select_item", BI.SingleSelectItem);/**
+ * guy
+ * 单选框item
+ * @type {*|void|Object}
+ */
+BI.SingleSelectRadioItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.SingleSelectRadioItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-single-select-radio-item bi-list-item-active",
+ logic: {
+ dynamic: false
+ },
+ hgap: 10,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.SingleSelectRadioItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.radio = BI.createWidget({
+ type: "bi.radio"
+ });
+ this.radio.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(!self.isSelected());
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ cls: "list-item-text",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ keyword: o.keyword,
+ value: o.value,
+ py: o.py
+ });
+
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic("horizontal", BI.extend(o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection("left", {
+ type: "bi.center_adapt",
+ items: [this.radio],
+ width: 36
+ }, this.text)
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.SingleSelectRadioItem.superclass.doClick.apply(this, arguments);
+ this.radio.setSelected(this.isSelected());
+ },
+
+ setSelected: function (v) {
+ BI.SingleSelectRadioItem.superclass.setSelected.apply(this, arguments);
+ this.radio.setSelected(v);
+
+ }
+});
+
+BI.shortcut("bi.single_select_radio_item", BI.SingleSelectRadioItem);/**
+ * Created by roy on 15/10/16.
+ */
+BI.ArrowNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.ArrowNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-arrow-group-node bi-list-item",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ open: false,
+ height: 25
+ });
+ },
+ _init: function () {
+ var self = this, o = this.options;
+ BI.ArrowNode.superclass._init.apply(this, arguments);
+ this.checkbox = BI.createWidget({
+ type: "bi.arrow_tree_group_node_checkbox",
+ iconWidth: 13,
+ iconHeight: 13
+ });
+
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(self.isSelected());
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 25,
+ el: this.checkbox
+ }, this.text);
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.ArrowNode.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isOpened());
+ },
+ setValue: function (v) {
+ this.text.setValue(v);
+ },
+
+ setOpened: function (v) {
+ BI.ArrowNode.superclass.setOpened.apply(this, arguments);
+ this.checkbox.setSelected(v);
+ }
+});
+
+BI.shortcut("bi.arrow_group_node", BI.ArrowNode);/**
+ * 加号表示的组节点
+ * Created by GUY on 2015/9/6.
+ * @class BI.FirstPlusGroupNode
+ * @extends BI.NodeButton
+ */
+BI.FirstPlusGroupNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.FirstPlusGroupNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-first-plus-group-node bi-list-item",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ open: false,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.FirstPlusGroupNode.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.first_tree_node_checkbox",
+ stopPropagation: true
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ if (this.isSelected()) {
+ self.triggerExpand();
+ } else {
+ self.triggerCollapse();
+ }
+ }
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 25,
+ el: this.checkbox
+ }, this.text);
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.FirstPlusGroupNode.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ },
+
+ setOpened: function (v) {
+ BI.FirstPlusGroupNode.superclass.setOpened.apply(this, arguments);
+ if (BI.isNotNull(this.checkbox)) {
+ this.checkbox.setSelected(v);
+ }
+ }
+});
+
+BI.shortcut("bi.first_plus_group_node", BI.FirstPlusGroupNode);/**
+ * Created by User on 2016/3/31.
+ */
+/**
+ * > + icon + 文本
+ * @class BI.IconArrowNode
+ * @extends BI.NodeButton
+ */
+BI.IconArrowNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.IconArrowNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-icon-arrow-node bi-list-item",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ open: false,
+ height: 25,
+ iconHeight: 13,
+ iconWidth: 13,
+ iconCls: ""
+ })
+ },
+ _init: function () {
+ BI.IconArrowNode.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.tree_group_node_checkbox",
+ width: 23,
+ stopPropagation: true
+ });
+
+ var icon = BI.createWidget({
+ type: "bi.center_adapt",
+ cls: o.iconCls,
+ width: 23,
+ items: [{
+ type: "bi.icon",
+ height: o.iconHeight,
+ width: o.iconWidth
+ }]
+ });
+
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ if (this.isSelected()) {
+ self.triggerExpand();
+ } else {
+ self.triggerCollapse();
+ }
+ }
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 25,
+ el: this.checkbox
+ }, {
+ width: 23,
+ el: icon
+ }, this.text);
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.IconArrowNode.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ },
+
+ setOpened: function (v) {
+ BI.IconArrowNode.superclass.setOpened.apply(this, arguments);
+ if (BI.isNotNull(this.checkbox)) {
+ this.checkbox.setSelected(v);
+ }
+ }
+});
+
+BI.shortcut("bi.icon_arrow_node", BI.IconArrowNode);/**
+ * 加号表示的组节点
+ * Created by GUY on 2015/9/6.
+ * @class BI.LastPlusGroupNode
+ * @extends BI.NodeButton
+ */
+BI.LastPlusGroupNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.LastPlusGroupNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-last-plus-group-node bi-list-item",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ open: false,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.LastPlusGroupNode.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.last_tree_node_checkbox",
+ stopPropagation: true
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if(type === BI.Events.CLICK) {
+ if (this.isSelected()) {
+ self.triggerExpand();
+ } else {
+ self.triggerCollapse();
+ }
+ }
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 25,
+ el: this.checkbox
+ }, this.text);
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.LastPlusGroupNode.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ },
+
+ setOpened: function (v) {
+ BI.LastPlusGroupNode.superclass.setOpened.apply(this, arguments);
+ if (BI.isNotNull(this.checkbox)) {
+ this.checkbox.setSelected(v);
+ }
+ }
+});
+
+BI.shortcut("bi.last_plus_group_node", BI.LastPlusGroupNode);/**
+ * 加号表示的组节点
+ * Created by GUY on 2015/9/6.
+ * @class BI.MidPlusGroupNode
+ * @extends BI.NodeButton
+ */
+BI.MidPlusGroupNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.MidPlusGroupNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-mid-plus-group-node bi-list-item",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ open: false,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.MidPlusGroupNode.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.mid_tree_node_checkbox",
+ stopPropagation: true
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ if (this.isSelected()) {
+ self.triggerExpand();
+ } else {
+ self.triggerCollapse();
+ }
+ }
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 25,
+ el: this.checkbox
+ }, this.text);
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.MidPlusGroupNode.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ },
+
+ setOpened: function (v) {
+ BI.MidPlusGroupNode.superclass.setOpened.apply(this, arguments);
+ if (BI.isNotNull(this.checkbox)) {
+ this.checkbox.setSelected(v);
+ }
+ }
+});
+
+BI.shortcut("bi.mid_plus_group_node", BI.MidPlusGroupNode);BI.MultiLayerIconArrowNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.MultiLayerIconArrowNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ extraCls: "bi-multilayer-icon-arrow-node bi-list-item",
+ layer: 0,//第几层级
+ id: "",
+ pId: "",
+ open: false,
+ height: 25,
+ iconHeight: 13,
+ iconWidth: 13,
+ iconCls: ""
+ })
+ },
+ _init: function () {
+ BI.MultiLayerIconArrowNode.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.node = BI.createWidget({
+ type: "bi.icon_arrow_node",
+ iconCls: o.iconCls,
+ //logic: {
+ // dynamic: true
+ //},
+ id: o.id,
+ pId: o.pId,
+ open: o.open,
+ height: o.height,
+ iconHeight: o.iconHeight,
+ iconWidth: o.iconWidth,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.node.on(BI.Controller.EVENT_CHANGE, function (type) {
+ self.setSelected(self.isSelected());
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ var items = [];
+ BI.count(0, o.layer, function () {
+ items.push({
+ type: "bi.layout",
+ width: 13,
+ height: o.height
+ })
+ });
+ items.push(this.node);
+ BI.createWidget({
+ type: "bi.td",
+ element: this,
+ columnSize: BI.makeArray(o.layer, 13),
+ items: [items]
+ })
+ },
+
+ isOnce: function () {
+ return true;
+ },
+
+ doRedMark: function () {
+ this.node.doRedMark.apply(this.node, arguments);
+ },
+
+ unRedMark: function () {
+ this.node.unRedMark.apply(this.node, arguments);
+ },
+
+ isSelected: function () {
+ return this.node.isSelected();
+ },
+
+ setSelected: function (b) {
+ BI.MultiLayerIconArrowNode.superclass.setSelected.apply(this, arguments);
+ this.node.setSelected(b);
+ },
+
+ doClick: function () {
+ BI.NodeButton.superclass.doClick.apply(this, arguments);
+ this.node.setSelected(this.isSelected());
+ },
+
+ setOpened: function (v) {
+ BI.MultiLayerIconArrowNode.superclass.setOpened.apply(this, arguments);
+ this.node.setOpened(v);
+ }
+});
+
+BI.shortcut("bi.multilayer_icon_arrow_node", BI.MultiLayerIconArrowNode);/**
+ * 加号表示的组节点
+ * Created by GUY on 2015/9/6.
+ * @class BI.PlusGroupNode
+ * @extends BI.NodeButton
+ */
+BI.PlusGroupNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.PlusGroupNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-plus-group-node bi-list-item",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ open: false,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.PlusGroupNode.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.tree_node_checkbox"
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(self.isSelected());
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 25,
+ el: this.checkbox
+ }, this.text);
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.PlusGroupNode.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ },
+
+ setOpened: function (v) {
+ BI.PlusGroupNode.superclass.setOpened.apply(this, arguments);
+ if (this.checkbox) {
+ this.checkbox.setSelected(v);
+ }
+ }
+});
+
+BI.shortcut("bi.plus_group_node", BI.PlusGroupNode);/**
+ * 三角号表示的组节点
+ * Created by GUY on 2015/9/6.
+ * @class BI.TriangleGroupNode
+ * @extends BI.NodeButton
+ */
+BI.TriangleGroupNode = BI.inherit(BI.NodeButton, {
+ _defaultConfig: function () {
+ var conf = BI.TriangleGroupNode.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-triangle-group-node bi-list-item",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ open: false,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.TriangleGroupNode.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ iconWidth: 13,
+ iconHeight: 13,
+ type: "bi.tree_group_node_checkbox"
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py,
+ keyword: o.keyword
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(self.isSelected());
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 25,
+ el: this.checkbox
+ }, this.text);
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doClick: function () {
+ BI.TriangleGroupNode.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isOpened());
+ },
+
+ setOpened: function (v) {
+ BI.TriangleGroupNode.superclass.setOpened.apply(this, arguments);
+ this.checkbox.setSelected(v);
+ },
+
+ setText: function(text){
+ BI.TriangleGroupNode.superclass.setText.apply(this, arguments);
+ this.text.setText(text);
+ }
+});
+
+BI.shortcut("bi.triangle_group_node", BI.TriangleGroupNode);/**
+ * guy
+ * 复选框item
+ * @type {*|void|Object}
+ */
+BI.FirstTreeLeafItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.FirstTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-first-tree-leaf-item bi-list-item-active",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ layer: 0,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.FirstTreeLeafItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.checkbox"
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(self.isSelected());
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, ((o.layer === 0) ? "" : {
+ width: 13,
+ el: {
+ type: "bi.layout",
+ cls: "base-line-conn-background",
+ width: 13,
+ height: o.height
+ }
+ }), {
+ width: 25,
+ el: {
+ type: "bi.layout",
+ cls: "mid-line-conn-background",
+ width: 25,
+ height: o.height
+ }
+ }, {
+ el: this.text
+ });
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ getId: function () {
+ return this.options.id;
+ },
+
+ getPId: function () {
+ return this.options.pId;
+ },
+
+ doClick: function () {
+ BI.FirstTreeLeafItem.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ },
+
+ setSelected: function (v) {
+ BI.FirstTreeLeafItem.superclass.setSelected.apply(this, arguments);
+ this.checkbox.setSelected(v);
+ }
+});
+
+BI.shortcut("bi.first_tree_leaf_item", BI.FirstTreeLeafItem);BI.IconTreeLeafItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.IconTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-icon-tree-leaf-item bi-list-item-active",
+ logic: {
+ dynamic: false
+ },
+ height: 25,
+ iconWidth: 16,
+ iconHeight: 16,
+ iconCls: ""
+ })
+ },
+
+ _init: function () {
+ BI.IconTreeLeafItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+
+ var icon = BI.createWidget({
+ type: "bi.center_adapt",
+ width: 23,
+ cls: o.iconCls,
+ items: [{
+ type: "bi.icon",
+ width: o.iconWidth,
+ height: o.iconHeight
+ }]
+ });
+
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, {
+ width: 23,
+ el: icon
+ }, {
+ el: this.text
+ });
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ getId: function () {
+ return this.options.id;
+ },
+
+ getPId: function () {
+ return this.options.pId;
+ },
+
+ doClick: function () {
+ BI.IconTreeLeafItem.superclass.doClick.apply(this, arguments);
+ },
+
+ setSelected: function (v) {
+ BI.IconTreeLeafItem.superclass.setSelected.apply(this, arguments);
+ }
+});
+
+BI.shortcut("bi.icon_tree_leaf_item", BI.IconTreeLeafItem);/**
+ * guy
+ * 复选框item
+ * @type {*|void|Object}
+ */
+BI.LastTreeLeafItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.LastTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-last-tree-leaf-item bi-list-item-active",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ layer: 0,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.LastTreeLeafItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.checkbox"
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(self.isSelected());
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, ((o.layer === 0) ? "" : {
+ width: 13,
+ el: {
+ type: "bi.layout",
+ cls: "base-line-conn-background",
+ width: 13,
+ height: o.height
+ }
+ }), {
+ width: 25,
+ el: {
+ type: "bi.layout",
+ cls: "mid-line-conn-background",
+ width: 25,
+ height: o.height
+ }
+ }, {
+ el: this.text
+ });
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ getId: function () {
+ return this.options.id;
+ },
+
+ getPId: function () {
+ return this.options.pId;
+ },
+
+ doClick: function () {
+ BI.LastTreeLeafItem.superclass.doClick.apply(this, arguments);
+ // this.checkbox.setSelected(this.isSelected());
+ },
+
+ setSelected: function (v) {
+ BI.LastTreeLeafItem.superclass.setSelected.apply(this, arguments);
+ // this.checkbox.setSelected(v);
+ }
+});
+
+BI.shortcut("bi.last_tree_leaf_item", BI.LastTreeLeafItem);/**
+ * guy
+ * 复选框item
+ * @type {*|void|Object}
+ */
+BI.MidTreeLeafItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.MidTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-mid-tree-leaf-item bi-list-item-active",
+ logic: {
+ dynamic: false
+ },
+ id: "",
+ pId: "",
+ layer: 0,
+ height: 25
+ })
+ },
+ _init: function () {
+ BI.MidTreeLeafItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.checkbox"
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self.setSelected(self.isSelected());
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ var type = BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left);
+ var items = BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left, ((o.layer === 0) ? "" : {
+ width: 13,
+ el: {
+ type: "bi.layout",
+ cls: "base-line-conn-background",
+ width: 13,
+ height: o.height
+ }
+ }), {
+ width: 25,
+ el: {
+ type: "bi.layout",
+ cls: "mid-line-conn-background",
+ width: 25,
+ height: o.height
+ }
+ }, {
+ el: this.text
+ });
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(type, BI.extend(o.logic, {
+ items: items
+ }))));
+ },
+
+ doRedMark: function () {
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ getId: function () {
+ return this.options.id;
+ },
+
+ getPId: function () {
+ return this.options.pId;
+ },
+
+ doClick: function () {
+ BI.MidTreeLeafItem.superclass.doClick.apply(this, arguments);
+ this.checkbox.setSelected(this.isSelected());
+ },
+
+ setSelected: function (v) {
+ BI.MidTreeLeafItem.superclass.setSelected.apply(this, arguments);
+ this.checkbox.setSelected(v);
+ }
+});
+
+BI.shortcut("bi.mid_tree_leaf_item", BI.MidTreeLeafItem);/**
+ * @class BI.MultiLayerIconTreeLeafItem
+ * @extends BI.BasicButton
+ */
+BI.MultiLayerIconTreeLeafItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.MultiLayerIconTreeLeafItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-multilayer-icon-tree-leaf-item bi-list-item-active",
+ layer: 0,
+ height: 25,
+ iconCls: "",
+ iconHeight: 14,
+ iconWidth: 12
+ })
+ },
+ _init: function () {
+ BI.MultiLayerIconTreeLeafItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.item = BI.createWidget({
+ type: "bi.icon_tree_leaf_item",
+ cls: "bi-list-item-none",
+ iconCls: o.iconCls,
+ id: o.id,
+ pId: o.pId,
+ isFront: true,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py,
+ iconWidth: o.iconWidth,
+ iconHeight: o.iconHeight
+ });
+ this.item.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {//本身实现click功能
+ return;
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ var items = [];
+ BI.count(0, o.layer, function () {
+ items.push({
+ type: "bi.layout",
+ width: 13,
+ height: o.height
+ })
+ });
+ items.push(this.item);
+ BI.createWidget({
+ type: "bi.td",
+ element: this,
+ columnSize: BI.makeArray(o.layer, 13),
+ items: [items]
+ });
+ },
+
+ doRedMark: function () {
+ this.item.doRedMark.apply(this.item, arguments);
+ },
+
+ unRedMark: function () {
+ this.item.unRedMark.apply(this.item, arguments);
+ },
+
+ doHighLight: function () {
+ this.item.doHighLight.apply(this.item, arguments);
+ },
+
+ unHighLight: function () {
+ this.item.unHighLight.apply(this.item, arguments);
+ },
+
+ getId: function () {
+ return this.options.id;
+ },
+
+ getPId: function () {
+ return this.options.pId;
+ },
+
+ doClick: function () {
+ BI.MultiLayerIconTreeLeafItem.superclass.doClick.apply(this, arguments);
+ this.item.setSelected(this.isSelected());
+ },
+
+ setSelected: function (v) {
+ BI.MultiLayerIconTreeLeafItem.superclass.setSelected.apply(this, arguments);
+ this.item.setSelected(v);
+ },
+
+ getValue: function(){
+ return this.options.value;
+ }
+});
+
+BI.shortcut("bi.multilayer_icon_tree_leaf_item", BI.MultiLayerIconTreeLeafItem);/**
+ * 树叶子节点
+ * Created by GUY on 2015/9/6.
+ * @class BI.TreeTextLeafItem
+ * @extends BI.BasicButton
+ */
+BI.TreeTextLeafItem = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function() {
+ return BI.extend(BI.TreeTextLeafItem.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-tree-text-leaf-item bi-list-item-active",
+ id: "",
+ pId: "",
+ height: 25,
+ hgap: 0,
+ lgap: 0,
+ rgap: 0
+ })
+ },
+ _init : function() {
+ BI.TreeTextLeafItem.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ lgap: o.lgap,
+ rgap: o.hgap,
+ text: o.text,
+ value: o.value,
+ py: o.py
+ });
+ BI.createWidget({
+ type: "bi.htape",
+ element: this,
+ items: [{
+ el: this.text
+ }]
+ })
+ },
+
+ doRedMark: function(){
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function(){
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function(){
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function(){
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ getId: function(){
+ return this.options.id;
+ },
+
+ getPId: function(){
+ return this.options.pId;
+ }
+});
+
+BI.shortcut("bi.tree_text_leaf_item", BI.TreeTextLeafItem);/**
+ * Created by GUY on 2015/8/28.
+ * @class BI.Calendar
+ * @extends BI.Widget
+ */
+BI.Calendar = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.Calendar.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: "bi-calendar",
+ logic: {
+ dynamic: false
+ },
+ min: '1900-01-01', //最小日期
+ max: '2099-12-31', //最大日期
+ year: 2015,
+ month: 7, //7表示八月
+ day: 25
+ })
+ },
+
+ _dateCreator: function (Y, M, D) {
+ var self = this, o = this.options, log = {}, De = new Date();
+ var mins = o.min.match(/\d+/g);
+ var maxs = o.max.match(/\d+/g);
+ Y < (mins[0] | 0) && (Y = (mins[0] | 0));
+ Y > (maxs[0] | 0) && (Y = (maxs[0] | 0));
+
+ De.setFullYear(Y, M, D);
+ log.ymd = [De.getFullYear(), De.getMonth(), De.getDate()];
+
+ var MD = Date._MD.slice(0);
+ MD[1] = Date.isLeap(log.ymd[0]) ? 29 : 28;
+
+ De.setFullYear(log.ymd[0], log.ymd[1], 1);
+ log.FDay = De.getDay();
+
+ log.PDay = MD[M === 0 ? 11 : M - 1] - log.FDay + 1;
+ log.NDay = 1;
+
+ var items = [];
+ BI.each(BI.range(42), function (i) {
+ var td = {}, YY = log.ymd[0], MM = log.ymd[1] + 1, DD;
+ if (i < log.FDay) {
+ td.lastMonth = true;
+ DD = i + log.PDay;
+ MM === 1 && (YY -= 1);
+ MM = MM === 1 ? 12 : MM - 1;
+ } else if (i >= log.FDay && i < log.FDay + MD[log.ymd[1]]) {
+ DD = i - log.FDay + 1;
+ if (i - log.FDay + 1 === log.ymd[2]) {
+ td.currentDay = true;
+ }
+ } else {
+ td.nextMonth = true;
+ DD = log.NDay++;
+ MM === 12 && (YY += 1);
+ MM = MM === 12 ? 1 : MM + 1;
+ }
+ if (Date.checkVoid(YY, MM, DD, mins, maxs)[0]) {
+ td.disabled = true;
+ }
+ td.text = DD;
+ items.push(td);
+ })
+ return items;
+ },
+
+ _init: function () {
+ BI.Calendar.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ var items = BI.map(Date._SDN.slice(0, 7), function (i, value) {
+ return {
+ type: "bi.label",
+ height: 25,
+ text: value
+ }
+ })
+ var title = BI.createWidget({
+ type: "bi.button_group",
+ height: 25,
+ items: items
+ })
+ var days = this._dateCreator(o.year, o.month, o.day);
+ items = [];
+ items.push(days.slice(0, 7));
+ items.push(days.slice(7, 14));
+ items.push(days.slice(14, 21));
+ items.push(days.slice(21, 28));
+ items.push(days.slice(28, 35));
+ items.push(days.slice(35, 42));
+
+ items = BI.map(items, function (i, item) {
+ return BI.map(item, function (j, td) {
+ return BI.extend(td, {
+ type: "bi.text_item",
+ cls: "bi-list-item-active",
+ textAlign: "center",
+ whiteSpace: "normal",
+ once: false,
+ forceSelected: true,
+ height: 25,
+ value: o.year + "-" + o.month + "-" + td.text,
+ disabled: td.lastMonth || td.nextMonth || td.disabled
+ //selected: td.currentDay
+ });
+ });
+ });
+
+ this.days = BI.createWidget({
+ type: "bi.button_group",
+ items: BI.createItems(items, {}),
+ layouts: [BI.LogicFactory.createLogic("table", BI.extend({}, o.logic, {
+ columns: 7,
+ rows: 6,
+ columnSize: [1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7, 1 / 7],
+ rowSize: 25
+ }))]
+ });
+ this.days.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ })
+ BI.createWidget(BI.extend({
+ element: this
+
+ }, BI.LogicFactory.createLogic("vertical", BI.extend({}, o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection("top", title, this.days)
+ }))));
+ },
+
+ isFrontDate: function () {
+ var o = this.options, c = this._const;
+ var Y = o.year, M = o.month, De = new Date(), day = De.getDay();
+ Y = Y | 0;
+ De.setFullYear(Y, M, 1);
+ var newDate = De.getOffsetDate(-1 * (day + 1));
+ return !!Date.checkVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), o.min, o.max)[0];
+ },
+
+ isFinalDate: function () {
+ var o = this.options, c = this._const;
+ var Y = o.year, M = o.month, De = new Date(), day = De.getDay();
+ Y = Y | 0;
+ De.setFullYear(Y, M, 1);
+ var newDate = De.getOffsetDate(42 - day);
+ return !!Date.checkVoid(newDate.getFullYear(), newDate.getMonth(), newDate.getDate(), o.min, o.max)[0];
+ },
+
+ setValue: function (ob) {
+ this.days.setValue([ob.year + "-" + ob.month + "-" + ob.day]);
+ },
+
+ getValue: function () {
+ var date = this.days.getValue()[0].match(/\d+/g);
+ return {
+ year: date[0] | 0,
+ month: date[1] | 0,
+ day: date[2] | 0
+ }
+ }
+});
+
+BI.extend(BI.Calendar, {
+ getPageByDateJSON: function (json) {
+ var year = new Date().getFullYear();
+ var month = new Date().getMonth();
+ var page = (json.year - year) * 12;
+ page += json.month - month;
+ return page;
+ },
+ getDateJSONByPage: function(v){
+ var months = new Date().getMonth();
+ var page = v;
+
+ //对当前page做偏移,使到当前年初
+ page = page + months;
+
+ var year = BI.parseInt(page / 12);
+ if(page < 0 && page % 12 !== 0){
+ year--;
+ }
+ var month = page >= 0 ? (page % 12) : ((12 + page % 12) % 12);
+ return {
+ year: new Date().getFullYear() + year,
+ month: month
+ }
+ }
+});
+
+BI.shortcut("bi.calendar", BI.Calendar);/**
+ * Created by GUY on 2015/8/28.
+ * @class BI.YearCalendar
+ * @extends BI.Widget
+ */
+BI.YearCalendar = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ var conf = BI.YearCalendar.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: "bi-year-calendar",
+ behaviors: {},
+ logic: {
+ dynamic: false
+ },
+ min: '1900-01-01', //最小日期
+ max: '2099-12-31', //最大日期
+ year: null
+ })
+ },
+
+ _yearCreator: function (Y) {
+ var o = this.options;
+ Y = Y | 0;
+ var start = BI.YearCalendar.getStartYear(Y);
+ var items = [];
+ BI.each(BI.range(BI.YearCalendar.INTERVAL), function (i) {
+ var td = {};
+ if (Date.checkVoid(start + i, 1, 1, o.min, o.max)[0]) {
+ td.disabled = true;
+ }
+ td.text = start + i;
+ items.push(td);
+ });
+ return items;
+ },
+
+ _init: function () {
+ BI.YearCalendar.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.currentYear = new Date().getFullYear();
+ var years = this._yearCreator(o.year || this.currentYear);
+
+ //纵向排列年
+ var len = years.length, tyears = BI.makeArray(len, "");
+ var map = [0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11];
+ BI.each(years, function (i, y) {
+ tyears[i] = years[map[i]];
+ });
+ var items = [];
+ items.push(tyears.slice(0, 2));
+ items.push(tyears.slice(2, 4));
+ items.push(tyears.slice(4, 6));
+ items.push(tyears.slice(6, 8));
+ items.push(tyears.slice(8, 10));
+ items.push(tyears.slice(10, 12));
+
+ items = BI.map(items, function (i, item) {
+ return BI.map(item, function (j, td) {
+ return BI.extend(td, {
+ type: "bi.text_item",
+ cls: "bi-list-item-active",
+ textAlign: "center",
+ whiteSpace: "normal",
+ once: false,
+ forceSelected: true,
+ height: 23,
+ width: 38,
+ value: td.text,
+ disabled: td.disabled
+ });
+ });
+ });
+
+ this.years = BI.createWidget({
+ type: "bi.button_group",
+ behaviors: o.behaviors,
+ items: BI.createItems(items, {}),
+ layouts: [BI.LogicFactory.createLogic("table", BI.extend({}, o.logic, {
+ columns: 2,
+ rows: 6,
+ columnSize: [1 / 2, 1 / 2],
+ rowSize: 25
+ })), {
+ type: "bi.center_adapt",
+ vgap: 1
+ }]
+ });
+ this.years.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ BI.createWidget(BI.extend({
+ element: this
+
+ }, BI.LogicFactory.createLogic("vertical", BI.extend({}, o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection("top", this.years)
+ }))));
+ },
+
+ isFrontYear: function () {
+ var o = this.options;
+ var Y = o.year;
+ Y = Y | 0;
+ return !!Date.checkVoid(BI.YearCalendar.getStartYear(Y) - 1, 1, 1, o.min, o.max)[0];
+ },
+
+ isFinalYear: function () {
+ var o = this.options, c = this._const;
+ var Y = o.year;
+ Y = Y | 0;
+ return !!Date.checkVoid(BI.YearCalendar.getEndYear(Y) + 1, 1, 1, o.min, o.max)[0];
+ },
+
+ setValue: function (val) {
+ this.years.setValue([val]);
+ },
+
+ getValue: function () {
+ return this.years.getValue()[0];
+ }
+});
+//类方法
+BI.extend(BI.YearCalendar, {
+ INTERVAL: 12,
+
+ //获取显示的第一年
+ getStartYear: function (year) {
+ var cur = new Date().getFullYear();
+ return year - ((year - cur + 3) % BI.YearCalendar.INTERVAL + 12) % BI.YearCalendar.INTERVAL;
+ },
+
+ getEndYear: function (year) {
+ return BI.YearCalendar.getStartYear(year) + BI.YearCalendar.INTERVAL;
+ },
+
+ getPageByYear: function (year) {
+ var cur = new Date().getFullYear();
+ year = BI.YearCalendar.getStartYear(year);
+ return (year - cur + 3) / BI.YearCalendar.INTERVAL;
+ }
+});
+
+BI.shortcut("bi.year_calendar", BI.YearCalendar);/**
+ * 绘制一些较复杂的canvas
+ *
+ * Created by GUY on 2015/11/24.
+ * @class BI.ComplexCanvas
+ * @extends BI.Widget
+ */
+BI.ComplexCanvas = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.ComplexCanvas.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-complex-canvas"
+ })
+ },
+
+
+ _init: function () {
+ BI.ComplexCanvas.superclass._init.apply(this, arguments);
+ var o = this.options;
+ this.canvas = BI.createWidget({
+ type: "bi.canvas",
+ element: this,
+ width: o.width,
+ height: o.height
+ });
+ },
+
+ //绘制树枝节点
+ branch: function (x0, y0, x1, y1, x2, y2) {
+ var self = this, args = [].slice.call(arguments);
+ if (args.length <= 5) {
+ return this.canvas.line.apply(this.canvas, arguments);
+ }
+ var options;
+ if (BI.isOdd(args.length)) {
+ options = BI.last(args);
+ args = BI.initial(args);
+ }
+ args = [].slice.call(args, 2);
+ var odd = BI.filter(args, function (i) {
+ return i % 2 === 0;
+ });
+ var even = BI.filter(args, function (i) {
+ return i % 2 !== 0;
+ });
+ options || (options = {});
+ var offset = options.offset || 20;
+ if ((y0 > y1 && y0 > y2) || (y0 < y1 && y0 < y2)) {
+ if (y0 > y1 && y0 > y2) {
+ var y = Math.max.apply(this, even) + offset;
+ } else {
+ var y = Math.min.apply(this, even) - offset;
+ }
+ var minx = Math.min.apply(this, odd);
+ var minix = BI.indexOf(odd, minx);
+ var maxx = Math.max.apply(this, odd);
+ var maxix = BI.indexOf(odd, maxx);
+ this.canvas.line(minx, even[minix], minx, y, maxx, y, maxx, even[maxix], options);
+ BI.each(odd, function (i, dot) {
+ if (i !== maxix && i !== minix) {
+ self.canvas.line(dot, even[i], dot, y, options);
+ }
+ });
+ this.canvas.line(x0, y, x0, y0, options);
+ return;
+ }
+ if ((x0 > x1 && x0 > x2) || (x0 < x1 && x0 < x2)) {
+ if (x0 > x1 && x0 > x2) {
+ var x = Math.max.apply(this, odd) + offset;
+ } else {
+ var x = Math.min.apply(this, odd) - offset;
+ }
+ var miny = Math.min.apply(this, even);
+ var miniy = BI.indexOf(even, miny);
+ var maxy = Math.max.apply(this, even);
+ var maxiy = BI.indexOf(even, maxy);
+ this.canvas.line(odd[miniy], miny, x, miny, x, maxy, odd[maxiy], maxy, options);
+ BI.each(even, function (i, dot) {
+ if (i !== miniy && i !== maxiy) {
+ self.canvas.line(odd[i], dot, x, dot, options);
+ }
+ });
+ this.canvas.line(x, y0, x0, y0, options);
+ return;
+ }
+ },
+
+ stroke: function (callback) {
+ this.canvas.stroke(callback);
+ }
+});
+
+BI.shortcut("bi.complex_canvas", BI.ComplexCanvas);/**
+ * Created by roy on 15/10/16.
+ * 上箭头与下箭头切换的树节点
+ */
+BI.ArrowTreeGroupNodeCheckbox=BI.inherit(BI.IconButton,{
+ _defaultConfig:function(){
+ return BI.extend(BI.ArrowTreeGroupNodeCheckbox.superclass._defaultConfig.apply(this,arguments),{
+ extraCls:"bi-arrow-tree-group-node",
+ iconWidth: 13,
+ iconHeight: 13
+ });
+ },
+ _init:function(){
+ BI.ArrowTreeGroupNodeCheckbox.superclass._init.apply(this,arguments);
+ },
+ setSelected: function(v){
+ BI.ArrowTreeGroupNodeCheckbox.superclass.setSelected.apply(this, arguments);
+ if(v) {
+ this.element.removeClass("column-next-page-h-font").addClass("column-pre-page-h-font");
+ } else {
+ this.element.removeClass("column-pre-page-h-font").addClass("column-next-page-h-font");
+ }
+ }
+});
+BI.shortcut("bi.arrow_tree_group_node_checkbox",BI.ArrowTreeGroupNodeCheckbox);/**
+ * 十字型的树节点
+ * @class BI.CheckingMarkNode
+ * @extends BI.IconButton
+ */
+BI.CheckingMarkNode = BI.inherit(BI.IconButton, {
+ _defaultConfig: function() {
+ return BI.extend( BI.CheckingMarkNode.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "check-mark-font",
+ iconWidth: 13,
+ iconHeight: 13
+ });
+ },
+ _init:function() {
+ BI.CheckingMarkNode.superclass._init.apply(this, arguments);
+ this.setSelected(this.options.selected);
+
+ },
+ setSelected: function(v){
+ BI.CheckingMarkNode.superclass.setSelected.apply(this, arguments);
+ if(v===true) {
+ this.element.addClass("check-mark-font");
+ } else {
+ this.element.removeClass("check-mark-font");
+ }
+ }
+});
+BI.shortcut("bi.checking_mark_node", BI.CheckingMarkNode);/**
+ * 十字型的树节点
+ * @class BI.FirstTreeNodeCheckbox
+ * @extends BI.IconButton
+ */
+BI.FirstTreeNodeCheckbox = BI.inherit(BI.IconButton, {
+ _defaultConfig: function() {
+ return BI.extend( BI.FirstTreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "tree-collapse-icon-type2",
+ iconWidth: 25,
+ iconHeight: 25
+ });
+ },
+ _init:function() {
+ BI.FirstTreeNodeCheckbox.superclass._init.apply(this, arguments);
+
+ },
+ setSelected: function(v){
+ BI.FirstTreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
+ if(v===true) {
+ this.element.addClass("tree-expand-icon-type2");
+ } else {
+ this.element.removeClass("tree-expand-icon-type2");
+ }
+ }
+});
+BI.shortcut("bi.first_tree_node_checkbox", BI.FirstTreeNodeCheckbox);/**
+ * 十字型的树节点
+ * @class BI.LastTreeNodeCheckbox
+ * @extends BI.IconButton
+ */
+BI.LastTreeNodeCheckbox = BI.inherit(BI.IconButton, {
+ _defaultConfig: function() {
+ return BI.extend( BI.LastTreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "tree-collapse-icon-type4",
+ iconWidth: 25,
+ iconHeight: 25
+ });
+ },
+ _init:function() {
+ BI.LastTreeNodeCheckbox.superclass._init.apply(this, arguments);
+
+ },
+ setSelected: function(v){
+ BI.LastTreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
+ if(v===true) {
+ this.element.addClass("tree-expand-icon-type3");
+ } else {
+ this.element.removeClass("tree-expand-icon-type3");
+ }
+ }
+});
+BI.shortcut("bi.last_tree_node_checkbox", BI.LastTreeNodeCheckbox);/**
+ * 十字型的树节点
+ * @class BI.MidTreeNodeCheckbox
+ * @extends BI.IconButton
+ */
+BI.MidTreeNodeCheckbox = BI.inherit(BI.IconButton, {
+ _defaultConfig: function() {
+ return BI.extend( BI.MidTreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "tree-collapse-icon-type3",
+ iconWidth: 25,
+ iconHeight: 25
+ });
+ },
+ _init:function() {
+ BI.MidTreeNodeCheckbox.superclass._init.apply(this, arguments);
+
+ },
+ setSelected: function(v){
+ BI.MidTreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
+ if(v===true) {
+ this.element.addClass("tree-expand-icon-type3");
+ } else {
+ this.element.removeClass("tree-expand-icon-type3");
+ }
+ }
+});
+BI.shortcut("bi.mid_tree_node_checkbox", BI.MidTreeNodeCheckbox);/**
+ * 三角形的树节点
+ * Created by GUY on 2015/9/6.
+ * @class BI.TreeGroupNodeCheckbox
+ * @extends BI.IconButton
+ */
+BI.TreeGroupNodeCheckbox = BI.inherit(BI.IconButton, {
+ _defaultConfig: function() {
+ return BI.extend( BI.TreeGroupNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "tree-node-triangle-collapse-font",
+ iconWidth: 13,
+ iconHeight: 13
+ });
+ },
+ _init:function() {
+ BI.TreeGroupNodeCheckbox.superclass._init.apply(this, arguments);
+
+ },
+ setSelected: function(v){
+ BI.TreeGroupNodeCheckbox.superclass.setSelected.apply(this, arguments);
+ if(v) {
+ this.element.removeClass("tree-node-triangle-collapse-font").addClass("tree-node-triangle-expand-font");
+ } else {
+ this.element.removeClass("tree-node-triangle-expand-font").addClass("tree-node-triangle-collapse-font");
+ }
+ }
+});
+BI.shortcut("bi.tree_group_node_checkbox", BI.TreeGroupNodeCheckbox);/**
+ * 十字型的树节点
+ * @class BI.TreeNodeCheckbox
+ * @extends BI.IconButton
+ */
+BI.TreeNodeCheckbox = BI.inherit(BI.IconButton, {
+ _defaultConfig: function() {
+ return BI.extend( BI.TreeNodeCheckbox.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "tree-collapse-icon-type1",
+ iconWidth: 25,
+ iconHeight: 25
+ });
+ },
+ _init:function() {
+ BI.TreeNodeCheckbox.superclass._init.apply(this, arguments);
+
+ },
+ setSelected: function(v){
+ BI.TreeNodeCheckbox.superclass.setSelected.apply(this, arguments);
+ if(v) {
+ this.element.addClass("tree-expand-icon-type1");
+ } else {
+ this.element.removeClass("tree-expand-icon-type1");
+ }
+ }
+});
+BI.shortcut("bi.tree_node_checkbox", BI.TreeNodeCheckbox);/*!
+ * clipboard.js v1.6.1
+ * https://zenorocha.github.io/clipboard.js
+ *
+ * Licensed MIT © Zeno Rocha
+ */
+try {//IE8下会抛错
+ (function (f) {
+ if (typeof exports === "object" && typeof module !== "undefined") {
+ module.exports = f()
+ } else if (typeof define === "function" && define.amd) {
+ define([], f)
+ } else {
+ var g;
+ if (typeof window !== "undefined") {
+ g = window
+ } else if (typeof global !== "undefined") {
+ g = global
+ } else if (typeof self !== "undefined") {
+ g = self
+ } else {
+ g = this
+ }
+ g.Clipboard = f()
+ }
+ })(function () {
+ var define, module, exports;
+ return (function e(t, n, r) {
+ function s(o, u) {
+ if (!n[o]) {
+ if (!t[o]) {
+ var a = typeof require == "function" && require;
+ if (!u && a)return a(o, !0);
+ if (i)return i(o, !0);
+ var f = new Error("Cannot find module '" + o + "'");
+ throw f.code = "MODULE_NOT_FOUND", f
+ }
+ var l = n[o] = {exports: {}};
+ t[o][0].call(l.exports, function (e) {
+ var n = t[o][1][e];
+ return s(n ? n : e)
+ }, l, l.exports, e, t, n, r)
+ }
+ return n[o].exports
+ }
+
+ var i = typeof require == "function" && require;
+ for (var o = 0; o < r.length; o++)s(r[o]);
+ return s
+ })({
+ 1: [function (require, module, exports) {
+ var DOCUMENT_NODE_TYPE = 9;
+
+ /**
+ * A polyfill for Element.matches()
+ */
+ if (typeof Element !== 'undefined' && !Element.prototype.matches) {
+ var proto = Element.prototype;
+
+ proto.matches = proto.matchesSelector ||
+ proto.mozMatchesSelector ||
+ proto.msMatchesSelector ||
+ proto.oMatchesSelector ||
+ proto.webkitMatchesSelector;
+ }
+
+ /**
+ * Finds the closest parent that matches a selector.
+ *
+ * @param {Element} element
+ * @param {String} selector
+ * @return {Function}
+ */
+ function closest(element, selector) {
+ while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
+ if (element.matches(selector)) return element;
+ element = element.parentNode;
+ }
+ }
+
+ module.exports = closest;
+
+ }, {}], 2: [function (require, module, exports) {
+ var closest = require('./closest');
+
+ /**
+ * Delegates event to a selector.
+ *
+ * @param {Element} element
+ * @param {String} selector
+ * @param {String} type
+ * @param {Function} callback
+ * @param {Boolean} useCapture
+ * @return {Object}
+ */
+ function delegate(element, selector, type, callback, useCapture) {
+ var listenerFn = listener.apply(this, arguments);
+
+ element.addEventListener(type, listenerFn, useCapture);
+
+ return {
+ destroy: function () {
+ element.removeEventListener(type, listenerFn, useCapture);
+ }
+ }
+ }
+
+ /**
+ * Finds closest match and invokes callback.
+ *
+ * @param {Element} element
+ * @param {String} selector
+ * @param {String} type
+ * @param {Function} callback
+ * @return {Function}
+ */
+ function listener(element, selector, type, callback) {
+ return function (e) {
+ e.delegateTarget = closest(e.target, selector);
+
+ if (e.delegateTarget) {
+ callback.call(element, e);
+ }
+ }
+ }
+
+ module.exports = delegate;
+
+ }, {"./closest": 1}], 3: [function (require, module, exports) {
+ /**
+ * Check if argument is a HTML element.
+ *
+ * @param {Object} value
+ * @return {Boolean}
+ */
+ exports.node = function (value) {
+ return value !== undefined
+ && value instanceof HTMLElement
+ && value.nodeType === 1;
+ };
+
+ /**
+ * Check if argument is a list of HTML elements.
+ *
+ * @param {Object} value
+ * @return {Boolean}
+ */
+ exports.nodeList = function (value) {
+ var type = Object.prototype.toString.call(value);
+
+ return value !== undefined
+ && (type === '[object NodeList]' || type === '[object HTMLCollection]')
+ && ('length' in value)
+ && (value.length === 0 || exports.node(value[0]));
+ };
+
+ /**
+ * Check if argument is a string.
+ *
+ * @param {Object} value
+ * @return {Boolean}
+ */
+ exports.string = function (value) {
+ return typeof value === 'string'
+ || value instanceof String;
+ };
+
+ /**
+ * Check if argument is a function.
+ *
+ * @param {Object} value
+ * @return {Boolean}
+ */
+ exports.fn = function (value) {
+ var type = Object.prototype.toString.call(value);
+
+ return type === '[object Function]';
+ };
+
+ }, {}], 4: [function (require, module, exports) {
+ var is = require('./is');
+ var delegate = require('delegate');
+
+ /**
+ * Validates all params and calls the right
+ * listener function based on its target type.
+ *
+ * @param {String|HTMLElement|HTMLCollection|NodeList} target
+ * @param {String} type
+ * @param {Function} callback
+ * @return {Object}
+ */
+ function listen(target, type, callback) {
+ if (!target && !type && !callback) {
+ throw new Error('Missing required arguments');
+ }
+
+ if (!is.string(type)) {
+ throw new TypeError('Second argument must be a String');
+ }
+
+ if (!is.fn(callback)) {
+ throw new TypeError('Third argument must be a Function');
+ }
+
+ if (is.node(target)) {
+ return listenNode(target, type, callback);
+ }
+ else if (is.nodeList(target)) {
+ return listenNodeList(target, type, callback);
+ }
+ else if (is.string(target)) {
+ return listenSelector(target, type, callback);
+ }
+ else {
+ throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
+ }
+ }
+
+ /**
+ * Adds an event listener to a HTML element
+ * and returns a remove listener function.
+ *
+ * @param {HTMLElement} node
+ * @param {String} type
+ * @param {Function} callback
+ * @return {Object}
+ */
+ function listenNode(node, type, callback) {
+ node.addEventListener(type, callback);
+
+ return {
+ destroy: function () {
+ node.removeEventListener(type, callback);
+ }
+ }
+ }
+
+ /**
+ * Add an event listener to a list of HTML elements
+ * and returns a remove listener function.
+ *
+ * @param {NodeList|HTMLCollection} nodeList
+ * @param {String} type
+ * @param {Function} callback
+ * @return {Object}
+ */
+ function listenNodeList(nodeList, type, callback) {
+ Array.prototype.forEach.call(nodeList, function (node) {
+ node.addEventListener(type, callback);
+ });
+
+ return {
+ destroy: function () {
+ Array.prototype.forEach.call(nodeList, function (node) {
+ node.removeEventListener(type, callback);
+ });
+ }
+ }
+ }
+
+ /**
+ * Add an event listener to a selector
+ * and returns a remove listener function.
+ *
+ * @param {String} selector
+ * @param {String} type
+ * @param {Function} callback
+ * @return {Object}
+ */
+ function listenSelector(selector, type, callback) {
+ return delegate(document.body, selector, type, callback);
+ }
+
+ module.exports = listen;
+
+ }, {"./is": 3, "delegate": 2}], 5: [function (require, module, exports) {
+ function select(element) {
+ var selectedText;
+
+ if (element.nodeName === 'SELECT') {
+ element.focus();
+
+ selectedText = element.value;
+ }
+ else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
+ var isReadOnly = element.hasAttribute('readonly');
+
+ if (!isReadOnly) {
+ element.setAttribute('readonly', '');
+ }
+
+ element.select();
+ element.setSelectionRange(0, element.value.length);
+
+ if (!isReadOnly) {
+ element.removeAttribute('readonly');
+ }
+
+ selectedText = element.value;
+ }
+ else {
+ if (element.hasAttribute('contenteditable')) {
+ element.focus();
+ }
+
+ var selection = window.getSelection();
+ var range = document.createRange();
+
+ range.selectNodeContents(element);
+ selection.removeAllRanges();
+ selection.addRange(range);
+
+ selectedText = selection.toString();
+ }
+
+ return selectedText;
+ }
+
+ module.exports = select;
+
+ }, {}], 6: [function (require, module, exports) {
+ function E() {
+ // Keep this empty so it's easier to inherit from
+ // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
+ }
+
+ E.prototype = {
+ on: function (name, callback, ctx) {
+ var e = this.e || (this.e = {});
+
+ (e[name] || (e[name] = [])).push({
+ fn: callback,
+ ctx: ctx
+ });
+
+ return this;
+ },
+
+ once: function (name, callback, ctx) {
+ var self = this;
+
+ function listener() {
+ self.off(name, listener);
+ callback.apply(ctx, arguments);
+ };
+
+ listener._ = callback
+ return this.on(name, listener, ctx);
+ },
+
+ emit: function (name) {
+ var data = [].slice.call(arguments, 1);
+ var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
+ var i = 0;
+ var len = evtArr.length;
+
+ for (i; i < len; i++) {
+ evtArr[i].fn.apply(evtArr[i].ctx, data);
+ }
+
+ return this;
+ },
+
+ off: function (name, callback) {
+ var e = this.e || (this.e = {});
+ var evts = e[name];
+ var liveEvents = [];
+
+ if (evts && callback) {
+ for (var i = 0, len = evts.length; i < len; i++) {
+ if (evts[i].fn !== callback && evts[i].fn._ !== callback)
+ liveEvents.push(evts[i]);
+ }
+ }
+
+ // Remove event from queue to prevent memory leak
+ // Suggested by https://github.com/lazd
+ // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
+
+ (liveEvents.length)
+ ? e[name] = liveEvents
+ : delete e[name];
+
+ return this;
+ }
+ };
+
+ module.exports = E;
+
+ }, {}], 7: [function (require, module, exports) {
+ (function (global, factory) {
+ if (typeof define === "function" && define.amd) {
+ define(['module', 'select'], factory);
+ } else if (typeof exports !== "undefined") {
+ factory(module, require('select'));
+ } else {
+ var mod = {
+ exports: {}
+ };
+ factory(mod, global.select);
+ global.clipboardAction = mod.exports;
+ }
+ })(this, function (module, _select) {
+ 'use strict';
+
+ var _select2 = _interopRequireDefault(_select);
+
+ function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+ }
+
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ var _createClass = function () {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ return function (Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+
+ var ClipboardAction = function () {
+ /**
+ * @param {Object} options
+ */
+ function ClipboardAction(options) {
+ _classCallCheck(this, ClipboardAction);
+
+ this.resolveOptions(options);
+ this.initSelection();
+ }
+
+ /**
+ * Defines base properties passed from constructor.
+ * @param {Object} options
+ */
+
+
+ _createClass(ClipboardAction, [{
+ key: 'resolveOptions',
+ value: function resolveOptions() {
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+ this.action = options.action;
+ this.emitter = options.emitter;
+ this.target = options.target;
+ this.text = options.text;
+ this.trigger = options.trigger;
+
+ this.selectedText = '';
+ }
+ }, {
+ key: 'initSelection',
+ value: function initSelection() {
+ if (this.text) {
+ this.selectFake();
+ } else if (this.target) {
+ this.selectTarget();
+ }
+ }
+ }, {
+ key: 'selectFake',
+ value: function selectFake() {
+ var _this = this;
+
+ var isRTL = document.documentElement.getAttribute('dir') == 'rtl';
+
+ this.removeFake();
+
+ this.fakeHandlerCallback = function () {
+ return _this.removeFake();
+ };
+ this.fakeHandler = document.body.addEventListener('click', this.fakeHandlerCallback) || true;
+
+ this.fakeElem = document.createElement('textarea');
+ // Prevent zooming on iOS
+ this.fakeElem.style.fontSize = '12pt';
+ // Reset box model
+ this.fakeElem.style.border = '0';
+ this.fakeElem.style.padding = '0';
+ this.fakeElem.style.margin = '0';
+ // Move element out of screen horizontally
+ this.fakeElem.style.position = 'absolute';
+ this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
+ // Move element to the same position vertically
+ var yPosition = window.pageYOffset || document.documentElement.scrollTop;
+ this.fakeElem.style.top = yPosition + 'px';
+
+ this.fakeElem.setAttribute('readonly', '');
+ this.fakeElem.value = this.text;
+
+ document.body.appendChild(this.fakeElem);
+
+ this.selectedText = (0, _select2["default"])(this.fakeElem);
+ this.copyText();
+ }
+ }, {
+ key: 'removeFake',
+ value: function removeFake() {
+ if (this.fakeHandler) {
+ document.body.removeEventListener('click', this.fakeHandlerCallback);
+ this.fakeHandler = null;
+ this.fakeHandlerCallback = null;
+ }
+
+ if (this.fakeElem) {
+ document.body.removeChild(this.fakeElem);
+ this.fakeElem = null;
+ }
+ }
+ }, {
+ key: 'selectTarget',
+ value: function selectTarget() {
+ this.selectedText = (0, _select2["default"])(this.target);
+ this.copyText();
+ }
+ }, {
+ key: 'copyText',
+ value: function copyText() {
+ var succeeded = void 0;
+
+ try {
+ succeeded = document.execCommand(this.action);
+ } catch (err) {
+ succeeded = false;
+ }
+
+ this.handleResult(succeeded);
+ }
+ }, {
+ key: 'handleResult',
+ value: function handleResult(succeeded) {
+ this.emitter.emit(succeeded ? 'success' : 'error', {
+ action: this.action,
+ text: this.selectedText,
+ trigger: this.trigger,
+ clearSelection: this.clearSelection.bind(this)
+ });
+ }
+ }, {
+ key: 'clearSelection',
+ value: function clearSelection() {
+ if (this.target) {
+ this.target.blur();
+ }
+
+ window.getSelection().removeAllRanges();
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.removeFake();
+ }
+ }, {
+ key: 'action',
+ set: function set() {
+ var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
+
+ this._action = action;
+
+ if (this._action !== 'copy' && this._action !== 'cut') {
+ throw new Error('Invalid "action" value, use either "copy" or "cut"');
+ }
+ },
+ get: function get() {
+ return this._action;
+ }
+ }, {
+ key: 'target',
+ set: function set(target) {
+ if (target !== undefined) {
+ if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {
+ if (this.action === 'copy' && target.hasAttribute('disabled')) {
+ throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
+ }
+
+ if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
+ throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
+ }
+
+ this._target = target;
+ } else {
+ throw new Error('Invalid "target" value, use a valid Element');
+ }
+ }
+ },
+ get: function get() {
+ return this._target;
+ }
+ }]);
+
+ return ClipboardAction;
+ }();
+
+ module.exports = ClipboardAction;
+ });
+
+ }, {"select": 5}], 8: [function (require, module, exports) {
+ (function (global, factory) {
+ if (typeof define === "function" && define.amd) {
+ define(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], factory);
+ } else if (typeof exports !== "undefined") {
+ factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));
+ } else {
+ var mod = {
+ exports: {}
+ };
+ factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);
+ global.clipboard = mod.exports;
+ }
+ })(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {
+ 'use strict';
+
+ var _clipboardAction2 = _interopRequireDefault(_clipboardAction);
+
+ var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);
+
+ var _goodListener2 = _interopRequireDefault(_goodListener);
+
+ function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+ }
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ var _createClass = function () {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ return function (Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+
+ function _possibleConstructorReturn(self, call) {
+ if (!self) {
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ }
+
+ return call && (typeof call === "object" || typeof call === "function") ? call : self;
+ }
+
+ function _inherits(subClass, superClass) {
+ if (typeof superClass !== "function" && superClass !== null) {
+ throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
+ }
+
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
+ constructor: {
+ value: subClass,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
+ });
+ if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+ }
+
+ var Clipboard = function (_Emitter) {
+ _inherits(Clipboard, _Emitter);
+
+ /**
+ * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
+ * @param {Object} options
+ */
+ function Clipboard(trigger, options) {
+ _classCallCheck(this, Clipboard);
+
+ var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));
+
+ _this.resolveOptions(options);
+ _this.listenClick(trigger);
+ return _this;
+ }
+
+ /**
+ * Defines if attributes would be resolved using internal setter functions
+ * or custom functions that were passed in the constructor.
+ * @param {Object} options
+ */
+
+
+ _createClass(Clipboard, [{
+ key: 'resolveOptions',
+ value: function resolveOptions() {
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+ this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
+ this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
+ this.text = typeof options.text === 'function' ? options.text : this.defaultText;
+ }
+ }, {
+ key: 'listenClick',
+ value: function listenClick(trigger) {
+ var _this2 = this;
+
+ this.listener = (0, _goodListener2["default"])(trigger, 'click', function (e) {
+ return _this2.onClick(e);
+ });
+ }
+ }, {
+ key: 'onClick',
+ value: function onClick(e) {
+ var trigger = e.delegateTarget || e.currentTarget;
+
+ if (this.clipboardAction) {
+ this.clipboardAction = null;
+ }
+
+ this.clipboardAction = new _clipboardAction2["default"]({
+ action: this.action(trigger),
+ target: this.target(trigger),
+ text: this.text(trigger),
+ trigger: trigger,
+ emitter: this
+ });
+ }
+ }, {
+ key: 'defaultAction',
+ value: function defaultAction(trigger) {
+ return getAttributeValue('action', trigger);
+ }
+ }, {
+ key: 'defaultTarget',
+ value: function defaultTarget(trigger) {
+ var selector = getAttributeValue('target', trigger);
+
+ if (selector) {
+ return document.querySelector(selector);
+ }
+ }
+ }, {
+ key: 'defaultText',
+ value: function defaultText(trigger) {
+ return getAttributeValue('text', trigger);
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.listener.destroy();
+
+ if (this.clipboardAction) {
+ this.clipboardAction.destroy();
+ this.clipboardAction = null;
+ }
+ }
+ }], [{
+ key: 'isSupported',
+ value: function isSupported() {
+ var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
+
+ var actions = typeof action === 'string' ? [action] : action;
+ var support = !!document.queryCommandSupported;
+
+ actions.forEach(function (action) {
+ support = support && !!document.queryCommandSupported(action);
+ });
+
+ return support;
+ }
+ }]);
+
+ return Clipboard;
+ }(_tinyEmitter2["default"]);
+
+ /**
+ * Helper function to retrieve attribute value.
+ * @param {String} suffix
+ * @param {Element} element
+ */
+ function getAttributeValue(suffix, element) {
+ var attribute = 'data-clipboard-' + suffix;
+
+ if (!element.hasAttribute(attribute)) {
+ return;
+ }
+
+ return element.getAttribute(attribute);
+ }
+
+ module.exports = Clipboard;
+ });
+
+ }, {"./clipboard-action": 7, "good-listener": 4, "tiny-emitter": 6}]
+ }, {}, [8])(8)
+ });
+} catch (e) {
+ /*
+ * zClip :: jQuery ZeroClipboard v1.1.1
+ * http://steamdev.com/zclip
+ *
+ * Copyright 2011, SteamDev
+ * Released under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * Date: Wed Jun 01, 2011
+ */
+
+
+ (function ($) {
+
+ $.fn.zclip = function (params) {
+
+ if (typeof params == "object" && !params.length) {
+
+ var settings = $.extend({
+
+ path: 'ZeroClipboard.swf',
+ copy: null,
+ beforeCopy: null,
+ afterCopy: null,
+ clickAfter: true,
+ setHandCursor: true,
+ setCSSEffects: true
+
+ }, params);
+
+
+ return this.each(function () {
+
+ var o = $(this);
+
+ if (o.is(':visible') && (typeof settings.copy == 'string' || $.isFunction(settings.copy))) {
+
+ ZeroClipboard.setMoviePath(settings.path);
+ var clip = new ZeroClipboard.Client();
+
+ if ($.isFunction(settings.copy)) {
+ o.bind('zClip_copy', settings.copy);
+ }
+ if ($.isFunction(settings.beforeCopy)) {
+ o.bind('zClip_beforeCopy', settings.beforeCopy);
+ }
+ if ($.isFunction(settings.afterCopy)) {
+ o.bind('zClip_afterCopy', settings.afterCopy);
+ }
+
+ clip.setHandCursor(settings.setHandCursor);
+ clip.setCSSEffects(settings.setCSSEffects);
+ clip.addEventListener('mouseOver', function (client) {
+ o.trigger('mouseenter');
+ });
+ clip.addEventListener('mouseOut', function (client) {
+ o.trigger('mouseleave');
+ });
+ clip.addEventListener('mouseDown', function (client) {
+
+ o.trigger('mousedown');
+
+ if (!$.isFunction(settings.copy)) {
+ clip.setText(settings.copy);
+ } else {
+ clip.setText(o.triggerHandler('zClip_copy'));
+ }
+
+ if ($.isFunction(settings.beforeCopy)) {
+ o.trigger('zClip_beforeCopy');
+ }
+
+ });
+
+ clip.addEventListener('complete', function (client, text) {
+
+ if ($.isFunction(settings.afterCopy)) {
+
+ o.trigger('zClip_afterCopy');
+
+ } else {
+ if (text.length > 500) {
+ text = text.substr(0, 500) + "...\n\n(" + (text.length - 500) + " characters not shown)";
+ }
+
+ o.removeClass('hover');
+ alert("Copied text to clipboard:\n\n " + text);
+ }
+
+ if (settings.clickAfter) {
+ o.trigger('click');
+ }
+
+ });
+
+
+ clip.glue(o[0], o.parent()[0]);
+
+ $(window).bind('load resize', function () {
+ clip.reposition();
+ });
+
+
+ }
+
+ });
+
+ } else if (typeof params == "string") {
+
+ return this.each(function () {
+
+ var o = $(this);
+
+ params = params.toLowerCase();
+ var zclipId = o.data('zclipId');
+ var clipElm = $('#' + zclipId + '.zclip');
+
+ if (params == "remove") {
+
+ clipElm.remove();
+ o.removeClass('active hover');
+
+ } else if (params == "hide") {
+
+ clipElm.hide();
+ o.removeClass('active hover');
+
+ } else if (params == "show") {
+
+ clipElm.show();
+
+ }
+
+ });
+
+ }
+
+ }
+
+
+ })(jQuery);
+
+
+// ZeroClipboard
+// Simple Set Clipboard System
+// Author: Joseph Huckaby
+ var ZeroClipboard = {
+
+ version: "1.0.7",
+ clients: {},
+ // registered upload clients on page, indexed by id
+ moviePath: 'ZeroClipboard.swf',
+ // URL to movie
+ nextId: 1,
+ // ID of next movie
+ $: function (thingy) {
+ // simple DOM lookup utility function
+ if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
+ if (!thingy.addClass) {
+ // extend element with a few useful methods
+ thingy.hide = function () {
+ this.style.display = 'none';
+ };
+ thingy.show = function () {
+ this.style.display = '';
+ };
+ thingy.addClass = function (name) {
+ this.removeClass(name);
+ this.className += ' ' + name;
+ };
+ thingy.removeClass = function (name) {
+ var classes = this.className.split(/\s+/);
+ var idx = -1;
+ for (var k = 0; k < classes.length; k++) {
+ if (classes[k] == name) {
+ idx = k;
+ k = classes.length;
+ }
+ }
+ if (idx > -1) {
+ classes.splice(idx, 1);
+ this.className = classes.join(' ');
+ }
+ return this;
+ };
+ thingy.hasClass = function (name) {
+ return !!this.className.match(new RegExp("\\s*" + name + "\\s*"));
+ };
+ }
+ return thingy;
+ },
+
+ setMoviePath: function (path) {
+ // set path to ZeroClipboard.swf
+ this.moviePath = path;
+ },
+
+ dispatch: function (id, eventName, args) {
+ // receive event from flash movie, send to client
+ var client = this.clients[id];
+ if (client) {
+ client.receiveEvent(eventName, args);
+ }
+ },
+
+ register: function (id, client) {
+ // register new client to receive events
+ this.clients[id] = client;
+ },
+
+ getDOMObjectPosition: function (obj, stopObj) {
+ // get absolute coordinates for dom element
+ var info = {
+ left: 0,
+ top: 0,
+ width: obj.width ? obj.width : obj.offsetWidth,
+ height: obj.height ? obj.height : obj.offsetHeight
+ };
+
+ if (obj && (obj != stopObj)) {
+ info.left += obj.offsetLeft;
+ info.top += obj.offsetTop;
+ }
+
+ return info;
+ },
+
+ Client: function (elem) {
+ // constructor for new simple upload client
+ this.handlers = {};
+
+ // unique ID
+ this.id = ZeroClipboard.nextId++;
+ this.movieId = 'ZeroClipboardMovie_' + this.id;
+
+ // register client with singleton to receive flash events
+ ZeroClipboard.register(this.id, this);
+
+ // create movie
+ if (elem) this.glue(elem);
+ }
+ };
+
+ ZeroClipboard.Client.prototype = {
+
+ id: 0,
+ // unique ID for us
+ ready: false,
+ // whether movie is ready to receive events or not
+ movie: null,
+ // reference to movie object
+ clipText: '',
+ // text to copy to clipboard
+ handCursorEnabled: true,
+ // whether to show hand cursor, or default pointer cursor
+ cssEffects: true,
+ // enable CSS mouse effects on dom container
+ handlers: null,
+ // user event handlers
+ glue: function (elem, appendElem, stylesToAdd) {
+ // glue to DOM element
+ // elem can be ID or actual DOM element object
+ this.domElement = ZeroClipboard.$(elem);
+
+ // float just above object, or zIndex 99 if dom element isn't set
+ var zIndex = 99;
+ if (this.domElement.style.zIndex) {
+ zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
+ }
+
+ if (typeof(appendElem) == 'string') {
+ appendElem = ZeroClipboard.$(appendElem);
+ } else if (typeof(appendElem) == 'undefined') {
+ appendElem = document.getElementsByTagName('body')[0];
+ }
+
+ // find X/Y position of domElement
+ var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
+
+ // create floating DIV above element
+ this.div = document.createElement('div');
+ this.div.className = "zclip";
+ this.div.id = "zclip-" + this.movieId;
+ $(this.domElement).data('zclipId', 'zclip-' + this.movieId);
+ var style = this.div.style;
+ style.position = 'absolute';
+ style.left = '' + box.left + 'px';
+ style.top = '' + box.top + 'px';
+ style.width = '' + box.width + 'px';
+ style.height = '' + box.height + 'px';
+ style.zIndex = zIndex;
+
+ if (typeof(stylesToAdd) == 'object') {
+ for (addedStyle in stylesToAdd) {
+ style[addedStyle] = stylesToAdd[addedStyle];
+ }
+ }
+
+ // style.backgroundColor = '#f00'; // debug
+ appendElem.appendChild(this.div);
+
+ this.div.innerHTML = this.getHTML(box.width, box.height);
+ },
+
+ getHTML: function (width, height) {
+ // return HTML for movie
+ var html = '';
+ var flashvars = 'id=' + this.id + '&width=' + width + '&height=' + height;
+
+ if (navigator.userAgent.match(/MSIE/)) {
+ // IE gets an OBJECT tag
+ var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
+ html += '';
+ } else {
+ // all other browsers get an EMBED tag
+ html += '';
+ }
+ return html;
+ },
+
+ hide: function () {
+ // temporarily hide floater offscreen
+ if (this.div) {
+ this.div.style.left = '-2000px';
+ }
+ },
+
+ show: function () {
+ // show ourselves after a call to hide()
+ this.reposition();
+ },
+
+ destroy: function () {
+ // destroy control and floater
+ if (this.domElement && this.div) {
+ this.hide();
+ this.div.innerHTML = '';
+
+ var body = document.getElementsByTagName('body')[0];
+ try {
+ body.removeChild(this.div);
+ } catch (e) {
+ ;
+ }
+
+ this.domElement = null;
+ this.div = null;
+ }
+ },
+
+ reposition: function (elem) {
+ // reposition our floating div, optionally to new container
+ // warning: container CANNOT change size, only position
+ if (elem) {
+ this.domElement = ZeroClipboard.$(elem);
+ if (!this.domElement) this.hide();
+ }
+
+ if (this.domElement && this.div) {
+ var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
+ var style = this.div.style;
+ style.left = '' + box.left + 'px';
+ style.top = '' + box.top + 'px';
+ }
+ },
+
+ setText: function (newText) {
+ // set text to be copied to clipboard
+ this.clipText = newText;
+ if (this.ready) {
+ this.movie.setText(newText);
+ }
+ },
+
+ addEventListener: function (eventName, func) {
+ // add user event listener for event
+ // event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
+ eventName = eventName.toString().toLowerCase().replace(/^on/, '');
+ if (!this.handlers[eventName]) {
+ this.handlers[eventName] = [];
+ }
+ this.handlers[eventName].push(func);
+ },
+
+ setHandCursor: function (enabled) {
+ // enable hand cursor (true), or default arrow cursor (false)
+ this.handCursorEnabled = enabled;
+ if (this.ready) {
+ this.movie.setHandCursor(enabled);
+ }
+ },
+
+ setCSSEffects: function (enabled) {
+ // enable or disable CSS effects on DOM container
+ this.cssEffects = !!enabled;
+ },
+
+ receiveEvent: function (eventName, args) {
+ // receive event from flash
+ eventName = eventName.toString().toLowerCase().replace(/^on/, '');
+
+ // special behavior for certain events
+ switch (eventName) {
+ case 'load':
+ // movie claims it is ready, but in IE this isn't always the case...
+ // bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
+ this.movie = document.getElementById(this.movieId);
+ if (!this.movie) {
+ var self = this;
+ setTimeout(function () {
+ self.receiveEvent('load', null);
+ }, 1);
+ return;
+ }
+
+ // firefox on pc needs a "kick" in order to set these in certain cases
+ if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
+ var self = this;
+ setTimeout(function () {
+ self.receiveEvent('load', null);
+ }, 100);
+ this.ready = true;
+ return;
+ }
+
+ this.ready = true;
+ try {
+ this.movie.setText(this.clipText);
+ } catch (e) {
+ }
+ try {
+ this.movie.setHandCursor(this.handCursorEnabled);
+ } catch (e) {
+ }
+ break;
+
+ case 'mouseover':
+ if (this.domElement && this.cssEffects) {
+ this.domElement.addClass('hover');
+ if (this.recoverActive) {
+ this.domElement.addClass('active');
+ }
+
+
+ }
+
+
+ break;
+
+ case 'mouseout':
+ if (this.domElement && this.cssEffects) {
+ this.recoverActive = false;
+ if (this.domElement.hasClass('active')) {
+ this.domElement.removeClass('active');
+ this.recoverActive = true;
+ }
+ this.domElement.removeClass('hover');
+
+ }
+ break;
+
+ case 'mousedown':
+ if (this.domElement && this.cssEffects) {
+ this.domElement.addClass('active');
+ }
+ break;
+
+ case 'mouseup':
+ if (this.domElement && this.cssEffects) {
+ this.domElement.removeClass('active');
+ this.recoverActive = false;
+ }
+ break;
+ } // switch eventName
+ if (this.handlers[eventName]) {
+ for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
+ var func = this.handlers[eventName][idx];
+
+ if (typeof(func) == 'function') {
+ // actual function reference
+ func(this, args);
+ } else if ((typeof(func) == 'object') && (func.length == 2)) {
+ // PHP style object + method, i.e. [myObject, 'myMethod']
+ func[0][func[1]](this, args);
+ } else if (typeof(func) == 'string') {
+ // name of function
+ window[func](this, args);
+ }
+ } // foreach event handler defined
+ } // user defined handler for event
+ }
+
+ };
+}/**
+ * 复制
+ * Created by GUY on 2016/2/16.
+ * @class BI.ClipBoard
+ * @extends BI.BasicButton
+ */
+BI.ClipBoard = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.ClipBoard.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-clipboard",
+ copy: BI.emptyFn,
+ afterCopy: BI.emptyFn
+ })
+ },
+
+ _init: function () {
+ BI.ClipBoard.superclass._init.apply(this, arguments);
+ },
+
+ mounted: function () {
+ var self = this, o = this.options;
+ if (window.Clipboard) {
+ this.clipboard = new Clipboard(this.element[0], {
+ text: function () {
+ return BI.isFunction(o.copy) ? o.copy() : o.copy;
+ }
+ });
+ this.clipboard.on("success", o.afterCopy)
+ } else {
+ this.element.zclip({
+ path: BI.resourceURL + "/ZeroClipboard.swf",
+ copy: o.copy,
+ beforeCopy: o.beforeCopy,
+ afterCopy: o.afterCopy
+ });
+ }
+ },
+
+ destroyed: function () {
+ this.clipboard && this.clipboard.destroy();
+ }
+});
+
+BI.shortcut("bi.clipboard", BI.ClipBoard);/**
+ * 自定义选色
+ *
+ * Created by GUY on 2015/11/17.
+ * @class BI.CustomColorChooser
+ * @extends BI.Widget
+ */
+BI.CustomColorChooser = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.CustomColorChooser.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-custom-color-chooser",
+ width: 227,
+ height: 245
+ })
+ },
+
+ _init: function () {
+ BI.CustomColorChooser.superclass._init.apply(this, arguments);
+ var self = this;
+ this.editor = BI.createWidget({
+ type: "bi.color_picker_editor",
+ width: 195
+ });
+ this.editor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () {
+ self.setValue(this.getValue());
+ });
+ this.farbtastic = BI.createWidget({
+ type: "bi.farbtastic"
+ });
+ this.farbtastic.on(BI.Farbtastic.EVENT_CHANGE, function () {
+ self.setValue(this.getValue());
+ });
+
+ BI.createWidget({
+ type: "bi.vtape",
+ element: this,
+ items: [{
+ type: "bi.absolute",
+ items: [{
+ el: this.editor,
+ left: 15,
+ top: 10,
+ right: 15
+ }],
+ height: 30
+ }, {
+ type: "bi.absolute",
+ items: [{
+ el: this.farbtastic,
+ left: 15,
+ right: 15,
+ top: 10
+ }],
+ height: 215
+ }]
+ })
+ },
+
+ setValue: function (color) {
+ this.editor.setValue(color);
+ this.farbtastic.setValue(color);
+ },
+
+ getValue: function () {
+ return this.editor.getValue();
+ }
+});
+BI.CustomColorChooser.EVENT_CHANGE = "CustomColorChooser.EVENT_CHANGE";
+BI.shortcut("bi.custom_color_chooser", BI.CustomColorChooser);/**
+ * 选色控件
+ *
+ * Created by GUY on 2015/11/17.
+ * @class BI.ColorChooser
+ * @extends BI.Widget
+ */
+BI.ColorChooser = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.ColorChooser.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-color-chooser",
+ el: {}
+ })
+ },
+
+ _init: function () {
+ BI.ColorChooser.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget(BI.extend({
+ type: "bi.color_chooser_trigger",
+ width: o.width,
+ height: o.height
+ }, o.el));
+ this.colorPicker = BI.createWidget({
+ type: "bi.color_chooser_popup"
+ });
+
+ this.combo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ adjustLength: 1,
+ el: this.trigger,
+ popup: {
+ el: this.colorPicker,
+ stopPropagation: false,
+ minWidth: 202
+ }
+ });
+
+ var fn = function () {
+ var color = self.colorPicker.getValue();
+ self.trigger.setValue(color);
+ var colors = BI.string2Array(BI.Cache.getItem("colors") || "");
+ var que = new BI.Queue(8);
+ que.fromArray(colors);
+ que.remove(color);
+ que.unshift(color);
+ BI.Cache.setItem("colors", BI.array2String(que.toArray()));
+ };
+
+ this.colorPicker.on(BI.ColorChooserPopup.EVENT_VALUE_CHANGE, function () {
+ fn();
+ });
+
+ this.colorPicker.on(BI.ColorChooserPopup.EVENT_CHANGE, function () {
+ fn();
+ self.combo.hideView();
+ });
+ this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
+ self.colorPicker.setStoreColors(BI.string2Array(BI.Cache.getItem("colors") || ""));
+ });
+
+ this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW, function () {
+ self.fireEvent(BI.ColorChooser.EVENT_CHANGE, arguments);
+ })
+ },
+
+ isViewVisible: function () {
+ return this.combo.isViewVisible();
+ },
+
+ setValue: function (color) {
+ this.combo.setValue(color);
+ },
+
+ getValue: function () {
+ return this.colorPicker.getValue();
+ }
+});
+BI.ColorChooser.EVENT_CHANGE = "ColorChooser.EVENT_CHANGE";
+BI.shortcut("bi.color_chooser", BI.ColorChooser);/**
+ * 选色控件
+ *
+ * Created by GUY on 2015/11/17.
+ * @class BI.ColorChooserPopup
+ * @extends BI.Widget
+ */
+BI.ColorChooserPopup = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.ColorChooserPopup.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-color-chooser-popup",
+ height: 145
+ })
+ },
+
+ _init: function () {
+ BI.ColorChooserPopup.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.colorEditor = BI.createWidget({
+ type: "bi.color_picker_editor"
+ });
+
+ this.colorEditor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () {
+ self.setValue(this.getValue());
+ self.fireEvent(BI.ColorChooserPopup.EVENT_VALUE_CHANGE, arguments);
+ });
+
+ this.storeColors = BI.createWidget({
+ type: "bi.color_picker",
+ items: [[{
+ value: "",
+ disabled: true
+ }, {
+ value: "",
+ disabled: true
+ }, {
+ value: "",
+ disabled: true
+ }, {
+ value: "",
+ disabled: true
+ }, {
+ value: "",
+ disabled: true
+ }, {
+ value: "",
+ disabled: true
+ }, {
+ value: "",
+ disabled: true
+ }, {
+ value: "",
+ disabled: true
+ }]],
+ width: 190,
+ height: 25
+ });
+ this.storeColors.on(BI.ColorPicker.EVENT_CHANGE, function () {
+ self.setValue(this.getValue()[0]);
+ self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
+ });
+
+ this.colorPicker = BI.createWidget({
+ type: "bi.color_picker",
+ width: 190,
+ height: 50
+ });
+
+ this.colorPicker.on(BI.ColorPicker.EVENT_CHANGE, function () {
+ self.setValue(this.getValue()[0]);
+ self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
+ });
+
+ this.customColorChooser = BI.createWidget({
+ type: "bi.custom_color_chooser"
+ });
+
+ var panel = BI.createWidget({
+ type: "bi.popup_panel",
+ buttons: [BI.i18nText("BI-Basic_Cancel"), BI.i18nText("BI-Basic_Save")],
+ title: BI.i18nText("BI-Custom_Color"),
+ el: this.customColorChooser,
+ stopPropagation: false,
+ bgap: -1,
+ rgap: 1,
+ lgap: 1,
+ minWidth: 227
+ });
+
+ this.more = BI.createWidget({
+ type: "bi.combo",
+ direction: "right,top",
+ isNeedAdjustHeight: false,
+ el: {
+ type: "bi.text_item",
+ cls: "color-chooser-popup-more bi-list-item",
+ textAlign: "center",
+ height: 20,
+ text: BI.i18nText("BI-Basic_More") + "..."
+ },
+ popup: panel
+ });
+
+ this.more.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () {
+ self.customColorChooser.setValue(self.getValue());
+ });
+ panel.on(BI.PopupPanel.EVENT_CLICK_TOOLBAR_BUTTON, function (index) {
+ switch (index) {
+ case 0:
+ self.more.hideView();
+ break;
+ case 1:
+ self.setValue(self.customColorChooser.getValue());
+ self.more.hideView();
+ self.fireEvent(BI.ColorChooserPopup.EVENT_CHANGE, arguments);
+ break;
+ }
+ });
+
+ BI.createWidget({
+ type: "bi.vtape",
+ element: this,
+ items: [{
+ el: {
+ type: "bi.absolute",
+ cls: "bi-background bi-border-bottom",
+ items: [{
+ el: this.colorEditor,
+ left: 0,
+ right: 0,
+ top: 5
+ }]
+ },
+ height: 30
+ }, {
+ el: {
+ type: "bi.absolute",
+ items: [{
+ el: this.storeColors,
+ left: 5,
+ right: 5,
+ top: 5
+ }]
+ },
+ height: 30
+ }, {
+ el: {
+ type: "bi.absolute",
+ items: [{
+ el: this.colorPicker,
+ left: 5,
+ right: 5,
+ top: 5
+ }]
+ },
+ height: 65
+ }, {
+ el: this.more,
+ height: 20
+ }]
+ })
+ },
+
+ setStoreColors: function (colors) {
+ if (BI.isArray(colors)) {
+ var items = BI.map(colors, function (i, color) {
+ return {
+ value: color
+ }
+ });
+ BI.count(colors.length, 8, function (i) {
+ items.push({
+ value: "",
+ disabled: true
+ })
+ });
+ this.storeColors.populate([items]);
+ }
+ },
+
+ setValue: function (color) {
+ this.colorEditor.setValue(color);
+ this.colorPicker.setValue(color);
+ this.storeColors.setValue(color);
+ },
+
+ getValue: function () {
+ return this.colorEditor.getValue();
+ }
+});
+BI.ColorChooserPopup.EVENT_VALUE_CHANGE = "ColorChooserPopup.EVENT_VALUE_CHANGE";
+BI.ColorChooserPopup.EVENT_CHANGE = "ColorChooserPopup.EVENT_CHANGE";
+BI.shortcut("bi.color_chooser_popup", BI.ColorChooserPopup);/**
+ * 选色控件
+ *
+ * Created by GUY on 2015/11/17.
+ * @class BI.ColorChooserTrigger
+ * @extends BI.Trigger
+ */
+BI.ColorChooserTrigger = BI.inherit(BI.Trigger, {
+
+ _defaultConfig: function () {
+ var conf = BI.ColorChooserTrigger.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-color-chooser-trigger",
+ height: 30
+ })
+ },
+
+ _init: function () {
+ BI.ColorChooserTrigger.superclass._init.apply(this, arguments);
+ this.colorContainer = BI.createWidget({
+ type: "bi.layout",
+ cls: "bi-card color-chooser-trigger-content"
+ });
+
+ var down = BI.createWidget({
+ type: "bi.icon_button",
+ disableSelected: true,
+ cls: "icon-combo-down-icon trigger-triangle-font",
+ width: 12,
+ height: 8
+ });
+
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [{
+ el: this.colorContainer,
+ left: 3,
+ right: 3,
+ top: 3,
+ bottom: 3
+ }, {
+ el: down,
+ right: 3,
+ bottom: 3
+ }]
+ });
+ if (this.options.value) {
+ this.setValue(this.options.value);
+ }
+ },
+
+ setValue: function (color) {
+ BI.ColorChooserTrigger.superclass.setValue.apply(this, arguments);
+ if (color === "") {
+ this.colorContainer.element.css("background-color", "").removeClass("trans-color-background").addClass("auto-color-background");
+ } else if (color === "transparent") {
+ this.colorContainer.element.css("background-color", "").removeClass("auto-color-background").addClass("trans-color-background")
+ } else {
+ this.colorContainer.element.css({"background-color": color}).removeClass("auto-color-background").removeClass("trans-color-background");
+ }
+ }
+});
+BI.ColorChooserTrigger.EVENT_CHANGE = "ColorChooserTrigger.EVENT_CHANGE";
+BI.shortcut("bi.color_chooser_trigger", BI.ColorChooserTrigger);/**
+ * 简单选色控件按钮
+ *
+ * Created by GUY on 2015/11/16.
+ * @class BI.ColorPickerButton
+ * @extends BI.BasicButton
+ */
+BI.ColorPickerButton = BI.inherit(BI.BasicButton, {
+
+ _defaultConfig: function () {
+ var conf = BI.ColorPickerButton.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-color-picker-button bi-background bi-border-top bi-border-left"
+ })
+ },
+
+ _init: function () {
+ BI.ColorPickerButton.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ if (o.value) {
+ this.element.css("background-color", o.value);
+ var name = this.getName();
+ this.element.hover(function () {
+ self._createMask();
+ if (self.isEnabled()) {
+ BI.Maskers.show(name);
+ }
+ }, function () {
+ if (!self.isSelected()) {
+ BI.Maskers.hide(name);
+ }
+ });
+ }
+ },
+
+ _createMask: function () {
+ var o = this.options, name = this.getName();
+ if (this.isEnabled() && !BI.Maskers.has(name)) {
+ var w = BI.Maskers.make(name, this, {
+ offset: {
+ left: -1,
+ top: -1,
+ right: -1,
+ bottom: -1
+ }
+ });
+ w.element.addClass("color-picker-button-mask").css("background-color", o.value);
+ }
+ },
+
+ setSelected: function (b) {
+ BI.ColorPickerButton.superclass.setSelected.apply(this, arguments);
+ if (!!b) {
+ this._createMask();
+ }
+ BI.Maskers[!!b ? "show" : "hide"](this.getName());
+ }
+});
+BI.ColorPickerButton.EVENT_CHANGE = "ColorPickerButton.EVENT_CHANGE";
+BI.shortcut("bi.color_picker_button", BI.ColorPickerButton);/**
+ * 简单选色控件
+ *
+ * Created by GUY on 2015/11/16.
+ * @class BI.ColorPicker
+ * @extends BI.Widget
+ */
+BI.ColorPicker = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.ColorPicker.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-color-picker",
+ items: null
+ })
+ },
+
+ _items: [
+ [{
+ value: "#ffffff"
+ }, {
+ value: "#f2f2f2"
+ }, {
+ value: "#e5e5e5"
+ }, {
+ value: "#d9d9d9"
+ }, {
+ value: "#cccccc"
+ }, {
+ value: "#bfbfbf"
+ }, {
+ value: "#b2b2b2"
+ }, {
+ value: "#a6a6a6"
+ }, {
+ value: "#999999"
+ }, {
+ value: "#8c8c8c"
+ }, {
+ value: "#808080"
+ }, {
+ value: "#737373"
+ }, {
+ value: "#666666"
+ }, {
+ value: "#4d4d4d"
+ }, {
+ value: "#333333"
+ }, {
+ value: "#000000"
+ }],
+ [{
+ value: "#d8b5a6"
+ }, {
+ value: "#ff9e9a"
+ }, {
+ value: "#ffc17d"
+ }, {
+ value: "#f5e56b"
+ }, {
+ value: "#d8e698"
+ }, {
+ value: "#e0ebaf"
+ }, {
+ value: "#c3d825"
+ }, {
+ value: "#bce2e8"
+ }, {
+ value: "#85d3cd"
+ }, {
+ value: "#bce2e8"
+ }, {
+ value: "#a0d8ef"
+ }, {
+ value: "#89c3eb"
+ }, {
+ value: "#bbc8e6"
+ }, {
+ value: "#bbbcde"
+ }, {
+ value: "#d6b4cc"
+ }, {
+ value: "#fbc0d3"
+ }],
+ [{
+ value: "#bb9581"
+ }, {
+ value: "#f37d79"
+ }, {
+ value: "#fba74f"
+ }, {
+ value: "#ffdb4f"
+ }, {
+ value: "#c7dc68"
+ }, {
+ value: "#b0ca71"
+ }, {
+ value: "#99ab4e"
+ }, {
+ value: "#84b9cb"
+ }, {
+ value: "#00a3af"
+ }, {
+ value: "#2ca9e1"
+ }, {
+ value: "#0095d9"
+ }, {
+ value: "#4c6cb3"
+ }, {
+ value: "#8491c3"
+ }, {
+ value: "#a59aca"
+ }, {
+ value: "#cc7eb1"
+ }, {
+ value: "#e89bb4"
+ }],
+ [{
+ value: "#9d775f"
+ }, {
+ value: "#dd4b4b"
+ }, {
+ value: "#ef8b07"
+ }, {
+ value: "#fcc800"
+ }, {
+ value: "#aacf53"
+ }, {
+ value: "#82ae46"
+ }, {
+ value: "#69821b"
+ }, {
+ value: "#59b9c6"
+ }, {
+ value: "#2a83a2"
+ }, {
+ value: "#007bbb"
+ }, {
+ value: "#19448e"
+ }, {
+ value: "#274a78"
+ }, {
+ value: "#4a488e"
+ }, {
+ value: "#7058a3"
+ }, {
+ value: "#884898"
+ }, {
+ value: "#d47596"
+ }]
+ ],
+
+ _init: function () {
+ BI.ColorPicker.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.colors = BI.createWidget({
+ type: "bi.button_group",
+ element: this,
+ items: BI.createItems(o.items || this._items, {
+ type: "bi.color_picker_button",
+ once: false
+ }),
+ layouts: [{
+ type: "bi.grid"
+ }]
+ });
+ this.colors.on(BI.ButtonGroup.EVENT_CHANGE, function () {
+ self.fireEvent(BI.ColorPicker.EVENT_CHANGE, arguments);
+ })
+ },
+
+ populate: function(items){
+ var args =[].slice.call(arguments);
+ args[0] = BI.createItems(items, {
+ type: "bi.color_picker_button",
+ once: false
+ });
+ this.colors.populate.apply(this.colors, args);
+ },
+
+ setValue: function (color) {
+ this.colors.setValue(color);
+ },
+
+ getValue: function () {
+ return this.colors.getValue();
+ }
+});
+BI.ColorPicker.EVENT_CHANGE = "ColorPicker.EVENT_CHANGE";
+BI.shortcut("bi.color_picker", BI.ColorPicker);/**
+ * 简单选色控件
+ *
+ * Created by GUY on 2015/11/16.
+ * @class BI.ColorPickerEditor
+ * @extends BI.Widget
+ */
+BI.ColorPickerEditor = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.ColorPickerEditor.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-color-picker-editor",
+ width: 200,
+ height: 20
+ })
+ },
+
+ _init: function () {
+ BI.ColorPickerEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.colorShow = BI.createWidget({
+ type: "bi.layout",
+ cls: "color-picker-editor-display bi-card",
+ height: 20
+ });
+ var RGB = BI.createWidgets(BI.createItems([{text: "R"}, {text: "G"}, {text: "B"}], {
+ type: "bi.label",
+ cls: "color-picker-editor-label",
+ width: 10,
+ height: 20
+ }));
+
+ var checker = function (v) {
+ return BI.isNumeric(v) && (v | 0) >= 0 && (v | 0) <= 255;
+ };
+ var Ws = BI.createWidgets([{}, {}, {}], {
+ type: "bi.small_text_editor",
+ cls: "color-picker-editor-input",
+ validationChecker: checker,
+ errorText: BI.i18nText("BI-Color_Picker_Error_Text"),
+ allowBlank: true,
+ value: 255,
+ width: 32,
+ height: 20
+ });
+ BI.each(Ws, function (i, w) {
+ w.on(BI.TextEditor.EVENT_CHANGE, function () {
+ if (self.R.isValid() && self.G.isValid() && self.B.isValid()) {
+ self.colorShow.element.css("background-color", self.getValue());
+ self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE);
+ }
+ });
+ });
+ this.R = Ws[0];
+ this.G = Ws[1];
+ this.B = Ws[2];
+
+ this.none = BI.createWidget({
+ type: "bi.checkbox",
+ title: BI.i18nText("BI-Basic_Auto")
+ });
+ this.none.on(BI.Checkbox.EVENT_CHANGE, function () {
+ if (this.isSelected()) {
+ self.lastColor = self.getValue();
+ self.setValue("");
+ } else {
+ self.setValue(self.lastColor || "#000000");
+ }
+ if (self.R.isValid() && self.G.isValid() && self.B.isValid()) {
+ self.colorShow.element.css("background-color", self.getValue());
+ self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE);
+ }
+ });
+
+ this.transparent = BI.createWidget({
+ type: "bi.checkbox",
+ title: BI.i18nText("BI-Transparent_Color")
+ });
+ this.transparent.on(BI.Checkbox.EVENT_CHANGE, function () {
+ if (this.isSelected()) {
+ self.lastColor = self.getValue();
+ self.setValue("transparent");
+ } else {
+ self.setValue(self.lastColor || "#000000");
+ }
+ if (self.R.isValid() && self.G.isValid() && self.B.isValid()) {
+ self.colorShow.element.css("background-color", self.getValue());
+ self.fireEvent(BI.ColorPickerEditor.EVENT_CHANGE);
+ }
+ });
+
+ BI.createWidget({
+ type: "bi.htape",
+ element: this,
+ items: [{
+ el: this.colorShow,
+ width: 'fill'
+ }, {
+ el: RGB[0],
+ lgap: 10,
+ width: 16
+ }, {
+ el: this.R,
+ width: 32
+ }, {
+ el: RGB[1],
+ lgap: 10,
+ width: 16
+ }, {
+ el: this.G,
+ width: 32
+ }, {
+ el: RGB[2],
+ lgap: 10,
+ width: 16
+ }, {
+ el: this.B,
+ width: 32
+ }, {
+ el: {
+ type: "bi.center_adapt",
+ items: [this.none]
+ },
+ width: 18
+ }, {
+ el: {
+ type: "bi.center_adapt",
+ items: [this.transparent]
+ },
+ width: 18
+ }]
+ })
+ },
+
+ setValue: function (color) {
+ if (color === "transparent") {
+ this.transparent.setSelected(true);
+ this.none.setSelected(false);
+ this.R.setValue("");
+ this.G.setValue("");
+ this.B.setValue("");
+ return;
+ }
+ if (!color) {
+ color = "";
+ this.none.setSelected(true);
+ } else {
+ this.none.setSelected(false);
+ }
+ this.transparent.setSelected(false);
+ this.colorShow.element.css("background-color", color);
+ var json = BI.DOM.rgb2json(BI.DOM.hex2rgb(color));
+ this.R.setValue(BI.isNull(json.r) ? "" : json.r);
+ this.G.setValue(BI.isNull(json.g) ? "" : json.g);
+ this.B.setValue(BI.isNull(json.b) ? "" : json.b);
+ },
+
+ getValue: function () {
+ if (this.transparent.isSelected()) {
+ return "transparent";
+ }
+ return BI.DOM.rgb2hex(BI.DOM.json2rgb({
+ r: this.R.getValue(),
+ g: this.G.getValue(),
+ b: this.B.getValue()
+ }))
+ }
+});
+BI.ColorPickerEditor.EVENT_CHANGE = "ColorPickerEditor.EVENT_CHANGE";
+BI.shortcut("bi.color_picker_editor", BI.ColorPickerEditor);/**
+ * 选色控件
+ *
+ * Created by GUY on 2015/11/16.
+ * @class BI.Farbtastic
+ * @extends BI.Widget
+ */
+BI.Farbtastic = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.Farbtastic.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-farbtastic",
+ width: 195,
+ height: 195
+ })
+ },
+
+ _init: function () {
+ BI.Farbtastic.superclass._init.apply(this, arguments);
+ },
+
+ mounted: function () {
+ var self = this;
+ this.farbtastic = $.farbtastic(this.element, function (v) {
+ self.fireEvent(BI.Farbtastic.EVENT_CHANGE, self.getValue(), self);
+ });
+ },
+
+ setValue: function (color) {
+ this.farbtastic.setColor(color);
+ },
+
+ getValue: function () {
+ return this.farbtastic.color;
+ }
+});
+BI.Farbtastic.EVENT_CHANGE = "Farbtastic.EVENT_CHANGE";
+BI.shortcut("bi.farbtastic", BI.Farbtastic);/**
+ * Farbtastic Color Picker 1.2
+ * © 2008 Steven Wittens
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+jQuery.fn.farbtastic = function (callback) {
+ $.farbtastic(this, callback);
+ return this;
+};
+
+jQuery.farbtastic = function (container, callback) {
+ var container = $(container).get(0);
+ return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
+}
+
+jQuery._farbtastic = function (container, callback) {
+ // Store farbtastic object
+ var fb = this;
+
+ // Insert markup
+ $(container).html('');
+ var e = $('.farbtastic', container);
+ fb.wheel = $('.wheel', container).get(0);
+ // Dimensions
+ fb.radius = 84;
+ fb.square = 100;
+ fb.width = 194;
+
+ // Fix background PNGs in IE6
+ if (navigator.appVersion.match(/MSIE [0-6]\./)) {
+ $('*', e).each(function () {
+ if (this.currentStyle.backgroundImage != 'none') {
+ var image = this.currentStyle.backgroundImage;
+ image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
+ $(this).css({
+ 'backgroundImage': 'none',
+ 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
+ });
+ }
+ });
+ }
+
+ /**
+ * Link to the given element(s) or callback.
+ */
+ fb.linkTo = function (callback) {
+ // Unbind previous nodes
+ if (typeof fb.callback == 'object') {
+ $(fb.callback).unbind('keyup', fb.updateValue);
+ }
+
+ // Reset color
+ fb.color = null;
+
+ // Bind callback or elements
+ if (typeof callback == 'function') {
+ fb.callback = callback;
+ }
+ else if (typeof callback == 'object' || typeof callback == 'string') {
+ fb.callback = $(callback);
+ fb.callback.bind('keyup', fb.updateValue);
+ if (fb.callback.get(0).value) {
+ fb.setColor(fb.callback.get(0).value);
+ }
+ }
+ return this;
+ }
+ fb.updateValue = function (event) {
+ if (this.value && this.value != fb.color) {
+ fb.setColor(this.value);
+ }
+ }
+
+ /**
+ * Change color with HTML syntax #123456
+ */
+ fb.setColor = function (color) {
+ var unpack = fb.unpack(color);
+ if (fb.color != color && unpack) {
+ fb.color = color;
+ fb.rgb = unpack;
+ fb.hsl = fb.RGBToHSL(fb.rgb);
+ fb.updateDisplay();
+ }
+ return this;
+ }
+
+ /**
+ * Change color with HSL triplet [0..1, 0..1, 0..1]
+ */
+ fb.setHSL = function (hsl) {
+ fb.hsl = hsl;
+ fb.rgb = fb.HSLToRGB(hsl);
+ fb.color = fb.pack(fb.rgb);
+ fb.updateDisplay();
+ return this;
+ }
+
+ /////////////////////////////////////////////////////
+
+ /**
+ * Retrieve the coordinates of the given event relative to the center
+ * of the widget.
+ */
+ fb.widgetCoords = function (event) {
+ var x, y;
+ var el = event.target || event.srcElement;
+ var reference = fb.wheel;
+
+ if (typeof event.offsetX != 'undefined') {
+ // Use offset coordinates and find common offsetParent
+ var pos = { x: event.offsetX, y: event.offsetY };
+
+ // Send the coordinates upwards through the offsetParent chain.
+ var e = el;
+ while (e) {
+ e.mouseX = pos.x;
+ e.mouseY = pos.y;
+ pos.x += e.offsetLeft;
+ pos.y += e.offsetTop;
+ e = e.offsetParent;
+ }
+
+ // Look for the coordinates starting from the wheel widget.
+ var e = reference;
+ var offset = { x: 0, y: 0 }
+ while (e) {
+ if (typeof e.mouseX != 'undefined') {
+ x = e.mouseX - offset.x;
+ y = e.mouseY - offset.y;
+ break;
+ }
+ offset.x += e.offsetLeft;
+ offset.y += e.offsetTop;
+ e = e.offsetParent;
+ }
+
+ // Reset stored coordinates
+ e = el;
+ while (e) {
+ e.mouseX = undefined;
+ e.mouseY = undefined;
+ e = e.offsetParent;
+ }
+ }
+ else {
+ // Use absolute coordinates
+ var pos = fb.absolutePosition(reference);
+ x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
+ y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
+ }
+ // Subtract distance to middle
+ return { x: x - fb.width / 2, y: y - fb.width / 2 };
+ }
+
+ /**
+ * Mousedown handler
+ */
+ fb.mousedown = function (event) {
+ // Capture mouse
+ if (!document.dragging) {
+ $(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup);
+ document.dragging = true;
+ }
+
+ // Check which area is being dragged
+ var pos = fb.widgetCoords(event);
+ fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;
+
+ // Process
+ fb.mousemove(event);
+ return false;
+ }
+
+ /**
+ * Mousemove handler
+ */
+ fb.mousemove = function (event) {
+ // Get coordinates relative to color picker center
+ var pos = fb.widgetCoords(event);
+
+ // Set new HSL parameters
+ if (fb.circleDrag) {
+ var hue = Math.atan2(pos.x, -pos.y) / 6.28;
+ if (hue < 0) hue += 1;
+ fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
+ }
+ else {
+ var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
+ var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
+ fb.setHSL([fb.hsl[0], sat, lum]);
+ }
+ return false;
+ }
+
+ /**
+ * Mouseup handler
+ */
+ fb.mouseup = function () {
+ // Uncapture mouse
+ $(document).unbind('mousemove', fb.mousemove);
+ $(document).unbind('mouseup', fb.mouseup);
+ document.dragging = false;
+ }
+
+ /**
+ * Update the markers and styles
+ */
+ fb.updateDisplay = function () {
+ // Markers
+ var angle = fb.hsl[0] * 6.28;
+ $('.h-marker', e).css({
+ left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px',
+ top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px'
+ });
+
+ $('.sl-marker', e).css({
+ left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px',
+ top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px'
+ });
+
+ // Saturation/Luminance gradient
+ $('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5])));
+
+ // Linked elements or callback
+ if (typeof fb.callback == 'object') {
+ // Set background/foreground color
+ $(fb.callback).css({
+ backgroundColor: fb.color,
+ color: fb.hsl[2] > 0.5 ? '#000' : '#fff'
+ });
+
+ // Change linked value
+ $(fb.callback).each(function() {
+ if (this.value && this.value != fb.color) {
+ this.value = fb.color;
+ }
+ });
+ }
+ else if (typeof fb.callback == 'function') {
+ fb.callback.call(fb, fb.color);
+ }
+ }
+
+ /**
+ * Get absolute position of element
+ */
+ fb.absolutePosition = function (el) {
+ var r = { x: el.offsetLeft, y: el.offsetTop };
+ // Resolve relative to offsetParent
+ if (el.offsetParent) {
+ var tmp = fb.absolutePosition(el.offsetParent);
+ r.x += tmp.x;
+ r.y += tmp.y;
+ }
+ return r;
+ };
+
+ /* Various color utility functions */
+ fb.pack = function (rgb) {
+ var r = Math.round(rgb[0] * 255);
+ var g = Math.round(rgb[1] * 255);
+ var b = Math.round(rgb[2] * 255);
+ return '#' + (r < 16 ? '0' : '') + r.toString(16) +
+ (g < 16 ? '0' : '') + g.toString(16) +
+ (b < 16 ? '0' : '') + b.toString(16);
+ }
+
+ fb.unpack = function (color) {
+ if (color.length == 7) {
+ return [parseInt('0x' + color.substring(1, 3)) / 255,
+ parseInt('0x' + color.substring(3, 5)) / 255,
+ parseInt('0x' + color.substring(5, 7)) / 255];
+ }
+ else if (color.length == 4) {
+ return [parseInt('0x' + color.substring(1, 2)) / 15,
+ parseInt('0x' + color.substring(2, 3)) / 15,
+ parseInt('0x' + color.substring(3, 4)) / 15];
+ }
+ }
+
+ fb.HSLToRGB = function (hsl) {
+ var m1, m2, r, g, b;
+ var h = hsl[0], s = hsl[1], l = hsl[2];
+ m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
+ m1 = l * 2 - m2;
+ return [this.hueToRGB(m1, m2, h+0.33333),
+ this.hueToRGB(m1, m2, h),
+ this.hueToRGB(m1, m2, h-0.33333)];
+ }
+
+ fb.hueToRGB = function (m1, m2, h) {
+ h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
+ if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
+ if (h * 2 < 1) return m2;
+ if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
+ return m1;
+ }
+
+ fb.RGBToHSL = function (rgb) {
+ var min, max, delta, h, s, l;
+ var r = rgb[0], g = rgb[1], b = rgb[2];
+ min = Math.min(r, Math.min(g, b));
+ max = Math.max(r, Math.max(g, b));
+ delta = max - min;
+ l = (min + max) / 2;
+ s = 0;
+ if (l > 0 && l < 1) {
+ s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
+ }
+ h = 0;
+ if (delta > 0) {
+ if (max == r && max != g) h += (g - b) / delta;
+ if (max == g && max != b) h += (2 + (b - r) / delta);
+ if (max == b && max != r) h += (4 + (r - g) / delta);
+ h /= 6;
+ }
+ return [h, s, l];
+ }
+
+ // Install mousedown handler (the others are set on the document on-demand)
+ $('*', e).mousedown(fb.mousedown);
+
+ // Init color
+ fb.setColor('#000000');
+
+ // Set linked elements/callback
+ if (callback) {
+ fb.linkTo(callback);
+ }
+}/**
+ * Created by GUY on 2017/2/8.
+ *
+ * @class BI.BubbleCombo
+ * @extends BI.Widget
+ */
+BI.BubbleCombo = BI.inherit(BI.Widget, {
+ _const: {
+ TRIANGLE_LENGTH: 6
+ },
+ _defaultConfig: function () {
+ return BI.extend(BI.BubbleCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-bubble-combo",
+ trigger: "click",
+ toggle: true,
+ direction: "bottom", //top||bottom||left||right||top,left||top,right||bottom,left||bottom,right
+ isDefaultInit: false,
+ destroyWhenHide: false,
+ isNeedAdjustHeight: true,//是否需要高度调整
+ isNeedAdjustWidth: true,
+ stopPropagation: false,
+ adjustLength: 0,//调整的距离
+ // adjustXOffset: 0,
+ // adjustYOffset: 10,
+ hideChecker: BI.emptyFn,
+ offsetStyle: "left", //left,right,center
+ el: {},
+ popup: {},
+ })
+ },
+ _init: function () {
+ BI.BubbleCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.combo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ trigger: o.trigger,
+ toggle: o.toggle,
+ direction: o.direction,
+ isDefaultInit: o.isDefaultInit,
+ destroyWhenHide: o.destroyWhenHide,
+ isNeedAdjustHeight: o.isNeedAdjustHeight,
+ isNeedAdjustWidth: o.isNeedAdjustWidth,
+ adjustLength: this._getAdjustLength(),
+ stopPropagation: o.stopPropagation,
+ adjustXOffset: 0,
+ adjustYOffset: 0,
+ hideChecker: o.hideChecker,
+ offsetStyle: o.offsetStyle,
+ el: o.el,
+ popup: BI.extend({
+ type: "bi.bubble_popup_view"
+ }, o.popup),
+ });
+ this.combo.on(BI.Combo.EVENT_TRIGGER_CHANGE, function () {
+ self.fireEvent(BI.BubbleCombo.EVENT_TRIGGER_CHANGE, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_CHANGE, function () {
+ self.fireEvent(BI.BubbleCombo.EVENT_CHANGE, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_EXPAND, function () {
+ self.fireEvent(BI.BubbleCombo.EVENT_EXPAND, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_COLLAPSE, function () {
+ self.fireEvent(BI.BubbleCombo.EVENT_COLLAPSE, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_AFTER_INIT, function () {
+ self.fireEvent(BI.BubbleCombo.EVENT_AFTER_INIT, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
+ self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () {
+ self._showTriangle();
+ self.fireEvent(BI.BubbleCombo.EVENT_AFTER_POPUPVIEW, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW, function () {
+ self._hideTriangle();
+ self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW, arguments);
+ });
+ this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW, function () {
+ self.fireEvent(BI.BubbleCombo.EVENT_AFTER_HIDEVIEW, arguments);
+ });
+ },
+
+ _getAdjustLength: function () {
+ return this._const.TRIANGLE_LENGTH + this.options.adjustLength;
+ },
+
+ _createTriangle: function (direction) {
+ var pos = {}, op = {};
+ var adjustLength = this.options.adjustLength;
+ var offset = this.element.offset();
+ var left = offset.left, right = offset.left + this.element.outerWidth();
+ var top = offset.top, bottom = offset.top + this.element.outerHeight();
+ switch (direction) {
+ case "left":
+ pos = {
+ top: top,
+ height: this.element.outerHeight(),
+ left: left - adjustLength - this._const.TRIANGLE_LENGTH
+ };
+ op = {width: this._const.TRIANGLE_LENGTH};
+ break;
+ case "right":
+ pos = {
+ top: top,
+ height: this.element.outerHeight(),
+ left: right + adjustLength
+ };
+ op = {width: this._const.TRIANGLE_LENGTH};
+ break;
+ case "top":
+ pos = {
+ left: left,
+ width: this.element.outerWidth(),
+ top: top - adjustLength - this._const.TRIANGLE_LENGTH
+ };
+ op = {height: this._const.TRIANGLE_LENGTH};
+ break;
+ case "bottom":
+ pos = {
+ left: left,
+ width: this.element.outerWidth(),
+ top: bottom + adjustLength
+ };
+ op = {height: this._const.TRIANGLE_LENGTH};
+ break;
+ default:
+ break;
+ }
+ this.triangle && this.triangle.destroy();
+ this.triangle = BI.createWidget(op, {
+ type: "bi.center_adapt",
+ cls: "button-combo-triangle-wrapper",
+ items: [{
+ type: "bi.layout",
+ cls: "bubble-combo-triangle-" + direction + " bi-high-light-border"
+ }]
+ });
+ pos.el = this.triangle;
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [pos]
+ })
+ },
+
+ _createLeftTriangle: function () {
+ this._createTriangle("left");
+ },
+
+ _createRightTriangle: function () {
+ this._createTriangle("right");
+ },
+
+ _createTopTriangle: function () {
+ this._createTriangle("top");
+ },
+
+ _createBottomTriangle: function () {
+ this._createTriangle("bottom");
+ },
+
+ _showTriangle: function () {
+ var pos = this.combo.getPopupPosition();
+ switch (pos.dir) {
+ case "left,top":
+ case "left,bottom":
+ this._createLeftTriangle();
+ this.combo.getView().showLine("right");
+ break;
+ case "right,top":
+ case "right,bottom":
+ this._createRightTriangle();
+ this.combo.getView().showLine("left");
+ break;
+ case "top,left":
+ case "top,right":
+ this._createTopTriangle();
+ this.combo.getView().showLine("bottom");
+ break;
+ case "bottom,left":
+ case "bottom,right":
+ this._createBottomTriangle();
+ this.combo.getView().showLine("top");
+ break;
+ }
+ },
+
+ _hideTriangle: function () {
+ this.triangle && this.triangle.destroy();
+ this.triangle = null;
+ this.combo.getView() && this.combo.getView().hideLine();
+ },
+
+ hideView: function () {
+ this._hideTriangle();
+ this.combo && this.combo.hideView();
+ },
+
+ showView: function () {
+ this.combo && this.combo.showView();
+ },
+
+ isViewVisible: function () {
+ return this.combo.isViewVisible();
+ }
+});
+
+BI.BubbleCombo.EVENT_TRIGGER_CHANGE = "EVENT_TRIGGER_CHANGE";
+BI.BubbleCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.BubbleCombo.EVENT_EXPAND = "EVENT_EXPAND";
+BI.BubbleCombo.EVENT_COLLAPSE = "EVENT_COLLAPSE";
+BI.BubbleCombo.EVENT_AFTER_INIT = "EVENT_AFTER_INIT";
+
+
+BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
+BI.BubbleCombo.EVENT_AFTER_POPUPVIEW = "EVENT_AFTER_POPUPVIEW";
+BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW = "EVENT_BEFORE_HIDEVIEW";
+BI.BubbleCombo.EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
+BI.shortcut("bi.bubble_combo", BI.BubbleCombo);/**
+ * Created by GUY on 2017/2/8.
+ *
+ * @class BI.BubblePopupView
+ * @extends BI.PopupView
+ */
+BI.BubblePopupView = BI.inherit(BI.PopupView, {
+ _defaultConfig: function () {
+ var config = BI.BubblePopupView.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(config, {
+ baseCls: config.baseCls + " bi-bubble-popup-view"
+ })
+ },
+ _init: function () {
+ BI.BubblePopupView.superclass._init.apply(this, arguments);
+ },
+
+ showLine: function (direction) {
+ var pos = {}, op = {};
+ switch (direction) {
+ case "left":
+ pos = {
+ top: 0,
+ bottom: 0,
+ left: -1
+ };
+ op = {width: 3};
+ break;
+ case "right":
+ pos = {
+ top: 0,
+ bottom: 0,
+ right: -1
+ };
+ op = {width: 3};
+ break;
+ case "top":
+ pos = {
+ left: 0,
+ right: 0,
+ top: -1
+ };
+ op = {height: 3};
+ break;
+ case "bottom":
+ pos = {
+ left: 0,
+ right: 0,
+ bottom: -1
+ };
+ op = {height: 3};
+ break;
+ default:
+ break;
+ }
+ this.line = BI.createWidget(op, {
+ type: "bi.layout",
+ cls: "bubble-popup-line bi-high-light-background"
+ });
+ pos.el = this.line;
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [pos]
+ })
+ },
+
+ hideLine: function () {
+ this.line && this.line.destroy();
+ }
+});
+
+BI.shortcut("bi.bubble_popup_view", BI.BubblePopupView);
+
+/**
+ * Created by GUY on 2017/2/8.
+ *
+ * @class BI.BubblePopupBarView
+ * @extends BI.BubblePopupView
+ */
+BI.BubblePopupBarView = BI.inherit(BI.BubblePopupView, {
+ _defaultConfig: function () {
+ return BI.extend(BI.BubblePopupBarView.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-bubble-bar-popup-view",
+ buttons: [{value: BI.i18nText(BI.i18nText("BI-Basic_Sure"))}, {value: BI.i18nText("BI-Basic_Cancel"), level: "ignore"}]
+ })
+ },
+ _init: function () {
+ BI.BubblePopupBarView.superclass._init.apply(this, arguments);
+ },
+ _createToolBar: function () {
+ var o = this.options, self = this;
+
+ var items = [];
+ BI.each(o.buttons.reverse(), function (i, buttonOpt) {
+ if(BI.isWidget(buttonOpt)){
+ items.push(buttonOpt);
+ }else{
+ items.push(BI.extend({
+ type: 'bi.button',
+ height: 30,
+ handler: function (v) {
+ self.fireEvent(BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON, v);
+ }
+ }, buttonOpt))
+ }
+ });
+ return BI.createWidget({
+ type: 'bi.right_vertical_adapt',
+ height: 40,
+ hgap: 10,
+ bgap: 10,
+ items: items
+ });
+ }
+});
+BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON";
+BI.shortcut("bi.bubble_bar_popup_view", BI.BubblePopupBarView);/**
+ * Created by Young's on 2016/4/28.
+ */
+BI.EditorIconCheckCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.EditorIconCheckCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseClass: "bi-check-editor-combo",
+ width: 100,
+ height: 30,
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn,
+ allowBlank: true,
+ watermark: "",
+ errorText: ""
+ })
+ },
+
+ _init: function () {
+ BI.EditorIconCheckCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget({
+ type: "bi.editor_trigger",
+ items: o.items,
+ height: o.height,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker,
+ allowBlank: o.allowBlank,
+ watermark: o.watermark,
+ errorText: o.errorText
+ });
+ this.trigger.on(BI.EditorTrigger.EVENT_CHANGE, function () {
+ self.popup.setValue(this.getValue());
+ self.fireEvent(BI.EditorIconCheckCombo.EVENT_CHANGE);
+ });
+ this.popup = BI.createWidget({
+ type: "bi.text_value_check_combo_popup",
+ chooseType: o.chooseType,
+ items: o.items
+ });
+ this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE, function () {
+ self.setValue(self.popup.getValue());
+ self.editorIconCheckCombo.hideView();
+ self.fireEvent(BI.EditorIconCheckCombo.EVENT_CHANGE);
+ });
+ this.popup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.editorIconCheckCombo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ adjustLength: 2,
+ el: this.trigger,
+ popup: {
+ el: this.popup,
+ maxHeight: 300
+ }
+ });
+ },
+
+ setValue: function (v) {
+ this.editorIconCheckCombo.setValue(v);
+ },
+
+ getValue: function () {
+ return this.trigger.getValue();
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ this.editorIconCheckCombo.populate(items);
+ }
+});
+BI.EditorIconCheckCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.editor_icon_check_combo", BI.EditorIconCheckCombo);/**
+ * Created by GUY on 2016/4/25.
+ *
+ * @class BI.FormulaCombo
+ * @extend BI.Widget
+ */
+BI.FormulaCombo = BI.inherit(BI.Widget, {
+
+ _constant: {
+ POPUP_HEIGHT: 450,
+ POPUP_WIDTH: 600,
+ POPUP_V_GAP: 10,
+ POPUP_H_GAP: 10,
+ ADJUST_LENGTH: 2,
+ HEIGHT_MAX: 10000,
+ MAX_HEIGHT: 500,
+ MAX_WIDTH: 600,
+ COMBO_TRIGGER_WIDTH: 300
+ },
+
+ _defaultConfig: function () {
+ return BI.extend(BI.FormulaCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-formula-combo",
+ height: 30,
+ items: []
+ })
+ },
+
+ _init: function () {
+ BI.FormulaCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.formula_ids = [];
+ this.input = BI.createWidget({
+ type: "bi.formula_combo_trigger",
+ height: o.height,
+ items: o.items
+ });
+ this.formulaPopup = BI.createWidget({
+ type: "bi.formula_combo_popup",
+ fieldItems: o.items
+ });
+
+ this.formulaInputCombo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ isNeedAdjustHeight: true,
+ isNeedAdjustWidth: false,
+ adjustLength: this._constant.ADJUST_LENGTH,
+ el: this.input,
+ popup: {
+ el: {
+ type: "bi.absolute",
+ height: this._constant.HEIGHT_MAX,
+ width: this._constant.POPUP_WIDTH,
+ items: [{
+ el: this.formulaPopup,
+ top: this._constant.POPUP_V_GAP,
+ left: this._constant.POPUP_H_GAP,
+ right: this._constant.POPUP_V_GAP,
+ bottom: 0
+ }]
+ },
+ stopPropagation: false,
+ maxHeight: this._constant.MAX_HEIGHT,
+ width: this._constant.MAX_WIDTH
+ }
+ });
+ this.formulaInputCombo.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () {
+ self.formulaPopup.setValue(self.input.getValue());
+ });
+ this.formulaPopup.on(BI.FormulaComboPopup.EVENT_CHANGE, function () {
+ self.setValue(self.formulaPopup.getValue());
+ self.formulaInputCombo.hideView();
+ self.fireEvent(BI.FormulaCombo.EVENT_CHANGE);
+ });
+ this.formulaPopup.on(BI.FormulaComboPopup.EVENT_VALUE_CANCEL, function () {
+ self.formulaInputCombo.hideView();
+ });
+ },
+
+ setValue: function (v) {
+ if (this.formulaInputCombo.isViewVisible()) {
+ this.formulaInputCombo.hideView();
+ }
+ this.input.setValue(v);
+ this.input.setText(BI.Func.getFormulaStringFromFormulaValue(v));
+ this.formulaPopup.setValue(this.input.getValue());
+ },
+
+ getFormulaTargetIds: function() {
+ return this.formulaPopup.getFormulaTargetIds();
+ },
+
+ getValue: function () {
+ return this.input.getValue();
+ }
+});
+BI.FormulaCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.formula_combo", BI.FormulaCombo);/**
+ * Created by GUY on 2016/4/25.
+ *
+ * @class BI.FormulaComboPopup
+ * @extend BI.Widget
+ */
+BI.FormulaComboPopup = BI.inherit(BI.Widget, {
+
+ _constant: {
+ BUTTON_HEIGHT: 30,
+ SOUTH_HEIGHT: 60,
+ SOUTH_H_GAP: 10
+ },
+
+ _defaultConfig: function () {
+ return BI.extend(BI.FormulaComboPopup.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-formula-pane-popup"
+ })
+ },
+
+ _init: function () {
+ BI.FormulaComboPopup.superclass._init.apply(this, arguments);
+ this.populate();
+ },
+
+ populate: function () {
+ var self = this, fieldItems = this.options.fieldItems;
+ this.formula = BI.createWidget({
+ type: "bi.formula_insert"
+ });
+ this.formula.populate(fieldItems);
+ var confirmButton = BI.createWidget({
+ type: "bi.button",
+ level: "common",
+ height: this._constant.BUTTON_HEIGHT,
+ text: BI.i18nText("BI-Basic_OK")
+ });
+ var cancelButton = BI.createWidget({
+ type: "bi.button",
+ level: "ignore",
+ height: this._constant.BUTTON_HEIGHT,
+ text: BI.i18nText("BI-Basic_Cancel")
+ });
+
+ this.formula.on(BI.FormulaInsert.EVENT_CHANGE, function () {
+ confirmButton.setEnable(self.formula.checkValidation());
+ });
+ confirmButton.on(BI.Button.EVENT_CHANGE, function () {
+ self.fireEvent(BI.FormulaComboPopup.EVENT_CHANGE);
+ });
+ cancelButton.on(BI.Button.EVENT_CHANGE, function () {
+ self.setValue(self.oldValue);
+ self.fireEvent(BI.FormulaComboPopup.EVENT_VALUE_CANCEL);
+ });
+
+ BI.createWidget({
+ type: "bi.vtape",
+ element: this,
+ items: [{
+ el: this.formula,
+ height: "fill"
+ }, {
+ el: {
+ type: "bi.right_vertical_adapt",
+ height: this._constant.SOUTH_HEIGHT,
+ items: [cancelButton, confirmButton],
+ hgap: this._constant.SOUTH_H_GAP
+ },
+ height: this._constant.SOUTH_HEIGHT
+ }]
+ })
+ },
+
+ getFormulaTargetIds: function(){
+ return this.formula.getUsedFields();
+ },
+
+ getValue: function () {
+ return this.formula.getValue();
+ },
+
+ setValue: function (v) {
+ this.oldValue = v;
+ this.formula.setValue(v);
+ }
+});
+BI.FormulaComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
+BI.FormulaComboPopup.EVENT_VALUE_CANCEL = "EVENT_VALUE_CANCEL";
+BI.shortcut("bi.formula_combo_popup", BI.FormulaComboPopup);/**
+ * Created by GUY on 2016/4/25.
+ *
+ * @class BI.FormulaComboTrigger
+ * @extend BI.Widget
+ */
+BI.FormulaComboTrigger = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.FormulaComboTrigger.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-formula-combo-trigger",
+ height: 30,
+ items: []
+ })
+ },
+
+ _init: function () {
+ BI.FormulaComboTrigger.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.label = BI.createWidget({
+ type: "bi.label",
+ element: this,
+ textAlign: "left",
+ textHeight: this.options.height,
+ lgap: 10
+ });
+ },
+
+ _getTextFromFormulaValue: function (formulaValue) {
+ var self = this;
+ var formulaString = "";
+ var regx = /\$[\{][^\}]*[\}]|\w*\w|\$\{[^\$\(\)\+\-\*\/)\$,]*\w\}|\$\{[^\$\(\)\+\-\*\/]*\w\}|\$\{[^\$\(\)\+\-\*\/]*[\u4e00-\u9fa5]\}|\w|(.)/g;
+ var result = formulaValue.match(regx);
+ BI.each(result, function (i, item) {
+ var fieldRegx = /\$[\{][^\}]*[\}]/;
+ var str = item.match(fieldRegx);
+ if (BI.isNotEmptyArray(str)) {
+ var id = str[0].substring(2, item.length - 1);
+ var item = BI.find(BI.flatten(self.options.items), function (i, item) {
+ return id === item.value;
+ });
+ formulaString = formulaString + item.text;
+ } else {
+ formulaString = formulaString + item;
+ }
+ });
+ return formulaString;
+ },
+
+ getValue: function () {
+ return this.options.value;
+ },
+
+ setValue: function (v) {
+ this.options.value = v;
+ this.label.setText(this._getTextFromFormulaValue(v));
+ }
+});
+BI.shortcut("bi.formula_combo_trigger", BI.FormulaComboTrigger);/**
+ * Created by GUY on 2016/2/2.
+ *
+ * @class BI.IconCombo
+ * @extend BI.Widget
+ */
+BI.IconCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.IconCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-icon-combo",
+ width: 24,
+ height: 24,
+ iconClass: "",
+ el: {},
+ popup: {},
+ minWidth: 100,
+ maxWidth: 'auto',
+ maxHeight: 300,
+ direction: "bottom",
+ adjustLength: 3,//调整的距离
+ adjustXOffset: 0,
+ adjustYOffset: 0,
+ offsetStyle: "left",
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
+ })
+ },
+
+ _init: function () {
+ BI.IconCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget(o.el, {
+ type: "bi.icon_combo_trigger",
+ iconClass: o.iconClass,
+ title: o.title,
+ items: o.items,
+ width: o.width,
+ height: o.height,
+ iconWidth: o.iconWidth,
+ iconHeight: o.iconHeight
+ });
+ this.popup = BI.createWidget(o.popup, {
+ type: "bi.icon_combo_popup",
+ chooseType: o.chooseType,
+ items: o.items
+ });
+ this.popup.on(BI.IconComboPopup.EVENT_CHANGE, function () {
+ self.setValue(self.popup.getValue());
+ self.iconCombo.hideView();
+ self.fireEvent(BI.IconCombo.EVENT_CHANGE);
+ });
+ this.popup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.iconCombo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ direction: o.direction,
+ adjustLength: o.adjustLength,
+ adjustXOffset: o.adjustXOffset,
+ adjustYOffset: o.adjustYOffset,
+ offsetStyle: o.offsetStyle,
+ el: this.trigger,
+ popup: {
+ el: this.popup,
+ maxWidth: o.maxWidth,
+ maxHeight: o.maxHeight,
+ minWidth: o.minWidth
+ }
+ });
+ },
+
+ showView: function () {
+ this.iconCombo.showView();
+ },
+
+ hideView: function () {
+ this.iconCombo.hideView();
+ },
+
+ setValue: function (v) {
+ this.iconCombo.setValue(v);
+ },
+
+ getValue: function () {
+ return this.iconCombo.getValue();
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ this.iconCombo.populate(items);
+ }
+});
+BI.IconCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.icon_combo", BI.IconCombo);/**
+ * Created by GUY on 2016/2/2.
+ *
+ * @class BI.IconComboPopup
+ * @extend BI.Pane
+ */
+BI.IconComboPopup = BI.inherit(BI.Pane, {
+ _defaultConfig: function () {
+ return BI.extend(BI.IconComboPopup.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi.icon-combo-popup",
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
+ });
+ },
+
+ _init: function () {
+ BI.IconComboPopup.superclass._init.apply(this, arguments);
+ var o = this.options, self = this;
+ this.popup = BI.createWidget({
+ type: "bi.button_group",
+ items: BI.createItems(o.items, {
+ type: "bi.single_select_icon_text_item",
+ height: 30
+ }),
+ chooseType: o.chooseType,
+ layouts: [{
+ type: "bi.vertical"
+ }]
+ });
+
+ this.popup.on(BI.Controller.EVENT_CHANGE, function (type, val, obj) {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ if (type === BI.Events.CLICK) {
+ self.fireEvent(BI.IconComboPopup.EVENT_CHANGE, val, obj);
+ }
+ });
+
+ BI.createWidget({
+ type: "bi.vertical",
+ element: this,
+ items: [this.popup]
+ });
+ },
+
+ populate: function (items) {
+ BI.IconComboPopup.superclass.populate.apply(this, arguments);
+ items = BI.createItems(items, {
+ type: "bi.single_select_icon_text_item",
+ height: 30
+ });
+ this.popup.populate(items);
+ },
+
+ getValue: function () {
+ return this.popup.getValue();
+ },
+
+ setValue: function (v) {
+ this.popup.setValue(v);
+ }
+
+});
+BI.IconComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.icon_combo_popup", BI.IconComboPopup);/**
+ * Created by GUY on 2016/2/2.
+ *
+ * @class BI.IconComboTrigger
+ * @extend BI.Widget
+ */
+BI.IconComboTrigger = BI.inherit(BI.Trigger, {
+ _defaultConfig: function () {
+ return BI.extend(BI.IconComboTrigger.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-icon-combo-trigger",
+ el: {},
+ items: [],
+ iconClass: "",
+ width: 25,
+ height: 25,
+ isShowDown: true
+ });
+ },
+
+ _init: function () {
+ BI.IconComboTrigger.superclass._init.apply(this, arguments);
+ var o = this.options, self = this;
+ this.button = BI.createWidget(o.el, {
+ type: "bi.icon_change_button",
+ cls: "icon-combo-trigger-icon " + o.iconClass,
+ disableSelected: true,
+ width: o.width,
+ height: o.height,
+ iconWidth: o.iconWidth,
+ iconHeight: o.iconHeight
+ });
+ this.down = BI.createWidget({
+ type: "bi.icon_button",
+ disableSelected: true,
+ cls: "icon-combo-down-icon trigger-triangle-font",
+ width: 12,
+ height: 8
+ });
+ this.down.setVisible(o.isShowDown);
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [{
+ el: this.button,
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0
+ }, {
+ el: this.down,
+ right: 0,
+ bottom: 0
+ }]
+ });
+ if (BI.isKey(o.value)) {
+ this.setValue(o.value);
+ }
+ },
+
+ populate: function (items) {
+ var o = this.options;
+ this.options.items = items || [];
+ this.button.setIcon(o.iconClass);
+ this.button.setSelected(false);
+ this.down.setSelected(false);
+ },
+
+ setValue: function (v) {
+ BI.IconComboTrigger.superclass.setValue.apply(this, arguments);
+ var o = this.options;
+ var iconClass = "";
+ v = BI.isArray(v) ? v[0] : v;
+ if (BI.any(this.options.items, function (i, item) {
+ if (v === item.value) {
+ iconClass = item.iconClass;
+ return true;
+ }
+ })) {
+ this.button.setIcon(iconClass);
+ this.button.setSelected(true);
+ this.down.setSelected(true);
+ } else {
+ this.button.setIcon(o.iconClass);
+ this.button.setSelected(false);
+ this.down.setSelected(false);
+ }
+ }
+});
+BI.IconComboTrigger.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.icon_combo_trigger", BI.IconComboTrigger);/**
+ * 单选combo
+ *
+ * @class BI.StaticCombo
+ * @extend BI.Widget
+ */
+BI.StaticCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.StaticCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-static-combo",
+ height: 30,
+ text: "",
+ el: {},
+ items: [],
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
+ })
+ },
+
+ _init: function () {
+ BI.StaticCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget(o.el, {
+ type: "bi.text_icon_item",
+ cls: "bi-select-text-trigger bi-border pull-down-font",
+ text: o.text,
+ readonly: true,
+ textLgap: 5,
+ height: o.height - 2
+ });
+ this.popup = BI.createWidget({
+ type: "bi.text_value_combo_popup",
+ textAlign: o.textAlign,
+ chooseType: o.chooseType,
+ items: o.items
+ });
+ this.popup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE, function () {
+ self.combo.hideView();
+ self.fireEvent(BI.StaticCombo.EVENT_CHANGE, arguments);
+ });
+ this.combo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ adjustLength: 2,
+ el: this.trigger,
+ popup: {
+ el: this.popup
+ }
+ });
+ },
+
+ populate: function (items) {
+ this.combo.populate(items);
+ },
+
+ setValue: function (v) {
+ this.combo.setValue(v);
+ },
+
+ getValue: function () {
+ return this.combo.getValue();
+ }
+});
+BI.StaticCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.static_combo", BI.StaticCombo);/**
+ * @class BI.TextValueCheckCombo
+ * @extend BI.Widget
+ * combo : text + icon, popup : check + text
+ */
+BI.TextValueCheckCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.TextValueCheckCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseClass: "bi-text-value-check-combo",
+ width: 100,
+ height: 30,
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
+ text: ""
+ })
+ },
+
+ _init: function () {
+ BI.TextValueCheckCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget({
+ type: "bi.select_text_trigger",
+ items: o.items,
+ height: o.height,
+ text: o.text
+ });
+ this.popup = BI.createWidget({
+ type: "bi.text_value_check_combo_popup",
+ chooseType: o.chooseType,
+ items: o.items
+ });
+ this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE, function () {
+ self.setValue(self.popup.getValue());
+ self.textIconCheckCombo.hideView();
+ self.fireEvent(BI.TextValueCheckCombo.EVENT_CHANGE);
+ });
+ this.popup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.textIconCheckCombo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ adjustLength: 2,
+ el: this.trigger,
+ popup: {
+ el: this.popup,
+ maxHeight: 300
+ }
+ });
+ },
+
+ setTitle: function (title) {
+ this.trigger.setTitle(title);
+ },
+
+ setValue: function (v) {
+ this.textIconCheckCombo.setValue(v);
+ },
+
+ setWarningTitle: function (title) {
+ this.trigger.setWarningTitle(title);
+ },
+
+ getValue: function () {
+ return this.textIconCheckCombo.getValue();
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ this.textIconCheckCombo.populate(items);
+ }
+});
+BI.TextValueCheckCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.text_value_check_combo", BI.TextValueCheckCombo);/**
+ * @class BI.SmallTextValueCheckCombo
+ * @extend BI.Widget
+ * combo : text + icon, popup : check + text
+ */
+BI.SmallTextValueCheckCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.SmallTextValueCheckCombo.superclass._defaultConfig.apply(this, arguments), {
+ width: 100,
+ height: 24,
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
+ text: ""
+ })
+ },
+
+ _init: function () {
+ BI.SmallTextValueCheckCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget({
+ type: "bi.small_select_text_trigger",
+ items: o.items,
+ height: o.height,
+ text: o.text
+ });
+ this.popup = BI.createWidget({
+ type: "bi.text_value_check_combo_popup",
+ chooseType: o.chooseType,
+ items: o.items
+ });
+ this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE, function () {
+ self.setValue(self.popup.getValue());
+ self.SmallTextIconCheckCombo.hideView();
+ self.fireEvent(BI.SmallTextValueCheckCombo.EVENT_CHANGE);
+ });
+ this.popup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.SmallTextIconCheckCombo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ adjustLength: 2,
+ el: this.trigger,
+ popup: {
+ el: this.popup,
+ maxHeight: 300
+ }
+ });
+ },
+
+ setValue: function (v) {
+ this.SmallTextIconCheckCombo.setValue(v);
+ },
+
+ getValue: function () {
+ return this.SmallTextIconCheckCombo.getValue();
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ this.SmallTextIconCheckCombo.populate(items);
+ }
+});
+BI.SmallTextValueCheckCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.small_text_value_check_combo", BI.SmallTextValueCheckCombo);BI.TextValueCheckComboPopup = BI.inherit(BI.Pane, {
+ _defaultConfig: function () {
+ return BI.extend(BI.TextValueCheckComboPopup.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-text-icon-popup",
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
+ });
+ },
+
+ _init: function () {
+ BI.TextValueCheckComboPopup.superclass._init.apply(this, arguments);
+ var o = this.options, self = this;
+ this.popup = BI.createWidget({
+ type: "bi.button_group",
+ items: this._formatItems(o.items),
+ chooseType: o.chooseType,
+ layouts: [{
+ type: "bi.vertical"
+ }]
+ });
+
+ this.popup.on(BI.Controller.EVENT_CHANGE, function (type, val, obj) {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ if (type === BI.Events.CLICK) {
+ self.fireEvent(BI.TextValueCheckComboPopup.EVENT_CHANGE, val, obj);
+ }
+ });
+
+ BI.createWidget({
+ type: "bi.vertical",
+ element: this,
+ items: [this.popup]
+ });
+ },
+
+ _formatItems: function (items) {
+ return BI.map(items, function (i, item) {
+ return BI.extend({
+ type: "bi.icon_text_item",
+ cls: "item-check-font bi-list-item",
+ height: 30
+ }, item);
+ });
+ },
+
+ populate: function (items) {
+ BI.TextValueCheckComboPopup.superclass.populate.apply(this, arguments);
+ this.popup.populate(this._formatItems(items));
+ },
+
+ getValue: function () {
+ return this.popup.getValue();
+ },
+
+ setValue: function (v) {
+ this.popup.setValue(v);
+ }
+
+});
+BI.TextValueCheckComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.text_value_check_combo_popup", BI.TextValueCheckComboPopup);/**
+ * @class BI.TextValueCombo
+ * @extend BI.Widget
+ * combo : text + icon, popup : text
+ * 参见场景dashboard布局方式选择
+ */
+BI.TextValueCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.TextValueCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseClass: "bi-text-value-combo",
+ height: 30,
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
+ text: "",
+ el: {}
+ })
+ },
+
+ _init: function () {
+ BI.TextValueCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget(o.el, {
+ type: "bi.select_text_trigger",
+ items: o.items,
+ height: o.height,
+ text: o.text
+ });
+ this.popup = BI.createWidget({
+ type: "bi.text_value_combo_popup",
+ chooseType: o.chooseType,
+ items: o.items
+ });
+ this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE, function () {
+ self.setValue(self.popup.getValue());
+ self.textIconCombo.hideView();
+ self.fireEvent(BI.TextValueCombo.EVENT_CHANGE, arguments);
+ });
+ this.popup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.textIconCombo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ adjustLength: 2,
+ el: this.trigger,
+ popup: {
+ el: this.popup,
+ maxHeight: 300
+ }
+ });
+ },
+
+ setValue: function (v) {
+ this.textIconCombo.setValue(v);
+ },
+
+ getValue: function () {
+ return this.textIconCombo.getValue();
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ this.textIconCombo.populate(items);
+ }
+});
+BI.TextValueCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.text_value_combo", BI.TextValueCombo);/**
+ * @class BI.SmallTextValueCombo
+ * @extend BI.Widget
+ * combo : text + icon, popup : text
+ * 参见场景dashboard布局方式选择
+ */
+BI.SmallTextValueCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.SmallTextValueCombo.superclass._defaultConfig.apply(this, arguments), {
+ width: 100,
+ height: 24,
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
+ el: {},
+ text: ""
+ })
+ },
+
+ _init: function () {
+ BI.SmallTextValueCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget(o.el, {
+ type: "bi.small_select_text_trigger",
+ items: o.items,
+ height: o.height,
+ text: o.text
+ });
+ this.popup = BI.createWidget({
+ type: "bi.text_value_combo_popup",
+ chooseType: o.chooseType,
+ items: o.items
+ });
+ this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE, function () {
+ self.setValue(self.popup.getValue());
+ self.SmallTextValueCombo.hideView();
+ self.fireEvent(BI.SmallTextValueCombo.EVENT_CHANGE);
+ });
+ this.popup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.SmallTextValueCombo = BI.createWidget({
+ type: "bi.combo",
+ element: this,
+ adjustLength: 2,
+ el: this.trigger,
+ popup: {
+ el: this.popup,
+ maxHeight: 300
+ }
+ });
+ },
+
+ setValue: function (v) {
+ this.SmallTextValueCombo.setValue(v);
+ },
+
+ getValue: function () {
+ return this.SmallTextValueCombo.getValue();
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ this.SmallTextValueCombo.populate(items);
+ }
+});
+BI.SmallTextValueCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.small_text_value_combo", BI.SmallTextValueCombo);BI.TextValueComboPopup = BI.inherit(BI.Pane, {
+ _defaultConfig: function () {
+ return BI.extend(BI.TextValueComboPopup.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-text-icon-popup",
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
+ });
+ },
+
+ _init: function () {
+ BI.TextValueComboPopup.superclass._init.apply(this, arguments);
+ var o = this.options, self = this;
+ this.popup = BI.createWidget({
+ type: "bi.button_group",
+ items: BI.createItems(o.items, {
+ type: "bi.single_select_item",
+ textAlign: o.textAlign,
+ height: 30
+ }),
+ chooseType: o.chooseType,
+ layouts: [{
+ type: "bi.vertical"
+ }]
+ });
+
+ this.popup.on(BI.Controller.EVENT_CHANGE, function (type, val, obj) {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ if (type === BI.Events.CLICK) {
+ self.fireEvent(BI.TextValueComboPopup.EVENT_CHANGE, val, obj);
+ }
+ });
+
+ BI.createWidget({
+ type: "bi.vertical",
+ element: this,
+ items: [this.popup]
+ });
+ },
+
+ populate: function (items) {
+ BI.TextValueComboPopup.superclass.populate.apply(this, arguments);
+ items = BI.createItems(items, {
+ type: "bi.single_select_item",
+ height: 30
+ });
+ this.popup.populate(items);
+ },
+
+ getValue: function () {
+ return this.popup.getValue();
+ },
+
+ setValue: function (v) {
+ this.popup.setValue(v);
+ }
+
+});
+BI.TextValueComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.text_value_combo_popup", BI.TextValueComboPopup);/**
+ * @class BI.TextValueDownListCombo
+ * @extend BI.Widget
+ */
+BI.TextValueDownListCombo = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.TextValueDownListCombo.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-text-value-down-list-combo",
+ height: 30,
+ text: ""
+ })
+ },
+
+ _init: function () {
+ BI.TextValueDownListCombo.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+
+ this._createValueMap();
+
+ this.trigger = BI.createWidget({
+ type: "bi.down_list_select_text_trigger",
+ height: o.height,
+ items: o.items
+ });
+
+ this.combo = BI.createWidget({
+ type: "bi.down_list_combo",
+ element: this,
+ chooseType: BI.Selection.Single,
+ adjustLength: 2,
+ height: o.height,
+ el: this.trigger,
+ items: BI.deepClone(o.items)
+ });
+
+ this.combo.on(BI.DownListCombo.EVENT_CHANGE, function () {
+ self.setValue(self.combo.getValue()[0].value);
+ self.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE);
+ });
+
+ this.combo.on(BI.DownListCombo.EVENT_SON_VALUE_CHANGE, function () {
+ self.setValue(self.combo.getValue()[0].childValue);
+ self.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE);
+ });
+ },
+
+ _createValueMap: function () {
+ var self = this;
+ this.valueMap = {};
+ BI.each(BI.flatten(this.options.items), function (idx, item) {
+ if (BI.has(item, "el")) {
+ BI.each(item.children, function (id, it) {
+ self.valueMap[it.value] = {value: item.el.value, childValue: it.value}
+ });
+ } else {
+ self.valueMap[item.value] = {value: item.value};
+ }
+ });
+ },
+
+ setValue: function (v) {
+ v = this.valueMap[v];
+ this.combo.setValue([v]);
+ this.trigger.setValue(v.childValue || v.value);
+ },
+
+ getValue: function () {
+ var v = this.combo.getValue()[0];
+ return [v.childValue || v.value];
+ },
+
+ populate: function (items) {
+ this.options.items = BI.flatten(items);
+ this.combo.populate(items);
+ this._createValueMap();
+ }
+});
+BI.TextValueDownListCombo.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.text_value_down_list_combo", BI.TextValueDownListCombo);/**
+ * 选择字段trigger, downlist专用
+ * 显示形式为 父亲值(儿子值)
+ *
+ * @class BI.DownListSelectTextTrigger
+ * @extends BI.Trigger
+ */
+BI.DownListSelectTextTrigger = BI.inherit(BI.Trigger, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.DownListSelectTextTrigger.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-down-list-select-text-trigger",
+ height: 24,
+ text: ""
+ });
+ },
+
+ _init: function () {
+ BI.DownListSelectTextTrigger.superclass._init.apply(this, arguments);
+ var o = this.options;
+ this.trigger = BI.createWidget({
+ type: "bi.select_text_trigger",
+ element: this,
+ height: o.height,
+ items: this._formatItemArray(o.items),
+ text: o.text
+ });
+ },
+
+ _formatItemArray: function(){
+ var sourceArray = BI.flatten(BI.deepClone(this.options.items));
+ var targetArray = [];
+ BI.each(sourceArray, function(idx, item){
+ if(BI.has(item, "el")){
+ BI.each(item.children, function(id, it){
+ it.text = item.el.text + "(" + it.text + ")";
+ });
+ targetArray = BI.concat(targetArray, item.children);
+ }else{
+ targetArray.push(item);
+ }
+ });
+ return targetArray;
+ },
+
+ setValue: function (vals) {
+ this.trigger.setValue(vals);
+ },
+
+ populate: function (items) {
+ this.trigger.populate(this._formatItemArray(items));
+ }
+});
+BI.shortcut("bi.down_list_select_text_trigger", BI.DownListSelectTextTrigger);/**
+ * 有清楚按钮的文本框
+ * Created by GUY on 2015/9/29.
+ * @class BI.SmallTextEditor
+ * @extends BI.SearchEditor
+ */
+BI.ClearEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.ClearEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: "bi-clear-editor",
+ height: 30,
+ errorText: "",
+ watermark: "",
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn
+ });
+ },
+ _init: function () {
+ BI.ClearEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height,
+ watermark: o.watermark,
+ allowBlank: true,
+ errorText: o.errorText,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker
+ });
+ this.clear = BI.createWidget({
+ type: "bi.icon_button",
+ stopEvent: true,
+ cls: "search-close-h-font"
+ });
+ this.clear.on(BI.IconButton.EVENT_CHANGE, function () {
+ self.setValue("");
+ self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.STOPEDIT);
+ self.fireEvent(BI.ClearEditor.EVENT_CLEAR);
+ });
+ BI.createWidget({
+ element: this,
+ type: "bi.htape",
+ items: [
+ {
+ el: this.editor
+ },
+ {
+ el: this.clear,
+ width: 25
+ }]
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_FOCUS);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_BLUR);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_CLICK);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self._checkClear();
+ self.fireEvent(BI.ClearEditor.EVENT_CHANGE);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.ClearEditor.EVENT_KEY_DOWN, v);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_SPACE)
+ });
+ this.editor.on(BI.Editor.EVENT_BACKSPACE, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_BACKSPACE)
+ });
+
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_VALID)
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_ERROR)
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_ENTER);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_RESTRICT)
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self._checkClear();
+ self.fireEvent(BI.ClearEditor.EVENT_EMPTY)
+ });
+ this.editor.on(BI.Editor.EVENT_REMOVE, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_REMOVE)
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_CONFIRM)
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_START);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_PAUSE);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.ClearEditor.EVENT_STOP);
+ });
+
+ this.clear.invisible();
+ },
+
+ _checkClear: function () {
+ if (!this.getValue()) {
+ this.clear.invisible();
+ } else {
+ this.clear.visible();
+ }
+ },
+
+ focus: function () {
+ this.editor.focus();
+ },
+
+ blur: function () {
+ this.editor.blur();
+ },
+
+ getValue: function () {
+ if (this.isValid()) {
+ var res = this.editor.getValue().match(/[\S]+/g);
+ return BI.isNull(res) ? "" : res[res.length - 1];
+ }
+ },
+
+ setValue: function (v) {
+ this.editor.setValue(v);
+ if (BI.isKey(v)) {
+ this.clear.visible();
+ }
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ }
+});
+BI.ClearEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.ClearEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.ClearEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.ClearEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.ClearEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.ClearEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.ClearEditor.EVENT_BACKSPACE = "EVENT_BACKSPACE";
+BI.ClearEditor.EVENT_CLEAR = "EVENT_CLEAR";
+
+BI.ClearEditor.EVENT_START = "EVENT_START";
+BI.ClearEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.ClearEditor.EVENT_STOP = "EVENT_STOP";
+BI.ClearEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.ClearEditor.EVENT_VALID = "EVENT_VALID";
+BI.ClearEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.ClearEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.ClearEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.ClearEditor.EVENT_REMOVE = "EVENT_REMOVE";
+BI.ClearEditor.EVENT_EMPTY = "EVENT_EMPTY";
+BI.shortcut("bi.clear_editor", BI.ClearEditor);/**
+ * Created by roy on 15/9/14.
+ */
+BI.SearchEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.SearchEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: "bi-search-editor bi-border",
+ height: 30,
+ errorText: "",
+ watermark: BI.i18nText("BI-Basic_Search"),
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn
+ });
+ },
+ _init: function () {
+ this.options.height -= 2;
+ BI.SearchEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height,
+ watermark: o.watermark,
+ allowBlank: true,
+ errorText: o.errorText,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker
+ });
+ this.clear = BI.createWidget({
+ type: "bi.icon_button",
+ stopEvent: true,
+ cls: "search-close-h-font"
+ });
+ this.clear.on(BI.IconButton.EVENT_CHANGE, function () {
+ self.setValue("");
+ self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.STOPEDIT);
+ self.fireEvent(BI.SearchEditor.EVENT_CLEAR);
+ });
+ BI.createWidget({
+ element: this,
+ type: "bi.htape",
+ items: [
+ {
+ el: {
+ type: "bi.center_adapt",
+ cls: "search-font",
+ items: [{
+ el: {
+ type: "bi.icon"
+ }
+ }]
+ },
+ width: 25
+ },
+ {
+ el: self.editor
+ },
+ {
+ el: this.clear,
+ width: 25
+ }
+ ]
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_FOCUS);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_BLUR);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_CLICK);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self._checkClear();
+ self.fireEvent(BI.SearchEditor.EVENT_CHANGE);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.SearchEditor.EVENT_KEY_DOWN, v);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_SPACE)
+ });
+ this.editor.on(BI.Editor.EVENT_BACKSPACE, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_BACKSPACE)
+ });
+
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_VALID)
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_ERROR)
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_ENTER);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_RESTRICT)
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self._checkClear();
+ self.fireEvent(BI.SearchEditor.EVENT_EMPTY)
+ });
+ this.editor.on(BI.Editor.EVENT_REMOVE, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_REMOVE)
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_CONFIRM)
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_START);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_PAUSE);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.SearchEditor.EVENT_STOP);
+ });
+
+ this.clear.invisible();
+ },
+
+ _checkClear: function () {
+ if (!this.getValue()) {
+ this.clear.invisible();
+ } else {
+ this.clear.visible();
+ }
+ },
+
+ focus: function () {
+ this.editor.focus();
+ },
+
+ blur: function () {
+ this.editor.blur();
+ },
+
+ getValue: function () {
+ if (this.isValid()) {
+ var res = this.editor.getValue().match(/[\S]+/g);
+ return BI.isNull(res) ? "" : res[res.length - 1];
+ }
+ },
+
+ getLastValidValue: function () {
+ return this.editor.getLastValidValue();
+ },
+
+ setValue: function (v) {
+ this.editor.setValue(v);
+ if (BI.isKey(v)) {
+ this.clear.visible();
+ }
+ },
+
+ isEditing: function () {
+ return this.editor.isEditing();
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ }
+});
+BI.SearchEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.SearchEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.SearchEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.SearchEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.SearchEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.SearchEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.SearchEditor.EVENT_BACKSPACE = "EVENT_BACKSPACE";
+BI.SearchEditor.EVENT_CLEAR = "EVENT_CLEAR";
+
+BI.SearchEditor.EVENT_START = "EVENT_START";
+BI.SearchEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.SearchEditor.EVENT_STOP = "EVENT_STOP";
+BI.SearchEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.SearchEditor.EVENT_VALID = "EVENT_VALID";
+BI.SearchEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.SearchEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.SearchEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.SearchEditor.EVENT_REMOVE = "EVENT_REMOVE";
+BI.SearchEditor.EVENT_EMPTY = "EVENT_EMPTY";
+BI.shortcut("bi.search_editor", BI.SearchEditor);/**
+ * 小号搜索框
+ * Created by GUY on 2015/9/29.
+ * @class BI.SmallSearchEditor
+ * @extends BI.SearchEditor
+ */
+BI.SmallSearchEditor = BI.inherit(BI.SearchEditor, {
+ _defaultConfig: function () {
+ var conf = BI.SmallSearchEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-small-search-editor",
+ height: 24
+ });
+ },
+
+ _init: function () {
+ BI.SmallSearchEditor.superclass._init.apply(this, arguments);
+ }
+});
+BI.shortcut("bi.small_search_editor", BI.SmallSearchEditor);/**
+ * 带标记的文本框
+ * Created by GUY on 2016/1/25.
+ * @class BI.ShelterEditor
+ * @extends BI.Widget
+ */
+BI.ShelterEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.ShelterEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-shelter-editor",
+ hgap: 4,
+ vgap: 2,
+ lgap: 0,
+ rgap: 0,
+ tgap: 0,
+ bgap: 0,
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn,
+ allowBlank: true,
+ watermark: "",
+ errorText: "",
+ height: 30,
+ textAlign: "left"
+ })
+ },
+
+ _init: function () {
+ BI.ShelterEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height,
+ hgap: o.hgap,
+ vgap: o.vgap,
+ lgap: o.lgap,
+ rgap: o.rgap,
+ tgap: o.tgap,
+ bgap: o.bgap,
+ value: o.value,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker,
+ allowBlank: o.allowBlank,
+ watermark: o.watermark,
+ errorText: o.errorText
+ });
+ this.text = BI.createWidget({
+ type: "bi.text_button",
+ cls: "shelter-editor-text",
+ title: o.title,
+ warningTitle: o.warningTitle,
+ tipType: o.tipType,
+ textAlign: o.textAlign,
+ height: o.height,
+ hgap: 4
+ });
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [{
+ el: this.text,
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0
+ }]
+ });
+ this.text.on(BI.Controller.EVENT_CHANGE, function () {
+ arguments[2] = self;
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.text.on(BI.TextButton.EVENT_CHANGE, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_CLICK_LABEL);
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_FOCUS, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_BLUR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_CLICK, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.ShelterEditor.EVENT_KEY_DOWN, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_VALID, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self._showHint();
+ self._checkText();
+ self.fireEvent(BI.ShelterEditor.EVENT_CONFIRM, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_START, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_PAUSE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_STOP, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_SPACE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self._checkText();
+ self.fireEvent(BI.ShelterEditor.EVENT_ERROR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_ENTER, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_RESTRICT, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self.fireEvent(BI.ShelterEditor.EVENT_EMPTY, arguments);
+ });
+ BI.createWidget({
+ type: "bi.vertical",
+ scrolly: false,
+ element: this,
+ items: [this.editor]
+ });
+ this._showHint();
+ self._checkText();
+ },
+
+ _checkText: function () {
+ var o = this.options;
+ if (this.editor.getValue() === "") {
+ this.text.setValue(o.watermark || "");
+ this.text.element.addClass("bi-water-mark");
+ } else {
+ this.text.setValue(this.editor.getValue());
+ this.text.element.removeClass("bi-water-mark");
+ }
+ },
+
+ _showInput: function () {
+ this.editor.visible();
+ this.text.invisible();
+ },
+
+ _showHint: function () {
+ this.editor.invisible();
+ this.text.visible();
+ },
+
+ setTitle: function (title) {
+ this.text.setTitle(title);
+ },
+
+ setWarningTitle: function (title) {
+ this.text.setWarningTitle(title);
+ },
+
+ focus: function () {
+ this._showInput();
+ this.editor.focus();
+ },
+
+ blur: function () {
+ this.editor.blur();
+ this._showHint();
+ this._checkText();
+ },
+
+ doRedMark: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ },
+
+ setErrorText: function (text) {
+ this.editor.setErrorText(text);
+ },
+
+ getErrorText: function () {
+ return this.editor.getErrorText();
+ },
+
+ isEditing: function () {
+ return this.editor.isEditing();
+ },
+
+ getLastValidValue: function () {
+ return this.editor.getLastValidValue();
+ },
+
+ setTextStyle: function (style) {
+ this.text.setStyle(style);
+ },
+
+ setValue: function (k) {
+ this.editor.setValue(k);
+ this._checkText();
+ },
+
+ getValue: function () {
+ return this.editor.getValue();
+ },
+
+ getState: function () {
+ return this.text.getValue();
+ },
+
+ setState: function (v) {
+ this._showHint();
+ this.text.setValue(v);
+ }
+});
+BI.ShelterEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.ShelterEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.ShelterEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.ShelterEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.ShelterEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.ShelterEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
+
+BI.ShelterEditor.EVENT_START = "EVENT_START";
+BI.ShelterEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.ShelterEditor.EVENT_STOP = "EVENT_STOP";
+BI.ShelterEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.ShelterEditor.EVENT_VALID = "EVENT_VALID";
+BI.ShelterEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.ShelterEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.ShelterEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.ShelterEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.ShelterEditor.EVENT_EMPTY = "EVENT_EMPTY";
+
+BI.shortcut("bi.shelter_editor", BI.ShelterEditor);/**
+ * Created by User on 2017/7/28.
+ */
+BI.SignInitialEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.SignInitialEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-sign-initial-editor",
+ hgap: 4,
+ vgap: 2,
+ lgap: 0,
+ rgap: 0,
+ tgap: 0,
+ bgap: 0,
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn,
+ allowBlank: true,
+ watermark: "",
+ errorText: "",
+ value: "",
+ text: "",
+ height: 30
+ })
+ },
+
+ _init: function () {
+ BI.SignInitialEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height,
+ hgap: o.hgap,
+ vgap: o.vgap,
+ lgap: o.lgap,
+ rgap: o.rgap,
+ tgap: o.tgap,
+ bgap: o.bgap,
+ value: o.value,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker,
+ allowBlank: o.allowBlank,
+ watermark: o.watermark,
+ errorText: o.errorText
+ });
+ this.text = BI.createWidget({
+ type: "bi.text_button",
+ cls: "sign-editor-text",
+ title: o.title,
+ warningTitle: o.warningTitle,
+ tipType: o.tipType,
+ textAlign: "left",
+ height: o.height,
+ hgap: 4,
+ handler: function () {
+ self._showInput();
+ self.editor.focus();
+ self.editor.selectAll();
+ }
+ });
+ this.text.on(BI.TextButton.EVENT_CHANGE, function () {
+ BI.nextTick(function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_CLICK_LABEL)
+ });
+ });
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [{
+ el: this.text,
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0
+ }]
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_FOCUS, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_BLUR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_CLICK, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.SignInitialEditor.EVENT_KEY_DOWN, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_VALID, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self._showHint();
+ self._checkText();
+ self.fireEvent(BI.SignInitialEditor.EVENT_CONFIRM, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_START, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_PAUSE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_STOP, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_SPACE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self._checkText();
+ self.fireEvent(BI.SignInitialEditor.EVENT_ERROR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_ENTER, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_RESTRICT, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self.fireEvent(BI.SignInitialEditor.EVENT_EMPTY, arguments);
+ });
+ BI.createWidget({
+ type: "bi.vertical",
+ scrolly: false,
+ element: this,
+ items: [this.editor]
+ });
+ this._showHint();
+ self._checkText();
+ },
+
+ _checkText: function () {
+ var o = this.options;
+ BI.nextTick(BI.bind(function () {
+ if (this.editor.getValue() === "") {
+ this.text.setValue(o.watermark || "");
+ this.text.element.addClass("bi-water-mark");
+ } else {
+ var v = this.editor.getValue();
+ v = (BI.isEmpty(v) || v == o.text) ? o.text : v + "(" + o.text + ")";
+ this.text.setValue(v);
+ this.text.element.removeClass("bi-water-mark");
+ }
+ }, this));
+ },
+
+ _showInput: function () {
+ this.editor.visible();
+ this.text.invisible();
+ },
+
+ _showHint: function () {
+ this.editor.invisible();
+ this.text.visible();
+ },
+
+ setTitle: function (title) {
+ this.text.setTitle(title);
+ },
+
+ setWarningTitle: function (title) {
+ this.text.setWarningTitle(title);
+ },
+
+ focus: function () {
+ this._showInput();
+ this.editor.focus();
+ },
+
+ blur: function () {
+ this.editor.blur();
+ this._showHint();
+ this._checkText();
+ },
+
+ doRedMark: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ },
+
+ setErrorText: function (text) {
+ this.editor.setErrorText(text);
+ },
+
+ getErrorText: function () {
+ return this.editor.getErrorText();
+ },
+
+ isEditing: function () {
+ return this.editor.isEditing();
+ },
+
+ getLastValidValue: function () {
+ return this.editor.getLastValidValue();
+ },
+
+ setValue: function (v) {
+ var o = this.options;
+ this.editor.setValue(v.value);
+ o.text = v.text || o.text;
+ this._checkText();
+ },
+
+ getValue: function () {
+ return {
+ value: this.editor.getValue(),
+ text: this.options.text
+ }
+ },
+
+ getState: function () {
+ return this.text.getValue();
+ },
+
+ setState: function (v) {
+ var o = this.options;
+ this._showHint();
+ v = (BI.isEmpty(v) || v == o.text) ? o.text : v + "(" + o.text + ")";
+ this.text.setValue(v);
+ }
+});
+BI.SignInitialEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.SignInitialEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.SignInitialEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.SignInitialEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.SignInitialEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.SignInitialEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
+
+BI.SignInitialEditor.EVENT_START = "EVENT_START";
+BI.SignInitialEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.SignInitialEditor.EVENT_STOP = "EVENT_STOP";
+BI.SignInitialEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.SignInitialEditor.EVENT_VALID = "EVENT_VALID";
+BI.SignInitialEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.SignInitialEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.SignInitialEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.SignInitialEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.SignInitialEditor.EVENT_EMPTY = "EVENT_EMPTY";
+
+BI.shortcut("bi.sign_initial_editor", BI.SignInitialEditor);/**
+ * 带标记的文本框
+ * Created by GUY on 2015/8/28.
+ * @class BI.SignEditor
+ * @extends BI.Widget
+ */
+BI.SignEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.SignEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-sign-editor",
+ hgap: 4,
+ vgap: 2,
+ lgap: 0,
+ rgap: 0,
+ tgap: 0,
+ bgap: 0,
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn,
+ allowBlank: true,
+ watermark: "",
+ errorText: "",
+ height: 30
+ })
+ },
+
+ _init: function () {
+ BI.SignEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height,
+ hgap: o.hgap,
+ vgap: o.vgap,
+ lgap: o.lgap,
+ rgap: o.rgap,
+ tgap: o.tgap,
+ bgap: o.bgap,
+ value: o.value,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker,
+ allowBlank: o.allowBlank,
+ watermark: o.watermark,
+ errorText: o.errorText
+ });
+ this.text = BI.createWidget({
+ type: "bi.text_button",
+ cls: "sign-editor-text",
+ title: o.title,
+ warningTitle: o.warningTitle,
+ tipType: o.tipType,
+ textAlign: "left",
+ height: o.height,
+ hgap: 4,
+ handler: function () {
+ self._showInput();
+ self.editor.focus();
+ self.editor.selectAll();
+ }
+ });
+ this.text.on(BI.TextButton.EVENT_CHANGE, function () {
+ BI.nextTick(function () {
+ self.fireEvent(BI.SignEditor.EVENT_CLICK_LABEL)
+ });
+ });
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [{
+ el: this.text,
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0
+ }]
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.SignEditor.EVENT_FOCUS, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.SignEditor.EVENT_BLUR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.SignEditor.EVENT_CLICK, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self.fireEvent(BI.SignEditor.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.SignEditor.EVENT_KEY_DOWN, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.SignEditor.EVENT_VALID, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self._showHint();
+ self._checkText();
+ self.fireEvent(BI.SignEditor.EVENT_CONFIRM, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.SignEditor.EVENT_START, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.SignEditor.EVENT_PAUSE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.SignEditor.EVENT_STOP, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function () {
+ self.fireEvent(BI.SignEditor.EVENT_SPACE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self._checkText();
+ self.fireEvent(BI.SignEditor.EVENT_ERROR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.SignEditor.EVENT_ENTER, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.SignEditor.EVENT_RESTRICT, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self.fireEvent(BI.SignEditor.EVENT_EMPTY, arguments);
+ });
+ BI.createWidget({
+ type: "bi.vertical",
+ scrolly: false,
+ element: this,
+ items: [this.editor]
+ });
+ this._showHint();
+ self._checkText();
+ },
+
+ _checkText: function () {
+ var o = this.options;
+ BI.nextTick(BI.bind(function () {
+ if (this.editor.getValue() === "") {
+ this.text.setValue(o.watermark || "");
+ this.text.element.addClass("bi-water-mark");
+ } else {
+ this.text.setValue(this.editor.getValue());
+ this.text.element.removeClass("bi-water-mark");
+ }
+ }, this));
+ },
+
+ _showInput: function () {
+ this.editor.visible();
+ this.text.invisible();
+ },
+
+ _showHint: function () {
+ this.editor.invisible();
+ this.text.visible();
+ },
+
+ setTitle: function (title) {
+ this.text.setTitle(title);
+ },
+
+ setWarningTitle: function (title) {
+ this.text.setWarningTitle(title);
+ },
+
+ focus: function () {
+ this._showInput();
+ this.editor.focus();
+ },
+
+ blur: function () {
+ this.editor.blur();
+ this._showHint();
+ this._checkText();
+ },
+
+ doRedMark: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ },
+
+ setErrorText: function (text) {
+ this.editor.setErrorText(text);
+ },
+
+ getErrorText: function () {
+ return this.editor.getErrorText();
+ },
+
+ isEditing: function () {
+ return this.editor.isEditing();
+ },
+
+ getLastValidValue: function () {
+ return this.editor.getLastValidValue();
+ },
+
+ setValue: function (k) {
+ this.editor.setValue(k);
+ this._checkText();
+ },
+
+ getValue: function () {
+ return this.editor.getValue();
+ },
+
+ getState: function () {
+ return this.text.getValue();
+ },
+
+ setState: function (v) {
+ this._showHint();
+ this.text.setValue(v);
+ }
+});
+BI.SignEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.SignEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.SignEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.SignEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.SignEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.SignEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
+
+BI.SignEditor.EVENT_START = "EVENT_START";
+BI.SignEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.SignEditor.EVENT_STOP = "EVENT_STOP";
+BI.SignEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.SignEditor.EVENT_VALID = "EVENT_VALID";
+BI.SignEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.SignEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.SignEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.SignEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.SignEditor.EVENT_EMPTY = "EVENT_EMPTY";
+
+BI.shortcut("bi.sign_editor", BI.SignEditor);/**
+ * guy
+ * 记录状态的输入框
+ * @class BI.StateEditor
+ * @extends BI.Single
+ */
+BI.StateEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.StateEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-state-editor",
+ hgap: 4,
+ vgap: 2,
+ lgap: 0,
+ rgap: 0,
+ tgap: 0,
+ bgap: 0,
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn,
+ allowBlank: true,
+ watermark: "",
+ errorText: "",
+ height: 30
+ })
+ },
+
+ _init: function () {
+ BI.StateEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height,
+ hgap: o.hgap,
+ vgap: o.vgap,
+ lgap: o.lgap,
+ rgap: o.rgap,
+ tgap: o.tgap,
+ bgap: o.bgap,
+ value: o.value,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker,
+ allowBlank: o.allowBlank,
+ watermark: o.watermark,
+ errorText: o.errorText
+ });
+ this.text = BI.createWidget({
+ type: "bi.text_button",
+ cls: "state-editor-infinite-text bi-disabled",
+ textAlign: "left",
+ height: o.height,
+ text: BI.i18nText("BI-Basic_Unrestricted"),
+ hgap: 4,
+ handler: function () {
+ self._showInput();
+ self.editor.focus();
+ self.editor.setValue("");
+ }
+ });
+ this.text.on(BI.TextButton.EVENT_CHANGE, function () {
+ BI.nextTick(function () {
+ self.fireEvent(BI.StateEditor.EVENT_CLICK_LABEL);
+ });
+ });
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [{
+ el: this.text,
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0
+ }]
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.StateEditor.EVENT_FOCUS, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.StateEditor.EVENT_BLUR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.StateEditor.EVENT_CLICK, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self.fireEvent(BI.StateEditor.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.StateEditor.EVENT_KEY_DOWN, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.StateEditor.EVENT_VALID, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self._showHint();
+ self.fireEvent(BI.StateEditor.EVENT_CONFIRM, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.StateEditor.EVENT_START, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.StateEditor.EVENT_PAUSE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.StateEditor.EVENT_STOP, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function () {
+ self.fireEvent(BI.StateEditor.EVENT_SPACE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self.fireEvent(BI.StateEditor.EVENT_ERROR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.StateEditor.EVENT_ENTER, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.StateEditor.EVENT_RESTRICT, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self.fireEvent(BI.StateEditor.EVENT_EMPTY, arguments);
+ });
+ BI.createWidget({
+ type: "bi.vertical",
+ scrolly: false,
+ element: this,
+ items: [this.editor]
+ });
+ this._showHint();
+ },
+
+ doRedMark: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ focus: function () {
+ if (this.options.disabled === false) {
+ this._showInput();
+ this.editor.focus();
+ }
+ },
+
+ blur: function () {
+ this.editor.blur();
+ this._showHint();
+ },
+
+ _showInput: function () {
+ this.editor.visible();
+ this.text.invisible();
+ },
+
+ _showHint: function () {
+ this.editor.invisible();
+ this.text.visible();
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ },
+
+ setErrorText: function (text) {
+ this.editor.setErrorText(text);
+ },
+
+ getErrorText: function () {
+ return this.editor.getErrorText();
+ },
+
+ isEditing: function () {
+ return this.editor.isEditing();
+ },
+
+ getLastValidValue: function () {
+ return this.editor.getLastValidValue();
+ },
+
+ setValue: function (k) {
+ this.editor.setValue(k);
+ },
+
+ getValue: function () {
+ return this.editor.getValue();
+ },
+
+ getState: function () {
+ return this.editor.getValue().match(/[^\s]+/g);
+ },
+
+ setState: function (v) {
+ BI.StateEditor.superclass.setValue.apply(this, arguments);
+ if (BI.isNumber(v)) {
+ if (v === BI.Selection.All) {
+ this.text.setText(BI.i18nText("BI-Select_All"));
+ this.text.setTitle("");
+ this.text.element.removeClass("state-editor-infinite-text");
+ } else if (v === BI.Selection.Multi) {
+ this.text.setText(BI.i18nText("BI-Select_Part"));
+ this.text.setTitle("");
+ this.text.element.removeClass("state-editor-infinite-text");
+ } else {
+ this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
+ this.text.setTitle("");
+ this.text.element.addClass("state-editor-infinite-text");
+ }
+ return;
+ }
+ if (BI.isString(v)) {
+ // if (BI.isEmpty(v)) {
+ // this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
+ // this.text.setTitle("");
+ // this.text.element.addClass("state-editor-infinite-text");
+ // } else {
+ this.text.setText(v);
+ this.text.setTitle(v);
+ this.text.element.removeClass("state-editor-infinite-text");
+ // }
+ return;
+ }
+ if (BI.isArray(v)) {
+ if (BI.isEmpty(v)) {
+ this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
+ this.text.element.addClass("state-editor-infinite-text");
+ } else if (v.length === 1) {
+ this.text.setText(v[0]);
+ this.text.setTitle(v[0]);
+ this.text.element.removeClass("state-editor-infinite-text");
+ } else {
+ this.text.setText(BI.i18nText("BI-Select_Part"));
+ this.text.setTitle("");
+ this.text.element.removeClass("state-editor-infinite-text");
+ }
+ }
+ }
+});
+BI.StateEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.StateEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.StateEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.StateEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.StateEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.StateEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
+
+BI.StateEditor.EVENT_START = "EVENT_START";
+BI.StateEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.StateEditor.EVENT_STOP = "EVENT_STOP";
+BI.StateEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.StateEditor.EVENT_VALID = "EVENT_VALID";
+BI.StateEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.StateEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.StateEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.StateEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.StateEditor.EVENT_EMPTY = "EVENT_EMPTY";
+
+BI.shortcut("bi.state_editor", BI.StateEditor);/**
+ * 无限制-已选择状态输入框
+ * Created by GUY on 2016/5/18.
+ * @class BI.SimpleStateEditor
+ * @extends BI.Single
+ */
+BI.SimpleStateEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.SimpleStateEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-simple-state-editor",
+ hgap: 4,
+ vgap: 2,
+ lgap: 0,
+ rgap: 0,
+ tgap: 0,
+ bgap: 0,
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn,
+ mouseOut: false,
+ allowBlank: true,
+ watermark: "",
+ errorText: "",
+ height: 30
+ })
+ },
+
+ _init: function () {
+ BI.SimpleStateEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height,
+ hgap: o.hgap,
+ vgap: o.vgap,
+ lgap: o.lgap,
+ rgap: o.rgap,
+ tgap: o.tgap,
+ bgap: o.bgap,
+ value: o.value,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker,
+ allowBlank: o.allowBlank,
+ watermark: o.watermark,
+ errorText: o.errorText
+ });
+ this.text = BI.createWidget({
+ type: "bi.text_button",
+ cls: "state-editor-infinite-text bi-disabled",
+ textAlign: "left",
+ height: o.height,
+ text: BI.i18nText("BI-Basic_Unrestricted"),
+ hgap: 4,
+ handler: function () {
+ self._showInput();
+ self.editor.focus();
+ self.editor.setValue("");
+ }
+ });
+ this.text.on(BI.TextButton.EVENT_CHANGE, function () {
+ BI.nextTick(function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_CLICK_LABEL);
+ });
+ });
+ BI.createWidget({
+ type: "bi.absolute",
+ element: this,
+ items: [{
+ el: this.text,
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0
+ }]
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_FOCUS, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_BLUR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_CLICK, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_CHANGE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_KEY_DOWN, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_VALID, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self._showHint();
+ self.fireEvent(BI.SimpleStateEditor.EVENT_CONFIRM, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_START, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_PAUSE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_STOP, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_SPACE, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_ERROR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_ENTER, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_RESTRICT, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self.fireEvent(BI.SimpleStateEditor.EVENT_EMPTY, arguments);
+ });
+ BI.createWidget({
+ type: "bi.vertical",
+ scrolly: false,
+ element: this,
+ items: [this.editor]
+ });
+ this._showHint();
+ },
+
+ doRedMark: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doRedMark.apply(this.text, arguments);
+ },
+
+ unRedMark: function () {
+ this.text.unRedMark.apply(this.text, arguments);
+ },
+
+ doHighLight: function () {
+ if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
+ return;
+ }
+ this.text.doHighLight.apply(this.text, arguments);
+ },
+
+ unHighLight: function () {
+ this.text.unHighLight.apply(this.text, arguments);
+ },
+
+ focus: function () {
+ this._showInput();
+ this.editor.focus();
+ },
+
+ blur: function () {
+ this.editor.blur();
+ this._showHint();
+ },
+
+ _showInput: function () {
+ this.editor.visible();
+ this.text.invisible();
+ },
+
+ _showHint: function () {
+ this.editor.invisible();
+ this.text.visible();
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ },
+
+ setErrorText: function (text) {
+ this.editor.setErrorText(text);
+ },
+
+ getErrorText: function () {
+ return this.editor.getErrorText();
+ },
+
+ isEditing: function () {
+ return this.editor.isEditing();
+ },
+
+ getLastValidValue: function () {
+ return this.editor.getLastValidValue();
+ },
+
+ setValue: function (k) {
+ this.editor.setValue(k);
+ },
+
+ getValue: function () {
+ return this.editor.getValue();
+ },
+
+ getState: function () {
+ return this.editor.getValue().match(/[^\s]+/g);
+ },
+
+ setState: function (v) {
+ BI.SimpleStateEditor.superclass.setValue.apply(this, arguments);
+ if (BI.isNumber(v)) {
+ if (v === BI.Selection.All) {
+ this.text.setText(BI.i18nText("BI-Already_Selected"));
+ this.text.element.removeClass("state-editor-infinite-text");
+ } else if (v === BI.Selection.Multi) {
+ this.text.setText(BI.i18nText("BI-Already_Selected"));
+ this.text.element.removeClass("state-editor-infinite-text");
+ } else {
+ this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
+ this.text.element.addClass("state-editor-infinite-text");
+ }
+ return;
+ }
+ if (!BI.isArray(v) || v.length === 1) {
+ this.text.setText(v);
+ this.text.setTitle(v);
+ this.text.element.removeClass("state-editor-infinite-text");
+ } else if (BI.isEmpty(v)) {
+ this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
+ this.text.element.addClass("state-editor-infinite-text");
+ } else {
+ this.text.setText(BI.i18nText("BI-Already_Selected"));
+ this.text.element.removeClass("state-editor-infinite-text");
+ }
+ }
+});
+BI.SimpleStateEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.SimpleStateEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.SimpleStateEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.SimpleStateEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.SimpleStateEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.SimpleStateEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
+
+BI.SimpleStateEditor.EVENT_START = "EVENT_START";
+BI.SimpleStateEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.SimpleStateEditor.EVENT_STOP = "EVENT_STOP";
+BI.SimpleStateEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.SimpleStateEditor.EVENT_VALID = "EVENT_VALID";
+BI.SimpleStateEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.SimpleStateEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.SimpleStateEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.SimpleStateEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.SimpleStateEditor.EVENT_EMPTY = "EVENT_EMPTY";
+
+BI.shortcut("bi.simple_state_editor", BI.SimpleStateEditor);/**
+ * guy
+ * @class BI.TextEditor
+ * @extends BI.Single
+ */
+BI.TextEditor = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ var conf = BI.TextEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ extraCls: "bi-text-editor bi-border",
+ hgap: 4,
+ vgap: 2,
+ lgap: 0,
+ rgap: 0,
+ tgap: 0,
+ bgap: 0,
+ validationChecker: BI.emptyFn,
+ quitChecker: BI.emptyFn,
+ allowBlank: false,
+ watermark: "",
+ errorText: "",
+ height: 30
+ })
+ },
+
+ _init: function () {
+ BI.TextEditor.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ if (BI.isNumber(o.height)) {
+ this.element.css({height: o.height - 2});
+ }
+ if (BI.isNumber(o.width)) {
+ this.element.css({width: o.width - 2});
+ }
+ this.editor = BI.createWidget({
+ type: "bi.editor",
+ height: o.height - 2,
+ hgap: o.hgap,
+ vgap: o.vgap,
+ lgap: o.lgap,
+ rgap: o.rgap,
+ tgap: o.tgap,
+ bgap: o.bgap,
+ value: o.value,
+ validationChecker: o.validationChecker,
+ quitChecker: o.quitChecker,
+ allowBlank: o.allowBlank,
+ watermark: o.watermark,
+ errorText: o.errorText
+ });
+ this.editor.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ this.editor.on(BI.Editor.EVENT_FOCUS, function () {
+ self.fireEvent(BI.TextEditor.EVENT_FOCUS);
+ });
+ this.editor.on(BI.Editor.EVENT_BLUR, function () {
+ self.fireEvent(BI.TextEditor.EVENT_BLUR);
+ });
+ this.editor.on(BI.Editor.EVENT_CLICK, function () {
+ self.fireEvent(BI.TextEditor.EVENT_CLICK);
+ });
+ this.editor.on(BI.Editor.EVENT_CHANGE, function () {
+ self.fireEvent(BI.TextEditor.EVENT_CHANGE);
+ });
+ this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
+ self.fireEvent(BI.TextEditor.EVENT_KEY_DOWN);
+ });
+ this.editor.on(BI.Editor.EVENT_SPACE, function (v) {
+ self.fireEvent(BI.TextEditor.EVENT_SPACE);
+ });
+ this.editor.on(BI.Editor.EVENT_BACKSPACE, function (v) {
+ self.fireEvent(BI.TextEditor.EVENT_BACKSPACE);
+ });
+
+
+ this.editor.on(BI.Editor.EVENT_VALID, function () {
+ self.fireEvent(BI.TextEditor.EVENT_VALID);
+ });
+ this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
+ self.fireEvent(BI.TextEditor.EVENT_CONFIRM);
+ });
+ this.editor.on(BI.Editor.EVENT_REMOVE, function (v) {
+ self.fireEvent(BI.TextEditor.EVENT_REMOVE);
+ });
+ this.editor.on(BI.Editor.EVENT_START, function () {
+ self.fireEvent(BI.TextEditor.EVENT_START);
+ });
+ this.editor.on(BI.Editor.EVENT_PAUSE, function () {
+ self.fireEvent(BI.TextEditor.EVENT_PAUSE);
+ });
+ this.editor.on(BI.Editor.EVENT_STOP, function () {
+ self.fireEvent(BI.TextEditor.EVENT_STOP);
+ });
+ this.editor.on(BI.Editor.EVENT_ERROR, function () {
+ self.fireEvent(BI.TextEditor.EVENT_ERROR, arguments);
+ });
+ this.editor.on(BI.Editor.EVENT_ENTER, function () {
+ self.fireEvent(BI.TextEditor.EVENT_ENTER);
+ });
+ this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
+ self.fireEvent(BI.TextEditor.EVENT_RESTRICT);
+ });
+ this.editor.on(BI.Editor.EVENT_EMPTY, function () {
+ self.fireEvent(BI.TextEditor.EVENT_EMPTY);
+ });
+ BI.createWidget({
+ type: "bi.vertical",
+ scrolly: false,
+ element: this,
+ items: [this.editor]
+ });
+ },
+
+ focus: function () {
+ this.editor.focus();
+ },
+
+ blur: function () {
+ this.editor.blur();
+ },
+
+ setErrorText: function (text) {
+ this.editor.setErrorText(text);
+ },
+
+ getErrorText: function () {
+ return this.editor.getErrorText();
+ },
+
+ isValid: function () {
+ return this.editor.isValid();
+ },
+
+ setValue: function (v) {
+ this.editor.setValue(v);
+ },
+
+ getValue: function () {
+ return this.editor.getValue();
+ }
+});
+BI.TextEditor.EVENT_CHANGE = "EVENT_CHANGE";
+BI.TextEditor.EVENT_FOCUS = "EVENT_FOCUS";
+BI.TextEditor.EVENT_BLUR = "EVENT_BLUR";
+BI.TextEditor.EVENT_CLICK = "EVENT_CLICK";
+BI.TextEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
+BI.TextEditor.EVENT_SPACE = "EVENT_SPACE";
+BI.TextEditor.EVENT_BACKSPACE = "EVENT_BACKSPACE";
+
+BI.TextEditor.EVENT_START = "EVENT_START";
+BI.TextEditor.EVENT_PAUSE = "EVENT_PAUSE";
+BI.TextEditor.EVENT_STOP = "EVENT_STOP";
+BI.TextEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
+BI.TextEditor.EVENT_VALID = "EVENT_VALID";
+BI.TextEditor.EVENT_ERROR = "EVENT_ERROR";
+BI.TextEditor.EVENT_ENTER = "EVENT_ENTER";
+BI.TextEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
+BI.TextEditor.EVENT_REMOVE = "EVENT_REMOVE";
+BI.TextEditor.EVENT_EMPTY = "EVENT_EMPTY";
+
+BI.shortcut("bi.text_editor", BI.TextEditor);/**
+ * 小号搜索框
+ * Created by GUY on 2015/9/29.
+ * @class BI.SmallTextEditor
+ * @extends BI.SearchEditor
+ */
+BI.SmallTextEditor = BI.inherit(BI.TextEditor, {
+ _defaultConfig: function () {
+ var conf = BI.SmallTextEditor.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-small-text-editor",
+ height: 25
+ });
+ },
+
+ _init: function () {
+ BI.SmallTextEditor.superclass._init.apply(this, arguments);
+ }
+});
+BI.shortcut("bi.small_text_editor", BI.SmallTextEditor);/**
+ * 有确定取消按钮的弹出层
+ * @class BI.BarFloatSection
+ * @extends BI.FloatSection
+ * @abstract
+ */
+BI.BarFloatSection = BI.inherit(BI.FloatSection, {
+ _defaultConfig: function () {
+ return BI.extend(BI.BarFloatSection.superclass._defaultConfig.apply(this, arguments), {
+ btns: [BI.i18nText(BI.i18nText("BI-Basic_Sure")), BI.i18nText("BI-Basic_Cancel")]
+ })
+ },
+
+ _init: function () {
+ BI.BarFloatSection.superclass._init.apply(this, arguments);
+ var self = this;
+ var flatten = ["_init", "_defaultConfig", "_vessel", "_render", "getName", "listenEnd", "local", "refresh", "load", "change"];
+ flatten = BI.makeObject(flatten, true);
+ BI.each(this.constructor.caller.caller.caller.caller.prototype, function (key) {
+ if (flatten[key]) {
+ return;
+ }
+ var f = self[key];
+ if (BI.isFunction(f)) {
+ self[key] = BI.bind(function () {
+ if (this.model._start === true) {
+ this._F.push({f: f, arg: arguments});
+ return;
+ }
+ return f.apply(this, arguments);
+ }, self);
+ }
+ })
+ },
+
+ rebuildSouth: function (south) {
+ var self = this, o = this.options;
+ this.sure = BI.createWidget({
+ type: 'bi.button',
+ text: this.options.btns[0],
+ height: 30,
+ value: 0,
+ handler: function (v) {
+ self.end();
+ self.close(v);
+ }
+ });
+ this.cancel = BI.createWidget({
+ type: 'bi.button',
+ text: this.options.btns[1],
+ height: 30,
+ value: 1,
+ level: 'ignore',
+ handler: function (v) {
+ self.close(v);
+ }
+ });
+ BI.createWidget({
+ type: 'bi.right_vertical_adapt',
+ element: south,
+ hgap: 5,
+ items: [this.cancel, this.sure]
+ });
+ }
+});
+
+/**
+ * 有确定取消按钮的弹出层
+ * @class BI.BarPopoverSection
+ * @extends BI.PopoverSection
+ * @abstract
+ */
+BI.BarPopoverSection = BI.inherit(BI.PopoverSection, {
+ _defaultConfig: function () {
+ return BI.extend(BI.BarPopoverSection.superclass._defaultConfig.apply(this, arguments), {
+ btns: [BI.i18nText(BI.i18nText("BI-Basic_Sure")), BI.i18nText(BI.i18nText("BI-Basic_Cancel"))]
+ })
+ },
+
+ _init: function () {
+ BI.BarPopoverSection.superclass._init.apply(this, arguments);
+ },
+
+ rebuildSouth: function (south) {
+ var self = this, o = this.options;
+ this.sure = BI.createWidget({
+ type: 'bi.button',
+ text: this.options.btns[0],
+ warningTitle: o.warningTitle,
+ height: 30,
+ value: 0,
+ handler: function (v) {
+ self.end();
+ self.close(v);
+ }
+ });
+ this.cancel = BI.createWidget({
+ type: 'bi.button',
+ text: this.options.btns[1],
+ height: 30,
+ value: 1,
+ level: 'ignore',
+ handler: function (v) {
+ self.close(v);
+ }
+ });
+ BI.createWidget({
+ type: 'bi.right_vertical_adapt',
+ element: south,
+ hgap: 5,
+ items: [this.cancel, this.sure]
+ });
+ },
+
+ setConfirmButtonEnable: function(v){
+ this.sure.setEnable(!!v);
+ }
+});/**
+ * 下拉框弹出层的多选版本,toolbar带有若干按钮, zIndex在1000w
+ * @class BI.MultiPopupView
+ * @extends BI.Widget
+ */
+
+BI.MultiPopupView = BI.inherit(BI.PopupView, {
+
+ _defaultConfig: function () {
+ var conf = BI.MultiPopupView.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-multi-list-view",
+ buttons: [BI.i18nText("BI-Basic_Sure")]
+ })
+ },
+
+ _init: function () {
+ BI.MultiPopupView.superclass._init.apply(this, arguments);
+ },
+
+ _createToolBar: function () {
+ var o = this.options, self = this;
+ if (o.buttons.length === 0) {
+ return;
+ }
+
+ var text = []; //构造[{text:content},……]
+ BI.each(o.buttons, function (idx, item) {
+ text.push({
+ text: item,
+ value: idx
+ })
+ });
+
+ this.buttongroup = BI.createWidget({
+ type: "bi.button_group",
+ cls: "list-view-toolbar bi-high-light bi-border-top",
+ height: 30,
+ items: BI.createItems(text, {
+ type: "bi.text_button",
+ once: false,
+ shadow: true,
+ isShadowShowingOnSelected: true
+ }),
+ layouts: [{
+ type: "bi.center",
+ hgap: 0,
+ vgap: 0
+ }]
+ });
+
+ this.buttongroup.on(BI.ButtonGroup.EVENT_CHANGE, function (value, obj) {
+ self.fireEvent(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON, value, obj);
+ });
+
+ return this.buttongroup;
+ }
+
+});
+
+BI.MultiPopupView.EVENT_CHANGE = "EVENT_CHANGE";
+BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON";
+
+BI.shortcut("bi.multi_popup_view", BI.MultiPopupView);/**
+ * 可以理解为MultiPopupView和Panel两个面板的结合体
+ * @class BI.PopupPanel
+ * @extends BI.MultiPopupView
+ */
+
+BI.PopupPanel = BI.inherit(BI.MultiPopupView, {
+
+ _defaultConfig: function () {
+ var conf = BI.PopupPanel.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-popup-panel",
+ title: ""
+ })
+ },
+
+ _init: function () {
+ BI.PopupPanel.superclass._init.apply(this, arguments);
+ },
+
+ _createTool: function () {
+ var self = this, o = this.options;
+ var close = BI.createWidget({
+ type: "bi.icon_button",
+ cls: "close-h-font",
+ width: 25,
+ height: 25
+ });
+ close.on(BI.IconButton.EVENT_CHANGE, function () {
+ self.setVisible(false);
+ self.fireEvent(BI.PopupPanel.EVENT_CLOSE);
+ });
+ return BI.createWidget({
+ type: "bi.htape",
+ cls: "popup-panel-title bi-background bi-border",
+ height: 25,
+ items: [{
+ el: {
+ type: "bi.label",
+ textAlign: "left",
+ text: o.title,
+ height: 25,
+ lgap: 10
+ }
+ }, {
+ el: close,
+ width: 25
+ }]
+ });
+ }
+});
+
+BI.PopupPanel.EVENT_CHANGE = "EVENT_CHANGE";
+BI.PopupPanel.EVENT_CLOSE = "EVENT_CLOSE";
+BI.PopupPanel.EVENT_CLICK_TOOLBAR_BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON";
+
+BI.shortcut("bi.popup_panel", BI.PopupPanel);/**
+ * list面板
+ *
+ * Created by GUY on 2015/10/30.
+ * @class BI.ListPane
+ * @extends BI.Pane
+ */
+BI.ListPane = BI.inherit(BI.Pane, {
+
+ _defaultConfig: function () {
+ var conf = BI.ListPane.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-list-pane",
+ logic: {
+ dynamic: true
+ },
+ lgap: 0,
+ rgap: 0,
+ tgap: 0,
+ bgap: 0,
+ vgap: 0,
+ hgap: 0,
+ items: [],
+ itemsCreator: BI.emptyFn,
+ hasNext: BI.emptyFn,
+ onLoaded: BI.emptyFn,
+ el: {
+ type: "bi.button_group"
+ }
+ })
+ },
+ _init: function () {
+ BI.ListPane.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+
+ this.button_group = BI.createWidget(o.el, {
+ type: "bi.button_group",
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
+ behaviors: {},
+ items: o.items,
+ itemsCreator: function (op, calback) {
+ if (op.times === 1) {
+ self.empty();
+ BI.nextTick(function () {
+ self.loading()
+ });
+ }
+ o.itemsCreator(op, function () {
+ calback.apply(self, arguments);
+ op.times === 1 && BI.nextTick(function () {
+ self.loaded();
+ });
+ });
+ },
+ hasNext: o.hasNext,
+ layouts: [{
+ type: "bi.vertical"
+ }]
+ });
+
+ this.button_group.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ if (type === BI.Events.CLICK) {
+ self.fireEvent(BI.ListPane.EVENT_CHANGE, value, obj);
+ }
+ });
+ this.check();
+
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Top), BI.extend({
+ scrolly: true,
+ lgap: o.lgap,
+ rgap: o.rgap,
+ tgap: o.tgap,
+ bgap: o.bgap,
+ vgap: o.vgap,
+ hgap: o.hgap
+ }, o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Top, this.button_group)
+ }))));
+ },
+
+ hasPrev: function () {
+ return this.button_group.hasPrev && this.button_group.hasPrev();
+ },
+
+ hasNext: function () {
+ return this.button_group.hasNext && this.button_group.hasNext();
+ },
+
+ prependItems: function (items) {
+ this.options.items = items.concat(this.options.items);
+ this.button_group.prependItems.apply(this.button_group, arguments);
+ this.check();
+ },
+
+ addItems: function (items) {
+ this.options.items = this.options.items.concat(items);
+ this.button_group.addItems.apply(this.button_group, arguments);
+ this.check();
+ },
+
+ removeItemAt: function (indexes) {
+ indexes = indexes || [];
+ BI.removeAt(this.options.items, indexes);
+ this.button_group.removeItemAt.apply(this.button_group, arguments);
+ this.check();
+ },
+
+ populate: function (items) {
+ var self = this, o = this.options;
+ if (arguments.length === 0 && (BI.isFunction(this.button_group.attr("itemsCreator")))) {//接管loader的populate方法
+ this.button_group.attr("itemsCreator").apply(this, [{times: 1}, function () {
+ if (arguments.length === 0) {
+ throw new Error("参数不能为空");
+ }
+ self.populate.apply(self, arguments);
+ }]);
+ return;
+ }
+ BI.ListPane.superclass.populate.apply(this, arguments);
+ this.button_group.populate.apply(this.button_group, arguments);
+ },
+
+ empty: function () {
+ this.button_group.empty();
+ },
+
+ setNotSelectedValue: function () {
+ this.button_group.setNotSelectedValue.apply(this.button_group, arguments);
+ },
+
+ getNotSelectedValue: function () {
+ return this.button_group.getNotSelectedValue();
+ },
+
+ setValue: function () {
+ this.button_group.setValue.apply(this.button_group, arguments);
+ },
+
+ getValue: function () {
+ return this.button_group.getValue.apply(this.button_group, arguments);
+ },
+
+ getAllButtons: function () {
+ return this.button_group.getAllButtons();
+ },
+
+ getAllLeaves: function () {
+ return this.button_group.getAllLeaves();
+ },
+
+ getSelectedButtons: function () {
+ return this.button_group.getSelectedButtons();
+ },
+
+ getNotSelectedButtons: function () {
+ return this.button_group.getNotSelectedButtons();
+ },
+
+ getIndexByValue: function (value) {
+ return this.button_group.getIndexByValue(value);
+ },
+
+ getNodeById: function (id) {
+ return this.button_group.getNodeById(id);
+ },
+
+ getNodeByValue: function (value) {
+ return this.button_group.getNodeByValue(value);
+ }
+});
+BI.ListPane.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.list_pane", BI.ListPane);/**
+ * 带有标题栏的pane
+ * @class BI.Panel
+ * @extends BI.Widget
+ */
+BI.Panel = BI.inherit(BI.Widget,{
+ _defaultConfig : function(){
+ return BI.extend(BI.Panel.superclass._defaultConfig.apply(this,arguments),{
+ baseCls: "bi-panel bi-border",
+ title:"",
+ titleButtons:[],
+ el:{},
+ logic:{
+ dynamic: false
+ }
+ });
+ },
+
+ _init:function(){
+ BI.Panel.superclass._init.apply(this,arguments);
+ var o = this.options;
+
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic("vertical", BI.extend(o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection("top", this._createTitle()
+ ,this.options.el)
+ }))));
+ },
+
+ _createTitle:function(){
+ var self = this, o = this.options;
+ this.text = BI.createWidget({
+ type: "bi.label",
+ cls: "panel-title-text",
+ text: o.title,
+ height: 30
+ });
+
+ this.button_group = BI.createWidget({
+ type:"bi.button_group",
+ items: o.titleButtons,
+ layouts: [{
+ type: "bi.center_adapt",
+ lgap:10
+ }]
+ });
+
+ this.button_group.on(BI.Controller.EVENT_CHANGE, function(){
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ this.button_group.on(BI.ButtonGroup.EVENT_CHANGE, function(value, obj){
+ self.fireEvent(BI.Panel.EVENT_CHANGE, value, obj);
+ });
+
+ return {
+ el: {
+ type: "bi.left_right_vertical_adapt",
+ cls: "panel-title bi-tips bi-border-bottom bi-background",
+ height: 30,
+ items: {
+ left: [this.text],
+ right: [this.button_group]
+ },
+ lhgap: 10,
+ rhgap: 10
+ },
+ height: 30
+ };
+ },
+
+ setTitle: function(title){
+ this.text.setValue(title);
+ }
+});
+BI.Panel.EVENT_CHANGE = "Panel.EVENT_CHANGE";
+
+BI.shortcut("bi.panel",BI.Panel);/**
+ * 选择列表
+ *
+ * Created by GUY on 2015/11/1.
+ * @class BI.SelectList
+ * @extends BI.Widget
+ */
+BI.SelectList = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.SelectList.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-select-list",
+ direction: BI.Direction.Top,//toolbar的位置
+ logic: {
+ dynamic: true
+ },
+ items: [],
+ itemsCreator: BI.emptyFn,
+ hasNext: BI.emptyFn,
+ onLoaded: BI.emptyFn,
+ toolbar: {
+ type: "bi.multi_select_bar"
+ },
+ el: {
+ type: "bi.list_pane"
+ }
+ })
+ },
+ _init: function () {
+ BI.SelectList.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+
+ //全选
+ this.toolbar = BI.createWidget(o.toolbar);
+ this.toolbar.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
+ var isAllSelected = this.isSelected();
+ if (type === BI.Events.CLICK) {
+ self.setAllSelected(isAllSelected);
+ self.fireEvent(BI.SelectList.EVENT_CHANGE, value, obj);
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ this.list = BI.createWidget(o.el, {
+ type: "bi.list_pane",
+ items: o.items,
+ itemsCreator: function (op, callback) {
+ op.times === 1 && self.toolbar.setVisible(false);
+ o.itemsCreator(op, function (items) {
+ callback.apply(self, arguments);
+ if (op.times === 1) {
+ self.toolbar.setVisible(items && items.length > 0);
+ self.toolbar.setEnable(items && items.length > 0);
+ }
+ self._checkAllSelected();
+ });
+ },
+ onLoaded: o.onLoaded,
+ hasNext: o.hasNext
+ });
+
+ this.list.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
+ if (type === BI.Events.CLICK) {
+ self._checkAllSelected();
+ self.fireEvent(BI.SelectList.EVENT_CHANGE, value, obj);
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(o.direction), BI.extend({
+ scrolly: true
+ }, o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection(o.direction, this.toolbar, this.list)
+ }))));
+
+ if (o.items.length <= 0) {
+ this.toolbar.setVisible(false);
+ this.toolbar.setEnable(false);
+ }
+ },
+
+ _checkAllSelected: function () {
+ var selectLength = this.list.getValue().length;
+ var notSelectLength = this.getAllLeaves().length - selectLength;
+ var hasNext = this.list.hasNext();
+ var isAlreadyAllSelected = this.toolbar.isSelected();
+ var isHalf = selectLength > 0 && (notSelectLength > 0 || (!isAlreadyAllSelected && hasNext));
+ isHalf = isHalf || (notSelectLength > 0 && hasNext && isAlreadyAllSelected);
+ this.toolbar.setHalfSelected(isHalf);
+ !isHalf && this.toolbar.setSelected(selectLength > 0 && notSelectLength <= 0 && (!hasNext || isAlreadyAllSelected));
+ },
+
+ setAllSelected: function (v) {
+ BI.each(this.getAllButtons(), function (i, btn) {
+ (btn.setSelected || btn.setAllSelected).apply(btn, [v]);
+ });
+ this.toolbar.setSelected(v);
+ this.toolbar.setHalfSelected(false);
+ },
+
+ setToolBarVisible: function (b) {
+ this.toolbar.setVisible(b);
+ },
+
+ isAllSelected: function () {
+ return this.toolbar.isSelected();
+ },
+
+ hasPrev: function () {
+ return this.list.hasPrev();
+ },
+
+ hasNext: function () {
+ return this.list.hasNext();
+ },
+
+ prependItems: function (items) {
+ this.list.prependItems.apply(this.list, arguments);
+ },
+
+ addItems: function (items) {
+ this.list.addItems.apply(this.list, arguments);
+ },
+
+ setValue: function (data) {
+ var selectAll = data.type === BI.ButtonGroup.CHOOSE_TYPE_ALL;
+ this.setAllSelected(selectAll);
+ this.list[selectAll ? "setNotSelectedValue" : "setValue"](data.value);
+ this._checkAllSelected();
+ },
+
+ getValue: function () {
+ if (this.isAllSelected() === false) {
+ return {
+ type: BI.ButtonGroup.CHOOSE_TYPE_MULTI,
+ value: this.list.getValue(),
+ assist: this.list.getNotSelectedValue()
+ };
+ } else {
+ return {
+ type: BI.ButtonGroup.CHOOSE_TYPE_ALL,
+ value: this.list.getNotSelectedValue(),
+ assist: this.list.getValue()
+ };
+ }
+ },
+
+ empty: function () {
+ this.list.empty();
+ },
+
+ populate: function (items) {
+ this.toolbar.setVisible(!BI.isEmptyArray(items));
+ this.toolbar.setEnable(!BI.isEmptyArray(items));
+ this.list.populate.apply(this.list, arguments);
+ this._checkAllSelected();
+ },
+
+ _setEnable: function (enable) {
+ BI.SelectList.superclass._setEnable.apply(this, arguments);
+ this.toolbar.setEnable(enable);
+ },
+
+ resetHeight: function (h) {
+ var toolHeight = ( this.toolbar.element.outerHeight() || 25) * ( this.toolbar.isVisible() ? 1 : 0);
+ this.list.resetHeight ? this.list.resetHeight(h - toolHeight) :
+ this.list.element.css({"max-height": h - toolHeight + "px"})
+ },
+
+ setNotSelectedValue: function () {
+ this.list.setNotSelectedValue.apply(this.list, arguments);
+ this._checkAllSelected();
+ },
+
+ getNotSelectedValue: function () {
+ return this.list.getNotSelectedValue();
+ },
+
+ getAllButtons: function () {
+ return this.list.getAllButtons();
+ },
+
+ getAllLeaves: function () {
+ return this.list.getAllLeaves();
+ },
+
+ getSelectedButtons: function () {
+ return this.list.getSelectedButtons();
+ },
+
+ getNotSelectedButtons: function () {
+ return this.list.getNotSelectedButtons();
+ },
+
+ getIndexByValue: function (value) {
+ return this.list.getIndexByValue(value);
+ },
+
+ getNodeById: function (id) {
+ return this.list.getNodeById(id);
+ },
+
+ getNodeByValue: function (value) {
+ return this.list.getNodeByValue(value);
+ }
+});
+BI.SelectList.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.select_list", BI.SelectList);/**
+ * Created by roy on 15/11/6.
+ */
+BI.LazyLoader = BI.inherit(BI.Widget, {
+ _const: {
+ PAGE: 100
+ },
+ _defaultConfig: function () {
+ return BI.extend(BI.LazyLoader.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-lazy-loader",
+ el: {}
+ })
+ },
+
+ _init: function () {
+ var self = this, o = this.options;
+ BI.LazyLoader.superclass._init.apply(this, arguments);
+ var all = o.items.length;
+ this.loader = BI.createWidget({
+ type: "bi.loader",
+ element: this,
+ //下面是button_group的属性
+ el: o.el,
+
+ itemsCreator: function (options, populate) {
+ populate(self._getNextItems(options));
+ },
+ hasNext: function (option) {
+ return option.count < all;
+ }
+ });
+
+ this.loader.on(BI.Loader.EVENT_CHANGE, function (obj) {
+ self.fireEvent(BI.LazyLoader.EVENT_CHANGE, obj)
+ })
+ },
+ _getNextItems: function (options) {
+ var self = this, o = this.options;
+ var lastNum = o.items.length - this._const.PAGE * (options.times - 1);
+ var lastItems = BI.last(o.items, lastNum);
+ var nextItems = BI.first(lastItems, this._const.PAGE);
+ return nextItems;
+ },
+
+ populate: function (items) {
+ this.loader.populate(items);
+ },
+
+ addItems: function (items) {
+ this.loader.addItems(items);
+ },
+
+ empty: function () {
+ this.loader.empty();
+ },
+
+ setNotSelectedValue: function () {
+ this.loader.setNotSelectedValue.apply(this.loader, arguments);
+ },
+
+ getNotSelectedValue: function () {
+ return this.loader.getNotSelectedValue();
+ },
+
+ setValue: function () {
+ this.loader.setValue.apply(this.loader, arguments);
+ },
+
+ getValue: function () {
+ return this.loader.getValue.apply(this.loader, arguments);
+ },
+
+ getAllButtons: function () {
+ return this.loader.getAllButtons();
+ },
+
+ getAllLeaves: function () {
+ return this.loader.getAllLeaves();
+ },
+
+ getSelectedButtons: function () {
+ return this.loader.getSelectedButtons();
+ },
+
+ getNotSelectedButtons: function () {
+ return this.loader.getNotSelectedButtons();
+ },
+
+ getIndexByValue: function (value) {
+ return this.loader.getIndexByValue(value);
+ },
+
+ getNodeById: function (id) {
+ return this.loader.getNodeById(id);
+ },
+
+ getNodeByValue: function (value) {
+ return this.loader.getNodeByValue(value);
+ }
+});
+BI.LazyLoader.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.lazy_loader", BI.LazyLoader);/**
+ * 恶心的加载控件, 为解决排序问题引入的控件
+ *
+ * Created by GUY on 2015/11/12.
+ * @class BI.ListLoader
+ * @extends BI.Widget
+ */
+BI.ListLoader = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.ListLoader.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-list-loader",
+
+ isDefaultInit: true,//是否默认初始化数据
+
+ //下面是button_group的属性
+ el: {
+ type: "bi.button_group"
+ },
+
+ items: [],
+ itemsCreator: BI.emptyFn,
+ onLoaded: BI.emptyFn,
+
+ //下面是分页信息
+ count: false,
+ next: {},
+ hasNext: BI.emptyFn
+ })
+ },
+
+ _nextLoad: function () {
+ var self = this, o = this.options;
+ this.next.setLoading();
+ o.itemsCreator.apply(this, [{times: ++this.times}, function () {
+ self.next.setLoaded();
+ self.addItems.apply(self, arguments);
+ }]);
+ },
+
+ _init: function () {
+ BI.ListLoader.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ if (o.itemsCreator === false) {
+ o.next = false;
+ }
+
+ this.button_group = BI.createWidget(o.el, {
+ type: "bi.button_group",
+ element: this,
+ chooseType: 0,
+ items: o.items,
+ behaviors: {},
+ layouts: [{
+ type: "bi.vertical"
+ }]
+ });
+ this.button_group.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ if (type === BI.Events.CLICK) {
+ self.fireEvent(BI.ListLoader.EVENT_CHANGE, obj);
+ }
+ });
+
+ if (o.next !== false) {
+ this.next = BI.createWidget(BI.extend({
+ type: "bi.loading_bar"
+ }, o.next));
+ this.next.on(BI.Controller.EVENT_CHANGE, function (type) {
+ if (type === BI.Events.CLICK) {
+ self._nextLoad();
+ }
+ })
+ }
+
+ BI.createWidget({
+ type: "bi.vertical",
+ element: this,
+ items: [this.next]
+ });
+
+ o.isDefaultInit && BI.isEmpty(o.items) && BI.nextTick(BI.bind(function () {
+ this.populate();
+ }, this));
+ if (BI.isNotEmptyArray(o.items)) {
+ this.populate(o.items);
+ }
+ },
+
+ hasNext: function () {
+ var o = this.options;
+ if (BI.isNumber(o.count)) {
+ return this.count < o.count;
+ }
+ return !!o.hasNext.apply(this, [{
+ times: this.times,
+ count: this.count
+ }])
+ },
+
+ addItems: function (items) {
+ this.count += items.length;
+ if (BI.isObject(this.next)) {
+ if (this.hasNext()) {
+ this.options.items = this.options.items.concat(items);
+ this.next.setLoaded();
+ } else {
+ this.next.setEnd();
+ }
+ }
+ this.button_group.addItems.apply(this.button_group, arguments);
+ this.next.element.appendTo(this.element);
+ },
+
+ populate: function (items) {
+ var self = this, o = this.options;
+ if (arguments.length === 0 && (BI.isFunction(o.itemsCreator))) {
+ o.itemsCreator.apply(this, [{times: 1}, function () {
+ if (arguments.length === 0) {
+ throw new Error("参数不能为空");
+ }
+ self.populate.apply(self, arguments);
+ o.onLoaded();
+ }]);
+ return;
+ }
+ this.options.items = items;
+ this.times = 1;
+ this.count = 0;
+ this.count += items.length;
+ if (BI.isObject(this.next)) {
+ if (this.hasNext()) {
+ this.next.setLoaded();
+ } else {
+ this.next.invisible();
+ }
+ }
+ BI.DOM.hang([this.next]);
+ this.button_group.populate.apply(this.button_group, arguments);
+ this.next.element.appendTo(this.element);
+ },
+
+ empty: function () {
+ BI.DOM.hang([this.next]);
+ this.button_group.empty();
+ this.next.element.appendTo(this.element);
+ BI.each([this.next], function (i, ob) {
+ ob && ob.setVisible(false);
+ });
+ },
+
+ setNotSelectedValue: function () {
+ this.button_group.setNotSelectedValue.apply(this.button_group, arguments);
+ },
+
+ getNotSelectedValue: function () {
+ return this.button_group.getNotSelectedValue();
+ },
+
+ setValue: function () {
+ this.button_group.setValue.apply(this.button_group, arguments);
+ },
+
+ getValue: function () {
+ return this.button_group.getValue.apply(this.button_group, arguments);
+ },
+
+ getAllButtons: function () {
+ return this.button_group.getAllButtons();
+ },
+
+ getAllLeaves: function () {
+ return this.button_group.getAllLeaves();
+ },
+
+ getSelectedButtons: function () {
+ return this.button_group.getSelectedButtons();
+ },
+
+ getNotSelectedButtons: function () {
+ return this.button_group.getNotSelectedButtons();
+ },
+
+ getIndexByValue: function (value) {
+ return this.button_group.getIndexByValue(value);
+ },
+
+ getNodeById: function (id) {
+ return this.button_group.getNodeById(id);
+ },
+
+ getNodeByValue: function (value) {
+ return this.button_group.getNodeByValue(value);
+ }
+});
+BI.ListLoader.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.list_loader", BI.ListLoader);/**
+ * Created by GUY on 2016/4/29.
+ *
+ * @class BI.SortList
+ * @extends BI.Widget
+ */
+BI.SortList = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.SortList.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-sort-list",
+
+ isDefaultInit: true,//是否默认初始化数据
+
+ //下面是button_group的属性
+ el: {
+ type: "bi.button_group"
+ },
+
+ items: [],
+ itemsCreator: BI.emptyFn,
+ onLoaded: BI.emptyFn,
+
+ //下面是分页信息
+ count: false,
+ next: {},
+ hasNext: BI.emptyFn
+
+ //containment: this.element,
+ //connectWith: ".bi-sort-list",
+ })
+ },
+
+ _init: function () {
+ BI.SortList.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.loader = BI.createWidget({
+ type: "bi.list_loader",
+ element: this,
+ isDefaultInit: o.isDefaultInit,
+ el: o.el,
+ items: this._formatItems(o.items),
+ itemsCreator: function (op, callback) {
+ o.itemsCreator(op, function (items) {
+ callback(self._formatItems(items));
+ });
+ },
+ onLoaded: o.onLoaded,
+ count: o.count,
+ next: o.next,
+ hasNext: o.hasNext
+ });
+ this.loader.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ if (type === BI.Events.CLICK) {
+ self.fireEvent(BI.SortList.EVENT_CHANGE, value, obj);
+ }
+ });
+
+ this.loader.element.sortable({
+ containment: o.containment || this.element,
+ connectWith: o.connectWith || ".bi-sort-list",
+ items: ".sort-item",
+ cursor: o.cursor || "drag",
+ tolerance: o.tolerance || "intersect",
+ placeholder: {
+ element: function ($currentItem) {
+ var holder = BI.createWidget({
+ type: "bi.layout",
+ cls: "bi-sortable-holder",
+ height: $currentItem.outerHeight()
+ });
+ holder.element.css({
+ "margin-left": $currentItem.css("margin-left"),
+ "margin-right": $currentItem.css("margin-right"),
+ "margin-top": $currentItem.css("margin-top"),
+ "margin-bottom": $currentItem.css("margin-bottom"),
+ "margin": $currentItem.css("margin")
+ });
+ return holder.element;
+ },
+ update: function () {
+
+ }
+ },
+ start: function (event, ui) {
+
+ },
+ stop: function (event, ui) {
+ self.fireEvent(BI.SortList.EVENT_CHANGE);
+ },
+ over: function (event, ui) {
+
+ }
+ });
+ },
+
+ _formatItems: function (items) {
+ BI.each(items, function (i, item) {
+ item = BI.stripEL(item);
+ item.cls = item.cls ? item.cls + " sort-item" : "sort-item";
+ item.attributes = {
+ sorted: item.value
+ };
+ });
+ return items;
+ },
+
+ hasNext: function () {
+ return this.loader.hasNext();
+ },
+
+ addItems: function (items) {
+ this.loader.addItems(items);
+ },
+
+ populate: function (items) {
+ if (items) {
+ arguments[0] = this._formatItems(items);
+ }
+ this.loader.populate.apply(this.loader, arguments);
+ },
+
+ empty: function () {
+ this.loader.empty();
+ },
+
+ setNotSelectedValue: function () {
+ this.loader.setNotSelectedValue.apply(this.loader, arguments);
+ },
+
+ getNotSelectedValue: function () {
+ return this.loader.getNotSelectedValue();
+ },
+
+ setValue: function () {
+ this.loader.setValue.apply(this.loader, arguments);
+ },
+
+ getValue: function () {
+ return this.loader.getValue();
+ },
+
+ getAllButtons: function () {
+ return this.loader.getAllButtons();
+ },
+
+ getAllLeaves: function () {
+ return this.loader.getAllLeaves();
+ },
+
+ getSelectedButtons: function () {
+ return this.loader.getSelectedButtons();
+ },
+
+ getNotSelectedButtons: function () {
+ return this.loader.getNotSelectedButtons();
+ },
+
+ getIndexByValue: function (value) {
+ return this.loader.getIndexByValue(value);
+ },
+
+ getNodeById: function (id) {
+ return this.loader.getNodeById(id);
+ },
+
+ getNodeByValue: function (value) {
+ return this.loader.getNodeByValue(value);
+ },
+
+ getSortedValues: function () {
+ return this.loader.element.sortable("toArray", {attribute: "sorted"});
+ }
+});
+BI.SortList.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.sort_list", BI.SortList);/**
+ * 有总页数和总行数的分页控件
+ * Created by Young's on 2016/10/13.
+ */
+BI.AllCountPager = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.AllCountPager.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-all-count-pager",
+ height: 30,
+ pages: 1, //必选项
+ curr: 1, //初始化当前页, pages为数字时可用,
+ count: 1 //总行数
+ })
+ },
+ _init: function () {
+ BI.AllCountPager.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.editor = BI.createWidget({
+ type: "bi.small_text_editor",
+ cls: "pager-editor",
+ validationChecker: function (v) {
+ return (self.rowCount.getValue() === 0 && v === "0") || BI.isPositiveInteger(v);
+ },
+ hgap: 4,
+ vgap: 0,
+ value: o.curr,
+ errorText: BI.i18nText("BI-Please_Input_Positive_Integer"),
+ width: 35,
+ height: 20
+ });
+
+ this.pager = BI.createWidget({
+ type: "bi.pager",
+ width: 36,
+ layouts: [{
+ type: "bi.horizontal",
+ hgap: 1,
+ vgap: 1
+ }],
+
+ dynamicShow: false,
+ pages: o.pages,
+ curr: o.curr,
+ groups: 0,
+
+ first: false,
+ last: false,
+ prev: {
+ type: "bi.icon_button",
+ value: "prev",
+ title: BI.i18nText("BI-Previous_Page"),
+ warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
+ height: 20,
+ cls: "all-pager-prev column-pre-page-h-font"
+ },
+ next: {
+ type: "bi.icon_button",
+ value: "next",
+ title: BI.i18nText("BI-Next_Page"),
+ warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
+ height: 20,
+ cls: "all-pager-next column-next-page-h-font"
+ },
+
+ hasPrev: o.hasPrev,
+ hasNext: o.hasNext,
+ firstPage: o.firstPage,
+ lastPage: o.lastPage
+ });
+
+ this.editor.on(BI.TextEditor.EVENT_CONFIRM, function () {
+ self.pager.setValue(BI.parseInt(self.editor.getValue()));
+ self.fireEvent(BI.AllCountPager.EVENT_CHANGE);
+ });
+ this.pager.on(BI.Pager.EVENT_CHANGE, function () {
+ self.fireEvent(BI.AllCountPager.EVENT_CHANGE);
+ });
+ this.pager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
+ self.editor.setValue(self.pager.getCurrentPage());
+ });
+
+ this.allPages = BI.createWidget({
+ type: "bi.label",
+ width: 30,
+ title: o.pages,
+ text: "/" + o.pages
+ });
+
+ this.rowCount = BI.createWidget({
+ type: "bi.label",
+ height: o.height,
+ hgap: 5,
+ text: o.count,
+ title: o.count
+ });
+
+ var count = BI.createWidget({
+ type: "bi.left",
+ height: o.height,
+ scrollable: false,
+ items: [{
+ type: "bi.label",
+ height: o.height,
+ text: BI.i18nText("BI-Basic_Total"),
+ width: 15
+ }, this.rowCount, {
+ type: "bi.label",
+ height: o.height,
+ text: BI.i18nText("BI-Tiao_Data"),
+ width: 50,
+ textAlign: "left"
+ }]
+ });
+ BI.createWidget({
+ type: "bi.center_adapt",
+ element: this,
+ columnSize: ["", 35, 40, 36],
+ items: [count, this.editor, this.allPages, this.pager]
+ })
+ },
+
+ alwaysShowPager: true,
+
+ setAllPages: function (v) {
+ this.allPages.setText("/" + v);
+ this.allPages.setTitle(v);
+ this.pager.setAllPages(v);
+ this.editor.setEnable(v >= 1);
+ },
+
+ setValue: function (v) {
+ this.pager.setValue(v);
+ },
+
+ setVPage: function (v) {
+ this.pager.setValue(v);
+ },
+
+ setCount: function (count) {
+ this.rowCount.setText(count);
+ this.rowCount.setTitle(count);
+ },
+
+ getCurrentPage: function () {
+ return this.pager.getCurrentPage();
+ },
+
+ hasPrev: function () {
+ return this.pager.hasPrev();
+ },
+
+ hasNext: function () {
+ return this.pager.hasNext();
+ },
+
+ setPagerVisible: function (b) {
+ this.editor.setVisible(b);
+ this.allPages.setVisible(b);
+ this.pager.setVisible(b);
+ },
+
+ populate: function () {
+ this.pager.populate();
+ }
+});
+BI.AllCountPager.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.all_count_pager", BI.AllCountPager);/**
+ * 显示页码的分页控件
+ *
+ * Created by GUY on 2016/6/30.
+ * @class BI.DirectionPager
+ * @extends BI.Widget
+ */
+BI.DirectionPager = BI.inherit(BI.Widget, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.DirectionPager.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-direction-pager",
+ height: 30,
+ horizontal: {
+ pages: false, //总页数
+ curr: 1, //初始化当前页, pages为数字时可用
+
+ hasPrev: BI.emptyFn,
+ hasNext: BI.emptyFn,
+ firstPage: 1,
+ lastPage: BI.emptyFn
+ },
+ vertical: {
+ pages: false, //总页数
+ curr: 1, //初始化当前页, pages为数字时可用
+
+ hasPrev: BI.emptyFn,
+ hasNext: BI.emptyFn,
+ firstPage: 1,
+ lastPage: BI.emptyFn
+ }
+ })
+ },
+ _init: function () {
+ BI.DirectionPager.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ var v = o.vertical, h = o.horizontal;
+ this._createVPager();
+ this._createHPager();
+ this.layout = BI.createWidget({
+ type: "bi.absolute",
+ scrollable: false,
+ element: this,
+ items: [{
+ el: this.vpager,
+ top: 5,
+ right: 74
+ }, {
+ el: this.vlabel,
+ top: 5,
+ right: 111
+ }, {
+ el: this.hpager,
+ top: 5,
+ right: -9
+ }, {
+ el: this.hlabel,
+ top: 5,
+ right: 28
+ }]
+ });
+ },
+
+ _createVPager: function () {
+ var self = this, o = this.options;
+ var v = o.vertical;
+ this.vlabel = BI.createWidget({
+ type: "bi.label",
+ width: 24,
+ height: 20,
+ value: v.curr,
+ title: v.curr
+ });
+ this.vpager = BI.createWidget({
+ type: "bi.pager",
+ width: 76,
+ layouts: [{
+ type: "bi.horizontal",
+ scrollx: false,
+ rgap: 24,
+ vgap: 1
+ }],
+
+ dynamicShow: false,
+ pages: v.pages,
+ curr: v.curr,
+ groups: 0,
+
+ first: false,
+ last: false,
+ prev: {
+ type: "bi.icon_button",
+ value: "prev",
+ title: BI.i18nText("BI-Up_Page"),
+ warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
+ height: 20,
+ iconWidth: 16,
+ iconHeight: 16,
+ cls: "direction-pager-prev column-pre-page-h-font"
+ },
+ next: {
+ type: "bi.icon_button",
+ value: "next",
+ title: BI.i18nText("BI-Down_Page"),
+ warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
+ height: 20,
+ iconWidth: 16,
+ iconHeight: 16,
+ cls: "direction-pager-next column-next-page-h-font"
+ },
+
+ hasPrev: v.hasPrev,
+ hasNext: v.hasNext,
+ firstPage: v.firstPage,
+ lastPage: v.lastPage
+ });
+
+ this.vpager.on(BI.Pager.EVENT_CHANGE, function () {
+ self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
+ });
+ this.vpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
+ self.vlabel.setValue(this.getCurrentPage());
+ self.vlabel.setTitle(this.getCurrentPage());
+ });
+ },
+
+ _createHPager: function () {
+ var self = this, o = this.options;
+ var h = o.horizontal;
+ this.hlabel = BI.createWidget({
+ type: "bi.label",
+ width: 24,
+ height: 20,
+ value: h.curr,
+ title: h.curr
+ });
+ this.hpager = BI.createWidget({
+ type: "bi.pager",
+ width: 76,
+ layouts: [{
+ type: "bi.horizontal",
+ scrollx: false,
+ rgap: 24,
+ vgap: 1
+ }],
+
+ dynamicShow: false,
+ pages: h.pages,
+ curr: h.curr,
+ groups: 0,
+
+ first: false,
+ last: false,
+ prev: {
+ type: "bi.icon_button",
+ value: "prev",
+ title: BI.i18nText("BI-Left_Page"),
+ warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
+ height: 20,
+ iconWidth: 16,
+ iconHeight: 16,
+ cls: "direction-pager-prev row-pre-page-h-font"
+ },
+ next: {
+ type: "bi.icon_button",
+ value: "next",
+ title: BI.i18nText("BI-Right_Page"),
+ warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
+ height: 20,
+ iconWidth: 16,
+ iconHeight: 16,
+ cls: "direction-pager-next row-next-page-h-font"
+ },
+
+ hasPrev: h.hasPrev,
+ hasNext: h.hasNext,
+ firstPage: h.firstPage,
+ lastPage: h.lastPage
+ });
+
+ this.hpager.on(BI.Pager.EVENT_CHANGE, function () {
+ self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
+ });
+ this.hpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
+ self.hlabel.setValue(this.getCurrentPage());
+ self.hlabel.setTitle(this.getCurrentPage());
+ });
+ },
+
+ getVPage: function () {
+ return this.vpager.getCurrentPage();
+ },
+
+ getHPage: function () {
+ return this.hpager.getCurrentPage();
+ },
+
+ setVPage: function (v) {
+ this.vpager.setValue(v);
+ this.vlabel.setValue(v);
+ this.vlabel.setTitle(v);
+ },
+
+ setHPage: function (v) {
+ this.hpager.setValue(v);
+ this.hlabel.setValue(v);
+ this.hlabel.setTitle(v);
+ },
+
+ hasVNext: function () {
+ return this.vpager.hasNext();
+ },
+
+ hasHNext: function () {
+ return this.hpager.hasNext();
+ },
+
+ hasVPrev: function () {
+ return this.vpager.hasPrev();
+ },
+
+ hasHPrev: function () {
+ return this.hpager.hasPrev();
+ },
+
+ setHPagerVisible: function (b) {
+ this.hpager.setVisible(b);
+ this.hlabel.setVisible(b);
+ },
+
+ setVPagerVisible: function (b) {
+ this.vpager.setVisible(b);
+ this.vlabel.setVisible(b);
+ },
+
+ populate: function () {
+ this.vpager.populate();
+ this.hpager.populate();
+ var vShow = false, hShow = false;
+ if (!this.hasHNext() && !this.hasHPrev()) {
+ this.setHPagerVisible(false);
+ } else {
+ this.setHPagerVisible(true);
+ hShow = true;
+ }
+ if (!this.hasVNext() && !this.hasVPrev()) {
+ this.setVPagerVisible(false);
+ } else {
+ this.setVPagerVisible(true);
+ vShow = true;
+ }
+ this.setVisible(hShow || vShow);
+ var num = [74, 111, -9, 28];
+ var items = this.layout.attr("items");
+
+ if (vShow === true && hShow === true) {
+ items[0].right = num[0];
+ items[1].right = num[1];
+ items[2].right = num[2];
+ items[3].right = num[3];
+ } else if (vShow === true) {
+ items[0].right = num[2];
+ items[1].right = num[3];
+ } else if (hShow === true) {
+ items[2].right = num[2];
+ items[3].right = num[3];
+ }
+ this.layout.attr("items", items);
+ this.layout.resize();
+ },
+
+ clear: function () {
+ this.vpager.attr("curr", 1);
+ this.hpager.attr("curr", 1);
+ }
+});
+BI.DirectionPager.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.direction_pager", BI.DirectionPager);/**
+ * 分页控件
+ *
+ * Created by GUY on 2015/8/31.
+ * @class BI.DetailPager
+ * @extends BI.Widget
+ */
+BI.DetailPager = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.DetailPager.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-detail-pager",
+ behaviors: {},
+ layouts: [{
+ type: "bi.horizontal",
+ hgap: 10,
+ vgap: 0
+ }],
+
+ dynamicShow: true, //是否动态显示上一页、下一页、首页、尾页, 若为false,则指对其设置使能状态
+ //dynamicShow为false时以下两个有用
+ dynamicShowFirstLast: false,//是否动态显示首页、尾页
+ dynamicShowPrevNext: false,//是否动态显示上一页、下一页
+ pages: false, //总页数
+ curr: function () {
+ return 1;
+ }, //初始化当前页
+ groups: 0, //连续显示分页数
+ jump: BI.emptyFn, //分页的回调函数
+
+ first: false, //是否显示首页
+ last: false, //是否显示尾页
+ prev: "上一页",
+ next: "下一页",
+
+ firstPage: 1,
+ lastPage: function () { //在万不得已时才会调用这个函数获取最后一页的页码, 主要作用于setValue方法
+ return 1;
+ },
+ hasPrev: BI.emptyFn, //pages不可用时有效
+ hasNext: BI.emptyFn //pages不可用时有效
+ })
+ },
+ _init: function () {
+ BI.DetailPager.superclass._init.apply(this, arguments);
+ var self = this;
+ this.currPage = BI.result(this.options, "curr");
+ //翻页太灵敏
+ this._lock = false;
+ this._debouce = BI.debounce(function () {
+ self._lock = false;
+ }, 300);
+ this._populate();
+ },
+
+ _populate: function () {
+ var self = this, o = this.options, view = [], dict = {};
+ this.empty();
+ var pages = BI.result(o, "pages");
+ var curr = BI.result(this, "currPage");
+ var groups = BI.result(o, "groups");
+ var first = BI.result(o, "first");
+ var last = BI.result(o, "last");
+ var prev = BI.result(o, "prev");
+ var next = BI.result(o, "next");
+
+ if (pages === false) {
+ groups = 0;
+ first = false;
+ last = false;
+ } else {
+ groups > pages && (groups = pages);
+ }
+
+ //计算当前组
+ dict.index = Math.ceil((curr + ((groups > 1 && groups !== pages) ? 1 : 0)) / (groups === 0 ? 1 : groups));
+
+ //当前页非首页,则输出上一页
+ if (((!o.dynamicShow && !o.dynamicShowPrevNext) || curr > 1) && prev !== false) {
+ if (BI.isKey(prev)) {
+ view.push({
+ text: prev,
+ value: "prev",
+ disabled: pages === false ? o.hasPrev(curr) === false : !(curr > 1 && prev !== false)
+ })
+ } else {
+ view.push(BI.extend({
+ disabled: pages === false ? o.hasPrev(curr) === false : !(curr > 1 && prev !== false)
+ }, prev));
+ }
+ }
+
+ //当前组非首组,则输出首页
+ if (((!o.dynamicShow && !o.dynamicShowFirstLast) || (dict.index > 1 && groups !== 0)) && first) {
+ view.push({
+ text: first,
+ value: "first",
+ disabled: !(dict.index > 1 && groups !== 0)
+ });
+ if (dict.index > 1 && groups !== 0) {
+ view.push({
+ type: "bi.label",
+ cls: "page-ellipsis",
+ text: "\u2026"
+ });
+ }
+ }
+
+ //输出当前页组
+ dict.poor = Math.floor((groups - 1) / 2);
+ dict.start = dict.index > 1 ? curr - dict.poor : 1;
+ dict.end = dict.index > 1 ? (function () {
+ var max = curr + (groups - dict.poor - 1);
+ return max > pages ? pages : max;
+ }()) : groups;
+ if (dict.end - dict.start < groups - 1) { //最后一组状态
+ dict.start = dict.end - groups + 1;
+ }
+ var s = dict.start, e = dict.end;
+ if (first && last && (dict.index > 1 && groups !== 0) && (pages > groups && dict.end < pages && groups !== 0)) {
+ s++;
+ e--;
+ }
+ for (; s <= e; s++) {
+ if (s === curr) {
+ view.push({
+ text: s,
+ value: s,
+ selected: true
+ })
+ } else {
+ view.push({
+ text: s,
+ value: s
+ })
+ }
+ }
+
+ //总页数大于连续分页数,且当前组最大页小于总页,输出尾页
+ if (((!o.dynamicShow && !o.dynamicShowFirstLast) || (pages > groups && dict.end < pages && groups !== 0)) && last) {
+ if (pages > groups && dict.end < pages && groups !== 0) {
+ view.push({
+ type: "bi.label",
+ cls: "page-ellipsis",
+ text: "\u2026"
+ });
+ }
+ view.push({
+ text: last,
+ value: "last",
+ disabled: !(pages > groups && dict.end < pages && groups !== 0)
+ })
+ }
+
+ //当前页不为尾页时,输出下一页
+ dict.flow = !prev && groups === 0;
+ if (((!o.dynamicShow && !o.dynamicShowPrevNext) && next) || (curr !== pages && next || dict.flow)) {
+ view.push((function () {
+ if (BI.isKey(next)) {
+ if (pages === false) {
+ return {text: next, value: "next", disabled: o.hasNext(curr) === false}
+ }
+ return (dict.flow && curr === pages)
+ ?
+ {text: next, value: "next", disabled: true}
+ :
+ {text: next, value: "next", disabled: !(curr !== pages && next || dict.flow)};
+ } else {
+ return BI.extend({
+ disabled: pages === false ? o.hasNext(curr) === false : !(curr !== pages && next || dict.flow)
+ }, next);
+ }
+ }()));
+ }
+
+ this.button_group = BI.createWidget({
+ type: "bi.button_group",
+ element: this,
+ items: BI.createItems(view, {
+ cls: "page-item bi-border bi-list-item-active",
+ height: 23,
+ hgap: 10
+ }),
+ behaviors: o.behaviors,
+ layouts: o.layouts
+ });
+ this.button_group.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
+ if (self._lock === true) {
+ return;
+ }
+ self._lock = true;
+ self._debouce();
+ if (type === BI.Events.CLICK) {
+ var v = self.button_group.getValue()[0];
+ switch (v) {
+ case "first":
+ self.currPage = 1;
+ break;
+ case "last":
+ self.currPage = pages;
+ break;
+ case "prev":
+ self.currPage--;
+ break;
+ case "next":
+ self.currPage++;
+ break;
+ default:
+ self.currPage = v;
+ break;
+ }
+ o.jump.apply(self, [{
+ pages: pages,
+ curr: self.currPage
+ }]);
+ self._populate();
+ self.fireEvent(BI.DetailPager.EVENT_CHANGE, obj);
+ }
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ this.fireEvent(BI.DetailPager.EVENT_AFTER_POPULATE);
+ },
+
+ getCurrentPage: function () {
+ return this.currPage;
+ },
+
+ setAllPages: function (pages) {
+ this.options.pages = pages;
+ },
+
+ hasPrev: function (v) {
+ v || (v = 1);
+ var o = this.options;
+ var pages = this.options.pages;
+ return pages === false ? o.hasPrev(v) : v > 1;
+ },
+
+ hasNext: function (v) {
+ v || (v = 1);
+ var o = this.options;
+ var pages = this.options.pages;
+ return pages === false ? o.hasNext(v) : v < pages;
+ },
+
+ setValue: function (v) {
+ var o = this.options;
+ v = v | 0;
+ v = v < 1 ? 1 : v;
+ if (o.pages === false) {
+ var lastPage = BI.result(o, "lastPage"), firstPage = 1;
+ this.currPage = v > lastPage ? lastPage : ((firstPage = BI.result(o, "firstPage")), (v < firstPage ? firstPage : v));
+ } else {
+ v = v > o.pages ? o.pages : v;
+ this.currPage = v;
+ }
+ this._populate();
+ },
+
+ getValue: function () {
+ var val = this.button_group.getValue()[0];
+ switch (val) {
+ case "prev":
+ return -1;
+ case "next":
+ return 1;
+ case "first":
+ return BI.MIN;
+ case "last":
+ return BI.MAX;
+ default :
+ return val;
+ }
+ },
+
+ attr: function (key, value) {
+ BI.DetailPager.superclass.attr.apply(this, arguments);
+ if (key === "curr") {
+ this.currPage = BI.result(this.options, "curr");
+ }
+ },
+
+ populate: function () {
+ this._populate();
+ }
+});
+BI.DetailPager.EVENT_CHANGE = "EVENT_CHANGE";
+BI.DetailPager.EVENT_AFTER_POPULATE = "EVENT_AFTER_POPULATE";
+BI.shortcut("bi.detail_pager", BI.DetailPager);/**
+ * 分段控件使用的button
+ *
+ * Created by GUY on 2015/9/7.
+ * @class BI.SegmentButton
+ * @extends BI.BasicButton
+ */
+BI.SegmentButton = BI.inherit(BI.BasicButton, {
+
+ _defaultConfig: function () {
+ var conf = BI.SegmentButton.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + ' bi-segment-button bi-list-item-active',
+ shadow: true,
+ readonly: true,
+ hgap: 5
+ })
+ },
+
+ _init: function () {
+ BI.SegmentButton.superclass._init.apply(this, arguments);
+ var opts = this.options, self = this;
+ //if (BI.isNumber(opts.height) && BI.isNull(opts.lineHeight)) {
+ // this.element.css({lineHeight : (opts.height - 2) + 'px'});
+ //}
+ this.text = BI.createWidget({
+ type: "bi.label",
+ element: this,
+ height: opts.height - 2,
+ whiteSpace: opts.whiteSpace,
+ text: opts.text,
+ value: opts.value,
+ hgap: opts.hgap
+ })
+ },
+
+ setSelected: function () {
+ BI.SegmentButton.superclass.setSelected.apply(this, arguments);
+ },
+
+ setText: function (text) {
+ BI.SegmentButton.superclass.setText.apply(this, arguments);
+ this.text.setText(text);
+ },
+
+ destroy: function () {
+ BI.SegmentButton.superclass.destroy.apply(this, arguments);
+ }
+});
+BI.shortcut('bi.segment_button', BI.SegmentButton);/**
+ * 单选按钮组
+ *
+ * Created by GUY on 2015/9/7.
+ * @class BI.Segment
+ * @extends BI.Widget
+ */
+BI.Segment = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.Segment.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-segment",
+ items: [],
+ height: 30
+ });
+ },
+ _init: function () {
+ BI.Segment.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.buttonGroup = BI.createWidget({
+ element: this,
+ type: "bi.button_group",
+ items: BI.createItems(o.items, {
+ type: "bi.segment_button",
+ height: o.height - 2,
+ whiteSpace: o.whiteSpace
+ }),
+ layout: [
+ {
+ type: "bi.center"
+ }
+ ]
+ })
+ this.buttonGroup.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments)
+ });
+ this.buttonGroup.on(BI.ButtonGroup.EVENT_CHANGE, function (value, obj) {
+ self.fireEvent(BI.Segment.EVENT_CHANGE, value, obj)
+ })
+ },
+
+ setValue: function (v) {
+ this.buttonGroup.setValue(v);
+ },
+
+ setEnabledValue: function (v) {
+ this.buttonGroup.setEnabledValue(v);
+ },
+
+ getValue: function () {
+ return this.buttonGroup.getValue();
+ }
+});
+BI.Segment.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut('bi.segment', BI.Segment);/**
+ * 自适应宽度的表格
+ *
+ * Created by GUY on 2016/2/3.
+ * @class BI.AdaptiveTable
+ * @extends BI.Widget
+ */
+BI.AdaptiveTable = BI.inherit(BI.Widget, {
+
+ _const: {
+ perColumnSize: 100
+ },
+
+ _defaultConfig: function () {
+ return BI.extend(BI.AdaptiveTable.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-adaptive-table",
+ el: {
+ type: "bi.resizable_table"
+ },
+ isNeedResize: true,
+ isNeedFreeze: false,//是否需要冻结单元格
+ freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为true时生效
+
+ isNeedMerge: false,//是否需要合并单元格
+ mergeCols: [], //合并的单元格列号
+ mergeRule: BI.emptyFn,
+
+ columnSize: [],
+ minColumnSize: [],
+ maxColumnSize: [],
+
+ headerRowSize: 25,
+ rowSize: 25,
+
+ regionColumnSize: [],
+
+ header: [],
+ items: [], //二维数组
+
+ //交叉表头
+ crossHeader: [],
+ crossItems: []
+ });
+ },
+
+ _init: function () {
+ BI.AdaptiveTable.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+
+ var data = this._digest();
+ this.table = BI.createWidget(o.el, {
+ type: "bi.resizable_table",
+ element: this,
+ width: o.width,
+ height: o.height,
+ isNeedResize: o.isNeedResize,
+ isResizeAdapt: false,
+
+ isNeedFreeze: o.isNeedFreeze,
+ freezeCols: data.freezeCols,
+
+ isNeedMerge: o.isNeedMerge,
+ mergeCols: o.mergeCols,
+ mergeRule: o.mergeRule,
+
+ columnSize: data.columnSize,
+
+ headerRowSize: o.headerRowSize,
+ rowSize: o.rowSize,
+
+ regionColumnSize: data.regionColumnSize,
+
+ header: o.header,
+ items: o.items,
+ //交叉表头
+ crossHeader: o.crossHeader,
+ crossItems: o.crossItems
+ });
+ this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
+ self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
+ o.regionColumnSize = this.getRegionColumnSize();
+ self._populate();
+ self.table.populate();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
+ });
+
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
+ o.columnSize = this.getColumnSize();
+ self._populate();
+ self.table.populate();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
+ });
+ },
+
+ _getFreezeColLength: function () {
+ return this.options.isNeedFreeze === true ? this.options.freezeCols.length : 0;
+ },
+
+ _digest: function () {
+ var o = this.options;
+ var columnSize = o.columnSize.slice();
+ var regionColumnSize = o.regionColumnSize.slice();
+ var freezeCols = o.freezeCols.slice();
+ var regionSize = o.regionColumnSize[0];
+ var freezeColLength = this._getFreezeColLength();
+ if (!regionSize || regionSize > o.width - 10 || regionSize < 10) {
+ regionSize = (freezeColLength > o.columnSize.length / 2 ? 2 / 3 : 1 / 3) * o.width;
+ }
+ if (freezeColLength === 0) {
+ regionSize = 0;
+ }
+ if (freezeCols.length >= columnSize.length) {
+ freezeCols = [];
+ }
+ if (!BI.isNumber(columnSize[0])) {
+ columnSize = o.minColumnSize.slice();
+ }
+ var summaryFreezeColumnSize = 0, summaryColumnSize = 0;
+ BI.each(columnSize, function (i, size) {
+ if (i < freezeColLength) {
+ summaryFreezeColumnSize += size;
+ }
+ summaryColumnSize += size;
+ });
+ if (freezeColLength > 0) {
+ columnSize[freezeColLength - 1] = BI.clamp(regionSize - (summaryFreezeColumnSize - columnSize[freezeColLength - 1]),
+ o.minColumnSize[freezeColLength - 1] || 10, o.maxColumnSize[freezeColLength - 1] || Number.MAX_VALUE);
+ }
+ if (columnSize.length > 0) {
+ columnSize[columnSize.length - 1] = BI.clamp(o.width - BI.GridTableScrollbar.SIZE - regionSize - (summaryColumnSize - summaryFreezeColumnSize - columnSize[columnSize.length - 1]),
+ o.minColumnSize[columnSize.length - 1] || 10, o.maxColumnSize[columnSize.length - 1] || Number.MAX_VALUE);
+ }
+ regionColumnSize[0] = regionSize;
+
+ return {
+ freezeCols: freezeCols,
+ columnSize: columnSize,
+ regionColumnSize: regionColumnSize
+ }
+ },
+
+ _populate: function () {
+ var o = this.options;
+ var data = this._digest();
+ o.regionColumnSize = data.regionColumnSize;
+ o.columnSize = data.columnSize;
+ this.table.setColumnSize(data.columnSize);
+ this.table.setRegionColumnSize(data.regionColumnSize);
+ this.table.attr("freezeCols", data.freezeCols);
+ },
+
+ setWidth: function (width) {
+ BI.AdaptiveTable.superclass.setWidth.apply(this, arguments);
+ this.table.setWidth(width);
+ },
+
+ setHeight: function (height) {
+ BI.AdaptiveTable.superclass.setHeight.apply(this, arguments);
+ this.table.setHeight(height);
+ },
+
+ setColumnSize: function (columnSize) {
+ this.options.columnSize = columnSize;
+ },
+
+ getColumnSize: function () {
+ return this.table.getColumnSize();
+ },
+
+ setRegionColumnSize: function (regionColumnSize) {
+ this.options.regionColumnSize = regionColumnSize;
+ },
+
+ getRegionColumnSize: function () {
+ return this.table.getRegionColumnSize();
+ },
+
+ setVerticalScroll: function (scrollTop) {
+ this.table.setVerticalScroll(scrollTop);
+ },
+
+ setLeftHorizontalScroll: function (scrollLeft) {
+ this.table.setLeftHorizontalScroll(scrollLeft);
+ },
+
+ setRightHorizontalScroll: function (scrollLeft) {
+ this.table.setRightHorizontalScroll(scrollLeft);
+ },
+
+ getVerticalScroll: function () {
+ return this.table.getVerticalScroll();
+ },
+
+ getLeftHorizontalScroll: function () {
+ return this.table.getLeftHorizontalScroll();
+ },
+
+ getRightHorizontalScroll: function () {
+ return this.table.getRightHorizontalScroll();
+ },
+
+ attr: function (key, value) {
+ var v = BI.AdaptiveTable.superclass.attr.apply(this, arguments);
+ if (key === "freezeCols") {
+ return v;
+ }
+ return this.table.attr.apply(this.table, arguments);
+ },
+
+ restore: function () {
+ this.table.restore();
+ },
+
+ populate: function (items) {
+ var self = this, o = this.options;
+ this._populate();
+ this.table.populate.apply(this.table, arguments);
+ },
+
+ destroy: function () {
+ this.table.destroy();
+ BI.AdaptiveTable.superclass.destroy.apply(this, arguments);
+ }
+});
+BI.shortcut('bi.adaptive_table', BI.AdaptiveTable);/**
+ *
+ * 层级树状结构的表格
+ *
+ * Created by GUY on 2016/8/12.
+ * @class BI.DynamicSummaryLayerTreeTable
+ * @extends BI.Widget
+ */
+BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.DynamicSummaryLayerTreeTable.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-dynamic-summary-layer-tree-table",
+
+ el: {
+ type: "bi.resizable_table"
+ },
+ isNeedResize: true,//是否需要调整列宽
+ isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
+
+ isNeedFreeze: false,//是否需要冻结单元格
+ freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
+
+ isNeedMerge: true,//是否需要合并单元格
+ mergeCols: [],
+ mergeRule: BI.emptyFn,
+
+ columnSize: [],
+ minColumnSize: [],
+ maxColumnSize: [],
+ headerRowSize: 25,
+ footerRowSize: 25,
+ rowSize: 25,
+
+ regionColumnSize: [],
+
+ //行表头
+ rowHeaderCreator: null,
+
+ headerCellStyleGetter: BI.emptyFn,
+ summaryCellStyleGetter: BI.emptyFn,
+ sequenceCellStyleGetter: BI.emptyFn,
+
+ header: [],
+ footer: false,
+ items: [],
+
+ //交叉表头
+ crossHeader: [],
+ crossItems: []
+ })
+ },
+
+ _getVDeep: function () {
+ return this.options.crossHeader.length;//纵向深度
+ },
+
+ _getHDeep: function () {
+ var o = this.options;
+ return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
+ },
+
+ _createHeader: function (vDeep) {
+ var self = this, o = this.options;
+ var header = o.header || [], crossHeader = o.crossHeader || [];
+ var items = BI.TableTree.formatCrossItems(o.crossItems, vDeep, o.headerCellStyleGetter);
+ var result = [];
+ BI.each(items, function (row, node) {
+ var c = [crossHeader[row]];
+ result.push(c.concat(node || []));
+ });
+ if (header && header.length > 0) {
+ var newHeader = this._formatColumns(header);
+ var deep = this._getHDeep();
+ if (deep <= 0) {
+ newHeader.unshift(o.rowHeaderCreator || {
+ type: "bi.table_style_cell",
+ text: BI.i18nText("BI-Row_Header"),
+ styleGetter: o.headerCellStyleGetter
+ });
+ } else {
+ newHeader[0] = o.rowHeaderCreator || {
+ type: "bi.table_style_cell",
+ text: BI.i18nText("BI-Row_Header"),
+ styleGetter: o.headerCellStyleGetter
+ };
+ }
+ result.push(newHeader);
+ }
+ return result;
+ },
+
+ _formatItems: function (nodes, header, deep) {
+ var self = this, o = this.options;
+ var result = [];
+
+ function track(node, layer) {
+ node.type || (node.type = "bi.layer_tree_table_cell");
+ node.layer = layer;
+ var next = [node];
+ next = next.concat(node.values || []);
+ if (next.length > 0) {
+ result.push(next);
+ }
+ if (BI.isNotEmptyArray(node.children)) {
+ BI.each(node.children, function (index, child) {
+ track(child, layer + 1);
+ });
+ }
+ }
+
+ BI.each(nodes, function (i, node) {
+ BI.each(node.children, function (j, c) {
+ track(c, 0);
+ });
+ if (BI.isArray(node.values)) {
+ var next = [{
+ type: "bi.table_style_cell",
+ text: BI.i18nText("BI-Summary_Values"),
+ styleGetter: function () {
+ return o.summaryCellStyleGetter(true);
+ }
+ }].concat(node.values);
+ result.push(next)
+ }
+ });
+ return BI.DynamicSummaryTreeTable.formatSummaryItems(result, header, o.crossItems, 1);
+ },
+
+ _formatColumns: function (columns, deep) {
+ if (BI.isNotEmptyArray(columns)) {
+ deep = deep || this._getHDeep();
+ return columns.slice(Math.max(0, deep - 1));
+ }
+ return columns;
+ },
+
+ _formatFreezeCols: function () {
+ if (this.options.freezeCols.length > 0) {
+ return [0];
+ }
+ return [];
+ },
+
+ _formatColumnSize: function (columnSize, deep) {
+ if (columnSize.length <= 0) {
+ return [];
+ }
+ var result = [0];
+ deep = deep || this._getHDeep();
+ BI.each(columnSize, function (i, size) {
+ if (i < deep) {
+ result[0] += size;
+ return;
+ }
+ result.push(size);
+ });
+ return result;
+ },
+
+ _recomputeColumnSize: function () {
+ var o = this.options;
+ o.regionColumnSize = this.table.getRegionColumnSize();
+ var columnSize = this.table.getColumnSize().slice();
+ if (o.freezeCols.length > 1) {
+ for (var i = 0; i < o.freezeCols.length - 1; i++) {
+ columnSize.splice(1, 0, 0);
+ }
+ }
+ o.columnSize = columnSize;
+ },
+
+ _digest: function () {
+ var o = this.options;
+ var deep = this._getHDeep();
+ var vDeep = this._getVDeep();
+ var header = this._createHeader(vDeep);
+ var data = this._formatItems(o.items, header, deep);
+ var columnSize = o.columnSize.slice();
+ var minColumnSize = o.minColumnSize.slice();
+ var maxColumnSize = o.maxColumnSize.slice();
+ BI.removeAt(columnSize, data.deletedCols);
+ BI.removeAt(minColumnSize, data.deletedCols);
+ BI.removeAt(maxColumnSize, data.deletedCols);
+ return {
+ header: data.header,
+ items: data.items,
+ columnSize: this._formatColumnSize(columnSize, deep),
+ minColumnSize: this._formatColumns(minColumnSize, deep),
+ maxColumnSize: this._formatColumns(maxColumnSize, deep),
+ freezeCols: this._formatFreezeCols()
+ }
+ },
+
+ _init: function () {
+ BI.DynamicSummaryLayerTreeTable.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ var data = this._digest();
+ this.table = BI.createWidget(o.el, {
+ type: "bi.resizable_table",
+ element: this,
+ width: o.width,
+ height: o.height,
+ isNeedResize: o.isNeedResize,
+ isResizeAdapt: o.isResizeAdapt,
+ isNeedFreeze: o.isNeedFreeze,
+ freezeCols: data.freezeCols,
+ isNeedMerge: o.isNeedMerge,
+ mergeCols: [],
+ mergeRule: o.mergeRule,
+ columnSize: data.columnSize,
+ minColumnSize: data.minColumnSize,
+ maxColumnSize: data.maxColumnSize,
+ headerRowSize: o.headerRowSize,
+ rowSize: o.rowSize,
+ regionColumnSize: o.regionColumnSize,
+ header: data.header,
+ items: data.items
+ });
+ this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
+ self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
+ self._recomputeColumnSize();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
+ self._recomputeColumnSize();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
+ });
+ },
+
+ setWidth: function (width) {
+ BI.DynamicSummaryLayerTreeTable.superclass.setWidth.apply(this, arguments);
+ this.table.setWidth(width);
+ },
+
+ setHeight: function (height) {
+ BI.DynamicSummaryLayerTreeTable.superclass.setHeight.apply(this, arguments);
+ this.table.setHeight(height);
+ },
+
+ setColumnSize: function (columnSize) {
+ this.options.columnSize = columnSize;
+ },
+
+ getColumnSize: function () {
+ return this.options.columnSize;
+ },
+
+ setRegionColumnSize: function (columnSize) {
+ this.options.regionColumnSize = columnSize;
+ this.table.setRegionColumnSize(columnSize);
+ },
+
+ getRegionColumnSize: function () {
+ return this.table.getRegionColumnSize();
+ },
+
+ setVerticalScroll: function (scrollTop) {
+ this.table.setVerticalScroll(scrollTop);
+ },
+
+ setLeftHorizontalScroll: function (scrollLeft) {
+ this.table.setLeftHorizontalScroll(scrollLeft);
+ },
+
+ setRightHorizontalScroll: function (scrollLeft) {
+ this.table.setRightHorizontalScroll(scrollLeft);
+ },
+
+ getVerticalScroll: function () {
+ return this.table.getVerticalScroll();
+ },
+
+ getLeftHorizontalScroll: function () {
+ return this.table.getLeftHorizontalScroll();
+ },
+
+ getRightHorizontalScroll: function () {
+ return this.table.getRightHorizontalScroll();
+ },
+
+ attr: function (key, value) {
+ var self = this;
+ if (BI.isObject(key)) {
+ BI.each(key, function (k, v) {
+ self.attr(k, v);
+ });
+ return;
+ }
+ BI.DynamicSummaryLayerTreeTable.superclass.attr.apply(this, arguments);
+ switch (key) {
+ case "columnSize":
+ case "minColumnSize":
+ case "maxColumnSize":
+ case "freezeCols":
+ case "mergeCols":
+ return;
+ }
+ this.table.attr.apply(this.table, [key, value]);
+ },
+
+ restore: function () {
+ this.table.restore();
+ },
+
+ populate: function (items, header, crossItems, crossHeader) {
+ var o = this.options;
+ if (items) {
+ o.items = items;
+ }
+ if (header) {
+ o.header = header;
+ }
+ if (crossItems) {
+ o.crossItems = crossItems;
+ }
+ if (crossHeader) {
+ o.crossHeader = crossHeader;
+ }
+ var data = this._digest();
+ this.table.setColumnSize(data.columnSize);
+ this.table.attr("minColumnSize", data.minColumnSize);
+ this.table.attr("maxColumnSize", data.maxColumnSize);
+ this.table.attr("freezeCols", data.freezeCols);
+ this.table.populate(data.items, data.header);
+ },
+
+ destroy: function () {
+ this.table.destroy();
+ BI.DynamicSummaryLayerTreeTable.superclass.destroy.apply(this, arguments);
+ }
+});
+
+BI.shortcut("bi.dynamic_summary_layer_tree_table", BI.DynamicSummaryLayerTreeTable);/**
+ *
+ * 树状结构的表格
+ *
+ * Created by GUY on 2015/8/12.
+ * @class BI.DynamicSummaryTreeTable
+ * @extends BI.Widget
+ */
+BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.DynamicSummaryTreeTable.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-dynamic-summary-tree-table",
+ el: {
+ type: "bi.resizable_table"
+ },
+
+ isNeedResize: true,//是否需要调整列宽
+ isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
+
+ isNeedFreeze: false,//是否需要冻结单元格
+ freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
+
+ isNeedMerge: true,//是否需要合并单元格
+ mergeCols: [],
+ mergeRule: BI.emptyFn,
+
+ columnSize: [],
+ minColumnSize: [],
+ maxColumnSize: [],
+ headerRowSize: 25,
+ footerRowSize: 25,
+ rowSize: 25,
+
+ regionColumnSize: [],
+
+ headerCellStyleGetter: BI.emptyFn,
+ summaryCellStyleGetter: BI.emptyFn,
+ sequenceCellStyleGetter: BI.emptyFn,
+
+ header: [],
+ footer: false,
+ items: [],
+
+ //交叉表头
+ crossHeader: [],
+ crossItems: []
+ })
+ },
+
+ _getVDeep: function () {
+ return this.options.crossHeader.length;//纵向深度
+ },
+
+ _getHDeep: function () {
+ var o = this.options;
+ return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
+ },
+
+ _init: function () {
+ BI.DynamicSummaryTreeTable.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ var data = this._digest();
+ this.table = BI.createWidget(o.el, {
+ type: "bi.resizable_table",
+ element: this,
+ width: o.width,
+ height: o.height,
+
+ isNeedResize: o.isNeedResize,
+ isResizeAdapt: o.isResizeAdapt,
+
+ isNeedFreeze: o.isNeedFreeze,
+ freezeCols: o.freezeCols,
+ isNeedMerge: o.isNeedMerge,
+ mergeCols: o.mergeCols,
+ mergeRule: o.mergeRule,
+
+ columnSize: o.columnSize,
+ minColumnSize: o.minColumnSize,
+ maxColumnSize: o.maxColumnSize,
+ headerRowSize: o.headerRowSize,
+ rowSize: o.rowSize,
+
+ regionColumnSize: o.regionColumnSize,
+
+ header: data.header,
+ items: data.items
+ });
+ this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
+ self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
+ o.regionColumnSize = this.getRegionColumnSize();
+ var columnSize = this.getColumnSize();
+ var length = o.columnSize.length - columnSize.length;
+ o.columnSize = columnSize.slice();
+ o.columnSize = o.columnSize.concat(BI.makeArray(length, 0));
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
+ o.regionColumnSize = this.getRegionColumnSize();
+ var columnSize = this.getColumnSize();
+ var length = o.columnSize.length - columnSize.length;
+ o.columnSize = columnSize.slice();
+ o.columnSize = o.columnSize.concat(BI.makeArray(length, 0));
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
+ });
+ },
+
+ _digest: function () {
+ var o = this.options;
+ var deep = this._getHDeep();
+ var vDeep = this._getVDeep();
+ var header = BI.TableTree.formatHeader(o.header, o.crossHeader, o.crossItems, deep, vDeep, o.headerCellStyleGetter);
+ var items = BI.DynamicSummaryTreeTable.formatHorizontalItems(o.items, deep, false, o.summaryCellStyleGetter);
+ var data = BI.DynamicSummaryTreeTable.formatSummaryItems(items, header, o.crossItems, deep);
+ var columnSize = o.columnSize.slice();
+ var minColumnSize = o.minColumnSize.slice();
+ var maxColumnSize = o.maxColumnSize.slice();
+ BI.removeAt(columnSize, data.deletedCols);
+ BI.removeAt(minColumnSize, data.deletedCols);
+ BI.removeAt(maxColumnSize, data.deletedCols);
+ return {
+ header: data.header,
+ items: data.items,
+ columnSize: columnSize,
+ minColumnSize: minColumnSize,
+ maxColumnSize: maxColumnSize
+ };
+ },
+
+ setWidth: function (width) {
+ BI.DynamicSummaryTreeTable.superclass.setWidth.apply(this, arguments);
+ this.table.setWidth(width);
+ },
+
+ setHeight: function (height) {
+ BI.DynamicSummaryTreeTable.superclass.setHeight.apply(this, arguments);
+ this.table.setHeight(height);
+ },
+
+ setColumnSize: function (columnSize) {
+ this.options.columnSize = columnSize;
+ },
+
+ getColumnSize: function () {
+ return this.options.columnSize;
+ },
+
+ setRegionColumnSize: function (columnSize) {
+ this.options.regionColumnSize = columnSize;
+ this.table.setRegionColumnSize(columnSize);
+ },
+
+ getRegionColumnSize: function () {
+ return this.table.getRegionColumnSize();
+ },
+
+ setVerticalScroll: function (scrollTop) {
+ this.table.setVerticalScroll(scrollTop);
+ },
+
+ setLeftHorizontalScroll: function (scrollLeft) {
+ this.table.setLeftHorizontalScroll(scrollLeft);
+ },
+
+ setRightHorizontalScroll: function (scrollLeft) {
+ this.table.setRightHorizontalScroll(scrollLeft);
+ },
+
+ getVerticalScroll: function () {
+ return this.table.getVerticalScroll();
+ },
+
+ getLeftHorizontalScroll: function () {
+ return this.table.getLeftHorizontalScroll();
+ },
+
+ getRightHorizontalScroll: function () {
+ return this.table.getRightHorizontalScroll();
+ },
+
+ attr: function (key) {
+ BI.DynamicSummaryTreeTable.superclass.attr.apply(this, arguments);
+ switch (key) {
+ case "minColumnSize":
+ case "maxColumnSize":
+ return;
+ }
+ this.table.attr.apply(this.table, arguments);
+ },
+
+ restore: function () {
+ this.table.restore();
+ },
+
+ populate: function (items, header, crossItems, crossHeader) {
+ var o = this.options;
+ if (items) {
+ o.items = items;
+ }
+ if (header) {
+ o.header = header;
+ }
+ if (crossItems) {
+ o.crossItems = crossItems;
+ }
+ if (crossHeader) {
+ o.crossHeader = crossHeader;
+ }
+ var data = this._digest();
+ this.table.setColumnSize(data.columnSize);
+ this.table.attr("minColumnSize", data.minColumnSize);
+ this.table.attr("maxColumnSize", data.maxColumnSize);
+ this.table.populate(data.items, data.header);
+ },
+
+ destroy: function () {
+ this.table.destroy();
+ BI.DynamicSummaryTreeTable.superclass.destroy.apply(this, arguments);
+ }
+});
+
+BI.extend(BI.DynamicSummaryTreeTable, {
+
+ formatHorizontalItems: function (nodes, deep, isCross, styleGetter) {
+ var result = [];
+
+ function track(store, node) {
+ var next;
+ if (BI.isArray(node.children)) {
+ BI.each(node.children, function (index, child) {
+ var next;
+ if (store != -1) {
+ next = store.slice();
+ next.push(node);
+ } else {
+ next = [];
+ }
+ track(next, child);
+ });
+ if (store != -1) {
+ next = store.slice();
+ next.push(node);
+ } else {
+ next = [];
+ }
+ if ((store == -1 || node.children.length > 1) && BI.isNotEmptyArray(node.values)) {
+ var summary = {
+ text: BI.i18nText("BI-Summary_Values"),
+ type: "bi.table_style_cell",
+ styleGetter: function () {
+ return styleGetter(store === -1)
+ }
+ };
+ for (var i = next.length; i < deep; i++) {
+ next.push(summary);
+ }
+ if (!isCross) {
+ next = next.concat(node.values);
+ }
+ if (next.length > 0) {
+ if (!isCross) {
+ result.push(next);
+ } else {
+ for (var k = 0, l = node.values.length; k < l; k++) {
+ result.push(next);
+ }
+ }
+ }
+ }
+ return;
+ }
+ if (store != -1) {
+ next = store.slice();
+ for (var i = next.length; i < deep; i++) {
+ next.push(node);
+ }
+ } else {
+ next = [];
+ }
+ if (!isCross && BI.isArray(node.values)) {
+ next = next.concat(node.values);
+ }
+ if (isCross && BI.isArray(node.values)) {
+ for (var i = 0, len = node.values.length; i < len - 1; i++) {
+ if (next.length > 0) {
+ result.push(next);
+ }
+ }
+ }
+ if (next.length > 0) {
+ result.push(next);
+ }
+ }
+
+ BI.each(nodes, function (i, node) {
+ track(-1, node);
+ });
+ //填充空位
+ BI.each(result, function (i, line) {
+ var last = BI.last(line);
+ for (var j = line.length; j < deep; j++) {
+ line.push(last);
+ }
+ });
+ return result;
+ },
+
+ formatSummaryItems: function (items, header, crossItems, deep) {
+ //求纵向需要去除的列
+ var cols = [];
+ var leaf = 0;
+
+ function track(node) {
+ if (BI.isArray(node.children)) {
+ BI.each(node.children, function (index, child) {
+ track(child);
+ });
+ if (BI.isNotEmptyArray(node.values)) {
+ if (node.children.length === 1) {
+ for (var i = 0; i < node.values.length; i++) {
+ cols.push(leaf + i + deep);
+ }
+ }
+ leaf += node.values.length;
+ }
+ return;
+ }
+ if (node.values && node.values.length > 1) {
+ leaf += node.values.length;
+ } else {
+ leaf++;
+ }
+ }
+
+ BI.each(crossItems, function (i, node) {
+ track(node);
+ });
+
+ if (cols.length > 0) {
+ var nHeader = [], nItems = [];
+ BI.each(header, function (i, node) {
+ var nNode = node.slice();
+ BI.removeAt(nNode, cols);
+ nHeader.push(nNode);
+ });
+ BI.each(items, function (i, node) {
+ var nNode = node.slice();
+ BI.removeAt(nNode, cols);
+ nItems.push(nNode);;
+ });
+ header = nHeader;
+ items = nItems;
+ }
+ return {items: items, header: header, deletedCols: cols};
+ }
+});
+
+BI.shortcut("bi.dynamic_summary_tree_table", BI.DynamicSummaryTreeTable);/**
+ * Created by GUY on 2016/5/7.
+ * @class BI.LayerTreeTableCell
+ * @extends BI.Single
+ */
+BI.LayerTreeTableCell = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.LayerTreeTableCell.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-layer-tree-table-cell",
+ layer: 0,
+ text: ""
+ })
+ },
+
+ _init: function () {
+ BI.LayerTreeTableCell.superclass._init.apply(this, arguments);
+ var o = this.options;
+ BI.createWidget({
+ type: "bi.label",
+ element: this.element,
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ height: o.height,
+ text: o.text,
+ value: o.value,
+ lgap: 5 + 30 * o.layer,
+ rgap: 5
+ })
+ }
+});
+
+BI.shortcut("bi.layer_tree_table_cell", BI.LayerTreeTableCell);/**
+ *
+ * 层级树状结构的表格
+ *
+ * Created by GUY on 2016/5/7.
+ * @class BI.LayerTreeTable
+ * @extends BI.Widget
+ */
+BI.LayerTreeTable = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.LayerTreeTable.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-layer-tree-table",
+ el: {
+ type: "bi.resizable_table"
+ },
+
+ isNeedResize: false,//是否需要调整列宽
+ isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
+
+ isNeedFreeze: false,//是否需要冻结单元格
+ freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
+
+ isNeedMerge: true,//是否需要合并单元格
+ mergeCols: [],
+ mergeRule: BI.emptyFn,
+
+ columnSize: [],
+ minColumnSize: [],
+ maxColumnSize: [],
+
+ headerRowSize: 25,
+ rowSize: 25,
+
+ regionColumnSize: [],
+
+ rowHeaderCreator: null,
+
+ headerCellStyleGetter: BI.emptyFn,
+ summaryCellStyleGetter: BI.emptyFn,
+ sequenceCellStyleGetter: BI.emptyFn,
+
+ header: [],
+ items: [],
+
+ //交叉表头
+ crossHeader: [],
+ crossItems: []
+ })
+ },
+
+ _getVDeep: function () {
+ return this.options.crossHeader.length;//纵向深度
+ },
+
+ _getHDeep: function () {
+ var o = this.options;
+ return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
+ },
+
+ _createHeader: function (vDeep) {
+ var self = this, o = this.options;
+ var header = o.header || [], crossHeader = o.crossHeader || [];
+ var items = BI.TableTree.formatCrossItems(o.crossItems, vDeep, o.headerCellStyleGetter);
+ var result = [];
+ BI.each(items, function (row, node) {
+ var c = [crossHeader[row]];
+ result.push(c.concat(node || []));
+ });
+ if (header && header.length > 0) {
+ var newHeader = this._formatColumns(header);
+ var deep = this._getHDeep();
+ if (deep <= 0) {
+ newHeader.unshift(o.rowHeaderCreator || {
+ type: "bi.table_style_cell",
+ text: BI.i18nText("BI-Row_Header"),
+ styleGetter: o.headerCellStyleGetter
+ });
+ } else {
+ newHeader[0] = o.rowHeaderCreator || {
+ type: "bi.table_style_cell",
+ text: BI.i18nText("BI-Row_Header"),
+ styleGetter: o.headerCellStyleGetter
+ };
+ }
+ result.push(newHeader);
+ }
+ return result;
+ },
+
+ _formatItems: function (nodes) {
+ var self = this, o = this.options;
+ var result = [];
+
+ function track(node, layer) {
+ node.type || (node.type = "bi.layer_tree_table_cell");
+ node.layer = layer;
+ var next = [node];
+ next = next.concat(node.values || []);
+ if (next.length > 0) {
+ result.push(next);
+ }
+ if (BI.isNotEmptyArray(node.children)) {
+ BI.each(node.children, function (index, child) {
+ track(child, layer + 1);
+ });
+ }
+ }
+
+ BI.each(nodes, function (i, node) {
+ BI.each(node.children, function (j, c) {
+ track(c, 0);
+ });
+ if (BI.isArray(node.values)) {
+ var next = [{
+ type: "bi.table_style_cell", text: BI.i18nText("BI-Summary_Values"), styleGetter: function () {
+ return o.summaryCellStyleGetter(true);
+ }
+ }].concat(node.values);
+ result.push(next)
+ }
+ });
+ return result;
+ },
+
+ _formatColumns: function (columns, deep) {
+ if (BI.isNotEmptyArray(columns)) {
+ deep = deep || this._getHDeep();
+ return columns.slice(Math.max(0, deep - 1));
+ }
+ return columns;
+ },
+
+ _formatFreezeCols: function () {
+ if (this.options.freezeCols.length > 0) {
+ return [0];
+ }
+ return [];
+ },
+
+ _formatColumnSize: function (columnSize, deep) {
+ if (columnSize.length <= 0) {
+ return [];
+ }
+ var result = [0];
+ deep = deep || this._getHDeep();
+ BI.each(columnSize, function (i, size) {
+ if (i < deep) {
+ result[0] += size;
+ return;
+ }
+ result.push(size);
+ });
+ return result;
+ },
+
+ _digest: function () {
+ var o = this.options;
+ var deep = this._getHDeep();
+ var vDeep = this._getVDeep();
+ return {
+ header: this._createHeader(vDeep),
+ items: this._formatItems(o.items),
+ columnSize: this._formatColumnSize(o.columnSize, deep),
+ minColumnSize: this._formatColumns(o.minColumnSize, deep),
+ maxColumnSize: this._formatColumns(o.maxColumnSize, deep),
+ freezeCols: this._formatFreezeCols()
+ }
+ },
+
+ _init: function () {
+ BI.LayerTreeTable.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+
+ var data = this._digest();
+ this.table = BI.createWidget(o.el, {
+ type: "bi.resizable_table",
+ element: this,
+ width: o.width,
+ height: o.height,
+ isNeedResize: o.isNeedResize,
+ isResizeAdapt: o.isResizeAdapt,
+ isNeedFreeze: o.isNeedFreeze,
+ freezeCols: data.freezeCols,
+ isNeedMerge: o.isNeedMerge,
+ mergeCols: [],
+ mergeRule: o.mergeRule,
+ columnSize: data.columnSize,
+ minColumnSize: data.minColumnSize,
+ maxColumnSize: data.maxColumnSize,
+ headerRowSize: o.headerRowSize,
+ rowSize: o.rowSize,
+ regionColumnSize: o.regionColumnSize,
+ header: data.header,
+ items: data.items
+ });
+ this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
+ self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
+ o.regionColumnSize = this.getRegionColumnSize();
+ o.columnSize = this.getColumnSize();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
+ o.regionColumnSize = this.getRegionColumnSize();
+ o.columnSize = this.getColumnSize();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
+ });
+ },
+
+ setWidth: function (width) {
+ BI.LayerTreeTable.superclass.setWidth.apply(this, arguments);
+ this.table.setWidth(width);
+ },
+
+ setHeight: function (height) {
+ BI.LayerTreeTable.superclass.setHeight.apply(this, arguments);
+ this.table.setHeight(height);
+ },
+
+ setColumnSize: function (columnSize) {
+ this.options.columnSize = columnSize;
+ },
+
+ getColumnSize: function () {
+ var columnSize = this.table.getColumnSize();
+ var deep = this._getHDeep();
+ var pre = [];
+ if (deep > 0) {
+ pre = BI.makeArray(deep, columnSize[0] / deep);
+ }
+ return pre.concat(columnSize.slice(1));
+ },
+
+ setRegionColumnSize: function (columnSize) {
+ this.options.regionColumnSize = columnSize;
+ this.table.setRegionColumnSize(columnSize);
+ },
+
+ getRegionColumnSize: function () {
+ return this.table.getRegionColumnSize();
+ },
+
+ setVerticalScroll: function (scrollTop) {
+ this.table.setVerticalScroll(scrollTop);
+ },
+
+ setLeftHorizontalScroll: function (scrollLeft) {
+ this.table.setLeftHorizontalScroll(scrollLeft);
+ },
+
+ setRightHorizontalScroll: function (scrollLeft) {
+ this.table.setRightHorizontalScroll(scrollLeft);
+ },
+
+ getVerticalScroll: function () {
+ return this.table.getVerticalScroll();
+ },
+
+ getLeftHorizontalScroll: function () {
+ return this.table.getLeftHorizontalScroll();
+ },
+
+ getRightHorizontalScroll: function () {
+ return this.table.getRightHorizontalScroll();
+ },
+
+ attr: function (key, value) {
+ var self = this;
+ if (BI.isObject(key)) {
+ BI.each(key, function (k, v) {
+ self.attr(k, v);
+ });
+ return;
+ }
+ BI.LayerTreeTable.superclass.attr.apply(this, arguments);
+ switch (key) {
+ case "columnSize":
+ case "minColumnSize":
+ case "maxColumnSize":
+ case "freezeCols":
+ case "mergeCols":
+ return;
+ }
+ this.table.attr.apply(this.table, [key, value]);
+ },
+
+ restore: function () {
+ this.table.restore();
+ },
+
+ populate: function (items, header, crossItems, crossHeader) {
+ var o = this.options;
+ o.items = items || [];
+ if (header) {
+ o.header = header;
+ }
+ if (crossItems) {
+ o.crossItems = crossItems;
+ }
+ if (crossHeader) {
+ o.crossHeader = crossHeader;
+ }
+ var data = this._digest();
+ this.table.setColumnSize(data.columnSize);
+ this.table.attr("freezeCols", data.freezeCols);
+ this.table.attr("minColumnSize", data.minColumnSize);
+ this.table.attr("maxColumnSize", data.maxColumnSize);
+ this.table.populate(data.items, data.header);
+ },
+
+ destroy: function () {
+ this.table.destroy();
+ BI.LayerTreeTable.superclass.destroy.apply(this, arguments);
+ }
+});
+
+BI.shortcut("bi.layer_tree_table", BI.LayerTreeTable);/**
+ *
+ * Created by GUY on 2016/5/26.
+ * @class BI.TableStyleCell
+ * @extends BI.Single
+ */
+BI.TableStyleCell = BI.inherit(BI.Single, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.TableStyleCell.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-table-style-cell",
+ styleGetter: BI.emptyFn
+ });
+ },
+
+ _init: function () {
+ BI.TableStyleCell.superclass._init.apply(this, arguments);
+ var o = this.options;
+ this.text = BI.createWidget({
+ type: "bi.label",
+ element: this,
+ textAlign: "left",
+ forceCenter: true,
+ hgap: 5,
+ text: o.text
+ });
+ this._digestStyle();
+ },
+
+ _digestStyle: function () {
+ var o = this.options;
+ var style = o.styleGetter();
+ if (style) {
+ this.text.element.css(style);
+ }
+ },
+
+ setText: function (text) {
+ this.text.setText(text);
+ },
+
+ populate: function () {
+ this._digestStyle();
+ }
+});
+BI.shortcut('bi.table_style_cell', BI.TableStyleCell);/**
+ *
+ * 树状结构的表格
+ *
+ * Created by GUY on 2015/9/22.
+ * @class BI.TableTree
+ * @extends BI.Widget
+ */
+BI.TableTree = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.TableTree.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-table-tree",
+ el: {
+ type: "bi.resizable_table"
+ },
+ isNeedResize: true,//是否需要调整列宽
+ isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
+
+ freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
+
+ isNeedMerge: true,//是否需要合并单元格
+ mergeCols: [],
+ mergeRule: BI.emptyFn,
+
+ columnSize: [],
+ minColumnSize: [],
+ maxColumnSize: [],
+ headerRowSize: 25,
+ rowSize: 25,
+
+ regionColumnSize: [],
+
+ headerCellStyleGetter: BI.emptyFn,
+ summaryCellStyleGetter: BI.emptyFn,
+ sequenceCellStyleGetter: BI.emptyFn,
+
+ header: [],
+ items: [],
+
+ //交叉表头
+ crossHeader: [],
+ crossItems: []
+ })
+ },
+
+ _getVDeep: function () {
+ return this.options.crossHeader.length;//纵向深度
+ },
+
+ _getHDeep: function () {
+ var o = this.options;
+ return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
+ },
+
+ _init: function () {
+ BI.TableTree.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ var data = this._digest();
+ this.table = BI.createWidget(o.el, {
+ type: "bi.resizable_table",
+ element: this,
+ width: o.width,
+ height: o.height,
+ isNeedResize: o.isNeedResize,
+ isResizeAdapt: o.isResizeAdapt,
+
+ isNeedFreeze: o.isNeedFreeze,
+ freezeCols: o.freezeCols,
+ isNeedMerge: o.isNeedMerge,
+ mergeCols: o.mergeCols,
+ mergeRule: o.mergeRule,
+
+ columnSize: o.columnSize,
+ minColumnSize: o.minColumnSize,
+ maxColumnSize: o.maxColumnSize,
+
+ headerRowSize: o.headerRowSize,
+ rowSize: o.rowSize,
+
+ regionColumnSize: o.regionColumnSize,
+
+ header: data.header,
+ items: data.items
+ });
+ this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
+ self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
+ o.regionColumnSize = this.getRegionColumnSize();
+ o.columnSize = this.getColumnSize();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
+ });
+ this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
+ o.regionColumnSize = this.getRegionColumnSize();
+ o.columnSize = this.getColumnSize();
+ self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
+ });
+ },
+
+ _digest: function () {
+ var self = this, o = this.options;
+ var deep = this._getHDeep();
+ var vDeep = this._getVDeep();
+ var header = BI.TableTree.formatHeader(o.header, o.crossHeader, o.crossItems, deep, vDeep, o.headerCellStyleGetter);
+ var items = BI.TableTree.formatItems(o.items, deep, false, o.summaryCellStyleGetter);
+ return {
+ header: header,
+ items: items
+ }
+ },
+
+ setWidth: function (width) {
+ BI.TableTree.superclass.setWidth.apply(this, arguments);
+ this.table.setWidth(width);
+ },
+
+ setHeight: function (height) {
+ BI.TableTree.superclass.setHeight.apply(this, arguments);
+ this.table.setHeight(height);
+ },
+
+ setColumnSize: function (columnSize) {
+ this.options.columnSize = columnSize;
+ this.table.setColumnSize(columnSize);
+ },
+
+ getColumnSize: function () {
+ return this.table.getColumnSize();
+ },
+
+ setRegionColumnSize: function (columnSize) {
+ this.options.regionColumnSize = columnSize;
+ this.table.setRegionColumnSize(columnSize);
+ },
+
+ getRegionColumnSize: function () {
+ return this.table.getRegionColumnSize();
+ },
+
+ setVerticalScroll: function (scrollTop) {
+ this.table.setVerticalScroll(scrollTop);
+ },
+
+ setLeftHorizontalScroll: function (scrollLeft) {
+ this.table.setLeftHorizontalScroll(scrollLeft);
+ },
+
+ setRightHorizontalScroll: function (scrollLeft) {
+ this.table.setRightHorizontalScroll(scrollLeft);
+ },
+
+ getVerticalScroll: function () {
+ return this.table.getVerticalScroll();
+ },
+
+ getLeftHorizontalScroll: function () {
+ return this.table.getLeftHorizontalScroll();
+ },
+
+ getRightHorizontalScroll: function () {
+ return this.table.getRightHorizontalScroll();
+ },
+
+ attr: function () {
+ BI.TableTree.superclass.attr.apply(this, arguments);
+ this.table.attr.apply(this.table, arguments);
+ },
+
+ restore: function () {
+ this.table.restore();
+ },
+
+ populate: function (items, header, crossItems, crossHeader) {
+ var o = this.options;
+ if (items) {
+ o.items = items || [];
+ }
+ if (header) {
+ o.header = header;
+ }
+ if (crossItems) {
+ o.crossItems = crossItems;
+ }
+ if (crossHeader) {
+ o.crossHeader = crossHeader;
+ }
+ var data = this._digest();
+ this.table.populate(data.items, data.header);
+ },
+
+ destroy: function () {
+ this.table.destroy();
+ BI.TableTree.superclass.destroy.apply(this, arguments);
+ }
+});
+
+BI.extend(BI.TableTree, {
+ formatHeader: function (header, crossHeader, crossItems, hDeep, vDeep, styleGetter) {
+ var items = BI.TableTree.formatCrossItems(crossItems, vDeep, styleGetter);
+ var result = [];
+ for (var i = 0; i < vDeep; i++) {
+ var c = [];
+ for (var j = 0; j < hDeep; j++) {
+ c.push(crossHeader[i]);
+ }
+ result.push(c.concat(items[i] || []));
+ }
+ if (header && header.length > 0) {
+ result.push(header);
+ }
+ return result;
+ },
+
+ formatItems: function (nodes, deep, isCross, styleGetter) {
+ var self = this;
+ var result = [];
+
+ function track(store, node) {
+ var next;
+ if (BI.isArray(node.children)) {
+ BI.each(node.children, function (index, child) {
+ var next;
+ if (store != -1) {
+ next = store.slice();
+ next.push(node);
+ } else {
+ next = [];
+ }
+ track(next, child);
+ });
+ if (store != -1) {
+ next = store.slice();
+ next.push(node);
+ } else {
+ next = [];
+ }
+ if (/**(store == -1 || node.children.length > 1) &&**/ BI.isNotEmptyArray(node.values)) {
+ var summary = {
+ text: BI.i18nText("BI-Summary_Values"),
+ type: "bi.table_style_cell",
+ styleGetter: function () {
+ return styleGetter(store === -1)
+ }
+ };
+ for (var i = next.length; i < deep; i++) {
+ next.push(summary);
+ }
+ if (!isCross) {
+ next = next.concat(node.values);
+ }
+ if (next.length > 0) {
+ if (!isCross) {
+ result.push(next);
+ } else {
+ for (var k = 0, l = node.values.length; k < l; k++) {
+ result.push(next);
+ }
+ }
+ }
+ }
+
+ return;
+ }
+ if (store != -1) {
+ next = store.slice();
+ for (var i = next.length; i < deep; i++) {
+ next.push(node);
+ }
+ } else {
+ next = [];
+ }
+ if (!isCross && BI.isArray(node.values)) {
+ next = next.concat(node.values);
+ }
+ if (isCross && BI.isArray(node.values)) {
+ for (var i = 0, len = node.values.length; i < len - 1; i++) {
+ if (next.length > 0) {
+ result.push(next);
+ }
+ }
+ }
+ if (next.length > 0) {
+ result.push(next);
+ }
+ }
+
+ BI.each(nodes, function (i, node) {
+ track(-1, node);
+ });
+ //填充空位
+ BI.each(result, function (i, line) {
+ var last = BI.last(line);
+ for (var j = line.length; j < deep; j++) {
+ line.push(last);
+ }
+ });
+ return result;
+ },
+
+ formatCrossItems: function (nodes, deep, styleGetter) {
+ var items = BI.TableTree.formatItems(nodes, deep, true, styleGetter);
+ return BI.unzip(items);
+ },
+
+ maxDeep: function (nodes) {
+ function track(deep, node) {
+ var d = deep;
+ if (BI.isNotEmptyArray(node.children)) {
+ BI.each(node.children, function (index, child) {
+ d = Math.max(d, track(deep + 1, child));
+ });
+ }
+ return d;
+ }
+
+ var deep = 1;
+ if (BI.isObject(nodes)) {
+ BI.each(nodes, function (i, node) {
+ deep = Math.max(deep, track(1, node));
+ });
+ }
+ return deep;
+ }
+});
+
+BI.shortcut("bi.tree_table", BI.TableTree);/**
+ * guy
+ * 复选导航条
+ * Created by GUY on 2015/8/25.
+ * @class BI.MultiSelectBar
+ * @extends BI.BasicButton
+ */
+BI.MultiSelectBar = BI.inherit(BI.BasicButton, {
+ _defaultConfig: function () {
+ return BI.extend(BI.MultiSelectBar.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-multi-select-bar",
+ height: 25,
+ text: BI.i18nText('BI-Select_All'),
+ isAllCheckedBySelectedValue: BI.emptyFn,
+ //手动控制选中
+ disableSelected: true,
+ isHalfCheckedBySelectedValue: function (selectedValues) {
+ return selectedValues.length > 0;
+ }
+ })
+ },
+ _init: function () {
+ BI.MultiSelectBar.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.checkbox = BI.createWidget({
+ type: "bi.checkbox",
+ stopPropagation: true,
+ handler: function () {
+ self.setSelected(self.isSelected());
+ }
+ });
+ this.half = BI.createWidget({
+ type: "bi.half_icon_button",
+ stopPropagation: true,
+ handler: function () {
+ self.setSelected(true);
+ }
+ });
+ this.checkbox.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.CLICK, self.isSelected(), self);
+ });
+ this.half.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.CLICK, self.isSelected(), self);
+ });
+ this.half.on(BI.HalfIconButton.EVENT_CHANGE, function () {
+ self.fireEvent(BI.MultiSelectBar.EVENT_CHANGE, self.isSelected(), self);
+ });
+ this.checkbox.on(BI.Checkbox.EVENT_CHANGE, function () {
+ self.fireEvent(BI.MultiSelectBar.EVENT_CHANGE, self.isSelected(), self);
+ });
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ whiteSpace: "nowrap",
+ textHeight: o.height,
+ height: o.height,
+ hgap: o.hgap,
+ text: o.text,
+ keyword: o.keyword,
+ value: o.value,
+ py: o.py
});
- pos.el = this.triangle;
BI.createWidget({
- type: "bi.absolute",
+ type: "bi.htape",
element: this,
- items: [pos]
- })
+ items: [{
+ width: 36,
+ el: {
+ type: "bi.center_adapt",
+ items: [this.checkbox, this.half]
+ }
+ }, {
+ el: this.text
+ }]
+ });
+ this.half.invisible();
},
- _createLeftTriangle: function () {
- this._createTriangle("left");
+ //自己手动控制选中
+ beforeClick: function () {
+ var isHalf = this.isHalfSelected(), isSelected = this.isSelected();
+ if (isHalf === true) {
+ this.setSelected(true);
+ } else {
+ this.setSelected(!isSelected);
+ }
},
- _createRightTriangle: function () {
- this._createTriangle("right");
+ setSelected: function (v) {
+ this.checkbox.setSelected(v);
+ this.setHalfSelected(false);
},
- _createTopTriangle: function () {
- this._createTriangle("top");
+ setHalfSelected: function (b) {
+ this._half = !!b;
+ if (b === true) {
+ this.half.visible();
+ this.checkbox.invisible();
+ } else {
+ this.half.invisible();
+ this.checkbox.visible();
+ }
},
- _createBottomTriangle: function () {
- this._createTriangle("bottom");
+ isHalfSelected: function () {
+ return !!this._half;
},
- _showTriangle: function () {
- var pos = this.combo.getPopupPosition();
- switch (pos.dir) {
- case "left,top":
- case "left,bottom":
- this._createLeftTriangle();
- this.combo.getView().showLine("right");
- break;
- case "right,top":
- case "right,bottom":
- this._createRightTriangle();
- this.combo.getView().showLine("left");
- break;
- case "top,left":
- case "top,right":
- this._createTopTriangle();
- this.combo.getView().showLine("bottom");
- break;
- case "bottom,left":
- case "bottom,right":
- this._createBottomTriangle();
- this.combo.getView().showLine("top");
- break;
- }
+ isSelected: function () {
+ return this.checkbox.isSelected();
},
- _hideTriangle: function () {
- this.triangle && this.triangle.destroy();
- this.triangle = null;
- this.combo.getView() && this.combo.getView().hideLine();
+ setValue: function (selectedValues) {
+ BI.MultiSelectBar.superclass.setValue.apply(this, arguments);
+ var isAllChecked = this.options.isAllCheckedBySelectedValue.apply(this, arguments);
+ this.setSelected(isAllChecked);
+ !isAllChecked && this.setHalfSelected(this.options.isHalfCheckedBySelectedValue.apply(this, arguments));
+ }
+});
+BI.MultiSelectBar.EVENT_CHANGE = "MultiSelectBar.EVENT_CHANGE";
+BI.shortcut("bi.multi_select_bar", BI.MultiSelectBar);/**
+ * 倒立的Branch
+ * @class BI.HandStandBranchExpander
+ * @extend BI.Widget
+ * create by young
+ */
+BI.HandStandBranchExpander = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.HandStandBranchExpander.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-handstand-branch-expander",
+ direction: BI.Direction.Top,
+ logic: {
+ dynamic: true
+ },
+ el: {type: "bi.label"},
+ popup: {}
+ })
},
- hideView: function () {
- this._hideTriangle();
- this.combo && this.combo.hideView();
+ _init: function () {
+ BI.HandStandBranchExpander.superclass._init.apply(this, arguments);
+ var o = this.options;
+ this._initExpander();
+ this._initBranchView();
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(o.direction), BI.extend({}, o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection(o.direction, {
+ type: "bi.center_adapt",
+ items: [this.expander]
+ }, this.branchView)
+ }))));
},
- showView: function () {
- this.combo && this.combo.showView();
+ _initExpander: function () {
+ var self = this, o = this.options;
+ this.expander = BI.createWidget(o.el);
+ this.expander.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
},
- isViewVisible: function () {
- return this.combo.isViewVisible();
- }
-});
-
-BI.BubbleCombo.EVENT_TRIGGER_CHANGE = "EVENT_TRIGGER_CHANGE";
-BI.BubbleCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.BubbleCombo.EVENT_EXPAND = "EVENT_EXPAND";
-BI.BubbleCombo.EVENT_COLLAPSE = "EVENT_COLLAPSE";
-BI.BubbleCombo.EVENT_AFTER_INIT = "EVENT_AFTER_INIT";
+ _initBranchView: function () {
+ var self = this, o = this.options;
+ this.branchView = BI.createWidget(o.popup, {});
+ this.branchView.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ },
+ populate: function (items) {
+ this.branchView.populate.apply(this.branchView, arguments);
+ },
-BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
-BI.BubbleCombo.EVENT_AFTER_POPUPVIEW = "EVENT_AFTER_POPUPVIEW";
-BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW = "EVENT_BEFORE_HIDEVIEW";
-BI.BubbleCombo.EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
-BI.shortcut("bi.bubble_combo", BI.BubbleCombo);/**
- * Created by GUY on 2017/2/8.
- *
- * @class BI.BubblePopupView
- * @extends BI.PopupView
- */
-BI.BubblePopupView = BI.inherit(BI.PopupView, {
- _defaultConfig: function () {
- var config = BI.BubblePopupView.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(config, {
- baseCls: config.baseCls + " bi-bubble-popup-view"
- })
- },
- _init: function () {
- BI.BubblePopupView.superclass._init.apply(this, arguments);
- },
-
- showLine: function (direction) {
- var pos = {}, op = {};
- switch (direction) {
- case "left":
- pos = {
- top: 0,
- bottom: 0,
- left: -1
- };
- op = {width: 3};
- break;
- case "right":
- pos = {
- top: 0,
- bottom: 0,
- right: -1
- };
- op = {width: 3};
- break;
- case "top":
- pos = {
- left: 0,
- right: 0,
- top: -1
- };
- op = {height: 3};
- break;
- case "bottom":
- pos = {
- left: 0,
- right: 0,
- bottom: -1
- };
- op = {height: 3};
- break;
- default:
- break;
- }
- this.line = BI.createWidget(op, {
- type: "bi.layout",
- cls: "bubble-popup-line bi-high-light-background"
- });
- pos.el = this.line;
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [pos]
- })
- },
-
- hideLine: function () {
- this.line && this.line.destroy();
- }
-});
-
-BI.shortcut("bi.bubble_popup_view", BI.BubblePopupView);
-
-/**
- * Created by GUY on 2017/2/8.
- *
- * @class BI.BubblePopupBarView
- * @extends BI.BubblePopupView
- */
-BI.BubblePopupBarView = BI.inherit(BI.BubblePopupView, {
- _defaultConfig: function () {
- return BI.extend(BI.BubblePopupBarView.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-bubble-bar-popup-view",
- buttons: [{value: BI.i18nText(BI.i18nText("BI-Basic_Sure"))}, {value: BI.i18nText("BI-Basic_Cancel"), level: "ignore"}]
- })
- },
- _init: function () {
- BI.BubblePopupBarView.superclass._init.apply(this, arguments);
- },
- _createToolBar: function () {
- var o = this.options, self = this;
-
- var items = [];
- BI.each(o.buttons.reverse(), function (i, buttonOpt) {
- if(BI.isWidget(buttonOpt)){
- items.push(buttonOpt);
- }else{
- items.push(BI.extend({
- type: 'bi.button',
- height: 30,
- handler: function (v) {
- self.fireEvent(BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON, v);
- }
- }, buttonOpt))
- }
- });
- return BI.createWidget({
- type: 'bi.right_vertical_adapt',
- height: 40,
- hgap: 10,
- bgap: 10,
- items: items
- });
- }
-});
-BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON";
-BI.shortcut("bi.bubble_bar_popup_view", BI.BubblePopupBarView);/**
- * Created by Young's on 2016/4/28.
- */
-BI.EditorIconCheckCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.EditorIconCheckCombo.superclass._defaultConfig.apply(this, arguments), {
- baseClass: "bi-check-editor-combo",
- width: 100,
- height: 30,
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn,
- allowBlank: true,
- watermark: "",
- errorText: ""
- })
- },
-
- _init: function () {
- BI.EditorIconCheckCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget({
- type: "bi.editor_trigger",
- items: o.items,
- height: o.height,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker,
- allowBlank: o.allowBlank,
- watermark: o.watermark,
- errorText: o.errorText
- });
- this.trigger.on(BI.EditorTrigger.EVENT_CHANGE, function () {
- self.popup.setValue(this.getValue());
- self.fireEvent(BI.EditorIconCheckCombo.EVENT_CHANGE);
- });
- this.popup = BI.createWidget({
- type: "bi.text_value_check_combo_popup",
- chooseType: o.chooseType,
- items: o.items
- });
- this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE, function () {
- self.setValue(self.popup.getValue());
- self.editorIconCheckCombo.hideView();
- self.fireEvent(BI.EditorIconCheckCombo.EVENT_CHANGE);
- });
- this.popup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.editorIconCheckCombo = BI.createWidget({
- type: "bi.combo",
- element: this,
- adjustLength: 2,
- el: this.trigger,
- popup: {
- el: this.popup,
- maxHeight: 300
- }
- });
- },
-
- setValue: function (v) {
- this.editorIconCheckCombo.setValue(v);
- },
-
- getValue: function () {
- return this.trigger.getValue();
- },
-
- populate: function (items) {
- this.options.items = items;
- this.editorIconCheckCombo.populate(items);
- }
-});
-BI.EditorIconCheckCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.editor_icon_check_combo", BI.EditorIconCheckCombo);/**
- * Created by GUY on 2016/4/25.
- *
- * @class BI.FormulaCombo
- * @extend BI.Widget
- */
-BI.FormulaCombo = BI.inherit(BI.Widget, {
-
- _constant: {
- POPUP_HEIGHT: 450,
- POPUP_WIDTH: 600,
- POPUP_V_GAP: 10,
- POPUP_H_GAP: 10,
- ADJUST_LENGTH: 2,
- HEIGHT_MAX: 10000,
- MAX_HEIGHT: 500,
- MAX_WIDTH: 600,
- COMBO_TRIGGER_WIDTH: 300
- },
-
- _defaultConfig: function () {
- return BI.extend(BI.FormulaCombo.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-formula-combo",
- height: 30,
- items: []
- })
- },
-
- _init: function () {
- BI.FormulaCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.formula_ids = [];
- this.input = BI.createWidget({
- type: "bi.formula_combo_trigger",
- height: o.height,
- items: o.items
- });
- this.formulaPopup = BI.createWidget({
- type: "bi.formula_combo_popup",
- fieldItems: o.items
- });
-
- this.formulaInputCombo = BI.createWidget({
- type: "bi.combo",
- element: this,
- isNeedAdjustHeight: true,
- isNeedAdjustWidth: false,
- adjustLength: this._constant.ADJUST_LENGTH,
- el: this.input,
- popup: {
- el: {
- type: "bi.absolute",
- height: this._constant.HEIGHT_MAX,
- width: this._constant.POPUP_WIDTH,
- items: [{
- el: this.formulaPopup,
- top: this._constant.POPUP_V_GAP,
- left: this._constant.POPUP_H_GAP,
- right: this._constant.POPUP_V_GAP,
- bottom: 0
- }]
- },
- stopPropagation: false,
- maxHeight: this._constant.MAX_HEIGHT,
- width: this._constant.MAX_WIDTH
- }
- });
- this.formulaInputCombo.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () {
- self.formulaPopup.setValue(self.input.getValue());
- });
- this.formulaPopup.on(BI.FormulaComboPopup.EVENT_CHANGE, function () {
- self.setValue(self.formulaPopup.getValue());
- self.formulaInputCombo.hideView();
- self.fireEvent(BI.FormulaCombo.EVENT_CHANGE);
- });
- this.formulaPopup.on(BI.FormulaComboPopup.EVENT_VALUE_CANCEL, function () {
- self.formulaInputCombo.hideView();
- });
- },
-
- setValue: function (v) {
- if (this.formulaInputCombo.isViewVisible()) {
- this.formulaInputCombo.hideView();
- }
- this.input.setValue(v);
- this.input.setText(BI.Func.getFormulaStringFromFormulaValue(v));
- this.formulaPopup.setValue(this.input.getValue());
- },
-
- getFormulaTargetIds: function() {
- return this.formulaPopup.getFormulaTargetIds();
- },
-
- getValue: function () {
- return this.input.getValue();
- }
-});
-BI.FormulaCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.formula_combo", BI.FormulaCombo);/**
- * Created by GUY on 2016/4/25.
- *
- * @class BI.FormulaComboPopup
- * @extend BI.Widget
- */
-BI.FormulaComboPopup = BI.inherit(BI.Widget, {
-
- _constant: {
- BUTTON_HEIGHT: 30,
- SOUTH_HEIGHT: 60,
- SOUTH_H_GAP: 10
- },
-
- _defaultConfig: function () {
- return BI.extend(BI.FormulaComboPopup.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-formula-pane-popup"
- })
- },
-
- _init: function () {
- BI.FormulaComboPopup.superclass._init.apply(this, arguments);
- this.populate();
- },
-
- populate: function () {
- var self = this, fieldItems = this.options.fieldItems;
- this.formula = BI.createWidget({
- type: "bi.formula_insert"
- });
- this.formula.populate(fieldItems);
- var confirmButton = BI.createWidget({
- type: "bi.button",
- level: "common",
- height: this._constant.BUTTON_HEIGHT,
- text: BI.i18nText("BI-Basic_OK")
- });
- var cancelButton = BI.createWidget({
- type: "bi.button",
- level: "ignore",
- height: this._constant.BUTTON_HEIGHT,
- text: BI.i18nText("BI-Basic_Cancel")
- });
-
- this.formula.on(BI.FormulaInsert.EVENT_CHANGE, function () {
- confirmButton.setEnable(self.formula.checkValidation());
- });
- confirmButton.on(BI.Button.EVENT_CHANGE, function () {
- self.fireEvent(BI.FormulaComboPopup.EVENT_CHANGE);
- });
- cancelButton.on(BI.Button.EVENT_CHANGE, function () {
- self.setValue(self.oldValue);
- self.fireEvent(BI.FormulaComboPopup.EVENT_VALUE_CANCEL);
- });
-
- BI.createWidget({
- type: "bi.vtape",
- element: this,
- items: [{
- el: this.formula,
- height: "fill"
- }, {
- el: {
- type: "bi.right_vertical_adapt",
- height: this._constant.SOUTH_HEIGHT,
- items: [cancelButton, confirmButton],
- hgap: this._constant.SOUTH_H_GAP
- },
- height: this._constant.SOUTH_HEIGHT
- }]
- })
- },
-
- getFormulaTargetIds: function(){
- return this.formula.getUsedFields();
- },
-
- getValue: function () {
- return this.formula.getValue();
- },
-
- setValue: function (v) {
- this.oldValue = v;
- this.formula.setValue(v);
- }
-});
-BI.FormulaComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
-BI.FormulaComboPopup.EVENT_VALUE_CANCEL = "EVENT_VALUE_CANCEL";
-BI.shortcut("bi.formula_combo_popup", BI.FormulaComboPopup);/**
- * Created by GUY on 2016/4/25.
- *
- * @class BI.FormulaComboTrigger
- * @extend BI.Widget
- */
-BI.FormulaComboTrigger = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.FormulaComboTrigger.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-formula-combo-trigger",
- height: 30,
- items: []
- })
- },
-
- _init: function () {
- BI.FormulaComboTrigger.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.label = BI.createWidget({
- type: "bi.label",
- element: this,
- textAlign: "left",
- textHeight: this.options.height,
- lgap: 10
- });
- },
-
- _getTextFromFormulaValue: function (formulaValue) {
- var self = this;
- var formulaString = "";
- var regx = /\$[\{][^\}]*[\}]|\w*\w|\$\{[^\$\(\)\+\-\*\/)\$,]*\w\}|\$\{[^\$\(\)\+\-\*\/]*\w\}|\$\{[^\$\(\)\+\-\*\/]*[\u4e00-\u9fa5]\}|\w|(.)/g;
- var result = formulaValue.match(regx);
- BI.each(result, function (i, item) {
- var fieldRegx = /\$[\{][^\}]*[\}]/;
- var str = item.match(fieldRegx);
- if (BI.isNotEmptyArray(str)) {
- var id = str[0].substring(2, item.length - 1);
- var item = BI.find(BI.flatten(self.options.items), function (i, item) {
- return id === item.value;
- });
- formulaString = formulaString + item.text;
- } else {
- formulaString = formulaString + item;
- }
- });
- return formulaString;
- },
-
- getValue: function () {
- return this.options.value;
- },
-
- setValue: function (v) {
- this.options.value = v;
- this.label.setText(this._getTextFromFormulaValue(v));
- }
-});
-BI.shortcut("bi.formula_combo_trigger", BI.FormulaComboTrigger);/**
- * Created by GUY on 2016/2/2.
- *
- * @class BI.IconCombo
- * @extend BI.Widget
- */
-BI.IconCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.IconCombo.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-icon-combo",
- width: 24,
- height: 24,
- iconClass: "",
- el: {},
- popup: {},
- minWidth: 100,
- maxWidth: 'auto',
- maxHeight: 300,
- direction: "bottom",
- adjustLength: 3,//调整的距离
- adjustXOffset: 0,
- adjustYOffset: 0,
- offsetStyle: "left",
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
- })
- },
-
- _init: function () {
- BI.IconCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget(o.el, {
- type: "bi.icon_combo_trigger",
- iconClass: o.iconClass,
- title: o.title,
- items: o.items,
- width: o.width,
- height: o.height,
- iconWidth: o.iconWidth,
- iconHeight: o.iconHeight
- });
- this.popup = BI.createWidget(o.popup, {
- type: "bi.icon_combo_popup",
- chooseType: o.chooseType,
- items: o.items
- });
- this.popup.on(BI.IconComboPopup.EVENT_CHANGE, function () {
- self.setValue(self.popup.getValue());
- self.iconCombo.hideView();
- self.fireEvent(BI.IconCombo.EVENT_CHANGE);
- });
- this.popup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.iconCombo = BI.createWidget({
- type: "bi.combo",
- element: this,
- direction: o.direction,
- adjustLength: o.adjustLength,
- adjustXOffset: o.adjustXOffset,
- adjustYOffset: o.adjustYOffset,
- offsetStyle: o.offsetStyle,
- el: this.trigger,
- popup: {
- el: this.popup,
- maxWidth: o.maxWidth,
- maxHeight: o.maxHeight,
- minWidth: o.minWidth
- }
- });
- },
-
- showView: function () {
- this.iconCombo.showView();
- },
-
- hideView: function () {
- this.iconCombo.hideView();
- },
-
- setValue: function (v) {
- this.iconCombo.setValue(v);
- },
-
- getValue: function () {
- return this.iconCombo.getValue();
- },
-
- populate: function (items) {
- this.options.items = items;
- this.iconCombo.populate(items);
- }
-});
-BI.IconCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.icon_combo", BI.IconCombo);/**
- * Created by GUY on 2016/2/2.
- *
- * @class BI.IconComboPopup
- * @extend BI.Pane
- */
-BI.IconComboPopup = BI.inherit(BI.Pane, {
- _defaultConfig: function () {
- return BI.extend(BI.IconComboPopup.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi.icon-combo-popup",
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
- });
- },
-
- _init: function () {
- BI.IconComboPopup.superclass._init.apply(this, arguments);
- var o = this.options, self = this;
- this.popup = BI.createWidget({
- type: "bi.button_group",
- items: BI.createItems(o.items, {
- type: "bi.single_select_icon_text_item",
- height: 30
- }),
- chooseType: o.chooseType,
- layouts: [{
- type: "bi.vertical"
- }]
- });
-
- this.popup.on(BI.Controller.EVENT_CHANGE, function (type, val, obj) {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- if (type === BI.Events.CLICK) {
- self.fireEvent(BI.IconComboPopup.EVENT_CHANGE, val, obj);
- }
- });
-
- BI.createWidget({
- type: "bi.vertical",
- element: this,
- items: [this.popup]
- });
- },
-
- populate: function (items) {
- BI.IconComboPopup.superclass.populate.apply(this, arguments);
- items = BI.createItems(items, {
- type: "bi.single_select_icon_text_item",
- height: 30
- });
- this.popup.populate(items);
- },
-
- getValue: function () {
- return this.popup.getValue();
- },
-
- setValue: function (v) {
- this.popup.setValue(v);
- }
-
-});
-BI.IconComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.icon_combo_popup", BI.IconComboPopup);/**
- * Created by GUY on 2016/2/2.
- *
- * @class BI.IconComboTrigger
- * @extend BI.Widget
- */
-BI.IconComboTrigger = BI.inherit(BI.Trigger, {
- _defaultConfig: function () {
- return BI.extend(BI.IconComboTrigger.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-icon-combo-trigger",
- el: {},
- items: [],
- iconClass: "",
- width: 25,
- height: 25,
- isShowDown: true
- });
- },
-
- _init: function () {
- BI.IconComboTrigger.superclass._init.apply(this, arguments);
- var o = this.options, self = this;
- this.button = BI.createWidget(o.el, {
- type: "bi.icon_change_button",
- cls: "icon-combo-trigger-icon " + o.iconClass,
- disableSelected: true,
- width: o.width,
- height: o.height,
- iconWidth: o.iconWidth,
- iconHeight: o.iconHeight
- });
- this.down = BI.createWidget({
- type: "bi.icon_button",
- disableSelected: true,
- cls: "icon-combo-down-icon trigger-triangle-font",
- width: 12,
- height: 8
- });
- this.down.setVisible(o.isShowDown);
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [{
- el: this.button,
- left: 0,
- right: 0,
- top: 0,
- bottom: 0
- }, {
- el: this.down,
- right: 0,
- bottom: 0
- }]
- });
- if (BI.isKey(o.value)) {
- this.setValue(o.value);
- }
- },
-
- populate: function (items) {
- var o = this.options;
- this.options.items = items || [];
- this.button.setIcon(o.iconClass);
- this.button.setSelected(false);
- this.down.setSelected(false);
- },
-
- setValue: function (v) {
- BI.IconComboTrigger.superclass.setValue.apply(this, arguments);
- var o = this.options;
- var iconClass = "";
- v = BI.isArray(v) ? v[0] : v;
- if (BI.any(this.options.items, function (i, item) {
- if (v === item.value) {
- iconClass = item.iconClass;
- return true;
- }
- })) {
- this.button.setIcon(iconClass);
- this.button.setSelected(true);
- this.down.setSelected(true);
- } else {
- this.button.setIcon(o.iconClass);
- this.button.setSelected(false);
- this.down.setSelected(false);
- }
- }
-});
-BI.IconComboTrigger.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.icon_combo_trigger", BI.IconComboTrigger);/**
- * 单选combo
- *
- * @class BI.StaticCombo
- * @extend BI.Widget
- */
-BI.StaticCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.StaticCombo.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-static-combo",
- height: 30,
- text: "",
- el: {},
- items: [],
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
- })
- },
-
- _init: function () {
- BI.StaticCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget(o.el, {
- type: "bi.text_icon_item",
- cls: "bi-select-text-trigger bi-border pull-down-font",
- text: o.text,
- readonly: true,
- textLgap: 5,
- height: o.height - 2
- });
- this.popup = BI.createWidget({
- type: "bi.text_value_combo_popup",
- textAlign: o.textAlign,
- chooseType: o.chooseType,
- items: o.items
- });
- this.popup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE, function () {
- self.combo.hideView();
- self.fireEvent(BI.StaticCombo.EVENT_CHANGE, arguments);
- });
- this.combo = BI.createWidget({
- type: "bi.combo",
- element: this,
- adjustLength: 2,
- el: this.trigger,
- popup: {
- el: this.popup
- }
- });
- },
-
- populate: function (items) {
- this.combo.populate(items);
- },
-
- setValue: function (v) {
- this.combo.setValue(v);
- },
-
- getValue: function () {
- return this.combo.getValue();
- }
-});
-BI.StaticCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.static_combo", BI.StaticCombo);/**
- * @class BI.TextValueCheckCombo
- * @extend BI.Widget
- * combo : text + icon, popup : check + text
- */
-BI.TextValueCheckCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.TextValueCheckCombo.superclass._defaultConfig.apply(this, arguments), {
- baseClass: "bi-text-value-check-combo",
- width: 100,
- height: 30,
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
- text: ""
- })
- },
-
- _init: function () {
- BI.TextValueCheckCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget({
- type: "bi.select_text_trigger",
- items: o.items,
- height: o.height,
- text: o.text
- });
- this.popup = BI.createWidget({
- type: "bi.text_value_check_combo_popup",
- chooseType: o.chooseType,
- items: o.items
- });
- this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE, function () {
- self.setValue(self.popup.getValue());
- self.textIconCheckCombo.hideView();
- self.fireEvent(BI.TextValueCheckCombo.EVENT_CHANGE);
- });
- this.popup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.textIconCheckCombo = BI.createWidget({
- type: "bi.combo",
- element: this,
- adjustLength: 2,
- el: this.trigger,
- popup: {
- el: this.popup,
- maxHeight: 300
- }
- });
- },
-
- setTitle: function (title) {
- this.trigger.setTitle(title);
- },
-
- setValue: function (v) {
- this.textIconCheckCombo.setValue(v);
- },
-
- setWarningTitle: function (title) {
- this.trigger.setWarningTitle(title);
- },
-
- getValue: function () {
- return this.textIconCheckCombo.getValue();
- },
-
- populate: function (items) {
- this.options.items = items;
- this.textIconCheckCombo.populate(items);
- }
-});
-BI.TextValueCheckCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.text_value_check_combo", BI.TextValueCheckCombo);/**
- * @class BI.SmallTextValueCheckCombo
- * @extend BI.Widget
- * combo : text + icon, popup : check + text
- */
-BI.SmallTextValueCheckCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.SmallTextValueCheckCombo.superclass._defaultConfig.apply(this, arguments), {
- width: 100,
- height: 24,
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
- text: ""
- })
- },
-
- _init: function () {
- BI.SmallTextValueCheckCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget({
- type: "bi.small_select_text_trigger",
- items: o.items,
- height: o.height,
- text: o.text
- });
- this.popup = BI.createWidget({
- type: "bi.text_value_check_combo_popup",
- chooseType: o.chooseType,
- items: o.items
- });
- this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE, function () {
- self.setValue(self.popup.getValue());
- self.SmallTextIconCheckCombo.hideView();
- self.fireEvent(BI.SmallTextValueCheckCombo.EVENT_CHANGE);
- });
- this.popup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.SmallTextIconCheckCombo = BI.createWidget({
- type: "bi.combo",
- element: this,
- adjustLength: 2,
- el: this.trigger,
- popup: {
- el: this.popup,
- maxHeight: 300
- }
- });
- },
-
- setValue: function (v) {
- this.SmallTextIconCheckCombo.setValue(v);
- },
-
- getValue: function () {
- return this.SmallTextIconCheckCombo.getValue();
- },
-
- populate: function (items) {
- this.options.items = items;
- this.SmallTextIconCheckCombo.populate(items);
- }
-});
-BI.SmallTextValueCheckCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.small_text_value_check_combo", BI.SmallTextValueCheckCombo);BI.TextValueCheckComboPopup = BI.inherit(BI.Pane, {
- _defaultConfig: function () {
- return BI.extend(BI.TextValueCheckComboPopup.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-text-icon-popup",
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
- });
- },
-
- _init: function () {
- BI.TextValueCheckComboPopup.superclass._init.apply(this, arguments);
- var o = this.options, self = this;
- this.popup = BI.createWidget({
- type: "bi.button_group",
- items: this._formatItems(o.items),
- chooseType: o.chooseType,
- layouts: [{
- type: "bi.vertical"
- }]
- });
-
- this.popup.on(BI.Controller.EVENT_CHANGE, function (type, val, obj) {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- if (type === BI.Events.CLICK) {
- self.fireEvent(BI.TextValueCheckComboPopup.EVENT_CHANGE, val, obj);
- }
- });
-
- BI.createWidget({
- type: "bi.vertical",
- element: this,
- items: [this.popup]
- });
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (i, item) {
- return BI.extend({
- type: "bi.icon_text_item",
- cls: "item-check-font bi-list-item",
- height: 30
- }, item);
- });
- },
-
- populate: function (items) {
- BI.TextValueCheckComboPopup.superclass.populate.apply(this, arguments);
- this.popup.populate(this._formatItems(items));
- },
-
- getValue: function () {
- return this.popup.getValue();
- },
-
- setValue: function (v) {
- this.popup.setValue(v);
- }
-
-});
-BI.TextValueCheckComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.text_value_check_combo_popup", BI.TextValueCheckComboPopup);/**
- * @class BI.TextValueCombo
- * @extend BI.Widget
- * combo : text + icon, popup : text
- * 参见场景dashboard布局方式选择
- */
-BI.TextValueCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.TextValueCombo.superclass._defaultConfig.apply(this, arguments), {
- baseClass: "bi-text-value-combo",
- height: 30,
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
- text: "",
- el: {}
- })
- },
-
- _init: function () {
- BI.TextValueCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget(o.el, {
- type: "bi.select_text_trigger",
- items: o.items,
- height: o.height,
- text: o.text
- });
- this.popup = BI.createWidget({
- type: "bi.text_value_combo_popup",
- chooseType: o.chooseType,
- items: o.items
- });
- this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE, function () {
- self.setValue(self.popup.getValue());
- self.textIconCombo.hideView();
- self.fireEvent(BI.TextValueCombo.EVENT_CHANGE, arguments);
- });
- this.popup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.textIconCombo = BI.createWidget({
- type: "bi.combo",
- element: this,
- adjustLength: 2,
- el: this.trigger,
- popup: {
- el: this.popup,
- maxHeight: 300
- }
- });
- },
-
- setValue: function (v) {
- this.textIconCombo.setValue(v);
- },
-
- getValue: function () {
- return this.textIconCombo.getValue();
- },
-
- populate: function (items) {
- this.options.items = items;
- this.textIconCombo.populate(items);
- }
-});
-BI.TextValueCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.text_value_combo", BI.TextValueCombo);/**
- * @class BI.SmallTextValueCombo
- * @extend BI.Widget
- * combo : text + icon, popup : text
- * 参见场景dashboard布局方式选择
- */
-BI.SmallTextValueCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.SmallTextValueCombo.superclass._defaultConfig.apply(this, arguments), {
- width: 100,
- height: 24,
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
- el: {},
- text: ""
- })
- },
-
- _init: function () {
- BI.SmallTextValueCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget(o.el, {
- type: "bi.small_select_text_trigger",
- items: o.items,
- height: o.height,
- text: o.text
- });
- this.popup = BI.createWidget({
- type: "bi.text_value_combo_popup",
- chooseType: o.chooseType,
- items: o.items
- });
- this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE, function () {
- self.setValue(self.popup.getValue());
- self.SmallTextValueCombo.hideView();
- self.fireEvent(BI.SmallTextValueCombo.EVENT_CHANGE);
- });
- this.popup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.SmallTextValueCombo = BI.createWidget({
- type: "bi.combo",
- element: this,
- adjustLength: 2,
- el: this.trigger,
- popup: {
- el: this.popup,
- maxHeight: 300
- }
- });
- },
-
- setValue: function (v) {
- this.SmallTextValueCombo.setValue(v);
- },
-
- getValue: function () {
- return this.SmallTextValueCombo.getValue();
- },
-
- populate: function (items) {
- this.options.items = items;
- this.SmallTextValueCombo.populate(items);
- }
-});
-BI.SmallTextValueCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.small_text_value_combo", BI.SmallTextValueCombo);BI.TextValueComboPopup = BI.inherit(BI.Pane, {
- _defaultConfig: function () {
- return BI.extend(BI.TextValueComboPopup.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-text-icon-popup",
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE
- });
- },
-
- _init: function () {
- BI.TextValueComboPopup.superclass._init.apply(this, arguments);
- var o = this.options, self = this;
- this.popup = BI.createWidget({
- type: "bi.button_group",
- items: BI.createItems(o.items, {
- type: "bi.single_select_item",
- textAlign: o.textAlign,
- height: 30
- }),
- chooseType: o.chooseType,
- layouts: [{
- type: "bi.vertical"
- }]
- });
-
- this.popup.on(BI.Controller.EVENT_CHANGE, function (type, val, obj) {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- if (type === BI.Events.CLICK) {
- self.fireEvent(BI.TextValueComboPopup.EVENT_CHANGE, val, obj);
- }
- });
-
- BI.createWidget({
- type: "bi.vertical",
- element: this,
- items: [this.popup]
- });
- },
-
- populate: function (items) {
- BI.TextValueComboPopup.superclass.populate.apply(this, arguments);
- items = BI.createItems(items, {
- type: "bi.single_select_item",
- height: 30
- });
- this.popup.populate(items);
- },
-
- getValue: function () {
- return this.popup.getValue();
- },
-
- setValue: function (v) {
- this.popup.setValue(v);
- }
-
-});
-BI.TextValueComboPopup.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.text_value_combo_popup", BI.TextValueComboPopup);/**
- * @class BI.TextValueDownListCombo
- * @extend BI.Widget
- */
-BI.TextValueDownListCombo = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.TextValueDownListCombo.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-text-value-down-list-combo",
- height: 30,
- text: ""
- })
- },
-
- _init: function () {
- BI.TextValueDownListCombo.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- this._createValueMap();
-
- this.trigger = BI.createWidget({
- type: "bi.down_list_select_text_trigger",
- height: o.height,
- items: o.items
- });
-
- this.combo = BI.createWidget({
- type: "bi.down_list_combo",
- element: this,
- chooseType: BI.Selection.Single,
- adjustLength: 2,
- height: o.height,
- el: this.trigger,
- items: BI.deepClone(o.items)
- });
-
- this.combo.on(BI.DownListCombo.EVENT_CHANGE, function () {
- self.setValue(self.combo.getValue()[0].value);
- self.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE);
- });
-
- this.combo.on(BI.DownListCombo.EVENT_SON_VALUE_CHANGE, function () {
- self.setValue(self.combo.getValue()[0].childValue);
- self.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE);
- });
- },
-
- _createValueMap: function () {
- var self = this;
- this.valueMap = {};
- BI.each(BI.flatten(this.options.items), function (idx, item) {
- if (BI.has(item, "el")) {
- BI.each(item.children, function (id, it) {
- self.valueMap[it.value] = {value: item.el.value, childValue: it.value}
- });
- } else {
- self.valueMap[item.value] = {value: item.value};
- }
- });
- },
-
- setValue: function (v) {
- v = this.valueMap[v];
- this.combo.setValue([v]);
- this.trigger.setValue(v.childValue || v.value);
- },
-
- getValue: function () {
- var v = this.combo.getValue()[0];
- return [v.childValue || v.value];
- },
-
- populate: function (items) {
- this.options.items = BI.flatten(items);
- this.combo.populate(items);
- this._createValueMap();
- }
-});
-BI.TextValueDownListCombo.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.text_value_down_list_combo", BI.TextValueDownListCombo);/**
- * 选择字段trigger, downlist专用
- * 显示形式为 父亲值(儿子值)
- *
- * @class BI.DownListSelectTextTrigger
- * @extends BI.Trigger
- */
-BI.DownListSelectTextTrigger = BI.inherit(BI.Trigger, {
-
- _defaultConfig: function () {
- return BI.extend(BI.DownListSelectTextTrigger.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-down-list-select-text-trigger",
- height: 24,
- text: ""
- });
- },
-
- _init: function () {
- BI.DownListSelectTextTrigger.superclass._init.apply(this, arguments);
- var o = this.options;
- this.trigger = BI.createWidget({
- type: "bi.select_text_trigger",
- element: this,
- height: o.height,
- items: this._formatItemArray(o.items),
- text: o.text
- });
- },
-
- _formatItemArray: function(){
- var sourceArray = BI.flatten(BI.deepClone(this.options.items));
- var targetArray = [];
- BI.each(sourceArray, function(idx, item){
- if(BI.has(item, "el")){
- BI.each(item.children, function(id, it){
- it.text = item.el.text + "(" + it.text + ")";
- });
- targetArray = BI.concat(targetArray, item.children);
- }else{
- targetArray.push(item);
- }
- });
- return targetArray;
- },
-
- setValue: function (vals) {
- this.trigger.setValue(vals);
- },
-
- populate: function (items) {
- this.trigger.populate(this._formatItemArray(items));
- }
-});
-BI.shortcut("bi.down_list_select_text_trigger", BI.DownListSelectTextTrigger);/**
- * 有清楚按钮的文本框
- * Created by GUY on 2015/9/29.
- * @class BI.SmallTextEditor
- * @extends BI.SearchEditor
- */
-BI.ClearEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.ClearEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: "bi-clear-editor",
- height: 30,
- errorText: "",
- watermark: "",
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn
- });
- },
- _init: function () {
- BI.ClearEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height,
- watermark: o.watermark,
- allowBlank: true,
- errorText: o.errorText,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker
- });
- this.clear = BI.createWidget({
- type: "bi.icon_button",
- stopEvent: true,
- cls: "search-close-h-font"
- });
- this.clear.on(BI.IconButton.EVENT_CHANGE, function () {
- self.setValue("");
- self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.STOPEDIT);
- self.fireEvent(BI.ClearEditor.EVENT_CLEAR);
- });
- BI.createWidget({
- element: this,
- type: "bi.htape",
- items: [
- {
- el: this.editor
- },
- {
- el: this.clear,
- width: 25
- }]
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.ClearEditor.EVENT_FOCUS);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.ClearEditor.EVENT_BLUR);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.ClearEditor.EVENT_CLICK);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self._checkClear();
- self.fireEvent(BI.ClearEditor.EVENT_CHANGE);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.ClearEditor.EVENT_KEY_DOWN, v);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function () {
- self.fireEvent(BI.ClearEditor.EVENT_SPACE)
- });
- this.editor.on(BI.Editor.EVENT_BACKSPACE, function () {
- self.fireEvent(BI.ClearEditor.EVENT_BACKSPACE)
- });
-
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.ClearEditor.EVENT_VALID)
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self.fireEvent(BI.ClearEditor.EVENT_ERROR)
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.ClearEditor.EVENT_ENTER);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.ClearEditor.EVENT_RESTRICT)
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self._checkClear();
- self.fireEvent(BI.ClearEditor.EVENT_EMPTY)
- });
- this.editor.on(BI.Editor.EVENT_REMOVE, function () {
- self.fireEvent(BI.ClearEditor.EVENT_REMOVE)
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self.fireEvent(BI.ClearEditor.EVENT_CONFIRM)
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.ClearEditor.EVENT_START);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.ClearEditor.EVENT_PAUSE);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.ClearEditor.EVENT_STOP);
- });
-
- this.clear.invisible();
- },
-
- _checkClear: function () {
- if (!this.getValue()) {
- this.clear.invisible();
- } else {
- this.clear.visible();
- }
- },
-
- focus: function () {
- this.editor.focus();
- },
-
- blur: function () {
- this.editor.blur();
- },
-
- getValue: function () {
- if (this.isValid()) {
- var res = this.editor.getValue().match(/[\S]+/g);
- return BI.isNull(res) ? "" : res[res.length - 1];
- }
- },
-
- setValue: function (v) {
- this.editor.setValue(v);
- if (BI.isKey(v)) {
- this.clear.visible();
- }
- },
-
- isValid: function () {
- return this.editor.isValid();
- }
-});
-BI.ClearEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.ClearEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.ClearEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.ClearEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.ClearEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.ClearEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.ClearEditor.EVENT_BACKSPACE = "EVENT_BACKSPACE";
-BI.ClearEditor.EVENT_CLEAR = "EVENT_CLEAR";
-
-BI.ClearEditor.EVENT_START = "EVENT_START";
-BI.ClearEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.ClearEditor.EVENT_STOP = "EVENT_STOP";
-BI.ClearEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.ClearEditor.EVENT_VALID = "EVENT_VALID";
-BI.ClearEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.ClearEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.ClearEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.ClearEditor.EVENT_REMOVE = "EVENT_REMOVE";
-BI.ClearEditor.EVENT_EMPTY = "EVENT_EMPTY";
-BI.shortcut("bi.clear_editor", BI.ClearEditor);/**
- * Created by roy on 15/9/14.
- */
-BI.SearchEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.SearchEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: "bi-search-editor bi-border",
- height: 30,
- errorText: "",
- watermark: BI.i18nText("BI-Basic_Search"),
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn
- });
- },
- _init: function () {
- this.options.height -= 2;
- BI.SearchEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height,
- watermark: o.watermark,
- allowBlank: true,
- errorText: o.errorText,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker
- });
- this.clear = BI.createWidget({
- type: "bi.icon_button",
- stopEvent: true,
- cls: "search-close-h-font"
- });
- this.clear.on(BI.IconButton.EVENT_CHANGE, function () {
- self.setValue("");
- self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.STOPEDIT);
- self.fireEvent(BI.SearchEditor.EVENT_CLEAR);
- });
- BI.createWidget({
- element: this,
- type: "bi.htape",
- items: [
- {
- el: {
- type: "bi.center_adapt",
- cls: "search-font",
- items: [{
- el: {
- type: "bi.icon"
- }
- }]
- },
- width: 25
- },
- {
- el: self.editor
- },
- {
- el: this.clear,
- width: 25
- }
- ]
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.SearchEditor.EVENT_FOCUS);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.SearchEditor.EVENT_BLUR);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.SearchEditor.EVENT_CLICK);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self._checkClear();
- self.fireEvent(BI.SearchEditor.EVENT_CHANGE);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.SearchEditor.EVENT_KEY_DOWN, v);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function () {
- self.fireEvent(BI.SearchEditor.EVENT_SPACE)
- });
- this.editor.on(BI.Editor.EVENT_BACKSPACE, function () {
- self.fireEvent(BI.SearchEditor.EVENT_BACKSPACE)
- });
-
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.SearchEditor.EVENT_VALID)
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self.fireEvent(BI.SearchEditor.EVENT_ERROR)
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.SearchEditor.EVENT_ENTER);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.SearchEditor.EVENT_RESTRICT)
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self._checkClear();
- self.fireEvent(BI.SearchEditor.EVENT_EMPTY)
- });
- this.editor.on(BI.Editor.EVENT_REMOVE, function () {
- self.fireEvent(BI.SearchEditor.EVENT_REMOVE)
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self.fireEvent(BI.SearchEditor.EVENT_CONFIRM)
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.SearchEditor.EVENT_START);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.SearchEditor.EVENT_PAUSE);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.SearchEditor.EVENT_STOP);
- });
-
- this.clear.invisible();
- },
-
- _checkClear: function () {
- if (!this.getValue()) {
- this.clear.invisible();
- } else {
- this.clear.visible();
- }
- },
-
- focus: function () {
- this.editor.focus();
- },
-
- blur: function () {
- this.editor.blur();
- },
-
- getValue: function () {
- if (this.isValid()) {
- var res = this.editor.getValue().match(/[\S]+/g);
- return BI.isNull(res) ? "" : res[res.length - 1];
- }
- },
-
- getLastValidValue: function () {
- return this.editor.getLastValidValue();
- },
-
- setValue: function (v) {
- this.editor.setValue(v);
- if (BI.isKey(v)) {
- this.clear.visible();
- }
- },
-
- isEditing: function () {
- return this.editor.isEditing();
- },
-
- isValid: function () {
- return this.editor.isValid();
- }
-});
-BI.SearchEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.SearchEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.SearchEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.SearchEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.SearchEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.SearchEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.SearchEditor.EVENT_BACKSPACE = "EVENT_BACKSPACE";
-BI.SearchEditor.EVENT_CLEAR = "EVENT_CLEAR";
-
-BI.SearchEditor.EVENT_START = "EVENT_START";
-BI.SearchEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.SearchEditor.EVENT_STOP = "EVENT_STOP";
-BI.SearchEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.SearchEditor.EVENT_VALID = "EVENT_VALID";
-BI.SearchEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.SearchEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.SearchEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.SearchEditor.EVENT_REMOVE = "EVENT_REMOVE";
-BI.SearchEditor.EVENT_EMPTY = "EVENT_EMPTY";
-BI.shortcut("bi.search_editor", BI.SearchEditor);/**
- * 小号搜索框
- * Created by GUY on 2015/9/29.
- * @class BI.SmallSearchEditor
- * @extends BI.SearchEditor
- */
-BI.SmallSearchEditor = BI.inherit(BI.SearchEditor, {
- _defaultConfig: function () {
- var conf = BI.SmallSearchEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-small-search-editor",
- height: 24
- });
- },
-
- _init: function () {
- BI.SmallSearchEditor.superclass._init.apply(this, arguments);
- }
-});
-BI.shortcut("bi.small_search_editor", BI.SmallSearchEditor);/**
- * 带标记的文本框
- * Created by GUY on 2016/1/25.
- * @class BI.ShelterEditor
- * @extends BI.Widget
- */
-BI.ShelterEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.ShelterEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-shelter-editor",
- hgap: 4,
- vgap: 2,
- lgap: 0,
- rgap: 0,
- tgap: 0,
- bgap: 0,
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn,
- allowBlank: true,
- watermark: "",
- errorText: "",
- height: 30,
- textAlign: "left"
- })
- },
-
- _init: function () {
- BI.ShelterEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height,
- hgap: o.hgap,
- vgap: o.vgap,
- lgap: o.lgap,
- rgap: o.rgap,
- tgap: o.tgap,
- bgap: o.bgap,
- value: o.value,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker,
- allowBlank: o.allowBlank,
- watermark: o.watermark,
- errorText: o.errorText
- });
- this.text = BI.createWidget({
- type: "bi.text_button",
- cls: "shelter-editor-text",
- title: o.title,
- warningTitle: o.warningTitle,
- tipType: o.tipType,
- textAlign: o.textAlign,
- height: o.height,
- hgap: 4
- });
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [{
- el: this.text,
- left: 0,
- right: 0,
- top: 0,
- bottom: 0
- }]
- });
- this.text.on(BI.Controller.EVENT_CHANGE, function () {
- arguments[2] = self;
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.text.on(BI.TextButton.EVENT_CHANGE, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_CLICK_LABEL);
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_FOCUS, arguments);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_BLUR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_CLICK, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.ShelterEditor.EVENT_KEY_DOWN, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_VALID, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self._showHint();
- self._checkText();
- self.fireEvent(BI.ShelterEditor.EVENT_CONFIRM, arguments);
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_START, arguments);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_PAUSE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_STOP, arguments);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_SPACE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self._checkText();
- self.fireEvent(BI.ShelterEditor.EVENT_ERROR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_ENTER, arguments);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_RESTRICT, arguments);
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self.fireEvent(BI.ShelterEditor.EVENT_EMPTY, arguments);
- });
- BI.createWidget({
- type: "bi.vertical",
- scrolly: false,
- element: this,
- items: [this.editor]
- });
- this._showHint();
- self._checkText();
- },
-
- _checkText: function () {
- var o = this.options;
- if (this.editor.getValue() === "") {
- this.text.setValue(o.watermark || "");
- this.text.element.addClass("bi-water-mark");
- } else {
- this.text.setValue(this.editor.getValue());
- this.text.element.removeClass("bi-water-mark");
- }
- },
-
- _showInput: function () {
- this.editor.visible();
- this.text.invisible();
- },
-
- _showHint: function () {
- this.editor.invisible();
- this.text.visible();
- },
-
- setTitle: function (title) {
- this.text.setTitle(title);
- },
-
- setWarningTitle: function (title) {
- this.text.setWarningTitle(title);
- },
-
- focus: function () {
- this._showInput();
- this.editor.focus();
- },
-
- blur: function () {
- this.editor.blur();
- this._showHint();
- this._checkText();
- },
-
- doRedMark: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- isValid: function () {
- return this.editor.isValid();
- },
-
- setErrorText: function (text) {
- this.editor.setErrorText(text);
- },
-
- getErrorText: function () {
- return this.editor.getErrorText();
- },
-
- isEditing: function () {
- return this.editor.isEditing();
- },
-
- getLastValidValue: function () {
- return this.editor.getLastValidValue();
- },
-
- setTextStyle: function (style) {
- this.text.setStyle(style);
- },
-
- setValue: function (k) {
- this.editor.setValue(k);
- this._checkText();
- },
-
- getValue: function () {
- return this.editor.getValue();
- },
-
- getState: function () {
- return this.text.getValue();
- },
-
- setState: function (v) {
- this._showHint();
- this.text.setValue(v);
- }
-});
-BI.ShelterEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.ShelterEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.ShelterEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.ShelterEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.ShelterEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.ShelterEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
-
-BI.ShelterEditor.EVENT_START = "EVENT_START";
-BI.ShelterEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.ShelterEditor.EVENT_STOP = "EVENT_STOP";
-BI.ShelterEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.ShelterEditor.EVENT_VALID = "EVENT_VALID";
-BI.ShelterEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.ShelterEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.ShelterEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.ShelterEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.ShelterEditor.EVENT_EMPTY = "EVENT_EMPTY";
-
-BI.shortcut("bi.shelter_editor", BI.ShelterEditor);/**
- * Created by User on 2017/7/28.
- */
-BI.SignInitialEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.SignInitialEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-sign-initial-editor",
- hgap: 4,
- vgap: 2,
- lgap: 0,
- rgap: 0,
- tgap: 0,
- bgap: 0,
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn,
- allowBlank: true,
- watermark: "",
- errorText: "",
- value: "",
- text: "",
- height: 30
- })
- },
-
- _init: function () {
- BI.SignInitialEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height,
- hgap: o.hgap,
- vgap: o.vgap,
- lgap: o.lgap,
- rgap: o.rgap,
- tgap: o.tgap,
- bgap: o.bgap,
- value: o.value,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker,
- allowBlank: o.allowBlank,
- watermark: o.watermark,
- errorText: o.errorText
- });
- this.text = BI.createWidget({
- type: "bi.text_button",
- cls: "sign-editor-text",
- title: o.title,
- warningTitle: o.warningTitle,
- tipType: o.tipType,
- textAlign: "left",
- height: o.height,
- hgap: 4,
- handler: function () {
- self._showInput();
- self.editor.focus();
- self.editor.selectAll();
- }
- });
- this.text.on(BI.TextButton.EVENT_CHANGE, function () {
- BI.nextTick(function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_CLICK_LABEL)
- });
- });
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [{
- el: this.text,
- left: 0,
- right: 0,
- top: 0,
- bottom: 0
- }]
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_FOCUS, arguments);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_BLUR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_CLICK, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.SignInitialEditor.EVENT_KEY_DOWN, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_VALID, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self._showHint();
- self._checkText();
- self.fireEvent(BI.SignInitialEditor.EVENT_CONFIRM, arguments);
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_START, arguments);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_PAUSE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_STOP, arguments);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_SPACE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self._checkText();
- self.fireEvent(BI.SignInitialEditor.EVENT_ERROR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_ENTER, arguments);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_RESTRICT, arguments);
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self.fireEvent(BI.SignInitialEditor.EVENT_EMPTY, arguments);
- });
- BI.createWidget({
- type: "bi.vertical",
- scrolly: false,
- element: this,
- items: [this.editor]
- });
- this._showHint();
- self._checkText();
- },
-
- _checkText: function () {
- var o = this.options;
- BI.nextTick(BI.bind(function () {
- if (this.editor.getValue() === "") {
- this.text.setValue(o.watermark || "");
- this.text.element.addClass("bi-water-mark");
- } else {
- var v = this.editor.getValue();
- v = (BI.isEmpty(v) || v == o.text) ? o.text : v + "(" + o.text + ")";
- this.text.setValue(v);
- this.text.element.removeClass("bi-water-mark");
- }
- }, this));
- },
-
- _showInput: function () {
- this.editor.visible();
- this.text.invisible();
- },
-
- _showHint: function () {
- this.editor.invisible();
- this.text.visible();
- },
-
- setTitle: function (title) {
- this.text.setTitle(title);
- },
-
- setWarningTitle: function (title) {
- this.text.setWarningTitle(title);
- },
-
- focus: function () {
- this._showInput();
- this.editor.focus();
- },
-
- blur: function () {
- this.editor.blur();
- this._showHint();
- this._checkText();
- },
-
- doRedMark: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- isValid: function () {
- return this.editor.isValid();
- },
-
- setErrorText: function (text) {
- this.editor.setErrorText(text);
- },
-
- getErrorText: function () {
- return this.editor.getErrorText();
- },
-
- isEditing: function () {
- return this.editor.isEditing();
- },
-
- getLastValidValue: function () {
- return this.editor.getLastValidValue();
- },
-
- setValue: function (v) {
- var o = this.options;
- this.editor.setValue(v.value);
- o.text = v.text || o.text;
- this._checkText();
- },
-
- getValue: function () {
- return {
- value: this.editor.getValue(),
- text: this.options.text
- }
- },
-
- getState: function () {
- return this.text.getValue();
- },
-
- setState: function (v) {
- var o = this.options;
- this._showHint();
- v = (BI.isEmpty(v) || v == o.text) ? o.text : v + "(" + o.text + ")";
- this.text.setValue(v);
- }
-});
-BI.SignInitialEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.SignInitialEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.SignInitialEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.SignInitialEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.SignInitialEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.SignInitialEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
-
-BI.SignInitialEditor.EVENT_START = "EVENT_START";
-BI.SignInitialEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.SignInitialEditor.EVENT_STOP = "EVENT_STOP";
-BI.SignInitialEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.SignInitialEditor.EVENT_VALID = "EVENT_VALID";
-BI.SignInitialEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.SignInitialEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.SignInitialEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.SignInitialEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.SignInitialEditor.EVENT_EMPTY = "EVENT_EMPTY";
-
-BI.shortcut("bi.sign_initial_editor", BI.SignInitialEditor);/**
- * 带标记的文本框
- * Created by GUY on 2015/8/28.
- * @class BI.SignEditor
- * @extends BI.Widget
- */
-BI.SignEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.SignEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-sign-editor",
- hgap: 4,
- vgap: 2,
- lgap: 0,
- rgap: 0,
- tgap: 0,
- bgap: 0,
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn,
- allowBlank: true,
- watermark: "",
- errorText: "",
- height: 30
- })
- },
-
- _init: function () {
- BI.SignEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height,
- hgap: o.hgap,
- vgap: o.vgap,
- lgap: o.lgap,
- rgap: o.rgap,
- tgap: o.tgap,
- bgap: o.bgap,
- value: o.value,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker,
- allowBlank: o.allowBlank,
- watermark: o.watermark,
- errorText: o.errorText
- });
- this.text = BI.createWidget({
- type: "bi.text_button",
- cls: "sign-editor-text",
- title: o.title,
- warningTitle: o.warningTitle,
- tipType: o.tipType,
- textAlign: "left",
- height: o.height,
- hgap: 4,
- handler: function () {
- self._showInput();
- self.editor.focus();
- self.editor.selectAll();
- }
- });
- this.text.on(BI.TextButton.EVENT_CHANGE, function () {
- BI.nextTick(function () {
- self.fireEvent(BI.SignEditor.EVENT_CLICK_LABEL)
- });
- });
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [{
- el: this.text,
- left: 0,
- right: 0,
- top: 0,
- bottom: 0
- }]
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.SignEditor.EVENT_FOCUS, arguments);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.SignEditor.EVENT_BLUR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.SignEditor.EVENT_CLICK, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self.fireEvent(BI.SignEditor.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.SignEditor.EVENT_KEY_DOWN, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.SignEditor.EVENT_VALID, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self._showHint();
- self._checkText();
- self.fireEvent(BI.SignEditor.EVENT_CONFIRM, arguments);
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.SignEditor.EVENT_START, arguments);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.SignEditor.EVENT_PAUSE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.SignEditor.EVENT_STOP, arguments);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function () {
- self.fireEvent(BI.SignEditor.EVENT_SPACE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self._checkText();
- self.fireEvent(BI.SignEditor.EVENT_ERROR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.SignEditor.EVENT_ENTER, arguments);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.SignEditor.EVENT_RESTRICT, arguments);
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self.fireEvent(BI.SignEditor.EVENT_EMPTY, arguments);
- });
- BI.createWidget({
- type: "bi.vertical",
- scrolly: false,
- element: this,
- items: [this.editor]
- });
- this._showHint();
- self._checkText();
- },
-
- _checkText: function () {
- var o = this.options;
- BI.nextTick(BI.bind(function () {
- if (this.editor.getValue() === "") {
- this.text.setValue(o.watermark || "");
- this.text.element.addClass("bi-water-mark");
- } else {
- this.text.setValue(this.editor.getValue());
- this.text.element.removeClass("bi-water-mark");
- }
- }, this));
- },
-
- _showInput: function () {
- this.editor.visible();
- this.text.invisible();
- },
-
- _showHint: function () {
- this.editor.invisible();
- this.text.visible();
- },
-
- setTitle: function (title) {
- this.text.setTitle(title);
- },
-
- setWarningTitle: function (title) {
- this.text.setWarningTitle(title);
- },
-
- focus: function () {
- this._showInput();
- this.editor.focus();
- },
-
- blur: function () {
- this.editor.blur();
- this._showHint();
- this._checkText();
- },
-
- doRedMark: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- isValid: function () {
- return this.editor.isValid();
- },
-
- setErrorText: function (text) {
- this.editor.setErrorText(text);
- },
-
- getErrorText: function () {
- return this.editor.getErrorText();
- },
-
- isEditing: function () {
- return this.editor.isEditing();
- },
-
- getLastValidValue: function () {
- return this.editor.getLastValidValue();
- },
-
- setValue: function (k) {
- this.editor.setValue(k);
- this._checkText();
- },
-
- getValue: function () {
- return this.editor.getValue();
- },
-
- getState: function () {
- return this.text.getValue();
- },
-
- setState: function (v) {
- this._showHint();
- this.text.setValue(v);
- }
-});
-BI.SignEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.SignEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.SignEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.SignEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.SignEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.SignEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
-
-BI.SignEditor.EVENT_START = "EVENT_START";
-BI.SignEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.SignEditor.EVENT_STOP = "EVENT_STOP";
-BI.SignEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.SignEditor.EVENT_VALID = "EVENT_VALID";
-BI.SignEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.SignEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.SignEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.SignEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.SignEditor.EVENT_EMPTY = "EVENT_EMPTY";
-
-BI.shortcut("bi.sign_editor", BI.SignEditor);/**
- * guy
- * 记录状态的输入框
- * @class BI.StateEditor
- * @extends BI.Single
- */
-BI.StateEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.StateEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-state-editor",
- hgap: 4,
- vgap: 2,
- lgap: 0,
- rgap: 0,
- tgap: 0,
- bgap: 0,
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn,
- allowBlank: true,
- watermark: "",
- errorText: "",
- height: 30
- })
- },
-
- _init: function () {
- BI.StateEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height,
- hgap: o.hgap,
- vgap: o.vgap,
- lgap: o.lgap,
- rgap: o.rgap,
- tgap: o.tgap,
- bgap: o.bgap,
- value: o.value,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker,
- allowBlank: o.allowBlank,
- watermark: o.watermark,
- errorText: o.errorText
- });
- this.text = BI.createWidget({
- type: "bi.text_button",
- cls: "state-editor-infinite-text bi-disabled",
- textAlign: "left",
- height: o.height,
- text: BI.i18nText("BI-Basic_Unrestricted"),
- hgap: 4,
- handler: function () {
- self._showInput();
- self.editor.focus();
- self.editor.setValue("");
- }
- });
- this.text.on(BI.TextButton.EVENT_CHANGE, function () {
- BI.nextTick(function () {
- self.fireEvent(BI.StateEditor.EVENT_CLICK_LABEL);
- });
- });
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [{
- el: this.text,
- left: 0,
- right: 0,
- top: 0,
- bottom: 0
- }]
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.StateEditor.EVENT_FOCUS, arguments);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.StateEditor.EVENT_BLUR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.StateEditor.EVENT_CLICK, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self.fireEvent(BI.StateEditor.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.StateEditor.EVENT_KEY_DOWN, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.StateEditor.EVENT_VALID, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self._showHint();
- self.fireEvent(BI.StateEditor.EVENT_CONFIRM, arguments);
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.StateEditor.EVENT_START, arguments);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.StateEditor.EVENT_PAUSE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.StateEditor.EVENT_STOP, arguments);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function () {
- self.fireEvent(BI.StateEditor.EVENT_SPACE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self.fireEvent(BI.StateEditor.EVENT_ERROR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.StateEditor.EVENT_ENTER, arguments);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.StateEditor.EVENT_RESTRICT, arguments);
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self.fireEvent(BI.StateEditor.EVENT_EMPTY, arguments);
- });
- BI.createWidget({
- type: "bi.vertical",
- scrolly: false,
- element: this,
- items: [this.editor]
- });
- this._showHint();
- },
-
- doRedMark: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- focus: function () {
- if (this.options.disabled === false) {
- this._showInput();
- this.editor.focus();
- }
- },
-
- blur: function () {
- this.editor.blur();
- this._showHint();
- },
-
- _showInput: function () {
- this.editor.visible();
- this.text.invisible();
- },
-
- _showHint: function () {
- this.editor.invisible();
- this.text.visible();
- },
-
- isValid: function () {
- return this.editor.isValid();
- },
-
- setErrorText: function (text) {
- this.editor.setErrorText(text);
- },
-
- getErrorText: function () {
- return this.editor.getErrorText();
- },
-
- isEditing: function () {
- return this.editor.isEditing();
- },
-
- getLastValidValue: function () {
- return this.editor.getLastValidValue();
- },
-
- setValue: function (k) {
- this.editor.setValue(k);
- },
-
- getValue: function () {
- return this.editor.getValue();
- },
-
- getState: function () {
- return this.editor.getValue().match(/[^\s]+/g);
- },
-
- setState: function (v) {
- BI.StateEditor.superclass.setValue.apply(this, arguments);
- if (BI.isNumber(v)) {
- if (v === BI.Selection.All) {
- this.text.setText(BI.i18nText("BI-Select_All"));
- this.text.setTitle("");
- this.text.element.removeClass("state-editor-infinite-text");
- } else if (v === BI.Selection.Multi) {
- this.text.setText(BI.i18nText("BI-Select_Part"));
- this.text.setTitle("");
- this.text.element.removeClass("state-editor-infinite-text");
- } else {
- this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
- this.text.setTitle("");
- this.text.element.addClass("state-editor-infinite-text");
- }
- return;
- }
- if (BI.isString(v)) {
- // if (BI.isEmpty(v)) {
- // this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
- // this.text.setTitle("");
- // this.text.element.addClass("state-editor-infinite-text");
- // } else {
- this.text.setText(v);
- this.text.setTitle(v);
- this.text.element.removeClass("state-editor-infinite-text");
- // }
- return;
- }
- if (BI.isArray(v)) {
- if (BI.isEmpty(v)) {
- this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
- this.text.element.addClass("state-editor-infinite-text");
- } else if (v.length === 1) {
- this.text.setText(v[0]);
- this.text.setTitle(v[0]);
- this.text.element.removeClass("state-editor-infinite-text");
- } else {
- this.text.setText(BI.i18nText("BI-Select_Part"));
- this.text.setTitle("");
- this.text.element.removeClass("state-editor-infinite-text");
- }
- }
- }
-});
-BI.StateEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.StateEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.StateEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.StateEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.StateEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.StateEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
-
-BI.StateEditor.EVENT_START = "EVENT_START";
-BI.StateEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.StateEditor.EVENT_STOP = "EVENT_STOP";
-BI.StateEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.StateEditor.EVENT_VALID = "EVENT_VALID";
-BI.StateEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.StateEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.StateEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.StateEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.StateEditor.EVENT_EMPTY = "EVENT_EMPTY";
-
-BI.shortcut("bi.state_editor", BI.StateEditor);/**
- * 无限制-已选择状态输入框
- * Created by GUY on 2016/5/18.
- * @class BI.SimpleStateEditor
- * @extends BI.Single
- */
-BI.SimpleStateEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.SimpleStateEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-simple-state-editor",
- hgap: 4,
- vgap: 2,
- lgap: 0,
- rgap: 0,
- tgap: 0,
- bgap: 0,
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn,
- mouseOut: false,
- allowBlank: true,
- watermark: "",
- errorText: "",
- height: 30
- })
- },
-
- _init: function () {
- BI.SimpleStateEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height,
- hgap: o.hgap,
- vgap: o.vgap,
- lgap: o.lgap,
- rgap: o.rgap,
- tgap: o.tgap,
- bgap: o.bgap,
- value: o.value,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker,
- allowBlank: o.allowBlank,
- watermark: o.watermark,
- errorText: o.errorText
- });
- this.text = BI.createWidget({
- type: "bi.text_button",
- cls: "state-editor-infinite-text bi-disabled",
- textAlign: "left",
- height: o.height,
- text: BI.i18nText("BI-Basic_Unrestricted"),
- hgap: 4,
- handler: function () {
- self._showInput();
- self.editor.focus();
- self.editor.setValue("");
- }
- });
- this.text.on(BI.TextButton.EVENT_CHANGE, function () {
- BI.nextTick(function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_CLICK_LABEL);
- });
- });
- BI.createWidget({
- type: "bi.absolute",
- element: this,
- items: [{
- el: this.text,
- left: 0,
- right: 0,
- top: 0,
- bottom: 0
- }]
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_FOCUS, arguments);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_BLUR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_CLICK, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_CHANGE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.SimpleStateEditor.EVENT_KEY_DOWN, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_VALID, arguments);
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self._showHint();
- self.fireEvent(BI.SimpleStateEditor.EVENT_CONFIRM, arguments);
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_START, arguments);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_PAUSE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_STOP, arguments);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_SPACE, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_ERROR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_ENTER, arguments);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_RESTRICT, arguments);
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self.fireEvent(BI.SimpleStateEditor.EVENT_EMPTY, arguments);
- });
- BI.createWidget({
- type: "bi.vertical",
- scrolly: false,
- element: this,
- items: [this.editor]
- });
- this._showHint();
- },
-
- doRedMark: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doRedMark.apply(this.text, arguments);
- },
-
- unRedMark: function () {
- this.text.unRedMark.apply(this.text, arguments);
- },
-
- doHighLight: function () {
- if (this.editor.getValue() === "" && BI.isKey(this.options.watermark)) {
- return;
- }
- this.text.doHighLight.apply(this.text, arguments);
- },
-
- unHighLight: function () {
- this.text.unHighLight.apply(this.text, arguments);
- },
-
- focus: function () {
- this._showInput();
- this.editor.focus();
- },
-
- blur: function () {
- this.editor.blur();
- this._showHint();
- },
-
- _showInput: function () {
- this.editor.visible();
- this.text.invisible();
- },
-
- _showHint: function () {
- this.editor.invisible();
- this.text.visible();
- },
-
- isValid: function () {
- return this.editor.isValid();
- },
-
- setErrorText: function (text) {
- this.editor.setErrorText(text);
- },
-
- getErrorText: function () {
- return this.editor.getErrorText();
- },
-
- isEditing: function () {
- return this.editor.isEditing();
- },
-
- getLastValidValue: function () {
- return this.editor.getLastValidValue();
- },
-
- setValue: function (k) {
- this.editor.setValue(k);
- },
-
- getValue: function () {
- return this.editor.getValue();
- },
-
- getState: function () {
- return this.editor.getValue().match(/[^\s]+/g);
- },
-
- setState: function (v) {
- BI.SimpleStateEditor.superclass.setValue.apply(this, arguments);
- if (BI.isNumber(v)) {
- if (v === BI.Selection.All) {
- this.text.setText(BI.i18nText("BI-Already_Selected"));
- this.text.element.removeClass("state-editor-infinite-text");
- } else if (v === BI.Selection.Multi) {
- this.text.setText(BI.i18nText("BI-Already_Selected"));
- this.text.element.removeClass("state-editor-infinite-text");
- } else {
- this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
- this.text.element.addClass("state-editor-infinite-text");
- }
- return;
- }
- if (!BI.isArray(v) || v.length === 1) {
- this.text.setText(v);
- this.text.setTitle(v);
- this.text.element.removeClass("state-editor-infinite-text");
- } else if (BI.isEmpty(v)) {
- this.text.setText(BI.i18nText("BI-Basic_Unrestricted"));
- this.text.element.addClass("state-editor-infinite-text");
- } else {
- this.text.setText(BI.i18nText("BI-Already_Selected"));
- this.text.element.removeClass("state-editor-infinite-text");
- }
- }
-});
-BI.SimpleStateEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.SimpleStateEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.SimpleStateEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.SimpleStateEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.SimpleStateEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.SimpleStateEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
-
-BI.SimpleStateEditor.EVENT_START = "EVENT_START";
-BI.SimpleStateEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.SimpleStateEditor.EVENT_STOP = "EVENT_STOP";
-BI.SimpleStateEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.SimpleStateEditor.EVENT_VALID = "EVENT_VALID";
-BI.SimpleStateEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.SimpleStateEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.SimpleStateEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.SimpleStateEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.SimpleStateEditor.EVENT_EMPTY = "EVENT_EMPTY";
-
-BI.shortcut("bi.simple_state_editor", BI.SimpleStateEditor);/**
- * guy
- * @class BI.TextEditor
- * @extends BI.Single
- */
-BI.TextEditor = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- var conf = BI.TextEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- extraCls: "bi-text-editor bi-border",
- hgap: 4,
- vgap: 2,
- lgap: 0,
- rgap: 0,
- tgap: 0,
- bgap: 0,
- validationChecker: BI.emptyFn,
- quitChecker: BI.emptyFn,
- allowBlank: false,
- watermark: "",
- errorText: "",
- height: 30
- })
- },
-
- _init: function () {
- BI.TextEditor.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- if (BI.isNumber(o.height)) {
- this.element.css({height: o.height - 2});
- }
- if (BI.isNumber(o.width)) {
- this.element.css({width: o.width - 2});
- }
- this.editor = BI.createWidget({
- type: "bi.editor",
- height: o.height - 2,
- hgap: o.hgap,
- vgap: o.vgap,
- lgap: o.lgap,
- rgap: o.rgap,
- tgap: o.tgap,
- bgap: o.bgap,
- value: o.value,
- validationChecker: o.validationChecker,
- quitChecker: o.quitChecker,
- allowBlank: o.allowBlank,
- watermark: o.watermark,
- errorText: o.errorText
- });
- this.editor.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- this.editor.on(BI.Editor.EVENT_FOCUS, function () {
- self.fireEvent(BI.TextEditor.EVENT_FOCUS);
- });
- this.editor.on(BI.Editor.EVENT_BLUR, function () {
- self.fireEvent(BI.TextEditor.EVENT_BLUR);
- });
- this.editor.on(BI.Editor.EVENT_CLICK, function () {
- self.fireEvent(BI.TextEditor.EVENT_CLICK);
- });
- this.editor.on(BI.Editor.EVENT_CHANGE, function () {
- self.fireEvent(BI.TextEditor.EVENT_CHANGE);
- });
- this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
- self.fireEvent(BI.TextEditor.EVENT_KEY_DOWN);
- });
- this.editor.on(BI.Editor.EVENT_SPACE, function (v) {
- self.fireEvent(BI.TextEditor.EVENT_SPACE);
- });
- this.editor.on(BI.Editor.EVENT_BACKSPACE, function (v) {
- self.fireEvent(BI.TextEditor.EVENT_BACKSPACE);
- });
-
-
- this.editor.on(BI.Editor.EVENT_VALID, function () {
- self.fireEvent(BI.TextEditor.EVENT_VALID);
- });
- this.editor.on(BI.Editor.EVENT_CONFIRM, function () {
- self.fireEvent(BI.TextEditor.EVENT_CONFIRM);
- });
- this.editor.on(BI.Editor.EVENT_REMOVE, function (v) {
- self.fireEvent(BI.TextEditor.EVENT_REMOVE);
- });
- this.editor.on(BI.Editor.EVENT_START, function () {
- self.fireEvent(BI.TextEditor.EVENT_START);
- });
- this.editor.on(BI.Editor.EVENT_PAUSE, function () {
- self.fireEvent(BI.TextEditor.EVENT_PAUSE);
- });
- this.editor.on(BI.Editor.EVENT_STOP, function () {
- self.fireEvent(BI.TextEditor.EVENT_STOP);
- });
- this.editor.on(BI.Editor.EVENT_ERROR, function () {
- self.fireEvent(BI.TextEditor.EVENT_ERROR, arguments);
- });
- this.editor.on(BI.Editor.EVENT_ENTER, function () {
- self.fireEvent(BI.TextEditor.EVENT_ENTER);
- });
- this.editor.on(BI.Editor.EVENT_RESTRICT, function () {
- self.fireEvent(BI.TextEditor.EVENT_RESTRICT);
- });
- this.editor.on(BI.Editor.EVENT_EMPTY, function () {
- self.fireEvent(BI.TextEditor.EVENT_EMPTY);
- });
- BI.createWidget({
- type: "bi.vertical",
- scrolly: false,
- element: this,
- items: [this.editor]
- });
- },
-
- focus: function () {
- this.editor.focus();
- },
-
- blur: function () {
- this.editor.blur();
- },
-
- setErrorText: function (text) {
- this.editor.setErrorText(text);
- },
-
- getErrorText: function () {
- return this.editor.getErrorText();
- },
-
- isValid: function () {
- return this.editor.isValid();
- },
-
- setValue: function (v) {
- this.editor.setValue(v);
- },
-
- getValue: function () {
- return this.editor.getValue();
- }
-});
-BI.TextEditor.EVENT_CHANGE = "EVENT_CHANGE";
-BI.TextEditor.EVENT_FOCUS = "EVENT_FOCUS";
-BI.TextEditor.EVENT_BLUR = "EVENT_BLUR";
-BI.TextEditor.EVENT_CLICK = "EVENT_CLICK";
-BI.TextEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
-BI.TextEditor.EVENT_SPACE = "EVENT_SPACE";
-BI.TextEditor.EVENT_BACKSPACE = "EVENT_BACKSPACE";
-
-BI.TextEditor.EVENT_START = "EVENT_START";
-BI.TextEditor.EVENT_PAUSE = "EVENT_PAUSE";
-BI.TextEditor.EVENT_STOP = "EVENT_STOP";
-BI.TextEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
-BI.TextEditor.EVENT_VALID = "EVENT_VALID";
-BI.TextEditor.EVENT_ERROR = "EVENT_ERROR";
-BI.TextEditor.EVENT_ENTER = "EVENT_ENTER";
-BI.TextEditor.EVENT_RESTRICT = "EVENT_RESTRICT";
-BI.TextEditor.EVENT_REMOVE = "EVENT_REMOVE";
-BI.TextEditor.EVENT_EMPTY = "EVENT_EMPTY";
-
-BI.shortcut("bi.text_editor", BI.TextEditor);/**
- * 小号搜索框
- * Created by GUY on 2015/9/29.
- * @class BI.SmallTextEditor
- * @extends BI.SearchEditor
- */
-BI.SmallTextEditor = BI.inherit(BI.TextEditor, {
- _defaultConfig: function () {
- var conf = BI.SmallTextEditor.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-small-text-editor",
- height: 25
- });
- },
-
- _init: function () {
- BI.SmallTextEditor.superclass._init.apply(this, arguments);
- }
-});
-BI.shortcut("bi.small_text_editor", BI.SmallTextEditor);/**
- * 有确定取消按钮的弹出层
- * @class BI.BarFloatSection
- * @extends BI.FloatSection
- * @abstract
- */
-BI.BarFloatSection = BI.inherit(BI.FloatSection, {
- _defaultConfig: function () {
- return BI.extend(BI.BarFloatSection.superclass._defaultConfig.apply(this, arguments), {
- btns: [BI.i18nText(BI.i18nText("BI-Basic_Sure")), BI.i18nText("BI-Basic_Cancel")]
- })
- },
-
- _init: function () {
- BI.BarFloatSection.superclass._init.apply(this, arguments);
- var self = this;
- var flatten = ["_init", "_defaultConfig", "_vessel", "_render", "getName", "listenEnd", "local", "refresh", "load", "change"];
- flatten = BI.makeObject(flatten, true);
- BI.each(this.constructor.caller.caller.caller.caller.prototype, function (key) {
- if (flatten[key]) {
- return;
- }
- var f = self[key];
- if (BI.isFunction(f)) {
- self[key] = BI.bind(function () {
- if (this.model._start === true) {
- this._F.push({f: f, arg: arguments});
- return;
- }
- return f.apply(this, arguments);
- }, self);
- }
- })
- },
-
- rebuildSouth: function (south) {
- var self = this, o = this.options;
- this.sure = BI.createWidget({
- type: 'bi.button',
- text: this.options.btns[0],
- height: 30,
- value: 0,
- handler: function (v) {
- self.end();
- self.close(v);
- }
- });
- this.cancel = BI.createWidget({
- type: 'bi.button',
- text: this.options.btns[1],
- height: 30,
- value: 1,
- level: 'ignore',
- handler: function (v) {
- self.close(v);
- }
- });
- BI.createWidget({
- type: 'bi.right_vertical_adapt',
- element: south,
- hgap: 5,
- items: [this.cancel, this.sure]
- });
- }
-});
-
-/**
- * 有确定取消按钮的弹出层
- * @class BI.BarPopoverSection
- * @extends BI.PopoverSection
- * @abstract
- */
-BI.BarPopoverSection = BI.inherit(BI.PopoverSection, {
- _defaultConfig: function () {
- return BI.extend(BI.BarPopoverSection.superclass._defaultConfig.apply(this, arguments), {
- btns: [BI.i18nText(BI.i18nText("BI-Basic_Sure")), BI.i18nText(BI.i18nText("BI-Basic_Cancel"))]
- })
- },
-
- _init: function () {
- BI.BarPopoverSection.superclass._init.apply(this, arguments);
- },
-
- rebuildSouth: function (south) {
- var self = this, o = this.options;
- this.sure = BI.createWidget({
- type: 'bi.button',
- text: this.options.btns[0],
- warningTitle: o.warningTitle,
- height: 30,
- value: 0,
- handler: function (v) {
- self.end();
- self.close(v);
- }
- });
- this.cancel = BI.createWidget({
- type: 'bi.button',
- text: this.options.btns[1],
- height: 30,
- value: 1,
- level: 'ignore',
- handler: function (v) {
- self.close(v);
- }
- });
- BI.createWidget({
- type: 'bi.right_vertical_adapt',
- element: south,
- hgap: 5,
- items: [this.cancel, this.sure]
- });
- },
-
- setConfirmButtonEnable: function(v){
- this.sure.setEnable(!!v);
- }
-});/**
- * 下拉框弹出层的多选版本,toolbar带有若干按钮, zIndex在1000w
- * @class BI.MultiPopupView
- * @extends BI.Widget
- */
-
-BI.MultiPopupView = BI.inherit(BI.PopupView, {
-
- _defaultConfig: function () {
- var conf = BI.MultiPopupView.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-multi-list-view",
- buttons: [BI.i18nText("BI-Basic_Sure")]
- })
- },
-
- _init: function () {
- BI.MultiPopupView.superclass._init.apply(this, arguments);
- },
-
- _createToolBar: function () {
- var o = this.options, self = this;
- if (o.buttons.length === 0) {
- return;
- }
-
- var text = []; //构造[{text:content},……]
- BI.each(o.buttons, function (idx, item) {
- text.push({
- text: item,
- value: idx
- })
- });
-
- this.buttongroup = BI.createWidget({
- type: "bi.button_group",
- cls: "list-view-toolbar bi-high-light bi-border-top",
- height: 30,
- items: BI.createItems(text, {
- type: "bi.text_button",
- once: false,
- shadow: true,
- isShadowShowingOnSelected: true
- }),
- layouts: [{
- type: "bi.center",
- hgap: 0,
- vgap: 0
- }]
- });
-
- this.buttongroup.on(BI.ButtonGroup.EVENT_CHANGE, function (value, obj) {
- self.fireEvent(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON, value, obj);
- });
-
- return this.buttongroup;
- }
-
-});
-
-BI.MultiPopupView.EVENT_CHANGE = "EVENT_CHANGE";
-BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON";
-
-BI.shortcut("bi.multi_popup_view", BI.MultiPopupView);/**
- * 可以理解为MultiPopupView和Panel两个面板的结合体
- * @class BI.PopupPanel
- * @extends BI.MultiPopupView
- */
-
-BI.PopupPanel = BI.inherit(BI.MultiPopupView, {
-
- _defaultConfig: function () {
- var conf = BI.PopupPanel.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-popup-panel",
- title: ""
- })
- },
-
- _init: function () {
- BI.PopupPanel.superclass._init.apply(this, arguments);
- },
-
- _createTool: function () {
- var self = this, o = this.options;
- var close = BI.createWidget({
- type: "bi.icon_button",
- cls: "close-h-font",
- width: 25,
- height: 25
- });
- close.on(BI.IconButton.EVENT_CHANGE, function () {
- self.setVisible(false);
- self.fireEvent(BI.PopupPanel.EVENT_CLOSE);
- });
- return BI.createWidget({
- type: "bi.htape",
- cls: "popup-panel-title bi-background bi-border",
- height: 25,
- items: [{
- el: {
- type: "bi.label",
- textAlign: "left",
- text: o.title,
- height: 25,
- lgap: 10
- }
- }, {
- el: close,
- width: 25
- }]
- });
- }
-});
-
-BI.PopupPanel.EVENT_CHANGE = "EVENT_CHANGE";
-BI.PopupPanel.EVENT_CLOSE = "EVENT_CLOSE";
-BI.PopupPanel.EVENT_CLICK_TOOLBAR_BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON";
-
-BI.shortcut("bi.popup_panel", BI.PopupPanel);/**
- * list面板
- *
- * Created by GUY on 2015/10/30.
- * @class BI.ListPane
- * @extends BI.Pane
- */
-BI.ListPane = BI.inherit(BI.Pane, {
-
- _defaultConfig: function () {
- var conf = BI.ListPane.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-list-pane",
- logic: {
- dynamic: true
- },
- lgap: 0,
- rgap: 0,
- tgap: 0,
- bgap: 0,
- vgap: 0,
- hgap: 0,
- items: [],
- itemsCreator: BI.emptyFn,
- hasNext: BI.emptyFn,
- onLoaded: BI.emptyFn,
- el: {
- type: "bi.button_group"
- }
- })
- },
- _init: function () {
- BI.ListPane.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- this.button_group = BI.createWidget(o.el, {
- type: "bi.button_group",
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE,
- behaviors: {},
- items: o.items,
- itemsCreator: function (op, calback) {
- if (op.times === 1) {
- self.empty();
- BI.nextTick(function () {
- self.loading()
- });
- }
- o.itemsCreator(op, function () {
- calback.apply(self, arguments);
- op.times === 1 && BI.nextTick(function () {
- self.loaded();
- });
- });
- },
- hasNext: o.hasNext,
- layouts: [{
- type: "bi.vertical"
- }]
- });
-
- this.button_group.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- if (type === BI.Events.CLICK) {
- self.fireEvent(BI.ListPane.EVENT_CHANGE, value, obj);
- }
- });
- this.check();
-
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Top), BI.extend({
- scrolly: true,
- lgap: o.lgap,
- rgap: o.rgap,
- tgap: o.tgap,
- bgap: o.bgap,
- vgap: o.vgap,
- hgap: o.hgap
- }, o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Top, this.button_group)
- }))));
- },
-
- hasPrev: function () {
- return this.button_group.hasPrev && this.button_group.hasPrev();
- },
-
- hasNext: function () {
- return this.button_group.hasNext && this.button_group.hasNext();
- },
-
- prependItems: function (items) {
- this.options.items = items.concat(this.options.items);
- this.button_group.prependItems.apply(this.button_group, arguments);
- this.check();
- },
-
- addItems: function (items) {
- this.options.items = this.options.items.concat(items);
- this.button_group.addItems.apply(this.button_group, arguments);
- this.check();
- },
-
- removeItemAt: function (indexes) {
- indexes = indexes || [];
- BI.removeAt(this.options.items, indexes);
- this.button_group.removeItemAt.apply(this.button_group, arguments);
- this.check();
- },
-
- populate: function (items) {
- var self = this, o = this.options;
- if (arguments.length === 0 && (BI.isFunction(this.button_group.attr("itemsCreator")))) {//接管loader的populate方法
- this.button_group.attr("itemsCreator").apply(this, [{times: 1}, function () {
- if (arguments.length === 0) {
- throw new Error("参数不能为空");
- }
- self.populate.apply(self, arguments);
- }]);
- return;
- }
- BI.ListPane.superclass.populate.apply(this, arguments);
- this.button_group.populate.apply(this.button_group, arguments);
- },
-
- empty: function () {
- this.button_group.empty();
- },
-
- setNotSelectedValue: function () {
- this.button_group.setNotSelectedValue.apply(this.button_group, arguments);
- },
-
- getNotSelectedValue: function () {
- return this.button_group.getNotSelectedValue();
- },
-
- setValue: function () {
- this.button_group.setValue.apply(this.button_group, arguments);
- },
-
- getValue: function () {
- return this.button_group.getValue.apply(this.button_group, arguments);
- },
-
- getAllButtons: function () {
- return this.button_group.getAllButtons();
- },
-
- getAllLeaves: function () {
- return this.button_group.getAllLeaves();
- },
-
- getSelectedButtons: function () {
- return this.button_group.getSelectedButtons();
- },
-
- getNotSelectedButtons: function () {
- return this.button_group.getNotSelectedButtons();
- },
-
- getIndexByValue: function (value) {
- return this.button_group.getIndexByValue(value);
- },
-
- getNodeById: function (id) {
- return this.button_group.getNodeById(id);
- },
-
- getNodeByValue: function (value) {
- return this.button_group.getNodeByValue(value);
- }
-});
-BI.ListPane.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.list_pane", BI.ListPane);/**
- * 带有标题栏的pane
- * @class BI.Panel
- * @extends BI.Widget
- */
-BI.Panel = BI.inherit(BI.Widget,{
- _defaultConfig : function(){
- return BI.extend(BI.Panel.superclass._defaultConfig.apply(this,arguments),{
- baseCls: "bi-panel bi-border",
- title:"",
- titleButtons:[],
- el:{},
- logic:{
- dynamic: false
- }
- });
- },
-
- _init:function(){
- BI.Panel.superclass._init.apply(this,arguments);
- var o = this.options;
-
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic("vertical", BI.extend(o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection("top", this._createTitle()
- ,this.options.el)
- }))));
- },
-
- _createTitle:function(){
- var self = this, o = this.options;
- this.text = BI.createWidget({
- type: "bi.label",
- cls: "panel-title-text",
- text: o.title,
- height: 30
- });
-
- this.button_group = BI.createWidget({
- type:"bi.button_group",
- items: o.titleButtons,
- layouts: [{
- type: "bi.center_adapt",
- lgap:10
- }]
- });
-
- this.button_group.on(BI.Controller.EVENT_CHANGE, function(){
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- this.button_group.on(BI.ButtonGroup.EVENT_CHANGE, function(value, obj){
- self.fireEvent(BI.Panel.EVENT_CHANGE, value, obj);
- });
-
- return {
- el: {
- type: "bi.left_right_vertical_adapt",
- cls: "panel-title bi-tips bi-border-bottom bi-background",
- height: 30,
- items: {
- left: [this.text],
- right: [this.button_group]
- },
- lhgap: 10,
- rhgap: 10
- },
- height: 30
- };
- },
-
- setTitle: function(title){
- this.text.setValue(title);
- }
-});
-BI.Panel.EVENT_CHANGE = "Panel.EVENT_CHANGE";
-
-BI.shortcut("bi.panel",BI.Panel);/**
- * 选择列表
- *
- * Created by GUY on 2015/11/1.
- * @class BI.SelectList
- * @extends BI.Widget
- */
-BI.SelectList = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.SelectList.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-select-list",
- direction: BI.Direction.Top,//toolbar的位置
- logic: {
- dynamic: true
- },
- items: [],
- itemsCreator: BI.emptyFn,
- hasNext: BI.emptyFn,
- onLoaded: BI.emptyFn,
- toolbar: {
- type: "bi.multi_select_bar"
- },
- el: {
- type: "bi.list_pane"
- }
- })
- },
- _init: function () {
- BI.SelectList.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- //全选
- this.toolbar = BI.createWidget(o.toolbar);
- this.toolbar.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
- var isAllSelected = this.isSelected();
- if (type === BI.Events.CLICK) {
- self.setAllSelected(isAllSelected);
- self.fireEvent(BI.SelectList.EVENT_CHANGE, value, obj);
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- this.list = BI.createWidget(o.el, {
- type: "bi.list_pane",
- items: o.items,
- itemsCreator: function (op, callback) {
- op.times === 1 && self.toolbar.setVisible(false);
- o.itemsCreator(op, function (items) {
- callback.apply(self, arguments);
- if (op.times === 1) {
- self.toolbar.setVisible(items && items.length > 0);
- self.toolbar.setEnable(items && items.length > 0);
- }
- self._checkAllSelected();
- });
- },
- onLoaded: o.onLoaded,
- hasNext: o.hasNext
- });
-
- this.list.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
- if (type === BI.Events.CLICK) {
- self._checkAllSelected();
- self.fireEvent(BI.SelectList.EVENT_CHANGE, value, obj);
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
-
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(o.direction), BI.extend({
- scrolly: true
- }, o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection(o.direction, this.toolbar, this.list)
- }))));
-
- if (o.items.length <= 0) {
- this.toolbar.setVisible(false);
- this.toolbar.setEnable(false);
- }
- },
-
- _checkAllSelected: function () {
- var selectLength = this.list.getValue().length;
- var notSelectLength = this.getAllLeaves().length - selectLength;
- var hasNext = this.list.hasNext();
- var isAlreadyAllSelected = this.toolbar.isSelected();
- var isHalf = selectLength > 0 && (notSelectLength > 0 || (!isAlreadyAllSelected && hasNext));
- isHalf = isHalf || (notSelectLength > 0 && hasNext && isAlreadyAllSelected);
- this.toolbar.setHalfSelected(isHalf);
- !isHalf && this.toolbar.setSelected(selectLength > 0 && notSelectLength <= 0 && (!hasNext || isAlreadyAllSelected));
- },
-
- setAllSelected: function (v) {
- BI.each(this.getAllButtons(), function (i, btn) {
- (btn.setSelected || btn.setAllSelected).apply(btn, [v]);
- });
- this.toolbar.setSelected(v);
- this.toolbar.setHalfSelected(false);
- },
-
- setToolBarVisible: function (b) {
- this.toolbar.setVisible(b);
- },
-
- isAllSelected: function () {
- return this.toolbar.isSelected();
- },
-
- hasPrev: function () {
- return this.list.hasPrev();
- },
-
- hasNext: function () {
- return this.list.hasNext();
- },
-
- prependItems: function (items) {
- this.list.prependItems.apply(this.list, arguments);
- },
-
- addItems: function (items) {
- this.list.addItems.apply(this.list, arguments);
- },
-
- setValue: function (data) {
- var selectAll = data.type === BI.ButtonGroup.CHOOSE_TYPE_ALL;
- this.setAllSelected(selectAll);
- this.list[selectAll ? "setNotSelectedValue" : "setValue"](data.value);
- this._checkAllSelected();
- },
-
- getValue: function () {
- if (this.isAllSelected() === false) {
- return {
- type: BI.ButtonGroup.CHOOSE_TYPE_MULTI,
- value: this.list.getValue(),
- assist: this.list.getNotSelectedValue()
- };
- } else {
- return {
- type: BI.ButtonGroup.CHOOSE_TYPE_ALL,
- value: this.list.getNotSelectedValue(),
- assist: this.list.getValue()
- };
- }
- },
-
- empty: function () {
- this.list.empty();
- },
-
- populate: function (items) {
- this.toolbar.setVisible(!BI.isEmptyArray(items));
- this.toolbar.setEnable(!BI.isEmptyArray(items));
- this.list.populate.apply(this.list, arguments);
- this._checkAllSelected();
- },
-
- _setEnable: function (enable) {
- BI.SelectList.superclass._setEnable.apply(this, arguments);
- this.toolbar.setEnable(enable);
- },
-
- resetHeight: function (h) {
- var toolHeight = ( this.toolbar.element.outerHeight() || 25) * ( this.toolbar.isVisible() ? 1 : 0);
- this.list.resetHeight ? this.list.resetHeight(h - toolHeight) :
- this.list.element.css({"max-height": h - toolHeight + "px"})
- },
-
- setNotSelectedValue: function () {
- this.list.setNotSelectedValue.apply(this.list, arguments);
- this._checkAllSelected();
- },
-
- getNotSelectedValue: function () {
- return this.list.getNotSelectedValue();
- },
-
- getAllButtons: function () {
- return this.list.getAllButtons();
- },
-
- getAllLeaves: function () {
- return this.list.getAllLeaves();
- },
-
- getSelectedButtons: function () {
- return this.list.getSelectedButtons();
- },
-
- getNotSelectedButtons: function () {
- return this.list.getNotSelectedButtons();
- },
-
- getIndexByValue: function (value) {
- return this.list.getIndexByValue(value);
- },
-
- getNodeById: function (id) {
- return this.list.getNodeById(id);
- },
-
- getNodeByValue: function (value) {
- return this.list.getNodeByValue(value);
- }
-});
-BI.SelectList.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.select_list", BI.SelectList);/**
- * Created by roy on 15/11/6.
- */
-BI.LazyLoader = BI.inherit(BI.Widget, {
- _const: {
- PAGE: 100
- },
- _defaultConfig: function () {
- return BI.extend(BI.LazyLoader.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-lazy-loader",
- el: {}
- })
- },
-
- _init: function () {
- var self = this, o = this.options;
- BI.LazyLoader.superclass._init.apply(this, arguments);
- var all = o.items.length;
- this.loader = BI.createWidget({
- type: "bi.loader",
- element: this,
- //下面是button_group的属性
- el: o.el,
-
- itemsCreator: function (options, populate) {
- populate(self._getNextItems(options));
- },
- hasNext: function (option) {
- return option.count < all;
- }
- });
-
- this.loader.on(BI.Loader.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.LazyLoader.EVENT_CHANGE, obj)
- })
- },
- _getNextItems: function (options) {
- var self = this, o = this.options;
- var lastNum = o.items.length - this._const.PAGE * (options.times - 1);
- var lastItems = BI.last(o.items, lastNum);
- var nextItems = BI.first(lastItems, this._const.PAGE);
- return nextItems;
- },
-
- populate: function (items) {
- this.loader.populate(items);
- },
-
- addItems: function (items) {
- this.loader.addItems(items);
- },
-
- empty: function () {
- this.loader.empty();
- },
-
- setNotSelectedValue: function () {
- this.loader.setNotSelectedValue.apply(this.loader, arguments);
- },
-
- getNotSelectedValue: function () {
- return this.loader.getNotSelectedValue();
- },
-
- setValue: function () {
- this.loader.setValue.apply(this.loader, arguments);
- },
-
- getValue: function () {
- return this.loader.getValue.apply(this.loader, arguments);
- },
-
- getAllButtons: function () {
- return this.loader.getAllButtons();
- },
-
- getAllLeaves: function () {
- return this.loader.getAllLeaves();
- },
-
- getSelectedButtons: function () {
- return this.loader.getSelectedButtons();
- },
-
- getNotSelectedButtons: function () {
- return this.loader.getNotSelectedButtons();
- },
-
- getIndexByValue: function (value) {
- return this.loader.getIndexByValue(value);
- },
-
- getNodeById: function (id) {
- return this.loader.getNodeById(id);
- },
-
- getNodeByValue: function (value) {
- return this.loader.getNodeByValue(value);
- }
-});
-BI.LazyLoader.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.lazy_loader", BI.LazyLoader);/**
- * 恶心的加载控件, 为解决排序问题引入的控件
- *
- * Created by GUY on 2015/11/12.
- * @class BI.ListLoader
- * @extends BI.Widget
- */
-BI.ListLoader = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.ListLoader.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-list-loader",
-
- isDefaultInit: true,//是否默认初始化数据
-
- //下面是button_group的属性
- el: {
- type: "bi.button_group"
- },
-
- items: [],
- itemsCreator: BI.emptyFn,
- onLoaded: BI.emptyFn,
-
- //下面是分页信息
- count: false,
- next: {},
- hasNext: BI.emptyFn
- })
- },
-
- _nextLoad: function () {
- var self = this, o = this.options;
- this.next.setLoading();
- o.itemsCreator.apply(this, [{times: ++this.times}, function () {
- self.next.setLoaded();
- self.addItems.apply(self, arguments);
- }]);
- },
-
- _init: function () {
- BI.ListLoader.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- if (o.itemsCreator === false) {
- o.next = false;
- }
-
- this.button_group = BI.createWidget(o.el, {
- type: "bi.button_group",
- element: this,
- chooseType: 0,
- items: o.items,
- behaviors: {},
- layouts: [{
- type: "bi.vertical"
- }]
- });
- this.button_group.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- if (type === BI.Events.CLICK) {
- self.fireEvent(BI.ListLoader.EVENT_CHANGE, obj);
- }
- });
-
- if (o.next !== false) {
- this.next = BI.createWidget(BI.extend({
- type: "bi.loading_bar"
- }, o.next));
- this.next.on(BI.Controller.EVENT_CHANGE, function (type) {
- if (type === BI.Events.CLICK) {
- self._nextLoad();
- }
- })
- }
-
- BI.createWidget({
- type: "bi.vertical",
- element: this,
- items: [this.next]
- });
-
- o.isDefaultInit && BI.isEmpty(o.items) && BI.nextTick(BI.bind(function () {
- this.populate();
- }, this));
- if (BI.isNotEmptyArray(o.items)) {
- this.populate(o.items);
- }
- },
-
- hasNext: function () {
- var o = this.options;
- if (BI.isNumber(o.count)) {
- return this.count < o.count;
- }
- return !!o.hasNext.apply(this, [{
- times: this.times,
- count: this.count
- }])
- },
-
- addItems: function (items) {
- this.count += items.length;
- if (BI.isObject(this.next)) {
- if (this.hasNext()) {
- this.options.items = this.options.items.concat(items);
- this.next.setLoaded();
- } else {
- this.next.setEnd();
- }
- }
- this.button_group.addItems.apply(this.button_group, arguments);
- this.next.element.appendTo(this.element);
- },
-
- populate: function (items) {
- var self = this, o = this.options;
- if (arguments.length === 0 && (BI.isFunction(o.itemsCreator))) {
- o.itemsCreator.apply(this, [{times: 1}, function () {
- if (arguments.length === 0) {
- throw new Error("参数不能为空");
- }
- self.populate.apply(self, arguments);
- o.onLoaded();
- }]);
- return;
- }
- this.options.items = items;
- this.times = 1;
- this.count = 0;
- this.count += items.length;
- if (BI.isObject(this.next)) {
- if (this.hasNext()) {
- this.next.setLoaded();
- } else {
- this.next.invisible();
- }
- }
- BI.DOM.hang([this.next]);
- this.button_group.populate.apply(this.button_group, arguments);
- this.next.element.appendTo(this.element);
- },
-
- empty: function () {
- BI.DOM.hang([this.next]);
- this.button_group.empty();
- this.next.element.appendTo(this.element);
- BI.each([this.next], function (i, ob) {
- ob && ob.setVisible(false);
- });
- },
-
- setNotSelectedValue: function () {
- this.button_group.setNotSelectedValue.apply(this.button_group, arguments);
- },
-
- getNotSelectedValue: function () {
- return this.button_group.getNotSelectedValue();
- },
-
- setValue: function () {
- this.button_group.setValue.apply(this.button_group, arguments);
- },
-
- getValue: function () {
- return this.button_group.getValue.apply(this.button_group, arguments);
- },
-
- getAllButtons: function () {
- return this.button_group.getAllButtons();
- },
-
- getAllLeaves: function () {
- return this.button_group.getAllLeaves();
- },
-
- getSelectedButtons: function () {
- return this.button_group.getSelectedButtons();
- },
-
- getNotSelectedButtons: function () {
- return this.button_group.getNotSelectedButtons();
- },
-
- getIndexByValue: function (value) {
- return this.button_group.getIndexByValue(value);
- },
-
- getNodeById: function (id) {
- return this.button_group.getNodeById(id);
- },
-
- getNodeByValue: function (value) {
- return this.button_group.getNodeByValue(value);
- }
-});
-BI.ListLoader.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.list_loader", BI.ListLoader);/**
- * Created by GUY on 2016/4/29.
- *
- * @class BI.SortList
- * @extends BI.Widget
+ getValue: function () {
+ return this.branchView.getValue();
+ }
+});
+BI.HandStandBranchExpander.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.handstand_branch_expander", BI.HandStandBranchExpander);/**
+ * @class BI.BranchExpander
+ * @extend BI.Widget
+ * create by young
*/
-BI.SortList = BI.inherit(BI.Widget, {
+BI.BranchExpander = BI.inherit(BI.Widget, {
_defaultConfig: function () {
- return BI.extend(BI.SortList.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-sort-list",
+ return BI.extend(BI.BranchExpander.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-branch-expander",
+ direction: BI.Direction.Left,
+ logic: {
+ dynamic: true
+ },
+ el: {},
+ popup: {}
+ })
+ },
- isDefaultInit: true,//是否默认初始化数据
+ _init: function () {
+ BI.BranchExpander.superclass._init.apply(this, arguments);
+ var o = this.options;
+ this._initExpander();
+ this._initBranchView();
+ BI.createWidget(BI.extend({
+ element: this
+ }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(o.direction), BI.extend({}, o.logic, {
+ items: BI.LogicFactory.createLogicItemsByDirection(o.direction, this.expander, this.branchView)
+ }))));
+ },
- //下面是button_group的属性
- el: {
- type: "bi.button_group"
- },
+ _initExpander: function () {
+ var self = this, o = this.options;
+ this.expander = BI.createWidget(o.el, {
+ type: "bi.label",
+ width: 30,
+ height: "100%"
+ });
+ this.expander.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ },
- items: [],
- itemsCreator: BI.emptyFn,
- onLoaded: BI.emptyFn,
+ _initBranchView: function () {
+ var self = this, o = this.options;
+ this.branchView = BI.createWidget(o.popup, {});
+ this.branchView.on(BI.Controller.EVENT_CHANGE, function () {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ },
- //下面是分页信息
- count: false,
- next: {},
- hasNext: BI.emptyFn
+ populate: function (items) {
+ this.branchView.populate.apply(this.branchView, arguments);
+ },
- //containment: this.element,
- //connectWith: ".bi-sort-list",
+ getValue: function () {
+ return this.branchView.getValue();
+ }
+});
+BI.BranchExpander.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.branch_expander", BI.BranchExpander);/**
+ * @class BI.HandStandBranchTree
+ * @extends BI.Widget
+ * create by young
+ * 横向分支的树
+ */
+BI.HandStandBranchTree = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.HandStandBranchTree.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-handstand-branch-tree",
+ expander: {},
+ el: {},
+ items: []
})
},
-
_init: function () {
- BI.SortList.superclass._init.apply(this, arguments);
+ BI.HandStandBranchTree.superclass._init.apply(this, arguments);
var self = this, o = this.options;
- this.loader = BI.createWidget({
- type: "bi.list_loader",
+ this.branchTree = BI.createWidget({
+ type: "bi.custom_tree",
element: this,
- isDefaultInit: o.isDefaultInit,
- el: o.el,
- items: this._formatItems(o.items),
- itemsCreator: function (op, callback) {
- o.itemsCreator(op, function (items) {
- callback(self._formatItems(items));
- });
- },
- onLoaded: o.onLoaded,
- count: o.count,
- next: o.next,
- hasNext: o.hasNext
+ expander: BI.extend({
+ type: "bi.handstand_branch_expander",
+ el: {},
+ popup: {
+ type: "bi.custom_tree"
+ }
+ }, o.expander),
+ el: BI.extend({
+ type: "bi.button_tree",
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_MULTI,
+ layouts: [{
+ type: "bi.horizontal_adapt"
+ }]
+ }, o.el),
+ items: this.options.items
});
- this.loader.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
+ this.branchTree.on(BI.CustomTree.EVENT_CHANGE, function(){
+ self.fireEvent(BI.HandStandBranchTree.EVENT_CHANGE, arguments);
+ });
+ this.branchTree.on(BI.Controller.EVENT_CHANGE, function(){
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- if (type === BI.Events.CLICK) {
- self.fireEvent(BI.SortList.EVENT_CHANGE, value, obj);
- }
});
+ },
- this.loader.element.sortable({
- containment: o.containment || this.element,
- connectWith: o.connectWith || ".bi-sort-list",
- items: ".sort-item",
- cursor: o.cursor || "drag",
- tolerance: o.tolerance || "intersect",
- placeholder: {
- element: function ($currentItem) {
- var holder = BI.createWidget({
- type: "bi.layout",
- cls: "bi-sortable-holder",
- height: $currentItem.outerHeight()
- });
- holder.element.css({
- "margin-left": $currentItem.css("margin-left"),
- "margin-right": $currentItem.css("margin-right"),
- "margin-top": $currentItem.css("margin-top"),
- "margin-bottom": $currentItem.css("margin-bottom"),
- "margin": $currentItem.css("margin")
- });
- return holder.element;
- },
- update: function () {
+ populate: function () {
+ this.branchTree.populate.apply(this.branchTree, arguments);
+ },
+ getValue: function () {
+ return this.branchTree.getValue();
+ }
+});
+BI.HandStandBranchTree.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.handstand_branch_tree", BI.HandStandBranchTree);/**
+ * @class BI.BranchTree
+ * @extends BI.Widget
+ * create by young
+ * 横向分支的树
+ */
+BI.BranchTree = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.BranchTree.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-branch-tree",
+ expander: {},
+ el: {},
+ items: []
+ })
+ },
+ _init: function () {
+ BI.BranchTree.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.branchTree = BI.createWidget({
+ type: "bi.custom_tree",
+ element: this,
+ expander: BI.extend({
+ type: "bi.branch_expander",
+ el: {},
+ popup: {
+ type: "bi.custom_tree"
}
- },
- start: function (event, ui) {
+ }, o.expander),
+ el: BI.extend({
+ type: "bi.button_tree",
+ chooseType: BI.ButtonGroup.CHOOSE_TYPE_MULTI,
+ layouts: [{
+ type: "bi.vertical"
+ }]
+ }, o.el),
+ items: this.options.items
+ });
+ this.branchTree.on(BI.CustomTree.EVENT_CHANGE, function(){
+ self.fireEvent(BI.BranchTree.EVENT_CHANGE, arguments);
+ });
+ this.branchTree.on(BI.Controller.EVENT_CHANGE, function(){
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ });
+ },
+
+ populate: function () {
+ this.branchTree.populate.apply(this.branchTree, arguments);
+ },
+
+ getValue: function () {
+ return this.branchTree.getValue();
+ }
+});
+BI.BranchTree.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.branch_tree", BI.BranchTree);/**
+ * guy
+ * 异步树
+ * @class BI.DisplayTree
+ * @extends BI.TreeView
+ */
+BI.DisplayTree = BI.inherit(BI.TreeView, {
+ _defaultConfig: function () {
+ return BI.extend(BI.DisplayTree.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-display-tree"
+ })
+ },
+ _init: function () {
+ BI.DisplayTree.superclass._init.apply(this, arguments);
+ },
+ //配置属性
+ _configSetting: function () {
+ var setting = {
+ view: {
+ selectedMulti: false,
+ dblClickExpand: false,
+ showIcon: false,
+ showTitle: false
},
- stop: function (event, ui) {
- self.fireEvent(BI.SortList.EVENT_CHANGE);
+ data: {
+ key: {
+ title: "title",
+ name: "text"
+ },
+ simpleData: {
+ enable: true
+ }
},
- over: function (event, ui) {
+ callback: {
+ beforeCollapse: beforeCollapse
+ }
+ };
+
+ function beforeCollapse(treeId, treeNode) {
+ return false;
+ }
+
+ return setting;
+ },
+ _dealWidthNodes: function (nodes) {
+ nodes = BI.DisplayTree.superclass._dealWidthNodes.apply(this, arguments);
+ var self = this, o = this.options;
+ BI.each(nodes, function (i, node) {
+ if (node.count > 0) {
+ node.text = node.value + "(" + BI.i18nText("BI-Basic_Altogether") + node.count + BI.i18nText("BI-Basic_Count") + ")";
+ } else {
+ node.text = node.value;
}
});
+ return nodes;
},
- _formatItems: function (items) {
- BI.each(items, function (i, item) {
- item = BI.stripEL(item);
- item.cls = item.cls ? item.cls + " sort-item" : "sort-item";
- item.attributes = {
- sorted: item.value
- };
- });
- return items;
+ initTree: function (nodes, setting) {
+ var setting = setting || this._configSetting();
+ this.nodes = $.fn.zTree.init(this.tree.element, setting, nodes);
},
- hasNext: function () {
- return this.loader.hasNext();
+ destroy: function () {
+ BI.DisplayTree.superclass.destroy.apply(this, arguments);
+ }
+});
+BI.DisplayTree.EVENT_CHANGE = "EVENT_CHANGE";
+
+BI.shortcut("bi.display_tree", BI.DisplayTree);/**
+ * guy
+ * 二级树
+ * @class BI.LevelTree
+ * @extends BI.Single
+ */
+BI.LevelTree = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.LevelTree.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-level-tree",
+ el: {
+ chooseType: 0
+ },
+ expander: {},
+ items: []
+ })
},
- addItems: function (items) {
- this.loader.addItems(items);
+ _init: function () {
+ BI.LevelTree.superclass._init.apply(this, arguments);
+
+ this.initTree(this.options.items);
+ },
+
+ _formatItems: function (nodes, layer) {
+ var self = this;
+ BI.each(nodes, function (i, node) {
+ var extend = {layer: layer};
+ if (!BI.isKey(node.id)) {
+ node.id = BI.UUID();
+ }
+ if (node.isParent === true || BI.isNotEmptyArray(node.children)) {
+ switch (i) {
+ case 0 :
+ extend.type = "bi.first_plus_group_node";
+ break;
+ case nodes.length - 1 :
+ extend.type = "bi.last_plus_group_node";
+ break;
+ default :
+ extend.type = "bi.mid_plus_group_node";
+ break;
+ }
+ BI.defaults(node, extend);
+ self._formatItems(node.children, layer + 1);
+ } else {
+ switch (i) {
+ case nodes.length - 1:
+ extend.type = "bi.last_tree_leaf_item";
+ break;
+ default :
+ extend.type = "bi.mid_tree_leaf_item";
+ }
+ BI.defaults(node, extend);
+ }
+ });
+ return nodes;
},
- populate: function (items) {
- if (items) {
- arguments[0] = this._formatItems(items);
- }
- this.loader.populate.apply(this.loader, arguments);
+ _assertId: function (sNodes) {
+ BI.each(sNodes, function (i, node) {
+ if (!BI.isKey(node.id)) {
+ node.id = BI.UUID();
+ }
+ });
},
- empty: function () {
- this.loader.empty();
+ //构造树结构,
+ initTree: function (nodes) {
+ var self = this, o = this.options;
+ this.empty();
+ this._assertId(nodes);
+ this.tree = BI.createWidget({
+ type: "bi.custom_tree",
+ element: this,
+ expander: BI.extend({
+ el: {},
+ popup: {
+ type: "bi.custom_tree"
+ }
+ }, o.expander),
+
+ items: this._formatItems(BI.Tree.transformToTreeFormat(nodes), 0),
+
+ el: BI.extend({
+ type: "bi.button_tree",
+ chooseType: 0,
+ layouts: [{
+ type: "bi.vertical"
+ }]
+ }, o.el)
+ });
+ this.tree.on(BI.Controller.EVENT_CHANGE, function (type) {
+ self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
+ if (type === BI.Events.CLICK) {
+ self.fireEvent(BI.LevelTree.EVENT_CHANGE, arguments);
+ }
+ })
},
- setNotSelectedValue: function () {
- this.loader.setNotSelectedValue.apply(this.loader, arguments);
+ //生成树方法
+ stroke: function (nodes) {
+ this.tree.stroke.apply(this.tree, arguments);
},
- getNotSelectedValue: function () {
- return this.loader.getNotSelectedValue();
+ populate: function (items) {
+ items = this._formatItems(BI.Tree.transformToTreeFormat(items), 0);
+ this.tree.populate(items);
},
- setValue: function () {
- this.loader.setValue.apply(this.loader, arguments);
+ setValue: function (v) {
+ this.tree.setValue(v);
},
getValue: function () {
- return this.loader.getValue();
+ return this.tree.getValue();
},
- getAllButtons: function () {
- return this.loader.getAllButtons();
+ getAllLeaves: function () {
+ return this.tree.getAllLeaves();
},
- getAllLeaves: function () {
- return this.loader.getAllLeaves();
+ getNodeById: function (id) {
+ return this.tree.getNodeById(id);
},
- getSelectedButtons: function () {
- return this.loader.getSelectedButtons();
+ getNodeByValue: function (id) {
+ return this.tree.getNodeByValue(id);
+ }
+});
+BI.LevelTree.EVENT_CHANGE = "EVENT_CHANGE";
+
+BI.shortcut("bi.level_tree", BI.LevelTree);/**
+ * 简单的多选树
+ *
+ * Created by GUY on 2016/2/16.
+ * @class BI.SimpleTreeView
+ * @extends BI.Widget
+ */
+BI.SimpleTreeView = BI.inherit(BI.Widget, {
+ _defaultConfig: function () {
+ return BI.extend(BI.SimpleTreeView.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-simple-tree",
+ itemsCreator: BI.emptyFn,
+ items: null
+ })
+ },
+ _init: function () {
+ BI.SimpleTreeView.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.structure = new BI.Tree();
+ this.tree = BI.createWidget({
+ type: "bi.tree_view",
+ element: this,
+ itemsCreator: function (op, callback) {
+ var fn = function (items) {
+ callback({
+ items: items
+ });
+ self.structure.initTree(BI.Tree.transformToTreeFormat(items));
+ };
+ if (BI.isNotNull(o.items)) {
+ fn(o.items);
+ } else {
+ o.itemsCreator(op, fn);
+ }
+ }
+ });
+ this.tree.on(BI.TreeView.EVENT_CHANGE, function () {
+ self.fireEvent(BI.SimpleTreeView.EVENT_CHANGE, arguments);
+ });
+ if (BI.isNotEmptyArray(o.items)) {
+ this.populate();
+ }
},
- getNotSelectedButtons: function () {
- return this.loader.getNotSelectedButtons();
+ populate: function (items, keyword) {
+ if (items) {
+ this.options.items = items;
+ }
+ this.tree.stroke({
+ keyword: keyword
+ });
},
- getIndexByValue: function (value) {
- return this.loader.getIndexByValue(value);
+ setValue: function (v) {
+ v || (v = []);
+ var self = this, map = {};
+ var selected = [];
+ BI.each(v, function (i, val) {
+ var node = self.structure.search(val, "value");
+ if (node) {
+ var p = node;
+ p = p.getParent();
+ if (p) {
+ if (!map[p.value]) {
+ map[p.value] = 0;
+ }
+ map[p.value]++;
+ }
+
+ while (p && p.getChildrenLength() <= map[p.value]) {
+ selected.push(p.value);
+ p = p.getParent();
+ if (p) {
+ if (!map[p.value]) {
+ map[p.value] = 0;
+ }
+ map[p.value]++;
+ }
+ }
+ }
+ });
+
+ this.tree.setValue(BI.makeObject(v.concat(selected)));
},
- getNodeById: function (id) {
- return this.loader.getNodeById(id);
+ _getValue: function () {
+ var self = this, result = [], val = this.tree.getValue();
+ var track = function (nodes) {
+ BI.each(nodes, function (key, node) {
+ if (BI.isEmpty(node)) {
+ result.push(key);
+ } else {
+ track(node);
+ }
+ })
+ };
+ track(val);
+ return result;
},
- getNodeByValue: function (value) {
- return this.loader.getNodeByValue(value);
+ empty: function () {
+ this.tree.empty();
},
- getSortedValues: function () {
- return this.loader.element.sortable("toArray", {attribute: "sorted"});
+ getValue: function () {
+ var self = this, result = [], val = this._getValue();
+ BI.each(val, function (i, key) {
+ var target = self.structure.search(key, "value");
+ if (target) {
+ self.structure._traverse(target, function (node) {
+ if (node.isLeaf()) {
+ result.push(node.value);
+ }
+ })
+ }
+ });
+ return result;
}
});
-BI.SortList.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.sort_list", BI.SortList);/**
- * 有总页数和总行数的分页控件
- * Created by Young's on 2016/10/13.
- */
-BI.AllCountPager = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AllCountPager.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-all-count-pager",
- height: 30,
- pages: 1, //必选项
- curr: 1, //初始化当前页, pages为数字时可用,
- count: 1 //总行数
- })
- },
- _init: function () {
- BI.AllCountPager.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.editor = BI.createWidget({
- type: "bi.small_text_editor",
- cls: "pager-editor",
- validationChecker: function (v) {
- return (self.rowCount.getValue() === 0 && v === "0") || BI.isPositiveInteger(v);
- },
- hgap: 4,
- vgap: 0,
- value: o.curr,
- errorText: BI.i18nText("BI-Please_Input_Positive_Integer"),
- width: 35,
- height: 20
- });
-
- this.pager = BI.createWidget({
- type: "bi.pager",
- width: 36,
- layouts: [{
- type: "bi.horizontal",
- hgap: 1,
- vgap: 1
- }],
-
- dynamicShow: false,
- pages: o.pages,
- curr: o.curr,
- groups: 0,
-
- first: false,
- last: false,
- prev: {
- type: "bi.icon_button",
- value: "prev",
- title: BI.i18nText("BI-Previous_Page"),
- warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
- height: 20,
- cls: "all-pager-prev column-pre-page-h-font"
- },
- next: {
- type: "bi.icon_button",
- value: "next",
- title: BI.i18nText("BI-Next_Page"),
- warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
- height: 20,
- cls: "all-pager-next column-next-page-h-font"
- },
-
- hasPrev: o.hasPrev,
- hasNext: o.hasNext,
- firstPage: o.firstPage,
- lastPage: o.lastPage
- });
-
- this.editor.on(BI.TextEditor.EVENT_CONFIRM, function () {
- self.pager.setValue(BI.parseInt(self.editor.getValue()));
- self.fireEvent(BI.AllCountPager.EVENT_CHANGE);
- });
- this.pager.on(BI.Pager.EVENT_CHANGE, function () {
- self.fireEvent(BI.AllCountPager.EVENT_CHANGE);
- });
- this.pager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
- self.editor.setValue(self.pager.getCurrentPage());
- });
-
- this.allPages = BI.createWidget({
- type: "bi.label",
- width: 30,
- title: o.pages,
- text: "/" + o.pages
- });
-
- this.rowCount = BI.createWidget({
- type: "bi.label",
- height: o.height,
- hgap: 5,
- text: o.count,
- title: o.count
- });
-
- var count = BI.createWidget({
- type: "bi.left",
- height: o.height,
- scrollable: false,
- items: [{
- type: "bi.label",
- height: o.height,
- text: BI.i18nText("BI-Basic_Total"),
- width: 15
- }, this.rowCount, {
- type: "bi.label",
- height: o.height,
- text: BI.i18nText("BI-Tiao_Data"),
- width: 50,
- textAlign: "left"
- }]
- });
- BI.createWidget({
- type: "bi.center_adapt",
- element: this,
- columnSize: ["", 35, 40, 36],
- items: [count, this.editor, this.allPages, this.pager]
- })
- },
-
- alwaysShowPager: true,
-
- setAllPages: function (v) {
- this.allPages.setText("/" + v);
- this.allPages.setTitle(v);
- this.pager.setAllPages(v);
- this.editor.setEnable(v >= 1);
- },
-
- setValue: function (v) {
- this.pager.setValue(v);
- },
-
- setVPage: function (v) {
- this.pager.setValue(v);
- },
-
- setCount: function (count) {
- this.rowCount.setText(count);
- this.rowCount.setTitle(count);
- },
-
- getCurrentPage: function () {
- return this.pager.getCurrentPage();
- },
-
- hasPrev: function () {
- return this.pager.hasPrev();
- },
-
- hasNext: function () {
- return this.pager.hasNext();
- },
-
- setPagerVisible: function (b) {
- this.editor.setVisible(b);
- this.allPages.setVisible(b);
- this.pager.setVisible(b);
- },
-
- populate: function () {
- this.pager.populate();
- }
-});
-BI.AllCountPager.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.all_count_pager", BI.AllCountPager);/**
- * 显示页码的分页控件
- *
- * Created by GUY on 2016/6/30.
- * @class BI.DirectionPager
- * @extends BI.Widget
- */
-BI.DirectionPager = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.DirectionPager.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-direction-pager",
- height: 30,
- horizontal: {
- pages: false, //总页数
- curr: 1, //初始化当前页, pages为数字时可用
-
- hasPrev: BI.emptyFn,
- hasNext: BI.emptyFn,
- firstPage: 1,
- lastPage: BI.emptyFn
- },
- vertical: {
- pages: false, //总页数
- curr: 1, //初始化当前页, pages为数字时可用
-
- hasPrev: BI.emptyFn,
- hasNext: BI.emptyFn,
- firstPage: 1,
- lastPage: BI.emptyFn
- }
- })
- },
- _init: function () {
- BI.DirectionPager.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- var v = o.vertical, h = o.horizontal;
- this._createVPager();
- this._createHPager();
- this.layout = BI.createWidget({
- type: "bi.absolute",
- scrollable: false,
- element: this,
- items: [{
- el: this.vpager,
- top: 5,
- right: 74
- }, {
- el: this.vlabel,
- top: 5,
- right: 111
- }, {
- el: this.hpager,
- top: 5,
- right: -9
- }, {
- el: this.hlabel,
- top: 5,
- right: 28
- }]
- });
- },
-
- _createVPager: function () {
- var self = this, o = this.options;
- var v = o.vertical;
- this.vlabel = BI.createWidget({
- type: "bi.label",
- width: 24,
- height: 20,
- value: v.curr,
- title: v.curr
- });
- this.vpager = BI.createWidget({
- type: "bi.pager",
- width: 76,
- layouts: [{
- type: "bi.horizontal",
- scrollx: false,
- rgap: 24,
- vgap: 1
- }],
-
- dynamicShow: false,
- pages: v.pages,
- curr: v.curr,
- groups: 0,
-
- first: false,
- last: false,
- prev: {
- type: "bi.icon_button",
- value: "prev",
- title: BI.i18nText("BI-Up_Page"),
- warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
- height: 20,
- iconWidth: 16,
- iconHeight: 16,
- cls: "direction-pager-prev column-pre-page-h-font"
- },
- next: {
- type: "bi.icon_button",
- value: "next",
- title: BI.i18nText("BI-Down_Page"),
- warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
- height: 20,
- iconWidth: 16,
- iconHeight: 16,
- cls: "direction-pager-next column-next-page-h-font"
- },
-
- hasPrev: v.hasPrev,
- hasNext: v.hasNext,
- firstPage: v.firstPage,
- lastPage: v.lastPage
- });
-
- this.vpager.on(BI.Pager.EVENT_CHANGE, function () {
- self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
- });
- this.vpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
- self.vlabel.setValue(this.getCurrentPage());
- self.vlabel.setTitle(this.getCurrentPage());
- });
- },
-
- _createHPager: function () {
- var self = this, o = this.options;
- var h = o.horizontal;
- this.hlabel = BI.createWidget({
- type: "bi.label",
- width: 24,
- height: 20,
- value: h.curr,
- title: h.curr
- });
- this.hpager = BI.createWidget({
- type: "bi.pager",
- width: 76,
- layouts: [{
- type: "bi.horizontal",
- scrollx: false,
- rgap: 24,
- vgap: 1
- }],
-
- dynamicShow: false,
- pages: h.pages,
- curr: h.curr,
- groups: 0,
-
- first: false,
- last: false,
- prev: {
- type: "bi.icon_button",
- value: "prev",
- title: BI.i18nText("BI-Left_Page"),
- warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
- height: 20,
- iconWidth: 16,
- iconHeight: 16,
- cls: "direction-pager-prev row-pre-page-h-font"
- },
- next: {
- type: "bi.icon_button",
- value: "next",
- title: BI.i18nText("BI-Right_Page"),
- warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
- height: 20,
- iconWidth: 16,
- iconHeight: 16,
- cls: "direction-pager-next row-next-page-h-font"
- },
-
- hasPrev: h.hasPrev,
- hasNext: h.hasNext,
- firstPage: h.firstPage,
- lastPage: h.lastPage
- });
-
- this.hpager.on(BI.Pager.EVENT_CHANGE, function () {
- self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
- });
- this.hpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
- self.hlabel.setValue(this.getCurrentPage());
- self.hlabel.setTitle(this.getCurrentPage());
- });
- },
-
- getVPage: function () {
- return this.vpager.getCurrentPage();
- },
-
- getHPage: function () {
- return this.hpager.getCurrentPage();
- },
-
- setVPage: function (v) {
- this.vpager.setValue(v);
- this.vlabel.setValue(v);
- this.vlabel.setTitle(v);
- },
-
- setHPage: function (v) {
- this.hpager.setValue(v);
- this.hlabel.setValue(v);
- this.hlabel.setTitle(v);
- },
-
- hasVNext: function () {
- return this.vpager.hasNext();
- },
-
- hasHNext: function () {
- return this.hpager.hasNext();
- },
-
- hasVPrev: function () {
- return this.vpager.hasPrev();
- },
-
- hasHPrev: function () {
- return this.hpager.hasPrev();
- },
-
- setHPagerVisible: function (b) {
- this.hpager.setVisible(b);
- this.hlabel.setVisible(b);
- },
-
- setVPagerVisible: function (b) {
- this.vpager.setVisible(b);
- this.vlabel.setVisible(b);
- },
-
- populate: function () {
- this.vpager.populate();
- this.hpager.populate();
- var vShow = false, hShow = false;
- if (!this.hasHNext() && !this.hasHPrev()) {
- this.setHPagerVisible(false);
- } else {
- this.setHPagerVisible(true);
- hShow = true;
- }
- if (!this.hasVNext() && !this.hasVPrev()) {
- this.setVPagerVisible(false);
- } else {
- this.setVPagerVisible(true);
- vShow = true;
- }
- this.setVisible(hShow || vShow);
- var num = [74, 111, -9, 28];
- var items = this.layout.attr("items");
-
- if (vShow === true && hShow === true) {
- items[0].right = num[0];
- items[1].right = num[1];
- items[2].right = num[2];
- items[3].right = num[3];
- } else if (vShow === true) {
- items[0].right = num[2];
- items[1].right = num[3];
- } else if (hShow === true) {
- items[2].right = num[2];
- items[3].right = num[3];
- }
- this.layout.attr("items", items);
- this.layout.resize();
- },
-
- clear: function () {
- this.vpager.attr("curr", 1);
- this.hpager.attr("curr", 1);
- }
-});
-BI.DirectionPager.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.direction_pager", BI.DirectionPager);/**
- * 分页控件
- *
- * Created by GUY on 2015/8/31.
- * @class BI.DetailPager
- * @extends BI.Widget
- */
-BI.DetailPager = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.DetailPager.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-detail-pager",
- behaviors: {},
- layouts: [{
- type: "bi.horizontal",
- hgap: 10,
- vgap: 0
- }],
-
- dynamicShow: true, //是否动态显示上一页、下一页、首页、尾页, 若为false,则指对其设置使能状态
- //dynamicShow为false时以下两个有用
- dynamicShowFirstLast: false,//是否动态显示首页、尾页
- dynamicShowPrevNext: false,//是否动态显示上一页、下一页
- pages: false, //总页数
- curr: function () {
- return 1;
- }, //初始化当前页
- groups: 0, //连续显示分页数
- jump: BI.emptyFn, //分页的回调函数
-
- first: false, //是否显示首页
- last: false, //是否显示尾页
- prev: "上一页",
- next: "下一页",
-
- firstPage: 1,
- lastPage: function () { //在万不得已时才会调用这个函数获取最后一页的页码, 主要作用于setValue方法
- return 1;
- },
- hasPrev: BI.emptyFn, //pages不可用时有效
- hasNext: BI.emptyFn //pages不可用时有效
- })
- },
- _init: function () {
- BI.DetailPager.superclass._init.apply(this, arguments);
- var self = this;
- this.currPage = BI.result(this.options, "curr");
- //翻页太灵敏
- this._lock = false;
- this._debouce = BI.debounce(function () {
- self._lock = false;
- }, 300);
- this._populate();
- },
-
- _populate: function () {
- var self = this, o = this.options, view = [], dict = {};
- this.empty();
- var pages = BI.result(o, "pages");
- var curr = BI.result(this, "currPage");
- var groups = BI.result(o, "groups");
- var first = BI.result(o, "first");
- var last = BI.result(o, "last");
- var prev = BI.result(o, "prev");
- var next = BI.result(o, "next");
-
- if (pages === false) {
- groups = 0;
- first = false;
- last = false;
- } else {
- groups > pages && (groups = pages);
- }
-
- //计算当前组
- dict.index = Math.ceil((curr + ((groups > 1 && groups !== pages) ? 1 : 0)) / (groups === 0 ? 1 : groups));
-
- //当前页非首页,则输出上一页
- if (((!o.dynamicShow && !o.dynamicShowPrevNext) || curr > 1) && prev !== false) {
- if (BI.isKey(prev)) {
- view.push({
- text: prev,
- value: "prev",
- disabled: pages === false ? o.hasPrev(curr) === false : !(curr > 1 && prev !== false)
- })
- } else {
- view.push(BI.extend({
- disabled: pages === false ? o.hasPrev(curr) === false : !(curr > 1 && prev !== false)
- }, prev));
- }
- }
-
- //当前组非首组,则输出首页
- if (((!o.dynamicShow && !o.dynamicShowFirstLast) || (dict.index > 1 && groups !== 0)) && first) {
- view.push({
- text: first,
- value: "first",
- disabled: !(dict.index > 1 && groups !== 0)
- });
- if (dict.index > 1 && groups !== 0) {
- view.push({
- type: "bi.label",
- cls: "page-ellipsis",
- text: "\u2026"
- });
- }
- }
-
- //输出当前页组
- dict.poor = Math.floor((groups - 1) / 2);
- dict.start = dict.index > 1 ? curr - dict.poor : 1;
- dict.end = dict.index > 1 ? (function () {
- var max = curr + (groups - dict.poor - 1);
- return max > pages ? pages : max;
- }()) : groups;
- if (dict.end - dict.start < groups - 1) { //最后一组状态
- dict.start = dict.end - groups + 1;
- }
- var s = dict.start, e = dict.end;
- if (first && last && (dict.index > 1 && groups !== 0) && (pages > groups && dict.end < pages && groups !== 0)) {
- s++;
- e--;
- }
- for (; s <= e; s++) {
- if (s === curr) {
- view.push({
- text: s,
- value: s,
- selected: true
- })
- } else {
- view.push({
- text: s,
- value: s
- })
- }
- }
-
- //总页数大于连续分页数,且当前组最大页小于总页,输出尾页
- if (((!o.dynamicShow && !o.dynamicShowFirstLast) || (pages > groups && dict.end < pages && groups !== 0)) && last) {
- if (pages > groups && dict.end < pages && groups !== 0) {
- view.push({
- type: "bi.label",
- cls: "page-ellipsis",
- text: "\u2026"
- });
- }
- view.push({
- text: last,
- value: "last",
- disabled: !(pages > groups && dict.end < pages && groups !== 0)
- })
- }
-
- //当前页不为尾页时,输出下一页
- dict.flow = !prev && groups === 0;
- if (((!o.dynamicShow && !o.dynamicShowPrevNext) && next) || (curr !== pages && next || dict.flow)) {
- view.push((function () {
- if (BI.isKey(next)) {
- if (pages === false) {
- return {text: next, value: "next", disabled: o.hasNext(curr) === false}
- }
- return (dict.flow && curr === pages)
- ?
- {text: next, value: "next", disabled: true}
- :
- {text: next, value: "next", disabled: !(curr !== pages && next || dict.flow)};
- } else {
- return BI.extend({
- disabled: pages === false ? o.hasNext(curr) === false : !(curr !== pages && next || dict.flow)
- }, next);
- }
- }()));
- }
-
- this.button_group = BI.createWidget({
- type: "bi.button_group",
- element: this,
- items: BI.createItems(view, {
- cls: "page-item bi-border bi-list-item-active",
- height: 23,
- hgap: 10
- }),
- behaviors: o.behaviors,
- layouts: o.layouts
- });
- this.button_group.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
- if (self._lock === true) {
- return;
- }
- self._lock = true;
- self._debouce();
- if (type === BI.Events.CLICK) {
- var v = self.button_group.getValue()[0];
- switch (v) {
- case "first":
- self.currPage = 1;
- break;
- case "last":
- self.currPage = pages;
- break;
- case "prev":
- self.currPage--;
- break;
- case "next":
- self.currPage++;
- break;
- default:
- self.currPage = v;
- break;
- }
- o.jump.apply(self, [{
- pages: pages,
- curr: self.currPage
- }]);
- self._populate();
- self.fireEvent(BI.DetailPager.EVENT_CHANGE, obj);
- }
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- this.fireEvent(BI.DetailPager.EVENT_AFTER_POPULATE);
- },
-
- getCurrentPage: function () {
- return this.currPage;
- },
-
- setAllPages: function (pages) {
- this.options.pages = pages;
- },
-
- hasPrev: function (v) {
- v || (v = 1);
- var o = this.options;
- var pages = this.options.pages;
- return pages === false ? o.hasPrev(v) : v > 1;
- },
-
- hasNext: function (v) {
- v || (v = 1);
- var o = this.options;
- var pages = this.options.pages;
- return pages === false ? o.hasNext(v) : v < pages;
- },
-
- setValue: function (v) {
- var o = this.options;
- v = v | 0;
- v = v < 1 ? 1 : v;
- if (o.pages === false) {
- var lastPage = BI.result(o, "lastPage"), firstPage = 1;
- this.currPage = v > lastPage ? lastPage : ((firstPage = BI.result(o, "firstPage")), (v < firstPage ? firstPage : v));
- } else {
- v = v > o.pages ? o.pages : v;
- this.currPage = v;
- }
- this._populate();
- },
-
- getValue: function () {
- var val = this.button_group.getValue()[0];
- switch (val) {
- case "prev":
- return -1;
- case "next":
- return 1;
- case "first":
- return BI.MIN;
- case "last":
- return BI.MAX;
- default :
- return val;
- }
- },
-
- attr: function (key, value) {
- BI.DetailPager.superclass.attr.apply(this, arguments);
- if (key === "curr") {
- this.currPage = BI.result(this.options, "curr");
- }
- },
-
- populate: function () {
- this._populate();
- }
-});
-BI.DetailPager.EVENT_CHANGE = "EVENT_CHANGE";
-BI.DetailPager.EVENT_AFTER_POPULATE = "EVENT_AFTER_POPULATE";
-BI.shortcut("bi.detail_pager", BI.DetailPager);/**
- * 分段控件使用的button
- *
- * Created by GUY on 2015/9/7.
- * @class BI.SegmentButton
- * @extends BI.BasicButton
- */
-BI.SegmentButton = BI.inherit(BI.BasicButton, {
-
- _defaultConfig: function () {
- var conf = BI.SegmentButton.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + ' bi-segment-button bi-list-item-active',
- shadow: true,
- readonly: true,
- hgap: 5
- })
- },
-
- _init: function () {
- BI.SegmentButton.superclass._init.apply(this, arguments);
- var opts = this.options, self = this;
- //if (BI.isNumber(opts.height) && BI.isNull(opts.lineHeight)) {
- // this.element.css({lineHeight : (opts.height - 2) + 'px'});
- //}
- this.text = BI.createWidget({
- type: "bi.label",
- element: this,
- height: opts.height - 2,
- whiteSpace: opts.whiteSpace,
- text: opts.text,
- value: opts.value,
- hgap: opts.hgap
- })
- },
-
- setSelected: function () {
- BI.SegmentButton.superclass.setSelected.apply(this, arguments);
- },
-
- setText: function (text) {
- BI.SegmentButton.superclass.setText.apply(this, arguments);
- this.text.setText(text);
- },
-
- destroy: function () {
- BI.SegmentButton.superclass.destroy.apply(this, arguments);
- }
-});
-BI.shortcut('bi.segment_button', BI.SegmentButton);/**
- * 单选按钮组
- *
- * Created by GUY on 2015/9/7.
- * @class BI.Segment
- * @extends BI.Widget
- */
-BI.Segment = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.Segment.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-segment",
- items: [],
- height: 30
- });
- },
- _init: function () {
- BI.Segment.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.buttonGroup = BI.createWidget({
- element: this,
- type: "bi.button_group",
- items: BI.createItems(o.items, {
- type: "bi.segment_button",
- height: o.height - 2,
- whiteSpace: o.whiteSpace
- }),
- layout: [
- {
- type: "bi.center"
- }
- ]
- })
- this.buttonGroup.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments)
- });
- this.buttonGroup.on(BI.ButtonGroup.EVENT_CHANGE, function (value, obj) {
- self.fireEvent(BI.Segment.EVENT_CHANGE, value, obj)
- })
- },
-
- setValue: function (v) {
- this.buttonGroup.setValue(v);
- },
-
- setEnabledValue: function (v) {
- this.buttonGroup.setEnabledValue(v);
- },
-
- getValue: function () {
- return this.buttonGroup.getValue();
- }
-});
-BI.Segment.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut('bi.segment', BI.Segment);/**
- * 自适应宽度的表格
- *
- * Created by GUY on 2016/2/3.
- * @class BI.AdaptiveTable
- * @extends BI.Widget
- */
-BI.AdaptiveTable = BI.inherit(BI.Widget, {
-
- _const: {
- perColumnSize: 100
- },
-
- _defaultConfig: function () {
- return BI.extend(BI.AdaptiveTable.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-adaptive-table",
- el: {
- type: "bi.resizable_table"
- },
- isNeedResize: true,
- isNeedFreeze: false,//是否需要冻结单元格
- freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为true时生效
-
- isNeedMerge: false,//是否需要合并单元格
- mergeCols: [], //合并的单元格列号
- mergeRule: BI.emptyFn,
-
- columnSize: [],
- minColumnSize: [],
- maxColumnSize: [],
-
- headerRowSize: 25,
- rowSize: 25,
-
- regionColumnSize: [],
-
- header: [],
- items: [], //二维数组
-
- //交叉表头
- crossHeader: [],
- crossItems: []
- });
- },
-
- _init: function () {
- BI.AdaptiveTable.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- var data = this._digest();
- this.table = BI.createWidget(o.el, {
- type: "bi.resizable_table",
- element: this,
- width: o.width,
- height: o.height,
- isNeedResize: o.isNeedResize,
- isResizeAdapt: false,
-
- isNeedFreeze: o.isNeedFreeze,
- freezeCols: data.freezeCols,
-
- isNeedMerge: o.isNeedMerge,
- mergeCols: o.mergeCols,
- mergeRule: o.mergeRule,
-
- columnSize: data.columnSize,
-
- headerRowSize: o.headerRowSize,
- rowSize: o.rowSize,
-
- regionColumnSize: data.regionColumnSize,
-
- header: o.header,
- items: o.items,
- //交叉表头
- crossHeader: o.crossHeader,
- crossItems: o.crossItems
- });
- this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
- self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
- o.regionColumnSize = this.getRegionColumnSize();
- self._populate();
- self.table.populate();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
- });
-
- this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
- o.columnSize = this.getColumnSize();
- self._populate();
- self.table.populate();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
- });
- },
-
- _getFreezeColLength: function () {
- return this.options.isNeedFreeze === true ? this.options.freezeCols.length : 0;
- },
-
- _digest: function () {
- var o = this.options;
- var columnSize = o.columnSize.slice();
- var regionColumnSize = o.regionColumnSize.slice();
- var freezeCols = o.freezeCols.slice();
- var regionSize = o.regionColumnSize[0];
- var freezeColLength = this._getFreezeColLength();
- if (!regionSize || regionSize > o.width - 10 || regionSize < 10) {
- regionSize = (freezeColLength > o.columnSize.length / 2 ? 2 / 3 : 1 / 3) * o.width;
- }
- if (freezeColLength === 0) {
- regionSize = 0;
- }
- if (freezeCols.length >= columnSize.length) {
- freezeCols = [];
- }
- if (!BI.isNumber(columnSize[0])) {
- columnSize = o.minColumnSize.slice();
- }
- var summaryFreezeColumnSize = 0, summaryColumnSize = 0;
- BI.each(columnSize, function (i, size) {
- if (i < freezeColLength) {
- summaryFreezeColumnSize += size;
- }
- summaryColumnSize += size;
- });
- if (freezeColLength > 0) {
- columnSize[freezeColLength - 1] = BI.clamp(regionSize - (summaryFreezeColumnSize - columnSize[freezeColLength - 1]),
- o.minColumnSize[freezeColLength - 1] || 10, o.maxColumnSize[freezeColLength - 1] || Number.MAX_VALUE);
- }
- if (columnSize.length > 0) {
- columnSize[columnSize.length - 1] = BI.clamp(o.width - BI.GridTableScrollbar.SIZE - regionSize - (summaryColumnSize - summaryFreezeColumnSize - columnSize[columnSize.length - 1]),
- o.minColumnSize[columnSize.length - 1] || 10, o.maxColumnSize[columnSize.length - 1] || Number.MAX_VALUE);
- }
- regionColumnSize[0] = regionSize;
-
- return {
- freezeCols: freezeCols,
- columnSize: columnSize,
- regionColumnSize: regionColumnSize
- }
- },
-
- _populate: function () {
- var o = this.options;
- var data = this._digest();
- o.regionColumnSize = data.regionColumnSize;
- o.columnSize = data.columnSize;
- this.table.setColumnSize(data.columnSize);
- this.table.setRegionColumnSize(data.regionColumnSize);
- this.table.attr("freezeCols", data.freezeCols);
- },
-
- setWidth: function (width) {
- BI.AdaptiveTable.superclass.setWidth.apply(this, arguments);
- this.table.setWidth(width);
- },
-
- setHeight: function (height) {
- BI.AdaptiveTable.superclass.setHeight.apply(this, arguments);
- this.table.setHeight(height);
- },
-
- setColumnSize: function (columnSize) {
- this.options.columnSize = columnSize;
- },
-
- getColumnSize: function () {
- return this.table.getColumnSize();
- },
-
- setRegionColumnSize: function (regionColumnSize) {
- this.options.regionColumnSize = regionColumnSize;
- },
-
- getRegionColumnSize: function () {
- return this.table.getRegionColumnSize();
- },
-
- setVerticalScroll: function (scrollTop) {
- this.table.setVerticalScroll(scrollTop);
- },
-
- setLeftHorizontalScroll: function (scrollLeft) {
- this.table.setLeftHorizontalScroll(scrollLeft);
- },
-
- setRightHorizontalScroll: function (scrollLeft) {
- this.table.setRightHorizontalScroll(scrollLeft);
- },
-
- getVerticalScroll: function () {
- return this.table.getVerticalScroll();
- },
-
- getLeftHorizontalScroll: function () {
- return this.table.getLeftHorizontalScroll();
- },
-
- getRightHorizontalScroll: function () {
- return this.table.getRightHorizontalScroll();
- },
-
- attr: function (key, value) {
- var v = BI.AdaptiveTable.superclass.attr.apply(this, arguments);
- if (key === "freezeCols") {
- return v;
- }
- return this.table.attr.apply(this.table, arguments);
- },
-
- restore: function () {
- this.table.restore();
- },
-
- populate: function (items) {
- var self = this, o = this.options;
- this._populate();
- this.table.populate.apply(this.table, arguments);
- },
-
- destroy: function () {
- this.table.destroy();
- BI.AdaptiveTable.superclass.destroy.apply(this, arguments);
- }
-});
-BI.shortcut('bi.adaptive_table', BI.AdaptiveTable);/**
- *
- * 层级树状结构的表格
- *
- * Created by GUY on 2016/8/12.
- * @class BI.DynamicSummaryLayerTreeTable
- * @extends BI.Widget
- */
-BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.DynamicSummaryLayerTreeTable.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-dynamic-summary-layer-tree-table",
-
- el: {
- type: "bi.resizable_table"
- },
- isNeedResize: true,//是否需要调整列宽
- isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
-
- isNeedFreeze: false,//是否需要冻结单元格
- freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
-
- isNeedMerge: true,//是否需要合并单元格
- mergeCols: [],
- mergeRule: BI.emptyFn,
-
- columnSize: [],
- minColumnSize: [],
- maxColumnSize: [],
- headerRowSize: 25,
- footerRowSize: 25,
- rowSize: 25,
-
- regionColumnSize: [],
-
- //行表头
- rowHeaderCreator: null,
-
- headerCellStyleGetter: BI.emptyFn,
- summaryCellStyleGetter: BI.emptyFn,
- sequenceCellStyleGetter: BI.emptyFn,
-
- header: [],
- footer: false,
- items: [],
-
- //交叉表头
- crossHeader: [],
- crossItems: []
- })
- },
-
- _getVDeep: function () {
- return this.options.crossHeader.length;//纵向深度
- },
-
- _getHDeep: function () {
- var o = this.options;
- return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
- },
-
- _createHeader: function (vDeep) {
- var self = this, o = this.options;
- var header = o.header || [], crossHeader = o.crossHeader || [];
- var items = BI.TableTree.formatCrossItems(o.crossItems, vDeep, o.headerCellStyleGetter);
- var result = [];
- BI.each(items, function (row, node) {
- var c = [crossHeader[row]];
- result.push(c.concat(node || []));
- });
- if (header && header.length > 0) {
- var newHeader = this._formatColumns(header);
- var deep = this._getHDeep();
- if (deep <= 0) {
- newHeader.unshift(o.rowHeaderCreator || {
- type: "bi.table_style_cell",
- text: BI.i18nText("BI-Row_Header"),
- styleGetter: o.headerCellStyleGetter
- });
- } else {
- newHeader[0] = o.rowHeaderCreator || {
- type: "bi.table_style_cell",
- text: BI.i18nText("BI-Row_Header"),
- styleGetter: o.headerCellStyleGetter
- };
- }
- result.push(newHeader);
- }
- return result;
- },
-
- _formatItems: function (nodes, header, deep) {
- var self = this, o = this.options;
- var result = [];
-
- function track(node, layer) {
- node.type || (node.type = "bi.layer_tree_table_cell");
- node.layer = layer;
- var next = [node];
- next = next.concat(node.values || []);
- if (next.length > 0) {
- result.push(next);
- }
- if (BI.isNotEmptyArray(node.children)) {
- BI.each(node.children, function (index, child) {
- track(child, layer + 1);
- });
- }
- }
-
- BI.each(nodes, function (i, node) {
- BI.each(node.children, function (j, c) {
- track(c, 0);
- });
- if (BI.isArray(node.values)) {
- var next = [{
- type: "bi.table_style_cell",
- text: BI.i18nText("BI-Summary_Values"),
- styleGetter: function () {
- return o.summaryCellStyleGetter(true);
- }
- }].concat(node.values);
- result.push(next)
- }
- });
- return BI.DynamicSummaryTreeTable.formatSummaryItems(result, header, o.crossItems, 1);
- },
-
- _formatColumns: function (columns, deep) {
- if (BI.isNotEmptyArray(columns)) {
- deep = deep || this._getHDeep();
- return columns.slice(Math.max(0, deep - 1));
- }
- return columns;
- },
-
- _formatFreezeCols: function () {
- if (this.options.freezeCols.length > 0) {
- return [0];
- }
- return [];
- },
-
- _formatColumnSize: function (columnSize, deep) {
- if (columnSize.length <= 0) {
- return [];
- }
- var result = [0];
- deep = deep || this._getHDeep();
- BI.each(columnSize, function (i, size) {
- if (i < deep) {
- result[0] += size;
- return;
- }
- result.push(size);
- });
- return result;
- },
-
- _recomputeColumnSize: function () {
- var o = this.options;
- o.regionColumnSize = this.table.getRegionColumnSize();
- var columnSize = this.table.getColumnSize().slice();
- if (o.freezeCols.length > 1) {
- for (var i = 0; i < o.freezeCols.length - 1; i++) {
- columnSize.splice(1, 0, 0);
- }
- }
- o.columnSize = columnSize;
- },
-
- _digest: function () {
- var o = this.options;
- var deep = this._getHDeep();
- var vDeep = this._getVDeep();
- var header = this._createHeader(vDeep);
- var data = this._formatItems(o.items, header, deep);
- var columnSize = o.columnSize.slice();
- var minColumnSize = o.minColumnSize.slice();
- var maxColumnSize = o.maxColumnSize.slice();
- BI.removeAt(columnSize, data.deletedCols);
- BI.removeAt(minColumnSize, data.deletedCols);
- BI.removeAt(maxColumnSize, data.deletedCols);
- return {
- header: data.header,
- items: data.items,
- columnSize: this._formatColumnSize(columnSize, deep),
- minColumnSize: this._formatColumns(minColumnSize, deep),
- maxColumnSize: this._formatColumns(maxColumnSize, deep),
- freezeCols: this._formatFreezeCols()
- }
- },
-
- _init: function () {
- BI.DynamicSummaryLayerTreeTable.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- var data = this._digest();
- this.table = BI.createWidget(o.el, {
- type: "bi.resizable_table",
- element: this,
- width: o.width,
- height: o.height,
- isNeedResize: o.isNeedResize,
- isResizeAdapt: o.isResizeAdapt,
- isNeedFreeze: o.isNeedFreeze,
- freezeCols: data.freezeCols,
- isNeedMerge: o.isNeedMerge,
- mergeCols: [],
- mergeRule: o.mergeRule,
- columnSize: data.columnSize,
- minColumnSize: data.minColumnSize,
- maxColumnSize: data.maxColumnSize,
- headerRowSize: o.headerRowSize,
- rowSize: o.rowSize,
- regionColumnSize: o.regionColumnSize,
- header: data.header,
- items: data.items
- });
- this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
- self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
- self._recomputeColumnSize();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
- self._recomputeColumnSize();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
- });
- },
-
- setWidth: function (width) {
- BI.DynamicSummaryLayerTreeTable.superclass.setWidth.apply(this, arguments);
- this.table.setWidth(width);
- },
-
- setHeight: function (height) {
- BI.DynamicSummaryLayerTreeTable.superclass.setHeight.apply(this, arguments);
- this.table.setHeight(height);
- },
-
- setColumnSize: function (columnSize) {
- this.options.columnSize = columnSize;
- },
-
- getColumnSize: function () {
- return this.options.columnSize;
- },
-
- setRegionColumnSize: function (columnSize) {
- this.options.regionColumnSize = columnSize;
- this.table.setRegionColumnSize(columnSize);
- },
-
- getRegionColumnSize: function () {
- return this.table.getRegionColumnSize();
- },
-
- setVerticalScroll: function (scrollTop) {
- this.table.setVerticalScroll(scrollTop);
- },
-
- setLeftHorizontalScroll: function (scrollLeft) {
- this.table.setLeftHorizontalScroll(scrollLeft);
- },
-
- setRightHorizontalScroll: function (scrollLeft) {
- this.table.setRightHorizontalScroll(scrollLeft);
- },
-
- getVerticalScroll: function () {
- return this.table.getVerticalScroll();
- },
-
- getLeftHorizontalScroll: function () {
- return this.table.getLeftHorizontalScroll();
- },
-
- getRightHorizontalScroll: function () {
- return this.table.getRightHorizontalScroll();
- },
-
- attr: function (key, value) {
- var self = this;
- if (BI.isObject(key)) {
- BI.each(key, function (k, v) {
- self.attr(k, v);
- });
- return;
- }
- BI.DynamicSummaryLayerTreeTable.superclass.attr.apply(this, arguments);
- switch (key) {
- case "columnSize":
- case "minColumnSize":
- case "maxColumnSize":
- case "freezeCols":
- case "mergeCols":
- return;
- }
- this.table.attr.apply(this.table, [key, value]);
- },
-
- restore: function () {
- this.table.restore();
- },
-
- populate: function (items, header, crossItems, crossHeader) {
- var o = this.options;
- if (items) {
- o.items = items;
- }
- if (header) {
- o.header = header;
- }
- if (crossItems) {
- o.crossItems = crossItems;
- }
- if (crossHeader) {
- o.crossHeader = crossHeader;
- }
- var data = this._digest();
- this.table.setColumnSize(data.columnSize);
- this.table.attr("minColumnSize", data.minColumnSize);
- this.table.attr("maxColumnSize", data.maxColumnSize);
- this.table.attr("freezeCols", data.freezeCols);
- this.table.populate(data.items, data.header);
- },
-
- destroy: function () {
- this.table.destroy();
- BI.DynamicSummaryLayerTreeTable.superclass.destroy.apply(this, arguments);
- }
-});
-
-BI.shortcut("bi.dynamic_summary_layer_tree_table", BI.DynamicSummaryLayerTreeTable);/**
- *
- * 树状结构的表格
- *
- * Created by GUY on 2015/8/12.
- * @class BI.DynamicSummaryTreeTable
- * @extends BI.Widget
- */
-BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.DynamicSummaryTreeTable.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-dynamic-summary-tree-table",
- el: {
- type: "bi.resizable_table"
- },
-
- isNeedResize: true,//是否需要调整列宽
- isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
-
- isNeedFreeze: false,//是否需要冻结单元格
- freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
-
- isNeedMerge: true,//是否需要合并单元格
- mergeCols: [],
- mergeRule: BI.emptyFn,
-
- columnSize: [],
- minColumnSize: [],
- maxColumnSize: [],
- headerRowSize: 25,
- footerRowSize: 25,
- rowSize: 25,
-
- regionColumnSize: [],
-
- headerCellStyleGetter: BI.emptyFn,
- summaryCellStyleGetter: BI.emptyFn,
- sequenceCellStyleGetter: BI.emptyFn,
-
- header: [],
- footer: false,
- items: [],
-
- //交叉表头
- crossHeader: [],
- crossItems: []
- })
- },
-
- _getVDeep: function () {
- return this.options.crossHeader.length;//纵向深度
- },
-
- _getHDeep: function () {
- var o = this.options;
- return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
- },
-
- _init: function () {
- BI.DynamicSummaryTreeTable.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- var data = this._digest();
- this.table = BI.createWidget(o.el, {
- type: "bi.resizable_table",
- element: this,
- width: o.width,
- height: o.height,
-
- isNeedResize: o.isNeedResize,
- isResizeAdapt: o.isResizeAdapt,
-
- isNeedFreeze: o.isNeedFreeze,
- freezeCols: o.freezeCols,
- isNeedMerge: o.isNeedMerge,
- mergeCols: o.mergeCols,
- mergeRule: o.mergeRule,
-
- columnSize: o.columnSize,
- minColumnSize: o.minColumnSize,
- maxColumnSize: o.maxColumnSize,
- headerRowSize: o.headerRowSize,
- rowSize: o.rowSize,
-
- regionColumnSize: o.regionColumnSize,
-
- header: data.header,
- items: data.items
- });
- this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
- self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
- o.regionColumnSize = this.getRegionColumnSize();
- var columnSize = this.getColumnSize();
- var length = o.columnSize.length - columnSize.length;
- o.columnSize = columnSize.slice();
- o.columnSize = o.columnSize.concat(BI.makeArray(length, 0));
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
- o.regionColumnSize = this.getRegionColumnSize();
- var columnSize = this.getColumnSize();
- var length = o.columnSize.length - columnSize.length;
- o.columnSize = columnSize.slice();
- o.columnSize = o.columnSize.concat(BI.makeArray(length, 0));
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
- });
- },
-
- _digest: function () {
- var o = this.options;
- var deep = this._getHDeep();
- var vDeep = this._getVDeep();
- var header = BI.TableTree.formatHeader(o.header, o.crossHeader, o.crossItems, deep, vDeep, o.headerCellStyleGetter);
- var items = BI.DynamicSummaryTreeTable.formatHorizontalItems(o.items, deep, false, o.summaryCellStyleGetter);
- var data = BI.DynamicSummaryTreeTable.formatSummaryItems(items, header, o.crossItems, deep);
- var columnSize = o.columnSize.slice();
- var minColumnSize = o.minColumnSize.slice();
- var maxColumnSize = o.maxColumnSize.slice();
- BI.removeAt(columnSize, data.deletedCols);
- BI.removeAt(minColumnSize, data.deletedCols);
- BI.removeAt(maxColumnSize, data.deletedCols);
- return {
- header: data.header,
- items: data.items,
- columnSize: columnSize,
- minColumnSize: minColumnSize,
- maxColumnSize: maxColumnSize
- };
- },
-
- setWidth: function (width) {
- BI.DynamicSummaryTreeTable.superclass.setWidth.apply(this, arguments);
- this.table.setWidth(width);
- },
-
- setHeight: function (height) {
- BI.DynamicSummaryTreeTable.superclass.setHeight.apply(this, arguments);
- this.table.setHeight(height);
- },
-
- setColumnSize: function (columnSize) {
- this.options.columnSize = columnSize;
- },
-
- getColumnSize: function () {
- return this.options.columnSize;
- },
-
- setRegionColumnSize: function (columnSize) {
- this.options.regionColumnSize = columnSize;
- this.table.setRegionColumnSize(columnSize);
- },
-
- getRegionColumnSize: function () {
- return this.table.getRegionColumnSize();
- },
-
- setVerticalScroll: function (scrollTop) {
- this.table.setVerticalScroll(scrollTop);
- },
-
- setLeftHorizontalScroll: function (scrollLeft) {
- this.table.setLeftHorizontalScroll(scrollLeft);
- },
-
- setRightHorizontalScroll: function (scrollLeft) {
- this.table.setRightHorizontalScroll(scrollLeft);
- },
-
- getVerticalScroll: function () {
- return this.table.getVerticalScroll();
- },
-
- getLeftHorizontalScroll: function () {
- return this.table.getLeftHorizontalScroll();
- },
-
- getRightHorizontalScroll: function () {
- return this.table.getRightHorizontalScroll();
- },
-
- attr: function (key) {
- BI.DynamicSummaryTreeTable.superclass.attr.apply(this, arguments);
- switch (key) {
- case "minColumnSize":
- case "maxColumnSize":
- return;
- }
- this.table.attr.apply(this.table, arguments);
- },
-
- restore: function () {
- this.table.restore();
- },
-
- populate: function (items, header, crossItems, crossHeader) {
- var o = this.options;
- if (items) {
- o.items = items;
- }
- if (header) {
- o.header = header;
- }
- if (crossItems) {
- o.crossItems = crossItems;
- }
- if (crossHeader) {
- o.crossHeader = crossHeader;
- }
- var data = this._digest();
- this.table.setColumnSize(data.columnSize);
- this.table.attr("minColumnSize", data.minColumnSize);
- this.table.attr("maxColumnSize", data.maxColumnSize);
- this.table.populate(data.items, data.header);
- },
-
- destroy: function () {
- this.table.destroy();
- BI.DynamicSummaryTreeTable.superclass.destroy.apply(this, arguments);
- }
-});
-
-BI.extend(BI.DynamicSummaryTreeTable, {
-
- formatHorizontalItems: function (nodes, deep, isCross, styleGetter) {
- var result = [];
-
- function track(store, node) {
- var next;
- if (BI.isArray(node.children)) {
- BI.each(node.children, function (index, child) {
- var next;
- if (store != -1) {
- next = store.slice();
- next.push(node);
- } else {
- next = [];
- }
- track(next, child);
- });
- if (store != -1) {
- next = store.slice();
- next.push(node);
- } else {
- next = [];
- }
- if ((store == -1 || node.children.length > 1) && BI.isNotEmptyArray(node.values)) {
- var summary = {
- text: BI.i18nText("BI-Summary_Values"),
- type: "bi.table_style_cell",
- styleGetter: function () {
- return styleGetter(store === -1)
- }
- };
- for (var i = next.length; i < deep; i++) {
- next.push(summary);
- }
- if (!isCross) {
- next = next.concat(node.values);
- }
- if (next.length > 0) {
- if (!isCross) {
- result.push(next);
- } else {
- for (var k = 0, l = node.values.length; k < l; k++) {
- result.push(next);
- }
- }
- }
- }
- return;
- }
- if (store != -1) {
- next = store.slice();
- for (var i = next.length; i < deep; i++) {
- next.push(node);
- }
- } else {
- next = [];
- }
- if (!isCross && BI.isArray(node.values)) {
- next = next.concat(node.values);
- }
- if (isCross && BI.isArray(node.values)) {
- for (var i = 0, len = node.values.length; i < len - 1; i++) {
- if (next.length > 0) {
- result.push(next);
- }
- }
- }
- if (next.length > 0) {
- result.push(next);
- }
- }
-
- BI.each(nodes, function (i, node) {
- track(-1, node);
- });
- //填充空位
- BI.each(result, function (i, line) {
- var last = BI.last(line);
- for (var j = line.length; j < deep; j++) {
- line.push(last);
- }
- });
- return result;
- },
-
- formatSummaryItems: function (items, header, crossItems, deep) {
- //求纵向需要去除的列
- var cols = [];
- var leaf = 0;
-
- function track(node) {
- if (BI.isArray(node.children)) {
- BI.each(node.children, function (index, child) {
- track(child);
- });
- if (BI.isNotEmptyArray(node.values)) {
- if (node.children.length === 1) {
- for (var i = 0; i < node.values.length; i++) {
- cols.push(leaf + i + deep);
- }
- }
- leaf += node.values.length;
- }
- return;
- }
- if (node.values && node.values.length > 1) {
- leaf += node.values.length;
- } else {
- leaf++;
- }
- }
-
- BI.each(crossItems, function (i, node) {
- track(node);
- });
-
- if (cols.length > 0) {
- var nHeader = [], nItems = [];
- BI.each(header, function (i, node) {
- var nNode = node.slice();
- BI.removeAt(nNode, cols);
- nHeader.push(nNode);
- });
- BI.each(items, function (i, node) {
- var nNode = node.slice();
- BI.removeAt(nNode, cols);
- nItems.push(nNode);;
- });
- header = nHeader;
- items = nItems;
- }
- return {items: items, header: header, deletedCols: cols};
- }
-});
-
-BI.shortcut("bi.dynamic_summary_tree_table", BI.DynamicSummaryTreeTable);/**
- * Created by GUY on 2016/5/7.
- * @class BI.LayerTreeTableCell
- * @extends BI.Single
- */
-BI.LayerTreeTableCell = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.LayerTreeTableCell.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-layer-tree-table-cell",
- layer: 0,
- text: ""
- })
- },
-
- _init: function () {
- BI.LayerTreeTableCell.superclass._init.apply(this, arguments);
- var o = this.options;
- BI.createWidget({
- type: "bi.label",
- element: this.element,
- textAlign: "left",
- whiteSpace: "nowrap",
- height: o.height,
- text: o.text,
- value: o.value,
- lgap: 5 + 30 * o.layer,
- rgap: 5
- })
- }
-});
-
-BI.shortcut("bi.layer_tree_table_cell", BI.LayerTreeTableCell);/**
- *
- * 层级树状结构的表格
- *
- * Created by GUY on 2016/5/7.
- * @class BI.LayerTreeTable
- * @extends BI.Widget
- */
-BI.LayerTreeTable = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.LayerTreeTable.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-layer-tree-table",
- el: {
- type: "bi.resizable_table"
- },
-
- isNeedResize: false,//是否需要调整列宽
- isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
-
- isNeedFreeze: false,//是否需要冻结单元格
- freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
-
- isNeedMerge: true,//是否需要合并单元格
- mergeCols: [],
- mergeRule: BI.emptyFn,
-
- columnSize: [],
- minColumnSize: [],
- maxColumnSize: [],
-
- headerRowSize: 25,
- rowSize: 25,
-
- regionColumnSize: [],
-
- rowHeaderCreator: null,
-
- headerCellStyleGetter: BI.emptyFn,
- summaryCellStyleGetter: BI.emptyFn,
- sequenceCellStyleGetter: BI.emptyFn,
-
- header: [],
- items: [],
-
- //交叉表头
- crossHeader: [],
- crossItems: []
- })
- },
-
- _getVDeep: function () {
- return this.options.crossHeader.length;//纵向深度
- },
-
- _getHDeep: function () {
- var o = this.options;
- return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
- },
-
- _createHeader: function (vDeep) {
- var self = this, o = this.options;
- var header = o.header || [], crossHeader = o.crossHeader || [];
- var items = BI.TableTree.formatCrossItems(o.crossItems, vDeep, o.headerCellStyleGetter);
- var result = [];
- BI.each(items, function (row, node) {
- var c = [crossHeader[row]];
- result.push(c.concat(node || []));
- });
- if (header && header.length > 0) {
- var newHeader = this._formatColumns(header);
- var deep = this._getHDeep();
- if (deep <= 0) {
- newHeader.unshift(o.rowHeaderCreator || {
- type: "bi.table_style_cell",
- text: BI.i18nText("BI-Row_Header"),
- styleGetter: o.headerCellStyleGetter
- });
- } else {
- newHeader[0] = o.rowHeaderCreator || {
- type: "bi.table_style_cell",
- text: BI.i18nText("BI-Row_Header"),
- styleGetter: o.headerCellStyleGetter
- };
- }
- result.push(newHeader);
- }
- return result;
- },
-
- _formatItems: function (nodes) {
- var self = this, o = this.options;
- var result = [];
-
- function track(node, layer) {
- node.type || (node.type = "bi.layer_tree_table_cell");
- node.layer = layer;
- var next = [node];
- next = next.concat(node.values || []);
- if (next.length > 0) {
- result.push(next);
- }
- if (BI.isNotEmptyArray(node.children)) {
- BI.each(node.children, function (index, child) {
- track(child, layer + 1);
- });
- }
- }
-
- BI.each(nodes, function (i, node) {
- BI.each(node.children, function (j, c) {
- track(c, 0);
- });
- if (BI.isArray(node.values)) {
- var next = [{
- type: "bi.table_style_cell", text: BI.i18nText("BI-Summary_Values"), styleGetter: function () {
- return o.summaryCellStyleGetter(true);
- }
- }].concat(node.values);
- result.push(next)
- }
- });
- return result;
- },
-
- _formatColumns: function (columns, deep) {
- if (BI.isNotEmptyArray(columns)) {
- deep = deep || this._getHDeep();
- return columns.slice(Math.max(0, deep - 1));
- }
- return columns;
- },
-
- _formatFreezeCols: function () {
- if (this.options.freezeCols.length > 0) {
- return [0];
- }
- return [];
- },
-
- _formatColumnSize: function (columnSize, deep) {
- if (columnSize.length <= 0) {
- return [];
- }
- var result = [0];
- deep = deep || this._getHDeep();
- BI.each(columnSize, function (i, size) {
- if (i < deep) {
- result[0] += size;
- return;
- }
- result.push(size);
- });
- return result;
- },
-
- _digest: function () {
- var o = this.options;
- var deep = this._getHDeep();
- var vDeep = this._getVDeep();
- return {
- header: this._createHeader(vDeep),
- items: this._formatItems(o.items),
- columnSize: this._formatColumnSize(o.columnSize, deep),
- minColumnSize: this._formatColumns(o.minColumnSize, deep),
- maxColumnSize: this._formatColumns(o.maxColumnSize, deep),
- freezeCols: this._formatFreezeCols()
- }
- },
-
- _init: function () {
- BI.LayerTreeTable.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- var data = this._digest();
- this.table = BI.createWidget(o.el, {
- type: "bi.resizable_table",
- element: this,
- width: o.width,
- height: o.height,
- isNeedResize: o.isNeedResize,
- isResizeAdapt: o.isResizeAdapt,
- isNeedFreeze: o.isNeedFreeze,
- freezeCols: data.freezeCols,
- isNeedMerge: o.isNeedMerge,
- mergeCols: [],
- mergeRule: o.mergeRule,
- columnSize: data.columnSize,
- minColumnSize: data.minColumnSize,
- maxColumnSize: data.maxColumnSize,
- headerRowSize: o.headerRowSize,
- rowSize: o.rowSize,
- regionColumnSize: o.regionColumnSize,
- header: data.header,
- items: data.items
- });
- this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
- self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
- o.regionColumnSize = this.getRegionColumnSize();
- o.columnSize = this.getColumnSize();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
- o.regionColumnSize = this.getRegionColumnSize();
- o.columnSize = this.getColumnSize();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
- });
- },
-
- setWidth: function (width) {
- BI.LayerTreeTable.superclass.setWidth.apply(this, arguments);
- this.table.setWidth(width);
- },
-
- setHeight: function (height) {
- BI.LayerTreeTable.superclass.setHeight.apply(this, arguments);
- this.table.setHeight(height);
- },
-
- setColumnSize: function (columnSize) {
- this.options.columnSize = columnSize;
- },
-
- getColumnSize: function () {
- var columnSize = this.table.getColumnSize();
- var deep = this._getHDeep();
- var pre = [];
- if (deep > 0) {
- pre = BI.makeArray(deep, columnSize[0] / deep);
- }
- return pre.concat(columnSize.slice(1));
- },
-
- setRegionColumnSize: function (columnSize) {
- this.options.regionColumnSize = columnSize;
- this.table.setRegionColumnSize(columnSize);
- },
-
- getRegionColumnSize: function () {
- return this.table.getRegionColumnSize();
- },
-
- setVerticalScroll: function (scrollTop) {
- this.table.setVerticalScroll(scrollTop);
- },
-
- setLeftHorizontalScroll: function (scrollLeft) {
- this.table.setLeftHorizontalScroll(scrollLeft);
- },
-
- setRightHorizontalScroll: function (scrollLeft) {
- this.table.setRightHorizontalScroll(scrollLeft);
- },
-
- getVerticalScroll: function () {
- return this.table.getVerticalScroll();
- },
-
- getLeftHorizontalScroll: function () {
- return this.table.getLeftHorizontalScroll();
- },
-
- getRightHorizontalScroll: function () {
- return this.table.getRightHorizontalScroll();
- },
-
- attr: function (key, value) {
- var self = this;
- if (BI.isObject(key)) {
- BI.each(key, function (k, v) {
- self.attr(k, v);
- });
- return;
- }
- BI.LayerTreeTable.superclass.attr.apply(this, arguments);
- switch (key) {
- case "columnSize":
- case "minColumnSize":
- case "maxColumnSize":
- case "freezeCols":
- case "mergeCols":
- return;
- }
- this.table.attr.apply(this.table, [key, value]);
- },
-
- restore: function () {
- this.table.restore();
- },
-
- populate: function (items, header, crossItems, crossHeader) {
- var o = this.options;
- o.items = items || [];
- if (header) {
- o.header = header;
- }
- if (crossItems) {
- o.crossItems = crossItems;
- }
- if (crossHeader) {
- o.crossHeader = crossHeader;
- }
- var data = this._digest();
- this.table.setColumnSize(data.columnSize);
- this.table.attr("freezeCols", data.freezeCols);
- this.table.attr("minColumnSize", data.minColumnSize);
- this.table.attr("maxColumnSize", data.maxColumnSize);
- this.table.populate(data.items, data.header);
- },
-
- destroy: function () {
- this.table.destroy();
- BI.LayerTreeTable.superclass.destroy.apply(this, arguments);
- }
-});
-
-BI.shortcut("bi.layer_tree_table", BI.LayerTreeTable);/**
- *
- * Created by GUY on 2016/5/26.
- * @class BI.TableStyleCell
- * @extends BI.Single
- */
-BI.TableStyleCell = BI.inherit(BI.Single, {
-
- _defaultConfig: function () {
- return BI.extend(BI.TableStyleCell.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-table-style-cell",
- styleGetter: BI.emptyFn
- });
- },
-
- _init: function () {
- BI.TableStyleCell.superclass._init.apply(this, arguments);
- var o = this.options;
- this.text = BI.createWidget({
- type: "bi.label",
- element: this,
- textAlign: "left",
- forceCenter: true,
- hgap: 5,
- text: o.text
- });
- this._digestStyle();
- },
-
- _digestStyle: function () {
- var o = this.options;
- var style = o.styleGetter();
- if (style) {
- this.text.element.css(style);
- }
- },
-
- setText: function (text) {
- this.text.setText(text);
- },
-
- populate: function () {
- this._digestStyle();
- }
-});
-BI.shortcut('bi.table_style_cell', BI.TableStyleCell);/**
- *
- * 树状结构的表格
- *
- * Created by GUY on 2015/9/22.
- * @class BI.TableTree
- * @extends BI.Widget
- */
-BI.TableTree = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.TableTree.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-table-tree",
- el: {
- type: "bi.resizable_table"
- },
- isNeedResize: true,//是否需要调整列宽
- isResizeAdapt: true,//是否需要在调整列宽或区域宽度的时候它们自适应变化
-
- freezeCols: [], //冻结的列号,从0开始,isNeedFreeze为tree时生效
-
- isNeedMerge: true,//是否需要合并单元格
- mergeCols: [],
- mergeRule: BI.emptyFn,
-
- columnSize: [],
- minColumnSize: [],
- maxColumnSize: [],
- headerRowSize: 25,
- rowSize: 25,
-
- regionColumnSize: [],
-
- headerCellStyleGetter: BI.emptyFn,
- summaryCellStyleGetter: BI.emptyFn,
- sequenceCellStyleGetter: BI.emptyFn,
-
- header: [],
- items: [],
-
- //交叉表头
- crossHeader: [],
- crossItems: []
- })
- },
-
- _getVDeep: function () {
- return this.options.crossHeader.length;//纵向深度
- },
-
- _getHDeep: function () {
- var o = this.options;
- return Math.max(o.mergeCols.length, o.freezeCols.length, BI.TableTree.maxDeep(o.items) - 1);
- },
-
- _init: function () {
- BI.TableTree.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- var data = this._digest();
- this.table = BI.createWidget(o.el, {
- type: "bi.resizable_table",
- element: this,
- width: o.width,
- height: o.height,
- isNeedResize: o.isNeedResize,
- isResizeAdapt: o.isResizeAdapt,
-
- isNeedFreeze: o.isNeedFreeze,
- freezeCols: o.freezeCols,
- isNeedMerge: o.isNeedMerge,
- mergeCols: o.mergeCols,
- mergeRule: o.mergeRule,
-
- columnSize: o.columnSize,
- minColumnSize: o.minColumnSize,
- maxColumnSize: o.maxColumnSize,
-
- headerRowSize: o.headerRowSize,
- rowSize: o.rowSize,
-
- regionColumnSize: o.regionColumnSize,
-
- header: data.header,
- items: data.items
- });
- this.table.on(BI.Table.EVENT_TABLE_SCROLL, function () {
- self.fireEvent(BI.Table.EVENT_TABLE_SCROLL, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, function () {
- o.regionColumnSize = this.getRegionColumnSize();
- o.columnSize = this.getColumnSize();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE, arguments);
- });
- this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, function () {
- o.regionColumnSize = this.getRegionColumnSize();
- o.columnSize = this.getColumnSize();
- self.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE, arguments);
- });
- },
-
- _digest: function () {
- var self = this, o = this.options;
- var deep = this._getHDeep();
- var vDeep = this._getVDeep();
- var header = BI.TableTree.formatHeader(o.header, o.crossHeader, o.crossItems, deep, vDeep, o.headerCellStyleGetter);
- var items = BI.TableTree.formatItems(o.items, deep, false, o.summaryCellStyleGetter);
- return {
- header: header,
- items: items
- }
- },
-
- setWidth: function (width) {
- BI.TableTree.superclass.setWidth.apply(this, arguments);
- this.table.setWidth(width);
- },
-
- setHeight: function (height) {
- BI.TableTree.superclass.setHeight.apply(this, arguments);
- this.table.setHeight(height);
- },
-
- setColumnSize: function (columnSize) {
- this.options.columnSize = columnSize;
- this.table.setColumnSize(columnSize);
- },
-
- getColumnSize: function () {
- return this.table.getColumnSize();
- },
-
- setRegionColumnSize: function (columnSize) {
- this.options.regionColumnSize = columnSize;
- this.table.setRegionColumnSize(columnSize);
- },
-
- getRegionColumnSize: function () {
- return this.table.getRegionColumnSize();
- },
-
- setVerticalScroll: function (scrollTop) {
- this.table.setVerticalScroll(scrollTop);
- },
-
- setLeftHorizontalScroll: function (scrollLeft) {
- this.table.setLeftHorizontalScroll(scrollLeft);
- },
-
- setRightHorizontalScroll: function (scrollLeft) {
- this.table.setRightHorizontalScroll(scrollLeft);
- },
-
- getVerticalScroll: function () {
- return this.table.getVerticalScroll();
- },
-
- getLeftHorizontalScroll: function () {
- return this.table.getLeftHorizontalScroll();
- },
-
- getRightHorizontalScroll: function () {
- return this.table.getRightHorizontalScroll();
- },
-
- attr: function () {
- BI.TableTree.superclass.attr.apply(this, arguments);
- this.table.attr.apply(this.table, arguments);
- },
-
- restore: function () {
- this.table.restore();
- },
-
- populate: function (items, header, crossItems, crossHeader) {
- var o = this.options;
- if (items) {
- o.items = items || [];
- }
- if (header) {
- o.header = header;
- }
- if (crossItems) {
- o.crossItems = crossItems;
- }
- if (crossHeader) {
- o.crossHeader = crossHeader;
- }
- var data = this._digest();
- this.table.populate(data.items, data.header);
- },
-
- destroy: function () {
- this.table.destroy();
- BI.TableTree.superclass.destroy.apply(this, arguments);
- }
-});
-
-BI.extend(BI.TableTree, {
- formatHeader: function (header, crossHeader, crossItems, hDeep, vDeep, styleGetter) {
- var items = BI.TableTree.formatCrossItems(crossItems, vDeep, styleGetter);
- var result = [];
- for (var i = 0; i < vDeep; i++) {
- var c = [];
- for (var j = 0; j < hDeep; j++) {
- c.push(crossHeader[i]);
- }
- result.push(c.concat(items[i] || []));
- }
- if (header && header.length > 0) {
- result.push(header);
- }
- return result;
- },
-
- formatItems: function (nodes, deep, isCross, styleGetter) {
- var self = this;
- var result = [];
-
- function track(store, node) {
- var next;
- if (BI.isArray(node.children)) {
- BI.each(node.children, function (index, child) {
- var next;
- if (store != -1) {
- next = store.slice();
- next.push(node);
- } else {
- next = [];
- }
- track(next, child);
- });
- if (store != -1) {
- next = store.slice();
- next.push(node);
- } else {
- next = [];
- }
- if (/**(store == -1 || node.children.length > 1) &&**/ BI.isNotEmptyArray(node.values)) {
- var summary = {
- text: BI.i18nText("BI-Summary_Values"),
- type: "bi.table_style_cell",
- styleGetter: function () {
- return styleGetter(store === -1)
- }
- };
- for (var i = next.length; i < deep; i++) {
- next.push(summary);
- }
- if (!isCross) {
- next = next.concat(node.values);
- }
- if (next.length > 0) {
- if (!isCross) {
- result.push(next);
- } else {
- for (var k = 0, l = node.values.length; k < l; k++) {
- result.push(next);
- }
- }
- }
- }
-
- return;
- }
- if (store != -1) {
- next = store.slice();
- for (var i = next.length; i < deep; i++) {
- next.push(node);
- }
- } else {
- next = [];
- }
- if (!isCross && BI.isArray(node.values)) {
- next = next.concat(node.values);
- }
- if (isCross && BI.isArray(node.values)) {
- for (var i = 0, len = node.values.length; i < len - 1; i++) {
- if (next.length > 0) {
- result.push(next);
- }
- }
- }
- if (next.length > 0) {
- result.push(next);
- }
- }
-
- BI.each(nodes, function (i, node) {
- track(-1, node);
- });
- //填充空位
- BI.each(result, function (i, line) {
- var last = BI.last(line);
- for (var j = line.length; j < deep; j++) {
- line.push(last);
- }
- });
- return result;
- },
-
- formatCrossItems: function (nodes, deep, styleGetter) {
- var items = BI.TableTree.formatItems(nodes, deep, true, styleGetter);
- return BI.unzip(items);
- },
-
- maxDeep: function (nodes) {
- function track(deep, node) {
- var d = deep;
- if (BI.isNotEmptyArray(node.children)) {
- BI.each(node.children, function (index, child) {
- d = Math.max(d, track(deep + 1, child));
- });
- }
- return d;
- }
-
- var deep = 1;
- if (BI.isObject(nodes)) {
- BI.each(nodes, function (i, node) {
- deep = Math.max(deep, track(1, node));
- });
- }
- return deep;
- }
-});
-
-BI.shortcut("bi.tree_table", BI.TableTree);/**
- * guy
- * 复选导航条
- * Created by GUY on 2015/8/25.
- * @class BI.MultiSelectBar
- * @extends BI.BasicButton
- */
-BI.MultiSelectBar = BI.inherit(BI.BasicButton, {
- _defaultConfig: function () {
- return BI.extend(BI.MultiSelectBar.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-multi-select-bar",
- height: 25,
- text: BI.i18nText('BI-Select_All'),
- isAllCheckedBySelectedValue: BI.emptyFn,
- //手动控制选中
- disableSelected: true,
- isHalfCheckedBySelectedValue: function (selectedValues) {
- return selectedValues.length > 0;
- }
- })
- },
- _init: function () {
- BI.MultiSelectBar.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.checkbox = BI.createWidget({
- type: "bi.checkbox",
- stopPropagation: true,
- handler: function () {
- self.setSelected(self.isSelected());
- }
- });
- this.half = BI.createWidget({
- type: "bi.half_icon_button",
- stopPropagation: true,
- handler: function () {
- self.setSelected(true);
- }
- });
- this.checkbox.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.CLICK, self.isSelected(), self);
- });
- this.half.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, BI.Events.CLICK, self.isSelected(), self);
- });
- this.half.on(BI.HalfIconButton.EVENT_CHANGE, function () {
- self.fireEvent(BI.MultiSelectBar.EVENT_CHANGE, self.isSelected(), self);
- });
- this.checkbox.on(BI.Checkbox.EVENT_CHANGE, function () {
- self.fireEvent(BI.MultiSelectBar.EVENT_CHANGE, self.isSelected(), self);
- });
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- whiteSpace: "nowrap",
- textHeight: o.height,
- height: o.height,
- hgap: o.hgap,
- text: o.text,
- keyword: o.keyword,
- value: o.value,
- py: o.py
- });
- BI.createWidget({
- type: "bi.htape",
- element: this,
- items: [{
- width: 36,
- el: {
- type: "bi.center_adapt",
- items: [this.checkbox, this.half]
- }
- }, {
- el: this.text
- }]
- });
- this.half.invisible();
- },
-
- //自己手动控制选中
- beforeClick: function () {
- var isHalf = this.isHalfSelected(), isSelected = this.isSelected();
- if (isHalf === true) {
- this.setSelected(true);
- } else {
- this.setSelected(!isSelected);
- }
- },
-
- setSelected: function (v) {
- this.checkbox.setSelected(v);
- this.setHalfSelected(false);
- },
-
- setHalfSelected: function (b) {
- this._half = !!b;
- if (b === true) {
- this.half.visible();
- this.checkbox.invisible();
- } else {
- this.half.invisible();
- this.checkbox.visible();
- }
- },
-
- isHalfSelected: function () {
- return !!this._half;
- },
-
- isSelected: function () {
- return this.checkbox.isSelected();
- },
-
- setValue: function (selectedValues) {
- BI.MultiSelectBar.superclass.setValue.apply(this, arguments);
- var isAllChecked = this.options.isAllCheckedBySelectedValue.apply(this, arguments);
- this.setSelected(isAllChecked);
- !isAllChecked && this.setHalfSelected(this.options.isHalfCheckedBySelectedValue.apply(this, arguments));
- }
-});
-BI.MultiSelectBar.EVENT_CHANGE = "MultiSelectBar.EVENT_CHANGE";
-BI.shortcut("bi.multi_select_bar", BI.MultiSelectBar);/**
- * 倒立的Branch
- * @class BI.HandStandBranchExpander
- * @extend BI.Widget
- * create by young
- */
-BI.HandStandBranchExpander = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.HandStandBranchExpander.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-handstand-branch-expander",
- direction: BI.Direction.Top,
- logic: {
- dynamic: true
- },
- el: {type: "bi.label"},
- popup: {}
- })
- },
-
- _init: function () {
- BI.HandStandBranchExpander.superclass._init.apply(this, arguments);
- var o = this.options;
- this._initExpander();
- this._initBranchView();
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(o.direction), BI.extend({}, o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection(o.direction, {
- type: "bi.center_adapt",
- items: [this.expander]
- }, this.branchView)
- }))));
- },
-
- _initExpander: function () {
- var self = this, o = this.options;
- this.expander = BI.createWidget(o.el);
- this.expander.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- },
-
- _initBranchView: function () {
- var self = this, o = this.options;
- this.branchView = BI.createWidget(o.popup, {});
- this.branchView.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- },
-
- populate: function (items) {
- this.branchView.populate.apply(this.branchView, arguments);
- },
-
- getValue: function () {
- return this.branchView.getValue();
- }
-});
-BI.HandStandBranchExpander.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.handstand_branch_expander", BI.HandStandBranchExpander);/**
- * @class BI.BranchExpander
- * @extend BI.Widget
- * create by young
- */
-BI.BranchExpander = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.BranchExpander.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-branch-expander",
- direction: BI.Direction.Left,
- logic: {
- dynamic: true
- },
- el: {},
- popup: {}
- })
- },
-
- _init: function () {
- BI.BranchExpander.superclass._init.apply(this, arguments);
- var o = this.options;
- this._initExpander();
- this._initBranchView();
- BI.createWidget(BI.extend({
- element: this
- }, BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(o.direction), BI.extend({}, o.logic, {
- items: BI.LogicFactory.createLogicItemsByDirection(o.direction, this.expander, this.branchView)
- }))));
- },
-
- _initExpander: function () {
- var self = this, o = this.options;
- this.expander = BI.createWidget(o.el, {
- type: "bi.label",
- width: 30,
- height: "100%"
- });
- this.expander.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- },
-
- _initBranchView: function () {
- var self = this, o = this.options;
- this.branchView = BI.createWidget(o.popup, {});
- this.branchView.on(BI.Controller.EVENT_CHANGE, function () {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- },
-
- populate: function (items) {
- this.branchView.populate.apply(this.branchView, arguments);
- },
-
- getValue: function () {
- return this.branchView.getValue();
- }
-});
-BI.BranchExpander.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.branch_expander", BI.BranchExpander);/**
- * @class BI.HandStandBranchTree
- * @extends BI.Widget
- * create by young
- * 横向分支的树
- */
-BI.HandStandBranchTree = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.HandStandBranchTree.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-handstand-branch-tree",
- expander: {},
- el: {},
- items: []
- })
- },
- _init: function () {
- BI.HandStandBranchTree.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.branchTree = BI.createWidget({
- type: "bi.custom_tree",
- element: this,
- expander: BI.extend({
- type: "bi.handstand_branch_expander",
- el: {},
- popup: {
- type: "bi.custom_tree"
- }
- }, o.expander),
- el: BI.extend({
- type: "bi.button_tree",
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_MULTI,
- layouts: [{
- type: "bi.horizontal_adapt"
- }]
- }, o.el),
- items: this.options.items
- });
- this.branchTree.on(BI.CustomTree.EVENT_CHANGE, function(){
- self.fireEvent(BI.HandStandBranchTree.EVENT_CHANGE, arguments);
- });
- this.branchTree.on(BI.Controller.EVENT_CHANGE, function(){
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- },
-
- populate: function () {
- this.branchTree.populate.apply(this.branchTree, arguments);
- },
-
- getValue: function () {
- return this.branchTree.getValue();
- }
-});
-BI.HandStandBranchTree.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.handstand_branch_tree", BI.HandStandBranchTree);/**
- * @class BI.BranchTree
- * @extends BI.Widget
- * create by young
- * 横向分支的树
- */
-BI.BranchTree = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.BranchTree.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-branch-tree",
- expander: {},
- el: {},
- items: []
- })
- },
- _init: function () {
- BI.BranchTree.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.branchTree = BI.createWidget({
- type: "bi.custom_tree",
- element: this,
- expander: BI.extend({
- type: "bi.branch_expander",
- el: {},
- popup: {
- type: "bi.custom_tree"
- }
- }, o.expander),
- el: BI.extend({
- type: "bi.button_tree",
- chooseType: BI.ButtonGroup.CHOOSE_TYPE_MULTI,
- layouts: [{
- type: "bi.vertical"
- }]
- }, o.el),
- items: this.options.items
- });
- this.branchTree.on(BI.CustomTree.EVENT_CHANGE, function(){
- self.fireEvent(BI.BranchTree.EVENT_CHANGE, arguments);
- });
- this.branchTree.on(BI.Controller.EVENT_CHANGE, function(){
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- });
- },
-
- populate: function () {
- this.branchTree.populate.apply(this.branchTree, arguments);
- },
-
- getValue: function () {
- return this.branchTree.getValue();
- }
-});
-BI.BranchTree.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.branch_tree", BI.BranchTree);/**
- * guy
- * 异步树
- * @class BI.DisplayTree
- * @extends BI.TreeView
- */
-BI.DisplayTree = BI.inherit(BI.TreeView, {
- _defaultConfig: function () {
- return BI.extend(BI.DisplayTree.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-display-tree"
- })
- },
- _init: function () {
- BI.DisplayTree.superclass._init.apply(this, arguments);
- },
-
- //配置属性
- _configSetting: function () {
- var setting = {
- view: {
- selectedMulti: false,
- dblClickExpand: false,
- showIcon: false,
- showTitle: false
- },
- data: {
- key: {
- title: "title",
- name: "text"
- },
- simpleData: {
- enable: true
- }
- },
- callback: {
- beforeCollapse: beforeCollapse
- }
- };
-
- function beforeCollapse(treeId, treeNode) {
- return false;
- }
-
- return setting;
- },
-
- _dealWidthNodes: function (nodes) {
- nodes = BI.DisplayTree.superclass._dealWidthNodes.apply(this, arguments);
- var self = this, o = this.options;
- BI.each(nodes, function (i, node) {
- if (node.count > 0) {
- node.text = node.value + "(" + BI.i18nText("BI-Basic_Altogether") + node.count + BI.i18nText("BI-Basic_Count") + ")";
- } else {
- node.text = node.value;
- }
- });
- return nodes;
- },
-
- initTree: function (nodes, setting) {
- var setting = setting || this._configSetting();
- this.nodes = $.fn.zTree.init(this.tree.element, setting, nodes);
- },
-
- destroy: function () {
- BI.DisplayTree.superclass.destroy.apply(this, arguments);
- }
-});
-BI.DisplayTree.EVENT_CHANGE = "EVENT_CHANGE";
-
-BI.shortcut("bi.display_tree", BI.DisplayTree);/**
- * guy
- * 二级树
- * @class BI.LevelTree
- * @extends BI.Single
- */
-BI.LevelTree = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.LevelTree.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-level-tree",
- el: {
- chooseType: 0
- },
- expander: {},
- items: []
- })
- },
-
- _init: function () {
- BI.LevelTree.superclass._init.apply(this, arguments);
-
- this.initTree(this.options.items);
- },
-
- _formatItems: function (nodes, layer) {
- var self = this;
- BI.each(nodes, function (i, node) {
- var extend = {layer: layer};
- if (!BI.isKey(node.id)) {
- node.id = BI.UUID();
- }
- if (node.isParent === true || BI.isNotEmptyArray(node.children)) {
- switch (i) {
- case 0 :
- extend.type = "bi.first_plus_group_node";
- break;
- case nodes.length - 1 :
- extend.type = "bi.last_plus_group_node";
- break;
- default :
- extend.type = "bi.mid_plus_group_node";
- break;
- }
- BI.defaults(node, extend);
- self._formatItems(node.children, layer + 1);
- } else {
- switch (i) {
- case nodes.length - 1:
- extend.type = "bi.last_tree_leaf_item";
- break;
- default :
- extend.type = "bi.mid_tree_leaf_item";
- }
- BI.defaults(node, extend);
- }
- });
- return nodes;
- },
-
- _assertId: function (sNodes) {
- BI.each(sNodes, function (i, node) {
- if (!BI.isKey(node.id)) {
- node.id = BI.UUID();
- }
- });
- },
-
- //构造树结构,
- initTree: function (nodes) {
- var self = this, o = this.options;
- this.empty();
- this._assertId(nodes);
- this.tree = BI.createWidget({
- type: "bi.custom_tree",
- element: this,
- expander: BI.extend({
- el: {},
- popup: {
- type: "bi.custom_tree"
- }
- }, o.expander),
-
- items: this._formatItems(BI.Tree.transformToTreeFormat(nodes), 0),
-
- el: BI.extend({
- type: "bi.button_tree",
- chooseType: 0,
- layouts: [{
- type: "bi.vertical"
- }]
- }, o.el)
- });
- this.tree.on(BI.Controller.EVENT_CHANGE, function (type) {
- self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
- if (type === BI.Events.CLICK) {
- self.fireEvent(BI.LevelTree.EVENT_CHANGE, arguments);
- }
- })
- },
-
- //生成树方法
- stroke: function (nodes) {
- this.tree.stroke.apply(this.tree, arguments);
- },
-
- populate: function (items) {
- items = this._formatItems(BI.Tree.transformToTreeFormat(items), 0);
- this.tree.populate(items);
- },
-
- setValue: function (v) {
- this.tree.setValue(v);
- },
-
- getValue: function () {
- return this.tree.getValue();
- },
-
- getAllLeaves: function () {
- return this.tree.getAllLeaves();
- },
-
- getNodeById: function (id) {
- return this.tree.getNodeById(id);
- },
-
- getNodeByValue: function (id) {
- return this.tree.getNodeByValue(id);
- }
-});
-BI.LevelTree.EVENT_CHANGE = "EVENT_CHANGE";
-
-BI.shortcut("bi.level_tree", BI.LevelTree);/**
- * 简单的多选树
- *
- * Created by GUY on 2016/2/16.
- * @class BI.SimpleTreeView
- * @extends BI.Widget
- */
-BI.SimpleTreeView = BI.inherit(BI.Widget, {
- _defaultConfig: function () {
- return BI.extend(BI.SimpleTreeView.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-simple-tree",
- itemsCreator: BI.emptyFn,
- items: null
- })
- },
- _init: function () {
- BI.SimpleTreeView.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.structure = new BI.Tree();
- this.tree = BI.createWidget({
- type: "bi.tree_view",
- element: this,
- itemsCreator: function (op, callback) {
- var fn = function (items) {
- callback({
- items: items
- });
- self.structure.initTree(BI.Tree.transformToTreeFormat(items));
- };
- if (BI.isNotNull(o.items)) {
- fn(o.items);
- } else {
- o.itemsCreator(op, fn);
- }
- }
- });
- this.tree.on(BI.TreeView.EVENT_CHANGE, function () {
- self.fireEvent(BI.SimpleTreeView.EVENT_CHANGE, arguments);
- });
- if (BI.isNotEmptyArray(o.items)) {
- this.populate();
- }
- },
-
- populate: function (items, keyword) {
- if (items) {
- this.options.items = items;
- }
- this.tree.stroke({
- keyword: keyword
- });
- },
-
- setValue: function (v) {
- v || (v = []);
- var self = this, map = {};
- var selected = [];
- BI.each(v, function (i, val) {
- var node = self.structure.search(val, "value");
- if (node) {
- var p = node;
- p = p.getParent();
- if (p) {
- if (!map[p.value]) {
- map[p.value] = 0;
- }
- map[p.value]++;
- }
-
- while (p && p.getChildrenLength() <= map[p.value]) {
- selected.push(p.value);
- p = p.getParent();
- if (p) {
- if (!map[p.value]) {
- map[p.value] = 0;
- }
- map[p.value]++;
- }
- }
- }
- });
-
- this.tree.setValue(BI.makeObject(v.concat(selected)));
- },
-
- _getValue: function () {
- var self = this, result = [], val = this.tree.getValue();
- var track = function (nodes) {
- BI.each(nodes, function (key, node) {
- if (BI.isEmpty(node)) {
- result.push(key);
- } else {
- track(node);
- }
- })
- };
- track(val);
- return result;
- },
-
- empty: function () {
- this.tree.empty();
- },
-
- getValue: function () {
- var self = this, result = [], val = this._getValue();
- BI.each(val, function (i, key) {
- var target = self.structure.search(key, "value");
- if (target) {
- self.structure._traverse(target, function (node) {
- if (node.isLeaf()) {
- result.push(node.value);
- }
- })
- }
- });
- return result;
- }
-});
-BI.SimpleTreeView.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.simple_tree", BI.SimpleTreeView);
+BI.SimpleTreeView.EVENT_CHANGE = "EVENT_CHANGE";
+BI.shortcut("bi.simple_tree", BI.SimpleTreeView);
/**
* 文本输入框trigger
*
@@ -12517,329 +12517,329 @@ BI.EditorTrigger = BI.inherit(BI.Trigger, {
}
});
BI.EditorTrigger.EVENT_CHANGE = "BI.EditorTrigger.EVENT_CHANGE";
-BI.shortcut("bi.editor_trigger", BI.EditorTrigger);/**
- * 图标按钮trigger
- *
- * Created by GUY on 2015/10/8.
- * @class BI.IconTrigger
- * @extends BI.Trigger
- */
-BI.IconTrigger = BI.inherit(BI.Trigger, {
-
- _defaultConfig: function () {
- return BI.extend(BI.IconTrigger.superclass._defaultConfig.apply(this, arguments), {
- extraCls: "bi-icon-trigger",
- el: {},
- height: 30
- });
- },
- _init: function () {
- var o = this.options;
- BI.IconTrigger.superclass._init.apply(this, arguments);
- this.iconButton = BI.createWidget(o.el, {
- type: "bi.trigger_icon_button",
- element: this,
- width: o.width,
- height: o.height
- });
- }
-});
-BI.shortcut('bi.icon_trigger', BI.IconTrigger);/**
- * 文字trigger
- *
- * Created by GUY on 2015/9/15.
- * @class BI.IconTextTrigger
- * @extends BI.Trigger
- */
-BI.IconTextTrigger = BI.inherit(BI.Trigger, {
- _const: {
- hgap: 4,
- triggerWidth: 30
- },
-
- _defaultConfig: function () {
- var conf = BI.IconTextTrigger.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-text-trigger",
- height: 30
- });
- },
-
- _init: function () {
- BI.IconTextTrigger.superclass._init.apply(this, arguments);
- var self = this, o = this.options, c = this._const;
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- height: o.height,
- text: o.text,
- hgap: c.hgap
- });
- this.trigerButton = BI.createWidget({
- type: "bi.trigger_icon_button",
- cls: "bi-border-left",
- width: c.triggerWidth
- });
-
- BI.createWidget({
- element: this,
- type: 'bi.htape',
- items: [{
- el: {
- type: "bi.icon_change_button",
- cls: "icon-combo-trigger-icon " + o.iconClass,
- ref: function (_ref) {
- self.icon = _ref;
- },
- disableSelected: true
- },
- width: 24
- },
- {
- el: this.text
- }, {
- el: this.trigerButton,
- width: c.triggerWidth
- }
- ]
- });
- },
-
- setValue: function (value) {
- this.text.setValue(value);
- this.text.setTitle(value);
- },
-
- setIcon: function (iconCls) {
- this.icon.setIcon(iconCls);
- },
-
- setText: function (text) {
- this.text.setText(text);
- this.text.setTitle(text);
- }
-});
-BI.shortcut("bi.icon_text_trigger", BI.IconTextTrigger);/**
- * 文字trigger
- *
- * Created by GUY on 2015/9/15.
- * @class BI.TextTrigger
- * @extends BI.Trigger
- */
-BI.TextTrigger = BI.inherit(BI.Trigger, {
- _const: {
- hgap: 4,
- triggerWidth: 30
- },
-
- _defaultConfig: function () {
- var conf = BI.TextTrigger.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-text-trigger",
- height: 30
- });
- },
-
- _init: function () {
- BI.TextTrigger.superclass._init.apply(this, arguments);
- var self = this, o = this.options, c = this._const;
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- height: o.height,
- text: o.text,
- hgap: c.hgap
- });
- this.trigerButton = BI.createWidget({
- type: "bi.trigger_icon_button",
- cls: "bi-border-left",
- width: c.triggerWidth
- });
-
- BI.createWidget({
- element: this,
- type: 'bi.htape',
- items: [
- {
- el: this.text
- }, {
- el: this.trigerButton,
- width: c.triggerWidth
- }
- ]
- });
- },
-
- setValue: function (value) {
- this.text.setValue(value);
- this.text.setTitle(value);
- },
-
- setText: function (text) {
- this.text.setText(text);
- this.text.setTitle(text);
- }
-});
-BI.shortcut("bi.text_trigger", BI.TextTrigger);/**
- * 选择字段trigger
- *
- * Created by GUY on 2015/9/15.
- * @class BI.SelectTextTrigger
- * @extends BI.Trigger
- */
-BI.SelectTextTrigger = BI.inherit(BI.Trigger, {
-
- _defaultConfig: function () {
- return BI.extend(BI.SelectTextTrigger.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-select-text-trigger bi-border",
- height: 24
- });
- },
-
- _init: function () {
- this.options.height -= 2;
- BI.SelectTextTrigger.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget({
- type: "bi.text_trigger",
- element: this,
- height: o.height
- });
- if (BI.isKey(o.text)) {
- this.setValue(o.text);
- }
- },
-
- setValue: function (vals) {
- var o = this.options;
- vals = BI.isArray(vals) ? vals : [vals];
- var result = [];
- var items = BI.Tree.transformToArrayFormat(this.options.items);
- BI.each(items, function (i, item) {
- if (BI.deepContains(vals, item.value) && !result.contains(item.text || item.value)) {
- result.push(item.text || item.value);
- }
- });
-
- if (result.length > 0) {
- this.trigger.setText(result.join(","));
- } else {
- this.trigger.setText(o.text);
- }
- },
-
- populate: function (items) {
- this.options.items = items;
- }
-});
-BI.shortcut("bi.select_text_trigger", BI.SelectTextTrigger);/**
- * 选择字段trigger小一号的
- *
- * @class BI.SmallSelectTextTrigger
- * @extends BI.Trigger
- */
-BI.SmallSelectTextTrigger = BI.inherit(BI.Trigger, {
-
- _defaultConfig: function () {
- return BI.extend(BI.SmallSelectTextTrigger.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-small-select-text-trigger bi-border",
- height: 20
- });
- },
-
- _init: function () {
- this.options.height -= 2;
- BI.SmallSelectTextTrigger.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.trigger = BI.createWidget({
- type: "bi.small_text_trigger",
- element: this,
- height: o.height - 2
- });
- if (BI.isKey(o.text)) {
- this.setValue(o.text);
- }
- },
-
- setValue: function (vals) {
- var o = this.options;
- vals = BI.isArray(vals) ? vals : [vals];
- var result = [];
- var items = BI.Tree.transformToArrayFormat(this.options.items);
- BI.each(items, function (i, item) {
- if (BI.deepContains(vals, item.value) && !result.contains(item.text || item.value)) {
- result.push(item.text || item.value);
- }
- });
-
- if (result.length > 0) {
- this.trigger.element.removeClass("bi-water-mark");
- this.trigger.setText(result.join(","));
- } else {
- this.trigger.element.addClass("bi-water-mark");
- this.trigger.setText(o.text);
- }
- },
-
- populate: function (items) {
- this.options.items = items;
- }
-});
-BI.shortcut("bi.small_select_text_trigger", BI.SmallSelectTextTrigger);/**
- * 文字trigger(右边小三角小一号的) ==
- *
- * @class BI.SmallTextTrigger
- * @extends BI.Trigger
- */
-BI.SmallTextTrigger = BI.inherit(BI.Trigger, {
- _const: {
- hgap: 4,
- triggerWidth: 20
- },
-
- _defaultConfig: function () {
- var conf = BI.SmallTextTrigger.superclass._defaultConfig.apply(this, arguments);
- return BI.extend(conf, {
- baseCls: (conf.baseCls || "") + " bi-text-trigger",
- height: 20
- });
- },
-
- _init: function () {
- BI.SmallTextTrigger.superclass._init.apply(this, arguments);
- var self = this, o = this.options, c = this._const;
- this.text = BI.createWidget({
- type: "bi.label",
- textAlign: "left",
- height: o.height,
- text: o.text,
- hgap: c.hgap
- });
- this.trigerButton = BI.createWidget({
- type: "bi.trigger_icon_button",
- width: c.triggerWidth
- });
-
- BI.createWidget({
- element: this,
- type: 'bi.htape',
- items: [
- {
- el: this.text
- }, {
- el: this.trigerButton,
- width: c.triggerWidth
- }
- ]
- });
- },
-
- setValue: function (value) {
- this.text.setValue(value);
- },
-
- setText: function (text) {
- this.text.setText(text);
- }
-});
+BI.shortcut("bi.editor_trigger", BI.EditorTrigger);/**
+ * 图标按钮trigger
+ *
+ * Created by GUY on 2015/10/8.
+ * @class BI.IconTrigger
+ * @extends BI.Trigger
+ */
+BI.IconTrigger = BI.inherit(BI.Trigger, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.IconTrigger.superclass._defaultConfig.apply(this, arguments), {
+ extraCls: "bi-icon-trigger",
+ el: {},
+ height: 30
+ });
+ },
+ _init: function () {
+ var o = this.options;
+ BI.IconTrigger.superclass._init.apply(this, arguments);
+ this.iconButton = BI.createWidget(o.el, {
+ type: "bi.trigger_icon_button",
+ element: this,
+ width: o.width,
+ height: o.height
+ });
+ }
+});
+BI.shortcut('bi.icon_trigger', BI.IconTrigger);/**
+ * 文字trigger
+ *
+ * Created by GUY on 2015/9/15.
+ * @class BI.IconTextTrigger
+ * @extends BI.Trigger
+ */
+BI.IconTextTrigger = BI.inherit(BI.Trigger, {
+ _const: {
+ hgap: 4,
+ triggerWidth: 30
+ },
+
+ _defaultConfig: function () {
+ var conf = BI.IconTextTrigger.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-text-trigger",
+ height: 30
+ });
+ },
+
+ _init: function () {
+ BI.IconTextTrigger.superclass._init.apply(this, arguments);
+ var self = this, o = this.options, c = this._const;
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ height: o.height,
+ text: o.text,
+ hgap: c.hgap
+ });
+ this.trigerButton = BI.createWidget({
+ type: "bi.trigger_icon_button",
+ cls: "bi-border-left",
+ width: c.triggerWidth
+ });
+
+ BI.createWidget({
+ element: this,
+ type: 'bi.htape',
+ items: [{
+ el: {
+ type: "bi.icon_change_button",
+ cls: "icon-combo-trigger-icon " + o.iconClass,
+ ref: function (_ref) {
+ self.icon = _ref;
+ },
+ disableSelected: true
+ },
+ width: 24
+ },
+ {
+ el: this.text
+ }, {
+ el: this.trigerButton,
+ width: c.triggerWidth
+ }
+ ]
+ });
+ },
+
+ setValue: function (value) {
+ this.text.setValue(value);
+ this.text.setTitle(value);
+ },
+
+ setIcon: function (iconCls) {
+ this.icon.setIcon(iconCls);
+ },
+
+ setText: function (text) {
+ this.text.setText(text);
+ this.text.setTitle(text);
+ }
+});
+BI.shortcut("bi.icon_text_trigger", BI.IconTextTrigger);/**
+ * 文字trigger
+ *
+ * Created by GUY on 2015/9/15.
+ * @class BI.TextTrigger
+ * @extends BI.Trigger
+ */
+BI.TextTrigger = BI.inherit(BI.Trigger, {
+ _const: {
+ hgap: 4,
+ triggerWidth: 30
+ },
+
+ _defaultConfig: function () {
+ var conf = BI.TextTrigger.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-text-trigger",
+ height: 30
+ });
+ },
+
+ _init: function () {
+ BI.TextTrigger.superclass._init.apply(this, arguments);
+ var self = this, o = this.options, c = this._const;
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ height: o.height,
+ text: o.text,
+ hgap: c.hgap
+ });
+ this.trigerButton = BI.createWidget({
+ type: "bi.trigger_icon_button",
+ cls: "bi-border-left",
+ width: c.triggerWidth
+ });
+
+ BI.createWidget({
+ element: this,
+ type: 'bi.htape',
+ items: [
+ {
+ el: this.text
+ }, {
+ el: this.trigerButton,
+ width: c.triggerWidth
+ }
+ ]
+ });
+ },
+
+ setValue: function (value) {
+ this.text.setValue(value);
+ this.text.setTitle(value);
+ },
+
+ setText: function (text) {
+ this.text.setText(text);
+ this.text.setTitle(text);
+ }
+});
+BI.shortcut("bi.text_trigger", BI.TextTrigger);/**
+ * 选择字段trigger
+ *
+ * Created by GUY on 2015/9/15.
+ * @class BI.SelectTextTrigger
+ * @extends BI.Trigger
+ */
+BI.SelectTextTrigger = BI.inherit(BI.Trigger, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.SelectTextTrigger.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-select-text-trigger bi-border",
+ height: 24
+ });
+ },
+
+ _init: function () {
+ this.options.height -= 2;
+ BI.SelectTextTrigger.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget({
+ type: "bi.text_trigger",
+ element: this,
+ height: o.height
+ });
+ if (BI.isKey(o.text)) {
+ this.setValue(o.text);
+ }
+ },
+
+ setValue: function (vals) {
+ var o = this.options;
+ vals = BI.isArray(vals) ? vals : [vals];
+ var result = [];
+ var items = BI.Tree.transformToArrayFormat(this.options.items);
+ BI.each(items, function (i, item) {
+ if (BI.deepContains(vals, item.value) && !result.contains(item.text || item.value)) {
+ result.push(item.text || item.value);
+ }
+ });
+
+ if (result.length > 0) {
+ this.trigger.setText(result.join(","));
+ } else {
+ this.trigger.setText(o.text);
+ }
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ }
+});
+BI.shortcut("bi.select_text_trigger", BI.SelectTextTrigger);/**
+ * 选择字段trigger小一号的
+ *
+ * @class BI.SmallSelectTextTrigger
+ * @extends BI.Trigger
+ */
+BI.SmallSelectTextTrigger = BI.inherit(BI.Trigger, {
+
+ _defaultConfig: function () {
+ return BI.extend(BI.SmallSelectTextTrigger.superclass._defaultConfig.apply(this, arguments), {
+ baseCls: "bi-small-select-text-trigger bi-border",
+ height: 20
+ });
+ },
+
+ _init: function () {
+ this.options.height -= 2;
+ BI.SmallSelectTextTrigger.superclass._init.apply(this, arguments);
+ var self = this, o = this.options;
+ this.trigger = BI.createWidget({
+ type: "bi.small_text_trigger",
+ element: this,
+ height: o.height - 2
+ });
+ if (BI.isKey(o.text)) {
+ this.setValue(o.text);
+ }
+ },
+
+ setValue: function (vals) {
+ var o = this.options;
+ vals = BI.isArray(vals) ? vals : [vals];
+ var result = [];
+ var items = BI.Tree.transformToArrayFormat(this.options.items);
+ BI.each(items, function (i, item) {
+ if (BI.deepContains(vals, item.value) && !result.contains(item.text || item.value)) {
+ result.push(item.text || item.value);
+ }
+ });
+
+ if (result.length > 0) {
+ this.trigger.element.removeClass("bi-water-mark");
+ this.trigger.setText(result.join(","));
+ } else {
+ this.trigger.element.addClass("bi-water-mark");
+ this.trigger.setText(o.text);
+ }
+ },
+
+ populate: function (items) {
+ this.options.items = items;
+ }
+});
+BI.shortcut("bi.small_select_text_trigger", BI.SmallSelectTextTrigger);/**
+ * 文字trigger(右边小三角小一号的) ==
+ *
+ * @class BI.SmallTextTrigger
+ * @extends BI.Trigger
+ */
+BI.SmallTextTrigger = BI.inherit(BI.Trigger, {
+ _const: {
+ hgap: 4,
+ triggerWidth: 20
+ },
+
+ _defaultConfig: function () {
+ var conf = BI.SmallTextTrigger.superclass._defaultConfig.apply(this, arguments);
+ return BI.extend(conf, {
+ baseCls: (conf.baseCls || "") + " bi-text-trigger",
+ height: 20
+ });
+ },
+
+ _init: function () {
+ BI.SmallTextTrigger.superclass._init.apply(this, arguments);
+ var self = this, o = this.options, c = this._const;
+ this.text = BI.createWidget({
+ type: "bi.label",
+ textAlign: "left",
+ height: o.height,
+ text: o.text,
+ hgap: c.hgap
+ });
+ this.trigerButton = BI.createWidget({
+ type: "bi.trigger_icon_button",
+ width: c.triggerWidth
+ });
+
+ BI.createWidget({
+ element: this,
+ type: 'bi.htape',
+ items: [
+ {
+ el: this.text
+ }, {
+ el: this.trigerButton,
+ width: c.triggerWidth
+ }
+ ]
+ });
+ },
+
+ setValue: function (value) {
+ this.text.setValue(value);
+ },
+
+ setText: function (text) {
+ this.text.setText(text);
+ }
+});
BI.shortcut("bi.small_text_trigger", BI.SmallTextTrigger);
\ No newline at end of file
diff --git a/dist/bundle.min.js b/dist/bundle.min.js
index 81d4dc18f0..eb2b923407 100644
--- a/dist/bundle.min.js
+++ b/dist/bundle.min.js
@@ -34,14 +34,14 @@ BI.shortcut("bi.color_chooser_popup",BI.ColorChooserPopup),BI.ColorChooserTrigge
}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.textIconCheckCombo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:300}})},setTitle:function(a){this.trigger.setTitle(a)},setValue:function(a){this.textIconCheckCombo.setValue(a)},setWarningTitle:function(a){this.trigger.setWarningTitle(a)},getValue:function(){return this.textIconCheckCombo.getValue()},populate:function(a){this.options.items=a,this.textIconCheckCombo.populate(a)}}),BI.TextValueCheckCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_check_combo",BI.TextValueCheckCombo),BI.SmallTextValueCheckCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SmallTextValueCheckCombo.superclass._defaultConfig.apply(this,arguments),{width:100,height:24,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,text:""})},_init:function(){BI.SmallTextValueCheckCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.small_select_text_trigger",items:b.items,height:b.height,text:b.text}),this.popup=BI.createWidget({type:"bi.text_value_check_combo_popup",chooseType:b.chooseType,items:b.items}),this.popup.on(BI.TextValueCheckComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.SmallTextIconCheckCombo.hideView(),a.fireEvent(BI.SmallTextValueCheckCombo.EVENT_CHANGE)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.SmallTextIconCheckCombo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:300}})},setValue:function(a){this.SmallTextIconCheckCombo.setValue(a)},getValue:function(){return this.SmallTextIconCheckCombo.getValue()},populate:function(a){this.options.items=a,this.SmallTextIconCheckCombo.populate(a)}}),BI.SmallTextValueCheckCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.small_text_value_check_combo",BI.SmallTextValueCheckCombo),BI.TextValueCheckComboPopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.TextValueCheckComboPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-icon-popup",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE})},_init:function(){BI.TextValueCheckComboPopup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.popup=BI.createWidget({type:"bi.button_group",items:this._formatItems(a.items),chooseType:a.chooseType,layouts:[{type:"bi.vertical"}]}),this.popup.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.TextValueCheckComboPopup.EVENT_CHANGE,c,d)}),BI.createWidget({type:"bi.vertical",element:this,items:[this.popup]})},_formatItems:function(a){return BI.map(a,function(a,b){return BI.extend({type:"bi.icon_text_item",cls:"item-check-font bi-list-item",height:30},b)})},populate:function(a){BI.TextValueCheckComboPopup.superclass.populate.apply(this,arguments),this.popup.populate(this._formatItems(a))},getValue:function(){return this.popup.getValue()},setValue:function(a){this.popup.setValue(a)}}),BI.TextValueCheckComboPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_check_combo_popup",BI.TextValueCheckComboPopup),BI.TextValueCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.TextValueCombo.superclass._defaultConfig.apply(this,arguments),{baseClass:"bi-text-value-combo",height:30,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,text:"",el:{}})},_init:function(){BI.TextValueCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(b.el,{type:"bi.select_text_trigger",items:b.items,height:b.height,text:b.text}),this.popup=BI.createWidget({type:"bi.text_value_combo_popup",chooseType:b.chooseType,items:b.items}),this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.textIconCombo.hideView(),a.fireEvent(BI.TextValueCombo.EVENT_CHANGE,arguments)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.textIconCombo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:300}})},setValue:function(a){this.textIconCombo.setValue(a)},getValue:function(){return this.textIconCombo.getValue()},populate:function(a){this.options.items=a,this.textIconCombo.populate(a)}}),BI.TextValueCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_combo",BI.TextValueCombo),BI.SmallTextValueCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SmallTextValueCombo.superclass._defaultConfig.apply(this,arguments),{width:100,height:24,chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,el:{},text:""})},_init:function(){BI.SmallTextValueCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(b.el,{type:"bi.small_select_text_trigger",items:b.items,height:b.height,text:b.text}),this.popup=BI.createWidget({type:"bi.text_value_combo_popup",chooseType:b.chooseType,items:b.items}),this.popup.on(BI.TextValueComboPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.SmallTextValueCombo.hideView(),a.fireEvent(BI.SmallTextValueCombo.EVENT_CHANGE)}),this.popup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.SmallTextValueCombo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup,maxHeight:300}})},setValue:function(a){this.SmallTextValueCombo.setValue(a)},getValue:function(){return this.SmallTextValueCombo.getValue()},populate:function(a){this.options.items=a,this.SmallTextValueCombo.populate(a)}}),BI.SmallTextValueCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.small_text_value_combo",BI.SmallTextValueCombo),BI.TextValueComboPopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.TextValueComboPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-icon-popup",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE})},_init:function(){BI.TextValueComboPopup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.popup=BI.createWidget({type:"bi.button_group",items:BI.createItems(a.items,{type:"bi.single_select_item",textAlign:a.textAlign,height:30}),chooseType:a.chooseType,layouts:[{type:"bi.vertical"}]}),this.popup.on(BI.Controller.EVENT_CHANGE,function(a,c,d){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.TextValueComboPopup.EVENT_CHANGE,c,d)}),BI.createWidget({type:"bi.vertical",element:this,items:[this.popup]})},populate:function(a){BI.TextValueComboPopup.superclass.populate.apply(this,arguments),a=BI.createItems(a,{type:"bi.single_select_item",height:30}),this.popup.populate(a)},getValue:function(){return this.popup.getValue()},setValue:function(a){this.popup.setValue(a)}}),BI.TextValueComboPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_combo_popup",BI.TextValueComboPopup),BI.TextValueDownListCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.TextValueDownListCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-text-value-down-list-combo",height:30,text:""})},_init:function(){BI.TextValueDownListCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this._createValueMap(),this.trigger=BI.createWidget({type:"bi.down_list_select_text_trigger",height:b.height,items:b.items}),this.combo=BI.createWidget({type:"bi.down_list_combo",element:this,chooseType:BI.Selection.Single,adjustLength:2,height:b.height,el:this.trigger,items:BI.deepClone(b.items)}),this.combo.on(BI.DownListCombo.EVENT_CHANGE,function(){a.setValue(a.combo.getValue()[0].value),a.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE)}),this.combo.on(BI.DownListCombo.EVENT_SON_VALUE_CHANGE,function(){a.setValue(a.combo.getValue()[0].childValue),a.fireEvent(BI.TextValueDownListCombo.EVENT_CHANGE)})},_createValueMap:function(){var a=this;this.valueMap={},BI.each(BI.flatten(this.options.items),function(b,c){BI.has(c,"el")?BI.each(c.children,function(b,d){a.valueMap[d.value]={value:c.el.value,childValue:d.value}}):a.valueMap[c.value]={value:c.value}})},setValue:function(a){a=this.valueMap[a],this.combo.setValue([a]),this.trigger.setValue(a.childValue||a.value)},getValue:function(){var a=this.combo.getValue()[0];return[a.childValue||a.value]},populate:function(a){this.options.items=BI.flatten(a),this.combo.populate(a),this._createValueMap()}}),BI.TextValueDownListCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.text_value_down_list_combo",BI.TextValueDownListCombo),BI.DownListSelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.DownListSelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-select-text-trigger",height:24,text:""})},_init:function(){BI.DownListSelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.select_text_trigger",element:this,height:a.height,items:this._formatItemArray(a.items),text:a.text})},_formatItemArray:function(){var a=BI.flatten(BI.deepClone(this.options.items)),b=[];return BI.each(a,function(a,c){BI.has(c,"el")?(BI.each(c.children,function(a,b){b.text=c.el.text+"("+b.text+")"}),b=BI.concat(b,c.children)):b.push(c)}),b},setValue:function(a){this.trigger.setValue(a)},populate:function(a){this.trigger.populate(this._formatItemArray(a))}}),BI.shortcut("bi.down_list_select_text_trigger",BI.DownListSelectTextTrigger),BI.ClearEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.ClearEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-clear-editor",height:30,errorText:"",watermark:"",validationChecker:BI.emptyFn,quitChecker:BI.emptyFn})},_init:function(){BI.ClearEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,watermark:b.watermark,allowBlank:!0,errorText:b.errorText,validationChecker:b.validationChecker,quitChecker:b.quitChecker}),this.clear=BI.createWidget({type:"bi.icon_button",stopEvent:!0,cls:"search-close-h-font"}),this.clear.on(BI.IconButton.EVENT_CHANGE,function(){a.setValue(""),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.STOPEDIT),a.fireEvent(BI.ClearEditor.EVENT_CLEAR)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:this.clear,width:25}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.ClearEditor.EVENT_FOCUS)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.ClearEditor.EVENT_BLUR)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.ClearEditor.EVENT_CLICK)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a._checkClear(),a.fireEvent(BI.ClearEditor.EVENT_CHANGE)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.ClearEditor.EVENT_KEY_DOWN,b)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.ClearEditor.EVENT_SPACE)}),this.editor.on(BI.Editor.EVENT_BACKSPACE,function(){a.fireEvent(BI.ClearEditor.EVENT_BACKSPACE)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.ClearEditor.EVENT_VALID)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.ClearEditor.EVENT_ERROR)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.ClearEditor.EVENT_ENTER)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.ClearEditor.EVENT_RESTRICT)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a._checkClear(),a.fireEvent(BI.ClearEditor.EVENT_EMPTY)}),this.editor.on(BI.Editor.EVENT_REMOVE,function(){a.fireEvent(BI.ClearEditor.EVENT_REMOVE)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a.fireEvent(BI.ClearEditor.EVENT_CONFIRM)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.ClearEditor.EVENT_START)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.ClearEditor.EVENT_PAUSE)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.ClearEditor.EVENT_STOP)}),this.clear.invisible()},_checkClear:function(){this.getValue()?this.clear.visible():this.clear.invisible()},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},getValue:function(){if(this.isValid()){var a=this.editor.getValue().match(/[\S]+/g);return BI.isNull(a)?"":a[a.length-1]}},setValue:function(a){this.editor.setValue(a),BI.isKey(a)&&this.clear.visible()},isValid:function(){return this.editor.isValid()}}),BI.ClearEditor.EVENT_CHANGE="EVENT_CHANGE",BI.ClearEditor.EVENT_FOCUS="EVENT_FOCUS",BI.ClearEditor.EVENT_BLUR="EVENT_BLUR",BI.ClearEditor.EVENT_CLICK="EVENT_CLICK",BI.ClearEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.ClearEditor.EVENT_SPACE="EVENT_SPACE",BI.ClearEditor.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.ClearEditor.EVENT_CLEAR="EVENT_CLEAR",BI.ClearEditor.EVENT_START="EVENT_START",BI.ClearEditor.EVENT_PAUSE="EVENT_PAUSE",BI.ClearEditor.EVENT_STOP="EVENT_STOP",BI.ClearEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.ClearEditor.EVENT_VALID="EVENT_VALID",BI.ClearEditor.EVENT_ERROR="EVENT_ERROR",BI.ClearEditor.EVENT_ENTER="EVENT_ENTER",BI.ClearEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.ClearEditor.EVENT_REMOVE="EVENT_REMOVE",BI.ClearEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.clear_editor",BI.ClearEditor),BI.SearchEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SearchEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-search-editor bi-border",height:30,errorText:"",watermark:BI.i18nText("BI-Basic_Search"),validationChecker:BI.emptyFn,quitChecker:BI.emptyFn})},_init:function(){this.options.height-=2,BI.SearchEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,watermark:b.watermark,allowBlank:!0,errorText:b.errorText,validationChecker:b.validationChecker,quitChecker:b.quitChecker}),this.clear=BI.createWidget({type:"bi.icon_button",stopEvent:!0,cls:"search-close-h-font"}),this.clear.on(BI.IconButton.EVENT_CHANGE,function(){a.setValue(""),a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.STOPEDIT),a.fireEvent(BI.SearchEditor.EVENT_CLEAR)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:{type:"bi.center_adapt",cls:"search-font",items:[{el:{type:"bi.icon"}}]},width:25},{el:a.editor},{el:this.clear,width:25}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.SearchEditor.EVENT_FOCUS)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.SearchEditor.EVENT_BLUR)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.SearchEditor.EVENT_CLICK)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a._checkClear(),a.fireEvent(BI.SearchEditor.EVENT_CHANGE)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.SearchEditor.EVENT_KEY_DOWN,b)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.SearchEditor.EVENT_SPACE)}),this.editor.on(BI.Editor.EVENT_BACKSPACE,function(){a.fireEvent(BI.SearchEditor.EVENT_BACKSPACE)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.SearchEditor.EVENT_VALID)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.SearchEditor.EVENT_ERROR)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.SearchEditor.EVENT_ENTER)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.SearchEditor.EVENT_RESTRICT)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a._checkClear(),a.fireEvent(BI.SearchEditor.EVENT_EMPTY)}),this.editor.on(BI.Editor.EVENT_REMOVE,function(){a.fireEvent(BI.SearchEditor.EVENT_REMOVE)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a.fireEvent(BI.SearchEditor.EVENT_CONFIRM)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.SearchEditor.EVENT_START)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.SearchEditor.EVENT_PAUSE)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.SearchEditor.EVENT_STOP)}),this.clear.invisible()},_checkClear:function(){this.getValue()?this.clear.visible():this.clear.invisible()},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},getValue:function(){if(this.isValid()){var a=this.editor.getValue().match(/[\S]+/g);return BI.isNull(a)?"":a[a.length-1]}},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a),BI.isKey(a)&&this.clear.visible()},isEditing:function(){return this.editor.isEditing()},isValid:function(){return this.editor.isValid()}}),BI.SearchEditor.EVENT_CHANGE="EVENT_CHANGE",BI.SearchEditor.EVENT_FOCUS="EVENT_FOCUS",BI.SearchEditor.EVENT_BLUR="EVENT_BLUR",BI.SearchEditor.EVENT_CLICK="EVENT_CLICK",BI.SearchEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.SearchEditor.EVENT_SPACE="EVENT_SPACE",BI.SearchEditor.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.SearchEditor.EVENT_CLEAR="EVENT_CLEAR",BI.SearchEditor.EVENT_START="EVENT_START",BI.SearchEditor.EVENT_PAUSE="EVENT_PAUSE",BI.SearchEditor.EVENT_STOP="EVENT_STOP",BI.SearchEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SearchEditor.EVENT_VALID="EVENT_VALID",BI.SearchEditor.EVENT_ERROR="EVENT_ERROR",BI.SearchEditor.EVENT_ENTER="EVENT_ENTER",BI.SearchEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.SearchEditor.EVENT_REMOVE="EVENT_REMOVE",BI.SearchEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.search_editor",BI.SearchEditor),BI.SmallSearchEditor=BI.inherit(BI.SearchEditor,{_defaultConfig:function(){var a=BI.SmallSearchEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-small-search-editor",height:24})},_init:function(){BI.SmallSearchEditor.superclass._init.apply(this,arguments)}}),BI.shortcut("bi.small_search_editor",BI.SmallSearchEditor),BI.ShelterEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.ShelterEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-shelter-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:"",height:30,textAlign:"left"})},_init:function(){BI.ShelterEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"shelter-editor-text",title:b.title,warningTitle:b.warningTitle,tipType:b.tipType,textAlign:b.textAlign,height:b.height,hgap:4}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.text.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.ShelterEditor.EVENT_CLICK_LABEL)}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.ShelterEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.ShelterEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.ShelterEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.ShelterEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.ShelterEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.ShelterEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.ShelterEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.ShelterEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.ShelterEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.ShelterEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.ShelterEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a._checkText(),a.fireEvent(BI.ShelterEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.ShelterEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.ShelterEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.ShelterEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint(),a._checkText()},_checkText:function(){var a=this.options;""===this.editor.getValue()?(this.text.setValue(a.watermark||""),this.text.element.addClass("bi-water-mark")):(this.text.setValue(this.editor.getValue()),this.text.element.removeClass("bi-water-mark"))},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},setTitle:function(a){this.text.setTitle(a)},setWarningTitle:function(a){this.text.setWarningTitle(a)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint(),this._checkText()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setTextStyle:function(a){this.text.setStyle(a)},setValue:function(a){this.editor.setValue(a),this._checkText()},getValue:function(){return this.editor.getValue()},getState:function(){return this.text.getValue()},setState:function(a){this._showHint(),this.text.setValue(a)}}),BI.ShelterEditor.EVENT_CHANGE="EVENT_CHANGE",BI.ShelterEditor.EVENT_FOCUS="EVENT_FOCUS",BI.ShelterEditor.EVENT_BLUR="EVENT_BLUR",BI.ShelterEditor.EVENT_CLICK="EVENT_CLICK",BI.ShelterEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.ShelterEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.ShelterEditor.EVENT_START="EVENT_START",BI.ShelterEditor.EVENT_PAUSE="EVENT_PAUSE",BI.ShelterEditor.EVENT_STOP="EVENT_STOP",BI.ShelterEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.ShelterEditor.EVENT_VALID="EVENT_VALID",BI.ShelterEditor.EVENT_ERROR="EVENT_ERROR",BI.ShelterEditor.EVENT_ENTER="EVENT_ENTER",BI.ShelterEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.ShelterEditor.EVENT_SPACE="EVENT_SPACE",BI.ShelterEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.shelter_editor",BI.ShelterEditor),BI.SignInitialEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SignInitialEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-sign-initial-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:"",value:"",text:"",height:30})},_init:function(){BI.SignInitialEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"sign-editor-text",title:b.title,warningTitle:b.warningTitle,tipType:b.tipType,textAlign:"left",height:b.height,hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.selectAll()}}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.SignInitialEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.SignInitialEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.SignInitialEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.SignInitialEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.SignInitialEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.SignInitialEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.SignInitialEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.SignInitialEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.SignInitialEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.SignInitialEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.SignInitialEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.SignInitialEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a._checkText(),a.fireEvent(BI.SignInitialEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.SignInitialEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.SignInitialEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.SignInitialEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint(),a._checkText()},_checkText:function(){var a=this.options;BI.nextTick(BI.bind(function(){if(""===this.editor.getValue())this.text.setValue(a.watermark||""),this.text.element.addClass("bi-water-mark");else{var b=this.editor.getValue();b=BI.isEmpty(b)||b==a.text?a.text:b+"("+a.text+")",this.text.setValue(b),this.text.element.removeClass("bi-water-mark")}},this))},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},setTitle:function(a){this.text.setTitle(a)},setWarningTitle:function(a){this.text.setWarningTitle(a)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint(),this._checkText()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){var b=this.options;this.editor.setValue(a.value),b.text=a.text||b.text,this._checkText()},getValue:function(){return{value:this.editor.getValue(),text:this.options.text}},getState:function(){return this.text.getValue()},setState:function(a){var b=this.options;this._showHint(),a=BI.isEmpty(a)||a==b.text?b.text:a+"("+b.text+")",this.text.setValue(a)}}),BI.SignInitialEditor.EVENT_CHANGE="EVENT_CHANGE",BI.SignInitialEditor.EVENT_FOCUS="EVENT_FOCUS",BI.SignInitialEditor.EVENT_BLUR="EVENT_BLUR",BI.SignInitialEditor.EVENT_CLICK="EVENT_CLICK",BI.SignInitialEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.SignInitialEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.SignInitialEditor.EVENT_START="EVENT_START",BI.SignInitialEditor.EVENT_PAUSE="EVENT_PAUSE",BI.SignInitialEditor.EVENT_STOP="EVENT_STOP",BI.SignInitialEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SignInitialEditor.EVENT_VALID="EVENT_VALID",BI.SignInitialEditor.EVENT_ERROR="EVENT_ERROR",BI.SignInitialEditor.EVENT_ENTER="EVENT_ENTER",BI.SignInitialEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.SignInitialEditor.EVENT_SPACE="EVENT_SPACE",BI.SignInitialEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.sign_initial_editor",BI.SignInitialEditor),BI.SignEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SignEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-sign-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:"",height:30})},_init:function(){BI.SignEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"sign-editor-text",title:b.title,warningTitle:b.warningTitle,tipType:b.tipType,textAlign:"left",height:b.height,hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.selectAll()}}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.SignEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.SignEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.SignEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.SignEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.SignEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.SignEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.SignEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a._checkText(),a.fireEvent(BI.SignEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.SignEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.SignEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.SignEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.SignEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a._checkText(),a.fireEvent(BI.SignEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.SignEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.SignEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.SignEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]
}),this._showHint(),a._checkText()},_checkText:function(){var a=this.options;BI.nextTick(BI.bind(function(){""===this.editor.getValue()?(this.text.setValue(a.watermark||""),this.text.element.addClass("bi-water-mark")):(this.text.setValue(this.editor.getValue()),this.text.element.removeClass("bi-water-mark"))},this))},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},setTitle:function(a){this.text.setTitle(a)},setWarningTitle:function(a){this.text.setWarningTitle(a)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint(),this._checkText()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a),this._checkText()},getValue:function(){return this.editor.getValue()},getState:function(){return this.text.getValue()},setState:function(a){this._showHint(),this.text.setValue(a)}}),BI.SignEditor.EVENT_CHANGE="EVENT_CHANGE",BI.SignEditor.EVENT_FOCUS="EVENT_FOCUS",BI.SignEditor.EVENT_BLUR="EVENT_BLUR",BI.SignEditor.EVENT_CLICK="EVENT_CLICK",BI.SignEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.SignEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.SignEditor.EVENT_START="EVENT_START",BI.SignEditor.EVENT_PAUSE="EVENT_PAUSE",BI.SignEditor.EVENT_STOP="EVENT_STOP",BI.SignEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SignEditor.EVENT_VALID="EVENT_VALID",BI.SignEditor.EVENT_ERROR="EVENT_ERROR",BI.SignEditor.EVENT_ENTER="EVENT_ENTER",BI.SignEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.SignEditor.EVENT_SPACE="EVENT_SPACE",BI.SignEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.sign_editor",BI.SignEditor),BI.StateEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.StateEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-state-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!0,watermark:"",errorText:"",height:30})},_init:function(){BI.StateEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"state-editor-infinite-text bi-disabled",textAlign:"left",height:b.height,text:BI.i18nText("BI-Basic_Unrestricted"),hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.setValue("")}}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.StateEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.StateEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.StateEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.StateEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.StateEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.StateEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.StateEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a.fireEvent(BI.StateEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.StateEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.StateEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.StateEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.StateEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.StateEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.StateEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.StateEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.StateEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},focus:function(){this.options.disabled===!1&&(this._showInput(),this.editor.focus())},blur:function(){this.editor.blur(),this._showHint()},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a)},getValue:function(){return this.editor.getValue()},getState:function(){return this.editor.getValue().match(/[^\s]+/g)},setState:function(a){return BI.StateEditor.superclass.setValue.apply(this,arguments),BI.isNumber(a)?void(a===BI.Selection.All?(this.text.setText(BI.i18nText("BI-Select_All")),this.text.setTitle(""),this.text.element.removeClass("state-editor-infinite-text")):a===BI.Selection.Multi?(this.text.setText(BI.i18nText("BI-Select_Part")),this.text.setTitle(""),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(BI.i18nText("BI-Basic_Unrestricted")),this.text.setTitle(""),this.text.element.addClass("state-editor-infinite-text"))):BI.isString(a)?(this.text.setText(a),this.text.setTitle(a),void this.text.element.removeClass("state-editor-infinite-text")):void(BI.isArray(a)&&(BI.isEmpty(a)?(this.text.setText(BI.i18nText("BI-Basic_Unrestricted")),this.text.element.addClass("state-editor-infinite-text")):1===a.length?(this.text.setText(a[0]),this.text.setTitle(a[0]),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(BI.i18nText("BI-Select_Part")),this.text.setTitle(""),this.text.element.removeClass("state-editor-infinite-text"))))}}),BI.StateEditor.EVENT_CHANGE="EVENT_CHANGE",BI.StateEditor.EVENT_FOCUS="EVENT_FOCUS",BI.StateEditor.EVENT_BLUR="EVENT_BLUR",BI.StateEditor.EVENT_CLICK="EVENT_CLICK",BI.StateEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.StateEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.StateEditor.EVENT_START="EVENT_START",BI.StateEditor.EVENT_PAUSE="EVENT_PAUSE",BI.StateEditor.EVENT_STOP="EVENT_STOP",BI.StateEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.StateEditor.EVENT_VALID="EVENT_VALID",BI.StateEditor.EVENT_ERROR="EVENT_ERROR",BI.StateEditor.EVENT_ENTER="EVENT_ENTER",BI.StateEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.StateEditor.EVENT_SPACE="EVENT_SPACE",BI.StateEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.state_editor",BI.StateEditor),BI.SimpleStateEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.SimpleStateEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-simple-state-editor",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,mouseOut:!1,allowBlank:!0,watermark:"",errorText:"",height:30})},_init:function(){BI.SimpleStateEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.editor",height:b.height,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.text=BI.createWidget({type:"bi.text_button",cls:"state-editor-infinite-text bi-disabled",textAlign:"left",height:b.height,text:BI.i18nText("BI-Basic_Unrestricted"),hgap:4,handler:function(){a._showInput(),a.editor.focus(),a.editor.setValue("")}}),this.text.on(BI.TextButton.EVENT_CHANGE,function(){BI.nextTick(function(){a.fireEvent(BI.SimpleStateEditor.EVENT_CLICK_LABEL)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.text,left:0,right:0,top:0,bottom:0}]}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_FOCUS,arguments)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_BLUR,arguments)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_CLICK,arguments)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.SimpleStateEditor.EVENT_KEY_DOWN,arguments)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_VALID,arguments)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a._showHint(),a.fireEvent(BI.SimpleStateEditor.EVENT_CONFIRM,arguments)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_START,arguments)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_PAUSE,arguments)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_STOP,arguments)}),this.editor.on(BI.Editor.EVENT_SPACE,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_SPACE,arguments)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_ENTER,arguments)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_RESTRICT,arguments)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.SimpleStateEditor.EVENT_EMPTY,arguments)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]}),this._showHint()},doRedMark:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doHighLight:function(){""===this.editor.getValue()&&BI.isKey(this.options.watermark)||this.text.doHighLight.apply(this.text,arguments)},unHighLight:function(){this.text.unHighLight.apply(this.text,arguments)},focus:function(){this._showInput(),this.editor.focus()},blur:function(){this.editor.blur(),this._showHint()},_showInput:function(){this.editor.visible(),this.text.invisible()},_showHint:function(){this.editor.invisible(),this.text.visible()},isValid:function(){return this.editor.isValid()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isEditing:function(){return this.editor.isEditing()},getLastValidValue:function(){return this.editor.getLastValidValue()},setValue:function(a){this.editor.setValue(a)},getValue:function(){return this.editor.getValue()},getState:function(){return this.editor.getValue().match(/[^\s]+/g)},setState:function(a){return BI.SimpleStateEditor.superclass.setValue.apply(this,arguments),BI.isNumber(a)?void(a===BI.Selection.All?(this.text.setText(BI.i18nText("BI-Already_Selected")),this.text.element.removeClass("state-editor-infinite-text")):a===BI.Selection.Multi?(this.text.setText(BI.i18nText("BI-Already_Selected")),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(BI.i18nText("BI-Basic_Unrestricted")),this.text.element.addClass("state-editor-infinite-text"))):void(BI.isArray(a)&&1!==a.length?BI.isEmpty(a)?(this.text.setText(BI.i18nText("BI-Basic_Unrestricted")),this.text.element.addClass("state-editor-infinite-text")):(this.text.setText(BI.i18nText("BI-Already_Selected")),this.text.element.removeClass("state-editor-infinite-text")):(this.text.setText(a),this.text.setTitle(a),this.text.element.removeClass("state-editor-infinite-text")))}}),BI.SimpleStateEditor.EVENT_CHANGE="EVENT_CHANGE",BI.SimpleStateEditor.EVENT_FOCUS="EVENT_FOCUS",BI.SimpleStateEditor.EVENT_BLUR="EVENT_BLUR",BI.SimpleStateEditor.EVENT_CLICK="EVENT_CLICK",BI.SimpleStateEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.SimpleStateEditor.EVENT_CLICK_LABEL="EVENT_CLICK_LABEL",BI.SimpleStateEditor.EVENT_START="EVENT_START",BI.SimpleStateEditor.EVENT_PAUSE="EVENT_PAUSE",BI.SimpleStateEditor.EVENT_STOP="EVENT_STOP",BI.SimpleStateEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.SimpleStateEditor.EVENT_VALID="EVENT_VALID",BI.SimpleStateEditor.EVENT_ERROR="EVENT_ERROR",BI.SimpleStateEditor.EVENT_ENTER="EVENT_ENTER",BI.SimpleStateEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.SimpleStateEditor.EVENT_SPACE="EVENT_SPACE",BI.SimpleStateEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.simple_state_editor",BI.SimpleStateEditor),BI.TextEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.TextEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-text-editor bi-border",hgap:4,vgap:2,lgap:0,rgap:0,tgap:0,bgap:0,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!1,watermark:"",errorText:"",height:30})},_init:function(){BI.TextEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNumber(b.height)&&this.element.css({height:b.height-2}),BI.isNumber(b.width)&&this.element.css({width:b.width-2}),this.editor=BI.createWidget({type:"bi.editor",height:b.height-2,hgap:b.hgap,vgap:b.vgap,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.Editor.EVENT_FOCUS,function(){a.fireEvent(BI.TextEditor.EVENT_FOCUS)}),this.editor.on(BI.Editor.EVENT_BLUR,function(){a.fireEvent(BI.TextEditor.EVENT_BLUR)}),this.editor.on(BI.Editor.EVENT_CLICK,function(){a.fireEvent(BI.TextEditor.EVENT_CLICK)}),this.editor.on(BI.Editor.EVENT_CHANGE,function(){a.fireEvent(BI.TextEditor.EVENT_CHANGE)}),this.editor.on(BI.Editor.EVENT_KEY_DOWN,function(b){a.fireEvent(BI.TextEditor.EVENT_KEY_DOWN)}),this.editor.on(BI.Editor.EVENT_SPACE,function(b){a.fireEvent(BI.TextEditor.EVENT_SPACE)}),this.editor.on(BI.Editor.EVENT_BACKSPACE,function(b){a.fireEvent(BI.TextEditor.EVENT_BACKSPACE)}),this.editor.on(BI.Editor.EVENT_VALID,function(){a.fireEvent(BI.TextEditor.EVENT_VALID)}),this.editor.on(BI.Editor.EVENT_CONFIRM,function(){a.fireEvent(BI.TextEditor.EVENT_CONFIRM)}),this.editor.on(BI.Editor.EVENT_REMOVE,function(b){a.fireEvent(BI.TextEditor.EVENT_REMOVE)}),this.editor.on(BI.Editor.EVENT_START,function(){a.fireEvent(BI.TextEditor.EVENT_START)}),this.editor.on(BI.Editor.EVENT_PAUSE,function(){a.fireEvent(BI.TextEditor.EVENT_PAUSE)}),this.editor.on(BI.Editor.EVENT_STOP,function(){a.fireEvent(BI.TextEditor.EVENT_STOP)}),this.editor.on(BI.Editor.EVENT_ERROR,function(){a.fireEvent(BI.TextEditor.EVENT_ERROR,arguments)}),this.editor.on(BI.Editor.EVENT_ENTER,function(){a.fireEvent(BI.TextEditor.EVENT_ENTER)}),this.editor.on(BI.Editor.EVENT_RESTRICT,function(){a.fireEvent(BI.TextEditor.EVENT_RESTRICT)}),this.editor.on(BI.Editor.EVENT_EMPTY,function(){a.fireEvent(BI.TextEditor.EVENT_EMPTY)}),BI.createWidget({type:"bi.vertical",scrolly:!1,element:this,items:[this.editor]})},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},setErrorText:function(a){this.editor.setErrorText(a)},getErrorText:function(){return this.editor.getErrorText()},isValid:function(){return this.editor.isValid()},setValue:function(a){this.editor.setValue(a)},getValue:function(){return this.editor.getValue()}}),BI.TextEditor.EVENT_CHANGE="EVENT_CHANGE",BI.TextEditor.EVENT_FOCUS="EVENT_FOCUS",BI.TextEditor.EVENT_BLUR="EVENT_BLUR",BI.TextEditor.EVENT_CLICK="EVENT_CLICK",BI.TextEditor.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.TextEditor.EVENT_SPACE="EVENT_SPACE",BI.TextEditor.EVENT_BACKSPACE="EVENT_BACKSPACE",BI.TextEditor.EVENT_START="EVENT_START",BI.TextEditor.EVENT_PAUSE="EVENT_PAUSE",BI.TextEditor.EVENT_STOP="EVENT_STOP",BI.TextEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.TextEditor.EVENT_VALID="EVENT_VALID",BI.TextEditor.EVENT_ERROR="EVENT_ERROR",BI.TextEditor.EVENT_ENTER="EVENT_ENTER",BI.TextEditor.EVENT_RESTRICT="EVENT_RESTRICT",BI.TextEditor.EVENT_REMOVE="EVENT_REMOVE",BI.TextEditor.EVENT_EMPTY="EVENT_EMPTY",BI.shortcut("bi.text_editor",BI.TextEditor),BI.SmallTextEditor=BI.inherit(BI.TextEditor,{_defaultConfig:function(){var a=BI.SmallTextEditor.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-small-text-editor",height:25})},_init:function(){BI.SmallTextEditor.superclass._init.apply(this,arguments)}}),BI.shortcut("bi.small_text_editor",BI.SmallTextEditor),BI.BarFloatSection=BI.inherit(BI.FloatSection,{_defaultConfig:function(){return BI.extend(BI.BarFloatSection.superclass._defaultConfig.apply(this,arguments),{btns:[BI.i18nText(BI.i18nText("BI-Basic_Sure")),BI.i18nText("BI-Basic_Cancel")]})},_init:function(){BI.BarFloatSection.superclass._init.apply(this,arguments);var a=this,b=["_init","_defaultConfig","_vessel","_render","getName","listenEnd","local","refresh","load","change"];b=BI.makeObject(b,!0),BI.each(this.constructor.caller.caller.caller.caller.prototype,function(c){if(!b[c]){var d=a[c];BI.isFunction(d)&&(a[c]=BI.bind(function(){return this.model._start===!0?void this._F.push({f:d,arg:arguments}):d.apply(this,arguments)},a))}})},rebuildSouth:function(a){var b=this;this.options;this.sure=BI.createWidget({type:"bi.button",text:this.options.btns[0],height:30,value:0,handler:function(a){b.end(),b.close(a)}}),this.cancel=BI.createWidget({type:"bi.button",text:this.options.btns[1],height:30,value:1,level:"ignore",handler:function(a){b.close(a)}}),BI.createWidget({type:"bi.right_vertical_adapt",element:a,hgap:5,items:[this.cancel,this.sure]})}}),BI.BarPopoverSection=BI.inherit(BI.PopoverSection,{_defaultConfig:function(){return BI.extend(BI.BarPopoverSection.superclass._defaultConfig.apply(this,arguments),{btns:[BI.i18nText(BI.i18nText("BI-Basic_Sure")),BI.i18nText(BI.i18nText("BI-Basic_Cancel"))]})},_init:function(){BI.BarPopoverSection.superclass._init.apply(this,arguments)},rebuildSouth:function(a){var b=this,c=this.options;this.sure=BI.createWidget({type:"bi.button",text:this.options.btns[0],warningTitle:c.warningTitle,height:30,value:0,handler:function(a){b.end(),b.close(a)}}),this.cancel=BI.createWidget({type:"bi.button",text:this.options.btns[1],height:30,value:1,level:"ignore",handler:function(a){b.close(a)}}),BI.createWidget({type:"bi.right_vertical_adapt",element:a,hgap:5,items:[this.cancel,this.sure]})},setConfirmButtonEnable:function(a){this.sure.setEnable(!!a)}}),BI.MultiPopupView=BI.inherit(BI.PopupView,{_defaultConfig:function(){var a=BI.MultiPopupView.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-multi-list-view",buttons:[BI.i18nText("BI-Basic_Sure")]})},_init:function(){BI.MultiPopupView.superclass._init.apply(this,arguments)},_createToolBar:function(){var a=this.options,b=this;if(0!==a.buttons.length){var c=[];return BI.each(a.buttons,function(a,b){c.push({text:b,value:a})}),this.buttongroup=BI.createWidget({type:"bi.button_group",cls:"list-view-toolbar bi-high-light bi-border-top",height:30,items:BI.createItems(c,{type:"bi.text_button",once:!1,shadow:!0,isShadowShowingOnSelected:!0}),layouts:[{type:"bi.center",hgap:0,vgap:0}]}),this.buttongroup.on(BI.ButtonGroup.EVENT_CHANGE,function(a,c){b.fireEvent(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,a,c)}),this.buttongroup}}}),BI.MultiPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON="EVENT_CLICK_TOOLBAR_BUTTON",BI.shortcut("bi.multi_popup_view",BI.MultiPopupView),BI.PopupPanel=BI.inherit(BI.MultiPopupView,{_defaultConfig:function(){var a=BI.PopupPanel.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-popup-panel",title:""})},_init:function(){BI.PopupPanel.superclass._init.apply(this,arguments)},_createTool:function(){var a=this,b=this.options,c=BI.createWidget({type:"bi.icon_button",cls:"close-h-font",width:25,height:25});return c.on(BI.IconButton.EVENT_CHANGE,function(){a.setVisible(!1),a.fireEvent(BI.PopupPanel.EVENT_CLOSE)}),BI.createWidget({type:"bi.htape",cls:"popup-panel-title bi-background bi-border",height:25,items:[{el:{type:"bi.label",textAlign:"left",text:b.title,height:25,lgap:10}},{el:c,width:25}]})}}),BI.PopupPanel.EVENT_CHANGE="EVENT_CHANGE",BI.PopupPanel.EVENT_CLOSE="EVENT_CLOSE",BI.PopupPanel.EVENT_CLICK_TOOLBAR_BUTTON="EVENT_CLICK_TOOLBAR_BUTTON",BI.shortcut("bi.popup_panel",BI.PopupPanel),BI.ListPane=BI.inherit(BI.Pane,{_defaultConfig:function(){var a=BI.ListPane.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-list-pane",logic:{dynamic:!0},lgap:0,rgap:0,tgap:0,bgap:0,vgap:0,hgap:0,items:[],itemsCreator:BI.emptyFn,hasNext:BI.emptyFn,onLoaded:BI.emptyFn,el:{type:"bi.button_group"}})},_init:function(){BI.ListPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.button_group=BI.createWidget(b.el,{type:"bi.button_group",chooseType:BI.ButtonGroup.CHOOSE_TYPE_SINGLE,behaviors:{},items:b.items,itemsCreator:function(c,d){1===c.times&&(a.empty(),BI.nextTick(function(){a.loading()})),b.itemsCreator(c,function(){d.apply(a,arguments),1===c.times&&BI.nextTick(function(){a.loaded()})})},hasNext:b.hasNext,layouts:[{type:"bi.vertical"}]}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(b,c,d){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.ListPane.EVENT_CHANGE,c,d)}),this.check(),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Top),BI.extend({scrolly:!0,lgap:b.lgap,rgap:b.rgap,tgap:b.tgap,bgap:b.bgap,vgap:b.vgap,hgap:b.hgap},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Top,this.button_group)}))))},hasPrev:function(){return this.button_group.hasPrev&&this.button_group.hasPrev()},hasNext:function(){return this.button_group.hasNext&&this.button_group.hasNext()},prependItems:function(a){this.options.items=a.concat(this.options.items),this.button_group.prependItems.apply(this.button_group,arguments),this.check()},addItems:function(a){this.options.items=this.options.items.concat(a),this.button_group.addItems.apply(this.button_group,arguments),this.check()},removeItemAt:function(a){a=a||[],BI.removeAt(this.options.items,a),this.button_group.removeItemAt.apply(this.button_group,arguments),this.check()},populate:function(a){var b=this;this.options;return 0===arguments.length&&BI.isFunction(this.button_group.attr("itemsCreator"))?void this.button_group.attr("itemsCreator").apply(this,[{times:1},function(){if(0===arguments.length)throw new Error("参数不能为空");b.populate.apply(b,arguments)}]):(BI.ListPane.superclass.populate.apply(this,arguments),void this.button_group.populate.apply(this.button_group,arguments))},empty:function(){this.button_group.empty()},setNotSelectedValue:function(){this.button_group.setNotSelectedValue.apply(this.button_group,arguments)},getNotSelectedValue:function(){return this.button_group.getNotSelectedValue()},setValue:function(){this.button_group.setValue.apply(this.button_group,arguments)},getValue:function(){return this.button_group.getValue.apply(this.button_group,arguments)},getAllButtons:function(){return this.button_group.getAllButtons()},getAllLeaves:function(){return this.button_group.getAllLeaves()},getSelectedButtons:function(){return this.button_group.getSelectedButtons()},getNotSelectedButtons:function(){return this.button_group.getNotSelectedButtons()},getIndexByValue:function(a){return this.button_group.getIndexByValue(a)},getNodeById:function(a){return this.button_group.getNodeById(a)},getNodeByValue:function(a){return this.button_group.getNodeByValue(a)}}),BI.ListPane.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.list_pane",BI.ListPane),BI.Panel=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Panel.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-panel bi-border",title:"",titleButtons:[],el:{},logic:{dynamic:!1}})},_init:function(){BI.Panel.superclass._init.apply(this,arguments);var a=this.options;BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("vertical",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("top",this._createTitle(),this.options.el)}))))},_createTitle:function(){var a=this,b=this.options;return this.text=BI.createWidget({type:"bi.label",cls:"panel-title-text",text:b.title,height:30}),this.button_group=BI.createWidget({type:"bi.button_group",items:b.titleButtons,layouts:[{type:"bi.center_adapt",lgap:10}]}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.ButtonGroup.EVENT_CHANGE,function(b,c){a.fireEvent(BI.Panel.EVENT_CHANGE,b,c)}),{el:{type:"bi.left_right_vertical_adapt",cls:"panel-title bi-tips bi-border-bottom bi-background",height:30,items:{left:[this.text],right:[this.button_group]},lhgap:10,rhgap:10},height:30}},setTitle:function(a){this.text.setValue(a)}}),BI.Panel.EVENT_CHANGE="Panel.EVENT_CHANGE",BI.shortcut("bi.panel",BI.Panel),BI.SelectList=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-list",direction:BI.Direction.Top,logic:{dynamic:!0},items:[],itemsCreator:BI.emptyFn,hasNext:BI.emptyFn,onLoaded:BI.emptyFn,toolbar:{type:"bi.multi_select_bar"},el:{type:"bi.list_pane"}})},_init:function(){BI.SelectList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.toolbar=BI.createWidget(b.toolbar),this.toolbar.on(BI.Controller.EVENT_CHANGE,function(b,c,d){var e=this.isSelected();b===BI.Events.CLICK&&(a.setAllSelected(e),a.fireEvent(BI.SelectList.EVENT_CHANGE,c,d)),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.list=BI.createWidget(b.el,{type:"bi.list_pane",items:b.items,itemsCreator:function(c,d){1===c.times&&a.toolbar.setVisible(!1),b.itemsCreator(c,function(b){d.apply(a,arguments),1===c.times&&(a.toolbar.setVisible(b&&b.length>0),a.toolbar.setEnable(b&&b.length>0)),a._checkAllSelected()})},onLoaded:b.onLoaded,hasNext:b.hasNext}),this.list.on(BI.Controller.EVENT_CHANGE,function(b,c,d){b===BI.Events.CLICK&&(a._checkAllSelected(),a.fireEvent(BI.SelectList.EVENT_CHANGE,c,d)),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(b.direction),BI.extend({scrolly:!0},b.logic,{items:BI.LogicFactory.createLogicItemsByDirection(b.direction,this.toolbar,this.list)})))),b.items.length<=0&&(this.toolbar.setVisible(!1),this.toolbar.setEnable(!1))},_checkAllSelected:function(){var a=this.list.getValue().length,b=this.getAllLeaves().length-a,c=this.list.hasNext(),d=this.toolbar.isSelected(),e=a>0&&(b>0||!d&&c);e=e||b>0&&c&&d,this.toolbar.setHalfSelected(e),!e&&this.toolbar.setSelected(a>0&&b<=0&&(!c||d))},setAllSelected:function(a){BI.each(this.getAllButtons(),function(b,c){(c.setSelected||c.setAllSelected).apply(c,[a])}),this.toolbar.setSelected(a),this.toolbar.setHalfSelected(!1)},setToolBarVisible:function(a){this.toolbar.setVisible(a)},isAllSelected:function(){return this.toolbar.isSelected()},hasPrev:function(){return this.list.hasPrev()},hasNext:function(){return this.list.hasNext()},prependItems:function(a){this.list.prependItems.apply(this.list,arguments)},addItems:function(a){this.list.addItems.apply(this.list,arguments)},setValue:function(a){var b=a.type===BI.ButtonGroup.CHOOSE_TYPE_ALL;this.setAllSelected(b),this.list[b?"setNotSelectedValue":"setValue"](a.value),this._checkAllSelected()},getValue:function(){return this.isAllSelected()===!1?{type:BI.ButtonGroup.CHOOSE_TYPE_MULTI,value:this.list.getValue(),assist:this.list.getNotSelectedValue()}:{type:BI.ButtonGroup.CHOOSE_TYPE_ALL,value:this.list.getNotSelectedValue(),assist:this.list.getValue()}},empty:function(){this.list.empty()},populate:function(a){this.toolbar.setVisible(!BI.isEmptyArray(a)),this.toolbar.setEnable(!BI.isEmptyArray(a)),this.list.populate.apply(this.list,arguments),this._checkAllSelected()},_setEnable:function(a){BI.SelectList.superclass._setEnable.apply(this,arguments),this.toolbar.setEnable(a)},resetHeight:function(a){var b=(this.toolbar.element.outerHeight()||25)*(this.toolbar.isVisible()?1:0);this.list.resetHeight?this.list.resetHeight(a-b):this.list.element.css({"max-height":a-b+"px"})},setNotSelectedValue:function(){this.list.setNotSelectedValue.apply(this.list,arguments),this._checkAllSelected()},getNotSelectedValue:function(){return this.list.getNotSelectedValue()},getAllButtons:function(){return this.list.getAllButtons()},getAllLeaves:function(){return this.list.getAllLeaves()},getSelectedButtons:function(){return this.list.getSelectedButtons()},getNotSelectedButtons:function(){return this.list.getNotSelectedButtons()},getIndexByValue:function(a){return this.list.getIndexByValue(a)},getNodeById:function(a){return this.list.getNodeById(a)},getNodeByValue:function(a){return this.list.getNodeByValue(a)}}),BI.SelectList.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.select_list",BI.SelectList),BI.LazyLoader=BI.inherit(BI.Widget,{_const:{PAGE:100},_defaultConfig:function(){return BI.extend(BI.LazyLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-lazy-loader",el:{}})},_init:function(){var a=this,b=this.options;BI.LazyLoader.superclass._init.apply(this,arguments);var c=b.items.length;this.loader=BI.createWidget({type:"bi.loader",element:this,el:b.el,itemsCreator:function(b,c){c(a._getNextItems(b))},hasNext:function(a){return a.count=1)},setValue:function(a){this.pager.setValue(a)},setVPage:function(a){this.pager.setValue(a)},setCount:function(a){this.rowCount.setText(a),this.rowCount.setTitle(a)},getCurrentPage:function(){return this.pager.getCurrentPage()},hasPrev:function(){return this.pager.hasPrev()},hasNext:function(){return this.pager.hasNext()},setPagerVisible:function(a){this.editor.setVisible(a),this.allPages.setVisible(a),this.pager.setVisible(a)},populate:function(){this.pager.populate()}}),BI.AllCountPager.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.all_count_pager",BI.AllCountPager),BI.DirectionPager=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DirectionPager.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-direction-pager",height:30,horizontal:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn},vertical:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn}})},_init:function(){BI.DirectionPager.superclass._init.apply(this,arguments);var a=this.options;a.vertical,a.horizontal;this._createVPager(),this._createHPager(),this.layout=BI.createWidget({type:"bi.absolute",scrollable:!1,element:this,items:[{el:this.vpager,top:5,right:74},{el:this.vlabel,top:5,right:111},{el:this.hpager,top:5,right:-9},{el:this.hlabel,top:5,right:28}]})},_createVPager:function(){var a=this,b=this.options,c=b.vertical;this.vlabel=BI.createWidget({type:"bi.label",width:24,height:20,value:c.curr,title:c.curr}),this.vpager=BI.createWidget({type:"bi.pager",width:76,layouts:[{type:"bi.horizontal",scrollx:!1,rgap:24,vgap:1}],dynamicShow:!1,pages:c.pages,curr:c.curr,groups:0,first:!1,last:!1,prev:{type:"bi.icon_button",value:"prev",title:BI.i18nText("BI-Up_Page"),warningTitle:BI.i18nText("BI-Current_Is_First_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-prev column-pre-page-h-font"},next:{type:"bi.icon_button",value:"next",title:BI.i18nText("BI-Down_Page"),warningTitle:BI.i18nText("BI-Current_Is_Last_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-next column-next-page-h-font"},hasPrev:c.hasPrev,hasNext:c.hasNext,firstPage:c.firstPage,lastPage:c.lastPage}),this.vpager.on(BI.Pager.EVENT_CHANGE,function(){a.fireEvent(BI.DirectionPager.EVENT_CHANGE)}),this.vpager.on(BI.Pager.EVENT_AFTER_POPULATE,function(){a.vlabel.setValue(this.getCurrentPage()),a.vlabel.setTitle(this.getCurrentPage())})},_createHPager:function(){var a=this,b=this.options,c=b.horizontal;this.hlabel=BI.createWidget({type:"bi.label",width:24,height:20,value:c.curr,title:c.curr}),this.hpager=BI.createWidget({type:"bi.pager",width:76,layouts:[{type:"bi.horizontal",scrollx:!1,rgap:24,vgap:1}],dynamicShow:!1,pages:c.pages,curr:c.curr,groups:0,first:!1,last:!1,prev:{type:"bi.icon_button",value:"prev",title:BI.i18nText("BI-Left_Page"),warningTitle:BI.i18nText("BI-Current_Is_First_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-prev row-pre-page-h-font"},next:{type:"bi.icon_button",value:"next",title:BI.i18nText("BI-Right_Page"),warningTitle:BI.i18nText("BI-Current_Is_Last_Page"),height:20,iconWidth:16,iconHeight:16,cls:"direction-pager-next row-next-page-h-font"},hasPrev:c.hasPrev,hasNext:c.hasNext,firstPage:c.firstPage,lastPage:c.lastPage}),this.hpager.on(BI.Pager.EVENT_CHANGE,function(){a.fireEvent(BI.DirectionPager.EVENT_CHANGE)}),this.hpager.on(BI.Pager.EVENT_AFTER_POPULATE,function(){a.hlabel.setValue(this.getCurrentPage()),a.hlabel.setTitle(this.getCurrentPage())})},getVPage:function(){return this.vpager.getCurrentPage()},getHPage:function(){return this.hpager.getCurrentPage()},setVPage:function(a){this.vpager.setValue(a),this.vlabel.setValue(a),this.vlabel.setTitle(a)},setHPage:function(a){this.hpager.setValue(a),this.hlabel.setValue(a),this.hlabel.setTitle(a)},hasVNext:function(){return this.vpager.hasNext()},hasHNext:function(){return this.hpager.hasNext()},hasVPrev:function(){return this.vpager.hasPrev()},hasHPrev:function(){return this.hpager.hasPrev()},setHPagerVisible:function(a){this.hpager.setVisible(a),this.hlabel.setVisible(a)},setVPagerVisible:function(a){this.vpager.setVisible(a),this.vlabel.setVisible(a)},populate:function(){this.vpager.populate(),this.hpager.populate();var a=!1,b=!1;this.hasHNext()||this.hasHPrev()?(this.setHPagerVisible(!0),b=!0):this.setHPagerVisible(!1),this.hasVNext()||this.hasVPrev()?(this.setVPagerVisible(!0),a=!0):this.setVPagerVisible(!1),this.setVisible(b||a);var c=[74,111,-9,28],d=this.layout.attr("items");a===!0&&b===!0?(d[0].right=c[0],d[1].right=c[1],d[2].right=c[2],d[3].right=c[3]):a===!0?(d[0].right=c[2],d[1].right=c[3]):b===!0&&(d[2].right=c[2],d[3].right=c[3]),this.layout.attr("items",d),this.layout.resize()},clear:function(){this.vpager.attr("curr",1),this.hpager.attr("curr",1)}}),BI.DirectionPager.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.direction_pager",BI.DirectionPager),BI.DetailPager=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DetailPager.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-detail-pager",behaviors:{},layouts:[{type:"bi.horizontal",hgap:10,vgap:0}],dynamicShow:!0,dynamicShowFirstLast:!1,dynamicShowPrevNext:!1,pages:!1,curr:function(){return 1},groups:0,jump:BI.emptyFn,first:!1,last:!1,prev:"上一页",next:"下一页",firstPage:1,lastPage:function(){return 1},hasPrev:BI.emptyFn,hasNext:BI.emptyFn})},_init:function(){BI.DetailPager.superclass._init.apply(this,arguments);var a=this;this.currPage=BI.result(this.options,"curr"),this._lock=!1,this._debouce=BI.debounce(function(){a._lock=!1},300),this._populate()},_populate:function(){var a=this,b=this.options,c=[],d={};this.empty();var e=BI.result(b,"pages"),f=BI.result(this,"currPage"),g=BI.result(b,"groups"),h=BI.result(b,"first"),i=BI.result(b,"last"),j=BI.result(b,"prev"),k=BI.result(b,"next");e===!1?(g=0,h=!1,i=!1):g>e&&(g=e),d.index=Math.ceil((f+(g>1&&g!==e?1:0))/(0===g?1:g)),(!b.dynamicShow&&!b.dynamicShowPrevNext||f>1)&&j!==!1&&(BI.isKey(j)?c.push({text:j,value:"prev",disabled:e===!1?b.hasPrev(f)===!1:!(f>1&&j!==!1)}):c.push(BI.extend({disabled:e===!1?b.hasPrev(f)===!1:!(f>1&&j!==!1)},j))),(!b.dynamicShow&&!b.dynamicShowFirstLast||d.index>1&&0!==g)&&h&&(c.push({text:h,value:"first",disabled:!(d.index>1&&0!==g)}),d.index>1&&0!==g&&c.push({type:"bi.label",cls:"page-ellipsis",text:"…"})),d.poor=Math.floor((g-1)/2),d.start=d.index>1?f-d.poor:1,d.end=d.index>1?function(){var a=f+(g-d.poor-1);return a>e?e:a}():g,d.end-d.start1&&0!==g&&e>g&&d.endg&&d.endg&&d.endg&&d.end1},hasNext:function(a){a||(a=1);var b=this.options,c=this.options.pages;return c===!1?b.hasNext(a):ac?c:(d=BI.result(b,"firstPage"),ab.pages?b.pages:a,this.currPage=a;this._populate()},getValue:function(){var a=this.button_group.getValue()[0];switch(a){case"prev":return-1;case"next":return 1;case"first":return BI.MIN;case"last":return BI.MAX;default:return a}},attr:function(a,b){BI.DetailPager.superclass.attr.apply(this,arguments),"curr"===a&&(this.currPage=BI.result(this.options,"curr"))},populate:function(){this._populate()}}),BI.DetailPager.EVENT_CHANGE="EVENT_CHANGE",BI.DetailPager.EVENT_AFTER_POPULATE="EVENT_AFTER_POPULATE",BI.shortcut("bi.detail_pager",BI.DetailPager),BI.SegmentButton=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.SegmentButton.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-segment-button bi-list-item-active",shadow:!0,readonly:!0,hgap:5})},_init:function(){BI.SegmentButton.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,height:a.height-2,whiteSpace:a.whiteSpace,text:a.text,value:a.value,hgap:a.hgap})},setSelected:function(){BI.SegmentButton.superclass.setSelected.apply(this,arguments)},setText:function(a){BI.SegmentButton.superclass.setText.apply(this,arguments),this.text.setText(a)},destroy:function(){BI.SegmentButton.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.segment_button",BI.SegmentButton),BI.Segment=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Segment.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-segment",items:[],height:30})},_init:function(){BI.Segment.superclass._init.apply(this,arguments);var a=this,b=this.options;this.buttonGroup=BI.createWidget({element:this,type:"bi.button_group",items:BI.createItems(b.items,{type:"bi.segment_button",height:b.height-2,whiteSpace:b.whiteSpace}),layout:[{type:"bi.center"}]}),this.buttonGroup.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.buttonGroup.on(BI.ButtonGroup.EVENT_CHANGE,function(b,c){a.fireEvent(BI.Segment.EVENT_CHANGE,b,c)})},setValue:function(a){this.buttonGroup.setValue(a)},setEnabledValue:function(a){this.buttonGroup.setEnabledValue(a)},getValue:function(){return this.buttonGroup.getValue()}}),BI.Segment.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.segment",BI.Segment),BI.AdaptiveTable=BI.inherit(BI.Widget,{_const:{perColumnSize:100},_defaultConfig:function(){return BI.extend(BI.AdaptiveTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-adaptive-table",el:{type:"bi.resizable_table"},isNeedResize:!0,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!1,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],header:[],items:[],crossHeader:[],crossItems:[]})},_init:function(){BI.AdaptiveTable.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._digest();this.table=BI.createWidget(b.el,{type:"bi.resizable_table",element:this,width:b.width,height:b.height,isNeedResize:b.isNeedResize,isResizeAdapt:!1,isNeedFreeze:b.isNeedFreeze,freezeCols:c.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:c.columnSize,headerRowSize:b.headerRowSize,rowSize:b.rowSize,regionColumnSize:c.regionColumnSize,header:b.header,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(){a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),a._populate(),a.table.populate(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){b.columnSize=this.getColumnSize(),a._populate(),a.table.populate(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)})},_getFreezeColLength:function(){return this.options.isNeedFreeze===!0?this.options.freezeCols.length:0},_digest:function(){var a=this.options,b=a.columnSize.slice(),c=a.regionColumnSize.slice(),d=a.freezeCols.slice(),e=a.regionColumnSize[0],f=this._getFreezeColLength();(!e||e>a.width-10||e<10)&&(e=(f>a.columnSize.length/2?2/3:1/3)*a.width),0===f&&(e=0),d.length>=b.length&&(d=[]),BI.isNumber(b[0])||(b=a.minColumnSize.slice());var g=0,h=0;return BI.each(b,function(a,b){a0&&(b[f-1]=BI.clamp(e-(g-b[f-1]),a.minColumnSize[f-1]||10,a.maxColumnSize[f-1]||Number.MAX_VALUE)),b.length>0&&(b[b.length-1]=BI.clamp(a.width-BI.GridTableScrollbar.SIZE-e-(h-g-b[b.length-1]),a.minColumnSize[b.length-1]||10,a.maxColumnSize[b.length-1]||Number.MAX_VALUE)),c[0]=e,{freezeCols:d,columnSize:b,regionColumnSize:c}},_populate:function(){var a=this.options,b=this._digest();a.regionColumnSize=b.regionColumnSize,a.columnSize=b.columnSize,this.table.setColumnSize(b.columnSize),this.table.setRegionColumnSize(b.regionColumnSize),this.table.attr("freezeCols",b.freezeCols)},setWidth:function(a){BI.AdaptiveTable.superclass.setWidth.apply(this,arguments),this.table.setWidth(a)},setHeight:function(a){BI.AdaptiveTable.superclass.setHeight.apply(this,arguments),this.table.setHeight(a)},setColumnSize:function(a){this.options.columnSize=a},getColumnSize:function(){return this.table.getColumnSize()},setRegionColumnSize:function(a){this.options.regionColumnSize=a},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},attr:function(a,b){var c=BI.AdaptiveTable.superclass.attr.apply(this,arguments);return"freezeCols"===a?c:this.table.attr.apply(this.table,arguments)},restore:function(){this.table.restore()},populate:function(a){this.options;this._populate(),this.table.populate.apply(this.table,arguments)},destroy:function(){this.table.destroy(),BI.AdaptiveTable.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.adaptive_table",BI.AdaptiveTable),BI.DynamicSummaryLayerTreeTable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DynamicSummaryLayerTreeTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-dynamic-summary-layer-tree-table",el:{type:"bi.resizable_table"},isNeedResize:!0,isResizeAdapt:!0,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!0,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,footerRowSize:25,rowSize:25,regionColumnSize:[],rowHeaderCreator:null,headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],footer:!1,items:[],crossHeader:[],crossItems:[]})},_getVDeep:function(){return this.options.crossHeader.length},_getHDeep:function(){var a=this.options;return Math.max(a.mergeCols.length,a.freezeCols.length,BI.TableTree.maxDeep(a.items)-1)},_createHeader:function(a){var b=this.options,c=b.header||[],d=b.crossHeader||[],e=BI.TableTree.formatCrossItems(b.crossItems,a,b.headerCellStyleGetter),f=[];if(BI.each(e,function(a,b){var c=[d[a]];f.push(c.concat(b||[]))}),c&&c.length>0){var g=this._formatColumns(c),h=this._getHDeep();h<=0?g.unshift(b.rowHeaderCreator||{type:"bi.table_style_cell",text:BI.i18nText("BI-Row_Header"),styleGetter:b.headerCellStyleGetter}):g[0]=b.rowHeaderCreator||{type:"bi.table_style_cell",text:BI.i18nText("BI-Row_Header"),styleGetter:b.headerCellStyleGetter},f.push(g)}return f},_formatItems:function(a,b,c){function d(a,b){a.type||(a.type="bi.layer_tree_table_cell"),a.layer=b;var c=[a];c=c.concat(a.values||[]),c.length>0&&f.push(c),BI.isNotEmptyArray(a.children)&&BI.each(a.children,function(a,c){d(c,b+1)})}var e=this.options,f=[];return BI.each(a,function(a,b){if(BI.each(b.children,function(a,b){d(b,0)}),BI.isArray(b.values)){var c=[{type:"bi.table_style_cell",text:BI.i18nText("BI-Summary_Values"),styleGetter:function(){return e.summaryCellStyleGetter(!0)}}].concat(b.values);f.push(c)}}),BI.DynamicSummaryTreeTable.formatSummaryItems(f,b,e.crossItems,1)},_formatColumns:function(a,b){return BI.isNotEmptyArray(a)?(b=b||this._getHDeep(),a.slice(Math.max(0,b-1))):a},_formatFreezeCols:function(){return this.options.freezeCols.length>0?[0]:[]},_formatColumnSize:function(a,b){if(a.length<=0)return[];var c=[0];return b=b||this._getHDeep(),BI.each(a,function(a,d){return a1)for(var c=0;c1)&&BI.isNotEmptyArray(g.values)){for(var i={text:BI.i18nText("BI-Summary_Values"),type:"bi.table_style_cell",styleGetter:function(){return d(a===-1)}},j=h.length;j0)if(c)for(var k=0,l=g.values.length;k0&&f.push(h);h.length>0&&f.push(h)}}var f=[];return BI.each(a,function(a,b){e(-1,b)}),BI.each(f,function(a,c){for(var d=BI.last(c),e=c.length;e1?g+=a.values.length:g++}var f=[],g=0;if(BI.each(c,function(a,b){e(b)}),f.length>0){var h=[],i=[];BI.each(b,function(a,b){var c=b.slice();BI.removeAt(c,f),h.push(c)}),BI.each(a,function(a,b){var c=b.slice();BI.removeAt(c,f),i.push(c)}),b=h,a=i}return{items:a,header:b,deletedCols:f}}}),BI.shortcut("bi.dynamic_summary_tree_table",BI.DynamicSummaryTreeTable),BI.LayerTreeTableCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.LayerTreeTableCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-layer-tree-table-cell",layer:0,text:""})},_init:function(){BI.LayerTreeTableCell.superclass._init.apply(this,arguments);var a=this.options;BI.createWidget({type:"bi.label",element:this.element,textAlign:"left",whiteSpace:"nowrap",height:a.height,text:a.text,value:a.value,lgap:5+30*a.layer,rgap:5})}}),BI.shortcut("bi.layer_tree_table_cell",BI.LayerTreeTableCell),BI.LayerTreeTable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.LayerTreeTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-layer-tree-table",el:{type:"bi.resizable_table"},isNeedResize:!1,isResizeAdapt:!0,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!0,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],rowHeaderCreator:null,headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[]})},_getVDeep:function(){return this.options.crossHeader.length},_getHDeep:function(){var a=this.options;return Math.max(a.mergeCols.length,a.freezeCols.length,BI.TableTree.maxDeep(a.items)-1)},_createHeader:function(a){var b=this.options,c=b.header||[],d=b.crossHeader||[],e=BI.TableTree.formatCrossItems(b.crossItems,a,b.headerCellStyleGetter),f=[];if(BI.each(e,function(a,b){var c=[d[a]];f.push(c.concat(b||[]))}),c&&c.length>0){var g=this._formatColumns(c),h=this._getHDeep();h<=0?g.unshift(b.rowHeaderCreator||{type:"bi.table_style_cell",text:BI.i18nText("BI-Row_Header"),styleGetter:b.headerCellStyleGetter}):g[0]=b.rowHeaderCreator||{type:"bi.table_style_cell",text:BI.i18nText("BI-Row_Header"),styleGetter:b.headerCellStyleGetter},f.push(g)}return f},_formatItems:function(a){function b(a,c){a.type||(a.type="bi.layer_tree_table_cell"),a.layer=c;var e=[a];e=e.concat(a.values||[]),e.length>0&&d.push(e),BI.isNotEmptyArray(a.children)&&BI.each(a.children,function(a,d){b(d,c+1)})}var c=this.options,d=[];return BI.each(a,function(a,e){if(BI.each(e.children,function(a,c){b(c,0)}),BI.isArray(e.values)){var f=[{type:"bi.table_style_cell",text:BI.i18nText("BI-Summary_Values"),styleGetter:function(){return c.summaryCellStyleGetter(!0)}}].concat(e.values);d.push(f)}}),d},_formatColumns:function(a,b){return BI.isNotEmptyArray(a)?(b=b||this._getHDeep(),a.slice(Math.max(0,b-1))):a},_formatFreezeCols:function(){return this.options.freezeCols.length>0?[0]:[]},_formatColumnSize:function(a,b){if(a.length<=0)return[];var c=[0];return b=b||this._getHDeep(),BI.each(a,function(a,d){return a0&&(c=BI.makeArray(b,a[0]/b)),c.concat(a.slice(1))},setRegionColumnSize:function(a){this.options.regionColumnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},attr:function(a,b){var c=this;if(BI.isObject(a))return void BI.each(a,function(a,b){c.attr(a,b)});switch(BI.LayerTreeTable.superclass.attr.apply(this,arguments),a){case"columnSize":case"minColumnSize":case"maxColumnSize":case"freezeCols":case"mergeCols":return}this.table.attr.apply(this.table,[a,b])},restore:function(){this.table.restore()},populate:function(a,b,c,d){var e=this.options;e.items=a||[],b&&(e.header=b),c&&(e.crossItems=c),d&&(e.crossHeader=d);var f=this._digest();this.table.setColumnSize(f.columnSize),this.table.attr("freezeCols",f.freezeCols),this.table.attr("minColumnSize",f.minColumnSize),this.table.attr("maxColumnSize",f.maxColumnSize),this.table.populate(f.items,f.header)},destroy:function(){this.table.destroy(),BI.LayerTreeTable.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.layer_tree_table",BI.LayerTreeTable),BI.TableStyleCell=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.TableStyleCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-table-style-cell",styleGetter:BI.emptyFn})},_init:function(){BI.TableStyleCell.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,textAlign:"left",forceCenter:!0,hgap:5,text:a.text}),this._digestStyle()},_digestStyle:function(){var a=this.options,b=a.styleGetter();b&&this.text.element.css(b)},setText:function(a){this.text.setText(a)},populate:function(){this._digestStyle()}}),BI.shortcut("bi.table_style_cell",BI.TableStyleCell),BI.TableTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.TableTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-table-tree",el:{type:"bi.resizable_table"},isNeedResize:!0,isResizeAdapt:!0,freezeCols:[],isNeedMerge:!0,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[]})},_getVDeep:function(){return this.options.crossHeader.length},_getHDeep:function(){var a=this.options;return Math.max(a.mergeCols.length,a.freezeCols.length,BI.TableTree.maxDeep(a.items)-1)},_init:function(){BI.TableTree.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._digest();this.table=BI.createWidget(b.el,{type:"bi.resizable_table",element:this,width:b.width,height:b.height,isNeedResize:b.isNeedResize,isResizeAdapt:b.isResizeAdapt,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,minColumnSize:b.minColumnSize,maxColumnSize:b.maxColumnSize,headerRowSize:b.headerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,header:c.header,items:c.items}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(){a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)})},_digest:function(){var a=this.options,b=this._getHDeep(),c=this._getVDeep(),d=BI.TableTree.formatHeader(a.header,a.crossHeader,a.crossItems,b,c,a.headerCellStyleGetter),e=BI.TableTree.formatItems(a.items,b,!1,a.summaryCellStyleGetter);return{header:d,items:e}},setWidth:function(a){BI.TableTree.superclass.setWidth.apply(this,arguments),this.table.setWidth(a)},setHeight:function(a){BI.TableTree.superclass.setHeight.apply(this,arguments),this.table.setHeight(a)},setColumnSize:function(a){this.options.columnSize=a,this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},setRegionColumnSize:function(a){this.options.regionColumnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},attr:function(){BI.TableTree.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments)},restore:function(){this.table.restore()},populate:function(a,b,c,d){var e=this.options;a&&(e.items=a||[]),b&&(e.header=b),c&&(e.crossItems=c),d&&(e.crossHeader=d);var f=this._digest();this.table.populate(f.items,f.header)},destroy:function(){this.table.destroy(),BI.TableTree.superclass.destroy.apply(this,arguments)}}),BI.extend(BI.TableTree,{formatHeader:function(a,b,c,d,e,f){for(var g=BI.TableTree.formatCrossItems(c,e,f),h=[],i=0;i0&&h.push(a),h},formatItems:function(a,b,c,d){function e(a,g){var h;if(BI.isArray(g.children)){if(BI.each(g.children,function(b,c){var d;a!=-1?(d=a.slice(),d.push(g)):d=[],e(d,c)}),a!=-1?(h=a.slice(),h.push(g)):h=[],BI.isNotEmptyArray(g.values)){for(var i={text:BI.i18nText("BI-Summary_Values"),type:"bi.table_style_cell",styleGetter:function(){return d(a===-1)}},j=h.length;j0)if(c)for(var k=0,l=g.values.length;k0&&f.push(h);h.length>0&&f.push(h)}}var f=[];return BI.each(a,function(a,b){e(-1,b)}),BI.each(f,function(a,c){for(var d=BI.last(c),e=c.length;e0}})},_init:function(){BI.MultiSelectBar.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.checkbox",stopPropagation:!0,handler:function(){a.setSelected(a.isSelected())}}),this.half=BI.createWidget({type:"bi.half_icon_button",stopPropagation:!0,handler:function(){a.setSelected(!0)}}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,a.isSelected(),a)}),this.half.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,a.isSelected(),a)}),this.half.on(BI.HalfIconButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectBar.EVENT_CHANGE,a.isSelected(),a)}),this.checkbox.on(BI.Checkbox.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectBar.EVENT_CHANGE,a.isSelected(),a)}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,keyword:b.keyword,value:b.value,py:b.py}),BI.createWidget({type:"bi.htape",element:this,items:[{width:36,el:{type:"bi.center_adapt",items:[this.checkbox,this.half]}},{el:this.text}]}),this.half.invisible()},beforeClick:function(){var a=this.isHalfSelected(),b=this.isSelected();a===!0?this.setSelected(!0):this.setSelected(!b)},setSelected:function(a){this.checkbox.setSelected(a),this.setHalfSelected(!1)},setHalfSelected:function(a){this._half=!!a,a===!0?(this.half.visible(),this.checkbox.invisible()):(this.half.invisible(),this.checkbox.visible())},isHalfSelected:function(){return!!this._half},isSelected:function(){return this.checkbox.isSelected()},setValue:function(a){BI.MultiSelectBar.superclass.setValue.apply(this,arguments);var b=this.options.isAllCheckedBySelectedValue.apply(this,arguments);this.setSelected(b),!b&&this.setHalfSelected(this.options.isHalfCheckedBySelectedValue.apply(this,arguments))}}),BI.MultiSelectBar.EVENT_CHANGE="MultiSelectBar.EVENT_CHANGE",BI.shortcut("bi.multi_select_bar",BI.MultiSelectBar),BI.HandStandBranchExpander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.HandStandBranchExpander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-handstand-branch-expander",direction:BI.Direction.Top,logic:{dynamic:!0},el:{type:"bi.label"},popup:{}})},_init:function(){BI.HandStandBranchExpander.superclass._init.apply(this,arguments);var a=this.options;this._initExpander(),this._initBranchView(),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(a.direction),BI.extend({},a.logic,{items:BI.LogicFactory.createLogicItemsByDirection(a.direction,{type:"bi.center_adapt",items:[this.expander]},this.branchView)}))))},_initExpander:function(){var a=this,b=this.options;this.expander=BI.createWidget(b.el),this.expander.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},_initBranchView:function(){var a=this,b=this.options;this.branchView=BI.createWidget(b.popup,{}),this.branchView.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(a){this.branchView.populate.apply(this.branchView,arguments)},getValue:function(){return this.branchView.getValue()}}),BI.HandStandBranchExpander.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.handstand_branch_expander",BI.HandStandBranchExpander),BI.BranchExpander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.BranchExpander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-branch-expander",direction:BI.Direction.Left,logic:{dynamic:!0},el:{},popup:{}})},_init:function(){BI.BranchExpander.superclass._init.apply(this,arguments);var a=this.options;this._initExpander(),this._initBranchView(),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(a.direction),BI.extend({},a.logic,{items:BI.LogicFactory.createLogicItemsByDirection(a.direction,this.expander,this.branchView)}))))},_initExpander:function(){var a=this,b=this.options;this.expander=BI.createWidget(b.el,{type:"bi.label",width:30,height:"100%"}),this.expander.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},_initBranchView:function(){var a=this,b=this.options;this.branchView=BI.createWidget(b.popup,{}),this.branchView.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(a){this.branchView.populate.apply(this.branchView,arguments)},getValue:function(){return this.branchView.getValue()}}),BI.BranchExpander.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.branch_expander",BI.BranchExpander),BI.HandStandBranchTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.HandStandBranchTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-handstand-branch-tree",expander:{},el:{},items:[]})},_init:function(){BI.HandStandBranchTree.superclass._init.apply(this,arguments);var a=this,b=this.options;this.branchTree=BI.createWidget({type:"bi.custom_tree",element:this,expander:BI.extend({type:"bi.handstand_branch_expander",el:{},popup:{type:"bi.custom_tree"}},b.expander),el:BI.extend({type:"bi.button_tree",chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,layouts:[{type:"bi.horizontal_adapt"}]},b.el),items:this.options.items}),this.branchTree.on(BI.CustomTree.EVENT_CHANGE,function(){a.fireEvent(BI.HandStandBranchTree.EVENT_CHANGE,arguments)}),this.branchTree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(){this.branchTree.populate.apply(this.branchTree,arguments)},getValue:function(){return this.branchTree.getValue()}}),BI.HandStandBranchTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.handstand_branch_tree",BI.HandStandBranchTree),BI.BranchTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.BranchTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-branch-tree",expander:{},el:{},items:[]})},_init:function(){BI.BranchTree.superclass._init.apply(this,arguments);var a=this,b=this.options;this.branchTree=BI.createWidget({type:"bi.custom_tree",element:this,expander:BI.extend({type:"bi.branch_expander",el:{},popup:{type:"bi.custom_tree"}},b.expander),el:BI.extend({type:"bi.button_tree",chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,layouts:[{type:"bi.vertical"}]},b.el),items:this.options.items}),this.branchTree.on(BI.CustomTree.EVENT_CHANGE,function(){a.fireEvent(BI.BranchTree.EVENT_CHANGE,arguments)}),this.branchTree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(){this.branchTree.populate.apply(this.branchTree,arguments)},getValue:function(){return this.branchTree.getValue()}}),BI.BranchTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.branch_tree",BI.BranchTree),BI.DisplayTree=BI.inherit(BI.TreeView,{_defaultConfig:function(){return BI.extend(BI.DisplayTree.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-display-tree"})},_init:function(){BI.DisplayTree.superclass._init.apply(this,arguments)},_configSetting:function(){function a(a,b){return!1}var b={view:{selectedMulti:!1,dblClickExpand:!1,showIcon:!1,showTitle:!1},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},callback:{beforeCollapse:a}};return b},_dealWidthNodes:function(a){a=BI.DisplayTree.superclass._dealWidthNodes.apply(this,arguments);this.options;return BI.each(a,function(a,b){b.count>0?b.text=b.value+"("+BI.i18nText("BI-Basic_Altogether")+b.count+BI.i18nText("BI-Basic_Count")+")":b.text=b.value}),a},initTree:function(a,b){var b=b||this._configSetting();this.nodes=$.fn.zTree.init(this.tree.element,b,a)},destroy:function(){BI.DisplayTree.superclass.destroy.apply(this,arguments)}}),BI.DisplayTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.display_tree",BI.DisplayTree),BI.LevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.LevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-level-tree",el:{chooseType:0},expander:{},items:[]})},_init:function(){BI.LevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={layer:b};if(BI.isKey(e.id)||(e.id=BI.UUID()),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.first_plus_group_node";break;case a.length-1:f.type="bi.last_plus_group_node";break;default:f.type="bi.mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children,b+1)}else{switch(d){case a.length-1:f.type="bi.last_tree_leaf_item";break;default:f.type="bi.mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_assertId:function(a){BI.each(a,function(a,b){BI.isKey(b.id)||(b.id=BI.UUID())})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",element:this,expander:BI.extend({el:{},popup:{type:"bi.custom_tree"}},c.expander),items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),el:BI.extend({type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]},c.el)}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.LevelTree.EVENT_CHANGE,arguments)})},stroke:function(a){this.tree.stroke.apply(this.tree,arguments)},populate:function(a){a=this._formatItems(BI.Tree.transformToTreeFormat(a),0),this.tree.populate(a)},setValue:function(a){this.tree.setValue(a)},getValue:function(){return this.tree.getValue()},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.LevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.level_tree",BI.LevelTree),BI.SimpleTreeView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SimpleTreeView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-simple-tree",itemsCreator:BI.emptyFn,items:null})},_init:function(){BI.SimpleTreeView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.structure=new BI.Tree,this.tree=BI.createWidget({type:"bi.tree_view",element:this,itemsCreator:function(c,d){var e=function(b){d({items:b}),a.structure.initTree(BI.Tree.transformToTreeFormat(b))};BI.isNotNull(b.items)?e(b.items):b.itemsCreator(c,e)}}),this.tree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.SimpleTreeView.EVENT_CHANGE,arguments)}),BI.isNotEmptyArray(b.items)&&this.populate()},populate:function(a,b){a&&(this.options.items=a),this.tree.stroke({keyword:b})},setValue:function(a){a||(a=[]);var b=this,c={},d=[];BI.each(a,function(a,e){var f=b.structure.search(e,"value");if(f){var g=f;for(g=g.getParent(),g&&(c[g.value]||(c[g.value]=0),c[g.value]++);g&&g.getChildrenLength()<=c[g.value];)d.push(g.value),g=g.getParent(),g&&(c[g.value]||(c[g.value]=0),c[g.value]++)}}),this.tree.setValue(BI.makeObject(a.concat(d)))},_getValue:function(){var a=[],b=this.tree.getValue(),c=function(b){BI.each(b,function(b,d){BI.isEmpty(d)?a.push(b):c(d)})};return c(b),a},empty:function(){this.tree.empty()},getValue:function(){var a=this,b=[],c=this._getValue();return BI.each(c,function(c,d){var e=a.structure.search(d,"value");e&&a.structure._traverse(e,function(a){a.isLeaf()&&b.push(a.value)})}),b}}),BI.SimpleTreeView.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.simple_tree",BI.SimpleTreeView),BI.EditorTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4},_defaultConfig:function(){var a=BI.EditorTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-editor-trigger bi-border",height:30,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!1,watermark:"",errorText:"",triggerWidth:30})},_init:function(){this.options.height-=2,BI.EditorTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.EditorTrigger.EVENT_CHANGE,arguments)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.trigger_icon_button",cls:"bi-border-left",width:b.triggerWidth},width:b.triggerWidth}]})},getValue:function(){return this.editor.getValue()},setValue:function(a){this.editor.setValue(a)},setText:function(a){this.editor.setState(a)}}),BI.EditorTrigger.EVENT_CHANGE="BI.EditorTrigger.EVENT_CHANGE",BI.shortcut("bi.editor_trigger",BI.EditorTrigger),BI.IconTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.IconTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-icon-trigger",el:{},height:30})},_init:function(){var a=this.options;BI.IconTrigger.superclass._init.apply(this,arguments),this.iconButton=BI.createWidget(a.el,{type:"bi.trigger_icon_button",element:this,width:a.width,height:a.height})}}),BI.shortcut("bi.icon_trigger",BI.IconTrigger),BI.TextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,triggerWidth:30},_defaultConfig:function(){var a=BI.TextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:30})},_init:function(){BI.TextTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",height:a.height,text:a.text,hgap:b.hgap}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",cls:"bi-border-left",width:b.triggerWidth}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.text},{el:this.trigerButton,width:b.triggerWidth}]})},setValue:function(a){this.text.setValue(a),this.text.setTitle(a)},setText:function(a){this.text.setText(a),this.text.setTitle(a)}}),BI.shortcut("bi.text_trigger",BI.TextTrigger),BI.SelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-text-trigger bi-border",height:24})},_init:function(){this.options.height-=2,BI.SelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.text_trigger",element:this,height:a.height}),BI.isKey(a.text)&&this.setValue(a.text)},setValue:function(a){var b=this.options;a=BI.isArray(a)?a:[a];var c=[],d=BI.Tree.transformToArrayFormat(this.options.items);BI.each(d,function(b,d){BI.deepContains(a,d.value)&&!c.contains(d.text||d.value)&&c.push(d.text||d.value)}),c.length>0?this.trigger.setText(c.join(",")):this.trigger.setText(b.text)},populate:function(a){this.options.items=a}}),BI.shortcut("bi.select_text_trigger",BI.SelectTextTrigger),BI.SmallSelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SmallSelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-small-select-text-trigger bi-border",height:20})},_init:function(){this.options.height-=2,BI.SmallSelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.small_text_trigger",element:this,height:a.height-2}),BI.isKey(a.text)&&this.setValue(a.text)},setValue:function(a){var b=this.options;a=BI.isArray(a)?a:[a];var c=[],d=BI.Tree.transformToArrayFormat(this.options.items);BI.each(d,function(b,d){BI.deepContains(a,d.value)&&!c.contains(d.text||d.value)&&c.push(d.text||d.value)}),c.length>0?(this.trigger.element.removeClass("bi-water-mark"),this.trigger.setText(c.join(","))):(this.trigger.element.addClass("bi-water-mark"),this.trigger.setText(b.text))},populate:function(a){this.options.items=a}}),BI.shortcut("bi.small_select_text_trigger",BI.SmallSelectTextTrigger),BI.SmallTextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,triggerWidth:20},_defaultConfig:function(){var a=BI.SmallTextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:20})},_init:function(){BI.SmallTextTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",height:a.height,text:a.text,hgap:b.hgap}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",width:b.triggerWidth}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.text},{el:this.trigerButton,width:b.triggerWidth}]})},setValue:function(a){
-this.text.setValue(a)},setText:function(a){this.text.setText(a)}}),BI.shortcut("bi.small_text_trigger",BI.SmallTextTrigger),BI.SequenceTableTreeNumber=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SequenceTableTreeNumber.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-sequence-table-tree-number",isNeedFreeze:!1,startSequence:1,scrollTop:0,headerRowSize:25,rowSize:25,sequenceHeaderCreator:null,header:[],items:[],crossHeader:[],crossItems:[]})},_init:function(){BI.SequenceTableTreeNumber.superclass._init.apply(this,arguments);this.options;this.vCurr=1,this.hCurr=1,this.tasks=[],this.renderedCells=[],this.renderedKeys=[],this.container=BI.createWidget({type:"bi.absolute",width:60,scrollable:!1}),this.scrollContainer=BI.createWidget({type:"bi.vertical",scrollable:!1,scrolly:!1,items:[this.container]}),this.headerContainer=BI.createWidget({type:"bi.absolute",cls:"bi-border",width:58,scrollable:!1}),this.layout=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.headerContainer,height:this._getHeaderHeight()-2},{el:{type:"bi.layout"},height:2},{el:this.scrollContainer}]}),this.start=this.options.startSequence,this.cache={},this._nextState(),this._populate()},_getNextSequence:function(a){function b(a){c.cache[a.text||a.value]||(c.cache[a.text||a.value]=e),e++}var c=this,d=this.start,e=this.start;return BI.each(a,function(a,f){BI.isNotEmptyArray(f.children)&&BI.each(f.children,function(a,f){0===a&&c.cache[f.text||f.value]&&(d=e=c.cache[f.text||f.value]),b(f)})}),this.start=e,d},_getStart:function(a){var b=this,c=this.start;return BI.some(a,function(a,d){if(BI.isNotEmptyArray(d.children))return BI.some(d.children,function(a,d){if(0===a&&b.cache[d.text||d.value])return c=b.cache[d.text||d.value],!0})}),c},_formatNumber:function(a){function b(a){var c=0;return BI.isNotEmptyArray(a.children)?(BI.each(a.children,function(a,d){c+=b(d)}),BI.isNotEmptyArray(a.values)&&c++):c++,c}var c=this.options,d=[],e=this._getStart(a),f=0,g=0;return BI.each(a,function(a,h){BI.isArray(h.children)&&(BI.each(h.children,function(a,h){var i=b(h);d.push({text:e++,start:f,top:g,cnt:i,index:a,height:i*c.rowSize}),f+=i,g+=i*c.rowSize}),BI.isNotEmptyArray(h.values)&&(d.push({text:BI.i18nText("BI-Summary_Values"),start:f++,top:g,cnt:1,isSummary:!0,height:c.rowSize}),g+=c.rowSize))}),d},_layout:function(){var a=this.options,b=this._getHeaderHeight()-2,c=this.layout.attr("items");a.isNeedFreeze===!1?(c[0].height=0,c[1].height=0):a.isNeedFreeze===!0&&(c[0].height=b,c[1].height=2),this.layout.attr("items",c),this.layout.resize();try{this.scrollContainer.element.scrollTop(a.scrollTop)}catch(d){}},_getHeaderHeight:function(){var a=this.options;return a.headerRowSize*(a.crossHeader.length+(a.header.length>0?1:0))},_nextState:function(){var a=this.options;this._getNextSequence(a.items)},_prevState:function(){var a,b=this.options;BI.some(b.items,function(b,c){if(BI.isNotEmptyArray(c.children))return BI.some(c.children,function(b,c){return a=c,!0})}),a&&BI.isNotEmptyObject(this.cache)?this.start=this.cache[a.text||a.value]:this.start=1,this._nextState()},_getMaxScrollTop:function(a){var b=0;return BI.each(a,function(a,c){b+=c.cnt}),Math.max(0,b*this.options.rowSize-(this.options.height-this._getHeaderHeight())+BI.DOM.getScrollWidth())},_createHeader:function(){var a=this.options;BI.createWidget({type:"bi.absolute",element:this.headerContainer,items:[{el:a.sequenceHeaderCreator||{type:"bi.table_style_cell",cls:"sequence-table-title-cell",styleGetter:a.headerCellStyleGetter,text:BI.i18nText("BI-Number_Index")},left:0,top:0,right:0,bottom:0}]})},_calculateChildrenToRender:function(){var a=this,b=this.options,c=[],d=[],e=this._formatNumber(b.items),f=BI.PrefixIntervalTree.uniform(e.length,0);BI.each(e,function(a,b){f.set(a,b.height)});for(var g=BI.clamp(b.scrollTop,0,this._getMaxScrollTop(e)),h=f.greatestLowerBound(g),i=-(g-(h>0?f.sumTo(h-1):0)),j=i,k=b.height-this._getHeaderHeight();j-1)e[f].height!==a.renderedCells[g]._height&&(a.renderedCells[g]._height=e[f].height,a.renderedCells[g].el.setHeight(e[f].height)),e[f].top!==a.renderedCells[g].top&&(a.renderedCells[g].top=e[f].top,a.renderedCells[g].el.element.css("top",e[f].top+"px")),c.push(a.renderedCells[g]);else{var h=BI.createWidget(BI.extend({type:"bi.table_style_cell",cls:"sequence-table-number-cell bi-border-left bi-border-right bi-border-bottom",width:60,styleGetter:e[f].isSummary===!0?function(){return b.summaryCellStyleGetter(!0)}:function(a){return function(){return b.sequenceCellStyleGetter(a)}}(e[f].index)},e[f]));c.push({el:h,left:0,top:e[f].top,_height:e[f].height})}});var l={},m={},n=[];BI.each(d,function(b,c){BI.deepContains(a.renderedKeys,c)?l[b]=c:m[b]=c}),BI.each(this.renderedKeys,function(a,b){BI.deepContains(l,b)||BI.deepContains(m,b)||n.push(a)}),BI.each(n,function(b,c){a.renderedCells[c].el.destroy()});var o=[];BI.each(m,function(a){o.push(c[a])}),BI.createWidget({type:"bi.absolute",element:this.container,items:o}),this.renderedCells=c,this.renderedKeys=d,this.container.setHeight(f.sumUntil(e.length))},_restore:function(){BI.each(this.renderedCells,function(a,b){b.el.destroy()}),this.renderedCells=[],this.renderedKeys=[]},_populate:function(){var a=this;BI.each(this.tasks,function(b,c){c.apply(a)}),this.tasks=[],this.headerContainer.empty(),this._createHeader(),this._layout(),this._calculateChildrenToRender()},setVerticalScroll:function(a){if(this.options.scrollTop!==a){this.options.scrollTop=a;try{this.scrollContainer.element.scrollTop(a)}catch(b){}}},getVerticalScroll:function(){return this.options.scrollTop},setVPage:function(a){a<=1?(this.cache={},this.start=this.options.startSequence,this._restore(),this.tasks.push(this._nextState)):a===this.vCurr+1?this.tasks.push(this._nextState):a===this.vCurr-1&&this.tasks.push(this._prevState),this.vCurr=a},setHPage:function(a){a!==this.hCurr&&this.tasks.push(this._prevState),this.hCurr=a},restore:function(){this._restore()},populate:function(a,b,c,d){var e=this.options;a&&a!==this.options.items&&(e.items=a,this._restore(),this.tasks.push(this._prevState)),b&&b!==this.options.header&&(e.header=b),c&&c!==this.options.crossItems&&(e.crossItems=c),d&&d!==this.options.crossHeader&&(e.crossHeader=d),this._populate()}}),BI.shortcut("bi.sequence_table_tree_number",BI.SequenceTableTreeNumber),BI.AdaptiveArrangement=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.AdaptiveArrangement.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-adaptive-arrangement",resizable:!0,layoutType:BI.Arrangement.LAYOUT_TYPE.FREE,items:[]})},_init:function(){BI.AdaptiveArrangement.superclass._init.apply(this,arguments);var a=this,b=this.options;this.arrangement=BI.createWidget({type:"bi.arrangement",element:this,layoutType:b.layoutType,items:b.items}),this.arrangement.on(BI.Arrangement.EVENT_SCROLL,function(){a.fireEvent(BI.AdaptiveArrangement.EVENT_SCROLL,arguments)}),this.zIndex=0,BI.each(b.items,function(b,c){a._initResizable(c.el)}),$(document).mousedown(function(b){BI.each(a.getAllRegions(),function(a,c){0===c.el.element.find(b.target).length&&c.el.element.removeClass("selected")})}),BI.ResizeDetector.addResizeListener(this,function(){a.arrangement.resize(),a.fireEvent(BI.AdaptiveArrangement.EVENT_RESIZE)})},_isEqual:function(){return this.arrangement._isEqual.apply(this.arrangement,arguments)},_setSelect:function(a){a.element.hasClass("selected")||(a.element.css("zIndex",++this.zIndex),BI.each(this.getAllRegions(),function(a,b){b.el.element.removeClass("selected")}),a.element.addClass("selected"))},_initResizable:function(a){var b=this;this.options;a.element.css("zIndex",++this.zIndex),a.element.mousedown(function(){b._setSelect(a)})},_getScrollOffset:function(){return this.arrangement._getScrollOffset()},getClientWidth:function(){return this.arrangement.getClientWidth()},getClientHeight:function(){return this.arrangement.getClientHeight()},addRegion:function(a,b){this._initResizable(a.el),this._setSelect(a.el);var c,d=this.arrangement.getAllRegions();return(c=this.arrangement.addRegion(a,b))&&(this._old=d),c},deleteRegion:function(a){var b,c=this.getAllRegions();return(b=this.arrangement.deleteRegion(a))?this._old=c:(this._old=this.getAllRegions(),this.relayout()),b},setRegionSize:function(a,b){var c,d=this.getAllRegions();return(c=this.arrangement.setRegionSize(a,b))&&(this._old=d),c},setPosition:function(a,b){return this.arrangement.setPosition(a,b)},setRegionPosition:function(a,b){this.getRegionByName(a);return this.arrangement.setRegionPosition(a,b)},setDropPosition:function(a,b){return this.arrangement.setDropPosition(a,b)},scrollInterval:function(a,b,c,d){function e(a,b){if(""===a)return f.lastActiveRegion="",void(f._scrollInterval&&(clearInterval(f._scrollInterval),f._scrollInterval=null));if(f.lastActiveRegion!==a){f.lastActiveRegion=a,f._scrollInterval&&(clearInterval(f._scrollInterval),f._scrollInterval=null);var c=0;f._scrollInterval=setInterval(function(){if(c++,!(c<=3)){var d=f._getScrollOffset(),e=d.top+40*g[a][0],h=d.left+40*g[a][1];e<0||h<0||(b({offsetX:40*g[a][1],offsetY:40*g[a][0]}),f.scrollTo({top:e,left:h}))}},300)}}var f=this,g={top:[-1,0],bottom:[1,0],left:[0,-1],right:[0,1]},h=this.element.bounds();d({offsetX:0,offsetY:0});var i=this.element.offset(),j={left:a.pageX-i.left,top:a.pageY-i.top};b&&j.top>=0&&j.top<=30?e("top",d):b&&j.top>=h.height-30&&j.top<=h.height?e("bottom",d):b&&j.left>=0&&j.left<=30?e("left",d):b&&j.left>=h.width-30&&j.left<=h.width?e("right",d):c===!0?j.top<0?e("top",d):j.top>h.height?e("bottom",d):j.left<0?e("left",d):j.left>h.width?e("right",d):e("",d):e("",d)},scrollEnd:function(){this.lastActiveRegion="",this._scrollInterval&&(clearInterval(this._scrollInterval),this._scrollInterval=null)},scrollTo:function(a){this.arrangement.scrollTo(a)},zoom:function(a){this.arrangement.zoom(a)},resize:function(){this.arrangement.resize()},relayout:function(){return this.arrangement.relayout()},setLayoutType:function(a){this.arrangement.setLayoutType(a)},getLayoutType:function(){return this.arrangement.getLayoutType()},getLayoutRatio:function(){return this.arrangement.getLayoutRatio()},getHelper:function(){return this.arrangement.getHelper()},getRegionByName:function(a){return this.arrangement.getRegionByName(a)},getAllRegions:function(){return this.arrangement.getAllRegions()},revoke:function(){this._old&&this.populate(BI.toArray(this._old))},populate:function(a){var b=this;BI.each(a,function(a,c){b._initResizable(c.el)}),this.arrangement.populate(a)}}),BI.AdaptiveArrangement.EVENT_ELEMENT_START_RESIZE="AdaptiveArrangement.EVENT_ELEMENT_START_RESIZE",BI.AdaptiveArrangement.EVENT_ELEMENT_RESIZE="AdaptiveArrangement.EVENT_ELEMENT_RESIZE",BI.AdaptiveArrangement.EVENT_ELEMENT_STOP_RESIZE="AdaptiveArrangement.EVENT_ELEMENT_STOP_RESIZE",BI.AdaptiveArrangement.EVENT_RESIZE="AdaptiveArrangement.EVENT_RESIZE",BI.AdaptiveArrangement.EVENT_SCROLL="AdaptiveArrangement.EVENT_SCROLL",BI.shortcut("bi.adaptive_arrangement",BI.AdaptiveArrangement),BI.ArrangementBlock=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ArrangementBlock.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-arrangement-block bi-mask"})}}),BI.shortcut("bi.arrangement_block",BI.ArrangementBlock),BI.ArrangementDroppable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ArrangementDroppable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-arrangement-droppable bi-resizer"})}}),BI.shortcut("bi.arrangement_droppable",BI.ArrangementDroppable),BI.Arrangement=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Arrangement.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-arrangement",layoutType:BI.Arrangement.LAYOUT_TYPE.GRID,items:[]})},_init:function(){BI.Arrangement.superclass._init.apply(this,arguments);var a=this,b=this.options;this.arrangement=BI.createWidget({type:"bi.arrangement_droppable",cls:"arrangement-block",invisible:!0}),this.block=BI.createWidget({type:"bi.arrangement_block",invisible:!0}),this.container=BI.createWidget({type:"bi.absolute",items:b.items.concat([this.block,this.arrangement])}),this.scrollContainer=BI.createWidget({type:"bi.adaptive",width:"100%",height:"100%",scrollable:!0,items:[this.container]}),this.scrollContainer.element.scroll(function(){a.fireEvent(BI.Arrangement.EVENT_SCROLL,{scrollLeft:a.scrollContainer.element.scrollLeft(),scrollTop:a.scrollContainer.element.scrollTop(),clientWidth:a.scrollContainer.element[0].clientWidth,clientHeight:a.scrollContainer.element[0].clientHeight})}),BI.createWidget({type:"bi.adaptive",element:this,items:[this.scrollContainer]}),this.regions={},b.items.length>0&&BI.nextTick(function(){a.populate(b.items)})},_calculateRegions:function(a){var b=this;this.options;this.regions={},BI.each(a,function(a,c){var d=b._createOneRegion(c);b.regions[d.id]=d})},_isEqual:function(a,b){return Math.abs(a-b)<2},_isLessThan:function(a,b){return ab&&!this._isEqual(a,b)},_isLessThanEqual:function(a,b){return a<=b||this._isEqual(a,b)},_isMoreThanEqual:function(a,b){return a>=b||this._isEqual(a,b)},_getRegionOccupied:function(a){this.options;if(BI.size(a||this.regions)<=0)return{left:0,top:0,width:0,height:0};var b=BI.MAX,c=BI.MIN,d=BI.MAX,e=BI.MIN;return BI.each(a||this.regions,function(a,f){b=Math.min(b,f.left),c=Math.max(c,f.left+f.width),d=Math.min(d,f.top),e=Math.max(e,f.top+f.height)}),{left:b,top:d,width:c-b,height:e-d}},_getCrossArea:function(a,b){if(a.left<=b.left){if(a.top<=b.top){if(a.top+a.height>b.top&&a.left+a.width>b.left)return this._isEqual(a.top+a.height,b.top)||this._isEqual(a.left+a.width,b.left)?0:(a.top+a.height-b.top)*(a.left+a.width-b.left)}else if(b.top+b.height>a.top&&a.left+a.width>b.left)return this._isEqual(b.top+b.height,a.top)||this._isEqual(a.left+a.width,b.left)?0:(b.top+b.height-a.top)*(a.left+a.width-b.left)}else if(a.top<=b.top){if(a.top+a.height>b.top&&b.left+b.width>a.left)return this._isEqual(a.top+a.height,b.top)||this._isEqual(b.left+b.width,a.left)?0:(a.top+a.height-b.top)*(b.left+b.width-a.left)}else if(b.top+b.height>a.top&&b.left+b.width>a.left)return this._isEqual(b.top+b.height,a.top)||this._isEqual(b.left+b.width,a.left)?0:(b.top+b.height-a.top)*(b.left+b.width-a.left);return 0},_isRegionOverlay:function(a){var b=[];BI.each(a||this.regions,function(a,c){b.push(new BI.Region(c.left,c.top,c.width,c.height))});for(var c=0,d=b.length;c1)return!0}return!1},_isArrangeFine:function(a){switch(this.options.layoutType){case BI.Arrangement.LAYOUT_TYPE.FREE:return!0;case BI.Arrangement.LAYOUT_TYPE.GRID:}return!0},_getRegionNames:function(a){var b=[];return BI.each(a||this.regions,function(a,c){b.push(c.id||c.attr("id"))}),b},_getRegionsByNames:function(a,b){if(a=BI.isArray(a)?a:[a],b=b||this.regions,BI.isArray(b)){var c=[];BI.each(b,function(b,d){a.contains(d.id||d.attr("id"))&&c.push(d)})}else{var c={};BI.each(a,function(a,d){c[d]=b[d]})}return c},_cloneRegion:function(a){var b={};return BI.each(a||this.regions,function(a,c){b[a]={},b[a].el=c.el,b[a].id=c.id,b[a].left=c.left,b[a].top=c.top,b[a].width=c.width,b[a].height=c.height}),b},_test:function(a){return!BI.any(a||this.regions,function(a,b){if(BI.isNaN(b.width)||BI.isNaN(b.height)||b.width<=21||b.height<=21)return!0})},_getScrollOffset:function(){return{left:this.scrollContainer.element[0].scrollLeft,top:this.scrollContainer.element[0].scrollTop}},_createOneRegion:function(a){var b=BI.createWidget(a.el);return b.setVisible(!0),{id:b.attr("id"),left:a.left,top:a.top,width:a.width,height:a.height,el:b}},_applyRegion:function(a){this.options;BI.each(a||this.regions,function(a,b){b.el.element.css({left:b.left,top:b.top,width:b.width,height:b.height})}),this._applyContainer(),this.ratio=this.getLayoutRatio()},_renderRegion:function(){BI.createWidget({type:"bi.absolute",element:this.container,items:BI.toArray(this.regions)})},getClientWidth:function(){return this.scrollContainer.element[0].clientWidth},getClientHeight:function(){return this.scrollContainer.element[0].clientHeight},_applyContainer:function(){this.scrollContainer.element.css("overflow","hidden");var a=this._getRegionOccupied();return this.container.element.width(a.left+a.width).height(a.top+a.height),this.scrollContainer.element.css("overflow","auto"),a},_modifyRegion:function(a){BI.each(this.regions,function(b,c){a[b]&&(c.left=a[b].left,c.top=a[b].top,c.width=a[b].width,c.height=a[b].height)})},_addRegion:function(a){var b=this._createOneRegion(a);this.regions[b.id]=b,BI.createWidget({type:"bi.absolute",element:this.container,items:[b]})},_deleteRegionByName:function(a){this.regions[a].el.setVisible(!1),delete this.regions[a]},_setArrangeSize:function(a){this.arrangement.element.css({left:a.left,top:a.top,width:a.width,height:a.height})},_getOneWidthPortion:function(){return this.getClientWidth()/BI.Arrangement.PORTION},_getOneHeightPortion:function(){return this.getClientHeight()/BI.Arrangement.H_PORTION},_getGridPositionAndSize:function(a){var b=this._getOneWidthPortion(),c=this._getOneHeightPortion(),d=Math.round(a.width/b),e=Math.round(a.left/b),f=Math.round(a.top/c),g=Math.round(a.height/c);return 0===d&&(d=1),0===g&&(g=1),{x:e,y:f,w:d,h:g}},_getBlockPositionAndSize:function(a){var b=this._getOneWidthPortion(),c=this._getOneHeightPortion();return{left:a.x*b,top:a.y*c,width:a.w*b,height:a.h*c}},_getLayoutsByRegions:function(a){var b=this,c=[];return BI.each(a||this.regions,function(a,d){c.push(BI.extend(b._getGridPositionAndSize(d),{i:d.id}))}),c},_getLayoutIndexByName:function(a,b){return BI.findIndex(a,function(a,c){return c.i===b})},_setBlockPositionAndSize:function(a){this.block.element.css({left:a.left,top:a.top,width:a.width,height:a.height})},_getRegionsByLayout:function(a){var b=this,c={};return BI.each(a,function(a,d){c[d.i]=BI.extend(b._getBlockPositionAndSize(d),{id:d.i})}),c},_setRegionsByLayout:function(a,b){var c=this;return a||(a=this.regions),BI.each(b,function(b,d){a[d.i]&&BI.extend(a[d.i],c._getBlockPositionAndSize(d))}),a},_moveElement:function(a,b,c,d,e){function f(a,b){return BI.filter(a,function(a,c){return g._collides(c,b)})}var g=this;if(b._static)return a;if(b.y===d&&b.x===c)return a;var h=d&&b.y>d;"number"==typeof c&&(b.x=c),"number"==typeof d&&(b.y=d),b.moved=!0;var i=this._sortLayoutItemsByRowCol(a);h&&(i=i.reverse());for(var j=f(i,b),k=0,l=j.length;km.y&&b.y-m.y>m.h/4||(a=m._static?this._moveElementAwayFromCollision(a,m,b,e):this._moveElementAwayFromCollision(a,b,m,e))}return a},_sortLayoutItemsByRowCol:function(a){return[].concat(a).sort(function(a,b){return a.y>b.y||a.y===b.y&&a.x>b.x?1:-1})},_collides:function(a,b){return a!==b&&(!(a.x+a.w<=b.x)&&(!(a.x>=b.x+b.w)&&(!(a.y+a.h<=b.y)&&!(a.y>=b.y+b.h))))},_getFirstCollision:function(a,b){for(var c=0,d=a.length;c0&&!this._getFirstCollision(a,b);)b.y--;for(var d;d=this._getFirstCollision(a,b);)b.y=d.y+d.h;return b},compact:function(a,b){function c(a){return BI.filter(a,function(a,b){return b._static})}for(var d=c(a),e=this._sortLayoutItemsByRowCol(a),f=[],g=0,h=e.length;g0){var j=e[f-1].getLastChild();i=a[d+1].indexOf(j)+1}a[d+1].splice(i,0,g);var k=g.parent.getChildIndex(g.id);g.parent.removeChildByIndex(k),g.parent.addChild(h,k),h.addChild(g),b[d].push(h),e[f]=h}else b[d].push(g)})}),b},_fill:function(a){var b=[],c=a.length;return BI.each(a,function(d,e){b[d]||(b[d]=[]),BI.each(e,function(f,g){if(g.isLeaf()&&d0){var j=e[f-1].getLastChild();i=a[d+1].indexOf(j)+1}a[d+1].splice(i,0,h),g.addChild(h)}b[d].push(g)})}),b},_adjust:function(a){for(;;){var b=!1;if(BI.backEach(a,function(a,c){BI.each(c,function(a,c){if(!c.isNew){var d=!0;if(BI.any(c.getChildren(),function(a,b){if(!b.isNew)return d=!1,!0}),!c.isLeaf()&&d===!0){var e=[];BI.each(c.getChildren(),function(a,b){e=e.concat(b.getChildren())}),c.removeAllChilds(),BI.each(e,function(a,b){c.addChild(b)});var f=new BI.Node(BI.UUID());f.isNew=!0;var g=c.parent.getChildIndex(c.id);c.parent.removeChildByIndex(g),c.parent.addChild(f,g),f.addChild(c),b=!0}}})}),b===!1)break;a=this._stratification()}return a},_calculateWidth:function(){function a(b){var c=0;return b.isLeaf()?b.width:(BI.each(b.getChildren(),function(b,d){c+=a(d)}),c)}function b(a){var c=0;return a.isLeaf()?a.height:(BI.each(a.getChildren(),function(a,d){c+=b(d)}),c)}var c=(this.options,0);return c=this._isVertical()?a(this.tree.getRoot()):b(this.tree.getRoot())},_isVertical:function(){var a=this.options;return a.direction===BI.Direction.Top||a.direction===BI.Direction.Bottom},_calculateHeight:function(){function a(b){var c=0;return BI.each(b.getChildren(),function(b,d){c=Math.max(c,a(d))}),c+(b.height||0)}function b(a){var c=0;return BI.each(a.getChildren(),function(a,d){c=Math.max(c,b(d))}),c+(a.width||0)}var c=(this.options,0);return c=this._isVertical()?a(this.tree.getRoot()):b(this.tree.getRoot())},_calculateXY:function(a){var b=(this.options,this._calculateWidth()),c=this._calculateHeight(),d=a.length,e=this._calculateLeaves(),f={},g=c/d;return BI.each(a,function(a,c){var d=[];BI.each(c,function(a,b){d[a]=(b.get("leaves")||1)/e}),BI.each(c,function(c,e){var h=BI.sum(d.slice(0,c)),i=h*b+d[c]*b/2,j=a*g+g/2;f[e.id]={x:i,y:j}})}),f},_stroke:function(a,b){var c=this._calculateHeight(),d=a.length,e=c/d,f=this,g=this.options;switch(g.direction){case BI.Direction.Top:BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y+e/2;d+="M"+h.x+","+(h.y+g.centerOffset)+"L"+h.x+","+i;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];d+="M"+e.x+","+(e.y+g.centerOffset)+"L"+e.x+","+i}),j.length>0&&(d+="M"+BI.first(j).x+","+i+"L"+BI.last(j).x+","+i),f.svg.path(d).attr("stroke","#d4dadd")}})});break;case BI.Direction.Bottom:BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y-e/2;d+="M"+h.x+","+(h.y-g.centerOffset)+"L"+h.x+","+i;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];d+="M"+e.x+","+(e.y-g.centerOffset)+"L"+e.x+","+i}),j.length>0&&(d+="M"+BI.first(j).x+","+i+"L"+BI.last(j).x+","+i),f.svg.path(d).attr("stroke","#d4dadd")}})});break;case BI.Direction.Left:BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y+e/2;d+="M"+(h.y+g.centerOffset)+","+h.x+"L"+i+","+h.x;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];d+="M"+(e.y+g.centerOffset)+","+e.x+"L"+i+","+e.x}),j.length>0&&(d+="M"+i+","+BI.first(j).x+"L"+i+","+BI.last(j).x),f.svg.path(d).attr("stroke","#d4dadd")}})});break;case BI.Direction.Right:BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y-e/2;d+="M"+(h.y-g.centerOffset)+","+h.x+"L"+i+","+h.x;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];
-d+="M"+(e.y-g.centerOffset)+","+e.x+"L"+i+","+e.x}),j.length>0&&(d+="M"+i+","+BI.first(j).x+"L"+i+","+BI.last(j).x),f.svg.path(d).attr("stroke","#d4dadd")}})})}},_createBranches:function(a){var b=this.options;b.direction!==BI.Direction.Bottom&&b.direction!==BI.Direction.Right||(a=a.reverse());var c=this._calculateXY(a);this._stroke(a,c)},_isNeedAdjust:function(){var a=this.options;return a.direction===BI.Direction.Top&&a.align===BI.VerticalAlign.Bottom||a.direction===BI.Direction.Bottom&&a.align===BI.VerticalAlign.Top||a.direction===BI.Direction.Left&&a.align===BI.HorizontalAlign.Right||a.direction===BI.Direction.Right&&a.align===BI.HorizontalAlign.Left},setValue:function(a){},getValue:function(){},_transformToTreeFormat:function(a){var b,c;if(!a)return[];if(BI.isArray(a)){var d=[],e=[];for(b=0,c=a.length;b=c.options.min&&d<=c.options.max},f=function(a){return Date.parseDateTime(a,"%Y-%X").print("%Y-%X")==a&&d>=c.options.min&&d<=c.options.max};if(BI.isNotNull(b)&&Date.checkLegal(a))switch(a.length){case this._const.yearLength:e(a)&&this.editor.setValue(a+"-");break;case this._const.yearMonthLength:f(a)&&this.editor.setValue(a+"-")}},setValue:function(a){var b,c,d=this,e=new Date;this.store_value=a,BI.isNotNull(a)&&(b=a.type||BI.DateTrigger.MULTI_DATE_CALENDAR,c=a.value,BI.isNull(c)&&(c=a));var f=function(a,b){var c=a.print("%Y-%x-%e");d.editor.setState(c),d.editor.setValue(c),d.setTitle(b+":"+c)};switch(b){case BI.DateTrigger.MULTI_DATE_YEAR_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_PREV];e=new Date(e.getFullYear()-1*c,e.getMonth(),e.getDate()),f(e,g);break;case BI.DateTrigger.MULTI_DATE_YEAR_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_AFTER];e=new Date(e.getFullYear()+1*c,e.getMonth(),e.getDate()),f(e,g);break;case BI.DateTrigger.MULTI_DATE_YEAR_BEGIN:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_BEGIN];e=new Date(e.getFullYear(),0,1),f(e,g);break;case BI.DateTrigger.MULTI_DATE_YEAR_END:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_END];e=new Date(e.getFullYear(),11,31),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_PREV];e=(new Date).getBeforeMulQuarter(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_AFTER];e=(new Date).getAfterMulQuarter(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN];e=(new Date).getQuarterStartDate(),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_END:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_END];e=(new Date).getQuarterEndDate(),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_PREV];e=(new Date).getBeforeMultiMonth(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_AFTER];e=(new Date).getAfterMultiMonth(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_BEGIN:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_BEGIN];e=new Date(e.getFullYear(),e.getMonth(),1),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_END:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_END];e=new Date(e.getFullYear(),e.getMonth(),e.getLastDateOfMonth().getDate()),f(e,g);break;case BI.DateTrigger.MULTI_DATE_WEEK_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_PREV];e=e.getOffsetDate(-7*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_WEEK_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_AFTER];e=e.getOffsetDate(7*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_DAY_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_PREV];e=e.getOffsetDate(-1*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_DAY_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_AFTER];e=e.getOffsetDate(1*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_DAY_TODAY:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_TODAY];e=new Date,f(e,g);break;default:if(BI.isNull(c)||BI.isNull(c.day))this.editor.setState(""),this.editor.setValue(""),this.setTitle("");else{var h=c.year+"-"+(c.month+1)+"-"+c.day;this.editor.setState(h),this.editor.setValue(h),this.setTitle(h)}}},getKey:function(){return this.editor.getValue()},getValue:function(){return this.store_value}}),BI.DateTrigger.MULTI_DATE_YEAR_PREV=1,BI.DateTrigger.MULTI_DATE_YEAR_AFTER=2,BI.DateTrigger.MULTI_DATE_YEAR_BEGIN=3,BI.DateTrigger.MULTI_DATE_YEAR_END=4,BI.DateTrigger.MULTI_DATE_MONTH_PREV=5,BI.DateTrigger.MULTI_DATE_MONTH_AFTER=6,BI.DateTrigger.MULTI_DATE_MONTH_BEGIN=7,BI.DateTrigger.MULTI_DATE_MONTH_END=8,BI.DateTrigger.MULTI_DATE_QUARTER_PREV=9,BI.DateTrigger.MULTI_DATE_QUARTER_AFTER=10,BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN=11,BI.DateTrigger.MULTI_DATE_QUARTER_END=12,BI.DateTrigger.MULTI_DATE_WEEK_PREV=13,BI.DateTrigger.MULTI_DATE_WEEK_AFTER=14,BI.DateTrigger.MULTI_DATE_DAY_PREV=15,BI.DateTrigger.MULTI_DATE_DAY_AFTER=16,BI.DateTrigger.MULTI_DATE_DAY_TODAY=17,BI.DateTrigger.MULTI_DATE_PARAM=18,BI.DateTrigger.MULTI_DATE_CALENDAR=19,BI.DateTrigger.MULTI_DATE_SEGMENT_NUM={},BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_PREV]=BI.i18nText("BI-Multi_Date_Year_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_AFTER]=BI.i18nText("BI-Multi_Date_Year_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_BEGIN]=BI.i18nText("BI-Multi_Date_Year_Begin"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_END]=BI.i18nText("BI-Multi_Date_Year_End"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_PREV]=BI.i18nText("BI-Multi_Date_Quarter_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_AFTER]=BI.i18nText("BI-Multi_Date_Quarter_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN]=BI.i18nText("BI-Multi_Date_Quarter_Begin"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_END]=BI.i18nText("BI-Multi_Date_Quarter_End"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_PREV]=BI.i18nText("BI-Multi_Date_Month_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_AFTER]=BI.i18nText("BI-Multi_Date_Month_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_BEGIN]=BI.i18nText("BI-Multi_Date_Month_Begin"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_END]=BI.i18nText("BI-Multi_Date_Month_End"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_PREV]=BI.i18nText("BI-Multi_Date_Week_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_AFTER]=BI.i18nText("BI-Multi_Date_Week_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_PREV]=BI.i18nText("BI-Multi_Date_Day_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_AFTER]=BI.i18nText("BI-Multi_Date_Day_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_TODAY]=BI.i18nText("BI-Multi_Date_Today"),BI.DateTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.DateTrigger.EVENT_START="EVENT_START",BI.DateTrigger.EVENT_STOP="EVENT_STOP",BI.DateTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.DateTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.DateTrigger.EVENT_VALID="EVENT_VALID",BI.DateTrigger.EVENT_ERROR="EVENT_ERROR",BI.DateTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.DateTrigger.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.shortcut("bi.date_trigger",BI.DateTrigger),BI.DatePaneWidget=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.DatePaneWidget.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-date-pane-widget",min:"1900-01-01",max:"2099-12-31",selectedTime:null})},_init:function(){BI.DatePaneWidget.superclass._init.apply(this,arguments);var a=this,b=this.options;this.today=new Date,this._year=this.today.getFullYear(),this._month=this.today.getMonth(),this.selectedTime=b.selectedTime||{year:this._year,month:this._month},this.datePicker=BI.createWidget({type:"bi.date_picker",min:b.min,max:b.max}),this.datePicker.on(BI.DatePicker.EVENT_CHANGE,function(){a.selectedTime=a.datePicker.getValue(),a.calendar.setSelect(BI.Calendar.getPageByDateJSON(a.selectedTime))}),this.calendar=BI.createWidget({direction:"top",element:this,logic:{dynamic:!1},type:"bi.navigation",tab:this.datePicker,cardCreator:BI.bind(this._createNav,this)}),this.calendar.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedTime=a.calendar.getValue(),a.calendar.empty(),a.setValue(a.selectedTime),a.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE)})},_createNav:function(a){var b=BI.Calendar.getDateJSONByPage(a),c=BI.createWidget({type:"bi.calendar",logic:{dynamic:!1},min:this.options.min,max:this.options.max,year:b.year,month:b.month,day:this.selectedTime.day});return c},_getNewCurrentDate:function(){var a=new Date;return{year:a.getFullYear(),month:a.getMonth()}},_setCalenderValue:function(a){this.calendar.setSelect(BI.Calendar.getPageByDateJSON(a)),this.calendar.setValue(a),this.selectedTime=a},_setDatePicker:function(a){BI.isNull(a)||BI.isNull(a.year)||BI.isNull(a.month)?this.datePicker.setValue(this._getNewCurrentDate()):this.datePicker.setValue(a)},_setCalendar:function(a){BI.isNull(a)||BI.isNull(a.day)?(this.calendar.empty(),this._setCalenderValue(this._getNewCurrentDate())):this._setCalenderValue(a)},setValue:function(a){this._setDatePicker(a),this._setCalendar(a)},getValue:function(){return this.selectedTime}}),BI.shortcut("bi.date_pane_widget",BI.DatePaneWidget),BI.DateTimeCombo=BI.inherit(BI.Single,{constants:{popupHeight:290,popupWidth:270,comboAdjustHeight:1,border:1,DATE_MIN_VALUE:"1900-01-01",DATE_MAX_VALUE:"2099-12-31"},_defaultConfig:function(){return BI.extend(BI.DateTimeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-combo bi-border",height:24})},_init:function(){BI.DateTimeCombo.superclass._init.apply(this,arguments);var a=this,b=(this.options,new Date);this.storeValue={year:b.getFullYear(),month:b.getMonth(),day:b.getDate(),hour:b.getHours(),minute:b.getMinutes(),second:b.getSeconds()},this.trigger=BI.createWidget({type:"bi.date_time_trigger",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),this.popup=BI.createWidget({type:"bi.date_time_popup",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),a.setValue(this.storeValue),this.popup.on(BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE,function(){a.setValue(a.storeValue),a.hidePopupView(),a.fireEvent(BI.DateTimeCombo.EVENT_CANCEL)}),this.popup.on(BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE,function(){a.storeValue=a.popup.getValue(),a.setValue(a.storeValue),a.hidePopupView(),a.fireEvent(BI.DateTimeCombo.EVENT_CONFIRM)}),this.popup.on(BI.DateTimePopup.CALENDAR_EVENT_CHANGE,function(){a.trigger.setValue(a.popup.getValue()),a.fireEvent(BI.DateTimeCombo.EVENT_CHANGE)}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,adjustLength:this.constants.comboAdjustHeight,popup:{el:this.popup,maxHeight:this.constants.popupHeight,width:this.constants.popupWidth,stopPropagation:!1}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW)});var c=BI.createWidget({type:"bi.trigger_icon_button",cls:"bi-trigger-date-button chart-date-normal-font bi-border-right",width:30,height:24});c.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.htape",element:this,items:[{type:"bi.absolute",items:[{el:this.combo,top:0,left:0,right:0,bottom:0},{el:c,top:0,left:0}]}]})},setValue:function(a){this.storeValue=a,this.popup.setValue(a),this.trigger.setValue(a)},getValue:function(){return this.storeValue},hidePopupView:function(){this.combo.hideView()}}),BI.DateTimeCombo.EVENT_CANCEL="EVENT_CANCEL",BI.DateTimeCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DateTimeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW="BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.date_time_combo",BI.DateTimeCombo),BI.CustomDateTimeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.CustomDateTimeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-custom-date-time-combo"})},_init:function(){BI.CustomDateTimeCombo.superclass._init.apply(this,arguments);var a=this;this.DateTime=BI.createWidget({type:"bi.date_time_combo",element:this}),this.DateTime.on(BI.DateTimeCombo.EVENT_CANCEL,function(){a.fireEvent(BI.CustomDateTimeCombo.EVENT_CHANGE),a.fireEvent(BI.CustomDateTimeCombo.EVENT_CANCEL)}),this.DateTime.on(BI.DateTimeCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.CustomDateTimeCombo.EVENT_CHANGE),a.fireEvent(BI.CustomDateTimeCombo.EVENT_CONFIRM)}),this.DateTime.on(BI.DateTimeCombo.EVENT_CHANGE,function(){a.fireEvent(BI.CustomDateTimeCombo.EVENT_CHANGE)})},getValue:function(){return this.DateTime.getValue()},setValue:function(a){this.DateTime.setValue(a)}}),BI.CustomDateTimeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.CustomDateTimeCombo.EVENT_CANCEL="EVENT_CANCEL",BI.CustomDateTimeCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.custom_date_time_combo",BI.CustomDateTimeCombo),BI.DateTimePopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DateTimePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-popup",width:268,height:290})},_init:function(){BI.DateTimePopup.superclass._init.apply(this,arguments);var a=this;this.options;this.cancelButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top bi-border-right",shadow:!0,text:BI.i18nText("BI-Basic_Cancel")}),this.cancelButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE)}),this.okButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top",shadow:!0,text:BI.i18nText("BI-Basic_OK")}),this.okButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE)}),this.dateCombo=BI.createWidget({type:"bi.date_calendar_popup",min:a.options.min,max:a.options.max}),a.dateCombo.on(BI.DateCalendarPopup.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)}),this.dateSelect=BI.createWidget({type:"bi.horizontal",cls:"bi-border-top",items:[{type:"bi.label",text:BI.i18nText("BI-Basic_Time"),width:45},{type:"bi.date_time_select",max:23,min:0,width:60,height:30,ref:function(b){a.hour=b,a.hour.on(BI.DateTimeSelect.EVENT_CONFIRM,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)})}},{type:"bi.label",text:":",width:15},{type:"bi.date_time_select",max:59,min:0,width:60,height:30,ref:function(b){a.minute=b,a.minute.on(BI.DateTimeSelect.EVENT_CONFIRM,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)})}},{type:"bi.label",text:":",width:15},{type:"bi.date_time_select",max:59,min:0,width:60,height:30,ref:function(b){a.second=b,a.second.on(BI.DateTimeSelect.EVENT_CONFIRM,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)})}}]});var b=new Date;this.dateCombo.setValue({year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),this.hour.setValue(b.getHours()),this.minute.setValue(b.getMinutes()),this.second.setValue(b.getSeconds()),this.dateButton=BI.createWidget({type:"bi.grid",items:[[this.cancelButton,this.okButton]]}),BI.createWidget({element:this,type:"bi.vtape",items:[{el:this.dateCombo},{el:this.dateSelect,height:50},{el:this.dateButton,height:30}]})},setValue:function(a){var b,c=a;BI.isNull(c)?(b=new Date,this.dateCombo.setValue({year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),this.hour.setValue(b.getHours()),this.minute.setValue(b.getMinutes()),this.second.setValue(b.getSeconds())):(this.dateCombo.setValue({year:c.year,month:c.month,day:c.day}),this.hour.setValue(c.hour),this.minute.setValue(c.minute),this.second.setValue(c.second))},getValue:function(){return{year:this.dateCombo.getValue().year,month:this.dateCombo.getValue().month,day:this.dateCombo.getValue().day,hour:this.hour.getValue(),minute:this.minute.getValue(),second:this.second.getValue()}}}),BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE="BUTTON_CANCEL_EVENT_CHANGE",BI.DateTimePopup.CALENDAR_EVENT_CHANGE="CALENDAR_EVENT_CHANGE",BI.shortcut("bi.date_time_popup",BI.DateTimePopup),BI.DateTimeSelect=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DateTimeSelect.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-select bi-border",max:23,min:0})},_init:function(){BI.DateTimeSelect.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.sign_editor",value:this._alertInEditorValue(b.min),errorText:BI.i18nText("BI-Please_Input_Natural_Number"),validationChecker:function(a){return BI.isNaturalNumber(a)}}),this.editor.on(BI.TextEditor.EVENT_CONFIRM,function(){a._finetuning(0),a.fireEvent(BI.DateTimeSelect.EVENT_CONFIRM)}),this.topBtn=BI.createWidget({type:"bi.icon_button",cls:"column-pre-page-h-font top-button bi-border-left bi-border-bottom"}),this.topBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(1),a.fireEvent(BI.DateTimeSelect.EVENT_CONFIRM)}),this.bottomBtn=BI.createWidget({type:"bi.icon_button",cls:"column-next-page-h-font bottom-button bi-border-left"}),this.bottomBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(-1),a.fireEvent(BI.DateTimeSelect.EVENT_CONFIRM)}),this._finetuning(0),BI.createWidget({type:"bi.htape",element:this,items:[this.editor,{el:{type:"bi.grid",columns:1,rows:2,items:[{column:0,row:0,el:this.topBtn},{column:0,row:1,el:this.bottomBtn}]},width:30}]})},_alertOutEditorValue:function(a){return a>this.options.max&&(a=this.options.min),athis.options.max&&(a=this.options.min),a0&&a[c-1].xb)return!0});return c.y}var c=this,d=(this.options,this.pathChooser.routes),e=this.pathChooser.pathes,f=this.pathChooser.store;this.arrows={},BI.each(d,function(d,g){c.arrows[d]=[],BI.each(g,function(g,h){c.arrows[d][g]=[];var i=e[d][g];BI.each(i,function(a,b){if(a>0&&a0&&(e=c._drawOneArrow(i[a-1],3)):e=c._drawOneArrow(i[a],1)):b.x===i[a-1].x&&(e=b.y>i[a-1].y?f[BI.first(h)].direction===-1?c._drawOneArrow(i[a-1],0):c._drawOneArrow(b,2):f[h[h.length-2]].direction===-1?c._drawOneArrow(i[a-1],2):c._drawOneArrow(b,0)),e&&c.arrows[d][g].push(e)}}),BI.each(h,function(e,j){if(0!==e){var k,l=h[e-1];if(f[l].direction===-1){var m=c.pathChooser.getRegionIndexById(l),n=a(m,-1),o=b(i,n);k=c._drawOneArrow({x:n,y:o},3)}else{var m=c.pathChooser.getRegionIndexById(j),n=a(m),o=b(i,n);k=c._drawOneArrow({x:n,y:o},1)}k&&c.arrows[d][g].push(k)}})})})},_setValue:function(a,b){var c=this,d=this._const.lineColor,e=this._const.selectLineColor,f=this.pathChooser.routes,g=this.pathChooser.start,h=[a];g.contains(a)&&(h=g),BI.each(h,function(a,b){BI.each(c.arrows[b],function(a,b){BI.each(b,function(a,b){b.attr({fill:d,stroke:d}).toFront()})})}),BI.each(this.arrows[a][b],function(a,b){b.attr({fill:e,stroke:e}).toFront()});for(var i=BI.last(f[a][b]);i&&f[i]&&1===f[i].length;)BI.each(c.arrows[i][0],function(a,b){b.attr({fill:e,stroke:e}).toFront()}),i=BI.last(f[i][0])},setValue:function(a){this.pathChooser.setValue(a),this._unselectAllArrows();var b=this.pathChooser.routes,c=BI.keys(b),d=this,e=[],f=[];BI.each(a,function(a,b){BI.contains(c,b)&&f.length>0&&(f.push(b),e.push(f),f=[]),f.push(b)}),f.length>0&&e.push(f),BI.each(e,function(a,c){var e=c[0],f=BI.findIndex(b[e],function(a,b){if(BI.isEqual(c,b))return!0});f>=0&&d._setValue(e,f)})},getValue:function(){return this.pathChooser.getValue()},populate:function(a){this.pathChooser.populate(a),this._drawArrows()}}),BI.DirectionPathChooser.EVENT_CHANGE="DirectionPathChooser.EVENT_CHANGE",BI.shortcut("bi.direction_path_chooser",BI.DirectionPathChooser),BI.DownListCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DownListCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-combo",invalid:!1,height:25,items:[],adjustLength:0,direction:"bottom",trigger:"click",el:{}})},_init:function(){BI.DownListCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popupview=BI.createWidget({type:"bi.down_list_popup",items:b.items,chooseType:b.chooseType}),this.popupview.on(BI.DownListPopup.EVENT_CHANGE,function(b){a.fireEvent(BI.DownListCombo.EVENT_CHANGE,b),a.downlistcombo.hideView()}),this.popupview.on(BI.DownListPopup.EVENT_SON_VALUE_CHANGE,function(b,c){a.fireEvent(BI.DownListCombo.EVENT_SON_VALUE_CHANGE,b,c),a.downlistcombo.hideView()}),this.downlistcombo=BI.createWidget({element:this,type:"bi.combo",trigger:b.trigger,isNeedAdjustWidth:!1,adjustLength:b.adjustLength,direction:b.direction,el:BI.createWidget(b.el,{type:"bi.icon_trigger",extraCls:b.iconCls?b.iconCls:"pull-down-font",width:b.width,height:b.height}),popup:{el:this.popupview,stopPropagation:!0,maxHeight:1e3}}),this.downlistcombo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.DownListCombo.EVENT_BEFORE_POPUPVIEW)})},hideView:function(){this.downlistcombo.hideView()},showView:function(){this.downlistcombo.showView()},populate:function(a){this.popupview.populate(a)},setValue:function(a){this.popupview.setValue(a)},getValue:function(){return this.popupview.getValue()}}),BI.DownListCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DownListCombo.EVENT_SON_VALUE_CHANGE="EVENT_SON_VALUE_CHANGE",BI.DownListCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.down_list_combo",BI.DownListCombo),BI.DownListGroup=BI.inherit(BI.Widget,{constants:{iconCls:"check-mark-ha-font"},_defaultConfig:function(){return BI.extend(BI.DownListGroup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-group",items:[{el:{}}]})},_init:function(){BI.DownListGroup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.downlistgroup=BI.createWidget({element:this,type:"bi.button_tree",items:a.items,chooseType:0,layouts:[{type:"bi.vertical",hgap:0,vgap:0}]}),this.downlistgroup.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.DownListGroup.EVENT_CHANGE,arguments)})},getValue:function(){return this.downlistgroup.getValue()},setValue:function(a){this.downlistgroup.setValue(a)}}),BI.DownListGroup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_group",BI.DownListGroup),BI.DownListItem=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.DownListItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-down-list-item bi-list-item-active",cls:"",height:25,logic:{dynamic:!0},selected:!1,iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.DownListItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.text=BI.createWidget({type:"bi.icon_text_item",element:this,height:b.height,text:b.text,value:b.value,logic:b.logic,selected:b.selected,disabled:b.disabled,iconHeight:b.iconHeight,iconWidth:b.iconWidth,textHgap:b.textHgap,textVgap:b.textVgap,textLgap:b.textLgap,textRgap:b.textRgap,father:b.father}),this.text.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.text.on(BI.IconTextItem.EVENT_CHANGE,function(){a.fireEvent(BI.DownListItem.EVENT_CHANGE)})},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},isSelected:function(){return this.text.isSelected()},setSelected:function(a){this.text.setSelected(a)},setValue:function(a){this.text.setValue(a)},getValue:function(){return this.text.getValue()}}),BI.DownListItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_item",BI.DownListItem),BI.DownListGroupItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.DownListGroupItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-down-list-group-item",logic:{dynamic:!1},iconCls1:"dot-e-font",iconCls2:"pull-right-e-font"})},_init:function(){BI.DownListGroupItem.superclass._init.apply(this,arguments);var a=this.options,b=this;this.text=BI.createWidget({type:"bi.label",cls:"list-group-item-text",textAlign:"left",text:a.text,value:a.value,height:a.height}),this.icon1=BI.createWidget({type:"bi.icon_button",cls:a.iconCls1,width:25,forceNotSelected:!0}),this.icon2=BI.createWidget({type:"bi.icon_button",cls:a.iconCls2,width:25,forceNotSelected:!0});var c=BI.createWidget({type:"bi.layout",width:25});BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.icon2,top:0,bottom:0,right:0}]}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",this.icon1,this.text,c)})))),this.element.hover(function(){b.isEnabled()&&b.hover()},function(){b.isEnabled()&&b.dishover()})},hover:function(){BI.DownListGroupItem.superclass.hover.apply(this,arguments),this.icon1.element.addClass("hover"),this.icon2.element.addClass("hover")},dishover:function(){BI.DownListGroupItem.superclass.dishover.apply(this,arguments),this.icon1.element.removeClass("hover"),this.icon2.element.removeClass("hover")},doClick:function(){BI.DownListGroupItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.DownListGroupItem.EVENT_CHANGE,this.getValue())},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},setValue:function(a){var b=this,c=this.options;a=BI.isArray(a)?a:[a],BI.find(a,function(a,d){return BI.contains(c.childValues,d)?(b.icon1.setSelected(!0),!0):void b.icon1.setSelected(!1)})}}),BI.DownListGroupItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_group_item",BI.DownListGroupItem),BI.DownListPopup=BI.inherit(BI.Pane,{constants:{nextIcon:"pull-right-e-font",height:25,iconHeight:12,iconWidth:12,hgap:0,vgap:0,border:1},_defaultConfig:function(){var a=BI.DownListPopup.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-down-list-popup",items:[],chooseType:BI.Selection.Multi})},_init:function(){BI.DownListPopup.superclass._init.apply(this,arguments),this.singleValues=[],this.childValueMap={},this.fatherValueMap={};var a=this,b=this.options,c=this._createChildren(b.items);this.popup=BI.createWidget({type:"bi.button_tree",items:BI.createItems(c,{},{adjustLength:-2}),layouts:[{type:"bi.vertical",hgap:this.constants.hgap,vgap:this.constants.vgap}],chooseType:b.chooseType}),this.popup.on(BI.ButtonTree.EVENT_CHANGE,function(b,c){var d=b;if(BI.isNotNull(a.childValueMap[b])?(d=a.childValueMap[b],a.fireEvent(BI.DownListPopup.EVENT_SON_VALUE_CHANGE,d,a.fatherValueMap[b])):a.fireEvent(BI.DownListPopup.EVENT_CHANGE,d,c),!a.singleValues.contains(d)){var e=a.getValue(),f=[];BI.each(e,function(a,b){b.value!=d&&f.push(b)}),a.setValue(f)}}),BI.createWidget({type:"bi.vertical",element:this,items:[this.popup]})},_createChildren:function(a){var b=this,c=[];return BI.each(a,function(d,e){var f={type:"bi.down_list_group",items:[]};if(BI.each(e,function(a,c){BI.isNotEmptyArray(c.children)&&!BI.isEmpty(c.el)?(c.type="bi.combo_group",c.cls="down-list-group",c.trigger="hover",c.isNeedAdjustWidth=!1,c.el.title=c.el.title||c.el.text,c.el.type="bi.down_list_group_item",c.el.logic={dynamic:!0},c.el.height=b.constants.height,c.el.iconCls2=b.constants.nextIcon,c.popup={lgap:4,el:{type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]}},c.el.childValues=[],BI.each(c.children,function(a,d){var e=BI.deepClone(c.el.value),f=BI.deepClone(d.value);b.singleValues.push(d.value),d.type="bi.down_list_item",d.extraCls=" child-down-list-item",d.title=d.title||d.text,d.textRgap=10,d.isNeedAdjustWidth=!1,d.logic={dynamic:!0},d.father=e,b.fatherValueMap[b._createChildValue(e,f)]=e,b.childValueMap[b._createChildValue(e,f)]=f,d.value=b._createChildValue(e,f),c.el.childValues.push(d.value)})):(c.type="bi.down_list_item",c.title=c.title||c.text,c.textRgap=10,c.isNeedAdjustWidth=!1,c.logic={dynamic:!0});var d={};d.el=c,f.items.push(d)}),b._isGroup(f.items)&&BI.each(f.items,function(a,c){b.singleValues.push(c.el.value)}),c.push(f),b._needSpliter(d,a.length)){var g=BI.createWidget({type:"bi.vertical",items:[{el:{type:"bi.layout",cls:"bi-down-list-spliter bi-border-top cursor-pointer",height:0}}],cls:"bi-down-list-spliter-container cursor-pointer",lgap:10,rgap:10});c.push(g)}}),c},_isGroup:function(a){return a.length>1},_needSpliter:function(a,b){return a0?b.type="bi.file_manager_folder_item":b.type="bi.file_manager_file_item"}),a},setValue:function(a){this.button_group.setValue(a)},getValue:function(){return this.button_group.getValue()},getNotSelectedValue:function(){return this.button_group.getNotSelectedValue()},getAllLeaves:function(){return this.button_group.getAllLeaves()},getAllButtons:function(){return this.button_group.getAllButtons()},getSelectedButtons:function(){return this.button_group.getSelectedButtons()},getNotSelectedButtons:function(){return this.button_group.getNotSelectedButtons()},populate:function(a){this.button_group.populate(this._formatItems(a))}}),BI.FileManagerButtonGroup.EVENT_CHANGE="FileManagerButtonGroup.EVENT_CHANGE",BI.shortcut("bi.file_manager_button_group",BI.FileManagerButtonGroup),BI.FileManager=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FileManager.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager",el:{},items:[]})},_init:function(){BI.FileManager.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=new BI.Tree;var c=BI.Tree.transformToTreeFormat(b.items);this.tree.initTree(c),this.selectedValues=[],this.nav=BI.createWidget({type:"bi.file_manager_nav",items:BI.deepClone(c)}),this.nav.on(BI.FileManagerNav.EVENT_CHANGE,function(b,c){if("-1"==b)a.populate({children:a.tree.toJSON()});else{var d=a.tree.search(c.attr("id"));a.populate(BI.extend({id:d.id},d.get("data"),{children:a.tree.toJSON(d)}))}a.setValue(a.selectedValues)}),this.list=BI.createWidget(b.el,{type:"bi.file_manager_list",items:c}),this.list.on(BI.Controller.EVENT_CHANGE,function(b,c,d){if(b===BI.Events.CHANGE){var e=a.tree.search(d.attr("id"));a.populate(BI.extend({id:e.id},e.get("data"),{children:a.tree.toJSON(e)}))}else if(b===BI.Events.CLICK){var f=[];if(d instanceof BI.MultiSelectBar){var g=a.list.getValue();c=g.type===BI.Selection.All,f=BI.concat(g.assist,g.value)}else f=d.getAllLeaves();BI.each(f,function(b,d){c===!0?a.selectedValues.pushDistinct(d):a.selectedValues.remove(d)})}a.setValue(a.selectedValues)}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.list,left:0,right:0,top:0,bottom:10},{el:this.nav,left:40,right:100,top:0}]})},setValue:function(a){this.selectedValues=a||[],this.list.setValue(this.selectedValues)},getValue:function(){var a=this.list.getValue(),b=a.type===BI.Selection.All?a.assist:a.value;return b.pushDistinctArray(this.selectedValues),b},_populate:function(a){this.list.populate(a)},getSelectedValue:function(){return this.nav.getValue()[0]},getSelectedId:function(){return this.nav.getId()[0]},populate:function(a){var b=BI.deepClone(a);this._populate(a.children),this.nav.populate(b)}}),BI.FileManager.EVENT_CHANGE="FileManager.EVENT_CHANGE",BI.shortcut("bi.file_manager",BI.FileManager),BI.FileManagerFileItem=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.FileManagerFileItem.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-file-item bi-list-item bi-border-bottom",height:30})},_init:function(){BI.FileManagerFileItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checked=BI.createWidget({type:"bi.multi_select_bar",text:"",width:36,height:b.height}),this.checked.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),BI.createWidget({type:"bi.htape",element:this,items:[{el:this.checked,width:36},{el:{type:"bi.icon_button",cls:"create-by-me-file-font"},width:20},{el:{type:"bi.label",textAlign:"left",height:b.height,text:b.text,value:b.value}}]})},getAllLeaves:function(){return[this.options.value]},isSelected:function(){return this.checked.isSelected()},setSelected:function(a){this.checked.setSelected(a)}}),BI.FileManagerFileItem.EVENT_CHANGE="FileManagerFileItem.EVENT_CHANGE",BI.shortcut("bi.file_manager_file_item",BI.FileManagerFileItem),BI.FileManagerFolderItem=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.FileManagerFolderItem.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-folder-item bi-list-item bi-border-bottom",height:30})},_init:function(){BI.FileManagerFolderItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checked=BI.createWidget({type:"bi.multi_select_bar",text:"",width:36,height:b.height}),this.checked.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button=BI.createWidget({type:"bi.text_button",textAlign:"left",height:b.height,text:b.text,value:b.value}),this.button.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CHANGE,b.value,a)}),this.tree=new BI.Tree,this.tree.initTree([{id:b.id,children:b.children}]),this.selectValue=[],BI.createWidget({type:"bi.htape",element:this,items:[{el:this.checked,width:36},{el:{type:"bi.icon_button",cls:"create-by-me-folder-font"},width:20},{el:this.button}]})},setAllSelected:function(a){this.checked.setSelected(a),this.selectValue=[]},setHalfSelected:function(a){this.checked.setHalfSelected(a),a||(this.selectValue=[])},setValue:function(a){var b=(this.options,!1),c=[];this.tree.traverse(function(d){d.isLeaf()&&(BI.contains(a,d.get("data").value)?c.push(d.get("data").value):b=!0)}),this.setAllSelected(c.length>0&&!b),this.setHalfSelected(c.length>0&&b),this.checked.isHalfSelected()&&(this.selectValue=c)},getAllButtons:function(){return[this]},getAllLeaves:function(){var a=(this.options,[]);return this.tree.traverse(function(b){b.isLeaf()&&a.push(b.get("data").value)}),a},getNotSelectedValue:function(){var a=this,b=(this.options,[]),c=this.checked.isSelected();if(c===!0)return b;var d=this.checked.isHalfSelected();return this.tree.traverse(function(c){if(c.isLeaf()){var e=c.get("data").value;d===!0?BI.contains(a.selectValue,c.get("data").value)||b.push(e):b.push(e)}}),b},getValue:function(){var a=[];return this.checked.isSelected()?(this.tree.traverse(function(b){b.isLeaf()&&a.push(b.get("data").value)}),a):this.checked.isHalfSelected()?this.selectValue:[]}}),BI.FileManagerFolderItem.EVENT_CHANGE="FileManagerFolderItem.EVENT_CHANGE",BI.shortcut("bi.file_manager_folder_item",BI.FileManagerFolderItem),BI.FileManagerList=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FileManagerList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-list",el:{},items:[]})},_init:function(){BI.FileManagerList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.list=BI.createWidget({type:"bi.select_list",element:this,items:b.items,toolbar:{type:"bi.multi_select_bar",height:40,text:""},el:{type:"bi.list_pane",el:BI.isWidget(b.el)?b.el:BI.extend({type:"bi.file_manager_button_group"},b.el)}}),this.list.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},setValue:function(a){this.list.setValue({value:a})},getValue:function(){return this.list.getValue()},populate:function(a){this.list.populate(a),this.list.setToolBarVisible(!0)}}),BI.FileManagerList.EVENT_CHANGE="FileManagerList.EVENT_CHANGE",BI.shortcut("bi.file_manager_list",BI.FileManagerList),BI.FileManagerNavButton=BI.inherit(BI.Widget,{_const:{normal_color:"#ffffff",select_color:"#eff1f4"},_defaultConfig:function(){return BI.extend(BI.FileManagerNavButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-nav-button",selected:!1,height:40})},_init:function(){BI.FileManagerNavButton.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.button=BI.createWidget({type:"bi.text_button",cls:"file-manager-nav-button-text bi-card",once:!0,selected:b.selected,text:b.text,title:b.text,value:b.value,height:b.height,lgap:20,rgap:10}),this.button.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var d=BI.createWidget({type:"bi.svg",cls:"file-manager-nav-button-triangle",width:15,height:b.height}),e=d.path("M0,0L15,20L0,40").attr({stroke:c.select_color,fill:b.selected?c.select_color:c.normal_color});this.button.on(BI.TextButton.EVENT_CHANGE,function(){this.isSelected()?e.attr("fill",c.select_color):e.attr("fill",c.normal_color)}),BI.createWidget({type:"bi.default",element:this,items:[this.button]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:d,right:-15,top:0,bottom:0}]})},isSelected:function(){return this.button.isSelected()},setValue:function(a){this.button.setValue(a)},getValue:function(){return this.button.getValue()},populate:function(a){}}),BI.FileManagerNavButton.EVENT_CHANGE="FileManagerNavButton.EVENT_CHANGE",BI.shortcut("bi.file_manager_nav_button",BI.FileManagerNavButton),BI.FileManagerNav=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FileManagerNav.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-nav bi-border-left",height:40,items:[]})},_init:function(){BI.FileManagerNav.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=new BI.Tree,this.refreshTreeData(b.items),this.tree.getRoot().set("data",{text:BI.i18nText("BI-Created_By_Me"),value:BI.FileManagerNav.ROOT_CREATE_BY_ME,id:BI.FileManagerNav.ROOT_CREATE_BY_ME}),this.button_group=BI.createWidget({type:"bi.button_group",element:this,items:[{type:"bi.file_manager_nav_button",text:BI.i18nText("BI-Created_By_Me"),selected:!0,id:BI.FileManagerNav.ROOT_CREATE_BY_ME,value:BI.FileManagerNav.ROOT_CREATE_BY_ME}],layouts:[{type:"bi.horizontal"}]}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.ButtonGroup.EVENT_CHANGE,function(b,c){a.fireEvent(BI.FileManagerNav.EVENT_CHANGE,arguments)})},_getAllParents:function(a){var b,c=[];for(b=a?this.tree.search(a):this.tree.getRoot();b.parent;)c.push(b),b=b.parent;return c.push(b),c.reverse()},_formatNodes:function(a){var b=[];return BI.each(a,function(a,c){b.push(BI.extend({type:"bi.file_manager_nav_button",id:c.id},c.get("data")))}),BI.last(b).selected=!0,b},getValue:function(){return this.button_group.getValue()},getId:function(){var a=[];return BI.each(this.button_group.getSelectedButtons(),function(b,c){a.push(c.attr("id"))}),a},refreshTreeData:function(a){this.tree.initTree(BI.Tree.transformToTreeFormat(a)),this.tree.getRoot().set("data",{text:BI.i18nText("BI-Created_By_Me"),value:BI.FileManagerNav.ROOT_CREATE_BY_ME,id:BI.FileManagerNav.ROOT_CREATE_BY_ME})},populate:function(a){var b=BI.isNull(a)?[this.tree.getRoot()]:this._getAllParents(a.id);this.button_group.populate(this._formatNodes(b))}}),BI.extend(BI.FileManagerNav,{ROOT_CREATE_BY_ME:"-1"}),BI.FileManagerNav.EVENT_CHANGE="FileManagerNav.EVENT_CHANGE",BI.shortcut("bi.file_manager_nav",BI.FileManagerNav),BI.FineTuningNumberEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FineTuningNumberEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-fine-tuning-number-editor bi-border",validationChecker:function(){return!0},valueFormatter:function(a){return a},value:0,errorText:"",step:1})},_init:function(){BI.FineTuningNumberEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,value:b.valueFormatter(b.value),validationChecker:b.validationChecker,errorText:b.errorText}),this.editor.on(BI.TextEditor.EVENT_CHANGE,function(){b.value=this.getValue(),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CHANGE)}),this.editor.on(BI.TextEditor.EVENT_CONFIRM,function(){a.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM)}),this.topBtn=BI.createWidget({type:"bi.icon_button",trigger:"lclick,",cls:"column-pre-page-h-font top-button bi-border-left bi-border-bottom"}),this.topBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(b.step),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CHANGE),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM)}),this.bottomBtn=BI.createWidget({type:"bi.icon_button",trigger:"lclick,",cls:"column-next-page-h-font bottom-button bi-border-left bi-border-top"}),this.bottomBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(-b.step),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CHANGE),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM)}),BI.createWidget({type:"bi.htape",element:this,items:[this.editor,{el:{type:"bi.grid",columns:1,rows:2,items:[{column:0,row:0,el:this.topBtn},{column:0,row:1,el:this.bottomBtn}]},width:23}]})},_finetuning:function(a){var b=BI.parseFloat(this.getValue());this.setValue(b.add(a))},setUpEnable:function(a){this.topBtn.setEnable(!!a)},setBottomEnable:function(a){this.bottomBtn.setEnable(!!a)},getValue:function(){return this.options.value},setValue:function(a){var b=this.options;b.value=a,this.editor.setValue(b.valueFormatter(a))}}),BI.FineTuningNumberEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.FineTuningNumberEditor.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.fine_tuning_number_editor",BI.FineTuningNumberEditor),BI.InteractiveArrangement=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.InteractiveArrangement.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-interactive-arrangement",resizable:!0,layoutType:BI.Arrangement.LAYOUT_TYPE.GRID,items:[]})},_init:function(){BI.InteractiveArrangement.superclass._init.apply(this,arguments);var a=this,b=this.options;this.arrangement=BI.createWidget({type:"bi.adaptive_arrangement",element:this,resizable:b.resizable,layoutType:b.layoutType,items:b.items}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_SCROLL,function(){a.fireEvent(BI.InteractiveArrangement.EVENT_SCROLL,arguments)}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_RESIZE,function(){a.fireEvent(BI.InteractiveArrangement.EVENT_RESIZE,arguments)}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_ELEMENT_RESIZE,function(b,c){var d=a._getRegionClientPosition(b);a.draw({left:d.left,top:d.top},c,b)}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_ELEMENT_STOP_RESIZE,function(b,c){a.stopDraw(),a.setRegionSize(b,c)}),this.tags=[]},_isEqual:function(a,b){return this.arrangement._isEqual(a,b)},_getScrollOffset:function(){return this.arrangement._getScrollOffset()},_positionAt:function(a,b){var c=this;b=b||this.getAllRegions();var d=[],e=[],f=[],g=[],h=[],i=[];return BI.each(b,function(b,j){
-var k=c._getRegionClientPosition(j.id);Math.abs(k.left-a.left)<=3&&d.push(j),Math.abs(k.left+k.width/2-a.left)<=3&&e.push(j),Math.abs(k.left+k.width-a.left)<=3&&f.push(j),Math.abs(k.top-a.top)<=3&&g.push(j),Math.abs(k.top+k.height/2-a.top)<=3&&h.push(j),Math.abs(k.top+k.height-a.top)<=3&&i.push(j)}),{left:d,center:e,right:f,top:g,middle:h,bottom:i}},_getRegionClientPosition:function(a){var b=this.getRegionByName(a),c=this.arrangement._getScrollOffset();return{top:b.top-c.top,left:b.left-c.left,width:b.width,height:b.height,id:b.id}},_vAlign:function(a,b){var c,d=this,e=this._positionAt(a,b),f=[];if(e.left.length>0)c=this._getRegionClientPosition(e.left[0].id).left;else if(e.right.length>0){var g=this._getRegionClientPosition(e.right[0].id);c=g.left+g.width}var h=e.left.concat(e.right);return BI.each(h,function(b,e){var g=d._getRegionClientPosition(e.id);if(d._isEqual(g.left,c)||d._isEqual(g.left+g.width,c)){var h={top:g.top+g.height/2,left:c};f.push({id:e.id,start:h,end:{left:c,top:a.top}})}}),f},_leftAlign:function(a,b,c){return this._vAlign({left:a.left,top:a.top+b.height/2},c)},_rightAlign:function(a,b,c){return this._vAlign({left:a.left+b.width,top:a.top+b.height/2},c)},_hAlign:function(a,b){var c,d=this,e=this._positionAt(a,b),f=[];if(e.top.length>0){var g=this._getRegionClientPosition(e.top[0].id);c=g.top}else if(e.bottom.length>0){var g=this._getRegionClientPosition(e.bottom[0].id);c=g.top+g.height}var h=e.top.concat(e.bottom);return BI.each(h,function(b,e){var g=d._getRegionClientPosition(e.id);if(d._isEqual(g.top,c)||d._isEqual(g.top+g.height,c)){var h={top:c,left:g.left+g.width/2};f.push({id:g.id,start:h,end:{left:a.left,top:c}})}}),f},_topAlign:function(a,b,c){return this._hAlign({left:a.left+b.width/2,top:a.top},c)},_bottomAlign:function(a,b,c){return this._hAlign({left:a.left+b.width/2,top:a.top+b.height},c)},_centerAlign:function(a,b,c){var d,e=this,f=this._positionAt({left:a.left+b.width/2,top:a.top+b.height/2},c),g=[];if(f.center.length>0){var h=this._getRegionClientPosition(f.center[0].id);d=h.left+h.width/2}return BI.each(f.center,function(c,f){var h=e._getRegionClientPosition(f.id);if(e._isEqual(h.left+h.width/2,d)){var i={top:h.top+h.height/2,left:h.left+h.width/2};g.push({id:h.id,start:i,end:{left:d,top:a.top+b.height/2}})}}),g},_middleAlign:function(a,b,c){var d,e=this,f=this._positionAt({left:a.left+b.width/2,top:a.top+b.height/2},c),g=[];if(f.middle.length>0){var h=this._getRegionClientPosition(f.middle[0].id);d=h.top+h.height/2}return BI.each(f.middle,function(c,f){var h=e._getRegionClientPosition(f.id);if(e._isEqual(h.top+h.height/2,d)){var i={top:h.top+h.height/2,left:h.left+h.width/2};g.push({id:h.id,start:i,end:{left:a.left+b.width/2,top:d}})}}),g},_drawOneTag:function(a,b){var c=BI.createWidget({type:"bi.icon_button",width:13,height:13,cls:"drag-tag-font interactive-arrangement-dragtag-icon"}),d=BI.createWidget({type:"bi.icon_button",width:13,height:13,cls:"drag-tag-font interactive-arrangement-dragtag-icon"});if(this._isEqual(a.left,b.left))var e=BI.createWidget({type:"bi.layout",cls:"interactive-arrangement-dragtag-line",width:1,height:Math.abs(a.top-b.top)});else var e=BI.createWidget({type:"bi.layout",cls:"interactive-arrangement-dragtag-line",height:1,width:Math.abs(a.left-b.left)});BI.createWidget({type:"bi.absolute",element:this,items:[{el:c,left:a.left-6,top:a.top-7},{el:d,left:b.left-6,top:b.top-7},{el:e,left:Math.min(a.left,b.left),top:Math.min(a.top,b.top)}]}),this.tags.push(c),this.tags.push(d),this.tags.push(e)},stopDraw:function(){BI.each(this.tags,function(a,b){b.destroy()}),this.tags=[]},_getRegionExcept:function(a,b){var c=[];return BI.each(b||this.getAllRegions(),function(b,d){a&&d.id===a||c.push(d)}),c},getClientWidth:function(){return this.arrangement.getClientWidth()},getClientHeight:function(){return this.arrangement.getClientHeight()},getPosition:function(a,b,c){var d,e=this.getAllRegions();a&&(d=this._getRegionClientPosition(a));var f=this._getRegionExcept(a,e);b=b||{left:d.left,top:d.top},c=c||{width:d.width,height:d.height};var g=this._leftAlign(b,c,f),h=this._rightAlign(b,c,f),i=this._topAlign(b,c,f,f),j=this._bottomAlign(b,c,f),k=this._centerAlign(b,c,f),l=this._middleAlign(b,c,f);return BI.each(k,function(a,d){b.left=d.end.left-c.width/2}),BI.each(h,function(a,d){b.left=d.end.left-c.width}),BI.each(g,function(a,c){b.left=c.end.left}),BI.each(l,function(a,d){b.top=d.end.top-c.height/2}),BI.each(j,function(a,d){b.top=d.end.top-c.height}),BI.each(i,function(a,c){b.top=c.end.top}),b},getSize:function(a,b,c){var d,e=this.getAllRegions();a&&(d=this._getRegionClientPosition(a));var f=this._getRegionExcept(a,e);b=b||{left:d.left,top:d.top},c=c||{width:d.width,height:d.height};var g=this._leftAlign(b,c,f),h=this._rightAlign(b,c,f),i=this._topAlign(b,c,f,f),j=this._bottomAlign(b,c,f),k=this._centerAlign(b,c,f),l=this._middleAlign(b,c,f);return BI.each(k,function(a,d){c.width=2*(d.end.left-b.left)}),BI.each(h,function(a,d){c.width=d.end.left-b.left}),BI.each(g,function(a,b){}),BI.each(l,function(a,d){c.height=2*(d.end.top-b.top)}),BI.each(j,function(a,d){c.height=d.end.top-b.top}),BI.each(i,function(a,b){}),c},draw:function(a,b,c){var d=this;switch(this.stopDraw(),this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:var e=this._getRegionExcept(c),f=this._leftAlign(a,b,e),g=this._rightAlign(a,b,e),h=this._topAlign(a,b,e),i=this._bottomAlign(a,b,e),j=this._centerAlign(a,b,e),k=this._middleAlign(a,b,e);BI.each(j,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(g,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(f,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(k,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(i,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(h,function(a,b){d._drawOneTag(b.start,b.end)});break;case BI.Arrangement.LAYOUT_TYPE.GRID:}},addRegion:function(a,b){return this.stopDraw(),this.arrangement.addRegion(a,b)},deleteRegion:function(a){return this.arrangement.deleteRegion(a)},setRegionSize:function(a,b){return b=this.getSize(a,null,b),this.arrangement.setRegionSize(a,b)},setPosition:function(a,b){if(this.stopDraw(),a.left>0&&a.top>0)switch(this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:a=this.getPosition(null,a,b),this.draw(a,b);break;case BI.Arrangement.LAYOUT_TYPE.GRID:}var c=this.arrangement.setPosition(a,b);return c},setRegionPosition:function(a,b){if(b.left>0&&b.top>0)switch(this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:b=this.getPosition(a,b);break;case BI.Arrangement.LAYOUT_TYPE.GRID:}return this.arrangement.setRegionPosition(a,b)},setDropPosition:function(a,b){var c=this;if(this.stopDraw(),a.left>0&&a.top>0)switch(this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:a=this.getPosition(null,a,b),this.draw(a,b);break;case BI.Arrangement.LAYOUT_TYPE.GRID:}var d=c.arrangement.setDropPosition(a,b);return function(){d(),c.stopDraw()}},scrollInterval:function(){this.arrangement.scrollInterval.apply(this.arrangement,arguments)},scrollEnd:function(){this.arrangement.scrollEnd.apply(this.arrangement,arguments)},scrollTo:function(a){this.arrangement.scrollTo(a)},zoom:function(a){this.arrangement.zoom(a)},resize:function(){return this.arrangement.resize()},relayout:function(){return this.arrangement.relayout()},setLayoutType:function(a){this.arrangement.setLayoutType(a)},getLayoutType:function(){return this.arrangement.getLayoutType()},getLayoutRatio:function(){return this.arrangement.getLayoutRatio()},getHelper:function(){return this.arrangement.getHelper()},getRegionByName:function(a){return this.arrangement.getRegionByName(a)},getAllRegions:function(){return this.arrangement.getAllRegions()},revoke:function(){return this.arrangement.revoke()},populate:function(a){this.arrangement.populate(a)}}),BI.InteractiveArrangement.EVENT_RESIZE="InteractiveArrangement.EVENT_RESIZE",BI.InteractiveArrangement.EVENT_SCROLL="InteractiveArrangement.EVENT_SCROLL",BI.shortcut("bi.interactive_arrangement",BI.InteractiveArrangement),BI.MonthCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MonthCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-month-combo",behaviors:{},height:25})},_init:function(){BI.MonthCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.month_trigger"}),this.trigger.on(BI.MonthTrigger.EVENT_CONFIRM,function(b){this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getValue()):this.getKey()||a.setValue(),a.fireEvent(BI.MonthCombo.EVENT_CONFIRM)}),this.trigger.on(BI.MonthTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.MonthTrigger.EVENT_START,function(){a.combo.hideView()}),this.trigger.on(BI.MonthTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.trigger.on(BI.MonthTrigger.EVENT_CHANGE,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.popup=BI.createWidget({type:"bi.month_popup",behaviors:b.behaviors}),this.popup.on(BI.MonthPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MonthCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",element:this,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,el:this.popup}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MonthCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.MonthCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.MonthCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.month_combo",BI.MonthCombo),BI.MonthPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MonthPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-month-popup",behaviors:{}})},_init:function(){BI.MonthPopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=[0,6,1,7,2,8,3,9,4,10,5,11],d=[];d.push(c.slice(0,2)),d.push(c.slice(2,4)),d.push(c.slice(4,6)),d.push(c.slice(6,8)),d.push(c.slice(8,10)),d.push(c.slice(10,12)),d=BI.map(d,function(a,b){return BI.map(b,function(a,b){return{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"center",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:23,width:38,value:b,text:b+1}})}),this.month=BI.createWidget({type:"bi.button_group",element:this,behaviors:b.behaviors,items:BI.createItems(d,{}),layouts:[BI.LogicFactory.createLogic("table",BI.extend({dynamic:!0},{columns:2,rows:6,columnSize:[.5,.5],rowSize:25})),{type:"bi.center_adapt",vgap:1,hgap:2}]}),this.month.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.MonthPopup.EVENT_CHANGE)})},getValue:function(){return this.month.getValue()[0]},setValue:function(a){this.month.setValue([a])}}),BI.MonthPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.month_popup",BI.MonthPopup),BI.MonthTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,triggerWidth:25,errorText:BI.i18nText("BI-Month_Trigger_Error_Text")},_defaultConfig:function(){return BI.extend(BI.MonthTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-month-trigger bi-border",height:25})},_init:function(){BI.MonthTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(a){return""===a||BI.isPositiveInteger(a)&&a>=1&&a<=12},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:c.errorText}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.MonthTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.MonthTrigger.EVENT_CHANGE)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.MonthTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.MonthTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.MonthTrigger.EVENT_STOP)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",text:BI.i18nText("BI-Multi_Date_Month"),baseCls:"bi-trigger-month-text",width:c.triggerWidth},width:c.triggerWidth},{el:{type:"bi.trigger_icon_button",width:c.triggerWidth},width:c.triggerWidth}]})},setValue:function(a){return BI.isNotNull(a)?(this.editor.setState(a+1),this.editor.setValue(a+1),void this.editor.setTitle(a+1)):(this.editor.setState(),this.editor.setValue(),void this.editor.setTitle())},getKey:function(){return 0|this.editor.getValue()},getValue:function(){return this.editor.getValue()-1}}),BI.MonthTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.MonthTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.MonthTrigger.EVENT_START="EVENT_START",BI.MonthTrigger.EVENT_STOP="EVENT_STOP",BI.MonthTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.month_trigger",BI.MonthTrigger),BI.MultiDateCard=BI.inherit(BI.Widget,{constants:{lgap:80,itemHeight:35,defaultEditorValue:"1"},_defaultConfig:function(){return $.extend(BI.MultiDateCard.superclass._defaultConfig.apply(this,arguments),{})},dateConfig:function(){},defaultSelectedItem:function(){},_init:function(){BI.MultiDateCard.superclass._init.apply(this,arguments);var a=this;this.options;this.label=BI.createWidget({type:"bi.label",height:this.constants.itemHeight,textAlign:"left",text:BI.i18nText("BI-Multi_Date_Relative_Current_Time"),cls:"bi-multidate-inner-label bi-tips"}),this.radioGroup=BI.createWidget({type:"bi.button_group",chooseType:0,items:BI.createItems(this.dateConfig(),{type:"bi.multidate_segment",height:this.constants.itemHeight}),layouts:[{type:"bi.vertical"}]}),this.radioGroup.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CONFIRM&&a.fireEvent(BI.MultiDateCard.EVENT_CHANGE)}),this.radioGroup.on(BI.ButtonGroup.EVENT_CHANGE,function(){a.setValue(a.getValue()),a.fireEvent(BI.MultiDateCard.EVENT_CHANGE)}),BI.createWidget({element:this,type:"bi.center_adapt",lgap:this.constants.lgap,items:[{type:"bi.vertical",items:[this.label,this.radioGroup]}]})},getValue:function(){var a=this.radioGroup.getSelectedButtons()[0],b=a.getValue(),c=a.getInputValue();return{type:b,value:c}},_isTypeAvaliable:function(a){var b=!1;return BI.find(this.dateConfig(),function(c,d){if(d.value===a)return b=!0,!0}),b},setValue:function(a){var b=this;BI.isNotNull(a)&&this._isTypeAvaliable(a.type)?(this.radioGroup.setValue(a.type),BI.each(this.radioGroup.getAllButtons(),function(c,d){d.isEditorExist()===!0&&d.isSelected()?d.setInputValue(a.value):d.setInputValue(b.constants.defaultEditorValue)})):(this.radioGroup.setValue(this.defaultSelectedItem()),BI.each(this.radioGroup.getAllButtons(),function(a,c){c.setInputValue(b.constants.defaultEditorValue)}))},getCalculationValue:function(){var a=this.getValue(),b=a.type,c=a.value;switch(b){case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV:return(new Date).getOffsetDate(-1*c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER:return(new Date).getOffsetDate(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY:return new Date;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV:return(new Date).getBeforeMultiMonth(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER:return(new Date).getAfterMultiMonth(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN:return new Date((new Date).getFullYear(),(new Date).getMonth(),1);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END:return new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getLastDateOfMonth().getDate());case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV:return(new Date).getBeforeMulQuarter(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER:return(new Date).getAfterMulQuarter(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN:return(new Date).getQuarterStartDate();case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END:return(new Date).getQuarterEndDate();case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV:return(new Date).getOffsetDate(-7*c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER:return(new Date).getOffsetDate(7*c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV:return new Date((new Date).getFullYear()-1*c,(new Date).getMonth(),(new Date).getDate());case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER:return new Date((new Date).getFullYear()+1*c,(new Date).getMonth(),(new Date).getDate());case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN:return new Date((new Date).getFullYear(),0,1);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END:return new Date((new Date).getFullYear(),11,31)}}}),BI.MultiDateCard.EVENT_CHANGE="EVENT_CHANGE",BI.MultiDateCombo=BI.inherit(BI.Single,{constants:{popupHeight:259,popupWidth:270,comboAdjustHeight:1,border:1,DATE_MIN_VALUE:"1900-01-01",DATE_MAX_VALUE:"2099-12-31"},_defaultConfig:function(){return BI.extend(BI.MultiDateCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-combo bi-border",height:24})},_init:function(){BI.MultiDateCombo.superclass._init.apply(this,arguments);var a=this;this.options;this.storeTriggerValue="";var b=new Date;this.storeValue=null,this.trigger=BI.createWidget({type:"bi.date_trigger",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),this.trigger.on(BI.DateTrigger.EVENT_KEY_DOWN,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DateTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.trigger.on(BI.DateTrigger.EVENT_TRIGGER_CLICK,function(){a.combo.toggle()}),this.trigger.on(BI.DateTrigger.EVENT_FOCUS,function(){a.storeTriggerValue=a.trigger.getKey(),a.combo.isViewVisible()||a.combo.showView(),a.fireEvent(BI.MultiDateCombo.EVENT_FOCUS)}),this.trigger.on(BI.DateTrigger.EVENT_ERROR,function(){a.storeValue={year:b.getFullYear(),month:b.getMonth()},a.popup.setValue(),a.fireEvent(BI.MultiDateCombo.EVENT_ERROR)}),this.trigger.on(BI.DateTrigger.EVENT_VALID,function(){a.fireEvent(BI.MultiDateCombo.EVENT_VALID)}),this.trigger.on(BI.DateTrigger.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDateCombo.EVENT_CHANGE)}),this.trigger.on(BI.DateTrigger.EVENT_CONFIRM,function(){if(!a.combo.isViewVisible()){var b=a.storeTriggerValue,c=a.trigger.getKey();BI.isNotEmptyString(c)&&!BI.isEqual(c,b)?(a.storeValue=a.trigger.getValue(),a.setValue(a.trigger.getValue())):BI.isEmptyString(c)&&(a.storeValue=null,a.trigger.setValue()),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}}),this.popup=BI.createWidget({type:"bi.multidate_popup",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),this.popup.on(BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE,function(){a.setValue(),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.popup.on(BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE,function(){var b=new Date;a.setValue({year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.popup.on(BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.popup.on(BI.MultiDatePopup.CALENDAR_EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,adjustLength:this.constants.comboAdjustHeight,popup:{el:this.popup,maxHeight:this.constants.popupHeight,width:this.constants.popupWidth,stopPropagation:!1}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW)});var c=BI.createWidget({type:"bi.trigger_icon_button",cls:"bi-trigger-date-button chart-date-normal-font",width:30,height:23});c.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),this.changeIcon=BI.createWidget({type:"bi.icon_button",cls:"bi-trigger-date-change widget-date-h-change-font",width:30,height:23});var d=BI.createWidget({type:"bi.absolute",items:[{el:this.combo,top:0,left:0,right:0,bottom:0},{el:c,top:0,left:0}]});BI.createWidget({type:"bi.htape",element:this,items:[d,{el:this.changeIcon,width:30}],ref:function(b){a.comboWrapper=b}})},_checkDynamicValue:function(a){var b=null;switch(BI.isNotNull(a)&&(b=a.type),b){case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY:this.changeIcon.setVisible(!0),this.comboWrapper.attr("items")[1].width=30,this.comboWrapper.resize();break;default:this.comboWrapper.attr("items")[1].width=0,this.comboWrapper.resize(),this.changeIcon.setVisible(!1)}},setValue:function(a){this.storeValue=a,this.popup.setValue(a),this.trigger.setValue(a),this._checkDynamicValue(a)},getValue:function(){return this.storeValue},getKey:function(){return this.trigger.getKey()},hidePopupView:function(){this.combo.hideView()}}),BI.shortcut("bi.multidate_combo",BI.MultiDateCombo),BI.MultiDateCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.MultiDateCombo.EVENT_FOCUS="EVENT_FOCUS",BI.MultiDateCombo.EVENT_CHANGE="EVENT_CHANGE",BI.MultiDateCombo.EVENT_VALID="EVENT_VALID",BI.MultiDateCombo.EVENT_ERROR="EVENT_ERROR",BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW="BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW",BI.extend(BI.MultiDateCombo,{MULTI_DATE_YMD_CARD:1,MULTI_DATE_YEAR_CARD:2,MULTI_DATE_QUARTER_CARD:3,MULTI_DATE_MONTH_CARD:4,MULTI_DATE_WEEK_CARD:5,MULTI_DATE_DAY_CARD:6}),BI.extend(BI.MultiDateCombo,{DATE_TYPE:{MULTI_DATE_YEAR_PREV:1,MULTI_DATE_YEAR_AFTER:2,MULTI_DATE_YEAR_BEGIN:3,MULTI_DATE_YEAR_END:4,MULTI_DATE_MONTH_PREV:5,MULTI_DATE_MONTH_AFTER:6,MULTI_DATE_MONTH_BEGIN:7,MULTI_DATE_MONTH_END:8,MULTI_DATE_QUARTER_PREV:9,MULTI_DATE_QUARTER_AFTER:10,MULTI_DATE_QUARTER_BEGIN:11,MULTI_DATE_QUARTER_END:12,MULTI_DATE_WEEK_PREV:13,MULTI_DATE_WEEK_AFTER:14,MULTI_DATE_DAY_PREV:15,MULTI_DATE_DAY_AFTER:16,MULTI_DATE_DAY_TODAY:17,MULTI_DATE_PARAM:18,MULTI_DATE_CALENDAR:19,YEAR_QUARTER:20,YEAR_MONTH:21,YEAR_WEEK:22,YEAR_DAY:23,MONTH_WEEK:24,MONTH_DAY:25,YEAR:26,SAME_PERIOD:27,LAST_SAME_PERIOD:28}}),BI.DayCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.DayCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-daycard"})},_init:function(){BI.DayCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{isEditorExist:!0,selected:!0,text:BI.i18nText("BI-Multi_Date_Day_Prev"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV},{isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Day_Next"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER},{isEditorExist:!1,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY,text:BI.i18nText("BI-Multi_Date_Today")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV}}),BI.DayCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.daycard",BI.DayCard),BI.MonthCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.MonthCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-monthcard"})},_init:function(){BI.MonthCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,isEditorExist:!0,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV,text:BI.i18nText("BI-Multi_Date_Month_Prev")},{isEditorExist:!0,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER,text:BI.i18nText("BI-Multi_Date_Month_Next")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Month_Begin")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Month_End")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV}}),BI.MonthCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.monthcard",BI.MonthCard),BI.MultiDatePopup=BI.inherit(BI.Widget,{constants:{tabHeight:30,tabWidth:42,titleHeight:27,itemHeight:30,triggerHeight:24,buttonWidth:90,buttonHeight:25,cardHeight:229,cardWidth:270,popupHeight:259,popupWidth:270,comboAdjustHeight:1,ymdWidth:58,lgap:2,border:1},_defaultConfig:function(){return BI.extend(BI.MultiDatePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-popup",width:268,height:260})},_init:function(){BI.MultiDatePopup.superclass._init.apply(this,arguments);var a=this;this.options;this.storeValue="",this.textButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-label bi-border-left bi-border-right bi-border-top",shadow:!0,text:BI.i18nText("BI-Multi_Date_Today")}),this.textButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE)}),this.clearButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top",shadow:!0,text:BI.i18nText("BI-Basic_Clear")}),this.clearButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE)}),this.okButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top",shadow:!0,text:BI.i18nText("BI-Basic_OK")}),this.okButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE)}),this.dateTab=BI.createWidget({type:"bi.tab",tab:{cls:"bi-multidate-popup-tab bi-border-bottom",height:this.constants.tabHeight,items:BI.createItems([{text:BI.i18nText("BI-Multi_Date_YMD"),value:BI.MultiDateCombo.MULTI_DATE_YMD_CARD,width:this.constants.ymdWidth},{text:BI.i18nText("BI-Multi_Date_Year"),value:BI.MultiDateCombo.MULTI_DATE_YEAR_CARD},{text:BI.i18nText("BI-Multi_Date_Quarter"),value:BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD},{text:BI.i18nText("BI-Multi_Date_Month"),value:BI.MultiDateCombo.MULTI_DATE_MONTH_CARD},{text:BI.i18nText("BI-Multi_Date_Week"),value:BI.MultiDateCombo.MULTI_DATE_WEEK_CARD},{text:BI.i18nText("BI-Multi_Date_Day"),value:BI.MultiDateCombo.MULTI_DATE_DAY_CARD}],{width:this.constants.tabWidth,textAlign:"center",height:this.constants.itemHeight,cls:"bi-multidate-popup-item bi-list-item-active"}),layouts:[{type:"bi.left"}]},cardCreator:function(b){switch(b){case BI.MultiDateCombo.MULTI_DATE_YMD_CARD:return a.ymd=BI.createWidget({type:"bi.date_calendar_popup",min:a.options.min,max:a.options.max}),a.ymd.on(BI.DateCalendarPopup.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.CALENDAR_EVENT_CHANGE)}),a.ymd;case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD:return a.year=BI.createWidget({type:"bi.yearcard"}),a.year.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.year,b)}),a.year;case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD:return a.quarter=BI.createWidget({type:"bi.quartercard"}),a.quarter.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.quarter,b)}),a.quarter;case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD:return a.month=BI.createWidget({type:"bi.monthcard"}),a.month.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.month,b)}),a.month;case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD:return a.week=BI.createWidget({type:"bi.weekcard"}),a.week.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.week,b)}),a.week;case BI.MultiDateCombo.MULTI_DATE_DAY_CARD:return a.day=BI.createWidget({type:"bi.daycard"}),a.day.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.day,b)}),a.day}}}),this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_YMD_CARD,this.dateTab.on(BI.Tab.EVENT_CHANGE,function(){var b=a.dateTab.getSelect();switch(b){case BI.MultiDateCombo.MULTI_DATE_YMD_CARD:var c=this.getTab(a.cur).getCalculationValue();a.ymd.setValue({year:c.getFullYear(),month:c.getMonth(),day:c.getDate()}),a._setInnerValue(a.ymd);break;case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD:a.year.setValue(a.storeValue),a._setInnerValue(a.year);break;case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD:a.quarter.setValue(a.storeValue),a._setInnerValue(a.quarter);break;case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD:a.month.setValue(a.storeValue),a._setInnerValue(a.month);break;case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD:a.week.setValue(a.storeValue),a._setInnerValue(a.week);break;case BI.MultiDateCombo.MULTI_DATE_DAY_CARD:a.day.setValue(a.storeValue),a._setInnerValue(a.day)}a.cur=b}),this.dateButton=BI.createWidget({type:"bi.grid",items:[[this.clearButton,this.textButton,this.okButton]]}),BI.createWidget({element:this,type:"bi.vtape",items:[{el:this.dateTab},{el:this.dateButton,height:30}]})},_setInnerValue:function(a){if(this.dateTab.getSelect()===BI.MultiDateCombo.MULTI_DATE_YMD_CARD)this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today")),this.textButton.setEnable(!0);else{var b=a.getCalculationValue();b=b.print("%Y-%x-%e"),this.textButton.setValue(b),this.textButton.setEnable(!1)}},setValue:function(a){this.storeValue=a;var b,c,d,e=this;switch(BI.isNotNull(a)&&(c=a.type||BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_CALENDAR,d=a.value,BI.isNull(d)&&(d=a)),c){case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YEAR_CARD),this.year.setValue({type:c,value:d}),this.cur=BI.MultiDateCombo.MULTI_DATE_YEAR_CARD,e._setInnerValue(this.year);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD,this.quarter.setValue({type:c,value:d}),e._setInnerValue(this.quarter);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_MONTH_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_MONTH_CARD,this.month.setValue({type:c,value:d}),e._setInnerValue(this.month);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_WEEK_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_WEEK_CARD,this.week.setValue({type:c,value:d}),e._setInnerValue(this.week);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_DAY_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_DAY_CARD,this.day.setValue({type:c,value:d}),e._setInnerValue(this.day);break;default:if(BI.isNull(d)||BI.isEmptyObject(d)){var b=new Date;this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD),this.ymd.setValue({
-year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"))}else this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD),this.ymd.setValue(d),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"));this.textButton.setEnable(!0)}},getValue:function(){var a=this.dateTab.getSelect();switch(a){case BI.MultiDateCombo.MULTI_DATE_YMD_CARD:return this.ymd.getValue();case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD:return this.year.getValue();case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD:return this.quarter.getValue();case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD:return this.month.getValue();case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD:return this.week.getValue();case BI.MultiDateCombo.MULTI_DATE_DAY_CARD:return this.day.getValue()}}}),BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE="BUTTON_lABEL_EVENT_CHANGE",BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.MultiDatePopup.CALENDAR_EVENT_CHANGE="CALENDAR_EVENT_CHANGE",BI.shortcut("bi.multidate_popup",BI.MultiDatePopup),BI.QuarterCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.QuarterCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-quartercard"})},_init:function(){BI.QuarterCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Quarter_Prev")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Quarter_Next")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Quarter_Begin")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Quarter_End")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV}}),BI.QuarterCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.quartercard",BI.QuarterCard),BI.MultiDateSegment=BI.inherit(BI.Single,{constants:{itemHeight:24,maxGap:15,minGap:10,textWidth:30,defaultEditorValue:"1"},_defaultConfig:function(){return $.extend(BI.MultiDateSegment.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-segment",text:"",width:130,height:30,isEditorExist:!0,selected:!1,defaultEditorValue:"1"})},_init:function(){BI.MultiDateSegment.superclass._init.apply(this,arguments);var a=this,b=this.options;this.radio=BI.createWidget({type:"bi.radio",selected:b.selected}),this.radio.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.textEditor=BI.createWidget({type:"bi.text_editor",value:this.constants.defaultEditorValue,title:function(){return a.textEditor.getValue()},cls:"bi-multidate-editor",width:this.constants.textWidth,height:this.constants.itemHeight}),this.textEditor.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",cls:"bi-multidate-normal-label",text:b.text,height:this.constants.itemHeight}),this._createSegment()},_createSegment:function(){return this.options.isEditorExist===!0?BI.createWidget({element:this,type:"bi.left",items:[{el:{type:"bi.center_adapt",items:[this.radio],height:this.constants.itemHeight},lgap:0},{el:{type:"bi.center_adapt",items:[this.textEditor],widgetName:"textEditor"},lgap:this.constants.maxGap},{el:this.text,lgap:this.constants.minGap}]}):BI.createWidget({element:this,type:"bi.left",items:[{el:{type:"bi.center_adapt",items:[this.radio],height:this.constants.itemHeight},lgap:0},{el:this.text,lgap:this.constants.maxGap}]})},setSelected:function(a){BI.isNotNull(this.radio)&&(this.radio.setSelected(a),this.textEditor.setEnable(a))},isSelected:function(){return this.radio.isSelected()},getValue:function(){return this.options.value},getInputValue:function(){return 0|this.textEditor.getValue()},setInputValue:function(a){this.textEditor.setValue(a)},isEditorExist:function(){return this.options.isEditorExist}}),BI.MultiDateSegment.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multidate_segment",BI.MultiDateSegment),BI.WeekCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.WeekCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-weekcard"})},_init:function(){BI.WeekCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Week_Prev"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV},{isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Week_Next"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV}}),BI.WeekCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.weekcard",BI.WeekCard),BI.YearCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.YearCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-yearcard"})},_init:function(){BI.YearCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Year_Prev"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV},{isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Year_Next"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER},{isEditorExist:!1,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN,text:BI.i18nText("BI-Multi_Date_Year_Begin")},{isEditorExist:!1,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END,text:BI.i18nText("BI-Multi_Date_Year_End")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV}}),BI.YearCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.yearcard",BI.YearCard),BI.MultiLayerSelectTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer_select_tree-combo",isDefaultInit:!1,height:30,text:"",items:[]})},_init:function(){BI.MultiLayerSelectTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items}),this.popup=BI.createWidget({type:"bi.multilayer_select_tree_popup",isDefaultInit:b.isDefaultInit,items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.MultiLayerSelectTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiLayerSelectTreeCombo.EVENT_CHANGE)})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.MultiLayerSelectTreeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_tree_combo",BI.MultiLayerSelectTreeCombo),BI.MultiLayerSelectLevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectLevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-select-level-tree",isDefaultInit:!1,items:[],itemsCreator:BI.emptyFn})},_init:function(){BI.MultiLayerSelectLevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={};if(e.layer=b,BI.isKey(e.id)||(e.id=BI.UUID()),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.multilayer_select_tree_first_plus_group_node";break;case a.length-1:f.type="bi.multilayer_select_tree_last_plus_group_node";break;default:f.type="bi.multilayer_select_tree_mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children,b+1)}else{switch(d){case a.length-1:f.type="bi.multilayer_single_tree_last_tree_leaf_item";break;default:f.type="bi.multilayer_single_tree_mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_assertId:function(a){BI.each(a,function(a,b){b.id=b.id||BI.UUID()})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",element:this,expander:{type:"bi.select_tree_expander",isDefaultInit:c.isDefaultInit,el:{},popup:{type:"bi.custom_tree"}},items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),itemsCreator:c.itemsCreator,el:{type:"bi.button_tree",chooseType:BI.Selection.Single,layouts:[{type:"bi.vertical"}]}}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.MultiLayerSelectLevelTree.EVENT_CHANGE,arguments)})},populate:function(a){this.tree.populate(this._formatItems(BI.Tree.transformToTreeFormat(a),0))},setValue:function(a){this.tree.setValue(a)},getValue:function(){return this.tree.getValue()},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.MultiLayerSelectLevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_level_tree",BI.MultiLayerSelectLevelTree),BI.MultiLayerSelectTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-select-tree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),isDefaultInit:!1,itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.MultiLayerSelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.multilayer_select_level_tree",isDefaultInit:b.isDefaultInit,items:b.items,itemsCreator:b.itemsCreator}),BI.createWidget({type:"bi.vertical",scrolly:!1,scrollable:!0,element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.MultiLayerSelectLevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.MultiLayerSelectTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.MultiLayerSelectTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.MultiLayerSelectTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_tree_popup",BI.MultiLayerSelectTreePopup),BI.MultiLayerSelectTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-first-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_first_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},isOnce:function(){return!0},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_first_plus_group_node",BI.MultiLayerSelectTreeFirstPlusGroupNode),BI.MultiLayerSelectTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-last-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_last_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_last_plus_group_node",BI.MultiLayerSelectTreeLastPlusGroupNode),BI.MultiLayerSelectTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-mid-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_mid_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_mid_plus_group_node",BI.MultiLayerSelectTreeMidPlusGroupNode),BI.MultiLayerSingleTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-singletree-combo",isDefaultInit:!1,height:30,text:"",itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.MultiLayerSingleTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items}),this.popup=BI.createWidget({type:"bi.multilayer_single_tree_popup",isDefaultInit:b.isDefaultInit,items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.MultiLayerSingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiLayerSingleTreeCombo.EVENT_CHANGE)})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.MultiLayerSingleTreeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_tree_combo",BI.MultiLayerSingleTreeCombo),BI.MultiLayerSingleLevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleLevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-single-level-tree",isDefaultInit:!1,items:[],itemsCreator:BI.emptyFn})},_init:function(){BI.MultiLayerSingleLevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={};if(e.layer=b,BI.isKey(e.id)||(e.id=BI.UUID()),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.multilayer_single_tree_first_plus_group_node";break;case a.length-1:f.type="bi.multilayer_single_tree_last_plus_group_node";break;default:f.type="bi.multilayer_single_tree_mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children,b+1)}else{switch(d){case a.length-1:f.type="bi.multilayer_single_tree_last_tree_leaf_item";break;default:f.type="bi.multilayer_single_tree_mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_assertId:function(a){BI.each(a,function(a,b){b.id=b.id||BI.UUID()})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",element:this,expander:{isDefaultInit:c.isDefaultInit,el:{},popup:{type:"bi.custom_tree"}},items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),itemsCreator:function(a,b){c.itemsCreator(a,function(a){b(BI.Tree.transformToTreeFormat(a),0)})},el:{type:"bi.button_tree",chooseType:BI.Selection.Single,layouts:[{type:"bi.vertical"}]}}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a,c){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.MultiLayerSingleLevelTree.EVENT_CHANGE,c)})},populate:function(a){this.tree.populate(this._formatItems(BI.Tree.transformToTreeFormat(a),0))},setValue:function(a){this.tree.setValue(a)},getValue:function(){return this.tree.getValue()},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.MultiLayerSingleLevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_level_tree",BI.MultiLayerSingleLevelTree),BI.MultiLayerSingleTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-singletree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),isDefaultInit:!1,itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.MultiLayerSingleTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.multilayer_single_level_tree",isDefaultInit:b.isDefaultInit,items:b.items,itemsCreator:b.itemsCreator}),BI.createWidget({type:"bi.vertical",scrolly:!1,scrollable:!0,element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.MultiLayerSingleLevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.MultiLayerSingleTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.MultiLayerSingleTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.MultiLayerSingleTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_tree_popup",BI.MultiLayerSingleTreePopup),BI.MultiLayerSingleTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-first-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:25})},_init:function(){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.first_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_single_tree_first_plus_group_node",BI.MultiLayerSingleTreeFirstPlusGroupNode),BI.MultiLayerSingleTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-last-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:25})},_init:function(){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.last_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_single_tree_last_plus_group_node",BI.MultiLayerSingleTreeLastPlusGroupNode),BI.MultiLayerSingleTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-mid-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:25})},_init:function(){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.mid_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_single_tree_mid_plus_group_node",BI.MultiLayerSingleTreeMidPlusGroupNode),BI.MultiLayerSingleTreeFirstTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-first-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:25})},_init:function(){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.first_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.item.doRedMark.apply(this.item,arguments)},unRedMark:function(){this.item.unRedMark.apply(this.item,arguments)},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_first_tree_leaf_item",BI.MultiLayerSingleTreeFirstTreeLeafItem),BI.MultiLayerSingleTreeLastTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeLastTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-last-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:25})},_init:function(){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.last_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.item.doRedMark.apply(this.item,arguments)},unRedMark:function(){this.item.unRedMark.apply(this.item,arguments)},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_last_tree_leaf_item",BI.MultiLayerSingleTreeLastTreeLeafItem),BI.MultiLayerSingleTreeMidTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeMidTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-mid-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:25})},_init:function(){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.mid_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.item.doRedMark.apply(this.item,arguments)},unRedMark:function(){this.item.unRedMark.apply(this.item,arguments)},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_mid_tree_leaf_item",BI.MultiLayerSingleTreeMidTreeLeafItem),BI.MultiSelectCheckPane=BI.inherit(BI.Widget,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-pane bi-background",items:[],itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,onClickContinueSelect:BI.emptyFn})},_init:function(){BI.MultiSelectCheckPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={},this.display=BI.createWidget({type:"bi.display_selected_list",items:b.items,itemsCreator:function(c,d){return c=BI.extend(c||{},{selectedValues:a.storeValue.value}),a.storeValue.type===BI.Selection.Multi?void d({items:BI.map(a.storeValue.value,function(a,c){var d=b.valueFormatter(c)||c;return{text:d,value:c,title:d}})}):void b.itemsCreator(c,d)}}),this.continueSelect=BI.createWidget({type:"bi.text_button",text:BI.i18nText("BI-Continue_Select"),cls:"multi-select-check-selected bi-high-light"}),this.continueSelect.on(BI.TextButton.EVENT_CHANGE,function(){b.onClickContinueSelect()}),BI.createWidget({type:"bi.vtape",element:this,items:[{height:this.constants.height,el:{type:"bi.left",cls:"multi-select-continue-select",items:[{el:{type:"bi.label",text:BI.i18nText("BI-Selected_Data")},lgap:this.constants.lgap,tgap:this.constants.tgap},{el:this.continueSelect,lgap:this.constants.lgap,tgap:this.constants.tgap}]}},{height:"fill",
-el:this.display}]})},setValue:function(a){this.storeValue=a||{}},empty:function(){this.display.empty()},populate:function(){this.display.populate.apply(this.display,arguments)}}),BI.shortcut("bi.multi_select_check_pane",BI.MultiSelectCheckPane),BI.DisplaySelectedList=BI.inherit(BI.Pane,{constants:{height:25,lgap:10},_defaultConfig:function(){return BI.extend(BI.DisplaySelectedList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-display-list",itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.DisplaySelectedList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.hasNext=!1,this.button_group=BI.createWidget({type:"bi.list_pane",element:this,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},items:this._createItems(b.items),chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,layouts:[{type:"bi.vertical",lgap:10}]},itemsCreator:function(c,d){b.itemsCreator(c,function(b){a.hasNext=!!b.hasNext,d(a._createItems(b.items))})},hasNext:function(){return a.hasNext}})},_createItems:function(a){return BI.createItems(a,{type:"bi.icon_text_item",cls:"cursor-default check-font display-list-item bi-tips",once:!0,invalid:!0,selected:!0,height:this.constants.height,logic:{dynamic:!0}})},empty:function(){this.button_group.empty()},populate:function(a){0===arguments.length?this.button_group.populate():this.button_group.populate(this._createItems(a))}}),BI.shortcut("bi.display_selected_list",BI.DisplaySelectedList),BI.MultiSelectCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:28})},_init:function(){BI.MultiSelectCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&a.storeValue.value[a.storeValue.type===BI.Selection.All?"remove":"pushDistinct"](a._startValue),a.trigger.getSearcher().setState(a.storeValue),a.trigger.getCounter().setButtonChecked(a.storeValue)};this.storeValue={},this.requesting=!1,this.trigger=BI.createWidget({type:"bi.multi_select_trigger",height:b.height,masker:{offset:{left:1,top:1,right:2,bottom:33}},valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator(c,function(b){1===c.times&&BI.isNotNull(c.keywords)&&a.trigger.setValue(BI.deepClone(a.getValue())),d.apply(a,arguments)})}}),this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){a._setStartValue(""),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){a._setStartValue("")}),this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE,function(){if(this.getSearcher().hasMatched()){var b=this.getSearcher().getKeyword();a._join({type:BI.Selection.Multi,value:[b]},function(){a.combo.setValue(a.storeValue),a._setStartValue(b),c(),a.populate(),a._setStartValue("")})}}),this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue("")):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){this.getCounter().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_select_popup_view",ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c()})}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM,action:function(){a._defaultState()}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CLEAR,action:function(){a.setValue(),a._defaultState()}}],itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getCounter().adjustView(),a.trigger.getSearcher().adjustView()})}},hideChecker:function(a){return 0===d.element.find(a.target).length}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a.populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:a.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM)});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"multi-select-trigger-icon-button bi-border-left"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.trigger.getCounter().hideView(),a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&d.storeValue.value[d.storeValue.type===BI.Selection.Multi?"pushDistinct":"remove"](b)}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this.requesting=!0,e.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_ALL_DATA,keywords:a},function(a){var b=BI.pluck(a.items,"value");c(b)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),this.requesting=!0,d.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_ALL_DATA,keywords:[this.trigger.getKey()]},function(d){var e=BI.pluck(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&delete h[e[a]],BI.isNull(i[e[a]])&&j.push(b)}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.storeValue.type===BI.Selection.All&&c.storeValue.value.length>=c._count?c.storeValue={type:BI.Selection.Multi,value:[]}:c.storeValue.type===BI.Selection.Multi&&c.storeValue.value.length>=c._count&&(c.storeValue={type:BI.Selection.All,value:[]}),c.wants2Quit===!0&&(c.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this,d=this.options;this._count?(b(),a()):d.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_DATA_LENGTH},function(d){c._count=d.count,b(),a()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.combo.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this._count=null,this.combo.populate.apply(this.combo,arguments)}}),BI.extend(BI.MultiSelectCombo,{REQ_GET_DATA_LENGTH:0,REQ_GET_ALL_DATA:-1}),BI.MultiSelectCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.multi_select_combo",BI.MultiSelectCombo),BI.MultiSelectLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-loader",logic:{dynamic:!0},el:{height:400},valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.button_group=BI.createWidget({type:"bi.select_list",element:this,logic:b.logic,el:BI.extend({onLoaded:b.onLoaded,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},b.el),itemsCreator:function(d,e){var f=a._startValue;a.storeValue&&(d=BI.extend(d||{},{selectedValues:BI.isKey(f)&&a.storeValue.type===BI.Selection.Multi?a.storeValue.value.concat(f):a.storeValue.value})),b.itemsCreator(d,function(g){c=g.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=BI.map(a.storeValue.value,function(c,d){var e=b.valueFormatter(d)||d;return{text:e,value:d,title:e,selected:a.storeValue.type===BI.Selection.Multi}});if(BI.isKey(a._startValue)&&!a.storeValue.value.contains(a._startValue)){var j=b.valueFormatter(f)||f;i.unshift({text:j,value:f,title:j,selected:!0})}h=a._createItems(i)}e(h.concat(a._createItems(g.items)),g.keyword||""),1===d.times&&a.storeValue&&(BI.isKey(f)&&a.storeValue.value[a.storeValue.type===BI.Selection.All?"remove":"pushDistinct"](f),a.setValue(a.storeValue)),1===d.times&&a._scrollToTop()})},hasNext:function(){return c}}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",logic:this.options.logic,height:25,selected:this.isAllSelected()})},_scrollToTop:function(){var a=this;BI.delay(function(){a.button_group.element.scrollTop(0)},30)},isAllSelected:function(){return this.button_group.isAllSelected()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},setStartValue:function(a){this._startValue=a},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.button_group.setValue(this.storeValue)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.MultiSelectLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_loader",BI.MultiSelectLoader),BI.MultiSelectPopupView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectPopupView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-popup-view",maxWidth:"auto",minWidth:135,maxHeight:400,valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectPopupView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.loader=BI.createWidget({type:"bi.multi_select_loader",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:b.onLoaded}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,element:this,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.loader}),this.popupView.on(BI.MultiPopupView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectPopupView.EVENT_CHANGE)}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.MultiSelectPopupView.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM)}})},isAllSelected:function(){return this.loader.isAllSelected()},setStartValue:function(a){this.loader.setStartValue(a)},setValue:function(a){this.popupView.setValue(a)},getValue:function(){return this.popupView.getValue()},populate:function(a){this.popupView.populate.apply(this.popupView,arguments)},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.MultiSelectPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiSelectPopupView.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.multi_select_popup_view",BI.MultiSelectPopupView),BI.MultiSelectTrigger=BI.inherit(BI.Trigger,{constants:{height:14,rgap:4,lgap:4},_defaultConfig:function(){return BI.extend(BI.MultiSelectTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-trigger bi-border",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,searcher:{},switcher:{},adapter:null,masker:{}})},_init:function(){BI.MultiSelectTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;b.height&&this.setHeight(b.height-2),this.searcher=BI.createWidget(b.searcher,{type:"bi.multi_select_searcher",height:b.height,itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,popup:{},adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.MultiSelectSearcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_START)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_PAUSE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_PAUSE)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_SEARCHING,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_SEARCHING,arguments)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_STOP)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_CHANGE,arguments)}),this.numberCounter=BI.createWidget(b.switcher,{type:"bi.multi_select_check_selected_switcher",valueFormatter:b.valueFormatter,itemsCreator:b.itemsCreator,adapter:b.adapter,masker:b.masker}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK)}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW)});var c=BI.createWidget({type:"bi.right_vertical_adapt",hgap:4,items:[{el:this.numberCounter}]}),d=BI.createWidget({type:"bi.htape",element:this,items:[{el:this.searcher,width:"fill"},{el:c,width:0},{el:BI.createWidget(),width:30}]});this.numberCounter.on(BI.Events.VIEW,function(b){BI.nextTick(function(){d.attr("items")[1].width=b===!0?a.numberCounter.element.outerWidth()+8:0,d.resize()})}),this.element.click(function(b){a.element.__isMouseInBounds__(b)&&!a.numberCounter.element.__isMouseInBounds__(b)&&a.numberCounter.hideView()})},getCounter:function(){return this.numberCounter},getSearcher:function(){return this.searcher},stopEditing:function(){this.searcher.stopSearch(),this.numberCounter.hideView()},setAdapter:function(a){this.searcher.setAdapter(a),this.numberCounter.setAdapter(a)},setValue:function(a){this.searcher.setValue(a),this.numberCounter.setValue(a)},getKey:function(){return this.searcher.getKey()},getValue:function(){return this.searcher.getValue()}}),BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.MultiSelectTrigger.EVENT_COUNTER_CLICK="EVENT_COUNTER_CLICK",BI.MultiSelectTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectTrigger.EVENT_START="EVENT_START",BI.MultiSelectTrigger.EVENT_STOP="EVENT_STOP",BI.MultiSelectTrigger.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectTrigger.EVENT_SEARCHING="EVENT_SEARCHING",BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW="EVENT_BEFORE_COUNTER_POPUPVIEW",BI.shortcut("bi.multi_select_trigger",BI.MultiSelectTrigger),BI.MultiSelectSearchLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectSearchLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-search-loader",itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectSearchLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.button_group=BI.createWidget({type:"bi.select_list",element:this,logic:{dynamic:!1},el:{tipText:BI.i18nText("BI-No_Select"),el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},itemsCreator:function(d,e){a.storeValue&&(d=BI.extend(d||{},{selectedValues:a.storeValue.value})),b.itemsCreator(d,function(f){var g=f.keyword=b.keywordGetter();c=f.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=a._filterValues(a.storeValue);h=a._createItems(i)}e(h.concat(a._createItems(f.items)),g),1===d.times&&a.storeValue&&a.setValue(a.storeValue)})},hasNext:function(){return c}}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectSearchLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",logic:{dynamic:!1},height:25,selected:this.isAllSelected()})},isAllSelected:function(){return this.button_group.isAllSelected()},_filterValues:function(a){var b=this.options,c=b.keywordGetter(),d=BI.deepClone(a.value)||[],e=BI.map(d,function(a,c){return{text:b.valueFormatter(c)||c,value:c}});if(BI.isKey(c)){var f=BI.Func.getSearchResult(e,c);d=f.matched.concat(f.finded)}return BI.map(d,function(b,c){return{text:c.text,title:c.text,value:c.value,selected:a.type===BI.Selection.All}})},setValue:function(a){this.storeValue=BI.deepClone(a),this.button_group.setValue(a)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.MultiSelectSearchLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_search_loader",BI.MultiSelectSearchLoader),BI.MultiSelectSearchPane=BI.inherit(BI.Widget,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiSelectSearchPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-search-pane bi-card",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.MultiSelectSearchPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tooltipClick=BI.createWidget({type:"bi.label",invisible:!0,text:BI.i18nText("BI-Click_Blank_To_Select"),cls:"multi-select-toolbar",height:this.constants.height}),this.loader=BI.createWidget({type:"bi.multi_select_search_loader",keywordGetter:b.keywordGetter,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator.apply(a,[c,function(c){d(c),a.setKeyword(b.keywordGetter())}])}}),this.loader.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.resizer=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.tooltipClick,height:0},{el:this.loader}]}),this.tooltipClick.setVisible(!1)},setKeyword:function(a){var b,c=this.loader.getAllButtons().length>0&&(b=this.loader.getAllButtons()[0])&&a===b.getValue();c!==this.tooltipClick.isVisible()&&(this.tooltipClick.setVisible(c),this.resizer.attr("items")[0].height=c?this.constants.height:0,this.resizer.resize())},isAllSelected:function(){return this.loader.isAllSelected()},hasMatched:function(){return this.tooltipClick.isVisible()},setValue:function(a){this.loader.setValue(a)},getValue:function(){return this.loader.getValue()},empty:function(){this.loader.empty()},populate:function(a){this.loader.populate.apply(this.loader,arguments)}}),BI.MultiSelectSearchPane.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_search_pane",BI.MultiSelectSearchPane),BI.MultiSelectCheckSelectedButton=BI.inherit(BI.Single,{_const:{checkSelected:BI.i18nText("BI-Check_Selected")},_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckSelectedButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-selected-button bi-high-light",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectCheckSelectedButton.superclass._init.apply(this,arguments);var a=this;this.numberCounter=BI.createWidget({type:"bi.text_button",element:this,hgap:4,text:"0",textAlign:"center",textHeight:15}),this.numberCounter.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.numberCounter.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedButton.EVENT_CHANGE,arguments)}),this.numberCounter.element.hover(function(){a.numberCounter.setTag(a.numberCounter.getText()),a.numberCounter.setText(a._const.checkSelected)},function(){a.numberCounter.setText(a.numberCounter.getTag())}),this.setVisible(!1)},setValue:function(a){var b=this,c=this.options;return a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[]),a.type===BI.Selection.All?void c.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_DATA_LENGTH},function(c){var d=c.count-a.value.length;BI.nextTick(function(){b.numberCounter.setText(d),b.setVisible(d>0)})}):void BI.nextTick(function(){b.numberCounter.setText(a.value.length),b.setVisible(a.value.length>0)})},getValue:function(){}}),BI.MultiSelectCheckSelectedButton.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_check_selected_button",BI.MultiSelectCheckSelectedButton),BI.MultiSelectEditor=BI.inherit(BI.Widget,{_const:{checkSelected:BI.i18nText("BI-Check_Selected")},_defaultConfig:function(){return BI.extend(BI.MultiSelectEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-editor",el:{}})},_init:function(){BI.MultiSelectEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.state_editor",element:this,height:b.height,watermark:BI.i18nText("BI-Basic_Search"),allowBlank:!0}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.StateEditor.EVENT_PAUSE,function(){a.fireEvent(BI.MultiSelectEditor.EVENT_PAUSE)}),this.editor.on(BI.StateEditor.EVENT_CLICK_LABEL,function(){})},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},setState:function(a){this.editor.setState(a)},setValue:function(a){this.editor.setValue(a)},getValue:function(){var a=this.editor.getState();return BI.isArray(a)&&a.length>0?a[a.length-1]:""},getKeywords:function(){var a=this.editor.getLastValidValue(),b=a.match(/[\S]+/g);return BI.isEndWithBlank(a)?b.concat([" "]):b},populate:function(a){}}),BI.MultiSelectEditor.EVENT_PAUSE="MultiSelectEditor.EVENT_PAUSE",BI.shortcut("bi.multi_select_editor",BI.MultiSelectEditor),BI.MultiSelectSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-searcher",itemsCreator:BI.emptyFn,el:{},popup:{},valueFormatter:BI.emptyFn,adapter:null,masker:{}})},_init:function(){BI.MultiSelectSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.multi_select_editor",height:b.height}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,height:b.height,isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},el:this.editor,popup:BI.extend({type:"bi.multi_select_search_pane",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){c.keyword=a.editor.getValue(),this.setKeyword(c.keyword),b.itemsCreator(c,d)}},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiSelectSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_CHANGE,arguments)}),this.searcher.on(BI.Searcher.EVENT_SEARCHING,function(){var b=this.getKeywords();a.fireEvent(BI.MultiSelectSearcher.EVENT_SEARCHING,b)})},adjustView:function(){this.searcher.adjustView()},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setAdapter:function(a){this.searcher.setAdapter(a)},setState:function(a){var b=this.options;a||(a={}),a.value||(a.value=[]),a.type===BI.Selection.All?1===BI.size(a.assist)?this.editor.setState(b.valueFormatter(a.assist[0]+"")||a.assist[0]+""):this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.All):1===BI.size(a.value)?this.editor.setState(b.valueFormatter(a.value[0]+"")||a.value[0]+""):this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.None)},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiSelectSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiSelectSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectSearcher.EVENT_START="EVENT_START",BI.MultiSelectSearcher.EVENT_STOP="EVENT_STOP",BI.MultiSelectSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectSearcher.EVENT_SEARCHING="EVENT_SEARCHING",BI.shortcut("bi.multi_select_searcher",BI.MultiSelectSearcher),BI.MultiSelectCheckSelectedSwitcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckSelectedSwitcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-selected-switcher",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,el:{},popup:{},adapter:null,masker:{}})},_init:function(){BI.MultiSelectCheckSelectedSwitcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.button=BI.createWidget(b.el,{type:"bi.multi_select_check_selected_button",itemsCreator:b.itemsCreator}),this.button.on(BI.Events.VIEW,function(){a.fireEvent(BI.Events.VIEW,arguments)}),this.switcher=BI.createWidget({type:"bi.switcher",toggle:!1,element:this,el:this.button,popup:BI.extend({type:"bi.multi_select_check_pane",valueFormatter:b.valueFormatter,itemsCreator:b.itemsCreator,onClickContinueSelect:function(){a.switcher.hideView()}},b.popup),adapter:b.adapter,masker:b.masker}),this.switcher.on(BI.Switcher.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE)}),this.switcher.on(BI.Switcher.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW)}),this.switcher.on(BI.Switcher.EVENT_AFTER_POPUPVIEW,function(){var a=this;BI.nextTick(function(){a.populate()})}),this.switcher.element.click(function(a){a.stopPropagation()})},adjustView:function(){this.switcher.adjustView()},hideView:function(){this.switcher.empty(),this.switcher.hideView()},setAdapter:function(a){this.switcher.setAdapter(a)},setValue:function(a){this.switcher.setValue(a)},setButtonChecked:function(a){this.button.setValue(a)},getValue:function(){},populate:function(a){this.switcher.populate.apply(this.switcher,arguments)}}),BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE="MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE",BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW="MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.multi_select_check_selected_switcher",BI.MultiSelectCheckSelectedSwitcher),BI.MultiSelectList=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-list",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={};var c=function(){BI.isKey(a._startValue)&&a.storeValue.value[a.storeValue.type===BI.Selection.All?"remove":"pushDistinct"](a._startValue)};this.adapter=BI.createWidget({type:"bi.multi_select_loader",cls:"popup-multi-select-list bi-border-left bi-border-right bi-border-bottom",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,el:{height:""}}),this.adapter.on(BI.MultiSelectLoader.EVENT_CHANGE,function(){a.storeValue=this.getValue(),a._adjust(function(){c(),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)})}),this.searcherPane=BI.createWidget({type:"bi.multi_select_search_pane",cls:"bi-border-left bi-border-right bi-border-bottom",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.trigger.getKeyword()},itemsCreator:function(c,d){c.keyword=a.trigger.getKeyword(),this.setKeyword(c.keyword),b.itemsCreator(c,d)}}),this.searcherPane.setVisible(!1),this.trigger=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},adapter:this.adapter,popup:this.searcherPane,height:200,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane(),a._setStartValue(""),this.setValue(BI.deepClone(a.storeValue))}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),a._setStartValue(""),a.adapter.setValue(a.storeValue),a.adapter.populate()}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){if(this.hasMatched()){var b=this.getKeyword();a._join({type:BI.Selection.Multi,value:[b]},function(){a._showAdapter(),a.adapter.setValue(a.storeValue),a._setStartValue(b),c(),a._setStartValue(""),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)})}else a._showAdapter()}},{eventName:BI.Searcher.EVENT_SEARCHING,action:function(){var b=this.getKeyword(),d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.adapter.setValue(a.storeValue),c(),a.adapter.populate(),a._setStartValue("")):(a.adapter.setValue(a.storeValue),c())})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}}]}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.trigger,height:30},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:30,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},_defaultState:function(){this.trigger.stopEditing()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&d.storeValue.value[d.storeValue.type===BI.Selection.Multi?"pushDistinct":"remove"](b)}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this._allData?c(this._allData):e.itemsCreator({type:BI.MultiSelectList.REQ_GET_ALL_DATA},function(a){d._allData=BI.pluck(a.items,"value"),c(d._allData)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),d.itemsCreator({type:BI.MultiSelectList.REQ_GET_ALL_DATA,keyword:c.trigger.getKeyword()},function(d){var e=BI.pluck(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,delete g[b])}),f&&(c.storeValue.value=BI.values(g)),
-void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&delete h[e[a]],BI.isNull(i[e[a]])&&j.push(b)}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.storeValue.type===BI.Selection.All&&c.storeValue.value.length>=c._count?c.storeValue={type:BI.Selection.Multi,value:[]}:c.storeValue.type===BI.Selection.Multi&&c.storeValue.value.length>=c._count&&(c.storeValue={type:BI.Selection.All,value:[]})}var c=this,d=this.options;this._count?(b(),a()):d.itemsCreator({type:BI.MultiSelectList.REQ_GET_DATA_LENGTH},function(d){c._count=d.count,b(),a()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.adapter.setStartValue(a)},isAllSelected:function(){return this.adapter.isAllSelected()},resize:function(){},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.adapter.setValue(this.storeValue),this.trigger.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this._count=null,this._allData=null,this.adapter.populate.apply(this.adapter,arguments),this.trigger.populate.apply(this.trigger,arguments)}}),BI.extend(BI.MultiSelectList,{REQ_GET_DATA_LENGTH:0,REQ_GET_ALL_DATA:-1}),BI.MultiSelectList.EVENT_CHANGE="BI.MultiSelectList.EVENT_CHANGE",BI.shortcut("bi.multi_select_list",BI.MultiSelectList),BI.MultiSelectTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-tree",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectTree.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={value:{}},this.adapter=BI.createWidget({type:"bi.multi_select_tree_popup",itemsCreator:b.itemsCreator}),this.adapter.on(BI.MultiSelectTreePopup.EVENT_CHANGE,function(){a.searcher.isSearching()?a.storeValue={value:a.searcherPane.getValue()}:a.storeValue={value:a.adapter.getValue()},a.setSelectedValue(a.storeValue.value),a.fireEvent(BI.MultiSelectTree.EVENT_CHANGE)}),this.searcherPane=BI.createWidget({type:"bi.multi_tree_search_pane",cls:"bi-border-left bi-border-right bi-border-bottom",keywordGetter:function(){return a.searcher.getKeyword()},itemsCreator:function(c,d){c.keyword=a.searcher.getKeyword(),b.itemsCreator(c,d)}}),this.searcherPane.setVisible(!1),this.searcher=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(b,c){c({keyword:a.searcher.getKeyword()})},adapter:this.adapter,popup:this.searcherPane,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane()}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),BI.nextTick(function(){a.adapter.populate()})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(){a.searcher.isSearching()?a.storeValue={value:a.searcherPane.getValue()}:a.storeValue={value:a.adapter.getValue()},a.setSelectedValue(a.storeValue.value),a.fireEvent(BI.MultiSelectTree.EVENT_CHANGE)}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){a._showAdapter()}}]}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.searcher,height:30},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:30,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},resize:function(){},setSelectedValue:function(a){this.storeValue.value=a||{},this.adapter.setSelectedValue(a),this.searcherPane.setSelectedValue(a),this.searcher.setValue({value:a||{}})},setValue:function(a){this.adapter.setValue(a)},stopSearch:function(){this.searcher.stopSearch()},updateValue:function(a){this.adapter.updateValue(a)},getValue:function(){return this.storeValue.value},populate:function(){this.searcher.populate.apply(this.searcher,arguments),this.adapter.populate.apply(this.adapter,arguments)}}),BI.MultiSelectTree.EVENT_CHANGE="BI.MultiSelectTree.EVENT_CHANGE",BI.shortcut("bi.multi_select_tree",BI.MultiSelectTree),BI.MultiSelectTreePopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-tree-popup bi-border-left bi-border-right bi-border-bottom",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popup=BI.createWidget({type:"bi.async_tree",element:this,itemsCreator:b.itemsCreator}),this.popup.on(BI.TreeView.EVENT_AFTERINIT,function(){a.fireEvent(BI.MultiSelectTreePopup.EVENT_AFTER_INIT)}),this.popup.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectTreePopup.EVENT_CHANGE)})},hasChecked:function(){return this.popup.hasChecked()},getValue:function(){return this.popup.getValue()},setValue:function(a){a||(a={}),this.popup.setValue(a)},setSelectedValue:function(a){a||(a={}),this.popup.setSelectedValue(a)},updateValue:function(a){this.popup.updateValue(a),this.popup.refresh()},populate:function(a){this.popup.stroke(a)}}),BI.MultiSelectTreePopup.EVENT_AFTER_INIT="BI.MultiSelectTreePopup.EVENT_AFTER_INIT",BI.MultiSelectTreePopup.EVENT_CHANGE="BI.MultiSelectTreePopup.EVENT_CHANGE",BI.shortcut("bi.multi_select_tree_popup",BI.MultiSelectTreePopup),BI.MultiTreeCheckPane=BI.inherit(BI.Pane,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiTreeCheckPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-check-pane bi-background",onClickContinueSelect:BI.emptyFn})},_init:function(){BI.MultiTreeCheckPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.selectedValues={};var c=BI.createWidget({type:"bi.text_button",text:BI.i18nText("BI-Continue_Select"),cls:"multi-tree-check-selected"});c.on(BI.TextButton.EVENT_CHANGE,function(){b.onClickContinueSelect(),BI.nextTick(function(){a.empty()})});var d=BI.createWidget({type:"bi.left",cls:"multi-tree-continue-select",items:[{el:{type:"bi.label",text:BI.i18nText("BI-Selected_Data")},lgap:this.constants.lgap,tgap:this.constants.tgap},{el:c,lgap:this.constants.lgap,tgap:this.constants.tgap}]});this.display=BI.createWidget({type:"bi.display_tree",cls:"bi-multi-tree-display",itemsCreator:function(a,c){a.type=BI.TreeView.REQ_TYPE_GET_SELECTED_DATA,b.itemsCreator(a,c)}}),this.display.on(BI.Events.AFTERINIT,function(){a.fireEvent(BI.Events.AFTERINIT)}),this.display.on(BI.TreeView.EVENT_INIT,function(){d.setVisible(!1)}),this.display.on(BI.TreeView.EVENT_AFTERINIT,function(){d.setVisible(!0)}),BI.createWidget({type:"bi.vtape",element:this,items:[{height:this.constants.height,el:d},{height:"fill",el:this.display}]})},empty:function(){this.display.empty()},populate:function(a){this.display.stroke(a)},setValue:function(a){a||(a={}),this.display.setSelectedValue(a.value)},getValue:function(){}}),BI.MultiTreeCheckPane.EVENT_CONTINUE_CLICK="EVENT_CONTINUE_CLICK",BI.shortcut("bi.multi_tree_check_pane",BI.MultiTreeCheckPane),BI.MultiTreeCombo=BI.inherit(BI.Single,{constants:{offset:{top:1,left:1,right:2,bottom:33}},_defaultConfig:function(){return BI.extend(BI.MultiTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-combo",itemsCreator:BI.emptyFn,height:25})},_init:function(){function a(){h()?b.storeValue={value:b.trigger.getValue()}:i()&&(b.storeValue={value:b.combo.getValue()}),b.trigger.setValue(b.storeValue)}BI.MultiTreeCombo.superclass._init.apply(this,arguments);var b=this,c=this.options,d=!1,e=!1;this.trigger=BI.createWidget({type:"bi.multi_select_trigger",height:c.height,masker:{offset:this.constants.offset},searcher:{type:"bi.multi_tree_searcher",itemsCreator:c.itemsCreator},switcher:{el:{type:"bi.multi_tree_check_selected_button"},popup:{type:"bi.multi_tree_check_pane",itemsCreator:c.itemsCreator}}}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_tree_popup_view",ref:function(){b.popup=this,b.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiTreePopup.EVENT_AFTERINIT,action:function(){b.trigger.getCounter().adjustView(),d=!0,e===!0&&a()}},{eventName:BI.MultiTreePopup.EVENT_CHANGE,action:function(){f=!0;var a={type:BI.Selection.Multi,value:this.hasChecked()?{1:1}:{}};b.trigger.getSearcher().setState(a),b.trigger.getCounter().setButtonChecked(a)}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CONFIRM,action:function(){b.combo.hideView()}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CLEAR,action:function(){g=!0,b.setValue(),b._defaultState()}}],itemsCreator:c.itemsCreator,onLoaded:function(){BI.nextTick(function(){b.trigger.getCounter().adjustView(),b.trigger.getSearcher().adjustView()})}},hideChecker:function(a){return 0===j.element.find(a.target).length}}),this.storeValue={value:{}};var f=!1,g=!1,h=function(){return b.trigger.getSearcher().isSearching()},i=function(){return b.combo.isViewVisible()};this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){b.storeValue={value:b.combo.getValue()},this.setValue(b.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){b.storeValue={value:this.getValue()},b.combo.setValue(b.storeValue),BI.nextTick(function(){i()&&b.combo.populate()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){e===!1&&(e=!0),d===!0&&(e=null,a())}),this.trigger.on(BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK,function(){b.combo.toggle()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){b.combo.isViewVisible()||b.combo.showView()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(){var a={type:BI.Selection.Multi,value:this.getSearcher().hasChecked()?{1:1}:{}};this.getSearcher().setState(a),this.getCounter().setButtonChecked(a)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){h()||(f===!0&&(b.storeValue={value:b.combo.getValue()},f=!1),b.combo.setValue(b.storeValue),b.populate())}),this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW,function(){h()?(b.trigger.stopEditing(),b.fireEvent(BI.MultiTreeCombo.EVENT_CONFIRM)):i()&&(b.trigger.stopEditing(),b.storeValue={value:b.combo.getValue()},g===!0&&(b.storeValue={value:{}}),b.fireEvent(BI.MultiTreeCombo.EVENT_CONFIRM)),g=!1,f=!1});var j=BI.createWidget({type:"bi.trigger_icon_button",width:c.height,height:c.height,cls:"multi-select-trigger-icon-button bi-border-left"});j.on(BI.TriggerIconButton.EVENT_CHANGE,function(){b.trigger.getCounter().hideView(),b.combo.isViewVisible()?b.combo.hideView():b.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:j,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},setValue:function(a){this.storeValue.value=a||{},this.combo.setValue({value:a||{}})},getValue:function(){return this.storeValue.value},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.MultiTreeCombo.EVENT_CONFIRM="MultiTreeCombo.EVENT_CONFIRM",BI.shortcut("bi.multi_tree_combo",BI.MultiTreeCombo),BI.MultiTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-popup",maxWidth:"auto",minWidth:100,maxHeight:400,onLoaded:BI.emptyFn})},_init:function(){BI.MultiTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.selectedValues={},this.tree=BI.createWidget({type:"bi.async_tree",height:400,cls:"popup-view-tree",itemsCreator:b.itemsCreator,onLoaded:b.onLoaded}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",element:this,stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.tree}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.MultiTreePopup.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.MultiTreePopup.EVENT_CLICK_CONFIRM)}}),this.tree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreePopup.EVENT_CHANGE)}),this.tree.on(BI.TreeView.EVENT_AFTERINIT,function(){a.fireEvent(BI.MultiTreePopup.EVENT_AFTERINIT)})},getValue:function(){return this.tree.getValue()},setValue:function(a){a||(a={}),this.tree.setSelectedValue(a.value)},populate:function(a){this.tree.stroke(a)},hasChecked:function(){return this.tree.hasChecked()},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.MultiTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreePopup.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiTreePopup.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.MultiTreePopup.EVENT_AFTERINIT="EVENT_AFTERINIT",BI.shortcut("bi.multi_tree_popup_view",BI.MultiTreePopup),BI.MultiTreeSearchPane=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiTreeSearchPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-search-pane bi-card",itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.MultiTreeSearchPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.partTree=BI.createWidget({type:"bi.part_tree",element:this,tipText:BI.i18nText("BI-No_Select"),itemsCreator:function(a,c){a.keyword=b.keywordGetter(),b.itemsCreator(a,c)}}),this.partTree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.partTree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreeSearchPane.EVENT_CHANGE)})},hasChecked:function(){return this.partTree.hasChecked()},setValue:function(a){this.setSelectedValue(a.value)},setSelectedValue:function(a){a||(a={}),this.partTree.setSelectedValue(a)},getValue:function(){return this.partTree.getValue()},empty:function(){this.partTree.empty()},populate:function(a){this.partTree.stroke.apply(this.partTree,arguments)}}),BI.MultiTreeSearchPane.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreeSearchPane.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiTreeSearchPane.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.multi_tree_search_pane",BI.MultiTreeSearchPane),BI.MultiTreeCheckSelectedButton=BI.inherit(BI.Single,{_const:{checkSelected:BI.i18nText("BI-Check_Selected")},_defaultConfig:function(){return BI.extend(BI.MultiTreeCheckSelectedButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-check-selected-button",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiTreeCheckSelectedButton.superclass._init.apply(this,arguments);var a=this;this.indicator=BI.createWidget({type:"bi.icon_button",cls:"check-font trigger-check-selected",width:15,height:15,stopPropagation:!0}),this.checkSelected=BI.createWidget({type:"bi.text_button",cls:"trigger-check-selected",invisible:!0,hgap:4,text:this._const.checkSelected,textAlign:"center",textHeight:15}),this.checkSelected.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.checkSelected.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedButton.EVENT_CHANGE,arguments)}),BI.createWidget({type:"bi.horizontal",element:this,items:[this.indicator,this.checkSelected]}),this.element.hover(function(){a.indicator.setVisible(!1),a.checkSelected.setVisible(!0)},function(){a.indicator.setVisible(!0),a.checkSelected.setVisible(!1)}),this.setVisible(!1)},setValue:function(a){a||(a={}),this.setVisible(BI.size(a.value)>0)}}),BI.MultiTreeCheckSelectedButton.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_tree_check_selected_button",BI.MultiTreeCheckSelectedButton),BI.MultiTreeSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiTreeSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-searcher",itemsCreator:BI.emptyFn,popup:{},adapter:null,masker:{}})},_init:function(){BI.MultiTreeSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.multi_select_editor",height:b.height,el:{type:"bi.simple_state_editor",height:b.height}}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,isAutoSearch:!1,isAutoSync:!1,onSearch:function(b,c){c({keyword:a.editor.getValue()})},el:this.editor,popup:BI.extend({type:"bi.multi_tree_search_pane",keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){c.keyword=a.editor.getValue(),b.itemsCreator(c,d)}},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiTreeSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_CHANGE,arguments)})},adjustView:function(){this.searcher.adjustView()},setAdapter:function(a){this.searcher.setAdapter(a)},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setState:function(a){a||(a={}),a.value||(a.value=[]),a.type===BI.Selection.All?this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.All):this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.None)},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiTreeSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiTreeSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreeSearcher.EVENT_START="EVENT_START",BI.MultiTreeSearcher.EVENT_STOP="EVENT_STOP",BI.MultiTreeSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.shortcut("bi.multi_tree_searcher",BI.MultiTreeSearcher),BI.NumericalInterval=BI.inherit(BI.Single,{constants:{typeError:"typeBubble",numberError:"numberBubble",signalError:"signalBubble",editorWidth:114,columns:5,width:30,rows:1,numberErrorCls:"number-error",border:1,less:0,less_equal:1,numTip:""},_defaultConfig:function(){var a=BI.NumericalInterval.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-numerical-interval",height:25,validation:"valid"})},_init:function(){var a=this,b=this.constants,c=this.options;BI.NumericalInterval.superclass._init.apply(this,arguments),this.smallEditor=BI.createWidget({type:"bi.editor",height:c.height-2,watermark:BI.i18nText("BI-Basic_Unrestricted"),allowBlank:!0,value:c.min,level:"warning",tipType:"warning",quitChecker:function(){return!1},validationChecker:function(c){return!!BI.isNumeric(c)||(a.smallEditorBubbleType=b.typeError,!1)},cls:"numerical-interval-small-editor bi-border-top bi-border-bottom bi-border-left"}),this.smallTip=BI.createWidget({type:"bi.label",text:c.numTip,height:c.height-2,invisible:!0}),BI.createWidget({type:"bi.absolute",element:this.smallEditor.element,items:[{el:this.smallTip,top:0,right:5}]}),this.bigEditor=BI.createWidget({type:"bi.editor",height:c.height-2,watermark:BI.i18nText("BI-Basic_Unrestricted"),allowBlank:!0,value:c.max,level:"warning",tipType:"warning",quitChecker:function(){return!1},validationChecker:function(c){return!!BI.isNumeric(c)||(a.bigEditorBubbleType=b.typeError,!1)},cls:"numerical-interval-big-editor bi-border-top bi-border-bottom bi-border-right"}),this.bigTip=BI.createWidget({type:"bi.label",text:c.numTip,height:c.height-2,invisible:!0}),BI.createWidget({type:"bi.absolute",element:this.bigEditor.element,items:[{el:this.bigTip,top:0,right:5}]}),this.smallCombo=BI.createWidget({type:"bi.icon_combo",cls:"numerical-interval-small-combo bi-border",height:c.height-2,items:[{text:"("+BI.i18nText("BI-Less_Than")+")",iconClass:"less-font",value:0},{text:"("+BI.i18nText("BI-Less_And_Equal")+")",value:1,iconClass:"less-equal-font"}]}),c.closemin===!0?this.smallCombo.setValue(1):this.smallCombo.setValue(0),this.bigCombo=BI.createWidget({type:"bi.icon_combo",cls:"numerical-interval-big-combo bi-border",height:c.height-2,items:[{text:"("+BI.i18nText("BI-Less_Than")+")",iconClass:"less-font",value:0},{text:"("+BI.i18nText("BI-Less_And_Equal")+")",value:1,iconClass:"less-equal-font"}]}),c.closemax===!0?this.bigCombo.setValue(1):this.bigCombo.setValue(0),this.label=BI.createWidget({type:"bi.label",text:BI.i18nText("BI-Basic_Value"),textHeight:c.height-2*b.border,width:b.width-2*b.border,height:c.height-2*b.border,level:"warning",tipType:"warning"}),this.left=BI.createWidget({type:"bi.htape",items:[{el:a.smallEditor},{el:a.smallCombo,width:b.width-2*b.border}]}),this.right=BI.createWidget({type:"bi.htape",items:[{el:a.bigCombo,width:b.width-2*b.border},{el:a.bigEditor}]}),BI.createWidget({element:a,type:"bi.center",hgap:15,height:c.height,items:[{type:"bi.absolute",items:[{el:a.left,left:-15,right:0,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:0,right:-15,top:0,bottom:0}]}]}),BI.createWidget({element:a,type:"bi.horizontal_auto",items:[a.label]}),a._setValidEvent(a.bigEditor,b.bigEditor),a._setValidEvent(a.smallEditor,b.smallEditor),a._setErrorEvent(a.bigEditor,b.bigEditor),a._setErrorEvent(a.smallEditor,b.smallEditor),a._setBlurEvent(a.bigEditor),a._setBlurEvent(a.smallEditor),a._setFocusEvent(a.bigEditor),a._setFocusEvent(a.smallEditor),a._setComboValueChangedEvent(a.bigCombo),a._setComboValueChangedEvent(a.smallCombo),a._setEditorValueChangedEvent(a.bigEditor),a._setEditorValueChangedEvent(a.smallEditor)},_checkValidation:function(){var a=this,b=this.constants,c=this.options;if(a._setTitle(""),BI.Bubbles.hide(b.typeError),BI.Bubbles.hide(b.numberError),BI.Bubbles.hide(b.signalError),a.smallEditor.isValid()&&a.bigEditor.isValid()){if(BI.isEmptyString(a.smallEditor.getValue())||BI.isEmptyString(a.bigEditor.getValue()))return a.element.removeClass("number-error"),c.validation="valid","";var d=parseFloat(a.smallEditor.getValue()),e=parseFloat(a.bigEditor.getValue()),f=a.bigCombo.getValue(),g=a.smallCombo.getValue();return f[0]===b.less_equal&&g[0]===b.less_equal?d>e?(a.element.addClass("number-error"),c.validation="invalid",b.numberError):(a.element.removeClass("number-error"),c.validation="valid",""):d>e?(a.element.addClass("number-error"),c.validation="invalid",b.numberError):d===e?(a.element.addClass("number-error"),c.validation="invalid",b.signalError):(a.element.removeClass("number-error"),c.validation="valid","")}return a.element.removeClass("number-error"),c.validation="invalid",b.typeError},_setTitle:function(a){var b=this;b.bigEditor.setTitle(a),b.smallEditor.setTitle(a),b.label.setTitle(a)},_setFocusEvent:function(a){var b=this,c=this.constants;a.on(BI.Editor.EVENT_FOCUS,function(){switch(b._setTitle(""),b._checkValidation()){case c.typeError:BI.Bubbles.show(c.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),b,{offsetStyle:"center"});break;case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"center"});break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"center"});break;default:return}})},_setBlurEvent:function(a){var b=this.constants,c=this;a.on(BI.Editor.EVENT_BLUR,function(){switch(BI.Bubbles.hide(b.typeError),BI.Bubbles.hide(b.numberError),BI.Bubbles.hide(b.signalError),c._checkValidation()){case b.typeError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data"));break;case b.numberError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value"));break;case b.signalError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value"));break;default:c._setTitle("")}})},_setErrorEvent:function(a){var b=this.constants,c=this;a.on(BI.Editor.EVENT_ERROR,function(){c._checkValidation(),BI.Bubbles.show(b.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),c,{offsetStyle:"center"}),c.fireEvent(BI.NumericalInterval.EVENT_ERROR)})},_setValidEvent:function(a){var b=this,c=this.constants;a.on(BI.Editor.EVENT_VALID,function(){switch(b._checkValidation()){case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"center"}),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"center"}),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;default:b.fireEvent(BI.NumericalInterval.EVENT_VALID)}})},_setEditorValueChangedEvent:function(a){var b=this,c=this.constants;a.on(BI.Editor.EVENT_CHANGE,function(){switch(b._checkValidation()){case c.typeError:BI.Bubbles.show(c.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),b,{offsetStyle:"center"});break;case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"center"});break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"center"})}b.fireEvent(BI.NumericalInterval.EVENT_CHANGE)})},_setComboValueChangedEvent:function(a){var b=this,c=this.constants;a.on(BI.IconCombo.EVENT_CHANGE,function(){switch(b._checkValidation()){case c.typeError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data")),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;case c.numberError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value")),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;case c.signalError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value")),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;default:b.fireEvent(BI.NumericalInterval.EVENT_CHANGE),b.fireEvent(BI.NumericalInterval.EVENT_VALID)}})},isStateValid:function(){return"valid"===this.options.validation},setMinEnable:function(a){this.smallEditor.setEnable(a)},setCloseMinEnable:function(a){this.smallCombo.setEnable(a)},setMaxEnable:function(a){this.bigEditor.setEnable(a)},setCloseMaxEnable:function(a){this.bigCombo.setEnable(a)},showNumTip:function(){this.smallTip.setVisible(!0),this.bigTip.setVisible(!0)},hideNumTip:function(){this.smallTip.setVisible(!1),this.bigTip.setVisible(!1)},setNumTip:function(a){this.smallTip.setText(a),this.bigTip.setText(a)},getNumTip:function(){return this.smallTip.getText()},setValue:function(a){a=a||{};var b,c=this;(BI.isNumeric(a.min)||BI.isEmptyString(a.min))&&c.smallEditor.setValue(a.min),BI.isNotNull(a.min)||c.smallEditor.setValue(""),(BI.isNumeric(a.max)||BI.isEmptyString(a.max))&&c.bigEditor.setValue(a.max),BI.isNotNull(a.max)||c.bigEditor.setValue(""),BI.isNull(a.closemin)||(b=a.closemin===!0?1:0,c.smallCombo.setValue(b)),BI.isNull(a.closemax)||(b=a.closemax===!0?1:0,c.bigCombo.setValue(b))},getValue:function(){var a=this,b={},c=a.smallCombo.getValue(),d=a.bigCombo.getValue();return b.min=a.smallEditor.getValue(),b.max=a.bigEditor.getValue(),0===c[0]?b.closemin=!1:b.closemin=!0,0===d[0]?b.closemax=!1:b.closemax=!0,b}}),BI.NumericalInterval.EVENT_CHANGE="EVENT_CHANGE",BI.NumericalInterval.EVENT_VALID="EVENT_VALID",BI.NumericalInterval.EVENT_ERROR="EVENT_ERROR",BI.shortcut("bi.numerical_interval",BI.NumericalInterval),BI.PageTableCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PageTableCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-page-table-cell",text:"",title:""})},_init:function(){BI.PageTableCell.superclass._init.apply(this,arguments);BI.createWidget({type:"bi.label",element:this,textAlign:"left",whiteSpace:"nowrap",height:this.options.height,text:this.options.text,title:this.options.title,value:this.options.value,lgap:5,rgap:5});BI.isNotNull(this.options.styles)&&BI.isObject(this.options.styles)&&this.element.css(this.options.styles)}}),BI.shortcut("bi.page_table_cell",BI.PageTableCell),BI.PageTable=BI.inherit(BI.Widget,{_const:{scrollWidth:18,minScrollWidth:100},_defaultConfig:function(){return BI.extend(BI.PageTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-page-table",el:{type:"bi.sequence_table"},pager:{horizontal:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn},vertical:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn}},itemsCreator:BI.emptyFn,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!1,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[]})},_init:function(){BI.PageTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.hCurr=1,this.vCurr=1,this.table=BI.createWidget(b.el,{type:"bi.sequence_table",width:b.width,height:b.height&&b.height-30,isNeedResize:!0,isResizeAdapt:!1,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,minColumnSize:b.minColumnSize,maxColumnSize:b.maxColumnSize,headerRowSize:b.headerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,headerCellStyleGetter:b.headerCellStyleGetter,summaryCellStyleGetter:b.summaryCellStyleGetter,sequenceCellStyleGetter:b.sequenceCellStyleGetter,header:b.header,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(){a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)}),this.pager=BI.createWidget(b.pager,{type:"bi.direction_pager",height:30}),this.pager.on(BI.Pager.EVENT_CHANGE,function(){var c=this.getVPage&&this.getVPage();BI.isNull(c)&&(c=this.getCurrentPage());var d=this.getHPage&&this.getHPage();b.itemsCreator({vpage:c,hpage:d},function(b,e,f,g){a.table.setVPage?a.table.setVPage(c):a.table.setValue(c),a.table.setHPage&&a.table.setHPage(d),a.populate.apply(a,arguments)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.table,left:0,top:0},{el:this.pager,left:0,right:0,bottom:0}]})},setHPage:function(a){this.hCurr=a,this.pager.setHPage&&this.pager.setHPage(a),this.table.setHPage&&this.table.setHPage(a)},setVPage:function(a){this.vCurr=a,this.pager.setVPage&&this.pager.setVPage(a),this.table.setVPage&&this.table.setVPage(a)},getHPage:function(){var a=this.pager.getHPage&&this.pager.getHPage();return BI.isNotNull(a)?a:(a=this.pager.getCurrentPage&&this.pager.getCurrentPage(),BI.isNotNull(a)?a:this.hpage)},getVPage:function(){var a=this.pager.getVPage&&this.pager.getVPage();return BI.isNotNull(a)?a:(a=this.pager.getCurrentPage&&this.pager.getCurrentPage(),BI.isNotNull(a)?a:this.vpage)},setWidth:function(a){BI.PageTable.superclass.setWidth.apply(this,arguments),this.table.setWidth(a)},setHeight:function(a){BI.PageTable.superclass.setHeight.apply(this,arguments);var b=!1;this.pager.alwaysShowPager?b=!0:this.pager.hasHNext&&this.pager.hasHNext()?b=!0:this.pager.hasHPrev&&this.pager.hasHPrev()?b=!0:this.pager.hasVNext&&this.pager.hasVNext()?b=!0:this.pager.hasVPrev&&this.pager.hasVPrev()?b=!0:this.pager.hasNext&&this.pager.hasNext()?b=!0:this.pager.hasPrev&&this.pager.hasPrev()&&(b=!0),
-this.table.setHeight(a-(b?30:0))},setColumnSize:function(a){this.options.columnSize=a,this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},setRegionColumnSize:function(a){this.options.columnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},getVerticalScroll:function(){return this.table.getVerticalScroll()},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},restore:function(){this.table.restore()},attr:function(){BI.PageTable.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments)},populate:function(){this.pager.populate(),this.table.populate.apply(this.table,arguments)},destroy:function(){this.table.destroy(),this.pager&&this.pager.destroy(),BI.PageTable.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.page_table",BI.PageTable),BI.PathChooser=BI.inherit(BI.Widget,{_const:{lineColor:"#d4dadd",selectLineColor:"#3f8ce8"},_defaultConfig:function(){return BI.extend(BI.PathChooser.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-path-chooser",items:[]})},_init:function(){BI.PathChooser.superclass._init.apply(this,arguments),this.populate(this.options.items)},_createRegions:function(a){var b=this;this.regions=BI.createWidgets(BI.map(a,function(a,c){return{type:"bi.path_region",title:b.texts[c]||c}})),this.regionMap={},BI.each(a,function(a,c){b.regionMap[c]=a}),this.container=BI.createWidget({type:"bi.horizontal",verticalAlign:"top",scrollx:!1,scrolly:!1,hgap:10,items:this.regions}),BI.createWidget({type:"bi.vertical_adapt",element:this,scrollable:!0,hgap:10,items:[this.container]})},getRegionIndexById:function(a){var b=this.store[a],c=b.get("region");return this.regionMap[c]},_drawPath:function(a,b,c){var d=this,e=[];e=BI.contains(this.start,a)?this.start:[a],BI.each(e,function(a,b){BI.each(d.radios[b],function(a,b){b.setSelected(!1)}),BI.each(d.lines[b],function(a,b){b.attr("stroke",d._const.lineColor)}),BI.each(d.regionIndexes[b],function(a,b){d.regions[b].reset()})}),BI.each(this.routes[a][c],function(a,e){var f=d.getRegionIndexById(e);d.regions[f].setSelect(b+c,e)});for(var f=BI.last(this.routes[a][c]);f&&this.routes[f]&&1===this.routes[f].length;)BI.each(this.routes[f][0],function(a,b){var c=d.getRegionIndexById(b);d.regions[c].setSelect(0,b)}),this.lines[f][0].attr("stroke",d._const.selectLineColor).toFront(),f=BI.last(this.routes[f][0]);this.lines[a][c].attr("stroke",d._const.selectLineColor).toFront(),this.radios[a]&&this.radios[a][c]&&this.radios[a][c].setSelected(!0)},_drawRadio:function(a,b,c,d,e){var f=this,g=BI.createWidget({type:"bi.radio",cls:"path-chooser-radio",selected:b+c===0,start:a,index:c});g.on(BI.Radio.EVENT_CHANGE,function(){f._drawPath(a,b,c),f.fireEvent(BI.PathChooser.EVENT_CHANGE,a,c)}),this.radios[a]||(this.radios[a]=[]),this.radios[a].push(g),BI.createWidget({type:"bi.absolute",element:this.container,items:[{el:g,left:d-6.5,top:e-6.5}]})},_drawLine:function(a,b){var c=this;this.lines[a]||(this.lines[a]=[]),this.pathes[a]||(this.pathes[a]=[]);var d=this.getRegionIndexById(a),e=this.regions[d].getIndexByValue(a);BI.each(b,function(f,g){c.pathes[a][f]=[];var h=f+e,i="",j=47.5+29*h,k=50+100*d,l=k,m=j,n=j,o=c.getRegionIndexById(BI.last(g)),p=c.regions[o].getIndexByValue(BI.last(g)),q=50+100*o;if(BI.contains(c.start,a)?(l=k-50,i+="M"+(k-50)+","+j,c.pathes[a][f].push({x:k-50,y:j})):0===h?(l=k+50,i+="M"+k+","+j,c.pathes[a][f].push({x:k,y:j})):(l=k+50,i+="M"+k+",47.5L"+(k+50)+",47.5L"+(k+50)+","+j,c.pathes[a][f].push({x:k,y:47.5}),c.pathes[a][f].push({x:k+50,y:47.5}),c.pathes[a][f].push({x:k+50,y:j})),h>0){var r=29*p+47.5;i+="L"+(q-50)+","+n+"L"+(q-50)+","+r+"L"+q+","+r,c.pathes[a][f].push({x:q-50,y:n}),c.pathes[a][f].push({x:q-50,y:r}),c.pathes[a][f].push({x:q,y:r})}else i+="L"+q+","+n,c.pathes[a][f].push({x:q,y:n});var s=c.svg.path(i).attr({stroke:0===h?c._const.selectLineColor:c._const.lineColor,"stroke-dasharray":"-"});c.lines[a].push(s),b.length>1&&c.lines[a][0].toFront(),BI.contains(c.start,a)&&c.lines[c.regions[0].getValueByIndex(0)][0].toFront(),(b.length>1||BI.contains(c.start,a))&&c._drawRadio(a,e,f,l,m)})},_drawLines:function(a){var b=this;this.lines={},this.pathes={},this.radios={},this.regionIndexes={},BI.each(a,function(a,c){b.regionIndexes[a]||(b.regionIndexes[a]=[]),BI.each(c,function(c,d){BI.each(d,function(c,d){var e=b.getRegionIndexById(d);BI.contains(b.regionIndexes[a],e)||b.regionIndexes[a].push(e)})})}),BI.each(a,function(a,c){b._drawLine(a,c)})},_pushNodes:function(a){for(var b=this,c=[],d=0;d0||BI.contains(b.start,e))&&g.addItem(e,b.texts[e])}for(var d=BI.first(c);d0&&(h=c[b-1]);var i=a.store[h.value||""],j=a.store[g.value]||new BI.Node(g.value);j.set(g),a.store[g.value]=j,a.texts[g.value]=g.text,a.texts[g.region]=g.regionText,i=BI.isNull(i)?d.getRoot():i,i.getChildIndex(g.value)===-1&&d.addNode(i,j)})}),d.traverse(function(a){BI.each(a.getChildren(),function(b,d){if(BI.contains(c,d.get("region"))){var e=BI.indexOf(c,a.get("region")),f=BI.indexOf(c,d.get("region"));if(e>f){for(var g=c[f],h=f;h0&&(e.push(c),d.push(e),e=[]),e.push(c)}),e.length>0&&d.push(e),BI.each(d,function(a,b){var d=b[0],e=BI.findIndex(c.routes[d],function(a,c){if(BI.isEqual(b,c))return!0});if(e>=0){var f=c.getRegionIndexById(d),g=c.regions[f].getIndexByValue(d);c._drawPath(d,g,e)}})},getValue:function(){var a=[];return BI.each(this.regions,function(b,c){var d=c.getValue();BI.isKey(d)&&a.push(d)}),a}}),BI.PathChooser.EVENT_CHANGE="PathChooser.EVENT_CHANGE",BI.shortcut("bi.path_chooser",BI.PathChooser),BI.PathRegion=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PathRegion.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-path-region bi-background",width:80,title:""})},_init:function(){BI.PathRegion.superclass._init.apply(this,arguments);var a=this.options;this.zIndex=100;var b=BI.createWidget({type:"bi.label",text:a.title,title:a.title,height:30});b.element.css("zIndex",this.zIndex--),this.items=[],this.vertical=BI.createWidget({type:"bi.vertical",element:this,bgap:5,hgap:10,items:[b]})},hasItem:function(a){return BI.any(this.items,function(b,c){return a===c.getValue()})},addItem:function(a,b){if(BI.isKey(a))var c=BI.createWidget({type:"bi.label",cls:"path-region-label bi-card bi-border bi-list-item-select",text:b,value:a,title:b||a,height:22});else var c=BI.createWidget({type:"bi.layout",height:24});c.element.css("zIndex",this.zIndex--),this.items.push(c),this.vertical.addItem(c),1===this.items.length&&this.setSelect(0,a)},reset:function(){BI.each(this.items,function(a,b){b.element.removeClass("active")})},setSelect:function(a,b){if(this.reset(),!(this.items.length<=0))return 1===this.items.length?void this.items[0].element.addClass("active"):void(this.items[a].attr("value")===b&&this.items[a].element.addClass("active"))},setValue:function(a){this.setSelect(this.getIndexByValue(a),a)},getValueByIndex:function(a){return this.items[a].attr("value")},getIndexByValue:function(a){return BI.findIndex(this.items,function(b,c){return c.attr("value")===a})},getValue:function(){var a;return BI.any(this.items,function(b,c){if(c.element.hasClass("active"))return a=c.getValue(),!0}),a}}),BI.PathRegion.EVENT_CHANGE="PathRegion.EVENT_CHANGE",BI.shortcut("bi.path_region",BI.PathRegion),BI.PreviewTableCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PreviewTableCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-preview-table-cell",text:""})},_init:function(){BI.PreviewTableCell.superclass._init.apply(this,arguments);this.options;BI.createWidget({type:"bi.label",element:this,textAlign:"left",whiteSpace:"normal",height:this.options.height,text:this.options.text,value:this.options.value})}}),BI.shortcut("bi.preview_table_cell",BI.PreviewTableCell),BI.PreviewTableHeaderCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PreviewTableHeaderCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-preview-table-header-cell",text:""})},_init:function(){BI.PreviewTableHeaderCell.superclass._init.apply(this,arguments);this.options;BI.createWidget({type:"bi.label",element:this,textAlign:"left",whiteSpace:"normal",height:this.options.height,text:this.options.text,value:this.options.value})}}),BI.shortcut("bi.preview_table_header_cell",BI.PreviewTableHeaderCell),BI.PreviewTable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PreviewTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-preview-table",isNeedFreeze:!1,freezeCols:[],rowSize:null,columnSize:[],headerRowSize:30,header:[],items:[]})},_init:function(){BI.PreviewTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.table=BI.createWidget({type:"bi.table_view",element:this,isNeedResize:!1,isResizeAdapt:!1,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,rowSize:b.rowSize,columnSize:b.columnSize,headerRowSize:b.headerRowSize,header:BI.map(b.header,function(a,b){return BI.map(b,function(a,b){return BI.extend({type:"bi.preview_table_header_cell"},b)})}),items:BI.map(b.items,function(a,b){return BI.map(b,function(a,b){return BI.extend({type:"bi.preview_table_cell"},b)})})}),this.table.on(BI.Table.EVENT_TABLE_AFTER_INIT,function(){a._adjustColumns(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_INIT,arguments)}),this.table.on(BI.Table.EVENT_TABLE_RESIZE,function(){a._adjustColumns()})},_hasAdaptCol:function(a){return BI.any(a,function(a,b){return""===b})},_isPercentage:function(a){return a[0]<=1},_adjustColumns:function(){var a=this.options;if(a.isNeedFreeze===!0){if(this._isPercentage(a.columnSize)){if(this._hasAdaptCol(a.columnSize)){var b=[],c=0;BI.each(a.columnSize,function(a,d){""===d?b.push(a):c+=d}),c=1-c;var d=c/b.length;BI.each(b,function(b,c){a.columnSize[c]=d})}var e=0!==BI.first(a.freezeCols),f=[],g=[];BI.each(a.columnSize,function(b,c){a.freezeCols.contains(b)?f.push(c):g.push(c)});var h=BI.sum(f),i=BI.sum(g);BI.each(f,function(a,b){f[a]=b/h}),BI.each(g,function(a,b){g[a]=b/i}),this.table.setRegionColumnSize(e?["fill",h]:[h,"fill"]),this.table.setColumnSize(e?g.concat(f):f.concat(g))}}else(this._hasAdaptCol(a.columnSize)||this._isPercentage(a.columnSize))&&this.table.setRegionColumnSize(["100%"])},setColumnSize:function(a){return this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},getCalculateColumnSize:function(){return this.table.getCalculateColumnSize()},setHeaderColumnSize:function(a){return this.table.setHeaderColumnSize(a)},setRegionColumnSize:function(a){return this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},getCalculateRegionColumnSize:function(){return this.table.getCalculateRegionColumnSize()},getCalculateRegionRowSize:function(){return this.table.getCalculateRegionRowSize()},getClientRegionColumnSize:function(){return this.table.getClientRegionColumnSize()},getScrollRegionColumnSize:function(){return this.table.getScrollRegionColumnSize()},getScrollRegionRowSize:function(){return this.table.getScrollRegionRowSize()},hasVerticalScroll:function(){return this.table.hasVerticalScroll()},setVerticalScroll:function(a){return this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){return this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){return this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},getColumns:function(){return this.table.getColumns()},populate:function(a,b){this.table.populate(a,b)}}),BI.PreviewTable.EVENT_CHANGE="PreviewTable.EVENT_CHANGE",BI.shortcut("bi.preview_table",BI.PreviewTable),BI.QuarterCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.QuarterCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-quarter-combo",behaviors:{},height:25})},_init:function(){BI.QuarterCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue="",this.trigger=BI.createWidget({type:"bi.quarter_trigger"}),this.trigger.on(BI.QuarterTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.QuarterTrigger.EVENT_CHANGE,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.QuarterTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.QuarterTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.trigger.on(BI.QuarterTrigger.EVENT_CONFIRM,function(){a.combo.isViewVisible()||(this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getKey()):this.getKey()||a.setValue(),a.fireEvent(BI.QuarterCombo.EVENT_CONFIRM))}),this.popup=BI.createWidget({type:"bi.quarter_popup",behaviors:b.behaviors}),this.popup.on(BI.QuarterPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.QuarterCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",element:this,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,el:this.popup}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()||""}}),BI.QuarterCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.quarter_combo",BI.QuarterCombo),BI.QuarterPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.QuarterPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-quarter-popup",behaviors:{}})},_init:function(){BI.QuarterPopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=[{text:Date._QN[1],value:1},{text:Date._QN[2],value:2},{text:Date._QN[3],value:3},{text:Date._QN[4],value:4}];c=BI.map(c,function(a,b){return BI.extend(b,{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"left",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:25})}),this.quarter=BI.createWidget({type:"bi.button_group",element:this,behaviors:b.behaviors,items:BI.createItems(c,{}),layouts:[{type:"bi.vertical"}]}),this.quarter.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.MonthPopup.EVENT_CHANGE)})},getValue:function(){return this.quarter.getValue()[0]},setValue:function(a){this.quarter.setValue([a])}}),BI.QuarterPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.quarter_popup",BI.QuarterPopup),BI.QuarterTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,triggerWidth:30,textWidth:40,errorText:BI.i18nText("BI-Quarter_Trigger_Error_Text")},_defaultConfig:function(){return BI.extend(BI.QuarterTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-quarter-trigger bi-border",height:25})},_init:function(){BI.QuarterTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(a){return""===a||BI.isPositiveInteger(a)&&a>=1&&a<=4},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:c.errorText}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.QuarterTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.QuarterTrigger.EVENT_CHANGE)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.QuarterTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.QuarterTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.QuarterTrigger.EVENT_STOP)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",baseCls:"bi-trigger-quarter-text",text:BI.i18nText("BI-Multi_Date_Quarter"),width:c.textWidth},width:c.textWidth},{el:{type:"bi.trigger_icon_button",width:c.triggerWidth},width:c.triggerWidth}]})},setValue:function(a){this.editor.setState(a),this.editor.setValue(a),this.editor.setTitle(a)},getKey:function(){return this.editor.getValue()}}),BI.QuarterTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.QuarterTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.QuarterTrigger.EVENT_START="EVENT_START",BI.QuarterTrigger.EVENT_STOP="EVENT_STOP",BI.QuarterTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.quarter_trigger",BI.QuarterTrigger),BI.RelationViewItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.RelationViewItem.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view-item bi-list-item-active",height:25,hoverIn:BI.emptyFn,hoverOut:BI.emptyFn})},_init:function(){BI.RelationViewItem.superclass._init.apply(this,arguments);var a=this.options;this.element.hover(a.hoverIn,a.hoverOut);var b=[];a.isPrimary&&b.push({type:"bi.icon",width:16,height:16,title:BI.i18nText("BI-Primary_Key")}),b.push({type:"bi.label",text:a.text,value:a.value,height:a.height,textAlign:"left",width:a.isPrimary?70:90}),BI.createWidget({type:"bi.vertical_adapt",element:this,items:b,cls:"primary-key-font",lgap:5})},enableHover:function(a){BI.RelationViewRegion.superclass.enableHover.apply(this,[{container:"body"}])},setSelected:function(a){this.element[a?"addClass":"removeClass"]("active")}}),BI.shortcut("bi.relation_view_item",BI.RelationViewItem),BI.RelationView=BI.inherit(BI.Widget,{_const:{lineColor:"#c4c6c6",selectLineColor:"#009de3"},_defaultConfig:function(){return BI.extend(BI.RelationView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view",items:[]})},_init:function(){BI.RelationView.superclass._init.apply(this,arguments),this.populate(this.options.items)},_calculateWidths:function(){var a=[];return BI.each(this.views,function(b,c){BI.each(c,function(b,c){a[b]||(a[b]=BI.MIN),a[b]=Math.max(a[b],c.getWidth())})}),a},_calculateHeights:function(){var a=BI.makeArray(BI.size(this.views),BI.MIN);return BI.each(this.views,function(b,c){BI.each(c,function(c,d){a[b]=Math.max(a[b],d.getHeight())})}),a},_hoverIn:function(a){var b=this,c=this._const;BI.each(this.relations,function(d,e){BI.each(e,function(e,f){f[0].primary.value!==a&&f[0].foreign.value!==a||(b.lines[d][e].attr("stroke",c.selectLineColor).toFront(),b.storeViews[d].setValue(f[0].primary.value),b.storeViews[e].setValue(f[0].foreign.value))})})},_hoverOut:function(a){var b=this,c=this._const;BI.each(this.relations,function(d,e){BI.each(e,function(e,f){f[0].primary.value!==a&&f[0].foreign.value!==a||(b.lines[d][e].attr("stroke",c.lineColor),b.storeViews[d].setValue([]),b.storeViews[e].setValue([]))})})},previewRelationTables:function(a,b){return b?(BI.each(this.storeViews,function(b,c){a.contains(b)?c.setPreviewSelected(!0):c.toggleRegion(!1)}),void BI.each(this.lines,function(b,c){BI.each(c,function(c,d){a.contains(b)&&a.contains(c)||d.hide()})})):(BI.each(this.storeViews,function(a,b){b.toggleRegion(!0),b.setPreviewSelected(!1)}),void BI.each(this.lines,function(a,b){BI.each(b,function(a,b){b.show()})}))},populate:function(a){var b=this,c=this.options,d=this._const;c.items=a||[],this.empty(),this.svg=BI.createWidget({type:"bi.svg"});var e=this.regions={},f=this.relations={};BI.each(a,function(a,b){var c=b.primary.region,d=b.foreign&&b.foreign.region;c&&!f[c]&&(f[c]={}),c&&d&&!f[c][d]&&(f[c][d]=[]),c&&!e[c]&&(e[c]=[]),d&&!e[d]&&(e[d]=[]),c&&!BI.deepContains(e[c],b.primary)&&e[c].push(b.primary),d&&!BI.deepContains(e[d],b.foreign)&&e[d].push(b.foreign),c&&d&&f[c][d].push(b)});for(var g=[],h=BI.clone(e),i={};!BI.isEmpty(h);){var j=BI.clone(h);BI.each(c.items,function(a,b){i[b.primary.region]||delete j[b.foreign&&b.foreign.region]}),g.push(BI.keys(j)),BI.extend(i,j),BI.each(j,function(a,b){delete h[a]})}var k=this.views={},l=this.storeViews={},m=this.indexes={},n=[];BI.each(g,function(a,c){k[a]||(k[a]={});var d=[];BI.each(c,function(c,f){var g=e[f];k[a][c]=l[f]=BI.createWidget({type:"bi.relation_view_region_container",value:f,header:g[0].regionTitle,text:g.length>0?g[0].regionText:"",handler:g.length>0?g[0].regionHandler:BI.emptyFn,items:g,belongPackage:!(g.length>0)||g[0].belongPackage}),BI.isNotNull(g[0])&&BI.isNotNull(g[0].keyword)&&k[a][c].doRedMark(g[0].keyword),k[a][c].on(BI.RelationViewRegionContainer.EVENT_HOVER_IN,function(a){b._hoverIn(a)}),k[a][c].on(BI.RelationViewRegionContainer.EVENT_HOVER_OUT,function(a){b._hoverOut(a)}),k[a][c].on(BI.RelationViewRegionContainer.EVENT_PREVIEW,function(a){b.fireEvent(BI.RelationView.EVENT_PREVIEW,f,a)}),m[f]={i:a,j:c},d.push(k[a][c])}),n.push({type:"bi.horizontal",items:d})});var o=this._calculateHeights(),p=this._calculateWidths(),q=[0],r=[0];BI.each(o,function(a,b){0!==a&&(r[a]=r[a-1]+o[a-1])}),BI.each(p,function(a,b){0!==a&&(q[a]=q[a-1]+p[a-1])});var s=this.lines={};BI.each(f,function(a,c){BI.each(c,function(c,e){var f=m[a],g=m[c],h=0,i=1,j=2,n=3,t=j,u=h,v=function(a,b,c,d){var e,f=q[b]+(p[b]-k[a][b].getWidth())/2,g=r[a]+(o[a]-k[a][b].getHeight())/2,l="";switch(c){case h:e=d?k[a][b].getTopRightPosition():k[a][b].getTopLeftPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+f+","+(g-10),g-=10;break;case i:e=k[a][b].getRightPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+(f+10)+","+g,f+=10;break;case j:e=k[a][b].getBottomPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+f+","+(g+10),g+=10;break;case n:e=k[a][b].getLeftPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+(f-10)+","+g,f-=10}return{x:f,y:g,path:l}},w="",x=v(f.i,f.j,t),y=v(g.i,g.j,u,!0);w+=x.path+y.path,s[a]||(s[a]={}),w+="M"+x.x+","+x.y+"L"+y.x+","+y.y;var z=s[a][c]=b.svg.path(w).attr({stroke:d.lineColor,"stroke-width":"2"}).hover(function(){z.attr("stroke",d.selectLineColor).toFront(),l[a].setValue(e[0].primary.value),l[c].setValue(e[0].foreign.value)},function(){z.attr("stroke",d.lineColor),l[a].setValue([]),l[c].setValue([])})})});var t=BI.createWidget();BI.createWidget({type:"bi.vertical",element:t,items:n}),BI.createWidget({type:"bi.absolute",element:t,items:[{el:this.svg,left:0,right:0,top:0,bottom:0}]}),BI.createWidget({type:"bi.center_adapt",scrollable:!0,element:this,items:[t]})}}),BI.RelationView.EVENT_CHANGE="RelationView.EVENT_CHANGE",BI.RelationView.EVENT_PREVIEW="EVENT_PREVIEW",BI.shortcut("bi.relation_view",BI.RelationView),BI.RelationViewRegionContainer=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.RelationViewRegionContainer.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view-region-container",width:150})},_init:function(){BI.RelationViewRegionContainer.superclass._init.apply(this,arguments);var a=this,b=this.options;this.region=BI.createWidget({type:"bi.relation_view_region",value:b.value,header:b.header,text:b.text,handler:b.handler,items:b.items,belongPackage:b.belongPackage}),this.region.on(BI.RelationViewRegion.EVENT_PREVIEW,function(b){a.fireEvent(BI.RelationViewRegionContainer.EVENT_PREVIEW,b)}),this.region.on(BI.RelationViewRegion.EVENT_HOVER_IN,function(b){a.fireEvent(BI.RelationViewRegionContainer.EVENT_HOVER_IN,b)}),this.region.on(BI.RelationViewRegion.EVENT_HOVER_OUT,function(b){a.fireEvent(BI.RelationViewRegionContainer.EVENT_HOVER_OUT,b)}),BI.createWidget({type:"bi.vertical",element:this,items:[this.region],width:this.region.getWidth(),height:this.region.getHeight()})},doRedMark:function(){this.region.doRedMark.apply(this.region,arguments)},unRedMark:function(){this.region.unRedMark.apply(this.region,arguments)},getWidth:function(){return this.region.getWidth()},getHeight:function(){return this.region.getHeight()},getTopLeftPosition:function(){return this.region.getTopLeftPosition()},getTopRightPosition:function(){return this.region.getTopRightPosition()},getBottomPosition:function(){return this.region.getBottomPosition()},getLeftPosition:function(){return this.region.getLeftPosition()},getRightPosition:function(){return this.region.getRightPosition()},setValue:function(a){this.region.setValue(a)},toggleRegion:function(a){a===!0?this.region.element.fadeIn():this.region.element.fadeOut()},setPreviewSelected:function(a){this.region.setPreviewSelected(a)}}),BI.RelationViewRegionContainer.EVENT_HOVER_IN="RelationViewRegion.EVENT_HOVER_IN",BI.RelationViewRegionContainer.EVENT_HOVER_OUT="RelationViewRegion.EVENT_HOVER_OUT",BI.RelationViewRegionContainer.EVENT_PREVIEW="RelationViewRegion.EVENT_PREVIEW",BI.shortcut("bi.relation_view_region_container",BI.RelationViewRegionContainer),BI.RelationViewRegion=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.RelationViewRegion.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view-region cursor-pointer",width:150,text:"",value:"",header:"",items:[],belongPackage:!0})},_init:function(){BI.RelationViewRegion.superclass._init.apply(this,arguments);var a=this,b=this.options;this.preview=BI.createWidget({type:"bi.icon_button",cls:"relation-table-preview-font",width:25,height:25,stopPropagation:!0}),this.preview.on(BI.IconButton.EVENT_CHANGE,function(){a.fireEvent(BI.RelationViewRegion.EVENT_PREVIEW,this.isSelected())}),this.title=BI.createWidget({type:"bi.label",height:25,width:70,text:b.text,value:b.value,textAlign:"left"}),BI.isKey(b.header)&&this.title.setTitle(b.header,{container:"body"}),this.button_group=BI.createWidget({type:"bi.button_group",items:this._createItems(b.items),layouts:[{type:"bi.vertical"}]}),BI.createWidget({type:"bi.vertical",element:this,items:[{type:"bi.vertical",cls:"relation-view-region-container bi-card bi-border "+(b.belongPackage?"":"other-package"),items:[{type:"bi.vertical_adapt",cls:"relation-view-region-title bi-border-bottom",items:[this.preview,this.title]},this.button_group]}],hgap:25,vgap:20})},_createItems:function(a){var b=this;return BI.map(a,function(a,c){return BI.extend(c,{type:"bi.relation_view_item",hoverIn:function(){b.setValue(c.value),b.fireEvent(BI.RelationViewRegion.EVENT_HOVER_IN,c.value)},hoverOut:function(){b.setValue([]),b.fireEvent(BI.RelationViewRegion.EVENT_HOVER_OUT,c.value)}})})},doRedMark:function(){this.title.doRedMark.apply(this.title,arguments)},unRedMark:function(){this.title.unRedMark.apply(this.title,arguments)},getWidth:function(){return this.options.width},getHeight:function(){return 25*this.button_group.getAllButtons().length+25+40+3},getTopLeftPosition:function(){return{x:35,y:20}},getTopRightPosition:function(){return{x:this.getWidth()-25-10,y:20}},getBottomPosition:function(){return{x:35,y:this.getHeight()-20}},getLeftPosition:function(){return{x:25,y:30}},getRightPosition:function(){return{x:this.getWidth()-25,y:30}},setValue:function(a){this.button_group.setValue(a)},setPreviewSelected:function(a){this.preview.setSelected(a)}}),BI.RelationViewRegion.EVENT_HOVER_IN="RelationViewRegion.EVENT_HOVER_IN",BI.RelationViewRegion.EVENT_HOVER_OUT="RelationViewRegion.EVENT_HOVER_OUT",BI.RelationViewRegion.EVENT_PREVIEW="RelationViewRegion.EVENT_PREVIEW",BI.shortcut("bi.relation_view_region",BI.RelationViewRegion),BI.ResponisveTable=BI.inherit(BI.Widget,{_const:{perColumnSize:100},_defaultConfig:function(){return BI.extend(BI.ResponisveTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-responsive-table",isNeedFreeze:!1,freezeCols:[],isNeedMerge:!1,mergeCols:[],mergeRule:function(a,b){return BI.isEqual(a,b)},columnSize:[],headerRowSize:25,footerRowSize:25,rowSize:25,regionColumnSize:!1,header:[],footer:!1,items:[],crossHeader:[],crossItems:[]})},_init:function(){BI.ResponisveTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.table=BI.createWidget({type:"bi.table_view",element:this,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,headerRowSize:b.headerRowSize,footerRowSize:b.footerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,header:b.header,footer:b.footer,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems}),this.table.on(BI.Table.EVENT_TABLE_AFTER_INIT,function(){a._initRegionSize(),a.table.resize(),a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_INIT,arguments)}),this.table.on(BI.Table.EVENT_TABLE_RESIZE,function(){a._resizeRegion(),a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(){a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_BEFORE_REGION_RESIZE,function(){a.fireEvent(BI.Table.EVENT_TABLE_BEFORE_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_REGION_RESIZE,function(){b.isNeedResize===!0&&a._isAdaptiveColumn()&&a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_BEFORE_COLUMN_RESIZE,function(){a._resizeBody(),a.fireEvent(BI.Table.EVENT_TABLE_BEFORE_COLUMN_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_COLUMN_RESIZE,function(){a.fireEvent(BI.Table.EVENT_TABLE_COLUMN_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){a._resizeRegion(),a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)})},_initRegionSize:function(){var a=this.options;if(a.isNeedFreeze===!0){var b=this.table.getRegionColumnSize(),c=this.table.element.width();
-if(!b[0]||"fill"===b[0]||b[0]>c||b[1]>c){var d=a.freezeCols;if(0===d.length)this.table.setRegionColumnSize([0,"fill"]);else if(d.length>0&&d.lengtha.columnSize.length/2&&(e=2*c/3),this.table.setRegionColumnSize([e,"fill"])}else this.table.setRegionColumnSize(["fill",0])}}},_getBlockSize:function(){var a=this.options,b=this.table.getCalculateColumnSize();if(a.isNeedFreeze===!0){var c=[],d=[];BI.each(b,function(b,e){a.freezeCols.contains(b)?c.push(e):d.push(e)});var e=BI.sum(c)+c.length,f=BI.sum(d)+d.length;return{sumLeft:e,sumRight:f,left:c,right:d}}return{size:b,sum:BI.sum(b)+b.length}},_isAdaptiveColumn:function(a){return!(BI.last(a||this.table.getColumnSize())>1.05)},_resizeHeader:function(){var a=this,b=this.options;if(b.isNeedFreeze===!0)if(this._isAdaptiveColumn()){var c=this.table.getCalculateColumnSize();this.table.setHeaderColumnSize(c)}else{var d=this.table.getClientRegionColumnSize(),e=this._getBlockSize(),f=e.sumLeft,g=e.sumRight,h=e.left,i=e.right;h[h.length-1]+=d[0]-f,i[i.length-1]+=d[1]-g;var j=BI.clone(h),k=BI.clone(i);j[j.length-1]="",k[k.length-1]="",this.table.setColumnSize(j.concat(k)),e=a._getBlockSize(),h[h.length-1]0&&a.freezeCols.length=d+e)&&this.table.setRegionColumnSize([d,"fill"]),this._resizeRegion()}},_resizeRegion:function(){var a=this.options,b=this.table.getCalculateRegionColumnSize();if(a.isNeedFreeze===!0&&a.freezeCols.length>0&&a.freezeCols.lengtha.columnSize.length/2&&(e=2*c/3),this.table.setRegionColumnSize([e,"fill"])}}},resize:function(){this.table.resize(),this._resizeRegion(),this._resizeHeader()},setColumnSize:function(a){this.table.setColumnSize(a),this._adjustRegion(),this._resizeHeader()},getColumnSize:function(){return this.table.getColumnSize()},getCalculateColumnSize:function(){return this.table.getCalculateColumnSize()},setHeaderColumnSize:function(a){this.table.setHeaderColumnSize(a),this._adjustRegion(),this._resizeHeader()},setRegionColumnSize:function(a){this.table.setRegionColumnSize(a),this._resizeHeader()},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},getCalculateRegionColumnSize:function(){return this.table.getCalculateRegionColumnSize()},getCalculateRegionRowSize:function(){return this.table.getCalculateRegionRowSize()},getClientRegionColumnSize:function(){return this.table.getClientRegionColumnSize()},getScrollRegionColumnSize:function(){return this.table.getScrollRegionColumnSize()},getScrollRegionRowSize:function(){return this.table.getScrollRegionRowSize()},hasVerticalScroll:function(){return this.table.hasVerticalScroll()},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},getColumns:function(){return this.table.getColumns()},attr:function(){BI.ResponisveTable.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments)},populate:function(a){var b=this,c=this.options;this.table.populate.apply(this.table,arguments),c.isNeedFreeze===!0&&BI.nextTick(function(){b._initRegionSize(),b.table.resize(),b._resizeHeader()})}}),BI.shortcut("bi.responsive_table",BI.ResponisveTable),BI.SelectTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-first-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.SelectTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.first_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:25,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_first_plus_group_node",BI.SelectTreeFirstPlusGroupNode),BI.SelectTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-last-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.SelectTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.last_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:25,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_last_plus_group_node",BI.SelectTreeLastPlusGroupNode),BI.SelectTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-mid-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.SelectTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.mid_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:25,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_mid_plus_group_node",BI.SelectTreeMidPlusGroupNode),BI.SelectTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-combo",height:30,text:"",items:[]})},_init:function(){BI.SelectTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items}),this.popup=BI.createWidget({type:"bi.select_tree_popup",items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.SingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView()})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.shortcut("bi.select_tree_combo",BI.SelectTreeCombo),BI.SelectTreeExpander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectTreeExpander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-expander",trigger:"click",toggle:!0,direction:"bottom",isDefaultInit:!0,el:{},popup:{}})},_init:function(){BI.SelectTreeExpander.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(BI.extend({stopPropagation:!0},b.el)),this.trigger.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&this.isSelected()&&a.expander.setValue([]),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.expander=BI.createWidget({type:"bi.expander",element:this,trigger:b.trigger,toggle:b.toggle,direction:b.direction,isDefaultInit:b.isDefaultInit,el:this.trigger,popup:b.popup}),this.expander.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.trigger.setSelected(!1),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},setValue:function(a){BI.contains(a,this.trigger.getValue())?(this.trigger.setSelected(!0),this.expander.setValue([])):(this.trigger.setSelected(!1),this.expander.setValue(a))},getValue:function(){return this.trigger.isSelected()?[this.trigger.getValue()]:this.expander.getValue()},populate:function(a){this.expander.populate(a)}}),BI.shortcut("bi.select_tree_expander",BI.SelectTreeExpander),BI.SelectTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.SelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),items:[]})},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={layer:b};if(e.id=e.id||BI.UUID(),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.select_tree_first_plus_group_node";break;case a.length-1:f.type="bi.select_tree_last_plus_group_node";break;default:f.type="bi.select_tree_mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children)}else{switch(d){case a.length-1:f.type="bi.last_tree_leaf_item";break;default:f.type="bi.mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_init:function(){BI.SelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.level_tree",expander:{type:"bi.select_tree_expander",isDefaultInit:!0},items:this._formatItems(BI.Tree.transformToTreeFormat(b.items)),chooseType:BI.Selection.Single}),BI.createWidget({type:"bi.vertical",element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.LevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.SelectTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.SelectTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.SelectTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.select_tree_popup",BI.SelectTreePopup),BI.SequenceTableDynamicNumber=BI.inherit(BI.SequenceTableTreeNumber,{_defaultConfig:function(){return BI.extend(BI.SequenceTableDynamicNumber.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-sequence-table-dynamic-number"})},_init:function(){BI.SequenceTableDynamicNumber.superclass._init.apply(this,arguments)},_formatNumber:function(a){function b(a){var c=0;return BI.isNotEmptyArray(a.children)?(BI.each(a.children,function(a,d){c+=b(d)}),a.children.length>1&&BI.isNotEmptyArray(a.values)&&c++):c++,c}var c=this.options,d=[],e=this._getStart(a),f=0,g=0;return BI.each(a,function(a,h){BI.isArray(h.children)&&(BI.each(h.children,function(a,h){var i=b(h);d.push({text:e++,start:f,top:g,cnt:i,index:a,height:i*c.rowSize}),f+=i,g+=i*c.rowSize}),BI.isNotEmptyArray(h.values)&&(d.push({text:BI.i18nText("BI-Summary_Values"),start:f++,top:g,cnt:1,isSummary:!0,height:c.rowSize}),g+=c.rowSize))}),d}}),BI.shortcut("bi.sequence_table_dynamic_number",BI.SequenceTableDynamicNumber),BI.SequenceTableListNumber=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SequenceTableListNumber.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-sequence-table-list-number",isNeedFreeze:!1,scrollTop:0,startSequence:1,headerRowSize:25,rowSize:25,sequenceHeaderCreator:null,header:[],items:[],crossHeader:[],crossItems:[],pageSize:20})},_init:function(){BI.SequenceTableListNumber.superclass._init.apply(this,arguments);var a=this.options;this.start=a.startSequence,this.renderedCells=[],this.renderedKeys=[],this.container=BI.createWidget({type:"bi.absolute",width:60,scrollable:!1}),this.scrollContainer=BI.createWidget({type:"bi.vertical",scrollable:!1,scrolly:!1,items:[this.container]}),this.headerContainer=BI.createWidget({type:"bi.absolute",cls:"bi-border",width:58,scrollable:!1}),this.layout=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.headerContainer,height:a.headerRowSize*a.header.length-2},{el:{type:"bi.layout"},height:2},{el:this.scrollContainer}]}),this._populate()},_layout:function(){var a=this.options,b=a.headerRowSize*a.header.length-2,c=this.layout.attr("items");a.isNeedFreeze===!1?(c[0].height=0,c[1].height=0):a.isNeedFreeze===!0&&(c[0].height=b,c[1].height=2),this.layout.attr("items",c),this.layout.resize(),this.container.setHeight(a.items.length*a.rowSize);try{this.scrollContainer.element.scrollTop(a.scrollTop)}catch(d){}},_createHeader:function(){var a=this.options;BI.createWidget({type:"bi.absolute",element:this.headerContainer,items:[{el:a.sequenceHeaderCreator||{type:"bi.table_style_cell",cls:"sequence-table-title-cell",styleGetter:a.headerCellStyleGetter,text:BI.i18nText("BI-Number_Index")},left:0,top:0,right:0,bottom:0}]})},_calculateChildrenToRender:function(){for(var a=this,b=this.options,c=BI.clamp(b.scrollTop,0,b.rowSize*b.items.length-(b.height-b.header.length*b.headerRowSize)+BI.DOM.getScrollWidth()),d=Math.floor(c/b.rowSize),e=d+Math.floor((b.height-b.header.length*b.headerRowSize)/b.rowSize),f=[],g=[],h=d,i=0;h<=e&&h-1)b.rowSize!==this.renderedCells[j]._height&&(this.renderedCells[j]._height=b.rowSize,this.renderedCells[j].el.setHeight(b.rowSize)),this.renderedCells[j].top!==k&&(this.renderedCells[j].top=k,this.renderedCells[j].el.element.css("top",k+"px")),f.push(this.renderedCells[j]);else{var l=BI.createWidget(BI.extend({type:"bi.table_style_cell",cls:"sequence-table-number-cell bi-border-left bi-border-right bi-border-bottom",width:60,height:b.rowSize,text:this.start+h,styleGetter:function(c){return function(){return b.sequenceCellStyleGetter(a.start+h-1)}}(i)}));f.push({el:l,left:0,top:k,_height:b.rowSize})}g.push(this.start+h)}var m={},n={},o=[];BI.each(g,function(b,c){BI.deepContains(a.renderedKeys,c)?m[b]=c:n[b]=c}),BI.each(this.renderedKeys,function(a,b){BI.deepContains(m,b)||BI.deepContains(n,b)||o.push(a)}),BI.each(o,function(b,c){a.renderedCells[c].el.destroy()});var p=[];BI.each(n,function(a){p.push(f[a])}),BI.createWidget({type:"bi.absolute",element:this.container,items:p}),this.renderedCells=f,this.renderedKeys=g},_populate:function(){this.headerContainer.empty(),this._createHeader(),this._layout(),this._calculateChildrenToRender()},setVerticalScroll:function(a){if(this.options.scrollTop!==a){this.options.scrollTop=a;try{this.scrollContainer.element.scrollTop(a)}catch(b){}}},getVerticalScroll:function(){return this.options.scrollTop},setVPage:function(a){a=a<1?1:a;var b=this.options;this.start=(a-1)*b.pageSize+1},_restore:function(){this.options;BI.each(this.renderedCells,function(a,b){b.el.destroy()}),this.renderedCells=[],this.renderedKeys=[]},restore:function(){this._restore()},populate:function(a,b){var c=this.options;a&&a!==this.options.items&&(c.items=a,this._restore()),b&&b!==this.options.header&&(c.header=b),this._populate()}}),BI.shortcut("bi.sequence_table_list_number",BI.SequenceTableListNumber),BI.SequenceTable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SequenceTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-sequence-table",el:{type:"bi.adaptive_table"},sequence:{},isNeedResize:!0,isResizeAdapt:!1,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!1,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[],showSequence:!1,startSequence:1})},_init:function(){BI.SequenceTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.sequence=BI.createWidget(b.sequence,{type:"bi.sequence_table_list_number",invisible:b.showSequence===!1,startSequence:b.startSequence,isNeedFreeze:b.isNeedFreeze,header:b.header,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems,headerRowSize:b.headerRowSize,rowSize:b.rowSize,width:60,height:b.height&&b.height-BI.GridTableScrollbar.SIZE,headerCellStyleGetter:b.headerCellStyleGetter,summaryCellStyleGetter:b.summaryCellStyleGetter,sequenceCellStyleGetter:b.sequenceCellStyleGetter}),this.table=BI.createWidget(b.el,{type:"bi.adaptive_table",width:b.showSequence===!0?b.width-60:b.width,height:b.height,isNeedResize:b.isNeedResize,isResizeAdapt:b.isResizeAdapt,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,minColumnSize:b.minColumnSize,maxColumnSize:b.maxColumnSize,headerRowSize:b.headerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,headerCellStyleGetter:b.headerCellStyleGetter,summaryCellStyleGetter:b.summaryCellStyleGetter,sequenceCellStyleGetter:b.sequenceCellStyleGetter,header:b.header,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(b){a.sequence.getVerticalScroll()!==this.getVerticalScroll()&&(a.sequence.setVerticalScroll(this.getVerticalScroll()),a.sequence.populate()),a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)}),this.htape=BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.sequence,left:0,top:0},{el:this.table,top:0,left:b.showSequence===!0?60:0}]}),this._populate()},_populate:function(){var a=this.options;a.showSequence===!0?(this.sequence.setVisible(!0),this.table.element.css("left","60px"),this.table.setWidth(a.width-60)):(this.sequence.setVisible(!1),this.table.element.css("left","0px"),this.table.setWidth(a.width))},setWidth:function(a){BI.PageTable.superclass.setWidth.apply(this,arguments),this.table.setWidth(this.options.showSequence?a-60:a)},setHeight:function(a){BI.PageTable.superclass.setHeight.apply(this,arguments),this.table.setHeight(a),this.sequence.setHeight(a-BI.GridTableScrollbar.SIZE)},setColumnSize:function(a){this.options.columnSize=a,this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},setRegionColumnSize:function(a){this.options.columnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},hasLeftHorizontalScroll:function(){return this.table.hasLeftHorizontalScroll()},hasRightHorizontalScroll:function(){return this.table.hasRightHorizontalScroll()},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},setVerticalScroll:function(a){this.table.setVerticalScroll(a),this.sequence.setVerticalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},setVPage:function(a){this.sequence.setVPage&&this.sequence.setVPage(a)},setHPage:function(a){this.sequence.setHPage&&this.sequence.setHPage(a)},attr:function(){BI.SequenceTable.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments),this.sequence.attr.apply(this.sequence,arguments)},restore:function(){this.table.restore(),this.sequence.restore()},populate:function(a,b,c,d){var e=this.options;a&&(e.items=a),b&&(e.header=b),c&&(e.crossItems=c),d&&(e.crossHeader=d),this._populate(),this.table.populate.apply(this.table,arguments),this.sequence.populate.apply(this.sequence,arguments),this.sequence.setVerticalScroll(this.table.getVerticalScroll())},destroy:function(){this.table.destroy(),BI.SequenceTable.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.sequence_table",BI.SequenceTable),BI.SingleTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-combo",trigger:{},height:30,text:"",items:[]})},_init:function(){BI.SingleTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(BI.extend({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items},b.trigger)),this.popup=BI.createWidget({type:"bi.single_tree_popup",items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.SingleTreeCombo.EVENT_BEFORE_POPUPVIEW,arguments)}),this.popup.on(BI.SingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.SingleTreeCombo.EVENT_CHANGE)})},populate:function(a){this.combo.populate(a)},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.SingleTreeCombo.EVENT_CHANGE="SingleTreeCombo.EVENT_CHANGE",BI.SingleTreeCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.single_tree_combo",BI.SingleTreeCombo),BI.SingleTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.SingleTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),items:[]})},_init:function(){BI.SingleTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.level_tree",expander:{isDefaultInit:!0},items:b.items,chooseType:BI.Selection.Single}),BI.createWidget({type:"bi.vertical",element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.LevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.SingleTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.SingleTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.SingleTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_tree_popup",BI.SingleTreePopup),BI.SingleTreeTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SingleTreeTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-trigger",height:30,text:"",items:[]})},_init:function(){BI.SingleTreeTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.select_text_trigger",element:this,text:a.text,items:a.items,height:a.height})},_checkTitle:function(){var a=this,b=this.getValue();BI.any(this.options.items,function(c,d){if(b.contains(d.value))return a.trigger.setTitle(d.text||d.value),!0})},setValue:function(a){a=BI.isArray(a)?a:[a],this.options.value=a,this.trigger.setValue(a),this._checkTitle()},getValue:function(){return this.options.value||[]},populate:function(a){BI.SingleTreeTrigger.superclass.populate.apply(this,arguments),this.trigger.populate(a)}}),BI.shortcut("bi.single_tree_trigger",BI.SingleTreeTrigger),BI.SwitchTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SwitchTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-switch-tree",items:[]})},_init:function(){BI.SwitchTree.superclass._init.apply(this,arguments);this.options;this.tab=BI.createWidget({type:"bi.tab",element:this,tab:null,defaultShowIndex:BI.SwitchTree.SelectType.SingleSelect,cardCreator:BI.bind(this._createTree,this)})},_createTree:function(a){var b=this,c=this.options;switch(a){case BI.SwitchTree.SelectType.SingleSelect:return this.levelTree=BI.createWidget({type:"bi.multilayer_single_level_tree",isDefaultInit:!0,items:BI.deepClone(c.items)}),this.levelTree.on(BI.LevelTree.EVENT_CHANGE,function(){b.fireEvent(BI.SwitchTree.EVENT_CHANGE,arguments)}),this.levelTree;case BI.SwitchTree.SelectType.MultiSelect:return this.tree=BI.createWidget({type:"bi.simple_tree",items:this._removeIsParent(BI.deepClone(c.items))}),this.tree.on(BI.SimpleTreeView.EVENT_CHANGE,function(){b.fireEvent(BI.SwitchTree.EVENT_CHANGE,arguments)}),this.tree}},_removeIsParent:function(a){return BI.each(a,function(a,b){BI.isNotNull(b.isParent)&&delete b.isParent}),a},switchSelect:function(){switch(this.getSelect()){case BI.SwitchTree.SelectType.SingleSelect:this.setSelect(BI.SwitchTree.SelectType.MultiSelect);break;case BI.SwitchTree.SelectType.MultiSelect:this.setSelect(BI.SwitchTree.SelectType.SingleSelect)}},setSelect:function(a){this.tab.setSelect(a)},getSelect:function(){return this.tab.getSelect()},setValue:function(a){switch(this.storeValue=a,this.getSelect()){case BI.SwitchTree.SelectType.SingleSelect:this.levelTree.setValue(a);break;case BI.SwitchTree.SelectType.MultiSelect:this.tree.setValue(a)}},getValue:function(){return this.tab.getValue()},populate:function(a){this.options.items=a,BI.isNotNull(this.levelTree)&&this.levelTree.populate(BI.deepClone(a)),BI.isNotNull(this.tree)&&this.tree.populate(this._removeIsParent(BI.deepClone(a)))}}),BI.SwitchTree.EVENT_CHANGE="SwitchTree.EVENT_CHANGE",BI.SwitchTree.SelectType={SingleSelect:BI.Selection.Single,MultiSelect:BI.Selection.Multi},BI.shortcut("bi.switch_tree",BI.SwitchTree),BI.TimeInterval=BI.inherit(BI.Single,{constants:{height:25,width:25,lgap:15,offset:-15,timeErrorCls:"time-error",DATE_MIN_VALUE:"1900-01-01",DATE_MAX_VALUE:"2099-12-31"},_defaultConfig:function(){var a=BI.TimeInterval.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-time-interval"})},_init:function(){var a=this;BI.TimeInterval.superclass._init.apply(this,arguments),this.left=this._createCombo(),this.right=this._createCombo(),this.label=BI.createWidget({type:"bi.label",height:this.constants.height,width:this.constants.width,text:"-"}),BI.createWidget({element:a,type:"bi.center",hgap:15,height:this.constants.height,items:[{type:"bi.absolute",items:[{el:a.left,left:this.constants.offset,right:0,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:0,right:this.constants.offset,top:0,bottom:0}]}]}),BI.createWidget({type:"bi.horizontal_auto",element:this,items:[a.label]})},_createCombo:function(){var a=this,b=BI.createWidget({type:"bi.multidate_combo"});return b.on(BI.MultiDateCombo.EVENT_ERROR,function(){a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls),a.fireEvent(BI.TimeInterval.EVENT_ERROR)}),b.on(BI.MultiDateCombo.EVENT_VALID,function(){BI.Bubbles.hide("error");var b=a.left.getKey(),c=a.right.getKey();a._check(b,c)&&a._compare(b,c)?(a._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),a.element.addClass(a.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),a,{offsetStyle:"center"}),a.fireEvent(BI.TimeInterval.EVENT_ERROR)):(a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls))}),b.on(BI.MultiDateCombo.EVENT_FOCUS,function(){BI.Bubbles.hide("error");var b=a.left.getKey(),c=a.right.getKey();a._check(b,c)&&a._compare(b,c)?(a._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),a.element.addClass(a.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),a,{offsetStyle:"center"}),a.fireEvent(BI.TimeInterval.EVENT_ERROR)):(a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls))}),b.on(BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW,function(){a.left.hidePopupView(),a.right.hidePopupView()}),b.on(BI.MultiDateCombo.EVENT_CONFIRM,function(){BI.Bubbles.hide("error");var b=a.left.getKey(),c=a.right.getKey();a._check(b,c)&&a._compare(b,c)?(a._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),a.element.addClass(a.constants.timeErrorCls),a.fireEvent(BI.TimeInterval.EVENT_ERROR)):(a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls),a.fireEvent(BI.TimeInterval.EVENT_CHANGE))}),b},_dateCheck:function(a){return Date.parseDateTime(a,"%Y-%x-%d").print("%Y-%x-%d")==a||Date.parseDateTime(a,"%Y-%X-%d").print("%Y-%X-%d")==a||Date.parseDateTime(a,"%Y-%x-%e").print("%Y-%x-%e")==a||Date.parseDateTime(a,"%Y-%X-%e").print("%Y-%X-%e")==a},_checkVoid:function(a){return!Date.checkVoid(a.year,a.month,a.day,this.constants.DATE_MIN_VALUE,this.constants.DATE_MAX_VALUE)[0]},_check:function(a,b){var c=a.match(/\d+/g),d=b.match(/\d+/g);return this._dateCheck(a)&&Date.checkLegal(a)&&this._checkVoid({year:c[0],month:c[1],day:c[2]})&&this._dateCheck(b)&&Date.checkLegal(b)&&this._checkVoid({year:d[0],month:d[1],day:d[2]})},_compare:function(a,b){return a=Date.parseDateTime(a,"%Y-%X-%d").print("%Y-%X-%d"),b=Date.parseDateTime(b,"%Y-%X-%d").print("%Y-%X-%d"),BI.isNotNull(a)&&BI.isNotNull(b)&&a>b;
-},_setTitle:function(a){this.left.setTitle(a),this.right.setTitle(a),this.label.setTitle(a)},_clearTitle:function(){this.left.setTitle(""),this.right.setTitle(""),this.label.setTitle("")},setValue:function(a){a=a||{},this.left.setValue(a.start),this.right.setValue(a.end)},getValue:function(){return{start:this.left.getValue(),end:this.right.getValue()}}}),BI.TimeInterval.EVENT_VALID="EVENT_VALID",BI.TimeInterval.EVENT_ERROR="EVENT_ERROR",BI.TimeInterval.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.time_interval",BI.TimeInterval),BI.YearCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-combo",behaviors:{},min:"1900-01-01",max:"2099-12-31",height:25})},_init:function(){BI.YearCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue="",this.trigger=BI.createWidget({type:"bi.year_trigger",min:b.min,max:b.max}),this.trigger.on(BI.YearTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.YearTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.YearTrigger.EVENT_STOP,function(){a.combo.showView()}),this.trigger.on(BI.YearTrigger.EVENT_ERROR,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.YearTrigger.EVENT_CONFIRM,function(){a.combo.isViewVisible()||(this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getKey()):this.getKey()||a.setValue(),a.fireEvent(BI.YearCombo.EVENT_CONFIRM))}),this.combo=BI.createWidget({type:"bi.combo",element:this,destroyWhenHide:!0,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,stopPropagation:!1,el:{type:"bi.year_popup",ref:function(){a.popup=this},listeners:[{eventName:BI.YearPopup.EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.YearCombo.EVENT_CONFIRM)}}],behaviors:b.behaviors,min:b.min,max:b.max}}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){var b=a.trigger.getKey();BI.isNotNull(b)?a.popup.setValue(b):b||b===a.storeValue?a.setValue():a.popup.setValue(a.storeValue),a.fireEvent(BI.YearCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.YearCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.year_combo",BI.YearCombo),BI.YearPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-popup",behaviors:{},min:"1900-01-01",max:"2099-12-31"})},_createYearCalendar:function(a){var b=this.options,c=this._year,d=BI.createWidget({type:"bi.year_calendar",behaviors:b.behaviors,min:b.min,max:b.max,logic:{dynamic:!0},year:c+12*a});return d.setValue(this._year),d},_init:function(){BI.YearPopup.superclass._init.apply(this,arguments);var a=this;this.selectedYear=this._year=(new Date).getFullYear();var b=BI.createWidget({type:"bi.icon_button",cls:"pre-page-h-font",width:25,height:25,value:-1}),c=BI.createWidget({type:"bi.icon_button",cls:"next-page-h-font",width:25,height:25,value:1});this.navigation=BI.createWidget({type:"bi.navigation",element:this,single:!0,logic:{dynamic:!0},tab:{cls:"year-popup-navigation bi-high-light bi-border-top",height:25,items:[b,c]},cardCreator:BI.bind(this._createYearCalendar,this),afterCardShow:function(){this.setValue(a.selectedYear);var d=this.getSelectedCard();b.setEnable(!d.isFrontYear()),c.setEnable(!d.isFinalYear())}}),this.navigation.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedYear=this.getValue(),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.fireEvent(BI.YearPopup.EVENT_CHANGE,a.selectedYear)})},getValue:function(){return this.selectedYear},setValue:function(a){var b=this.options;Date.checkVoid(a,1,1,b.min,b.max)[0]?(a=(new Date).getFullYear(),this.selectedYear="",this.navigation.setSelect(BI.YearCalendar.getPageByYear(a)),this.navigation.setValue("")):(this.selectedYear=a,this.navigation.setSelect(BI.YearCalendar.getPageByYear(a)),this.navigation.setValue(a))}}),BI.YearPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.year_popup",BI.YearPopup),BI.YearTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,triggerWidth:25,errorText:BI.i18nText("BI-Please_Input_Positive_Integer"),errorTextInvalid:BI.i18nText("BI-Year_Trigger_Invalid_Text")},_defaultConfig:function(){return BI.extend(BI.YearTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-year-trigger bi-border",min:"1900-01-01",max:"2099-12-31",height:25})},_init:function(){BI.YearTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(d){return a.editor.setErrorText(BI.isPositiveInteger(d)?c.errorTextInvalid:c.errorText),""===d||BI.isPositiveInteger(d)&&!Date.checkVoid(d,1,1,b.min,b.max)[0]},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:c.errorText}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.YearTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.YearTrigger.EVENT_STOP)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.YearTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.YearTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_ERROR,function(){a.fireEvent(BI.YearTrigger.EVENT_ERROR)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",baseCls:"bi-trigger-year-text",text:BI.i18nText("BI-Multi_Date_Year"),width:c.triggerWidth},width:c.triggerWidth},{el:{type:"bi.trigger_icon_button",width:c.triggerWidth},width:c.triggerWidth}]})},setValue:function(a){this.editor.setState(a),this.editor.setValue(a),this.editor.setTitle(a)},getKey:function(){return 0|this.editor.getValue()}}),BI.YearTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.YearTrigger.EVENT_ERROR="EVENT_ERROR",BI.YearTrigger.EVENT_START="EVENT_START",BI.YearTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearTrigger.EVENT_STOP="EVENT_STOP",BI.shortcut("bi.year_trigger",BI.YearTrigger),BI.YearMonthCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearMonthCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-month-combo",yearBehaviors:{},monthBehaviors:{},height:25})},_init:function(){BI.YearMonthCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.year=BI.createWidget({type:"bi.year_combo",behaviors:b.yearBehaviors}),this.month=BI.createWidget({type:"bi.month_combo",behaviors:b.monthBehaviors}),this.year.on(BI.YearCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearMonthCombo.EVENT_CONFIRM)}),this.year.on(BI.YearCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW)}),this.month.on(BI.MonthCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearMonthCombo.EVENT_CONFIRM)}),this.month.on(BI.MonthCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW)}),BI.createWidget({type:"bi.center",element:this,hgap:5,items:[this.year,this.month]})},setValue:function(a){a=a||{},this.month.setValue(a.month),this.year.setValue(a.year)},getValue:function(){return{year:this.year.getValue(),month:this.month.getValue()}}}),BI.YearMonthCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.year_month_combo",BI.YearMonthCombo),BI.YearQuarterCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearQuarterCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-quarter-combo",yearBehaviors:{},quarterBehaviors:{},height:25})},_init:function(){BI.YearQuarterCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.year=BI.createWidget({type:"bi.year_combo",behaviors:b.yearBehaviors}),this.quarter=BI.createWidget({type:"bi.quarter_combo",behaviors:b.quarterBehaviors}),this.year.on(BI.YearCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_CONFIRM)}),this.year.on(BI.YearCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW)}),this.quarter.on(BI.QuarterCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_CONFIRM)}),this.quarter.on(BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW)}),BI.createWidget({type:"bi.center",element:this,hgap:5,items:[this.year,this.quarter]})},setValue:function(a){a=a||{},this.quarter.setValue(a.quarter),this.year.setValue(a.year)},getValue:function(){return{year:this.year.getValue(),quarter:this.quarter.getValue()}}}),BI.YearQuarterCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.year_quarter_combo",BI.YearQuarterCombo),BI.AbstractAllValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractAllValueChooser.superclass._defaultConfig.apply(this,arguments),{width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_valueFormatter:function(a){var b=a;return BI.isNotNull(this.items)&&BI.some(this.items,function(c,d){if(d.value===a)return b=d.text,!0}),b},_itemsCreator:function(a,b){function c(c){var d=(a.keywords||[]).slice();if(a.keyword&&d.push(a.keyword),BI.each(d,function(a,b){var d=BI.Func.getSearchResult(c,b);c=d.matched.concat(d.finded)}),a.selectedValues){var e=BI.makeObject(a.selectedValues,!0);c=BI.filter(c,function(a,b){return!e[b.value]})}return a.type===BI.MultiSelectCombo.REQ_GET_ALL_DATA?void b({items:c}):a.type===BI.MultiSelectCombo.REQ_GET_DATA_LENGTH?void b({count:c.length}):void b({items:c,hasNext:!1})}var d=this,e=this.options;e.cache&&this.items?c(this.items):e.itemsCreator({},function(a){d.items=a,c(a)})}}),BI.AllValueChooserCombo=BI.inherit(BI.AbstractAllValueChooser,{_defaultConfig:function(){return BI.extend(BI.AllValueChooserCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-all-value-chooser-combo",width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_init:function(){BI.AllValueChooserCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&(this.items=b.items),this.combo=BI.createWidget({type:"bi.multi_select_combo",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.combo.on(BI.MultiSelectCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.AllValueChooserCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue({type:BI.Selection.Multi,value:a||[]})},getValue:function(){var a=this.combo.getValue()||{};return a.type===BI.Selection.All?a.assist:a.value||[]},populate:function(){this.combo.populate.apply(this,arguments)}}),BI.AllValueChooserCombo.EVENT_CONFIRM="AllValueChooserCombo.EVENT_CONFIRM",BI.shortcut("bi.all_value_chooser_combo",BI.AllValueChooserCombo),BI.AllValueChooserPane=BI.inherit(BI.AbstractAllValueChooser,{_defaultConfig:function(){return BI.extend(BI.AllValueChooserPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-all-value-chooser-pane",width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_init:function(){BI.AllValueChooserPane.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&(this.items=b.items),this.list=BI.createWidget({type:"bi.multi_select_list",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.list.on(BI.MultiSelectList.EVENT_CHANGE,function(){a.fireEvent(BI.AllValueChooserPane.EVENT_CHANGE)})},setValue:function(a){this.list.setValue({type:BI.Selection.Multi,value:a||[]})},getValue:function(){var a=this.list.getValue()||{};return a.type===BI.Selection.All?a.assist:a.value||[]},populate:function(){this.list.populate.apply(this.list,arguments)}}),BI.AllValueChooserPane.EVENT_CHANGE="AllValueChooserPane.EVENT_CHANGE",BI.shortcut("bi.all_value_chooser_pane",BI.AllValueChooserPane),BI.AbstractTreeValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractTreeValueChooser.superclass._defaultConfig.apply(this,arguments),{items:null,itemsCreator:BI.emptyFn})},_initData:function(a){this.items=a;var b=BI.Tree.treeFormat(a);this.tree=new BI.Tree,this.tree.initTree(b)},_itemsCreator:function(a,b){function c(){switch(a.type){case BI.TreeView.REQ_TYPE_INIT_DATA:d._reqInitTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_ADJUST_DATA:d._reqAdjustTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_SELECT_DATA:d._reqSelectedTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_GET_SELECTED_DATA:d._reqDisplayTreeNode(a,b);break;default:d._reqTreeNode(a,b)}}var d=this,e=this.options;this.items?c():e.itemsCreator({},function(a){d._initData(a),c()})},_reqDisplayTreeNode:function(a,b){function c(a,b,g){return null==g||BI.isEmpty(g)?void BI.each(b.getChildren(),function(d,g){var h=BI.clone(a);h.push(g.value);var i=f._getChildCount(h);e(g,b.id,i),c(h,g,{})}):void BI.each(g,function(b){var h=f._getTreeNode(a,b),i=BI.clone(a);i.push(h.value),e(h,h.parent&&h.parent.id,d(g[b],i)),c(i,h,g[b])})}function d(a,b){return null==a?0:BI.isEmpty(a)?f._getChildCount(b):BI.size(a)}function e(a,b,c){g.push({id:a.id,pId:b,text:a.text+(c>0?"("+BI.i18nText("BI-Basic_Altogether")+c+BI.i18nText("BI-Basic_Count")+")":""),value:a.value,open:!0})}var f=this,g=[],h=a.selectedValues;return null==h||BI.isEmpty(h)?void b({}):(c([],this.tree.getRoot(),h),void b({items:g}))},_reqSelectedTreeNode:function(a,b){function c(a){var b=m.concat(k);if(g(a,b))if(f(b))i._deleteNode(a,b);else{var c=[],j=e(m,k,[],c);j&&BI.isNotEmptyArray(c)&&BI.each(c,function(b,c){var e=i._getNode(a,c);e?i._deleteNode(a,c):d(a,c,BI.last(c))})}if(h(a,b)){var l=[],j=!1;f(b)?j=!0:(j=e(m,k,l),b=m),j===!0&&(d(a,b,k),l.length>0&&BI.each(l,function(b,c){i._buildTree(a,c)}))}}function d(a,b,c){var d=a,e=[],f=[];BI.some(b,function(g,h){var j=d[h];if(null==j){if(0===g)return!0;if(!BI.isEmpty(d))return!0;var k=b.slice(0,g),l=i._getChildren(k);if(f.push(k),e.push(l.length),g===b.length-1&&1===l.length&&l[0]===c)for(var m=e.length-1;m>=0&&1===e[m];m--)i._deleteNode(a,f[m]);else BI.each(l,function(a,e){return g===b.length-1&&e.value===c||void(d[e.value]={})});d=d[h]}else d=j})}function e(a,b,c,d){var f=BI.clone(a);if(f.push(b),i._isMatch(a,b,l))return d&&d.push(f),!0;var g=i._getChildren(f),h=[],j=!1;return BI.each(g,function(a,b){e(f,b.value,c,d)?j=!0:h.push(b.value)}),j===!0&&BI.each(h,function(a,b){var d=BI.clone(f);d.push(b),c.push(d)}),j}function f(a){for(var b=0,c=a.length;bj._const.perPage)break}return f}function d(a,b,c,i,k){if(j._isMatch(b,c,l)){var m=i||h(b,c);return e(b,c,!1,m,!i&&f(b,c),!0,k),[!0,m]}var n=BI.clone(b);n.push(c);var o=j._getChildren(n),p=!1,m=!1,q=i||g(b,c);return BI.each(o,function(b,c){var e=d(a+1,n,c.value,q,k);e[1]===!0&&(m=!0),e[0]===!0&&(p=!0)}),p===!0&&(m=q||h(b,c)&&m,e(b,c,!0,m,!1,!1,k)),[p,m]}function e(a,b,c,d,e,f,g){var h=j._getTreeNode(a,b);g.push({id:h.id,pId:h.pId,text:h.text,value:h.value,title:h.title,isParent:h.getChildrenLength()>0,open:c,checked:d,halfCheck:e,flag:f})}function f(a,b){var c=i(a);return null==c?null:BI.any(c,function(a,c){if(a===b&&null!=c&&!BI.isEmpty(c))return!0})}function g(a,b){var c=i(a);return null==c?null:BI.any(c,function(a,c){if(a===b&&null!=c&&BI.isEmpty(c))return!0})}function h(a,b){var c=i(a);return null!=c&&BI.any(c,function(a){if(a===b)return!0})}function i(a){var b=m;return null==b?null:(BI.every(a,function(a,c){return b=b[c],null!=b}),b)}var j=this,k=[],l=a.keyword||"",m=a.selectedValues,n=a.lastSearchValue||"",o=c();BI.nextTick(function(){b({hasNext:o.length>j._const.perPage,items:k,lastSearchValue:BI.last(o)})})},_reqTreeNode:function(a,b){function c(a,b){var c={};return BI.each(a,function(a,c){b=b[c]||{}}),BI.each(b,function(a,b){if(BI.isNull(b))return void(c[a]=[0,0]);if(BI.isEmpty(b))return void(c[a]=[2,0]);var d={};BI.each(b,function(a,b){(BI.isNull(b)||BI.isEmpty(b))&&(d[a]=!0)}),c[a]=[1,BI.size(d)]}),c}function d(a,b,c,d){var f=d.checked,g=d.half,h=!1,i=!1;if(BI.has(c,a))if(1===c[a][0]){var j=BI.clone(b);j.push(a);var k=e._getChildCount(j);k>0&&k!==c[a][1]&&(i=!0)}else 2===c[a][0]&&(h=!0);var l;return l=f||i||h?(h||f)&&!g||BI.has(c,a):BI.has(c,a),[l,i]}var e=this,f=[],g=a.times,h=a.checkState||{},i=a.parentValues||[],j=a.selectedValues||{},k={};k=c(i,j);for(var l=this._getChildren(i),m=(g-1)*this._const.perPage;l[m]&&m0,checked:n[0],halfCheck:n[1]})}BI.nextTick(function(){b({items:f,hasNext:l.length>g*e._const.perPage})})},_getNode:function(a,b){for(var c=a,d=0,e=b.length;d0&&BI.isEmpty(e);)c=d[d.length-1],d=d.slice(0,d.length-1),e=this._getNode(a,d),null!=e&&delete e[c]},_buildTree:function(a,b){var c=a;BI.each(b,function(a,b){BI.has(c,b)||(c[b]={}),c=c[b]})},_isMatch:function(a,b,c){var d=this._getTreeNode(a,b),e=BI.Func.getSearchResult([d.text||d.value],c);return e.finded.length>0||e.matched.length>0},_getTreeNode:function(a,b){var c,d=this,e=0;return this.tree.traverse(function(f){if(!d.tree.isRoot(f))return!(e>a.length)&&(e===a.length&&f.value===b?(c=f,!1):f.value!==a[e]||void e++)}),c},_getChildren:function(a){if(a.length>0)var b=BI.last(a),c=this._getTreeNode(a.slice(0,a.length-1),b);else var c=this.tree.getRoot();return c.getChildren()},_getChildCount:function(a){return this._getChildren(a).length}}),BI.TreeValueChooserCombo=BI.inherit(BI.AbstractTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.TreeValueChooserCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tree-value-chooser-combo",width:200,height:30,items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.TreeValueChooserCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&this._initData(b.items),this.combo=BI.createWidget({type:"bi.multi_tree_combo",element:this,itemsCreator:BI.bind(this._itemsCreator,this),width:b.width,height:b.height}),this.combo.on(BI.MultiTreeCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.TreeValueChooserCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.combo.getValue()},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.TreeValueChooserCombo.EVENT_CONFIRM="TreeValueChooserCombo.EVENT_CONFIRM",BI.shortcut("bi.tree_value_chooser_combo",BI.TreeValueChooserCombo),BI.TreeValueChooserPane=BI.inherit(BI.AbstractTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.TreeValueChooserPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tree-value-chooser-pane",items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.TreeValueChooserPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.pane=BI.createWidget({type:"bi.multi_select_tree",element:this,itemsCreator:BI.bind(this._itemsCreator,this)}),this.pane.on(BI.MultiSelectTree.EVENT_CHANGE,function(){a.fireEvent(BI.TreeValueChooserPane.EVENT_CHANGE)}),BI.isNotNull(b.items)&&(this._initData(b.items),this.populate())},setSelectedValue:function(a){this.pane.setSelectedValue(a)},setValue:function(a){this.pane.setValue(a)},getValue:function(){return this.pane.getValue()},populate:function(){this.pane.populate.apply(this.pane,arguments)}}),BI.TreeValueChooserPane.EVENT_CHANGE="TreeValueChooserPane.EVENT_CHANGE",BI.shortcut("bi.tree_value_chooser_pane",BI.TreeValueChooserPane),BI.AbstractValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractValueChooser.superclass._defaultConfig.apply(this,arguments),{items:null,itemsCreator:BI.emptyFn,cache:!0})},_valueFormatter:function(a){var b=a;return BI.isNotNull(this.items)&&BI.some(this.items,function(c,d){if(d.value===a)return b=d.text,!0}),b},_getItemsByTimes:function(a,b){for(var c=[],d=(b-1)*this._const.perPage;a[d]&&d1)&&BI.isNotEmptyArray(g.values)){for(var i={text:BI.i18nText("BI-Summary_Values"),type:"bi.table_style_cell",styleGetter:function(){return d(a===-1)}},j=h.length;j0)if(c)for(var k=0,l=g.values.length;k0&&f.push(h);h.length>0&&f.push(h)}}var f=[];return BI.each(a,function(a,b){e(-1,b)}),BI.each(f,function(a,c){for(var d=BI.last(c),e=c.length;e1?g+=a.values.length:g++}var f=[],g=0;if(BI.each(c,function(a,b){e(b)}),f.length>0){var h=[],i=[];BI.each(b,function(a,b){var c=b.slice();BI.removeAt(c,f),h.push(c)}),BI.each(a,function(a,b){var c=b.slice();BI.removeAt(c,f),i.push(c)}),b=h,a=i}return{items:a,header:b,deletedCols:f}}}),BI.shortcut("bi.dynamic_summary_tree_table",BI.DynamicSummaryTreeTable),BI.LayerTreeTableCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.LayerTreeTableCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-layer-tree-table-cell",layer:0,text:""})},_init:function(){BI.LayerTreeTableCell.superclass._init.apply(this,arguments);var a=this.options;BI.createWidget({type:"bi.label",element:this.element,textAlign:"left",whiteSpace:"nowrap",height:a.height,text:a.text,value:a.value,lgap:5+30*a.layer,rgap:5})}}),BI.shortcut("bi.layer_tree_table_cell",BI.LayerTreeTableCell),BI.LayerTreeTable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.LayerTreeTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-layer-tree-table",el:{type:"bi.resizable_table"},isNeedResize:!1,isResizeAdapt:!0,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!0,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],rowHeaderCreator:null,headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[]})},_getVDeep:function(){return this.options.crossHeader.length},_getHDeep:function(){var a=this.options;return Math.max(a.mergeCols.length,a.freezeCols.length,BI.TableTree.maxDeep(a.items)-1)},_createHeader:function(a){var b=this.options,c=b.header||[],d=b.crossHeader||[],e=BI.TableTree.formatCrossItems(b.crossItems,a,b.headerCellStyleGetter),f=[];if(BI.each(e,function(a,b){var c=[d[a]];f.push(c.concat(b||[]))}),c&&c.length>0){var g=this._formatColumns(c),h=this._getHDeep();h<=0?g.unshift(b.rowHeaderCreator||{type:"bi.table_style_cell",text:BI.i18nText("BI-Row_Header"),styleGetter:b.headerCellStyleGetter}):g[0]=b.rowHeaderCreator||{type:"bi.table_style_cell",text:BI.i18nText("BI-Row_Header"),styleGetter:b.headerCellStyleGetter},f.push(g)}return f},_formatItems:function(a){function b(a,c){a.type||(a.type="bi.layer_tree_table_cell"),a.layer=c;var e=[a];e=e.concat(a.values||[]),e.length>0&&d.push(e),BI.isNotEmptyArray(a.children)&&BI.each(a.children,function(a,d){b(d,c+1)})}var c=this.options,d=[];return BI.each(a,function(a,e){if(BI.each(e.children,function(a,c){b(c,0)}),BI.isArray(e.values)){var f=[{type:"bi.table_style_cell",text:BI.i18nText("BI-Summary_Values"),styleGetter:function(){return c.summaryCellStyleGetter(!0)}}].concat(e.values);d.push(f)}}),d},_formatColumns:function(a,b){return BI.isNotEmptyArray(a)?(b=b||this._getHDeep(),a.slice(Math.max(0,b-1))):a},_formatFreezeCols:function(){return this.options.freezeCols.length>0?[0]:[]},_formatColumnSize:function(a,b){if(a.length<=0)return[];var c=[0];return b=b||this._getHDeep(),BI.each(a,function(a,d){return a0&&(c=BI.makeArray(b,a[0]/b)),c.concat(a.slice(1))},setRegionColumnSize:function(a){this.options.regionColumnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},attr:function(a,b){var c=this;if(BI.isObject(a))return void BI.each(a,function(a,b){c.attr(a,b)});switch(BI.LayerTreeTable.superclass.attr.apply(this,arguments),a){case"columnSize":case"minColumnSize":case"maxColumnSize":case"freezeCols":case"mergeCols":return}this.table.attr.apply(this.table,[a,b])},restore:function(){this.table.restore()},populate:function(a,b,c,d){var e=this.options;e.items=a||[],b&&(e.header=b),c&&(e.crossItems=c),d&&(e.crossHeader=d);var f=this._digest();this.table.setColumnSize(f.columnSize),this.table.attr("freezeCols",f.freezeCols),this.table.attr("minColumnSize",f.minColumnSize),this.table.attr("maxColumnSize",f.maxColumnSize),this.table.populate(f.items,f.header)},destroy:function(){this.table.destroy(),BI.LayerTreeTable.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.layer_tree_table",BI.LayerTreeTable),BI.TableStyleCell=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.TableStyleCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-table-style-cell",styleGetter:BI.emptyFn})},_init:function(){BI.TableStyleCell.superclass._init.apply(this,arguments);var a=this.options;this.text=BI.createWidget({type:"bi.label",element:this,textAlign:"left",forceCenter:!0,hgap:5,text:a.text}),this._digestStyle()},_digestStyle:function(){var a=this.options,b=a.styleGetter();b&&this.text.element.css(b)},setText:function(a){this.text.setText(a)},populate:function(){this._digestStyle()}}),BI.shortcut("bi.table_style_cell",BI.TableStyleCell),BI.TableTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.TableTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-table-tree",el:{type:"bi.resizable_table"},isNeedResize:!0,isResizeAdapt:!0,freezeCols:[],isNeedMerge:!0,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[]})},_getVDeep:function(){return this.options.crossHeader.length},_getHDeep:function(){var a=this.options;return Math.max(a.mergeCols.length,a.freezeCols.length,BI.TableTree.maxDeep(a.items)-1)},_init:function(){BI.TableTree.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._digest();this.table=BI.createWidget(b.el,{type:"bi.resizable_table",element:this,width:b.width,height:b.height,isNeedResize:b.isNeedResize,isResizeAdapt:b.isResizeAdapt,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,minColumnSize:b.minColumnSize,maxColumnSize:b.maxColumnSize,headerRowSize:b.headerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,header:c.header,items:c.items}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(){a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)})},_digest:function(){var a=this.options,b=this._getHDeep(),c=this._getVDeep(),d=BI.TableTree.formatHeader(a.header,a.crossHeader,a.crossItems,b,c,a.headerCellStyleGetter),e=BI.TableTree.formatItems(a.items,b,!1,a.summaryCellStyleGetter);return{header:d,items:e}},setWidth:function(a){BI.TableTree.superclass.setWidth.apply(this,arguments),this.table.setWidth(a)},setHeight:function(a){BI.TableTree.superclass.setHeight.apply(this,arguments),this.table.setHeight(a)},setColumnSize:function(a){this.options.columnSize=a,this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},setRegionColumnSize:function(a){this.options.regionColumnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},attr:function(){BI.TableTree.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments)},restore:function(){this.table.restore()},populate:function(a,b,c,d){var e=this.options;a&&(e.items=a||[]),b&&(e.header=b),c&&(e.crossItems=c),d&&(e.crossHeader=d);var f=this._digest();this.table.populate(f.items,f.header)},destroy:function(){this.table.destroy(),BI.TableTree.superclass.destroy.apply(this,arguments)}}),BI.extend(BI.TableTree,{formatHeader:function(a,b,c,d,e,f){for(var g=BI.TableTree.formatCrossItems(c,e,f),h=[],i=0;i0&&h.push(a),h},formatItems:function(a,b,c,d){function e(a,g){var h;if(BI.isArray(g.children)){if(BI.each(g.children,function(b,c){var d;a!=-1?(d=a.slice(),d.push(g)):d=[],e(d,c)}),a!=-1?(h=a.slice(),h.push(g)):h=[],BI.isNotEmptyArray(g.values)){for(var i={text:BI.i18nText("BI-Summary_Values"),type:"bi.table_style_cell",styleGetter:function(){return d(a===-1)}},j=h.length;j0)if(c)for(var k=0,l=g.values.length;k0&&f.push(h);h.length>0&&f.push(h)}}var f=[];return BI.each(a,function(a,b){e(-1,b)}),BI.each(f,function(a,c){for(var d=BI.last(c),e=c.length;e0}})},_init:function(){BI.MultiSelectBar.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.checkbox",stopPropagation:!0,handler:function(){a.setSelected(a.isSelected())}}),this.half=BI.createWidget({type:"bi.half_icon_button",stopPropagation:!0,handler:function(){a.setSelected(!0)}}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,a.isSelected(),a)}),this.half.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CLICK,a.isSelected(),a)}),this.half.on(BI.HalfIconButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectBar.EVENT_CHANGE,a.isSelected(),a)}),this.checkbox.on(BI.Checkbox.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectBar.EVENT_CHANGE,a.isSelected(),a)}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,keyword:b.keyword,value:b.value,py:b.py}),BI.createWidget({type:"bi.htape",element:this,items:[{width:36,el:{type:"bi.center_adapt",items:[this.checkbox,this.half]}},{el:this.text}]}),this.half.invisible()},beforeClick:function(){var a=this.isHalfSelected(),b=this.isSelected();a===!0?this.setSelected(!0):this.setSelected(!b)},setSelected:function(a){this.checkbox.setSelected(a),this.setHalfSelected(!1)},setHalfSelected:function(a){this._half=!!a,a===!0?(this.half.visible(),this.checkbox.invisible()):(this.half.invisible(),this.checkbox.visible())},isHalfSelected:function(){return!!this._half},isSelected:function(){return this.checkbox.isSelected()},setValue:function(a){BI.MultiSelectBar.superclass.setValue.apply(this,arguments);var b=this.options.isAllCheckedBySelectedValue.apply(this,arguments);this.setSelected(b),!b&&this.setHalfSelected(this.options.isHalfCheckedBySelectedValue.apply(this,arguments))}}),BI.MultiSelectBar.EVENT_CHANGE="MultiSelectBar.EVENT_CHANGE",BI.shortcut("bi.multi_select_bar",BI.MultiSelectBar),BI.HandStandBranchExpander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.HandStandBranchExpander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-handstand-branch-expander",direction:BI.Direction.Top,logic:{dynamic:!0},el:{type:"bi.label"},popup:{}})},_init:function(){BI.HandStandBranchExpander.superclass._init.apply(this,arguments);var a=this.options;this._initExpander(),this._initBranchView(),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(a.direction),BI.extend({},a.logic,{items:BI.LogicFactory.createLogicItemsByDirection(a.direction,{type:"bi.center_adapt",items:[this.expander]},this.branchView)}))))},_initExpander:function(){var a=this,b=this.options;this.expander=BI.createWidget(b.el),this.expander.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},_initBranchView:function(){var a=this,b=this.options;this.branchView=BI.createWidget(b.popup,{}),this.branchView.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(a){this.branchView.populate.apply(this.branchView,arguments)},getValue:function(){return this.branchView.getValue()}}),BI.HandStandBranchExpander.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.handstand_branch_expander",BI.HandStandBranchExpander),BI.BranchExpander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.BranchExpander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-branch-expander",direction:BI.Direction.Left,logic:{dynamic:!0},el:{},popup:{}})},_init:function(){BI.BranchExpander.superclass._init.apply(this,arguments);var a=this.options;this._initExpander(),this._initBranchView(),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(BI.LogicFactory.createLogicTypeByDirection(a.direction),BI.extend({},a.logic,{items:BI.LogicFactory.createLogicItemsByDirection(a.direction,this.expander,this.branchView)}))))},_initExpander:function(){var a=this,b=this.options;this.expander=BI.createWidget(b.el,{type:"bi.label",width:30,height:"100%"}),this.expander.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},_initBranchView:function(){var a=this,b=this.options;this.branchView=BI.createWidget(b.popup,{}),this.branchView.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(a){this.branchView.populate.apply(this.branchView,arguments)},getValue:function(){return this.branchView.getValue()}}),BI.BranchExpander.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.branch_expander",BI.BranchExpander),BI.HandStandBranchTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.HandStandBranchTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-handstand-branch-tree",expander:{},el:{},items:[]})},_init:function(){BI.HandStandBranchTree.superclass._init.apply(this,arguments);var a=this,b=this.options;this.branchTree=BI.createWidget({type:"bi.custom_tree",element:this,expander:BI.extend({type:"bi.handstand_branch_expander",el:{},popup:{type:"bi.custom_tree"}},b.expander),el:BI.extend({type:"bi.button_tree",chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,layouts:[{type:"bi.horizontal_adapt"}]},b.el),items:this.options.items}),this.branchTree.on(BI.CustomTree.EVENT_CHANGE,function(){a.fireEvent(BI.HandStandBranchTree.EVENT_CHANGE,arguments)}),this.branchTree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(){this.branchTree.populate.apply(this.branchTree,arguments)},getValue:function(){return this.branchTree.getValue()}}),BI.HandStandBranchTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.handstand_branch_tree",BI.HandStandBranchTree),BI.BranchTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.BranchTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-branch-tree",expander:{},el:{},items:[]})},_init:function(){BI.BranchTree.superclass._init.apply(this,arguments);var a=this,b=this.options;this.branchTree=BI.createWidget({type:"bi.custom_tree",element:this,expander:BI.extend({type:"bi.branch_expander",el:{},popup:{type:"bi.custom_tree"}},b.expander),el:BI.extend({type:"bi.button_tree",chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,layouts:[{type:"bi.vertical"}]},b.el),items:this.options.items}),this.branchTree.on(BI.CustomTree.EVENT_CHANGE,function(){a.fireEvent(BI.BranchTree.EVENT_CHANGE,arguments)}),this.branchTree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},populate:function(){this.branchTree.populate.apply(this.branchTree,arguments)},getValue:function(){return this.branchTree.getValue()}}),BI.BranchTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.branch_tree",BI.BranchTree),BI.DisplayTree=BI.inherit(BI.TreeView,{_defaultConfig:function(){return BI.extend(BI.DisplayTree.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-display-tree"})},_init:function(){BI.DisplayTree.superclass._init.apply(this,arguments)},_configSetting:function(){function a(a,b){return!1}var b={view:{selectedMulti:!1,dblClickExpand:!1,showIcon:!1,showTitle:!1},data:{key:{title:"title",name:"text"},simpleData:{enable:!0}},callback:{beforeCollapse:a}};return b},_dealWidthNodes:function(a){a=BI.DisplayTree.superclass._dealWidthNodes.apply(this,arguments);this.options;return BI.each(a,function(a,b){b.count>0?b.text=b.value+"("+BI.i18nText("BI-Basic_Altogether")+b.count+BI.i18nText("BI-Basic_Count")+")":b.text=b.value}),a},initTree:function(a,b){var b=b||this._configSetting();this.nodes=$.fn.zTree.init(this.tree.element,b,a)},destroy:function(){BI.DisplayTree.superclass.destroy.apply(this,arguments)}}),BI.DisplayTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.display_tree",BI.DisplayTree),BI.LevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.LevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-level-tree",el:{chooseType:0},expander:{},items:[]})},_init:function(){BI.LevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={layer:b};if(BI.isKey(e.id)||(e.id=BI.UUID()),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.first_plus_group_node";break;case a.length-1:f.type="bi.last_plus_group_node";break;default:f.type="bi.mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children,b+1)}else{switch(d){case a.length-1:f.type="bi.last_tree_leaf_item";break;default:f.type="bi.mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_assertId:function(a){BI.each(a,function(a,b){BI.isKey(b.id)||(b.id=BI.UUID())})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",element:this,expander:BI.extend({el:{},popup:{type:"bi.custom_tree"}},c.expander),items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),el:BI.extend({type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]},c.el)}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.LevelTree.EVENT_CHANGE,arguments)})},stroke:function(a){this.tree.stroke.apply(this.tree,arguments)},populate:function(a){a=this._formatItems(BI.Tree.transformToTreeFormat(a),0),this.tree.populate(a)},setValue:function(a){this.tree.setValue(a)},getValue:function(){return this.tree.getValue()},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.LevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.level_tree",BI.LevelTree),BI.SimpleTreeView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SimpleTreeView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-simple-tree",itemsCreator:BI.emptyFn,items:null})},_init:function(){BI.SimpleTreeView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.structure=new BI.Tree,this.tree=BI.createWidget({type:"bi.tree_view",element:this,itemsCreator:function(c,d){var e=function(b){d({items:b}),a.structure.initTree(BI.Tree.transformToTreeFormat(b))};BI.isNotNull(b.items)?e(b.items):b.itemsCreator(c,e)}}),this.tree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.SimpleTreeView.EVENT_CHANGE,arguments)}),BI.isNotEmptyArray(b.items)&&this.populate()},populate:function(a,b){a&&(this.options.items=a),this.tree.stroke({keyword:b})},setValue:function(a){a||(a=[]);var b=this,c={},d=[];BI.each(a,function(a,e){var f=b.structure.search(e,"value");if(f){var g=f;for(g=g.getParent(),g&&(c[g.value]||(c[g.value]=0),c[g.value]++);g&&g.getChildrenLength()<=c[g.value];)d.push(g.value),g=g.getParent(),g&&(c[g.value]||(c[g.value]=0),c[g.value]++)}}),this.tree.setValue(BI.makeObject(a.concat(d)))},_getValue:function(){var a=[],b=this.tree.getValue(),c=function(b){BI.each(b,function(b,d){BI.isEmpty(d)?a.push(b):c(d)})};return c(b),a},empty:function(){this.tree.empty()},getValue:function(){var a=this,b=[],c=this._getValue();return BI.each(c,function(c,d){var e=a.structure.search(d,"value");e&&a.structure._traverse(e,function(a){a.isLeaf()&&b.push(a.value)})}),b}}),BI.SimpleTreeView.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.simple_tree",BI.SimpleTreeView),BI.EditorTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4},_defaultConfig:function(){var a=BI.EditorTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-editor-trigger bi-border",height:30,validationChecker:BI.emptyFn,quitChecker:BI.emptyFn,allowBlank:!1,watermark:"",errorText:"",triggerWidth:30})},_init:function(){this.options.height-=2,BI.EditorTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,value:b.value,validationChecker:b.validationChecker,quitChecker:b.quitChecker,allowBlank:b.allowBlank,watermark:b.watermark,errorText:b.errorText}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.EditorTrigger.EVENT_CHANGE,arguments)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.trigger_icon_button",cls:"bi-border-left",width:b.triggerWidth},width:b.triggerWidth}]})},getValue:function(){return this.editor.getValue()},setValue:function(a){this.editor.setValue(a)},setText:function(a){this.editor.setState(a)}}),BI.EditorTrigger.EVENT_CHANGE="BI.EditorTrigger.EVENT_CHANGE",BI.shortcut("bi.editor_trigger",BI.EditorTrigger),BI.IconTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.IconTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-icon-trigger",el:{},height:30})},_init:function(){var a=this.options;BI.IconTrigger.superclass._init.apply(this,arguments),this.iconButton=BI.createWidget(a.el,{type:"bi.trigger_icon_button",element:this,width:a.width,height:a.height})}}),BI.shortcut("bi.icon_trigger",BI.IconTrigger),BI.IconTextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,triggerWidth:30},_defaultConfig:function(){var a=BI.IconTextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:30})},_init:function(){BI.IconTextTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",height:b.height,text:b.text,hgap:c.hgap}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",cls:"bi-border-left",width:c.triggerWidth}),BI.createWidget({element:this,type:"bi.htape",items:[{el:{type:"bi.icon_change_button",cls:"icon-combo-trigger-icon "+b.iconClass,ref:function(b){a.icon=b},disableSelected:!0},width:24},{el:this.text},{el:this.trigerButton,width:c.triggerWidth}]})},setValue:function(a){this.text.setValue(a),this.text.setTitle(a)},setIcon:function(a){this.icon.setIcon(a)},setText:function(a){this.text.setText(a),this.text.setTitle(a)}}),BI.shortcut("bi.icon_text_trigger",BI.IconTextTrigger),BI.TextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,triggerWidth:30},_defaultConfig:function(){var a=BI.TextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:30})},_init:function(){BI.TextTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",height:a.height,text:a.text,hgap:b.hgap}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",cls:"bi-border-left",width:b.triggerWidth}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.text},{el:this.trigerButton,width:b.triggerWidth}]})},setValue:function(a){this.text.setValue(a),this.text.setTitle(a)},setText:function(a){this.text.setText(a),this.text.setTitle(a)}}),BI.shortcut("bi.text_trigger",BI.TextTrigger),BI.SelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-text-trigger bi-border",height:24})},_init:function(){this.options.height-=2,BI.SelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.text_trigger",element:this,height:a.height}),BI.isKey(a.text)&&this.setValue(a.text)},setValue:function(a){var b=this.options;a=BI.isArray(a)?a:[a];var c=[],d=BI.Tree.transformToArrayFormat(this.options.items);BI.each(d,function(b,d){BI.deepContains(a,d.value)&&!c.contains(d.text||d.value)&&c.push(d.text||d.value)}),c.length>0?this.trigger.setText(c.join(",")):this.trigger.setText(b.text)},populate:function(a){this.options.items=a}}),BI.shortcut("bi.select_text_trigger",BI.SelectTextTrigger),BI.SmallSelectTextTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SmallSelectTextTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-small-select-text-trigger bi-border",height:20})},_init:function(){this.options.height-=2,BI.SmallSelectTextTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.small_text_trigger",element:this,height:a.height-2}),BI.isKey(a.text)&&this.setValue(a.text)},setValue:function(a){var b=this.options;a=BI.isArray(a)?a:[a];var c=[],d=BI.Tree.transformToArrayFormat(this.options.items);BI.each(d,function(b,d){
+BI.deepContains(a,d.value)&&!c.contains(d.text||d.value)&&c.push(d.text||d.value)}),c.length>0?(this.trigger.element.removeClass("bi-water-mark"),this.trigger.setText(c.join(","))):(this.trigger.element.addClass("bi-water-mark"),this.trigger.setText(b.text))},populate:function(a){this.options.items=a}}),BI.shortcut("bi.small_select_text_trigger",BI.SmallSelectTextTrigger),BI.SmallTextTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,triggerWidth:20},_defaultConfig:function(){var a=BI.SmallTextTrigger.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-text-trigger",height:20})},_init:function(){BI.SmallTextTrigger.superclass._init.apply(this,arguments);var a=this.options,b=this._const;this.text=BI.createWidget({type:"bi.label",textAlign:"left",height:a.height,text:a.text,hgap:b.hgap}),this.trigerButton=BI.createWidget({type:"bi.trigger_icon_button",width:b.triggerWidth}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.text},{el:this.trigerButton,width:b.triggerWidth}]})},setValue:function(a){this.text.setValue(a)},setText:function(a){this.text.setText(a)}}),BI.shortcut("bi.small_text_trigger",BI.SmallTextTrigger),BI.SequenceTableTreeNumber=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SequenceTableTreeNumber.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-sequence-table-tree-number",isNeedFreeze:!1,startSequence:1,scrollTop:0,headerRowSize:25,rowSize:25,sequenceHeaderCreator:null,header:[],items:[],crossHeader:[],crossItems:[]})},_init:function(){BI.SequenceTableTreeNumber.superclass._init.apply(this,arguments);this.options;this.vCurr=1,this.hCurr=1,this.tasks=[],this.renderedCells=[],this.renderedKeys=[],this.container=BI.createWidget({type:"bi.absolute",width:60,scrollable:!1}),this.scrollContainer=BI.createWidget({type:"bi.vertical",scrollable:!1,scrolly:!1,items:[this.container]}),this.headerContainer=BI.createWidget({type:"bi.absolute",cls:"bi-border",width:58,scrollable:!1}),this.layout=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.headerContainer,height:this._getHeaderHeight()-2},{el:{type:"bi.layout"},height:2},{el:this.scrollContainer}]}),this.start=this.options.startSequence,this.cache={},this._nextState(),this._populate()},_getNextSequence:function(a){function b(a){c.cache[a.text||a.value]||(c.cache[a.text||a.value]=e),e++}var c=this,d=this.start,e=this.start;return BI.each(a,function(a,f){BI.isNotEmptyArray(f.children)&&BI.each(f.children,function(a,f){0===a&&c.cache[f.text||f.value]&&(d=e=c.cache[f.text||f.value]),b(f)})}),this.start=e,d},_getStart:function(a){var b=this,c=this.start;return BI.some(a,function(a,d){if(BI.isNotEmptyArray(d.children))return BI.some(d.children,function(a,d){if(0===a&&b.cache[d.text||d.value])return c=b.cache[d.text||d.value],!0})}),c},_formatNumber:function(a){function b(a){var c=0;return BI.isNotEmptyArray(a.children)?(BI.each(a.children,function(a,d){c+=b(d)}),BI.isNotEmptyArray(a.values)&&c++):c++,c}var c=this.options,d=[],e=this._getStart(a),f=0,g=0;return BI.each(a,function(a,h){BI.isArray(h.children)&&(BI.each(h.children,function(a,h){var i=b(h);d.push({text:e++,start:f,top:g,cnt:i,index:a,height:i*c.rowSize}),f+=i,g+=i*c.rowSize}),BI.isNotEmptyArray(h.values)&&(d.push({text:BI.i18nText("BI-Summary_Values"),start:f++,top:g,cnt:1,isSummary:!0,height:c.rowSize}),g+=c.rowSize))}),d},_layout:function(){var a=this.options,b=this._getHeaderHeight()-2,c=this.layout.attr("items");a.isNeedFreeze===!1?(c[0].height=0,c[1].height=0):a.isNeedFreeze===!0&&(c[0].height=b,c[1].height=2),this.layout.attr("items",c),this.layout.resize();try{this.scrollContainer.element.scrollTop(a.scrollTop)}catch(d){}},_getHeaderHeight:function(){var a=this.options;return a.headerRowSize*(a.crossHeader.length+(a.header.length>0?1:0))},_nextState:function(){var a=this.options;this._getNextSequence(a.items)},_prevState:function(){var a,b=this.options;BI.some(b.items,function(b,c){if(BI.isNotEmptyArray(c.children))return BI.some(c.children,function(b,c){return a=c,!0})}),a&&BI.isNotEmptyObject(this.cache)?this.start=this.cache[a.text||a.value]:this.start=1,this._nextState()},_getMaxScrollTop:function(a){var b=0;return BI.each(a,function(a,c){b+=c.cnt}),Math.max(0,b*this.options.rowSize-(this.options.height-this._getHeaderHeight())+BI.DOM.getScrollWidth())},_createHeader:function(){var a=this.options;BI.createWidget({type:"bi.absolute",element:this.headerContainer,items:[{el:a.sequenceHeaderCreator||{type:"bi.table_style_cell",cls:"sequence-table-title-cell",styleGetter:a.headerCellStyleGetter,text:BI.i18nText("BI-Number_Index")},left:0,top:0,right:0,bottom:0}]})},_calculateChildrenToRender:function(){var a=this,b=this.options,c=[],d=[],e=this._formatNumber(b.items),f=BI.PrefixIntervalTree.uniform(e.length,0);BI.each(e,function(a,b){f.set(a,b.height)});for(var g=BI.clamp(b.scrollTop,0,this._getMaxScrollTop(e)),h=f.greatestLowerBound(g),i=-(g-(h>0?f.sumTo(h-1):0)),j=i,k=b.height-this._getHeaderHeight();j-1)e[f].height!==a.renderedCells[g]._height&&(a.renderedCells[g]._height=e[f].height,a.renderedCells[g].el.setHeight(e[f].height)),e[f].top!==a.renderedCells[g].top&&(a.renderedCells[g].top=e[f].top,a.renderedCells[g].el.element.css("top",e[f].top+"px")),c.push(a.renderedCells[g]);else{var h=BI.createWidget(BI.extend({type:"bi.table_style_cell",cls:"sequence-table-number-cell bi-border-left bi-border-right bi-border-bottom",width:60,styleGetter:e[f].isSummary===!0?function(){return b.summaryCellStyleGetter(!0)}:function(a){return function(){return b.sequenceCellStyleGetter(a)}}(e[f].index)},e[f]));c.push({el:h,left:0,top:e[f].top,_height:e[f].height})}});var l={},m={},n=[];BI.each(d,function(b,c){BI.deepContains(a.renderedKeys,c)?l[b]=c:m[b]=c}),BI.each(this.renderedKeys,function(a,b){BI.deepContains(l,b)||BI.deepContains(m,b)||n.push(a)}),BI.each(n,function(b,c){a.renderedCells[c].el.destroy()});var o=[];BI.each(m,function(a){o.push(c[a])}),BI.createWidget({type:"bi.absolute",element:this.container,items:o}),this.renderedCells=c,this.renderedKeys=d,this.container.setHeight(f.sumUntil(e.length))},_restore:function(){BI.each(this.renderedCells,function(a,b){b.el.destroy()}),this.renderedCells=[],this.renderedKeys=[]},_populate:function(){var a=this;BI.each(this.tasks,function(b,c){c.apply(a)}),this.tasks=[],this.headerContainer.empty(),this._createHeader(),this._layout(),this._calculateChildrenToRender()},setVerticalScroll:function(a){if(this.options.scrollTop!==a){this.options.scrollTop=a;try{this.scrollContainer.element.scrollTop(a)}catch(b){}}},getVerticalScroll:function(){return this.options.scrollTop},setVPage:function(a){a<=1?(this.cache={},this.start=this.options.startSequence,this._restore(),this.tasks.push(this._nextState)):a===this.vCurr+1?this.tasks.push(this._nextState):a===this.vCurr-1&&this.tasks.push(this._prevState),this.vCurr=a},setHPage:function(a){a!==this.hCurr&&this.tasks.push(this._prevState),this.hCurr=a},restore:function(){this._restore()},populate:function(a,b,c,d){var e=this.options;a&&a!==this.options.items&&(e.items=a,this._restore(),this.tasks.push(this._prevState)),b&&b!==this.options.header&&(e.header=b),c&&c!==this.options.crossItems&&(e.crossItems=c),d&&d!==this.options.crossHeader&&(e.crossHeader=d),this._populate()}}),BI.shortcut("bi.sequence_table_tree_number",BI.SequenceTableTreeNumber),BI.AdaptiveArrangement=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.AdaptiveArrangement.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-adaptive-arrangement",resizable:!0,layoutType:BI.Arrangement.LAYOUT_TYPE.FREE,items:[]})},_init:function(){BI.AdaptiveArrangement.superclass._init.apply(this,arguments);var a=this,b=this.options;this.arrangement=BI.createWidget({type:"bi.arrangement",element:this,layoutType:b.layoutType,items:b.items}),this.arrangement.on(BI.Arrangement.EVENT_SCROLL,function(){a.fireEvent(BI.AdaptiveArrangement.EVENT_SCROLL,arguments)}),this.zIndex=0,BI.each(b.items,function(b,c){a._initResizable(c.el)}),$(document).mousedown(function(b){BI.each(a.getAllRegions(),function(a,c){0===c.el.element.find(b.target).length&&c.el.element.removeClass("selected")})}),BI.ResizeDetector.addResizeListener(this,function(){a.arrangement.resize(),a.fireEvent(BI.AdaptiveArrangement.EVENT_RESIZE)})},_isEqual:function(){return this.arrangement._isEqual.apply(this.arrangement,arguments)},_setSelect:function(a){a.element.hasClass("selected")||(a.element.css("zIndex",++this.zIndex),BI.each(this.getAllRegions(),function(a,b){b.el.element.removeClass("selected")}),a.element.addClass("selected"))},_initResizable:function(a){var b=this;this.options;a.element.css("zIndex",++this.zIndex),a.element.mousedown(function(){b._setSelect(a)})},_getScrollOffset:function(){return this.arrangement._getScrollOffset()},getClientWidth:function(){return this.arrangement.getClientWidth()},getClientHeight:function(){return this.arrangement.getClientHeight()},addRegion:function(a,b){this._initResizable(a.el),this._setSelect(a.el);var c,d=this.arrangement.getAllRegions();return(c=this.arrangement.addRegion(a,b))&&(this._old=d),c},deleteRegion:function(a){var b,c=this.getAllRegions();return(b=this.arrangement.deleteRegion(a))?this._old=c:(this._old=this.getAllRegions(),this.relayout()),b},setRegionSize:function(a,b){var c,d=this.getAllRegions();return(c=this.arrangement.setRegionSize(a,b))&&(this._old=d),c},setPosition:function(a,b){return this.arrangement.setPosition(a,b)},setRegionPosition:function(a,b){this.getRegionByName(a);return this.arrangement.setRegionPosition(a,b)},setDropPosition:function(a,b){return this.arrangement.setDropPosition(a,b)},scrollInterval:function(a,b,c,d){function e(a,b){if(""===a)return f.lastActiveRegion="",void(f._scrollInterval&&(clearInterval(f._scrollInterval),f._scrollInterval=null));if(f.lastActiveRegion!==a){f.lastActiveRegion=a,f._scrollInterval&&(clearInterval(f._scrollInterval),f._scrollInterval=null);var c=0;f._scrollInterval=setInterval(function(){if(c++,!(c<=3)){var d=f._getScrollOffset(),e=d.top+40*g[a][0],h=d.left+40*g[a][1];e<0||h<0||(b({offsetX:40*g[a][1],offsetY:40*g[a][0]}),f.scrollTo({top:e,left:h}))}},300)}}var f=this,g={top:[-1,0],bottom:[1,0],left:[0,-1],right:[0,1]},h=this.element.bounds();d({offsetX:0,offsetY:0});var i=this.element.offset(),j={left:a.pageX-i.left,top:a.pageY-i.top};b&&j.top>=0&&j.top<=30?e("top",d):b&&j.top>=h.height-30&&j.top<=h.height?e("bottom",d):b&&j.left>=0&&j.left<=30?e("left",d):b&&j.left>=h.width-30&&j.left<=h.width?e("right",d):c===!0?j.top<0?e("top",d):j.top>h.height?e("bottom",d):j.left<0?e("left",d):j.left>h.width?e("right",d):e("",d):e("",d)},scrollEnd:function(){this.lastActiveRegion="",this._scrollInterval&&(clearInterval(this._scrollInterval),this._scrollInterval=null)},scrollTo:function(a){this.arrangement.scrollTo(a)},zoom:function(a){this.arrangement.zoom(a)},resize:function(){this.arrangement.resize()},relayout:function(){return this.arrangement.relayout()},setLayoutType:function(a){this.arrangement.setLayoutType(a)},getLayoutType:function(){return this.arrangement.getLayoutType()},getLayoutRatio:function(){return this.arrangement.getLayoutRatio()},getHelper:function(){return this.arrangement.getHelper()},getRegionByName:function(a){return this.arrangement.getRegionByName(a)},getAllRegions:function(){return this.arrangement.getAllRegions()},revoke:function(){this._old&&this.populate(BI.toArray(this._old))},populate:function(a){var b=this;BI.each(a,function(a,c){b._initResizable(c.el)}),this.arrangement.populate(a)}}),BI.AdaptiveArrangement.EVENT_ELEMENT_START_RESIZE="AdaptiveArrangement.EVENT_ELEMENT_START_RESIZE",BI.AdaptiveArrangement.EVENT_ELEMENT_RESIZE="AdaptiveArrangement.EVENT_ELEMENT_RESIZE",BI.AdaptiveArrangement.EVENT_ELEMENT_STOP_RESIZE="AdaptiveArrangement.EVENT_ELEMENT_STOP_RESIZE",BI.AdaptiveArrangement.EVENT_RESIZE="AdaptiveArrangement.EVENT_RESIZE",BI.AdaptiveArrangement.EVENT_SCROLL="AdaptiveArrangement.EVENT_SCROLL",BI.shortcut("bi.adaptive_arrangement",BI.AdaptiveArrangement),BI.ArrangementBlock=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ArrangementBlock.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-arrangement-block bi-mask"})}}),BI.shortcut("bi.arrangement_block",BI.ArrangementBlock),BI.ArrangementDroppable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.ArrangementDroppable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-arrangement-droppable bi-resizer"})}}),BI.shortcut("bi.arrangement_droppable",BI.ArrangementDroppable),BI.Arrangement=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.Arrangement.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-arrangement",layoutType:BI.Arrangement.LAYOUT_TYPE.GRID,items:[]})},_init:function(){BI.Arrangement.superclass._init.apply(this,arguments);var a=this,b=this.options;this.arrangement=BI.createWidget({type:"bi.arrangement_droppable",cls:"arrangement-block",invisible:!0}),this.block=BI.createWidget({type:"bi.arrangement_block",invisible:!0}),this.container=BI.createWidget({type:"bi.absolute",items:b.items.concat([this.block,this.arrangement])}),this.scrollContainer=BI.createWidget({type:"bi.adaptive",width:"100%",height:"100%",scrollable:!0,items:[this.container]}),this.scrollContainer.element.scroll(function(){a.fireEvent(BI.Arrangement.EVENT_SCROLL,{scrollLeft:a.scrollContainer.element.scrollLeft(),scrollTop:a.scrollContainer.element.scrollTop(),clientWidth:a.scrollContainer.element[0].clientWidth,clientHeight:a.scrollContainer.element[0].clientHeight})}),BI.createWidget({type:"bi.adaptive",element:this,items:[this.scrollContainer]}),this.regions={},b.items.length>0&&BI.nextTick(function(){a.populate(b.items)})},_calculateRegions:function(a){var b=this;this.options;this.regions={},BI.each(a,function(a,c){var d=b._createOneRegion(c);b.regions[d.id]=d})},_isEqual:function(a,b){return Math.abs(a-b)<2},_isLessThan:function(a,b){return ab&&!this._isEqual(a,b)},_isLessThanEqual:function(a,b){return a<=b||this._isEqual(a,b)},_isMoreThanEqual:function(a,b){return a>=b||this._isEqual(a,b)},_getRegionOccupied:function(a){this.options;if(BI.size(a||this.regions)<=0)return{left:0,top:0,width:0,height:0};var b=BI.MAX,c=BI.MIN,d=BI.MAX,e=BI.MIN;return BI.each(a||this.regions,function(a,f){b=Math.min(b,f.left),c=Math.max(c,f.left+f.width),d=Math.min(d,f.top),e=Math.max(e,f.top+f.height)}),{left:b,top:d,width:c-b,height:e-d}},_getCrossArea:function(a,b){if(a.left<=b.left){if(a.top<=b.top){if(a.top+a.height>b.top&&a.left+a.width>b.left)return this._isEqual(a.top+a.height,b.top)||this._isEqual(a.left+a.width,b.left)?0:(a.top+a.height-b.top)*(a.left+a.width-b.left)}else if(b.top+b.height>a.top&&a.left+a.width>b.left)return this._isEqual(b.top+b.height,a.top)||this._isEqual(a.left+a.width,b.left)?0:(b.top+b.height-a.top)*(a.left+a.width-b.left)}else if(a.top<=b.top){if(a.top+a.height>b.top&&b.left+b.width>a.left)return this._isEqual(a.top+a.height,b.top)||this._isEqual(b.left+b.width,a.left)?0:(a.top+a.height-b.top)*(b.left+b.width-a.left)}else if(b.top+b.height>a.top&&b.left+b.width>a.left)return this._isEqual(b.top+b.height,a.top)||this._isEqual(b.left+b.width,a.left)?0:(b.top+b.height-a.top)*(b.left+b.width-a.left);return 0},_isRegionOverlay:function(a){var b=[];BI.each(a||this.regions,function(a,c){b.push(new BI.Region(c.left,c.top,c.width,c.height))});for(var c=0,d=b.length;c1)return!0}return!1},_isArrangeFine:function(a){switch(this.options.layoutType){case BI.Arrangement.LAYOUT_TYPE.FREE:return!0;case BI.Arrangement.LAYOUT_TYPE.GRID:}return!0},_getRegionNames:function(a){var b=[];return BI.each(a||this.regions,function(a,c){b.push(c.id||c.attr("id"))}),b},_getRegionsByNames:function(a,b){if(a=BI.isArray(a)?a:[a],b=b||this.regions,BI.isArray(b)){var c=[];BI.each(b,function(b,d){a.contains(d.id||d.attr("id"))&&c.push(d)})}else{var c={};BI.each(a,function(a,d){c[d]=b[d]})}return c},_cloneRegion:function(a){var b={};return BI.each(a||this.regions,function(a,c){b[a]={},b[a].el=c.el,b[a].id=c.id,b[a].left=c.left,b[a].top=c.top,b[a].width=c.width,b[a].height=c.height}),b},_test:function(a){return!BI.any(a||this.regions,function(a,b){if(BI.isNaN(b.width)||BI.isNaN(b.height)||b.width<=21||b.height<=21)return!0})},_getScrollOffset:function(){return{left:this.scrollContainer.element[0].scrollLeft,top:this.scrollContainer.element[0].scrollTop}},_createOneRegion:function(a){var b=BI.createWidget(a.el);return b.setVisible(!0),{id:b.attr("id"),left:a.left,top:a.top,width:a.width,height:a.height,el:b}},_applyRegion:function(a){this.options;BI.each(a||this.regions,function(a,b){b.el.element.css({left:b.left,top:b.top,width:b.width,height:b.height})}),this._applyContainer(),this.ratio=this.getLayoutRatio()},_renderRegion:function(){BI.createWidget({type:"bi.absolute",element:this.container,items:BI.toArray(this.regions)})},getClientWidth:function(){return this.scrollContainer.element[0].clientWidth},getClientHeight:function(){return this.scrollContainer.element[0].clientHeight},_applyContainer:function(){this.scrollContainer.element.css("overflow","hidden");var a=this._getRegionOccupied();return this.container.element.width(a.left+a.width).height(a.top+a.height),this.scrollContainer.element.css("overflow","auto"),a},_modifyRegion:function(a){BI.each(this.regions,function(b,c){a[b]&&(c.left=a[b].left,c.top=a[b].top,c.width=a[b].width,c.height=a[b].height)})},_addRegion:function(a){var b=this._createOneRegion(a);this.regions[b.id]=b,BI.createWidget({type:"bi.absolute",element:this.container,items:[b]})},_deleteRegionByName:function(a){this.regions[a].el.setVisible(!1),delete this.regions[a]},_setArrangeSize:function(a){this.arrangement.element.css({left:a.left,top:a.top,width:a.width,height:a.height})},_getOneWidthPortion:function(){return this.getClientWidth()/BI.Arrangement.PORTION},_getOneHeightPortion:function(){return this.getClientHeight()/BI.Arrangement.H_PORTION},_getGridPositionAndSize:function(a){var b=this._getOneWidthPortion(),c=this._getOneHeightPortion(),d=Math.round(a.width/b),e=Math.round(a.left/b),f=Math.round(a.top/c),g=Math.round(a.height/c);return 0===d&&(d=1),0===g&&(g=1),{x:e,y:f,w:d,h:g}},_getBlockPositionAndSize:function(a){var b=this._getOneWidthPortion(),c=this._getOneHeightPortion();return{left:a.x*b,top:a.y*c,width:a.w*b,height:a.h*c}},_getLayoutsByRegions:function(a){var b=this,c=[];return BI.each(a||this.regions,function(a,d){c.push(BI.extend(b._getGridPositionAndSize(d),{i:d.id}))}),c},_getLayoutIndexByName:function(a,b){return BI.findIndex(a,function(a,c){return c.i===b})},_setBlockPositionAndSize:function(a){this.block.element.css({left:a.left,top:a.top,width:a.width,height:a.height})},_getRegionsByLayout:function(a){var b=this,c={};return BI.each(a,function(a,d){c[d.i]=BI.extend(b._getBlockPositionAndSize(d),{id:d.i})}),c},_setRegionsByLayout:function(a,b){var c=this;return a||(a=this.regions),BI.each(b,function(b,d){a[d.i]&&BI.extend(a[d.i],c._getBlockPositionAndSize(d))}),a},_moveElement:function(a,b,c,d,e){function f(a,b){return BI.filter(a,function(a,c){return g._collides(c,b)})}var g=this;if(b._static)return a;if(b.y===d&&b.x===c)return a;var h=d&&b.y>d;"number"==typeof c&&(b.x=c),"number"==typeof d&&(b.y=d),b.moved=!0;var i=this._sortLayoutItemsByRowCol(a);h&&(i=i.reverse());for(var j=f(i,b),k=0,l=j.length;km.y&&b.y-m.y>m.h/4||(a=m._static?this._moveElementAwayFromCollision(a,m,b,e):this._moveElementAwayFromCollision(a,b,m,e))}return a},_sortLayoutItemsByRowCol:function(a){return[].concat(a).sort(function(a,b){return a.y>b.y||a.y===b.y&&a.x>b.x?1:-1})},_collides:function(a,b){return a!==b&&(!(a.x+a.w<=b.x)&&(!(a.x>=b.x+b.w)&&(!(a.y+a.h<=b.y)&&!(a.y>=b.y+b.h))))},_getFirstCollision:function(a,b){for(var c=0,d=a.length;c0&&!this._getFirstCollision(a,b);)b.y--;for(var d;d=this._getFirstCollision(a,b);)b.y=d.y+d.h;return b},compact:function(a,b){function c(a){return BI.filter(a,function(a,b){return b._static})}for(var d=c(a),e=this._sortLayoutItemsByRowCol(a),f=[],g=0,h=e.length;g0){var j=e[f-1].getLastChild();i=a[d+1].indexOf(j)+1}a[d+1].splice(i,0,g);var k=g.parent.getChildIndex(g.id);g.parent.removeChildByIndex(k),g.parent.addChild(h,k),h.addChild(g),b[d].push(h),e[f]=h}else b[d].push(g)})}),b},_fill:function(a){var b=[],c=a.length;return BI.each(a,function(d,e){b[d]||(b[d]=[]),BI.each(e,function(f,g){if(g.isLeaf()&&d0){var j=e[f-1].getLastChild();i=a[d+1].indexOf(j)+1}a[d+1].splice(i,0,h),g.addChild(h)}b[d].push(g)})}),b},_adjust:function(a){for(;;){var b=!1;if(BI.backEach(a,function(a,c){BI.each(c,function(a,c){if(!c.isNew){var d=!0;if(BI.any(c.getChildren(),function(a,b){if(!b.isNew)return d=!1,!0}),!c.isLeaf()&&d===!0){var e=[];BI.each(c.getChildren(),function(a,b){e=e.concat(b.getChildren())}),c.removeAllChilds(),BI.each(e,function(a,b){c.addChild(b)});var f=new BI.Node(BI.UUID());f.isNew=!0;var g=c.parent.getChildIndex(c.id);c.parent.removeChildByIndex(g),c.parent.addChild(f,g),f.addChild(c),b=!0}}})}),b===!1)break;a=this._stratification()}return a},_calculateWidth:function(){function a(b){var c=0;return b.isLeaf()?b.width:(BI.each(b.getChildren(),function(b,d){c+=a(d)}),c)}function b(a){var c=0;return a.isLeaf()?a.height:(BI.each(a.getChildren(),function(a,d){c+=b(d)}),c)}var c=(this.options,0);return c=this._isVertical()?a(this.tree.getRoot()):b(this.tree.getRoot())},_isVertical:function(){var a=this.options;return a.direction===BI.Direction.Top||a.direction===BI.Direction.Bottom},_calculateHeight:function(){function a(b){var c=0;return BI.each(b.getChildren(),function(b,d){c=Math.max(c,a(d))}),c+(b.height||0)}function b(a){var c=0;return BI.each(a.getChildren(),function(a,d){c=Math.max(c,b(d))}),c+(a.width||0)}var c=(this.options,0);return c=this._isVertical()?a(this.tree.getRoot()):b(this.tree.getRoot())},_calculateXY:function(a){var b=(this.options,this._calculateWidth()),c=this._calculateHeight(),d=a.length,e=this._calculateLeaves(),f={},g=c/d;return BI.each(a,function(a,c){var d=[];BI.each(c,function(a,b){d[a]=(b.get("leaves")||1)/e}),BI.each(c,function(c,e){var h=BI.sum(d.slice(0,c)),i=h*b+d[c]*b/2,j=a*g+g/2;f[e.id]={x:i,y:j}})}),f},_stroke:function(a,b){var c=this._calculateHeight(),d=a.length,e=c/d,f=this,g=this.options;switch(g.direction){case BI.Direction.Top:BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y+e/2;d+="M"+h.x+","+(h.y+g.centerOffset)+"L"+h.x+","+i;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];d+="M"+e.x+","+(e.y+g.centerOffset)+"L"+e.x+","+i}),j.length>0&&(d+="M"+BI.first(j).x+","+i+"L"+BI.last(j).x+","+i),f.svg.path(d).attr("stroke","#d4dadd")}})});break;case BI.Direction.Bottom:
+BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y-e/2;d+="M"+h.x+","+(h.y-g.centerOffset)+"L"+h.x+","+i;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];d+="M"+e.x+","+(e.y-g.centerOffset)+"L"+e.x+","+i}),j.length>0&&(d+="M"+BI.first(j).x+","+i+"L"+BI.last(j).x+","+i),f.svg.path(d).attr("stroke","#d4dadd")}})});break;case BI.Direction.Left:BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y+e/2;d+="M"+(h.y+g.centerOffset)+","+h.x+"L"+i+","+h.x;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];d+="M"+(e.y+g.centerOffset)+","+e.x+"L"+i+","+e.x}),j.length>0&&(d+="M"+i+","+BI.first(j).x+"L"+i+","+BI.last(j).x),f.svg.path(d).attr("stroke","#d4dadd")}})});break;case BI.Direction.Right:BI.each(a,function(a,c){BI.each(c,function(a,c){if(c.getChildrenLength()>0&&!c.leaf){var d="",h=b[c.id],i=h.y-e/2;d+="M"+(h.y-g.centerOffset)+","+h.x+"L"+i+","+h.x;var j=[];BI.each(c.getChildren(),function(a,c){var e=j[a]=b[c.id];d+="M"+(e.y-g.centerOffset)+","+e.x+"L"+i+","+e.x}),j.length>0&&(d+="M"+i+","+BI.first(j).x+"L"+i+","+BI.last(j).x),f.svg.path(d).attr("stroke","#d4dadd")}})})}},_createBranches:function(a){var b=this.options;b.direction!==BI.Direction.Bottom&&b.direction!==BI.Direction.Right||(a=a.reverse());var c=this._calculateXY(a);this._stroke(a,c)},_isNeedAdjust:function(){var a=this.options;return a.direction===BI.Direction.Top&&a.align===BI.VerticalAlign.Bottom||a.direction===BI.Direction.Bottom&&a.align===BI.VerticalAlign.Top||a.direction===BI.Direction.Left&&a.align===BI.HorizontalAlign.Right||a.direction===BI.Direction.Right&&a.align===BI.HorizontalAlign.Left},setValue:function(a){},getValue:function(){},_transformToTreeFormat:function(a){var b,c;if(!a)return[];if(BI.isArray(a)){var d=[],e=[];for(b=0,c=a.length;b=c.options.min&&d<=c.options.max},f=function(a){return Date.parseDateTime(a,"%Y-%X").print("%Y-%X")==a&&d>=c.options.min&&d<=c.options.max};if(BI.isNotNull(b)&&Date.checkLegal(a))switch(a.length){case this._const.yearLength:e(a)&&this.editor.setValue(a+"-");break;case this._const.yearMonthLength:f(a)&&this.editor.setValue(a+"-")}},setValue:function(a){var b,c,d=this,e=new Date;this.store_value=a,BI.isNotNull(a)&&(b=a.type||BI.DateTrigger.MULTI_DATE_CALENDAR,c=a.value,BI.isNull(c)&&(c=a));var f=function(a,b){var c=a.print("%Y-%x-%e");d.editor.setState(c),d.editor.setValue(c),d.setTitle(b+":"+c)};switch(b){case BI.DateTrigger.MULTI_DATE_YEAR_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_PREV];e=new Date(e.getFullYear()-1*c,e.getMonth(),e.getDate()),f(e,g);break;case BI.DateTrigger.MULTI_DATE_YEAR_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_AFTER];e=new Date(e.getFullYear()+1*c,e.getMonth(),e.getDate()),f(e,g);break;case BI.DateTrigger.MULTI_DATE_YEAR_BEGIN:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_BEGIN];e=new Date(e.getFullYear(),0,1),f(e,g);break;case BI.DateTrigger.MULTI_DATE_YEAR_END:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_END];e=new Date(e.getFullYear(),11,31),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_PREV];e=(new Date).getBeforeMulQuarter(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_AFTER];e=(new Date).getAfterMulQuarter(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN];e=(new Date).getQuarterStartDate(),f(e,g);break;case BI.DateTrigger.MULTI_DATE_QUARTER_END:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_END];e=(new Date).getQuarterEndDate(),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_PREV];e=(new Date).getBeforeMultiMonth(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_AFTER];e=(new Date).getAfterMultiMonth(c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_BEGIN:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_BEGIN];e=new Date(e.getFullYear(),e.getMonth(),1),f(e,g);break;case BI.DateTrigger.MULTI_DATE_MONTH_END:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_END];e=new Date(e.getFullYear(),e.getMonth(),e.getLastDateOfMonth().getDate()),f(e,g);break;case BI.DateTrigger.MULTI_DATE_WEEK_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_PREV];e=e.getOffsetDate(-7*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_WEEK_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_AFTER];e=e.getOffsetDate(7*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_DAY_PREV:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_PREV];e=e.getOffsetDate(-1*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_DAY_AFTER:var g=c+BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_AFTER];e=e.getOffsetDate(1*c),f(e,g);break;case BI.DateTrigger.MULTI_DATE_DAY_TODAY:var g=BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_TODAY];e=new Date,f(e,g);break;default:if(BI.isNull(c)||BI.isNull(c.day))this.editor.setState(""),this.editor.setValue(""),this.setTitle("");else{var h=c.year+"-"+(c.month+1)+"-"+c.day;this.editor.setState(h),this.editor.setValue(h),this.setTitle(h)}}},getKey:function(){return this.editor.getValue()},getValue:function(){return this.store_value}}),BI.DateTrigger.MULTI_DATE_YEAR_PREV=1,BI.DateTrigger.MULTI_DATE_YEAR_AFTER=2,BI.DateTrigger.MULTI_DATE_YEAR_BEGIN=3,BI.DateTrigger.MULTI_DATE_YEAR_END=4,BI.DateTrigger.MULTI_DATE_MONTH_PREV=5,BI.DateTrigger.MULTI_DATE_MONTH_AFTER=6,BI.DateTrigger.MULTI_DATE_MONTH_BEGIN=7,BI.DateTrigger.MULTI_DATE_MONTH_END=8,BI.DateTrigger.MULTI_DATE_QUARTER_PREV=9,BI.DateTrigger.MULTI_DATE_QUARTER_AFTER=10,BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN=11,BI.DateTrigger.MULTI_DATE_QUARTER_END=12,BI.DateTrigger.MULTI_DATE_WEEK_PREV=13,BI.DateTrigger.MULTI_DATE_WEEK_AFTER=14,BI.DateTrigger.MULTI_DATE_DAY_PREV=15,BI.DateTrigger.MULTI_DATE_DAY_AFTER=16,BI.DateTrigger.MULTI_DATE_DAY_TODAY=17,BI.DateTrigger.MULTI_DATE_PARAM=18,BI.DateTrigger.MULTI_DATE_CALENDAR=19,BI.DateTrigger.MULTI_DATE_SEGMENT_NUM={},BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_PREV]=BI.i18nText("BI-Multi_Date_Year_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_AFTER]=BI.i18nText("BI-Multi_Date_Year_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_BEGIN]=BI.i18nText("BI-Multi_Date_Year_Begin"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_YEAR_END]=BI.i18nText("BI-Multi_Date_Year_End"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_PREV]=BI.i18nText("BI-Multi_Date_Quarter_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_AFTER]=BI.i18nText("BI-Multi_Date_Quarter_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_BEGIN]=BI.i18nText("BI-Multi_Date_Quarter_Begin"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_QUARTER_END]=BI.i18nText("BI-Multi_Date_Quarter_End"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_PREV]=BI.i18nText("BI-Multi_Date_Month_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_AFTER]=BI.i18nText("BI-Multi_Date_Month_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_BEGIN]=BI.i18nText("BI-Multi_Date_Month_Begin"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_MONTH_END]=BI.i18nText("BI-Multi_Date_Month_End"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_PREV]=BI.i18nText("BI-Multi_Date_Week_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_WEEK_AFTER]=BI.i18nText("BI-Multi_Date_Week_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_PREV]=BI.i18nText("BI-Multi_Date_Day_Prev"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_AFTER]=BI.i18nText("BI-Multi_Date_Day_Next"),BI.DateTrigger.MULTI_DATE_SEGMENT_NUM[BI.DateTrigger.MULTI_DATE_DAY_TODAY]=BI.i18nText("BI-Multi_Date_Today"),BI.DateTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.DateTrigger.EVENT_START="EVENT_START",BI.DateTrigger.EVENT_STOP="EVENT_STOP",BI.DateTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.DateTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.DateTrigger.EVENT_VALID="EVENT_VALID",BI.DateTrigger.EVENT_ERROR="EVENT_ERROR",BI.DateTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.DateTrigger.EVENT_KEY_DOWN="EVENT_KEY_DOWN",BI.shortcut("bi.date_trigger",BI.DateTrigger),BI.DatePaneWidget=BI.inherit(BI.Widget,{_defaultConfig:function(){var a=BI.DatePaneWidget.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-date-pane-widget",min:"1900-01-01",max:"2099-12-31",selectedTime:null})},_init:function(){BI.DatePaneWidget.superclass._init.apply(this,arguments);var a=this,b=this.options;this.today=new Date,this._year=this.today.getFullYear(),this._month=this.today.getMonth(),this.selectedTime=b.selectedTime||{year:this._year,month:this._month},this.datePicker=BI.createWidget({type:"bi.date_picker",min:b.min,max:b.max}),this.datePicker.on(BI.DatePicker.EVENT_CHANGE,function(){a.selectedTime=a.datePicker.getValue(),a.calendar.setSelect(BI.Calendar.getPageByDateJSON(a.selectedTime))}),this.calendar=BI.createWidget({direction:"top",element:this,logic:{dynamic:!1},type:"bi.navigation",tab:this.datePicker,cardCreator:BI.bind(this._createNav,this)}),this.calendar.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedTime=a.calendar.getValue(),a.calendar.empty(),a.setValue(a.selectedTime),a.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE)})},_createNav:function(a){var b=BI.Calendar.getDateJSONByPage(a),c=BI.createWidget({type:"bi.calendar",logic:{dynamic:!1},min:this.options.min,max:this.options.max,year:b.year,month:b.month,day:this.selectedTime.day});return c},_getNewCurrentDate:function(){var a=new Date;return{year:a.getFullYear(),month:a.getMonth()}},_setCalenderValue:function(a){this.calendar.setSelect(BI.Calendar.getPageByDateJSON(a)),this.calendar.setValue(a),this.selectedTime=a},_setDatePicker:function(a){BI.isNull(a)||BI.isNull(a.year)||BI.isNull(a.month)?this.datePicker.setValue(this._getNewCurrentDate()):this.datePicker.setValue(a)},_setCalendar:function(a){BI.isNull(a)||BI.isNull(a.day)?(this.calendar.empty(),this._setCalenderValue(this._getNewCurrentDate())):this._setCalenderValue(a)},setValue:function(a){this._setDatePicker(a),this._setCalendar(a)},getValue:function(){return this.selectedTime}}),BI.shortcut("bi.date_pane_widget",BI.DatePaneWidget),BI.DateTimeCombo=BI.inherit(BI.Single,{constants:{popupHeight:290,popupWidth:270,comboAdjustHeight:1,border:1,DATE_MIN_VALUE:"1900-01-01",DATE_MAX_VALUE:"2099-12-31"},_defaultConfig:function(){return BI.extend(BI.DateTimeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-combo bi-border",height:24})},_init:function(){BI.DateTimeCombo.superclass._init.apply(this,arguments);var a=this,b=(this.options,new Date);this.storeValue={year:b.getFullYear(),month:b.getMonth(),day:b.getDate(),hour:b.getHours(),minute:b.getMinutes(),second:b.getSeconds()},this.trigger=BI.createWidget({type:"bi.date_time_trigger",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),this.popup=BI.createWidget({type:"bi.date_time_popup",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),a.setValue(this.storeValue),this.popup.on(BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE,function(){a.setValue(a.storeValue),a.hidePopupView(),a.fireEvent(BI.DateTimeCombo.EVENT_CANCEL)}),this.popup.on(BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE,function(){a.storeValue=a.popup.getValue(),a.setValue(a.storeValue),a.hidePopupView(),a.fireEvent(BI.DateTimeCombo.EVENT_CONFIRM)}),this.popup.on(BI.DateTimePopup.CALENDAR_EVENT_CHANGE,function(){a.trigger.setValue(a.popup.getValue()),a.fireEvent(BI.DateTimeCombo.EVENT_CHANGE)}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,adjustLength:this.constants.comboAdjustHeight,popup:{el:this.popup,maxHeight:this.constants.popupHeight,width:this.constants.popupWidth,stopPropagation:!1}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW)});var c=BI.createWidget({type:"bi.trigger_icon_button",cls:"bi-trigger-date-button chart-date-normal-font bi-border-right",width:30,height:24});c.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.htape",element:this,items:[{type:"bi.absolute",items:[{el:this.combo,top:0,left:0,right:0,bottom:0},{el:c,top:0,left:0}]}]})},setValue:function(a){this.storeValue=a,this.popup.setValue(a),this.trigger.setValue(a)},getValue:function(){return this.storeValue},hidePopupView:function(){this.combo.hideView()}}),BI.DateTimeCombo.EVENT_CANCEL="EVENT_CANCEL",BI.DateTimeCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.DateTimeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW="BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.date_time_combo",BI.DateTimeCombo),BI.CustomDateTimeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.CustomDateTimeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-custom-date-time-combo"})},_init:function(){BI.CustomDateTimeCombo.superclass._init.apply(this,arguments);var a=this;this.DateTime=BI.createWidget({type:"bi.date_time_combo",element:this}),this.DateTime.on(BI.DateTimeCombo.EVENT_CANCEL,function(){a.fireEvent(BI.CustomDateTimeCombo.EVENT_CHANGE),a.fireEvent(BI.CustomDateTimeCombo.EVENT_CANCEL)}),this.DateTime.on(BI.DateTimeCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.CustomDateTimeCombo.EVENT_CHANGE),a.fireEvent(BI.CustomDateTimeCombo.EVENT_CONFIRM)}),this.DateTime.on(BI.DateTimeCombo.EVENT_CHANGE,function(){a.fireEvent(BI.CustomDateTimeCombo.EVENT_CHANGE)})},getValue:function(){return this.DateTime.getValue()},setValue:function(a){this.DateTime.setValue(a)}}),BI.CustomDateTimeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.CustomDateTimeCombo.EVENT_CANCEL="EVENT_CANCEL",BI.CustomDateTimeCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.custom_date_time_combo",BI.CustomDateTimeCombo),BI.DateTimePopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DateTimePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-popup",width:268,height:290})},_init:function(){BI.DateTimePopup.superclass._init.apply(this,arguments);var a=this;this.options;this.cancelButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top bi-border-right",shadow:!0,text:BI.i18nText("BI-Basic_Cancel")}),this.cancelButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE)}),this.okButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top",shadow:!0,text:BI.i18nText("BI-Basic_OK")}),this.okButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE)}),this.dateCombo=BI.createWidget({type:"bi.date_calendar_popup",min:a.options.min,max:a.options.max}),a.dateCombo.on(BI.DateCalendarPopup.EVENT_CHANGE,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)}),this.dateSelect=BI.createWidget({type:"bi.horizontal",cls:"bi-border-top",items:[{type:"bi.label",text:BI.i18nText("BI-Basic_Time"),width:45},{type:"bi.date_time_select",max:23,min:0,width:60,height:30,ref:function(b){a.hour=b,a.hour.on(BI.DateTimeSelect.EVENT_CONFIRM,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)})}},{type:"bi.label",text:":",width:15},{type:"bi.date_time_select",max:59,min:0,width:60,height:30,ref:function(b){a.minute=b,a.minute.on(BI.DateTimeSelect.EVENT_CONFIRM,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)})}},{type:"bi.label",text:":",width:15},{type:"bi.date_time_select",max:59,min:0,width:60,height:30,ref:function(b){a.second=b,a.second.on(BI.DateTimeSelect.EVENT_CONFIRM,function(){a.fireEvent(BI.DateTimePopup.CALENDAR_EVENT_CHANGE)})}}]});var b=new Date;this.dateCombo.setValue({year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),this.hour.setValue(b.getHours()),this.minute.setValue(b.getMinutes()),this.second.setValue(b.getSeconds()),this.dateButton=BI.createWidget({type:"bi.grid",items:[[this.cancelButton,this.okButton]]}),BI.createWidget({element:this,type:"bi.vtape",items:[{el:this.dateCombo},{el:this.dateSelect,height:50},{el:this.dateButton,height:30}]})},setValue:function(a){var b,c=a;BI.isNull(c)?(b=new Date,this.dateCombo.setValue({year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),this.hour.setValue(b.getHours()),this.minute.setValue(b.getMinutes()),this.second.setValue(b.getSeconds())):(this.dateCombo.setValue({year:c.year,month:c.month,day:c.day}),this.hour.setValue(c.hour),this.minute.setValue(c.minute),this.second.setValue(c.second))},getValue:function(){return{year:this.dateCombo.getValue().year,month:this.dateCombo.getValue().month,day:this.dateCombo.getValue().day,hour:this.hour.getValue(),minute:this.minute.getValue(),second:this.second.getValue()}}}),BI.DateTimePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.DateTimePopup.BUTTON_CANCEL_EVENT_CHANGE="BUTTON_CANCEL_EVENT_CHANGE",BI.DateTimePopup.CALENDAR_EVENT_CHANGE="CALENDAR_EVENT_CHANGE",BI.shortcut("bi.date_time_popup",BI.DateTimePopup),BI.DateTimeSelect=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DateTimeSelect.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-date-time-select bi-border",max:23,min:0})},_init:function(){BI.DateTimeSelect.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.sign_editor",value:this._alertInEditorValue(b.min),errorText:BI.i18nText("BI-Please_Input_Natural_Number"),validationChecker:function(a){return BI.isNaturalNumber(a)}}),this.editor.on(BI.TextEditor.EVENT_CONFIRM,function(){a._finetuning(0),a.fireEvent(BI.DateTimeSelect.EVENT_CONFIRM)}),this.topBtn=BI.createWidget({type:"bi.icon_button",cls:"column-pre-page-h-font top-button bi-border-left bi-border-bottom"}),this.topBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(1),a.fireEvent(BI.DateTimeSelect.EVENT_CONFIRM)}),this.bottomBtn=BI.createWidget({type:"bi.icon_button",cls:"column-next-page-h-font bottom-button bi-border-left"}),this.bottomBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(-1),a.fireEvent(BI.DateTimeSelect.EVENT_CONFIRM)}),this._finetuning(0),BI.createWidget({type:"bi.htape",element:this,items:[this.editor,{el:{type:"bi.grid",columns:1,rows:2,items:[{column:0,row:0,el:this.topBtn},{column:0,row:1,el:this.bottomBtn}]},width:30}]})},_alertOutEditorValue:function(a){return a>this.options.max&&(a=this.options.min),athis.options.max&&(a=this.options.min),a0&&a[c-1].xb)return!0});return c.y}var c=this,d=(this.options,this.pathChooser.routes),e=this.pathChooser.pathes,f=this.pathChooser.store;this.arrows={},BI.each(d,function(d,g){c.arrows[d]=[],BI.each(g,function(g,h){c.arrows[d][g]=[];var i=e[d][g];BI.each(i,function(a,b){if(a>0&&a0&&(e=c._drawOneArrow(i[a-1],3)):e=c._drawOneArrow(i[a],1)):b.x===i[a-1].x&&(e=b.y>i[a-1].y?f[BI.first(h)].direction===-1?c._drawOneArrow(i[a-1],0):c._drawOneArrow(b,2):f[h[h.length-2]].direction===-1?c._drawOneArrow(i[a-1],2):c._drawOneArrow(b,0)),e&&c.arrows[d][g].push(e)}}),BI.each(h,function(e,j){if(0!==e){var k,l=h[e-1];if(f[l].direction===-1){var m=c.pathChooser.getRegionIndexById(l),n=a(m,-1),o=b(i,n);k=c._drawOneArrow({x:n,y:o},3)}else{var m=c.pathChooser.getRegionIndexById(j),n=a(m),o=b(i,n);k=c._drawOneArrow({x:n,y:o},1)}k&&c.arrows[d][g].push(k)}})})})},_setValue:function(a,b){var c=this,d=this._const.lineColor,e=this._const.selectLineColor,f=this.pathChooser.routes,g=this.pathChooser.start,h=[a];g.contains(a)&&(h=g),BI.each(h,function(a,b){BI.each(c.arrows[b],function(a,b){BI.each(b,function(a,b){b.attr({fill:d,stroke:d}).toFront()})})}),BI.each(this.arrows[a][b],function(a,b){b.attr({fill:e,stroke:e}).toFront()});for(var i=BI.last(f[a][b]);i&&f[i]&&1===f[i].length;)BI.each(c.arrows[i][0],function(a,b){b.attr({fill:e,stroke:e}).toFront()}),i=BI.last(f[i][0])},setValue:function(a){this.pathChooser.setValue(a),this._unselectAllArrows();var b=this.pathChooser.routes,c=BI.keys(b),d=this,e=[],f=[];BI.each(a,function(a,b){BI.contains(c,b)&&f.length>0&&(f.push(b),e.push(f),f=[]),f.push(b)}),f.length>0&&e.push(f),BI.each(e,function(a,c){var e=c[0],f=BI.findIndex(b[e],function(a,b){if(BI.isEqual(c,b))return!0});f>=0&&d._setValue(e,f)})},getValue:function(){return this.pathChooser.getValue()},populate:function(a){this.pathChooser.populate(a),this._drawArrows()}}),BI.DirectionPathChooser.EVENT_CHANGE="DirectionPathChooser.EVENT_CHANGE",BI.shortcut("bi.direction_path_chooser",BI.DirectionPathChooser),BI.DownListCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.DownListCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-combo",invalid:!1,height:25,items:[],adjustLength:0,direction:"bottom",trigger:"click",el:{}})},_init:function(){BI.DownListCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popupview=BI.createWidget({type:"bi.down_list_popup",items:b.items,chooseType:b.chooseType}),this.popupview.on(BI.DownListPopup.EVENT_CHANGE,function(b){a.fireEvent(BI.DownListCombo.EVENT_CHANGE,b),a.downlistcombo.hideView()}),this.popupview.on(BI.DownListPopup.EVENT_SON_VALUE_CHANGE,function(b,c){a.fireEvent(BI.DownListCombo.EVENT_SON_VALUE_CHANGE,b,c),a.downlistcombo.hideView()}),this.downlistcombo=BI.createWidget({element:this,type:"bi.combo",trigger:b.trigger,isNeedAdjustWidth:!1,adjustLength:b.adjustLength,direction:b.direction,el:BI.createWidget(b.el,{type:"bi.icon_trigger",extraCls:b.iconCls?b.iconCls:"pull-down-font",width:b.width,height:b.height}),popup:{el:this.popupview,stopPropagation:!0,maxHeight:1e3}}),this.downlistcombo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.DownListCombo.EVENT_BEFORE_POPUPVIEW)})},hideView:function(){this.downlistcombo.hideView()},showView:function(){this.downlistcombo.showView()},populate:function(a){this.popupview.populate(a)},setValue:function(a){this.popupview.setValue(a)},getValue:function(){return this.popupview.getValue()}}),BI.DownListCombo.EVENT_CHANGE="EVENT_CHANGE",BI.DownListCombo.EVENT_SON_VALUE_CHANGE="EVENT_SON_VALUE_CHANGE",BI.DownListCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.down_list_combo",BI.DownListCombo),BI.DownListGroup=BI.inherit(BI.Widget,{constants:{iconCls:"check-mark-ha-font"},_defaultConfig:function(){return BI.extend(BI.DownListGroup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-down-list-group",items:[{el:{}}]})},_init:function(){BI.DownListGroup.superclass._init.apply(this,arguments);var a=this.options,b=this;this.downlistgroup=BI.createWidget({element:this,type:"bi.button_tree",items:a.items,chooseType:0,layouts:[{type:"bi.vertical",hgap:0,vgap:0}]}),this.downlistgroup.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.DownListGroup.EVENT_CHANGE,arguments)})},getValue:function(){return this.downlistgroup.getValue()},setValue:function(a){this.downlistgroup.setValue(a)}}),BI.DownListGroup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_group",BI.DownListGroup),BI.DownListItem=BI.inherit(BI.Single,{_defaultConfig:function(){var a=BI.DownListItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-down-list-item bi-list-item-active",cls:"",height:25,logic:{dynamic:!0},selected:!1,iconHeight:null,iconWidth:null,textHgap:0,textVgap:0,textLgap:0,textRgap:0})},_init:function(){BI.DownListItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.text=BI.createWidget({type:"bi.icon_text_item",element:this,height:b.height,text:b.text,value:b.value,logic:b.logic,selected:b.selected,disabled:b.disabled,iconHeight:b.iconHeight,iconWidth:b.iconWidth,textHgap:b.textHgap,textVgap:b.textVgap,textLgap:b.textLgap,textRgap:b.textRgap,father:b.father}),this.text.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.text.on(BI.IconTextItem.EVENT_CHANGE,function(){a.fireEvent(BI.DownListItem.EVENT_CHANGE)})},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},isSelected:function(){return this.text.isSelected()},setSelected:function(a){this.text.setSelected(a)},setValue:function(a){this.text.setValue(a)},getValue:function(){return this.text.getValue()}}),BI.DownListItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_item",BI.DownListItem),BI.DownListGroupItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){var a=BI.DownListGroupItem.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-down-list-group-item",logic:{dynamic:!1},iconCls1:"dot-e-font",iconCls2:"pull-right-e-font"})},_init:function(){BI.DownListGroupItem.superclass._init.apply(this,arguments);var a=this.options,b=this;this.text=BI.createWidget({type:"bi.label",cls:"list-group-item-text",textAlign:"left",text:a.text,value:a.value,height:a.height}),this.icon1=BI.createWidget({type:"bi.icon_button",cls:a.iconCls1,width:25,forceNotSelected:!0}),this.icon2=BI.createWidget({type:"bi.icon_button",cls:a.iconCls2,width:25,forceNotSelected:!0});var c=BI.createWidget({type:"bi.layout",width:25});BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.icon2,top:0,bottom:0,right:0}]}),BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic("horizontal",BI.extend(a.logic,{items:BI.LogicFactory.createLogicItemsByDirection("left",this.icon1,this.text,c)})))),this.element.hover(function(){b.isEnabled()&&b.hover()},function(){b.isEnabled()&&b.dishover()})},hover:function(){BI.DownListGroupItem.superclass.hover.apply(this,arguments),this.icon1.element.addClass("hover"),this.icon2.element.addClass("hover")},dishover:function(){BI.DownListGroupItem.superclass.dishover.apply(this,arguments),this.icon1.element.removeClass("hover"),this.icon2.element.removeClass("hover")},doClick:function(){BI.DownListGroupItem.superclass.doClick.apply(this,arguments),this.isValid()&&this.fireEvent(BI.DownListGroupItem.EVENT_CHANGE,this.getValue())},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},setValue:function(a){var b=this,c=this.options;a=BI.isArray(a)?a:[a],BI.find(a,function(a,d){return BI.contains(c.childValues,d)?(b.icon1.setSelected(!0),!0):void b.icon1.setSelected(!1)})}}),BI.DownListGroupItem.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.down_list_group_item",BI.DownListGroupItem),BI.DownListPopup=BI.inherit(BI.Pane,{constants:{nextIcon:"pull-right-e-font",height:25,iconHeight:12,iconWidth:12,hgap:0,vgap:0,border:1},_defaultConfig:function(){var a=BI.DownListPopup.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:"bi-down-list-popup",items:[],chooseType:BI.Selection.Multi})},_init:function(){BI.DownListPopup.superclass._init.apply(this,arguments),this.singleValues=[],this.childValueMap={},this.fatherValueMap={};var a=this,b=this.options,c=this._createChildren(b.items);this.popup=BI.createWidget({type:"bi.button_tree",items:BI.createItems(c,{},{adjustLength:-2}),layouts:[{type:"bi.vertical",hgap:this.constants.hgap,vgap:this.constants.vgap}],chooseType:b.chooseType}),this.popup.on(BI.ButtonTree.EVENT_CHANGE,function(b,c){var d=b;if(BI.isNotNull(a.childValueMap[b])?(d=a.childValueMap[b],a.fireEvent(BI.DownListPopup.EVENT_SON_VALUE_CHANGE,d,a.fatherValueMap[b])):a.fireEvent(BI.DownListPopup.EVENT_CHANGE,d,c),!a.singleValues.contains(d)){var e=a.getValue(),f=[];BI.each(e,function(a,b){b.value!=d&&f.push(b)}),a.setValue(f)}}),BI.createWidget({type:"bi.vertical",element:this,items:[this.popup]})},_createChildren:function(a){var b=this,c=[];return BI.each(a,function(d,e){var f={type:"bi.down_list_group",items:[]};if(BI.each(e,function(a,c){BI.isNotEmptyArray(c.children)&&!BI.isEmpty(c.el)?(c.type="bi.combo_group",c.cls="down-list-group",c.trigger="hover",c.isNeedAdjustWidth=!1,c.el.title=c.el.title||c.el.text,c.el.type="bi.down_list_group_item",c.el.logic={dynamic:!0},c.el.height=b.constants.height,c.el.iconCls2=b.constants.nextIcon,c.popup={lgap:4,el:{type:"bi.button_tree",chooseType:0,layouts:[{type:"bi.vertical"}]}},c.el.childValues=[],BI.each(c.children,function(a,d){var e=BI.deepClone(c.el.value),f=BI.deepClone(d.value);b.singleValues.push(d.value),d.type="bi.down_list_item",d.extraCls=" child-down-list-item",d.title=d.title||d.text,d.textRgap=10,d.isNeedAdjustWidth=!1,d.logic={dynamic:!0},d.father=e,b.fatherValueMap[b._createChildValue(e,f)]=e,b.childValueMap[b._createChildValue(e,f)]=f,d.value=b._createChildValue(e,f),c.el.childValues.push(d.value)})):(c.type="bi.down_list_item",c.title=c.title||c.text,c.textRgap=10,c.isNeedAdjustWidth=!1,c.logic={dynamic:!0});var d={};d.el=c,f.items.push(d)}),b._isGroup(f.items)&&BI.each(f.items,function(a,c){b.singleValues.push(c.el.value)}),c.push(f),b._needSpliter(d,a.length)){var g=BI.createWidget({type:"bi.vertical",items:[{el:{type:"bi.layout",cls:"bi-down-list-spliter bi-border-top cursor-pointer",height:0}}],cls:"bi-down-list-spliter-container cursor-pointer",lgap:10,rgap:10});c.push(g)}}),c},_isGroup:function(a){return a.length>1},_needSpliter:function(a,b){return a0?b.type="bi.file_manager_folder_item":b.type="bi.file_manager_file_item"}),a},setValue:function(a){this.button_group.setValue(a)},getValue:function(){return this.button_group.getValue()},getNotSelectedValue:function(){return this.button_group.getNotSelectedValue()},getAllLeaves:function(){return this.button_group.getAllLeaves()},getAllButtons:function(){return this.button_group.getAllButtons()},getSelectedButtons:function(){return this.button_group.getSelectedButtons()},getNotSelectedButtons:function(){return this.button_group.getNotSelectedButtons()},populate:function(a){this.button_group.populate(this._formatItems(a))}}),BI.FileManagerButtonGroup.EVENT_CHANGE="FileManagerButtonGroup.EVENT_CHANGE",BI.shortcut("bi.file_manager_button_group",BI.FileManagerButtonGroup),BI.FileManager=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FileManager.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager",el:{},items:[]})},_init:function(){BI.FileManager.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=new BI.Tree;var c=BI.Tree.transformToTreeFormat(b.items);this.tree.initTree(c),this.selectedValues=[],this.nav=BI.createWidget({type:"bi.file_manager_nav",items:BI.deepClone(c)}),this.nav.on(BI.FileManagerNav.EVENT_CHANGE,function(b,c){if("-1"==b)a.populate({children:a.tree.toJSON()});else{var d=a.tree.search(c.attr("id"));a.populate(BI.extend({id:d.id},d.get("data"),{children:a.tree.toJSON(d)}))}a.setValue(a.selectedValues)}),this.list=BI.createWidget(b.el,{type:"bi.file_manager_list",items:c}),this.list.on(BI.Controller.EVENT_CHANGE,function(b,c,d){if(b===BI.Events.CHANGE){var e=a.tree.search(d.attr("id"));a.populate(BI.extend({id:e.id},e.get("data"),{children:a.tree.toJSON(e)}))}else if(b===BI.Events.CLICK){var f=[];if(d instanceof BI.MultiSelectBar){var g=a.list.getValue();c=g.type===BI.Selection.All,f=BI.concat(g.assist,g.value)}else f=d.getAllLeaves();BI.each(f,function(b,d){c===!0?a.selectedValues.pushDistinct(d):a.selectedValues.remove(d)})}a.setValue(a.selectedValues)}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.list,left:0,right:0,top:0,bottom:10},{el:this.nav,left:40,right:100,top:0}]})},setValue:function(a){this.selectedValues=a||[],this.list.setValue(this.selectedValues)},getValue:function(){var a=this.list.getValue(),b=a.type===BI.Selection.All?a.assist:a.value;return b.pushDistinctArray(this.selectedValues),b},_populate:function(a){this.list.populate(a)},getSelectedValue:function(){return this.nav.getValue()[0]},getSelectedId:function(){return this.nav.getId()[0]},populate:function(a){var b=BI.deepClone(a);this._populate(a.children),this.nav.populate(b)}}),BI.FileManager.EVENT_CHANGE="FileManager.EVENT_CHANGE",BI.shortcut("bi.file_manager",BI.FileManager),BI.FileManagerFileItem=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.FileManagerFileItem.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-file-item bi-list-item bi-border-bottom",height:30})},_init:function(){BI.FileManagerFileItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checked=BI.createWidget({type:"bi.multi_select_bar",text:"",width:36,height:b.height}),this.checked.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),BI.createWidget({type:"bi.htape",element:this,items:[{el:this.checked,width:36},{el:{type:"bi.icon_button",cls:"create-by-me-file-font"},width:20},{el:{type:"bi.label",textAlign:"left",height:b.height,text:b.text,value:b.value}}]})},getAllLeaves:function(){return[this.options.value]},isSelected:function(){return this.checked.isSelected()},setSelected:function(a){this.checked.setSelected(a)}}),BI.FileManagerFileItem.EVENT_CHANGE="FileManagerFileItem.EVENT_CHANGE",BI.shortcut("bi.file_manager_file_item",BI.FileManagerFileItem),BI.FileManagerFolderItem=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.FileManagerFolderItem.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-folder-item bi-list-item bi-border-bottom",height:30})},_init:function(){BI.FileManagerFolderItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checked=BI.createWidget({type:"bi.multi_select_bar",text:"",width:36,height:b.height}),this.checked.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button=BI.createWidget({type:"bi.text_button",textAlign:"left",height:b.height,text:b.text,value:b.value}),this.button.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,BI.Events.CHANGE,b.value,a)}),this.tree=new BI.Tree,this.tree.initTree([{id:b.id,children:b.children}]),this.selectValue=[],BI.createWidget({type:"bi.htape",element:this,items:[{el:this.checked,width:36},{el:{type:"bi.icon_button",cls:"create-by-me-folder-font"},width:20},{el:this.button}]})},setAllSelected:function(a){this.checked.setSelected(a),this.selectValue=[]},setHalfSelected:function(a){this.checked.setHalfSelected(a),a||(this.selectValue=[])},setValue:function(a){var b=(this.options,!1),c=[];this.tree.traverse(function(d){d.isLeaf()&&(BI.contains(a,d.get("data").value)?c.push(d.get("data").value):b=!0)}),this.setAllSelected(c.length>0&&!b),this.setHalfSelected(c.length>0&&b),this.checked.isHalfSelected()&&(this.selectValue=c)},getAllButtons:function(){return[this]},getAllLeaves:function(){var a=(this.options,[]);return this.tree.traverse(function(b){b.isLeaf()&&a.push(b.get("data").value)}),a},getNotSelectedValue:function(){var a=this,b=(this.options,[]),c=this.checked.isSelected();if(c===!0)return b;var d=this.checked.isHalfSelected();return this.tree.traverse(function(c){if(c.isLeaf()){var e=c.get("data").value;d===!0?BI.contains(a.selectValue,c.get("data").value)||b.push(e):b.push(e)}}),b},getValue:function(){var a=[];return this.checked.isSelected()?(this.tree.traverse(function(b){b.isLeaf()&&a.push(b.get("data").value)}),a):this.checked.isHalfSelected()?this.selectValue:[]}}),BI.FileManagerFolderItem.EVENT_CHANGE="FileManagerFolderItem.EVENT_CHANGE",BI.shortcut("bi.file_manager_folder_item",BI.FileManagerFolderItem),BI.FileManagerList=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FileManagerList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-list",el:{},items:[]})},_init:function(){BI.FileManagerList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.list=BI.createWidget({type:"bi.select_list",element:this,items:b.items,toolbar:{type:"bi.multi_select_bar",height:40,text:""},el:{type:"bi.list_pane",el:BI.isWidget(b.el)?b.el:BI.extend({type:"bi.file_manager_button_group"},b.el)}}),this.list.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},setValue:function(a){this.list.setValue({value:a})},getValue:function(){return this.list.getValue()},populate:function(a){this.list.populate(a),this.list.setToolBarVisible(!0)}}),BI.FileManagerList.EVENT_CHANGE="FileManagerList.EVENT_CHANGE",BI.shortcut("bi.file_manager_list",BI.FileManagerList),BI.FileManagerNavButton=BI.inherit(BI.Widget,{_const:{normal_color:"#ffffff",select_color:"#eff1f4"},_defaultConfig:function(){return BI.extend(BI.FileManagerNavButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-nav-button",selected:!1,height:40})},_init:function(){BI.FileManagerNavButton.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.button=BI.createWidget({type:"bi.text_button",cls:"file-manager-nav-button-text bi-card",once:!0,selected:b.selected,text:b.text,title:b.text,value:b.value,height:b.height,lgap:20,rgap:10}),this.button.on(BI.Controller.EVENT_CHANGE,function(){arguments[2]=a,a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var d=BI.createWidget({type:"bi.svg",cls:"file-manager-nav-button-triangle",width:15,height:b.height}),e=d.path("M0,0L15,20L0,40").attr({stroke:c.select_color,fill:b.selected?c.select_color:c.normal_color});this.button.on(BI.TextButton.EVENT_CHANGE,function(){this.isSelected()?e.attr("fill",c.select_color):e.attr("fill",c.normal_color)}),BI.createWidget({type:"bi.default",element:this,items:[this.button]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:d,right:-15,top:0,bottom:0}]})},isSelected:function(){return this.button.isSelected()},setValue:function(a){this.button.setValue(a)},getValue:function(){return this.button.getValue()},populate:function(a){}}),BI.FileManagerNavButton.EVENT_CHANGE="FileManagerNavButton.EVENT_CHANGE",BI.shortcut("bi.file_manager_nav_button",BI.FileManagerNavButton),BI.FileManagerNav=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FileManagerNav.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-file-manager-nav bi-border-left",height:40,items:[]})},_init:function(){BI.FileManagerNav.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=new BI.Tree,this.refreshTreeData(b.items),this.tree.getRoot().set("data",{text:BI.i18nText("BI-Created_By_Me"),value:BI.FileManagerNav.ROOT_CREATE_BY_ME,id:BI.FileManagerNav.ROOT_CREATE_BY_ME}),this.button_group=BI.createWidget({type:"bi.button_group",element:this,items:[{type:"bi.file_manager_nav_button",text:BI.i18nText("BI-Created_By_Me"),selected:!0,id:BI.FileManagerNav.ROOT_CREATE_BY_ME,value:BI.FileManagerNav.ROOT_CREATE_BY_ME}],layouts:[{type:"bi.horizontal"}]}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.ButtonGroup.EVENT_CHANGE,function(b,c){a.fireEvent(BI.FileManagerNav.EVENT_CHANGE,arguments)})},_getAllParents:function(a){var b,c=[];for(b=a?this.tree.search(a):this.tree.getRoot();b.parent;)c.push(b),b=b.parent;return c.push(b),c.reverse()},_formatNodes:function(a){var b=[];return BI.each(a,function(a,c){b.push(BI.extend({type:"bi.file_manager_nav_button",id:c.id},c.get("data")))}),BI.last(b).selected=!0,b},getValue:function(){return this.button_group.getValue()},getId:function(){var a=[];return BI.each(this.button_group.getSelectedButtons(),function(b,c){a.push(c.attr("id"))}),a},refreshTreeData:function(a){this.tree.initTree(BI.Tree.transformToTreeFormat(a)),this.tree.getRoot().set("data",{text:BI.i18nText("BI-Created_By_Me"),value:BI.FileManagerNav.ROOT_CREATE_BY_ME,id:BI.FileManagerNav.ROOT_CREATE_BY_ME})},populate:function(a){var b=BI.isNull(a)?[this.tree.getRoot()]:this._getAllParents(a.id);this.button_group.populate(this._formatNodes(b))}}),BI.extend(BI.FileManagerNav,{ROOT_CREATE_BY_ME:"-1"}),BI.FileManagerNav.EVENT_CHANGE="FileManagerNav.EVENT_CHANGE",BI.shortcut("bi.file_manager_nav",BI.FileManagerNav),BI.FineTuningNumberEditor=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.FineTuningNumberEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-fine-tuning-number-editor bi-border",validationChecker:function(){return!0},valueFormatter:function(a){return a},value:0,errorText:"",step:1})},_init:function(){BI.FineTuningNumberEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,value:b.valueFormatter(b.value),validationChecker:b.validationChecker,errorText:b.errorText}),this.editor.on(BI.TextEditor.EVENT_CHANGE,function(){b.value=this.getValue(),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CHANGE)}),this.editor.on(BI.TextEditor.EVENT_CONFIRM,function(){a.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM)}),this.topBtn=BI.createWidget({type:"bi.icon_button",trigger:"lclick,",cls:"column-pre-page-h-font top-button bi-border-left bi-border-bottom"}),this.topBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(b.step),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CHANGE),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM)}),this.bottomBtn=BI.createWidget({type:"bi.icon_button",trigger:"lclick,",cls:"column-next-page-h-font bottom-button bi-border-left bi-border-top"}),this.bottomBtn.on(BI.IconButton.EVENT_CHANGE,function(){a._finetuning(-b.step),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CHANGE),a.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM)}),BI.createWidget({type:"bi.htape",element:this,items:[this.editor,{el:{type:"bi.grid",columns:1,rows:2,items:[{column:0,row:0,el:this.topBtn},{column:0,row:1,el:this.bottomBtn}]},width:23}]})},_finetuning:function(a){var b=BI.parseFloat(this.getValue());this.setValue(b.add(a))},setUpEnable:function(a){this.topBtn.setEnable(!!a)},setBottomEnable:function(a){this.bottomBtn.setEnable(!!a)},getValue:function(){return this.options.value},setValue:function(a){var b=this.options;b.value=a,this.editor.setValue(b.valueFormatter(a))}}),BI.FineTuningNumberEditor.EVENT_CONFIRM="EVENT_CONFIRM",BI.FineTuningNumberEditor.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.fine_tuning_number_editor",BI.FineTuningNumberEditor),BI.InteractiveArrangement=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.InteractiveArrangement.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-interactive-arrangement",resizable:!0,layoutType:BI.Arrangement.LAYOUT_TYPE.GRID,
+items:[]})},_init:function(){BI.InteractiveArrangement.superclass._init.apply(this,arguments);var a=this,b=this.options;this.arrangement=BI.createWidget({type:"bi.adaptive_arrangement",element:this,resizable:b.resizable,layoutType:b.layoutType,items:b.items}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_SCROLL,function(){a.fireEvent(BI.InteractiveArrangement.EVENT_SCROLL,arguments)}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_RESIZE,function(){a.fireEvent(BI.InteractiveArrangement.EVENT_RESIZE,arguments)}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_ELEMENT_RESIZE,function(b,c){var d=a._getRegionClientPosition(b);a.draw({left:d.left,top:d.top},c,b)}),this.arrangement.on(BI.AdaptiveArrangement.EVENT_ELEMENT_STOP_RESIZE,function(b,c){a.stopDraw(),a.setRegionSize(b,c)}),this.tags=[]},_isEqual:function(a,b){return this.arrangement._isEqual(a,b)},_getScrollOffset:function(){return this.arrangement._getScrollOffset()},_positionAt:function(a,b){var c=this;b=b||this.getAllRegions();var d=[],e=[],f=[],g=[],h=[],i=[];return BI.each(b,function(b,j){var k=c._getRegionClientPosition(j.id);Math.abs(k.left-a.left)<=3&&d.push(j),Math.abs(k.left+k.width/2-a.left)<=3&&e.push(j),Math.abs(k.left+k.width-a.left)<=3&&f.push(j),Math.abs(k.top-a.top)<=3&&g.push(j),Math.abs(k.top+k.height/2-a.top)<=3&&h.push(j),Math.abs(k.top+k.height-a.top)<=3&&i.push(j)}),{left:d,center:e,right:f,top:g,middle:h,bottom:i}},_getRegionClientPosition:function(a){var b=this.getRegionByName(a),c=this.arrangement._getScrollOffset();return{top:b.top-c.top,left:b.left-c.left,width:b.width,height:b.height,id:b.id}},_vAlign:function(a,b){var c,d=this,e=this._positionAt(a,b),f=[];if(e.left.length>0)c=this._getRegionClientPosition(e.left[0].id).left;else if(e.right.length>0){var g=this._getRegionClientPosition(e.right[0].id);c=g.left+g.width}var h=e.left.concat(e.right);return BI.each(h,function(b,e){var g=d._getRegionClientPosition(e.id);if(d._isEqual(g.left,c)||d._isEqual(g.left+g.width,c)){var h={top:g.top+g.height/2,left:c};f.push({id:e.id,start:h,end:{left:c,top:a.top}})}}),f},_leftAlign:function(a,b,c){return this._vAlign({left:a.left,top:a.top+b.height/2},c)},_rightAlign:function(a,b,c){return this._vAlign({left:a.left+b.width,top:a.top+b.height/2},c)},_hAlign:function(a,b){var c,d=this,e=this._positionAt(a,b),f=[];if(e.top.length>0){var g=this._getRegionClientPosition(e.top[0].id);c=g.top}else if(e.bottom.length>0){var g=this._getRegionClientPosition(e.bottom[0].id);c=g.top+g.height}var h=e.top.concat(e.bottom);return BI.each(h,function(b,e){var g=d._getRegionClientPosition(e.id);if(d._isEqual(g.top,c)||d._isEqual(g.top+g.height,c)){var h={top:c,left:g.left+g.width/2};f.push({id:g.id,start:h,end:{left:a.left,top:c}})}}),f},_topAlign:function(a,b,c){return this._hAlign({left:a.left+b.width/2,top:a.top},c)},_bottomAlign:function(a,b,c){return this._hAlign({left:a.left+b.width/2,top:a.top+b.height},c)},_centerAlign:function(a,b,c){var d,e=this,f=this._positionAt({left:a.left+b.width/2,top:a.top+b.height/2},c),g=[];if(f.center.length>0){var h=this._getRegionClientPosition(f.center[0].id);d=h.left+h.width/2}return BI.each(f.center,function(c,f){var h=e._getRegionClientPosition(f.id);if(e._isEqual(h.left+h.width/2,d)){var i={top:h.top+h.height/2,left:h.left+h.width/2};g.push({id:h.id,start:i,end:{left:d,top:a.top+b.height/2}})}}),g},_middleAlign:function(a,b,c){var d,e=this,f=this._positionAt({left:a.left+b.width/2,top:a.top+b.height/2},c),g=[];if(f.middle.length>0){var h=this._getRegionClientPosition(f.middle[0].id);d=h.top+h.height/2}return BI.each(f.middle,function(c,f){var h=e._getRegionClientPosition(f.id);if(e._isEqual(h.top+h.height/2,d)){var i={top:h.top+h.height/2,left:h.left+h.width/2};g.push({id:h.id,start:i,end:{left:a.left+b.width/2,top:d}})}}),g},_drawOneTag:function(a,b){var c=BI.createWidget({type:"bi.icon_button",width:13,height:13,cls:"drag-tag-font interactive-arrangement-dragtag-icon"}),d=BI.createWidget({type:"bi.icon_button",width:13,height:13,cls:"drag-tag-font interactive-arrangement-dragtag-icon"});if(this._isEqual(a.left,b.left))var e=BI.createWidget({type:"bi.layout",cls:"interactive-arrangement-dragtag-line",width:1,height:Math.abs(a.top-b.top)});else var e=BI.createWidget({type:"bi.layout",cls:"interactive-arrangement-dragtag-line",height:1,width:Math.abs(a.left-b.left)});BI.createWidget({type:"bi.absolute",element:this,items:[{el:c,left:a.left-6,top:a.top-7},{el:d,left:b.left-6,top:b.top-7},{el:e,left:Math.min(a.left,b.left),top:Math.min(a.top,b.top)}]}),this.tags.push(c),this.tags.push(d),this.tags.push(e)},stopDraw:function(){BI.each(this.tags,function(a,b){b.destroy()}),this.tags=[]},_getRegionExcept:function(a,b){var c=[];return BI.each(b||this.getAllRegions(),function(b,d){a&&d.id===a||c.push(d)}),c},getClientWidth:function(){return this.arrangement.getClientWidth()},getClientHeight:function(){return this.arrangement.getClientHeight()},getPosition:function(a,b,c){var d,e=this.getAllRegions();a&&(d=this._getRegionClientPosition(a));var f=this._getRegionExcept(a,e);b=b||{left:d.left,top:d.top},c=c||{width:d.width,height:d.height};var g=this._leftAlign(b,c,f),h=this._rightAlign(b,c,f),i=this._topAlign(b,c,f,f),j=this._bottomAlign(b,c,f),k=this._centerAlign(b,c,f),l=this._middleAlign(b,c,f);return BI.each(k,function(a,d){b.left=d.end.left-c.width/2}),BI.each(h,function(a,d){b.left=d.end.left-c.width}),BI.each(g,function(a,c){b.left=c.end.left}),BI.each(l,function(a,d){b.top=d.end.top-c.height/2}),BI.each(j,function(a,d){b.top=d.end.top-c.height}),BI.each(i,function(a,c){b.top=c.end.top}),b},getSize:function(a,b,c){var d,e=this.getAllRegions();a&&(d=this._getRegionClientPosition(a));var f=this._getRegionExcept(a,e);b=b||{left:d.left,top:d.top},c=c||{width:d.width,height:d.height};var g=this._leftAlign(b,c,f),h=this._rightAlign(b,c,f),i=this._topAlign(b,c,f,f),j=this._bottomAlign(b,c,f),k=this._centerAlign(b,c,f),l=this._middleAlign(b,c,f);return BI.each(k,function(a,d){c.width=2*(d.end.left-b.left)}),BI.each(h,function(a,d){c.width=d.end.left-b.left}),BI.each(g,function(a,b){}),BI.each(l,function(a,d){c.height=2*(d.end.top-b.top)}),BI.each(j,function(a,d){c.height=d.end.top-b.top}),BI.each(i,function(a,b){}),c},draw:function(a,b,c){var d=this;switch(this.stopDraw(),this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:var e=this._getRegionExcept(c),f=this._leftAlign(a,b,e),g=this._rightAlign(a,b,e),h=this._topAlign(a,b,e),i=this._bottomAlign(a,b,e),j=this._centerAlign(a,b,e),k=this._middleAlign(a,b,e);BI.each(j,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(g,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(f,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(k,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(i,function(a,b){d._drawOneTag(b.start,b.end)}),BI.each(h,function(a,b){d._drawOneTag(b.start,b.end)});break;case BI.Arrangement.LAYOUT_TYPE.GRID:}},addRegion:function(a,b){return this.stopDraw(),this.arrangement.addRegion(a,b)},deleteRegion:function(a){return this.arrangement.deleteRegion(a)},setRegionSize:function(a,b){return b=this.getSize(a,null,b),this.arrangement.setRegionSize(a,b)},setPosition:function(a,b){if(this.stopDraw(),a.left>0&&a.top>0)switch(this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:a=this.getPosition(null,a,b),this.draw(a,b);break;case BI.Arrangement.LAYOUT_TYPE.GRID:}var c=this.arrangement.setPosition(a,b);return c},setRegionPosition:function(a,b){if(b.left>0&&b.top>0)switch(this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:b=this.getPosition(a,b);break;case BI.Arrangement.LAYOUT_TYPE.GRID:}return this.arrangement.setRegionPosition(a,b)},setDropPosition:function(a,b){var c=this;if(this.stopDraw(),a.left>0&&a.top>0)switch(this.getLayoutType()){case BI.Arrangement.LAYOUT_TYPE.FREE:a=this.getPosition(null,a,b),this.draw(a,b);break;case BI.Arrangement.LAYOUT_TYPE.GRID:}var d=c.arrangement.setDropPosition(a,b);return function(){d(),c.stopDraw()}},scrollInterval:function(){this.arrangement.scrollInterval.apply(this.arrangement,arguments)},scrollEnd:function(){this.arrangement.scrollEnd.apply(this.arrangement,arguments)},scrollTo:function(a){this.arrangement.scrollTo(a)},zoom:function(a){this.arrangement.zoom(a)},resize:function(){return this.arrangement.resize()},relayout:function(){return this.arrangement.relayout()},setLayoutType:function(a){this.arrangement.setLayoutType(a)},getLayoutType:function(){return this.arrangement.getLayoutType()},getLayoutRatio:function(){return this.arrangement.getLayoutRatio()},getHelper:function(){return this.arrangement.getHelper()},getRegionByName:function(a){return this.arrangement.getRegionByName(a)},getAllRegions:function(){return this.arrangement.getAllRegions()},revoke:function(){return this.arrangement.revoke()},populate:function(a){this.arrangement.populate(a)}}),BI.InteractiveArrangement.EVENT_RESIZE="InteractiveArrangement.EVENT_RESIZE",BI.InteractiveArrangement.EVENT_SCROLL="InteractiveArrangement.EVENT_SCROLL",BI.shortcut("bi.interactive_arrangement",BI.InteractiveArrangement),BI.MonthCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MonthCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-month-combo",behaviors:{},height:25})},_init:function(){BI.MonthCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.month_trigger"}),this.trigger.on(BI.MonthTrigger.EVENT_CONFIRM,function(b){this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getValue()):this.getKey()||a.setValue(),a.fireEvent(BI.MonthCombo.EVENT_CONFIRM)}),this.trigger.on(BI.MonthTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.MonthTrigger.EVENT_START,function(){a.combo.hideView()}),this.trigger.on(BI.MonthTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.trigger.on(BI.MonthTrigger.EVENT_CHANGE,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.popup=BI.createWidget({type:"bi.month_popup",behaviors:b.behaviors}),this.popup.on(BI.MonthPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MonthCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",element:this,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,el:this.popup}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MonthCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.MonthCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.MonthCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.month_combo",BI.MonthCombo),BI.MonthPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MonthPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-month-popup",behaviors:{}})},_init:function(){BI.MonthPopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=[0,6,1,7,2,8,3,9,4,10,5,11],d=[];d.push(c.slice(0,2)),d.push(c.slice(2,4)),d.push(c.slice(4,6)),d.push(c.slice(6,8)),d.push(c.slice(8,10)),d.push(c.slice(10,12)),d=BI.map(d,function(a,b){return BI.map(b,function(a,b){return{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"center",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:23,width:38,value:b,text:b+1}})}),this.month=BI.createWidget({type:"bi.button_group",element:this,behaviors:b.behaviors,items:BI.createItems(d,{}),layouts:[BI.LogicFactory.createLogic("table",BI.extend({dynamic:!0},{columns:2,rows:6,columnSize:[.5,.5],rowSize:25})),{type:"bi.center_adapt",vgap:1,hgap:2}]}),this.month.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.MonthPopup.EVENT_CHANGE)})},getValue:function(){return this.month.getValue()[0]},setValue:function(a){this.month.setValue([a])}}),BI.MonthPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.month_popup",BI.MonthPopup),BI.MonthTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,triggerWidth:25,errorText:BI.i18nText("BI-Month_Trigger_Error_Text")},_defaultConfig:function(){return BI.extend(BI.MonthTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-month-trigger bi-border",height:25})},_init:function(){BI.MonthTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(a){return""===a||BI.isPositiveInteger(a)&&a>=1&&a<=12},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:c.errorText}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.MonthTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.MonthTrigger.EVENT_CHANGE)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.MonthTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.MonthTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.MonthTrigger.EVENT_STOP)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",text:BI.i18nText("BI-Multi_Date_Month"),baseCls:"bi-trigger-month-text",width:c.triggerWidth},width:c.triggerWidth},{el:{type:"bi.trigger_icon_button",width:c.triggerWidth},width:c.triggerWidth}]})},setValue:function(a){return BI.isNotNull(a)?(this.editor.setState(a+1),this.editor.setValue(a+1),void this.editor.setTitle(a+1)):(this.editor.setState(),this.editor.setValue(),void this.editor.setTitle())},getKey:function(){return 0|this.editor.getValue()},getValue:function(){return this.editor.getValue()-1}}),BI.MonthTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.MonthTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.MonthTrigger.EVENT_START="EVENT_START",BI.MonthTrigger.EVENT_STOP="EVENT_STOP",BI.MonthTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.month_trigger",BI.MonthTrigger),BI.MultiDateCard=BI.inherit(BI.Widget,{constants:{lgap:80,itemHeight:35,defaultEditorValue:"1"},_defaultConfig:function(){return $.extend(BI.MultiDateCard.superclass._defaultConfig.apply(this,arguments),{})},dateConfig:function(){},defaultSelectedItem:function(){},_init:function(){BI.MultiDateCard.superclass._init.apply(this,arguments);var a=this;this.options;this.label=BI.createWidget({type:"bi.label",height:this.constants.itemHeight,textAlign:"left",text:BI.i18nText("BI-Multi_Date_Relative_Current_Time"),cls:"bi-multidate-inner-label bi-tips"}),this.radioGroup=BI.createWidget({type:"bi.button_group",chooseType:0,items:BI.createItems(this.dateConfig(),{type:"bi.multidate_segment",height:this.constants.itemHeight}),layouts:[{type:"bi.vertical"}]}),this.radioGroup.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CONFIRM&&a.fireEvent(BI.MultiDateCard.EVENT_CHANGE)}),this.radioGroup.on(BI.ButtonGroup.EVENT_CHANGE,function(){a.setValue(a.getValue()),a.fireEvent(BI.MultiDateCard.EVENT_CHANGE)}),BI.createWidget({element:this,type:"bi.center_adapt",lgap:this.constants.lgap,items:[{type:"bi.vertical",items:[this.label,this.radioGroup]}]})},getValue:function(){var a=this.radioGroup.getSelectedButtons()[0],b=a.getValue(),c=a.getInputValue();return{type:b,value:c}},_isTypeAvaliable:function(a){var b=!1;return BI.find(this.dateConfig(),function(c,d){if(d.value===a)return b=!0,!0}),b},setValue:function(a){var b=this;BI.isNotNull(a)&&this._isTypeAvaliable(a.type)?(this.radioGroup.setValue(a.type),BI.each(this.radioGroup.getAllButtons(),function(c,d){d.isEditorExist()===!0&&d.isSelected()?d.setInputValue(a.value):d.setInputValue(b.constants.defaultEditorValue)})):(this.radioGroup.setValue(this.defaultSelectedItem()),BI.each(this.radioGroup.getAllButtons(),function(a,c){c.setInputValue(b.constants.defaultEditorValue)}))},getCalculationValue:function(){var a=this.getValue(),b=a.type,c=a.value;switch(b){case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV:return(new Date).getOffsetDate(-1*c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER:return(new Date).getOffsetDate(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY:return new Date;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV:return(new Date).getBeforeMultiMonth(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER:return(new Date).getAfterMultiMonth(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN:return new Date((new Date).getFullYear(),(new Date).getMonth(),1);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END:return new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getLastDateOfMonth().getDate());case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV:return(new Date).getBeforeMulQuarter(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER:return(new Date).getAfterMulQuarter(c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN:return(new Date).getQuarterStartDate();case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END:return(new Date).getQuarterEndDate();case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV:return(new Date).getOffsetDate(-7*c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER:return(new Date).getOffsetDate(7*c);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV:return new Date((new Date).getFullYear()-1*c,(new Date).getMonth(),(new Date).getDate());case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER:return new Date((new Date).getFullYear()+1*c,(new Date).getMonth(),(new Date).getDate());case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN:return new Date((new Date).getFullYear(),0,1);case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END:return new Date((new Date).getFullYear(),11,31)}}}),BI.MultiDateCard.EVENT_CHANGE="EVENT_CHANGE",BI.MultiDateCombo=BI.inherit(BI.Single,{constants:{popupHeight:259,popupWidth:270,comboAdjustHeight:1,border:1,DATE_MIN_VALUE:"1900-01-01",DATE_MAX_VALUE:"2099-12-31"},_defaultConfig:function(){return BI.extend(BI.MultiDateCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-combo bi-border",height:24})},_init:function(){BI.MultiDateCombo.superclass._init.apply(this,arguments);var a=this;this.options;this.storeTriggerValue="";var b=new Date;this.storeValue=null,this.trigger=BI.createWidget({type:"bi.date_trigger",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),this.trigger.on(BI.DateTrigger.EVENT_KEY_DOWN,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.DateTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.trigger.on(BI.DateTrigger.EVENT_TRIGGER_CLICK,function(){a.combo.toggle()}),this.trigger.on(BI.DateTrigger.EVENT_FOCUS,function(){a.storeTriggerValue=a.trigger.getKey(),a.combo.isViewVisible()||a.combo.showView(),a.fireEvent(BI.MultiDateCombo.EVENT_FOCUS)}),this.trigger.on(BI.DateTrigger.EVENT_ERROR,function(){a.storeValue={year:b.getFullYear(),month:b.getMonth()},a.popup.setValue(),a.fireEvent(BI.MultiDateCombo.EVENT_ERROR)}),this.trigger.on(BI.DateTrigger.EVENT_VALID,function(){a.fireEvent(BI.MultiDateCombo.EVENT_VALID)}),this.trigger.on(BI.DateTrigger.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDateCombo.EVENT_CHANGE)}),this.trigger.on(BI.DateTrigger.EVENT_CONFIRM,function(){if(!a.combo.isViewVisible()){var b=a.storeTriggerValue,c=a.trigger.getKey();BI.isNotEmptyString(c)&&!BI.isEqual(c,b)?(a.storeValue=a.trigger.getValue(),a.setValue(a.trigger.getValue())):BI.isEmptyString(c)&&(a.storeValue=null,a.trigger.setValue()),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}}),this.popup=BI.createWidget({type:"bi.multidate_popup",min:this.constants.DATE_MIN_VALUE,max:this.constants.DATE_MAX_VALUE}),this.popup.on(BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE,function(){a.setValue(),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.popup.on(BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE,function(){var b=new Date;a.setValue({year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.popup.on(BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.popup.on(BI.MultiDatePopup.CALENDAR_EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiDateCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,adjustLength:this.constants.comboAdjustHeight,popup:{el:this.popup,maxHeight:this.constants.popupHeight,width:this.constants.popupWidth,stopPropagation:!1}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.popup.setValue(a.storeValue),a.fireEvent(BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW)});var c=BI.createWidget({type:"bi.trigger_icon_button",cls:"bi-trigger-date-button chart-date-normal-font",width:30,height:23});c.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),this.changeIcon=BI.createWidget({type:"bi.icon_button",cls:"bi-trigger-date-change widget-date-h-change-font",width:30,height:23});var d=BI.createWidget({type:"bi.absolute",items:[{el:this.combo,top:0,left:0,right:0,bottom:0},{el:c,top:0,left:0}]});BI.createWidget({type:"bi.htape",element:this,items:[d,{el:this.changeIcon,width:30}],ref:function(b){a.comboWrapper=b}})},_checkDynamicValue:function(a){var b=null;switch(BI.isNotNull(a)&&(b=a.type),b){case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY:this.changeIcon.setVisible(!0),this.comboWrapper.attr("items")[1].width=30,this.comboWrapper.resize();break;default:this.comboWrapper.attr("items")[1].width=0,this.comboWrapper.resize(),this.changeIcon.setVisible(!1)}},setValue:function(a){this.storeValue=a,this.popup.setValue(a),this.trigger.setValue(a),this._checkDynamicValue(a)},getValue:function(){return this.storeValue},getKey:function(){return this.trigger.getKey()},hidePopupView:function(){this.combo.hideView()}}),BI.shortcut("bi.multidate_combo",BI.MultiDateCombo),BI.MultiDateCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.MultiDateCombo.EVENT_FOCUS="EVENT_FOCUS",BI.MultiDateCombo.EVENT_CHANGE="EVENT_CHANGE",BI.MultiDateCombo.EVENT_VALID="EVENT_VALID",BI.MultiDateCombo.EVENT_ERROR="EVENT_ERROR",BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW="BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW",BI.extend(BI.MultiDateCombo,{MULTI_DATE_YMD_CARD:1,MULTI_DATE_YEAR_CARD:2,MULTI_DATE_QUARTER_CARD:3,MULTI_DATE_MONTH_CARD:4,MULTI_DATE_WEEK_CARD:5,MULTI_DATE_DAY_CARD:6}),BI.extend(BI.MultiDateCombo,{DATE_TYPE:{MULTI_DATE_YEAR_PREV:1,MULTI_DATE_YEAR_AFTER:2,MULTI_DATE_YEAR_BEGIN:3,MULTI_DATE_YEAR_END:4,MULTI_DATE_MONTH_PREV:5,MULTI_DATE_MONTH_AFTER:6,MULTI_DATE_MONTH_BEGIN:7,MULTI_DATE_MONTH_END:8,MULTI_DATE_QUARTER_PREV:9,MULTI_DATE_QUARTER_AFTER:10,MULTI_DATE_QUARTER_BEGIN:11,MULTI_DATE_QUARTER_END:12,MULTI_DATE_WEEK_PREV:13,MULTI_DATE_WEEK_AFTER:14,MULTI_DATE_DAY_PREV:15,MULTI_DATE_DAY_AFTER:16,MULTI_DATE_DAY_TODAY:17,MULTI_DATE_PARAM:18,MULTI_DATE_CALENDAR:19,YEAR_QUARTER:20,YEAR_MONTH:21,YEAR_WEEK:22,YEAR_DAY:23,MONTH_WEEK:24,MONTH_DAY:25,YEAR:26,SAME_PERIOD:27,LAST_SAME_PERIOD:28}}),BI.DayCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.DayCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-daycard"})},_init:function(){BI.DayCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{isEditorExist:!0,selected:!0,text:BI.i18nText("BI-Multi_Date_Day_Prev"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV},{isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Day_Next"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER},{isEditorExist:!1,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY,text:BI.i18nText("BI-Multi_Date_Today")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV}}),BI.DayCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.daycard",BI.DayCard),BI.MonthCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.MonthCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-monthcard"})},_init:function(){BI.MonthCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,isEditorExist:!0,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV,text:BI.i18nText("BI-Multi_Date_Month_Prev")},{isEditorExist:!0,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER,text:BI.i18nText("BI-Multi_Date_Month_Next")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Month_Begin")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Month_End")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV}}),BI.MonthCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.monthcard",BI.MonthCard),BI.MultiDatePopup=BI.inherit(BI.Widget,{constants:{tabHeight:30,tabWidth:42,titleHeight:27,itemHeight:30,triggerHeight:24,buttonWidth:90,buttonHeight:25,cardHeight:229,cardWidth:270,popupHeight:259,popupWidth:270,comboAdjustHeight:1,ymdWidth:58,lgap:2,border:1},_defaultConfig:function(){return BI.extend(BI.MultiDatePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-popup",width:268,height:260})},_init:function(){BI.MultiDatePopup.superclass._init.apply(this,arguments);var a=this;this.options;this.storeValue="",this.textButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-label bi-border-left bi-border-right bi-border-top",shadow:!0,text:BI.i18nText("BI-Multi_Date_Today")}),this.textButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE)}),this.clearButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top",shadow:!0,text:BI.i18nText("BI-Basic_Clear")}),this.clearButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE)}),this.okButton=BI.createWidget({type:"bi.text_button",forceCenter:!0,cls:"bi-multidate-popup-button bi-border-top",shadow:!0,text:BI.i18nText("BI-Basic_OK")}),this.okButton.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE)}),this.dateTab=BI.createWidget({type:"bi.tab",tab:{cls:"bi-multidate-popup-tab bi-border-bottom",height:this.constants.tabHeight,items:BI.createItems([{text:BI.i18nText("BI-Multi_Date_YMD"),value:BI.MultiDateCombo.MULTI_DATE_YMD_CARD,width:this.constants.ymdWidth},{text:BI.i18nText("BI-Multi_Date_Year"),value:BI.MultiDateCombo.MULTI_DATE_YEAR_CARD},{text:BI.i18nText("BI-Multi_Date_Quarter"),value:BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD},{text:BI.i18nText("BI-Multi_Date_Month"),value:BI.MultiDateCombo.MULTI_DATE_MONTH_CARD},{text:BI.i18nText("BI-Multi_Date_Week"),value:BI.MultiDateCombo.MULTI_DATE_WEEK_CARD},{text:BI.i18nText("BI-Multi_Date_Day"),value:BI.MultiDateCombo.MULTI_DATE_DAY_CARD}],{width:this.constants.tabWidth,textAlign:"center",height:this.constants.itemHeight,cls:"bi-multidate-popup-item bi-list-item-active"}),layouts:[{type:"bi.left"}]},cardCreator:function(b){switch(b){case BI.MultiDateCombo.MULTI_DATE_YMD_CARD:return a.ymd=BI.createWidget({type:"bi.date_calendar_popup",min:a.options.min,max:a.options.max}),a.ymd.on(BI.DateCalendarPopup.EVENT_CHANGE,function(){a.fireEvent(BI.MultiDatePopup.CALENDAR_EVENT_CHANGE)}),a.ymd;case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD:return a.year=BI.createWidget({type:"bi.yearcard"}),a.year.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.year,b)}),a.year;case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD:return a.quarter=BI.createWidget({type:"bi.quartercard"}),a.quarter.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.quarter,b)}),a.quarter;case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD:return a.month=BI.createWidget({type:"bi.monthcard"}),a.month.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.month,b)}),a.month;case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD:return a.week=BI.createWidget({type:"bi.weekcard"}),a.week.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.week,b)}),a.week;case BI.MultiDateCombo.MULTI_DATE_DAY_CARD:return a.day=BI.createWidget({type:"bi.daycard"}),a.day.on(BI.MultiDateCard.EVENT_CHANGE,function(b){a._setInnerValue(a.day,b)}),a.day}}}),this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_YMD_CARD,this.dateTab.on(BI.Tab.EVENT_CHANGE,function(){var b=a.dateTab.getSelect();switch(b){case BI.MultiDateCombo.MULTI_DATE_YMD_CARD:var c=this.getTab(a.cur).getCalculationValue();a.ymd.setValue({year:c.getFullYear(),month:c.getMonth(),day:c.getDate()}),a._setInnerValue(a.ymd);break;case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD:a.year.setValue(a.storeValue),a._setInnerValue(a.year);break;case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD:a.quarter.setValue(a.storeValue),a._setInnerValue(a.quarter);break;case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD:a.month.setValue(a.storeValue),a._setInnerValue(a.month);break;case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD:a.week.setValue(a.storeValue),a._setInnerValue(a.week);break;case BI.MultiDateCombo.MULTI_DATE_DAY_CARD:a.day.setValue(a.storeValue),a._setInnerValue(a.day)}a.cur=b}),this.dateButton=BI.createWidget({type:"bi.grid",items:[[this.clearButton,this.textButton,this.okButton]]}),BI.createWidget({element:this,type:"bi.vtape",items:[{el:this.dateTab},{el:this.dateButton,height:30}]})},_setInnerValue:function(a){if(this.dateTab.getSelect()===BI.MultiDateCombo.MULTI_DATE_YMD_CARD)this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today")),this.textButton.setEnable(!0);else{var b=a.getCalculationValue();b=b.print("%Y-%x-%e"),this.textButton.setValue(b),this.textButton.setEnable(!1)}},setValue:function(a){this.storeValue=a;var b,c,d,e=this;switch(BI.isNotNull(a)&&(c=a.type||BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_CALENDAR,d=a.value,BI.isNull(d)&&(d=a)),c){case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YEAR_CARD),this.year.setValue({type:c,value:d}),this.cur=BI.MultiDateCombo.MULTI_DATE_YEAR_CARD,e._setInnerValue(this.year);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD,this.quarter.setValue({type:c,value:d}),e._setInnerValue(this.quarter);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_AFTER:
+case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_BEGIN:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_MONTH_END:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_MONTH_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_MONTH_CARD,this.month.setValue({type:c,value:d}),e._setInnerValue(this.month);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_WEEK_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_WEEK_CARD,this.week.setValue({type:c,value:d}),e._setInnerValue(this.week);break;case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_PREV:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_AFTER:case BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_DAY_TODAY:this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_DAY_CARD),this.cur=BI.MultiDateCombo.MULTI_DATE_DAY_CARD,this.day.setValue({type:c,value:d}),e._setInnerValue(this.day);break;default:if(BI.isNull(d)||BI.isEmptyObject(d)){var b=new Date;this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD),this.ymd.setValue({year:b.getFullYear(),month:b.getMonth(),day:b.getDate()}),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"))}else this.dateTab.setSelect(BI.MultiDateCombo.MULTI_DATE_YMD_CARD),this.ymd.setValue(d),this.textButton.setValue(BI.i18nText("BI-Multi_Date_Today"));this.textButton.setEnable(!0)}},getValue:function(){var a=this.dateTab.getSelect();switch(a){case BI.MultiDateCombo.MULTI_DATE_YMD_CARD:return this.ymd.getValue();case BI.MultiDateCombo.MULTI_DATE_YEAR_CARD:return this.year.getValue();case BI.MultiDateCombo.MULTI_DATE_QUARTER_CARD:return this.quarter.getValue();case BI.MultiDateCombo.MULTI_DATE_MONTH_CARD:return this.month.getValue();case BI.MultiDateCombo.MULTI_DATE_WEEK_CARD:return this.week.getValue();case BI.MultiDateCombo.MULTI_DATE_DAY_CARD:return this.day.getValue()}}}),BI.MultiDatePopup.BUTTON_OK_EVENT_CHANGE="BUTTON_OK_EVENT_CHANGE",BI.MultiDatePopup.BUTTON_lABEL_EVENT_CHANGE="BUTTON_lABEL_EVENT_CHANGE",BI.MultiDatePopup.BUTTON_CLEAR_EVENT_CHANGE="BUTTON_CLEAR_EVENT_CHANGE",BI.MultiDatePopup.CALENDAR_EVENT_CHANGE="CALENDAR_EVENT_CHANGE",BI.shortcut("bi.multidate_popup",BI.MultiDatePopup),BI.QuarterCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.QuarterCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-quartercard"})},_init:function(){BI.QuarterCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Quarter_Prev")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_AFTER,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Quarter_Next")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_BEGIN,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Quarter_Begin")},{value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_END,isEditorExist:!1,text:BI.i18nText("BI-Multi_Date_Quarter_End")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_QUARTER_PREV}}),BI.QuarterCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.quartercard",BI.QuarterCard),BI.MultiDateSegment=BI.inherit(BI.Single,{constants:{itemHeight:24,maxGap:15,minGap:10,textWidth:30,defaultEditorValue:"1"},_defaultConfig:function(){return $.extend(BI.MultiDateSegment.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-segment",text:"",width:130,height:30,isEditorExist:!0,selected:!1,defaultEditorValue:"1"})},_init:function(){BI.MultiDateSegment.superclass._init.apply(this,arguments);var a=this,b=this.options;this.radio=BI.createWidget({type:"bi.radio",selected:b.selected}),this.radio.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.textEditor=BI.createWidget({type:"bi.text_editor",value:this.constants.defaultEditorValue,title:function(){return a.textEditor.getValue()},cls:"bi-multidate-editor",width:this.constants.textWidth,height:this.constants.itemHeight}),this.textEditor.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",cls:"bi-multidate-normal-label",text:b.text,height:this.constants.itemHeight}),this._createSegment()},_createSegment:function(){return this.options.isEditorExist===!0?BI.createWidget({element:this,type:"bi.left",items:[{el:{type:"bi.center_adapt",items:[this.radio],height:this.constants.itemHeight},lgap:0},{el:{type:"bi.center_adapt",items:[this.textEditor],widgetName:"textEditor"},lgap:this.constants.maxGap},{el:this.text,lgap:this.constants.minGap}]}):BI.createWidget({element:this,type:"bi.left",items:[{el:{type:"bi.center_adapt",items:[this.radio],height:this.constants.itemHeight},lgap:0},{el:this.text,lgap:this.constants.maxGap}]})},setSelected:function(a){BI.isNotNull(this.radio)&&(this.radio.setSelected(a),this.textEditor.setEnable(a))},isSelected:function(){return this.radio.isSelected()},getValue:function(){return this.options.value},getInputValue:function(){return 0|this.textEditor.getValue()},setInputValue:function(a){this.textEditor.setValue(a)},isEditorExist:function(){return this.options.isEditorExist}}),BI.MultiDateSegment.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multidate_segment",BI.MultiDateSegment),BI.WeekCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.WeekCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-weekcard"})},_init:function(){BI.WeekCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Week_Prev"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV},{isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Week_Next"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_AFTER}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_WEEK_PREV}}),BI.WeekCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.weekcard",BI.WeekCard),BI.YearCard=BI.inherit(BI.MultiDateCard,{_defaultConfig:function(){return $.extend(BI.YearCard.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multidate-yearcard"})},_init:function(){BI.YearCard.superclass._init.apply(this,arguments)},dateConfig:function(){return[{selected:!0,isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Year_Prev"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV},{isEditorExist:!0,text:BI.i18nText("BI-Multi_Date_Year_Next"),value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_AFTER},{isEditorExist:!1,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_BEGIN,text:BI.i18nText("BI-Multi_Date_Year_Begin")},{isEditorExist:!1,value:BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_END,text:BI.i18nText("BI-Multi_Date_Year_End")}]},defaultSelectedItem:function(){return BI.MultiDateCombo.DATE_TYPE.MULTI_DATE_YEAR_PREV}}),BI.YearCard.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.yearcard",BI.YearCard),BI.MultiLayerSelectTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer_select_tree-combo",isDefaultInit:!1,height:30,text:"",items:[]})},_init:function(){BI.MultiLayerSelectTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items}),this.popup=BI.createWidget({type:"bi.multilayer_select_tree_popup",isDefaultInit:b.isDefaultInit,items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.MultiLayerSelectTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiLayerSelectTreeCombo.EVENT_CHANGE)})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.MultiLayerSelectTreeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_tree_combo",BI.MultiLayerSelectTreeCombo),BI.MultiLayerSelectLevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectLevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-select-level-tree",isDefaultInit:!1,items:[],itemsCreator:BI.emptyFn})},_init:function(){BI.MultiLayerSelectLevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={};if(e.layer=b,BI.isKey(e.id)||(e.id=BI.UUID()),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.multilayer_select_tree_first_plus_group_node";break;case a.length-1:f.type="bi.multilayer_select_tree_last_plus_group_node";break;default:f.type="bi.multilayer_select_tree_mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children,b+1)}else{switch(d){case a.length-1:f.type="bi.multilayer_single_tree_last_tree_leaf_item";break;default:f.type="bi.multilayer_single_tree_mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_assertId:function(a){BI.each(a,function(a,b){b.id=b.id||BI.UUID()})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",element:this,expander:{type:"bi.select_tree_expander",isDefaultInit:c.isDefaultInit,el:{},popup:{type:"bi.custom_tree"}},items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),itemsCreator:c.itemsCreator,el:{type:"bi.button_tree",chooseType:BI.Selection.Single,layouts:[{type:"bi.vertical"}]}}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.MultiLayerSelectLevelTree.EVENT_CHANGE,arguments)})},populate:function(a){this.tree.populate(this._formatItems(BI.Tree.transformToTreeFormat(a),0))},setValue:function(a){this.tree.setValue(a)},getValue:function(){return this.tree.getValue()},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.MultiLayerSelectLevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_level_tree",BI.MultiLayerSelectLevelTree),BI.MultiLayerSelectTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-select-tree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),isDefaultInit:!1,itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.MultiLayerSelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.multilayer_select_level_tree",isDefaultInit:b.isDefaultInit,items:b.items,itemsCreator:b.itemsCreator}),BI.createWidget({type:"bi.vertical",scrolly:!1,scrollable:!0,element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.MultiLayerSelectLevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.MultiLayerSelectTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.MultiLayerSelectTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.MultiLayerSelectTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_select_tree_popup",BI.MultiLayerSelectTreePopup),BI.MultiLayerSelectTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-first-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_first_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},isOnce:function(){return!0},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_first_plus_group_node",BI.MultiLayerSelectTreeFirstPlusGroupNode),BI.MultiLayerSelectTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-last-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_last_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_last_plus_group_node",BI.MultiLayerSelectTreeLastPlusGroupNode),BI.MultiLayerSelectTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSelectTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-select-tree-mid-plus-group-node bi-list-item-active",layer:0,id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.select_tree_mid_plus_group_node",cls:"bi-list-item-none",stopPropagation:!0,logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){a.setSelected(a.isSelected()),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},isSelected:function(){return this.node.isSelected()},setSelected:function(a){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.setSelected.apply(this,arguments),this.node.setSelected(a)},doClick:function(){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSelectTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_select_tree_mid_plus_group_node",BI.MultiLayerSelectTreeMidPlusGroupNode),BI.MultiLayerSingleTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-singletree-combo",isDefaultInit:!1,height:30,text:"",itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.MultiLayerSingleTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items}),this.popup=BI.createWidget({type:"bi.multilayer_single_tree_popup",isDefaultInit:b.isDefaultInit,items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.MultiLayerSingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.MultiLayerSingleTreeCombo.EVENT_CHANGE)})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.MultiLayerSingleTreeCombo.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_tree_combo",BI.MultiLayerSingleTreeCombo),BI.MultiLayerSingleLevelTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleLevelTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-single-level-tree",isDefaultInit:!1,items:[],itemsCreator:BI.emptyFn})},_init:function(){BI.MultiLayerSingleLevelTree.superclass._init.apply(this,arguments),this.initTree(this.options.items)},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={};if(e.layer=b,BI.isKey(e.id)||(e.id=BI.UUID()),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.multilayer_single_tree_first_plus_group_node";break;case a.length-1:f.type="bi.multilayer_single_tree_last_plus_group_node";break;default:f.type="bi.multilayer_single_tree_mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children,b+1)}else{switch(d){case a.length-1:f.type="bi.multilayer_single_tree_last_tree_leaf_item";break;default:f.type="bi.multilayer_single_tree_mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_assertId:function(a){BI.each(a,function(a,b){b.id=b.id||BI.UUID()})},initTree:function(a){var b=this,c=this.options;this.empty(),this._assertId(a),this.tree=BI.createWidget({type:"bi.custom_tree",element:this,expander:{isDefaultInit:c.isDefaultInit,el:{},popup:{type:"bi.custom_tree"}},items:this._formatItems(BI.Tree.transformToTreeFormat(a),0),itemsCreator:function(a,b){c.itemsCreator(a,function(a){b(BI.Tree.transformToTreeFormat(a),0)})},el:{type:"bi.button_tree",chooseType:BI.Selection.Single,layouts:[{type:"bi.vertical"}]}}),this.tree.on(BI.Controller.EVENT_CHANGE,function(a,c){b.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a===BI.Events.CLICK&&b.fireEvent(BI.MultiLayerSingleLevelTree.EVENT_CHANGE,c)})},populate:function(a){this.tree.populate(this._formatItems(BI.Tree.transformToTreeFormat(a),0))},setValue:function(a){this.tree.setValue(a)},getValue:function(){return this.tree.getValue()},getAllLeaves:function(){return this.tree.getAllLeaves()},getNodeById:function(a){return this.tree.getNodeById(a)},getNodeByValue:function(a){return this.tree.getNodeByValue(a)}}),BI.MultiLayerSingleLevelTree.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_level_tree",BI.MultiLayerSingleLevelTree),BI.MultiLayerSingleTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multilayer-singletree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),isDefaultInit:!1,itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.MultiLayerSingleTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.multilayer_single_level_tree",isDefaultInit:b.isDefaultInit,items:b.items,itemsCreator:b.itemsCreator}),BI.createWidget({type:"bi.vertical",scrolly:!1,scrollable:!0,element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.MultiLayerSingleLevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.MultiLayerSingleTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.MultiLayerSingleTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.MultiLayerSingleTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multilayer_single_tree_popup",BI.MultiLayerSingleTreePopup),BI.MultiLayerSingleTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-first-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:25})},_init:function(){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.first_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_single_tree_first_plus_group_node",BI.MultiLayerSingleTreeFirstPlusGroupNode),BI.MultiLayerSingleTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-last-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:25})},_init:function(){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.last_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_single_tree_last_plus_group_node",BI.MultiLayerSingleTreeLastPlusGroupNode),BI.MultiLayerSingleTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.MultiLayerSingleTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-multilayer-single-tree-mid-plus-group-node bi-list-item",layer:0,id:"",pId:"",open:!1,height:25})},_init:function(){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.node=BI.createWidget({type:"bi.mid_plus_group_node",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,open:b.open,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.node.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.node),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.node.doRedMark.apply(this.node,arguments)},unRedMark:function(){this.node.unRedMark.apply(this.node,arguments)},doClick:function(){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass.doClick.apply(this,arguments),this.node.setSelected(this.isSelected())},setOpened:function(a){BI.MultiLayerSingleTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.node)&&this.node.setOpened(a)}}),BI.shortcut("bi.multilayer_single_tree_mid_plus_group_node",BI.MultiLayerSingleTreeMidPlusGroupNode),BI.MultiLayerSingleTreeFirstTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-first-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:25})},_init:function(){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.first_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.item.doRedMark.apply(this.item,arguments)},unRedMark:function(){this.item.unRedMark.apply(this.item,arguments)},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeFirstTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_first_tree_leaf_item",BI.MultiLayerSingleTreeFirstTreeLeafItem),BI.MultiLayerSingleTreeLastTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeLastTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-last-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:25})},_init:function(){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.last_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.item.doRedMark.apply(this.item,arguments)},unRedMark:function(){this.item.unRedMark.apply(this.item,arguments)},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeLastTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_last_tree_leaf_item",BI.MultiLayerSingleTreeLastTreeLeafItem),BI.MultiLayerSingleTreeMidTreeLeafItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.MultiLayerSingleTreeMidTreeLeafItem.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-multilayer-single-tree-mid-tree-leaf-item bi-list-item-active",logic:{dynamic:!1},layer:0,id:"",pId:"",height:25})},_init:function(){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass._init.apply(this,arguments);var a=this,b=this.options;this.item=BI.createWidget({type:"bi.mid_tree_leaf_item",cls:"bi-list-item-none",logic:{dynamic:!0},id:b.id,pId:b.pId,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.item.on(BI.Controller.EVENT_CHANGE,function(b){b!==BI.Events.CLICK&&a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)});var c=[];BI.count(0,b.layer,function(){c.push({type:"bi.layout",cls:"base-line-conn-background",width:13,height:b.height})}),c.push(this.item),BI.createWidget({type:"bi.td",element:this,columnSize:BI.makeArray(b.layer,13),items:[c]})},doRedMark:function(){this.item.doRedMark.apply(this.item,arguments)},unRedMark:function(){this.item.unRedMark.apply(this.item,arguments)},doHighLight:function(){this.item.doHighLight.apply(this.item,arguments)},unHighLight:function(){this.item.unHighLight.apply(this.item,arguments)},getId:function(){return this.options.id},getPId:function(){return this.options.pId},doClick:function(){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass.doClick.apply(this,arguments),this.item.setSelected(this.isSelected())},setSelected:function(a){BI.MultiLayerSingleTreeMidTreeLeafItem.superclass.setSelected.apply(this,arguments),this.item.setSelected(a)}}),BI.shortcut("bi.multilayer_single_tree_mid_tree_leaf_item",BI.MultiLayerSingleTreeMidTreeLeafItem),BI.MultiSelectCheckPane=BI.inherit(BI.Widget,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-pane bi-background",items:[],itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,onClickContinueSelect:BI.emptyFn
+})},_init:function(){BI.MultiSelectCheckPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={},this.display=BI.createWidget({type:"bi.display_selected_list",items:b.items,itemsCreator:function(c,d){return c=BI.extend(c||{},{selectedValues:a.storeValue.value}),a.storeValue.type===BI.Selection.Multi?void d({items:BI.map(a.storeValue.value,function(a,c){var d=b.valueFormatter(c)||c;return{text:d,value:c,title:d}})}):void b.itemsCreator(c,d)}}),this.continueSelect=BI.createWidget({type:"bi.text_button",text:BI.i18nText("BI-Continue_Select"),cls:"multi-select-check-selected bi-high-light"}),this.continueSelect.on(BI.TextButton.EVENT_CHANGE,function(){b.onClickContinueSelect()}),BI.createWidget({type:"bi.vtape",element:this,items:[{height:this.constants.height,el:{type:"bi.left",cls:"multi-select-continue-select",items:[{el:{type:"bi.label",text:BI.i18nText("BI-Selected_Data")},lgap:this.constants.lgap,tgap:this.constants.tgap},{el:this.continueSelect,lgap:this.constants.lgap,tgap:this.constants.tgap}]}},{height:"fill",el:this.display}]})},setValue:function(a){this.storeValue=a||{}},empty:function(){this.display.empty()},populate:function(){this.display.populate.apply(this.display,arguments)}}),BI.shortcut("bi.multi_select_check_pane",BI.MultiSelectCheckPane),BI.DisplaySelectedList=BI.inherit(BI.Pane,{constants:{height:25,lgap:10},_defaultConfig:function(){return BI.extend(BI.DisplaySelectedList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-display-list",itemsCreator:BI.emptyFn,items:[]})},_init:function(){BI.DisplaySelectedList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.hasNext=!1,this.button_group=BI.createWidget({type:"bi.list_pane",element:this,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},items:this._createItems(b.items),chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,layouts:[{type:"bi.vertical",lgap:10}]},itemsCreator:function(c,d){b.itemsCreator(c,function(b){a.hasNext=!!b.hasNext,d(a._createItems(b.items))})},hasNext:function(){return a.hasNext}})},_createItems:function(a){return BI.createItems(a,{type:"bi.icon_text_item",cls:"cursor-default check-font display-list-item bi-tips",once:!0,invalid:!0,selected:!0,height:this.constants.height,logic:{dynamic:!0}})},empty:function(){this.button_group.empty()},populate:function(a){0===arguments.length?this.button_group.populate():this.button_group.populate(this._createItems(a))}}),BI.shortcut("bi.display_selected_list",BI.DisplaySelectedList),BI.MultiSelectCombo=BI.inherit(BI.Single,{_defaultConfig:function(){return BI.extend(BI.MultiSelectCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-combo",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,height:28})},_init:function(){BI.MultiSelectCombo.superclass._init.apply(this,arguments);var a=this,b=this.options,c=function(){BI.isKey(a._startValue)&&a.storeValue.value[a.storeValue.type===BI.Selection.All?"remove":"pushDistinct"](a._startValue),a.trigger.getSearcher().setState(a.storeValue),a.trigger.getCounter().setButtonChecked(a.storeValue)};this.storeValue={},this.requesting=!1,this.trigger=BI.createWidget({type:"bi.multi_select_trigger",height:b.height,masker:{offset:{left:1,top:1,right:2,bottom:33}},valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator(c,function(b){1===c.times&&BI.isNotNull(c.keywords)&&a.trigger.setValue(BI.deepClone(a.getValue())),d.apply(a,arguments)})}}),this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){a._setStartValue(""),this.getSearcher().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){a._setStartValue("")}),this.trigger.on(BI.MultiSelectTrigger.EVENT_PAUSE,function(){if(this.getSearcher().hasMatched()){var b=this.getSearcher().getKeyword();a._join({type:BI.Selection.Multi,value:[b]},function(){a.combo.setValue(a.storeValue),a._setStartValue(b),c(),a.populate(),a._setStartValue("")})}}),this.trigger.on(BI.MultiSelectTrigger.EVENT_SEARCHING,function(b){var d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.combo.setValue(a.storeValue),c(),a.combo.populate(),a._setStartValue("")):(a.combo.setValue(a.storeValue),c())})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){this.getCounter().setValue(a.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){a.combo.isViewVisible()||a.combo.showView()}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_select_popup_view",ref:function(){a.popup=this,a.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiSelectPopupView.EVENT_CHANGE,action:function(){a.storeValue=this.getValue(),a._adjust(function(){c()})}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM,action:function(){a._defaultState()}},{eventName:BI.MultiSelectPopupView.EVENT_CLICK_CLEAR,action:function(){a.setValue(),a._defaultState()}}],itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:function(){BI.nextTick(function(){a.combo.adjustWidth(),a.combo.adjustHeight(),a.trigger.getCounter().adjustView(),a.trigger.getSearcher().adjustView()})}},hideChecker:function(a){return 0===d.element.find(a.target).length}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){this.setValue(a.storeValue),BI.nextTick(function(){a.populate()})}),this.wants2Quit=!1,this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW,function(){a.trigger.stopEditing(),a.requesting===!0?a.wants2Quit=!0:a.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM)});var d=BI.createWidget({type:"bi.trigger_icon_button",width:b.height,height:b.height,cls:"multi-select-trigger-icon-button bi-border-left"});d.on(BI.TriggerIconButton.EVENT_CHANGE,function(){a.trigger.getCounter().hideView(),a.combo.isViewVisible()?a.combo.hideView():a.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:d,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&d.storeValue.value[d.storeValue.type===BI.Selection.Multi?"pushDistinct":"remove"](b)}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this.requesting=!0,e.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_ALL_DATA,keywords:a},function(a){var b=BI.pluck(a.items,"value");c(b)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),this.requesting=!0,d.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_ALL_DATA,keywords:[this.trigger.getKey()]},function(d){var e=BI.pluck(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&delete h[e[a]],BI.isNull(i[e[a]])&&j.push(b)}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.storeValue.type===BI.Selection.All&&c.storeValue.value.length>=c._count?c.storeValue={type:BI.Selection.Multi,value:[]}:c.storeValue.type===BI.Selection.Multi&&c.storeValue.value.length>=c._count&&(c.storeValue={type:BI.Selection.All,value:[]}),c.wants2Quit===!0&&(c.fireEvent(BI.MultiSelectCombo.EVENT_CONFIRM),c.wants2Quit=!1),c.requesting=!1}var c=this,d=this.options;this._count?(b(),a()):d.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_DATA_LENGTH},function(d){c._count=d.count,b(),a()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.popup.setStartValue(a)},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.combo.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this._count=null,this.combo.populate.apply(this.combo,arguments)}}),BI.extend(BI.MultiSelectCombo,{REQ_GET_DATA_LENGTH:0,REQ_GET_ALL_DATA:-1}),BI.MultiSelectCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.multi_select_combo",BI.MultiSelectCombo),BI.MultiSelectLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-loader",logic:{dynamic:!0},el:{height:400},valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.button_group=BI.createWidget({type:"bi.select_list",element:this,logic:b.logic,el:BI.extend({onLoaded:b.onLoaded,el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},b.el),itemsCreator:function(d,e){var f=a._startValue;a.storeValue&&(d=BI.extend(d||{},{selectedValues:BI.isKey(f)&&a.storeValue.type===BI.Selection.Multi?a.storeValue.value.concat(f):a.storeValue.value})),b.itemsCreator(d,function(g){c=g.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=BI.map(a.storeValue.value,function(c,d){var e=b.valueFormatter(d)||d;return{text:e,value:d,title:e,selected:a.storeValue.type===BI.Selection.Multi}});if(BI.isKey(a._startValue)&&!a.storeValue.value.contains(a._startValue)){var j=b.valueFormatter(f)||f;i.unshift({text:j,value:f,title:j,selected:!0})}h=a._createItems(i)}e(h.concat(a._createItems(g.items)),g.keyword||""),1===d.times&&a.storeValue&&(BI.isKey(f)&&a.storeValue.value[a.storeValue.type===BI.Selection.All?"remove":"pushDistinct"](f),a.setValue(a.storeValue)),1===d.times&&a._scrollToTop()})},hasNext:function(){return c}}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",logic:this.options.logic,height:25,selected:this.isAllSelected()})},_scrollToTop:function(){var a=this;BI.delay(function(){a.button_group.element.scrollTop(0)},30)},isAllSelected:function(){return this.button_group.isAllSelected()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},setStartValue:function(a){this._startValue=a},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.button_group.setValue(this.storeValue)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.MultiSelectLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_loader",BI.MultiSelectLoader),BI.MultiSelectPopupView=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectPopupView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-popup-view",maxWidth:"auto",minWidth:135,maxHeight:400,valueFormatter:BI.emptyFn,itemsCreator:BI.emptyFn,onLoaded:BI.emptyFn})},_init:function(){BI.MultiSelectPopupView.superclass._init.apply(this,arguments);var a=this,b=this.options;this.loader=BI.createWidget({type:"bi.multi_select_loader",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,onLoaded:b.onLoaded}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,element:this,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.loader}),this.popupView.on(BI.MultiPopupView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectPopupView.EVENT_CHANGE)}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.MultiSelectPopupView.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM)}})},isAllSelected:function(){return this.loader.isAllSelected()},setStartValue:function(a){this.loader.setStartValue(a)},setValue:function(a){this.popupView.setValue(a)},getValue:function(){return this.popupView.getValue()},populate:function(a){this.popupView.populate.apply(this.popupView,arguments)},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.MultiSelectPopupView.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectPopupView.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiSelectPopupView.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.multi_select_popup_view",BI.MultiSelectPopupView),BI.MultiSelectTrigger=BI.inherit(BI.Trigger,{constants:{height:14,rgap:4,lgap:4},_defaultConfig:function(){return BI.extend(BI.MultiSelectTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-trigger bi-border",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,searcher:{},switcher:{},adapter:null,masker:{}})},_init:function(){BI.MultiSelectTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options;b.height&&this.setHeight(b.height-2),this.searcher=BI.createWidget(b.searcher,{type:"bi.multi_select_searcher",height:b.height,itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,popup:{},adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.MultiSelectSearcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_START)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_PAUSE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_PAUSE)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_SEARCHING,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_SEARCHING,arguments)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_STOP)}),this.searcher.on(BI.MultiSelectSearcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_CHANGE,arguments)}),this.numberCounter=BI.createWidget(b.switcher,{type:"bi.multi_select_check_selected_switcher",valueFormatter:b.valueFormatter,itemsCreator:b.itemsCreator,adapter:b.adapter,masker:b.masker}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK)}),this.numberCounter.on(BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW)});var c=BI.createWidget({type:"bi.right_vertical_adapt",hgap:4,items:[{el:this.numberCounter}]}),d=BI.createWidget({type:"bi.htape",element:this,items:[{el:this.searcher,width:"fill"},{el:c,width:0},{el:BI.createWidget(),width:30}]});this.numberCounter.on(BI.Events.VIEW,function(b){BI.nextTick(function(){d.attr("items")[1].width=b===!0?a.numberCounter.element.outerWidth()+8:0,d.resize()})}),this.element.click(function(b){a.element.__isMouseInBounds__(b)&&!a.numberCounter.element.__isMouseInBounds__(b)&&a.numberCounter.hideView()})},getCounter:function(){return this.numberCounter},getSearcher:function(){return this.searcher},stopEditing:function(){this.searcher.stopSearch(),this.numberCounter.hideView()},setAdapter:function(a){this.searcher.setAdapter(a),this.numberCounter.setAdapter(a)},setValue:function(a){this.searcher.setValue(a),this.numberCounter.setValue(a)},getKey:function(){return this.searcher.getKey()},getValue:function(){return this.searcher.getValue()}}),BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK="EVENT_TRIGGER_CLICK",BI.MultiSelectTrigger.EVENT_COUNTER_CLICK="EVENT_COUNTER_CLICK",BI.MultiSelectTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectTrigger.EVENT_START="EVENT_START",BI.MultiSelectTrigger.EVENT_STOP="EVENT_STOP",BI.MultiSelectTrigger.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectTrigger.EVENT_SEARCHING="EVENT_SEARCHING",BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW="EVENT_BEFORE_COUNTER_POPUPVIEW",BI.shortcut("bi.multi_select_trigger",BI.MultiSelectTrigger),BI.MultiSelectSearchLoader=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectSearchLoader.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-search-loader",itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectSearchLoader.superclass._init.apply(this,arguments);var a=this,b=this.options,c=!1;this.button_group=BI.createWidget({type:"bi.select_list",element:this,logic:{dynamic:!1},el:{tipText:BI.i18nText("BI-No_Select"),el:{type:"bi.loader",isDefaultInit:!1,logic:{dynamic:!0,scrolly:!0},el:{chooseType:BI.ButtonGroup.CHOOSE_TYPE_MULTI,behaviors:{redmark:function(){return!0}},layouts:[{type:"bi.vertical"}]}}},itemsCreator:function(d,e){a.storeValue&&(d=BI.extend(d||{},{selectedValues:a.storeValue.value})),b.itemsCreator(d,function(f){var g=f.keyword=b.keywordGetter();c=f.hasNext;var h=[];if(1===d.times&&a.storeValue){var i=a._filterValues(a.storeValue);h=a._createItems(i)}e(h.concat(a._createItems(f.items)),g),1===d.times&&a.storeValue&&a.setValue(a.storeValue)})},hasNext:function(){return c}}),this.button_group.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.button_group.on(BI.SelectList.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectSearchLoader.EVENT_CHANGE,arguments)})},_createItems:function(a){return BI.createItems(a,{type:"bi.multi_select_item",logic:{dynamic:!1},height:25,selected:this.isAllSelected()})},isAllSelected:function(){return this.button_group.isAllSelected()},_filterValues:function(a){var b=this.options,c=b.keywordGetter(),d=BI.deepClone(a.value)||[],e=BI.map(d,function(a,c){return{text:b.valueFormatter(c)||c,value:c}});if(BI.isKey(c)){var f=BI.Func.getSearchResult(e,c);d=f.matched.concat(f.finded)}return BI.map(d,function(b,c){return{text:c.text,title:c.text,value:c.value,selected:a.type===BI.Selection.All}})},setValue:function(a){this.storeValue=BI.deepClone(a),this.button_group.setValue(a)},getValue:function(){return this.button_group.getValue()},getAllButtons:function(){return this.button_group.getAllButtons()},empty:function(){this.button_group.empty()},populate:function(a){this.button_group.populate.apply(this.button_group,arguments)},resetHeight:function(a){this.button_group.resetHeight(a)},resetWidth:function(a){this.button_group.resetWidth(a)}}),BI.MultiSelectSearchLoader.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_search_loader",BI.MultiSelectSearchLoader),BI.MultiSelectSearchPane=BI.inherit(BI.Widget,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiSelectSearchPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-search-pane bi-card",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.MultiSelectSearchPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tooltipClick=BI.createWidget({type:"bi.label",invisible:!0,text:BI.i18nText("BI-Click_Blank_To_Select"),cls:"multi-select-toolbar",height:this.constants.height}),this.loader=BI.createWidget({type:"bi.multi_select_search_loader",keywordGetter:b.keywordGetter,valueFormatter:b.valueFormatter,itemsCreator:function(c,d){b.itemsCreator.apply(a,[c,function(c){d(c),a.setKeyword(b.keywordGetter())}])}}),this.loader.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.resizer=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.tooltipClick,height:0},{el:this.loader}]}),this.tooltipClick.setVisible(!1)},setKeyword:function(a){var b,c=this.loader.getAllButtons().length>0&&(b=this.loader.getAllButtons()[0])&&a===b.getValue();c!==this.tooltipClick.isVisible()&&(this.tooltipClick.setVisible(c),this.resizer.attr("items")[0].height=c?this.constants.height:0,this.resizer.resize())},isAllSelected:function(){return this.loader.isAllSelected()},hasMatched:function(){return this.tooltipClick.isVisible()},setValue:function(a){this.loader.setValue(a)},getValue:function(){return this.loader.getValue()},empty:function(){this.loader.empty()},populate:function(a){this.loader.populate.apply(this.loader,arguments)}}),BI.MultiSelectSearchPane.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_search_pane",BI.MultiSelectSearchPane),BI.MultiSelectCheckSelectedButton=BI.inherit(BI.Single,{_const:{checkSelected:BI.i18nText("BI-Check_Selected")},_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckSelectedButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-selected-button bi-high-light",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectCheckSelectedButton.superclass._init.apply(this,arguments);var a=this;this.numberCounter=BI.createWidget({type:"bi.text_button",element:this,hgap:4,text:"0",textAlign:"center",textHeight:15}),this.numberCounter.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.numberCounter.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedButton.EVENT_CHANGE,arguments)}),this.numberCounter.element.hover(function(){a.numberCounter.setTag(a.numberCounter.getText()),a.numberCounter.setText(a._const.checkSelected)},function(){a.numberCounter.setText(a.numberCounter.getTag())}),this.setVisible(!1)},setValue:function(a){var b=this,c=this.options;return a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[]),a.type===BI.Selection.All?void c.itemsCreator({type:BI.MultiSelectCombo.REQ_GET_DATA_LENGTH},function(c){var d=c.count-a.value.length;BI.nextTick(function(){b.numberCounter.setText(d),b.setVisible(d>0)})}):void BI.nextTick(function(){b.numberCounter.setText(a.value.length),b.setVisible(a.value.length>0)})},getValue:function(){}}),BI.MultiSelectCheckSelectedButton.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_select_check_selected_button",BI.MultiSelectCheckSelectedButton),BI.MultiSelectEditor=BI.inherit(BI.Widget,{_const:{checkSelected:BI.i18nText("BI-Check_Selected")},_defaultConfig:function(){return BI.extend(BI.MultiSelectEditor.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-editor",el:{}})},_init:function(){BI.MultiSelectEditor.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.state_editor",element:this,height:b.height,watermark:BI.i18nText("BI-Basic_Search"),allowBlank:!0}),this.editor.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.editor.on(BI.StateEditor.EVENT_PAUSE,function(){a.fireEvent(BI.MultiSelectEditor.EVENT_PAUSE)}),this.editor.on(BI.StateEditor.EVENT_CLICK_LABEL,function(){})},focus:function(){this.editor.focus()},blur:function(){this.editor.blur()},setState:function(a){this.editor.setState(a)},setValue:function(a){this.editor.setValue(a)},getValue:function(){var a=this.editor.getState();return BI.isArray(a)&&a.length>0?a[a.length-1]:""},getKeywords:function(){var a=this.editor.getLastValidValue(),b=a.match(/[\S]+/g);return BI.isEndWithBlank(a)?b.concat([" "]):b},populate:function(a){}}),BI.MultiSelectEditor.EVENT_PAUSE="MultiSelectEditor.EVENT_PAUSE",BI.shortcut("bi.multi_select_editor",BI.MultiSelectEditor),BI.MultiSelectSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-searcher",itemsCreator:BI.emptyFn,el:{},popup:{},valueFormatter:BI.emptyFn,adapter:null,masker:{}})},_init:function(){BI.MultiSelectSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget(b.el,{type:"bi.multi_select_editor",height:b.height}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,height:b.height,isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},el:this.editor,popup:BI.extend({type:"bi.multi_select_search_pane",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){c.keyword=a.editor.getValue(),this.setKeyword(c.keyword),b.itemsCreator(c,d)}},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiSelectSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectSearcher.EVENT_CHANGE,arguments)}),this.searcher.on(BI.Searcher.EVENT_SEARCHING,function(){var b=this.getKeywords();a.fireEvent(BI.MultiSelectSearcher.EVENT_SEARCHING,b)})},adjustView:function(){this.searcher.adjustView()},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setAdapter:function(a){this.searcher.setAdapter(a)},setState:function(a){var b=this.options;a||(a={}),a.value||(a.value=[]),a.type===BI.Selection.All?1===BI.size(a.assist)?this.editor.setState(b.valueFormatter(a.assist[0]+"")||a.assist[0]+""):this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.All):1===BI.size(a.value)?this.editor.setState(b.valueFormatter(a.value[0]+"")||a.value[0]+""):this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.None)},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiSelectSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiSelectSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiSelectSearcher.EVENT_START="EVENT_START",BI.MultiSelectSearcher.EVENT_STOP="EVENT_STOP",BI.MultiSelectSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.MultiSelectSearcher.EVENT_SEARCHING="EVENT_SEARCHING",BI.shortcut("bi.multi_select_searcher",BI.MultiSelectSearcher),BI.MultiSelectCheckSelectedSwitcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectCheckSelectedSwitcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-check-selected-switcher",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn,el:{},popup:{},adapter:null,masker:{}})},_init:function(){BI.MultiSelectCheckSelectedSwitcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.button=BI.createWidget(b.el,{type:"bi.multi_select_check_selected_button",itemsCreator:b.itemsCreator}),this.button.on(BI.Events.VIEW,function(){a.fireEvent(BI.Events.VIEW,arguments)}),this.switcher=BI.createWidget({type:"bi.switcher",toggle:!1,element:this,el:this.button,popup:BI.extend({type:"bi.multi_select_check_pane",valueFormatter:b.valueFormatter,itemsCreator:b.itemsCreator,onClickContinueSelect:function(){a.switcher.hideView()}},b.popup),adapter:b.adapter,masker:b.masker}),this.switcher.on(BI.Switcher.EVENT_TRIGGER_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE)}),this.switcher.on(BI.Switcher.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW)}),this.switcher.on(BI.Switcher.EVENT_AFTER_POPUPVIEW,function(){var a=this;BI.nextTick(function(){a.populate()})}),this.switcher.element.click(function(a){a.stopPropagation()})},adjustView:function(){this.switcher.adjustView()},hideView:function(){this.switcher.empty(),this.switcher.hideView()},setAdapter:function(a){this.switcher.setAdapter(a)},setValue:function(a){this.switcher.setValue(a)},setButtonChecked:function(a){this.button.setValue(a)},getValue:function(){},populate:function(a){this.switcher.populate.apply(this.switcher,arguments)}}),BI.MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE="MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE",BI.MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW="MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.multi_select_check_selected_switcher",BI.MultiSelectCheckSelectedSwitcher),BI.MultiSelectList=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectList.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-list",itemsCreator:BI.emptyFn,valueFormatter:BI.emptyFn})},_init:function(){BI.MultiSelectList.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={};var c=function(){BI.isKey(a._startValue)&&a.storeValue.value[a.storeValue.type===BI.Selection.All?"remove":"pushDistinct"](a._startValue)};this.adapter=BI.createWidget({type:"bi.multi_select_loader",cls:"popup-multi-select-list bi-border-left bi-border-right bi-border-bottom",itemsCreator:b.itemsCreator,valueFormatter:b.valueFormatter,el:{height:""}}),this.adapter.on(BI.MultiSelectLoader.EVENT_CHANGE,function(){a.storeValue=this.getValue(),a._adjust(function(){c(),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)})}),this.searcherPane=BI.createWidget({type:"bi.multi_select_search_pane",cls:"bi-border-left bi-border-right bi-border-bottom",valueFormatter:b.valueFormatter,keywordGetter:function(){return a.trigger.getKeyword()},itemsCreator:function(c,d){c.keyword=a.trigger.getKeyword(),this.setKeyword(c.keyword),b.itemsCreator(c,d)}}),this.searcherPane.setVisible(!1),this.trigger=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(a,b){b()},adapter:this.adapter,popup:this.searcherPane,height:200,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane(),a._setStartValue(""),this.setValue(BI.deepClone(a.storeValue))}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),a._setStartValue(""),a.adapter.setValue(a.storeValue),a.adapter.populate()}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){if(this.hasMatched()){var b=this.getKeyword();a._join({type:BI.Selection.Multi,value:[b]},function(){a._showAdapter(),a.adapter.setValue(a.storeValue),a._setStartValue(b),c(),a._setStartValue(""),a.fireEvent(BI.MultiSelectList.EVENT_CHANGE)})}else a._showAdapter()}},{eventName:BI.Searcher.EVENT_SEARCHING,action:function(){var b=this.getKeyword(),d=BI.last(b);b=BI.initial(b||[]),b.length>0&&a._joinKeywords(b,function(){BI.isEndWithBlank(d)?(a.adapter.setValue(a.storeValue),c(),a.adapter.populate(),a._setStartValue("")):(a.adapter.setValue(a.storeValue),c())})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(b,d){d instanceof BI.MultiSelectBar?a._joinAll(this.getValue(),function(){c()}):a._join(this.getValue(),function(){c()})}}]}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.trigger,height:30},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:30,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){
+this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},_defaultState:function(){this.trigger.stopEditing()},_assertValue:function(a){a||(a={}),a.type||(a.type=BI.Selection.Multi),a.value||(a.value=[])},_makeMap:function(a){return BI.makeObject(a||[])},_joinKeywords:function(a,b){function c(c){var e=d._makeMap(c);BI.each(a,function(a,b){BI.isNotNull(e[b])&&d.storeValue.value[d.storeValue.type===BI.Selection.Multi?"pushDistinct":"remove"](b)}),d._adjust(b)}var d=this,e=this.options;this._assertValue(this.storeValue),this._allData?c(this._allData):e.itemsCreator({type:BI.MultiSelectList.REQ_GET_ALL_DATA},function(a){d._allData=BI.pluck(a.items,"value"),c(d._allData)})},_joinAll:function(a,b){var c=this,d=this.options;this._assertValue(a),d.itemsCreator({type:BI.MultiSelectList.REQ_GET_ALL_DATA,keyword:c.trigger.getKeyword()},function(d){var e=BI.pluck(d.items,"value");if(c.storeValue.type===a.type){var f=!1,g=c._makeMap(c.storeValue.value);return BI.each(e,function(a,b){BI.isNotNull(g[b])&&(f=!0,delete g[b])}),f&&(c.storeValue.value=BI.values(g)),void c._adjust(b)}var h=c._makeMap(c.storeValue.value),i=c._makeMap(a.value),j=[];BI.each(e,function(a,b){BI.isNotNull(h[e[a]])&&delete h[e[a]],BI.isNull(i[e[a]])&&j.push(b)}),c.storeValue.value=j.concat(BI.values(h)),c._adjust(b)})},_adjust:function(a){function b(){c.storeValue.type===BI.Selection.All&&c.storeValue.value.length>=c._count?c.storeValue={type:BI.Selection.Multi,value:[]}:c.storeValue.type===BI.Selection.Multi&&c.storeValue.value.length>=c._count&&(c.storeValue={type:BI.Selection.All,value:[]})}var c=this,d=this.options;this._count?(b(),a()):d.itemsCreator({type:BI.MultiSelectList.REQ_GET_DATA_LENGTH},function(d){c._count=d.count,b(),a()})},_join:function(a,b){var c=this;this.options;if(this._assertValue(a),this._assertValue(this.storeValue),this.storeValue.type===a.type){var d=this._makeMap(this.storeValue.value);BI.each(a.value,function(a,b){d[b]||(c.storeValue.value.push(b),d[b]=b)});var e=!1;return BI.each(a.assist,function(a,b){BI.isNotNull(d[b])&&(e=!0,delete d[b])}),e&&(this.storeValue.value=BI.values(d)),void c._adjust(b)}this._joinAll(a,b)},_setStartValue:function(a){this._startValue=a,this.adapter.setStartValue(a)},isAllSelected:function(){return this.adapter.isAllSelected()},resize:function(){},setValue:function(a){this.storeValue=a||{},this._assertValue(this.storeValue),this.adapter.setValue(this.storeValue),this.trigger.setValue(this.storeValue)},getValue:function(){return BI.deepClone(this.storeValue)},populate:function(){this._count=null,this._allData=null,this.adapter.populate.apply(this.adapter,arguments),this.trigger.populate.apply(this.trigger,arguments)}}),BI.extend(BI.MultiSelectList,{REQ_GET_DATA_LENGTH:0,REQ_GET_ALL_DATA:-1}),BI.MultiSelectList.EVENT_CHANGE="BI.MultiSelectList.EVENT_CHANGE",BI.shortcut("bi.multi_select_list",BI.MultiSelectList),BI.MultiSelectTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-tree",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectTree.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue={value:{}},this.adapter=BI.createWidget({type:"bi.multi_select_tree_popup",itemsCreator:b.itemsCreator}),this.adapter.on(BI.MultiSelectTreePopup.EVENT_CHANGE,function(){a.searcher.isSearching()?a.storeValue={value:a.searcherPane.getValue()}:a.storeValue={value:a.adapter.getValue()},a.setSelectedValue(a.storeValue.value),a.fireEvent(BI.MultiSelectTree.EVENT_CHANGE)}),this.searcherPane=BI.createWidget({type:"bi.multi_tree_search_pane",cls:"bi-border-left bi-border-right bi-border-bottom",keywordGetter:function(){return a.searcher.getKeyword()},itemsCreator:function(c,d){c.keyword=a.searcher.getKeyword(),b.itemsCreator(c,d)}}),this.searcherPane.setVisible(!1),this.searcher=BI.createWidget({type:"bi.searcher",isAutoSearch:!1,isAutoSync:!1,onSearch:function(b,c){c({keyword:a.searcher.getKeyword()})},adapter:this.adapter,popup:this.searcherPane,masker:!1,listeners:[{eventName:BI.Searcher.EVENT_START,action:function(){a._showSearcherPane()}},{eventName:BI.Searcher.EVENT_STOP,action:function(){a._showAdapter(),BI.nextTick(function(){a.adapter.populate()})}},{eventName:BI.Searcher.EVENT_CHANGE,action:function(){a.searcher.isSearching()?a.storeValue={value:a.searcherPane.getValue()}:a.storeValue={value:a.adapter.getValue()},a.setSelectedValue(a.storeValue.value),a.fireEvent(BI.MultiSelectTree.EVENT_CHANGE)}},{eventName:BI.Searcher.EVENT_PAUSE,action:function(){a._showAdapter()}}]}),BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.searcher,height:30},{el:this.adapter,height:"fill"}]}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.searcherPane,top:30,bottom:0,left:0,right:0}]})},_showAdapter:function(){this.adapter.setVisible(!0),this.searcherPane.setVisible(!1)},_showSearcherPane:function(){this.searcherPane.setVisible(!0),this.adapter.setVisible(!1)},resize:function(){},setSelectedValue:function(a){this.storeValue.value=a||{},this.adapter.setSelectedValue(a),this.searcherPane.setSelectedValue(a),this.searcher.setValue({value:a||{}})},setValue:function(a){this.adapter.setValue(a)},stopSearch:function(){this.searcher.stopSearch()},updateValue:function(a){this.adapter.updateValue(a)},getValue:function(){return this.storeValue.value},populate:function(){this.searcher.populate.apply(this.searcher,arguments),this.adapter.populate.apply(this.adapter,arguments)}}),BI.MultiSelectTree.EVENT_CHANGE="BI.MultiSelectTree.EVENT_CHANGE",BI.shortcut("bi.multi_select_tree",BI.MultiSelectTree),BI.MultiSelectTreePopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiSelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-select-tree-popup bi-border-left bi-border-right bi-border-bottom",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiSelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.popup=BI.createWidget({type:"bi.async_tree",element:this,itemsCreator:b.itemsCreator}),this.popup.on(BI.TreeView.EVENT_AFTERINIT,function(){a.fireEvent(BI.MultiSelectTreePopup.EVENT_AFTER_INIT)}),this.popup.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectTreePopup.EVENT_CHANGE)})},hasChecked:function(){return this.popup.hasChecked()},getValue:function(){return this.popup.getValue()},setValue:function(a){a||(a={}),this.popup.setValue(a)},setSelectedValue:function(a){a||(a={}),this.popup.setSelectedValue(a)},updateValue:function(a){this.popup.updateValue(a),this.popup.refresh()},populate:function(a){this.popup.stroke(a)}}),BI.MultiSelectTreePopup.EVENT_AFTER_INIT="BI.MultiSelectTreePopup.EVENT_AFTER_INIT",BI.MultiSelectTreePopup.EVENT_CHANGE="BI.MultiSelectTreePopup.EVENT_CHANGE",BI.shortcut("bi.multi_select_tree_popup",BI.MultiSelectTreePopup),BI.MultiTreeCheckPane=BI.inherit(BI.Pane,{constants:{height:25,lgap:10,tgap:5},_defaultConfig:function(){return BI.extend(BI.MultiTreeCheckPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-check-pane bi-background",onClickContinueSelect:BI.emptyFn})},_init:function(){BI.MultiTreeCheckPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.selectedValues={};var c=BI.createWidget({type:"bi.text_button",text:BI.i18nText("BI-Continue_Select"),cls:"multi-tree-check-selected"});c.on(BI.TextButton.EVENT_CHANGE,function(){b.onClickContinueSelect(),BI.nextTick(function(){a.empty()})});var d=BI.createWidget({type:"bi.left",cls:"multi-tree-continue-select",items:[{el:{type:"bi.label",text:BI.i18nText("BI-Selected_Data")},lgap:this.constants.lgap,tgap:this.constants.tgap},{el:c,lgap:this.constants.lgap,tgap:this.constants.tgap}]});this.display=BI.createWidget({type:"bi.display_tree",cls:"bi-multi-tree-display",itemsCreator:function(a,c){a.type=BI.TreeView.REQ_TYPE_GET_SELECTED_DATA,b.itemsCreator(a,c)}}),this.display.on(BI.Events.AFTERINIT,function(){a.fireEvent(BI.Events.AFTERINIT)}),this.display.on(BI.TreeView.EVENT_INIT,function(){d.setVisible(!1)}),this.display.on(BI.TreeView.EVENT_AFTERINIT,function(){d.setVisible(!0)}),BI.createWidget({type:"bi.vtape",element:this,items:[{height:this.constants.height,el:d},{height:"fill",el:this.display}]})},empty:function(){this.display.empty()},populate:function(a){this.display.stroke(a)},setValue:function(a){a||(a={}),this.display.setSelectedValue(a.value)},getValue:function(){}}),BI.MultiTreeCheckPane.EVENT_CONTINUE_CLICK="EVENT_CONTINUE_CLICK",BI.shortcut("bi.multi_tree_check_pane",BI.MultiTreeCheckPane),BI.MultiTreeCombo=BI.inherit(BI.Single,{constants:{offset:{top:1,left:1,right:2,bottom:33}},_defaultConfig:function(){return BI.extend(BI.MultiTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-combo",itemsCreator:BI.emptyFn,height:25})},_init:function(){function a(){h()?b.storeValue={value:b.trigger.getValue()}:i()&&(b.storeValue={value:b.combo.getValue()}),b.trigger.setValue(b.storeValue)}BI.MultiTreeCombo.superclass._init.apply(this,arguments);var b=this,c=this.options,d=!1,e=!1;this.trigger=BI.createWidget({type:"bi.multi_select_trigger",height:c.height,masker:{offset:this.constants.offset},searcher:{type:"bi.multi_tree_searcher",itemsCreator:c.itemsCreator},switcher:{el:{type:"bi.multi_tree_check_selected_button"},popup:{type:"bi.multi_tree_check_pane",itemsCreator:c.itemsCreator}}}),this.combo=BI.createWidget({type:"bi.combo",toggle:!1,el:this.trigger,adjustLength:1,popup:{type:"bi.multi_tree_popup_view",ref:function(){b.popup=this,b.trigger.setAdapter(this)},listeners:[{eventName:BI.MultiTreePopup.EVENT_AFTERINIT,action:function(){b.trigger.getCounter().adjustView(),d=!0,e===!0&&a()}},{eventName:BI.MultiTreePopup.EVENT_CHANGE,action:function(){f=!0;var a={type:BI.Selection.Multi,value:this.hasChecked()?{1:1}:{}};b.trigger.getSearcher().setState(a),b.trigger.getCounter().setButtonChecked(a)}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CONFIRM,action:function(){b.combo.hideView()}},{eventName:BI.MultiTreePopup.EVENT_CLICK_CLEAR,action:function(){g=!0,b.setValue(),b._defaultState()}}],itemsCreator:c.itemsCreator,onLoaded:function(){BI.nextTick(function(){b.trigger.getCounter().adjustView(),b.trigger.getSearcher().adjustView()})}},hideChecker:function(a){return 0===j.element.find(a.target).length}}),this.storeValue={value:{}};var f=!1,g=!1,h=function(){return b.trigger.getSearcher().isSearching()},i=function(){return b.combo.isViewVisible()};this.trigger.on(BI.MultiSelectTrigger.EVENT_START,function(){b.storeValue={value:b.combo.getValue()},this.setValue(b.storeValue)}),this.trigger.on(BI.MultiSelectTrigger.EVENT_STOP,function(){b.storeValue={value:this.getValue()},b.combo.setValue(b.storeValue),BI.nextTick(function(){i()&&b.combo.populate()})}),this.trigger.on(BI.MultiSelectTrigger.EVENT_BEFORE_COUNTER_POPUPVIEW,function(){e===!1&&(e=!0),d===!0&&(e=null,a())}),this.trigger.on(BI.MultiSelectTrigger.EVENT_TRIGGER_CLICK,function(){b.combo.toggle()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_COUNTER_CLICK,function(){b.combo.isViewVisible()||b.combo.showView()}),this.trigger.on(BI.MultiSelectTrigger.EVENT_CHANGE,function(){var a={type:BI.Selection.Multi,value:this.getSearcher().hasChecked()?{1:1}:{}};this.getSearcher().setState(a),this.getCounter().setButtonChecked(a)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){h()||(f===!0&&(b.storeValue={value:b.combo.getValue()},f=!1),b.combo.setValue(b.storeValue),b.populate())}),this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW,function(){h()?(b.trigger.stopEditing(),b.fireEvent(BI.MultiTreeCombo.EVENT_CONFIRM)):i()&&(b.trigger.stopEditing(),b.storeValue={value:b.combo.getValue()},g===!0&&(b.storeValue={value:{}}),b.fireEvent(BI.MultiTreeCombo.EVENT_CONFIRM)),g=!1,f=!1});var j=BI.createWidget({type:"bi.trigger_icon_button",width:c.height,height:c.height,cls:"multi-select-trigger-icon-button bi-border-left"});j.on(BI.TriggerIconButton.EVENT_CHANGE,function(){b.trigger.getCounter().hideView(),b.combo.isViewVisible()?b.combo.hideView():b.combo.showView()}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.combo,left:0,right:0,top:0,bottom:0},{el:j,right:0,top:0,bottom:0}]})},_defaultState:function(){this.trigger.stopEditing(),this.combo.hideView()},setValue:function(a){this.storeValue.value=a||{},this.combo.setValue({value:a||{}})},getValue:function(){return this.storeValue.value},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.MultiTreeCombo.EVENT_CONFIRM="MultiTreeCombo.EVENT_CONFIRM",BI.shortcut("bi.multi_tree_combo",BI.MultiTreeCombo),BI.MultiTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-popup",maxWidth:"auto",minWidth:100,maxHeight:400,onLoaded:BI.emptyFn})},_init:function(){BI.MultiTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.selectedValues={},this.tree=BI.createWidget({type:"bi.async_tree",height:400,cls:"popup-view-tree",itemsCreator:b.itemsCreator,onLoaded:b.onLoaded}),this.popupView=BI.createWidget({type:"bi.multi_popup_view",element:this,stopPropagation:!1,maxWidth:b.maxWidth,minWidth:b.minWidth,maxHeight:b.maxHeight,buttons:[BI.i18nText("BI-Basic_Clears"),BI.i18nText("BI-Basic_Sure")],el:this.tree}),this.popupView.on(BI.MultiPopupView.EVENT_CLICK_TOOLBAR_BUTTON,function(b){switch(b){case 0:a.fireEvent(BI.MultiTreePopup.EVENT_CLICK_CLEAR);break;case 1:a.fireEvent(BI.MultiTreePopup.EVENT_CLICK_CONFIRM)}}),this.tree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreePopup.EVENT_CHANGE)}),this.tree.on(BI.TreeView.EVENT_AFTERINIT,function(){a.fireEvent(BI.MultiTreePopup.EVENT_AFTERINIT)})},getValue:function(){return this.tree.getValue()},setValue:function(a){a||(a={}),this.tree.setSelectedValue(a.value)},populate:function(a){this.tree.stroke(a)},hasChecked:function(){return this.tree.hasChecked()},resetHeight:function(a){this.popupView.resetHeight(a)},resetWidth:function(a){this.popupView.resetWidth(a)}}),BI.MultiTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreePopup.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiTreePopup.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.MultiTreePopup.EVENT_AFTERINIT="EVENT_AFTERINIT",BI.shortcut("bi.multi_tree_popup_view",BI.MultiTreePopup),BI.MultiTreeSearchPane=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.MultiTreeSearchPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-search-pane bi-card",itemsCreator:BI.emptyFn,keywordGetter:BI.emptyFn})},_init:function(){BI.MultiTreeSearchPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.partTree=BI.createWidget({type:"bi.part_tree",element:this,tipText:BI.i18nText("BI-No_Select"),itemsCreator:function(a,c){a.keyword=b.keywordGetter(),b.itemsCreator(a,c)}}),this.partTree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.partTree.on(BI.TreeView.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreeSearchPane.EVENT_CHANGE)})},hasChecked:function(){return this.partTree.hasChecked()},setValue:function(a){this.setSelectedValue(a.value)},setSelectedValue:function(a){a||(a={}),this.partTree.setSelectedValue(a)},getValue:function(){return this.partTree.getValue()},empty:function(){this.partTree.empty()},populate:function(a){this.partTree.stroke.apply(this.partTree,arguments)}}),BI.MultiTreeSearchPane.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreeSearchPane.EVENT_CLICK_CONFIRM="EVENT_CLICK_CONFIRM",BI.MultiTreeSearchPane.EVENT_CLICK_CLEAR="EVENT_CLICK_CLEAR",BI.shortcut("bi.multi_tree_search_pane",BI.MultiTreeSearchPane),BI.MultiTreeCheckSelectedButton=BI.inherit(BI.Single,{_const:{checkSelected:BI.i18nText("BI-Check_Selected")},_defaultConfig:function(){return BI.extend(BI.MultiTreeCheckSelectedButton.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-check-selected-button",itemsCreator:BI.emptyFn})},_init:function(){BI.MultiTreeCheckSelectedButton.superclass._init.apply(this,arguments);var a=this;this.indicator=BI.createWidget({type:"bi.icon_button",cls:"check-font trigger-check-selected",width:15,height:15,stopPropagation:!0}),this.checkSelected=BI.createWidget({type:"bi.text_button",cls:"trigger-check-selected",invisible:!0,hgap:4,text:this._const.checkSelected,textAlign:"center",textHeight:15}),this.checkSelected.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.checkSelected.on(BI.TextButton.EVENT_CHANGE,function(){a.fireEvent(BI.MultiSelectCheckSelectedButton.EVENT_CHANGE,arguments)}),BI.createWidget({type:"bi.horizontal",element:this,items:[this.indicator,this.checkSelected]}),this.element.hover(function(){a.indicator.setVisible(!1),a.checkSelected.setVisible(!0)},function(){a.indicator.setVisible(!0),a.checkSelected.setVisible(!1)}),this.setVisible(!1)},setValue:function(a){a||(a={}),this.setVisible(BI.size(a.value)>0)}}),BI.MultiTreeCheckSelectedButton.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.multi_tree_check_selected_button",BI.MultiTreeCheckSelectedButton),BI.MultiTreeSearcher=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.MultiTreeSearcher.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-multi-tree-searcher",itemsCreator:BI.emptyFn,popup:{},adapter:null,masker:{}})},_init:function(){BI.MultiTreeSearcher.superclass._init.apply(this,arguments);var a=this,b=this.options;this.editor=BI.createWidget({type:"bi.multi_select_editor",height:b.height,el:{type:"bi.simple_state_editor",height:b.height}}),this.searcher=BI.createWidget({type:"bi.searcher",element:this,isAutoSearch:!1,isAutoSync:!1,onSearch:function(b,c){c({keyword:a.editor.getValue()})},el:this.editor,popup:BI.extend({type:"bi.multi_tree_search_pane",keywordGetter:function(){return a.editor.getValue()},itemsCreator:function(c,d){c.keyword=a.editor.getValue(),b.itemsCreator(c,d)}},b.popup),adapter:b.adapter,masker:b.masker}),this.searcher.on(BI.Searcher.EVENT_START,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_START)}),this.searcher.on(BI.Searcher.EVENT_PAUSE,function(){this.hasMatched(),a.fireEvent(BI.MultiTreeSearcher.EVENT_PAUSE)}),this.searcher.on(BI.Searcher.EVENT_STOP,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_STOP)}),this.searcher.on(BI.Searcher.EVENT_CHANGE,function(){a.fireEvent(BI.MultiTreeSearcher.EVENT_CHANGE,arguments)})},adjustView:function(){this.searcher.adjustView()},setAdapter:function(a){this.searcher.setAdapter(a)},isSearching:function(){return this.searcher.isSearching()},stopSearch:function(){this.searcher.stopSearch()},getKeyword:function(){return this.editor.getValue()},hasMatched:function(){return this.searcher.hasMatched()},hasChecked:function(){return this.searcher.getView()&&this.searcher.getView().hasChecked()},setState:function(a){a||(a={}),a.value||(a.value=[]),a.type===BI.Selection.All?this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.All):this.editor.setState(BI.size(a.value)>0?BI.Selection.Multi:BI.Selection.None)},setValue:function(a){this.setState(a),this.searcher.setValue(a)},getKey:function(){return this.editor.getValue()},getValue:function(){return this.searcher.getValue()},populate:function(a){this.searcher.populate.apply(this.searcher,arguments)}}),BI.MultiTreeSearcher.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.MultiTreeSearcher.EVENT_CHANGE="EVENT_CHANGE",BI.MultiTreeSearcher.EVENT_START="EVENT_START",BI.MultiTreeSearcher.EVENT_STOP="EVENT_STOP",BI.MultiTreeSearcher.EVENT_PAUSE="EVENT_PAUSE",BI.shortcut("bi.multi_tree_searcher",BI.MultiTreeSearcher),BI.NumericalInterval=BI.inherit(BI.Single,{constants:{typeError:"typeBubble",numberError:"numberBubble",signalError:"signalBubble",editorWidth:114,columns:5,width:30,rows:1,numberErrorCls:"number-error",border:1,less:0,less_equal:1,numTip:""},_defaultConfig:function(){var a=BI.NumericalInterval.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-numerical-interval",height:25,validation:"valid"})},_init:function(){var a=this,b=this.constants,c=this.options;BI.NumericalInterval.superclass._init.apply(this,arguments),this.smallEditor=BI.createWidget({type:"bi.editor",height:c.height-2,watermark:BI.i18nText("BI-Basic_Unrestricted"),allowBlank:!0,value:c.min,level:"warning",tipType:"warning",quitChecker:function(){return!1},validationChecker:function(c){return!!BI.isNumeric(c)||(a.smallEditorBubbleType=b.typeError,!1)},cls:"numerical-interval-small-editor bi-border-top bi-border-bottom bi-border-left"}),this.smallTip=BI.createWidget({type:"bi.label",text:c.numTip,height:c.height-2,invisible:!0}),BI.createWidget({type:"bi.absolute",element:this.smallEditor.element,items:[{el:this.smallTip,top:0,right:5}]}),this.bigEditor=BI.createWidget({type:"bi.editor",height:c.height-2,watermark:BI.i18nText("BI-Basic_Unrestricted"),allowBlank:!0,value:c.max,level:"warning",tipType:"warning",quitChecker:function(){return!1},validationChecker:function(c){return!!BI.isNumeric(c)||(a.bigEditorBubbleType=b.typeError,!1)},cls:"numerical-interval-big-editor bi-border-top bi-border-bottom bi-border-right"}),this.bigTip=BI.createWidget({type:"bi.label",text:c.numTip,height:c.height-2,invisible:!0}),BI.createWidget({type:"bi.absolute",element:this.bigEditor.element,items:[{el:this.bigTip,top:0,right:5}]}),this.smallCombo=BI.createWidget({type:"bi.icon_combo",cls:"numerical-interval-small-combo bi-border",height:c.height-2,items:[{text:"("+BI.i18nText("BI-Less_Than")+")",iconClass:"less-font",value:0},{text:"("+BI.i18nText("BI-Less_And_Equal")+")",value:1,iconClass:"less-equal-font"}]}),c.closemin===!0?this.smallCombo.setValue(1):this.smallCombo.setValue(0),this.bigCombo=BI.createWidget({type:"bi.icon_combo",cls:"numerical-interval-big-combo bi-border",height:c.height-2,items:[{text:"("+BI.i18nText("BI-Less_Than")+")",iconClass:"less-font",value:0},{text:"("+BI.i18nText("BI-Less_And_Equal")+")",value:1,iconClass:"less-equal-font"}]}),c.closemax===!0?this.bigCombo.setValue(1):this.bigCombo.setValue(0),this.label=BI.createWidget({type:"bi.label",text:BI.i18nText("BI-Basic_Value"),textHeight:c.height-2*b.border,width:b.width-2*b.border,height:c.height-2*b.border,level:"warning",tipType:"warning"}),this.left=BI.createWidget({type:"bi.htape",items:[{el:a.smallEditor},{el:a.smallCombo,width:b.width-2*b.border}]}),this.right=BI.createWidget({type:"bi.htape",items:[{el:a.bigCombo,width:b.width-2*b.border},{el:a.bigEditor}]}),BI.createWidget({element:a,type:"bi.center",hgap:15,height:c.height,items:[{type:"bi.absolute",items:[{el:a.left,left:-15,right:0,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:0,right:-15,top:0,bottom:0}]}]}),BI.createWidget({element:a,type:"bi.horizontal_auto",items:[a.label]}),a._setValidEvent(a.bigEditor,b.bigEditor),a._setValidEvent(a.smallEditor,b.smallEditor),a._setErrorEvent(a.bigEditor,b.bigEditor),a._setErrorEvent(a.smallEditor,b.smallEditor),a._setBlurEvent(a.bigEditor),a._setBlurEvent(a.smallEditor),a._setFocusEvent(a.bigEditor),a._setFocusEvent(a.smallEditor),a._setComboValueChangedEvent(a.bigCombo),a._setComboValueChangedEvent(a.smallCombo),a._setEditorValueChangedEvent(a.bigEditor),a._setEditorValueChangedEvent(a.smallEditor)},_checkValidation:function(){var a=this,b=this.constants,c=this.options;if(a._setTitle(""),BI.Bubbles.hide(b.typeError),BI.Bubbles.hide(b.numberError),BI.Bubbles.hide(b.signalError),a.smallEditor.isValid()&&a.bigEditor.isValid()){if(BI.isEmptyString(a.smallEditor.getValue())||BI.isEmptyString(a.bigEditor.getValue()))return a.element.removeClass("number-error"),c.validation="valid","";var d=parseFloat(a.smallEditor.getValue()),e=parseFloat(a.bigEditor.getValue()),f=a.bigCombo.getValue(),g=a.smallCombo.getValue();return f[0]===b.less_equal&&g[0]===b.less_equal?d>e?(a.element.addClass("number-error"),c.validation="invalid",b.numberError):(a.element.removeClass("number-error"),c.validation="valid",""):d>e?(a.element.addClass("number-error"),c.validation="invalid",b.numberError):d===e?(a.element.addClass("number-error"),c.validation="invalid",b.signalError):(a.element.removeClass("number-error"),c.validation="valid","")}return a.element.removeClass("number-error"),c.validation="invalid",b.typeError},_setTitle:function(a){var b=this;b.bigEditor.setTitle(a),b.smallEditor.setTitle(a),b.label.setTitle(a)},_setFocusEvent:function(a){var b=this,c=this.constants;a.on(BI.Editor.EVENT_FOCUS,function(){switch(b._setTitle(""),b._checkValidation()){case c.typeError:BI.Bubbles.show(c.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),b,{offsetStyle:"center"});break;case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"center"});break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"center"});break;default:return}})},_setBlurEvent:function(a){var b=this.constants,c=this;a.on(BI.Editor.EVENT_BLUR,function(){switch(BI.Bubbles.hide(b.typeError),BI.Bubbles.hide(b.numberError),BI.Bubbles.hide(b.signalError),c._checkValidation()){case b.typeError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data"));break;case b.numberError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value"));break;case b.signalError:c._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value"));break;default:c._setTitle("")}})},_setErrorEvent:function(a){var b=this.constants,c=this;a.on(BI.Editor.EVENT_ERROR,function(){c._checkValidation(),BI.Bubbles.show(b.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),c,{offsetStyle:"center"}),c.fireEvent(BI.NumericalInterval.EVENT_ERROR)})},_setValidEvent:function(a){var b=this,c=this.constants;a.on(BI.Editor.EVENT_VALID,function(){switch(b._checkValidation()){case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"center"}),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"center"}),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;default:b.fireEvent(BI.NumericalInterval.EVENT_VALID)}})},_setEditorValueChangedEvent:function(a){var b=this,c=this.constants;a.on(BI.Editor.EVENT_CHANGE,function(){switch(b._checkValidation()){case c.typeError:BI.Bubbles.show(c.typeError,BI.i18nText("BI-Numerical_Interval_Input_Data"),b,{offsetStyle:"center"});break;case c.numberError:BI.Bubbles.show(c.numberError,BI.i18nText("BI-Numerical_Interval_Number_Value"),b,{offsetStyle:"center"});break;case c.signalError:BI.Bubbles.show(c.signalError,BI.i18nText("BI-Numerical_Interval_Signal_Value"),b,{offsetStyle:"center"})}b.fireEvent(BI.NumericalInterval.EVENT_CHANGE)})},_setComboValueChangedEvent:function(a){var b=this,c=this.constants;a.on(BI.IconCombo.EVENT_CHANGE,function(){switch(b._checkValidation()){case c.typeError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Input_Data")),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;case c.numberError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Number_Value")),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;case c.signalError:b._setTitle(BI.i18nText("BI-Numerical_Interval_Signal_Value")),b.fireEvent(BI.NumericalInterval.EVENT_ERROR);break;default:b.fireEvent(BI.NumericalInterval.EVENT_CHANGE),b.fireEvent(BI.NumericalInterval.EVENT_VALID)}})},isStateValid:function(){return"valid"===this.options.validation},setMinEnable:function(a){this.smallEditor.setEnable(a)},setCloseMinEnable:function(a){this.smallCombo.setEnable(a)},setMaxEnable:function(a){this.bigEditor.setEnable(a)},setCloseMaxEnable:function(a){this.bigCombo.setEnable(a)},showNumTip:function(){this.smallTip.setVisible(!0),this.bigTip.setVisible(!0)},hideNumTip:function(){this.smallTip.setVisible(!1),this.bigTip.setVisible(!1)},setNumTip:function(a){this.smallTip.setText(a),this.bigTip.setText(a)},getNumTip:function(){return this.smallTip.getText()},setValue:function(a){a=a||{};var b,c=this;(BI.isNumeric(a.min)||BI.isEmptyString(a.min))&&c.smallEditor.setValue(a.min),BI.isNotNull(a.min)||c.smallEditor.setValue(""),(BI.isNumeric(a.max)||BI.isEmptyString(a.max))&&c.bigEditor.setValue(a.max),BI.isNotNull(a.max)||c.bigEditor.setValue(""),BI.isNull(a.closemin)||(b=a.closemin===!0?1:0,c.smallCombo.setValue(b)),BI.isNull(a.closemax)||(b=a.closemax===!0?1:0,c.bigCombo.setValue(b))},getValue:function(){var a=this,b={},c=a.smallCombo.getValue(),d=a.bigCombo.getValue();return b.min=a.smallEditor.getValue(),b.max=a.bigEditor.getValue(),0===c[0]?b.closemin=!1:b.closemin=!0,0===d[0]?b.closemax=!1:b.closemax=!0,b}}),BI.NumericalInterval.EVENT_CHANGE="EVENT_CHANGE",BI.NumericalInterval.EVENT_VALID="EVENT_VALID",BI.NumericalInterval.EVENT_ERROR="EVENT_ERROR",BI.shortcut("bi.numerical_interval",BI.NumericalInterval),BI.PageTableCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PageTableCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-page-table-cell",text:"",title:""})},_init:function(){BI.PageTableCell.superclass._init.apply(this,arguments);BI.createWidget({type:"bi.label",element:this,textAlign:"left",whiteSpace:"nowrap",height:this.options.height,text:this.options.text,title:this.options.title,value:this.options.value,lgap:5,rgap:5});BI.isNotNull(this.options.styles)&&BI.isObject(this.options.styles)&&this.element.css(this.options.styles)}}),BI.shortcut("bi.page_table_cell",BI.PageTableCell),BI.PageTable=BI.inherit(BI.Widget,{_const:{scrollWidth:18,minScrollWidth:100},_defaultConfig:function(){return BI.extend(BI.PageTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-page-table",el:{type:"bi.sequence_table"},pager:{horizontal:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn},vertical:{pages:!1,curr:1,hasPrev:BI.emptyFn,hasNext:BI.emptyFn,firstPage:1,lastPage:BI.emptyFn}},itemsCreator:BI.emptyFn,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!1,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[]})},_init:function(){BI.PageTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.hCurr=1,this.vCurr=1,this.table=BI.createWidget(b.el,{type:"bi.sequence_table",width:b.width,height:b.height&&b.height-30,isNeedResize:!0,isResizeAdapt:!1,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,minColumnSize:b.minColumnSize,maxColumnSize:b.maxColumnSize,headerRowSize:b.headerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,headerCellStyleGetter:b.headerCellStyleGetter,summaryCellStyleGetter:b.summaryCellStyleGetter,sequenceCellStyleGetter:b.sequenceCellStyleGetter,header:b.header,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(){a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)}),this.pager=BI.createWidget(b.pager,{type:"bi.direction_pager",height:30}),this.pager.on(BI.Pager.EVENT_CHANGE,function(){var c=this.getVPage&&this.getVPage();BI.isNull(c)&&(c=this.getCurrentPage());var d=this.getHPage&&this.getHPage();b.itemsCreator({vpage:c,hpage:d},function(b,e,f,g){a.table.setVPage?a.table.setVPage(c):a.table.setValue(c),a.table.setHPage&&a.table.setHPage(d),
+a.populate.apply(a,arguments)})}),BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.table,left:0,top:0},{el:this.pager,left:0,right:0,bottom:0}]})},setHPage:function(a){this.hCurr=a,this.pager.setHPage&&this.pager.setHPage(a),this.table.setHPage&&this.table.setHPage(a)},setVPage:function(a){this.vCurr=a,this.pager.setVPage&&this.pager.setVPage(a),this.table.setVPage&&this.table.setVPage(a)},getHPage:function(){var a=this.pager.getHPage&&this.pager.getHPage();return BI.isNotNull(a)?a:(a=this.pager.getCurrentPage&&this.pager.getCurrentPage(),BI.isNotNull(a)?a:this.hpage)},getVPage:function(){var a=this.pager.getVPage&&this.pager.getVPage();return BI.isNotNull(a)?a:(a=this.pager.getCurrentPage&&this.pager.getCurrentPage(),BI.isNotNull(a)?a:this.vpage)},setWidth:function(a){BI.PageTable.superclass.setWidth.apply(this,arguments),this.table.setWidth(a)},setHeight:function(a){BI.PageTable.superclass.setHeight.apply(this,arguments);var b=!1;this.pager.alwaysShowPager?b=!0:this.pager.hasHNext&&this.pager.hasHNext()?b=!0:this.pager.hasHPrev&&this.pager.hasHPrev()?b=!0:this.pager.hasVNext&&this.pager.hasVNext()?b=!0:this.pager.hasVPrev&&this.pager.hasVPrev()?b=!0:this.pager.hasNext&&this.pager.hasNext()?b=!0:this.pager.hasPrev&&this.pager.hasPrev()&&(b=!0),this.table.setHeight(a-(b?30:0))},setColumnSize:function(a){this.options.columnSize=a,this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},setRegionColumnSize:function(a){this.options.columnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},getVerticalScroll:function(){return this.table.getVerticalScroll()},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},restore:function(){this.table.restore()},attr:function(){BI.PageTable.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments)},populate:function(){this.pager.populate(),this.table.populate.apply(this.table,arguments)},destroy:function(){this.table.destroy(),this.pager&&this.pager.destroy(),BI.PageTable.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.page_table",BI.PageTable),BI.PathChooser=BI.inherit(BI.Widget,{_const:{lineColor:"#d4dadd",selectLineColor:"#3f8ce8"},_defaultConfig:function(){return BI.extend(BI.PathChooser.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-path-chooser",items:[]})},_init:function(){BI.PathChooser.superclass._init.apply(this,arguments),this.populate(this.options.items)},_createRegions:function(a){var b=this;this.regions=BI.createWidgets(BI.map(a,function(a,c){return{type:"bi.path_region",title:b.texts[c]||c}})),this.regionMap={},BI.each(a,function(a,c){b.regionMap[c]=a}),this.container=BI.createWidget({type:"bi.horizontal",verticalAlign:"top",scrollx:!1,scrolly:!1,hgap:10,items:this.regions}),BI.createWidget({type:"bi.vertical_adapt",element:this,scrollable:!0,hgap:10,items:[this.container]})},getRegionIndexById:function(a){var b=this.store[a],c=b.get("region");return this.regionMap[c]},_drawPath:function(a,b,c){var d=this,e=[];e=BI.contains(this.start,a)?this.start:[a],BI.each(e,function(a,b){BI.each(d.radios[b],function(a,b){b.setSelected(!1)}),BI.each(d.lines[b],function(a,b){b.attr("stroke",d._const.lineColor)}),BI.each(d.regionIndexes[b],function(a,b){d.regions[b].reset()})}),BI.each(this.routes[a][c],function(a,e){var f=d.getRegionIndexById(e);d.regions[f].setSelect(b+c,e)});for(var f=BI.last(this.routes[a][c]);f&&this.routes[f]&&1===this.routes[f].length;)BI.each(this.routes[f][0],function(a,b){var c=d.getRegionIndexById(b);d.regions[c].setSelect(0,b)}),this.lines[f][0].attr("stroke",d._const.selectLineColor).toFront(),f=BI.last(this.routes[f][0]);this.lines[a][c].attr("stroke",d._const.selectLineColor).toFront(),this.radios[a]&&this.radios[a][c]&&this.radios[a][c].setSelected(!0)},_drawRadio:function(a,b,c,d,e){var f=this,g=BI.createWidget({type:"bi.radio",cls:"path-chooser-radio",selected:b+c===0,start:a,index:c});g.on(BI.Radio.EVENT_CHANGE,function(){f._drawPath(a,b,c),f.fireEvent(BI.PathChooser.EVENT_CHANGE,a,c)}),this.radios[a]||(this.radios[a]=[]),this.radios[a].push(g),BI.createWidget({type:"bi.absolute",element:this.container,items:[{el:g,left:d-6.5,top:e-6.5}]})},_drawLine:function(a,b){var c=this;this.lines[a]||(this.lines[a]=[]),this.pathes[a]||(this.pathes[a]=[]);var d=this.getRegionIndexById(a),e=this.regions[d].getIndexByValue(a);BI.each(b,function(f,g){c.pathes[a][f]=[];var h=f+e,i="",j=47.5+29*h,k=50+100*d,l=k,m=j,n=j,o=c.getRegionIndexById(BI.last(g)),p=c.regions[o].getIndexByValue(BI.last(g)),q=50+100*o;if(BI.contains(c.start,a)?(l=k-50,i+="M"+(k-50)+","+j,c.pathes[a][f].push({x:k-50,y:j})):0===h?(l=k+50,i+="M"+k+","+j,c.pathes[a][f].push({x:k,y:j})):(l=k+50,i+="M"+k+",47.5L"+(k+50)+",47.5L"+(k+50)+","+j,c.pathes[a][f].push({x:k,y:47.5}),c.pathes[a][f].push({x:k+50,y:47.5}),c.pathes[a][f].push({x:k+50,y:j})),h>0){var r=29*p+47.5;i+="L"+(q-50)+","+n+"L"+(q-50)+","+r+"L"+q+","+r,c.pathes[a][f].push({x:q-50,y:n}),c.pathes[a][f].push({x:q-50,y:r}),c.pathes[a][f].push({x:q,y:r})}else i+="L"+q+","+n,c.pathes[a][f].push({x:q,y:n});var s=c.svg.path(i).attr({stroke:0===h?c._const.selectLineColor:c._const.lineColor,"stroke-dasharray":"-"});c.lines[a].push(s),b.length>1&&c.lines[a][0].toFront(),BI.contains(c.start,a)&&c.lines[c.regions[0].getValueByIndex(0)][0].toFront(),(b.length>1||BI.contains(c.start,a))&&c._drawRadio(a,e,f,l,m)})},_drawLines:function(a){var b=this;this.lines={},this.pathes={},this.radios={},this.regionIndexes={},BI.each(a,function(a,c){b.regionIndexes[a]||(b.regionIndexes[a]=[]),BI.each(c,function(c,d){BI.each(d,function(c,d){var e=b.getRegionIndexById(d);BI.contains(b.regionIndexes[a],e)||b.regionIndexes[a].push(e)})})}),BI.each(a,function(a,c){b._drawLine(a,c)})},_pushNodes:function(a){for(var b=this,c=[],d=0;d0||BI.contains(b.start,e))&&g.addItem(e,b.texts[e])}for(var d=BI.first(c);d0&&(h=c[b-1]);var i=a.store[h.value||""],j=a.store[g.value]||new BI.Node(g.value);j.set(g),a.store[g.value]=j,a.texts[g.value]=g.text,a.texts[g.region]=g.regionText,i=BI.isNull(i)?d.getRoot():i,i.getChildIndex(g.value)===-1&&d.addNode(i,j)})}),d.traverse(function(a){BI.each(a.getChildren(),function(b,d){if(BI.contains(c,d.get("region"))){var e=BI.indexOf(c,a.get("region")),f=BI.indexOf(c,d.get("region"));if(e>f){for(var g=c[f],h=f;h0&&(e.push(c),d.push(e),e=[]),e.push(c)}),e.length>0&&d.push(e),BI.each(d,function(a,b){var d=b[0],e=BI.findIndex(c.routes[d],function(a,c){if(BI.isEqual(b,c))return!0});if(e>=0){var f=c.getRegionIndexById(d),g=c.regions[f].getIndexByValue(d);c._drawPath(d,g,e)}})},getValue:function(){var a=[];return BI.each(this.regions,function(b,c){var d=c.getValue();BI.isKey(d)&&a.push(d)}),a}}),BI.PathChooser.EVENT_CHANGE="PathChooser.EVENT_CHANGE",BI.shortcut("bi.path_chooser",BI.PathChooser),BI.PathRegion=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PathRegion.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-path-region bi-background",width:80,title:""})},_init:function(){BI.PathRegion.superclass._init.apply(this,arguments);var a=this.options;this.zIndex=100;var b=BI.createWidget({type:"bi.label",text:a.title,title:a.title,height:30});b.element.css("zIndex",this.zIndex--),this.items=[],this.vertical=BI.createWidget({type:"bi.vertical",element:this,bgap:5,hgap:10,items:[b]})},hasItem:function(a){return BI.any(this.items,function(b,c){return a===c.getValue()})},addItem:function(a,b){if(BI.isKey(a))var c=BI.createWidget({type:"bi.label",cls:"path-region-label bi-card bi-border bi-list-item-select",text:b,value:a,title:b||a,height:22});else var c=BI.createWidget({type:"bi.layout",height:24});c.element.css("zIndex",this.zIndex--),this.items.push(c),this.vertical.addItem(c),1===this.items.length&&this.setSelect(0,a)},reset:function(){BI.each(this.items,function(a,b){b.element.removeClass("active")})},setSelect:function(a,b){if(this.reset(),!(this.items.length<=0))return 1===this.items.length?void this.items[0].element.addClass("active"):void(this.items[a].attr("value")===b&&this.items[a].element.addClass("active"))},setValue:function(a){this.setSelect(this.getIndexByValue(a),a)},getValueByIndex:function(a){return this.items[a].attr("value")},getIndexByValue:function(a){return BI.findIndex(this.items,function(b,c){return c.attr("value")===a})},getValue:function(){var a;return BI.any(this.items,function(b,c){if(c.element.hasClass("active"))return a=c.getValue(),!0}),a}}),BI.PathRegion.EVENT_CHANGE="PathRegion.EVENT_CHANGE",BI.shortcut("bi.path_region",BI.PathRegion),BI.PreviewTableCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PreviewTableCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-preview-table-cell",text:""})},_init:function(){BI.PreviewTableCell.superclass._init.apply(this,arguments);this.options;BI.createWidget({type:"bi.label",element:this,textAlign:"left",whiteSpace:"normal",height:this.options.height,text:this.options.text,value:this.options.value})}}),BI.shortcut("bi.preview_table_cell",BI.PreviewTableCell),BI.PreviewTableHeaderCell=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PreviewTableHeaderCell.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-preview-table-header-cell",text:""})},_init:function(){BI.PreviewTableHeaderCell.superclass._init.apply(this,arguments);this.options;BI.createWidget({type:"bi.label",element:this,textAlign:"left",whiteSpace:"normal",height:this.options.height,text:this.options.text,value:this.options.value})}}),BI.shortcut("bi.preview_table_header_cell",BI.PreviewTableHeaderCell),BI.PreviewTable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.PreviewTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-preview-table",isNeedFreeze:!1,freezeCols:[],rowSize:null,columnSize:[],headerRowSize:30,header:[],items:[]})},_init:function(){BI.PreviewTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.table=BI.createWidget({type:"bi.table_view",element:this,isNeedResize:!1,isResizeAdapt:!1,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,rowSize:b.rowSize,columnSize:b.columnSize,headerRowSize:b.headerRowSize,header:BI.map(b.header,function(a,b){return BI.map(b,function(a,b){return BI.extend({type:"bi.preview_table_header_cell"},b)})}),items:BI.map(b.items,function(a,b){return BI.map(b,function(a,b){return BI.extend({type:"bi.preview_table_cell"},b)})})}),this.table.on(BI.Table.EVENT_TABLE_AFTER_INIT,function(){a._adjustColumns(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_INIT,arguments)}),this.table.on(BI.Table.EVENT_TABLE_RESIZE,function(){a._adjustColumns()})},_hasAdaptCol:function(a){return BI.any(a,function(a,b){return""===b})},_isPercentage:function(a){return a[0]<=1},_adjustColumns:function(){var a=this.options;if(a.isNeedFreeze===!0){if(this._isPercentage(a.columnSize)){if(this._hasAdaptCol(a.columnSize)){var b=[],c=0;BI.each(a.columnSize,function(a,d){""===d?b.push(a):c+=d}),c=1-c;var d=c/b.length;BI.each(b,function(b,c){a.columnSize[c]=d})}var e=0!==BI.first(a.freezeCols),f=[],g=[];BI.each(a.columnSize,function(b,c){a.freezeCols.contains(b)?f.push(c):g.push(c)});var h=BI.sum(f),i=BI.sum(g);BI.each(f,function(a,b){f[a]=b/h}),BI.each(g,function(a,b){g[a]=b/i}),this.table.setRegionColumnSize(e?["fill",h]:[h,"fill"]),this.table.setColumnSize(e?g.concat(f):f.concat(g))}}else(this._hasAdaptCol(a.columnSize)||this._isPercentage(a.columnSize))&&this.table.setRegionColumnSize(["100%"])},setColumnSize:function(a){return this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},getCalculateColumnSize:function(){return this.table.getCalculateColumnSize()},setHeaderColumnSize:function(a){return this.table.setHeaderColumnSize(a)},setRegionColumnSize:function(a){return this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},getCalculateRegionColumnSize:function(){return this.table.getCalculateRegionColumnSize()},getCalculateRegionRowSize:function(){return this.table.getCalculateRegionRowSize()},getClientRegionColumnSize:function(){return this.table.getClientRegionColumnSize()},getScrollRegionColumnSize:function(){return this.table.getScrollRegionColumnSize()},getScrollRegionRowSize:function(){return this.table.getScrollRegionRowSize()},hasVerticalScroll:function(){return this.table.hasVerticalScroll()},setVerticalScroll:function(a){return this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){return this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){return this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},getColumns:function(){return this.table.getColumns()},populate:function(a,b){this.table.populate(a,b)}}),BI.PreviewTable.EVENT_CHANGE="PreviewTable.EVENT_CHANGE",BI.shortcut("bi.preview_table",BI.PreviewTable),BI.QuarterCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.QuarterCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-quarter-combo",behaviors:{},height:25})},_init:function(){BI.QuarterCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue="",this.trigger=BI.createWidget({type:"bi.quarter_trigger"}),this.trigger.on(BI.QuarterTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.QuarterTrigger.EVENT_CHANGE,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.QuarterTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.QuarterTrigger.EVENT_STOP,function(){a.combo.isViewVisible()||a.combo.showView()}),this.trigger.on(BI.QuarterTrigger.EVENT_CONFIRM,function(){a.combo.isViewVisible()||(this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getKey()):this.getKey()||a.setValue(),a.fireEvent(BI.QuarterCombo.EVENT_CONFIRM))}),this.popup=BI.createWidget({type:"bi.quarter_popup",behaviors:b.behaviors}),this.popup.on(BI.QuarterPopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.QuarterCombo.EVENT_CONFIRM)}),this.combo=BI.createWidget({type:"bi.combo",element:this,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,el:this.popup}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()||""}}),BI.QuarterCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.quarter_combo",BI.QuarterCombo),BI.QuarterPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.QuarterPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-quarter-popup",behaviors:{}})},_init:function(){BI.QuarterPopup.superclass._init.apply(this,arguments);var a=this,b=this.options,c=[{text:Date._QN[1],value:1},{text:Date._QN[2],value:2},{text:Date._QN[3],value:3},{text:Date._QN[4],value:4}];c=BI.map(c,function(a,b){return BI.extend(b,{type:"bi.text_item",cls:"bi-list-item-active",textAlign:"left",whiteSpace:"nowrap",once:!1,forceSelected:!0,height:25})}),this.quarter=BI.createWidget({type:"bi.button_group",element:this,behaviors:b.behaviors,items:BI.createItems(c,{}),layouts:[{type:"bi.vertical"}]}),this.quarter.on(BI.Controller.EVENT_CHANGE,function(b){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),b===BI.Events.CLICK&&a.fireEvent(BI.MonthPopup.EVENT_CHANGE)})},getValue:function(){return this.quarter.getValue()[0]},setValue:function(a){this.quarter.setValue([a])}}),BI.QuarterPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.quarter_popup",BI.QuarterPopup),BI.QuarterTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,triggerWidth:30,textWidth:40,errorText:BI.i18nText("BI-Quarter_Trigger_Error_Text")},_defaultConfig:function(){return BI.extend(BI.QuarterTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-quarter-trigger bi-border",height:25})},_init:function(){BI.QuarterTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(a){return""===a||BI.isPositiveInteger(a)&&a>=1&&a<=4},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:c.errorText}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.QuarterTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_CHANGE,function(){a.fireEvent(BI.QuarterTrigger.EVENT_CHANGE)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.QuarterTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.QuarterTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.QuarterTrigger.EVENT_STOP)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",baseCls:"bi-trigger-quarter-text",text:BI.i18nText("BI-Multi_Date_Quarter"),width:c.textWidth},width:c.textWidth},{el:{type:"bi.trigger_icon_button",width:c.triggerWidth},width:c.triggerWidth}]})},setValue:function(a){this.editor.setState(a),this.editor.setValue(a),this.editor.setTitle(a)},getKey:function(){return this.editor.getValue()}}),BI.QuarterTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.QuarterTrigger.EVENT_CHANGE="EVENT_CHANGE",BI.QuarterTrigger.EVENT_START="EVENT_START",BI.QuarterTrigger.EVENT_STOP="EVENT_STOP",BI.QuarterTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.shortcut("bi.quarter_trigger",BI.QuarterTrigger),BI.RelationViewItem=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.RelationViewItem.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view-item bi-list-item-active",height:25,hoverIn:BI.emptyFn,hoverOut:BI.emptyFn})},_init:function(){BI.RelationViewItem.superclass._init.apply(this,arguments);var a=this.options;this.element.hover(a.hoverIn,a.hoverOut);var b=[];a.isPrimary&&b.push({type:"bi.icon",width:16,height:16,title:BI.i18nText("BI-Primary_Key")}),b.push({type:"bi.label",text:a.text,value:a.value,height:a.height,textAlign:"left",width:a.isPrimary?70:90}),BI.createWidget({type:"bi.vertical_adapt",element:this,items:b,cls:"primary-key-font",lgap:5})},enableHover:function(a){BI.RelationViewRegion.superclass.enableHover.apply(this,[{container:"body"}])},setSelected:function(a){this.element[a?"addClass":"removeClass"]("active")}}),BI.shortcut("bi.relation_view_item",BI.RelationViewItem),BI.RelationView=BI.inherit(BI.Widget,{_const:{lineColor:"#c4c6c6",selectLineColor:"#009de3"},_defaultConfig:function(){return BI.extend(BI.RelationView.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view",items:[]})},_init:function(){BI.RelationView.superclass._init.apply(this,arguments),this.populate(this.options.items)},_calculateWidths:function(){var a=[];return BI.each(this.views,function(b,c){BI.each(c,function(b,c){a[b]||(a[b]=BI.MIN),a[b]=Math.max(a[b],c.getWidth())})}),a},_calculateHeights:function(){var a=BI.makeArray(BI.size(this.views),BI.MIN);return BI.each(this.views,function(b,c){BI.each(c,function(c,d){a[b]=Math.max(a[b],d.getHeight())})}),a},_hoverIn:function(a){var b=this,c=this._const;BI.each(this.relations,function(d,e){BI.each(e,function(e,f){f[0].primary.value!==a&&f[0].foreign.value!==a||(b.lines[d][e].attr("stroke",c.selectLineColor).toFront(),b.storeViews[d].setValue(f[0].primary.value),b.storeViews[e].setValue(f[0].foreign.value))})})},_hoverOut:function(a){var b=this,c=this._const;BI.each(this.relations,function(d,e){BI.each(e,function(e,f){f[0].primary.value!==a&&f[0].foreign.value!==a||(b.lines[d][e].attr("stroke",c.lineColor),b.storeViews[d].setValue([]),b.storeViews[e].setValue([]))})})},previewRelationTables:function(a,b){return b?(BI.each(this.storeViews,function(b,c){a.contains(b)?c.setPreviewSelected(!0):c.toggleRegion(!1)}),void BI.each(this.lines,function(b,c){BI.each(c,function(c,d){a.contains(b)&&a.contains(c)||d.hide()})})):(BI.each(this.storeViews,function(a,b){b.toggleRegion(!0),b.setPreviewSelected(!1)}),void BI.each(this.lines,function(a,b){BI.each(b,function(a,b){b.show()})}))},populate:function(a){var b=this,c=this.options,d=this._const;c.items=a||[],this.empty(),this.svg=BI.createWidget({type:"bi.svg"});var e=this.regions={},f=this.relations={};BI.each(a,function(a,b){var c=b.primary.region,d=b.foreign&&b.foreign.region;c&&!f[c]&&(f[c]={}),c&&d&&!f[c][d]&&(f[c][d]=[]),c&&!e[c]&&(e[c]=[]),d&&!e[d]&&(e[d]=[]),c&&!BI.deepContains(e[c],b.primary)&&e[c].push(b.primary),d&&!BI.deepContains(e[d],b.foreign)&&e[d].push(b.foreign),c&&d&&f[c][d].push(b)});for(var g=[],h=BI.clone(e),i={};!BI.isEmpty(h);){var j=BI.clone(h);BI.each(c.items,function(a,b){i[b.primary.region]||delete j[b.foreign&&b.foreign.region]}),g.push(BI.keys(j)),BI.extend(i,j),BI.each(j,function(a,b){delete h[a]})}var k=this.views={},l=this.storeViews={},m=this.indexes={},n=[];BI.each(g,function(a,c){k[a]||(k[a]={});var d=[];BI.each(c,function(c,f){var g=e[f];k[a][c]=l[f]=BI.createWidget({type:"bi.relation_view_region_container",value:f,header:g[0].regionTitle,text:g.length>0?g[0].regionText:"",handler:g.length>0?g[0].regionHandler:BI.emptyFn,items:g,belongPackage:!(g.length>0)||g[0].belongPackage}),BI.isNotNull(g[0])&&BI.isNotNull(g[0].keyword)&&k[a][c].doRedMark(g[0].keyword),k[a][c].on(BI.RelationViewRegionContainer.EVENT_HOVER_IN,function(a){b._hoverIn(a)}),k[a][c].on(BI.RelationViewRegionContainer.EVENT_HOVER_OUT,function(a){b._hoverOut(a)}),k[a][c].on(BI.RelationViewRegionContainer.EVENT_PREVIEW,function(a){b.fireEvent(BI.RelationView.EVENT_PREVIEW,f,a)}),m[f]={i:a,j:c},d.push(k[a][c])}),n.push({type:"bi.horizontal",items:d})});var o=this._calculateHeights(),p=this._calculateWidths(),q=[0],r=[0];BI.each(o,function(a,b){0!==a&&(r[a]=r[a-1]+o[a-1])}),BI.each(p,function(a,b){0!==a&&(q[a]=q[a-1]+p[a-1])});var s=this.lines={};BI.each(f,function(a,c){BI.each(c,function(c,e){var f=m[a],g=m[c],h=0,i=1,j=2,n=3,t=j,u=h,v=function(a,b,c,d){var e,f=q[b]+(p[b]-k[a][b].getWidth())/2,g=r[a]+(o[a]-k[a][b].getHeight())/2,l="";switch(c){case h:e=d?k[a][b].getTopRightPosition():k[a][b].getTopLeftPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+f+","+(g-10),g-=10;break;case i:e=k[a][b].getRightPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+(f+10)+","+g,f+=10;break;case j:e=k[a][b].getBottomPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+f+","+(g+10),g+=10;break;case n:e=k[a][b].getLeftPosition(),f+=e.x,g+=e.y,l="M"+f+","+g+"L"+(f-10)+","+g,f-=10}return{x:f,y:g,path:l}},w="",x=v(f.i,f.j,t),y=v(g.i,g.j,u,!0);w+=x.path+y.path,s[a]||(s[a]={}),w+="M"+x.x+","+x.y+"L"+y.x+","+y.y;var z=s[a][c]=b.svg.path(w).attr({stroke:d.lineColor,"stroke-width":"2"}).hover(function(){z.attr("stroke",d.selectLineColor).toFront(),l[a].setValue(e[0].primary.value),l[c].setValue(e[0].foreign.value)},function(){z.attr("stroke",d.lineColor),l[a].setValue([]),l[c].setValue([])})})});var t=BI.createWidget();BI.createWidget({type:"bi.vertical",element:t,items:n}),BI.createWidget({type:"bi.absolute",element:t,items:[{el:this.svg,left:0,right:0,top:0,bottom:0}]}),BI.createWidget({type:"bi.center_adapt",scrollable:!0,element:this,items:[t]})}}),BI.RelationView.EVENT_CHANGE="RelationView.EVENT_CHANGE",BI.RelationView.EVENT_PREVIEW="EVENT_PREVIEW",BI.shortcut("bi.relation_view",BI.RelationView),BI.RelationViewRegionContainer=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.RelationViewRegionContainer.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view-region-container",width:150})},_init:function(){BI.RelationViewRegionContainer.superclass._init.apply(this,arguments);var a=this,b=this.options;this.region=BI.createWidget({type:"bi.relation_view_region",value:b.value,header:b.header,text:b.text,handler:b.handler,items:b.items,belongPackage:b.belongPackage}),this.region.on(BI.RelationViewRegion.EVENT_PREVIEW,function(b){a.fireEvent(BI.RelationViewRegionContainer.EVENT_PREVIEW,b)}),this.region.on(BI.RelationViewRegion.EVENT_HOVER_IN,function(b){a.fireEvent(BI.RelationViewRegionContainer.EVENT_HOVER_IN,b)}),this.region.on(BI.RelationViewRegion.EVENT_HOVER_OUT,function(b){a.fireEvent(BI.RelationViewRegionContainer.EVENT_HOVER_OUT,b)}),BI.createWidget({type:"bi.vertical",element:this,items:[this.region],width:this.region.getWidth(),height:this.region.getHeight()})},doRedMark:function(){this.region.doRedMark.apply(this.region,arguments)},unRedMark:function(){this.region.unRedMark.apply(this.region,arguments)},getWidth:function(){return this.region.getWidth()},getHeight:function(){return this.region.getHeight()},getTopLeftPosition:function(){return this.region.getTopLeftPosition()},getTopRightPosition:function(){return this.region.getTopRightPosition()},getBottomPosition:function(){return this.region.getBottomPosition()},getLeftPosition:function(){return this.region.getLeftPosition()},getRightPosition:function(){return this.region.getRightPosition()},setValue:function(a){this.region.setValue(a)},toggleRegion:function(a){a===!0?this.region.element.fadeIn():this.region.element.fadeOut()},setPreviewSelected:function(a){this.region.setPreviewSelected(a)}}),BI.RelationViewRegionContainer.EVENT_HOVER_IN="RelationViewRegion.EVENT_HOVER_IN",BI.RelationViewRegionContainer.EVENT_HOVER_OUT="RelationViewRegion.EVENT_HOVER_OUT",BI.RelationViewRegionContainer.EVENT_PREVIEW="RelationViewRegion.EVENT_PREVIEW",BI.shortcut("bi.relation_view_region_container",BI.RelationViewRegionContainer),BI.RelationViewRegion=BI.inherit(BI.BasicButton,{_defaultConfig:function(){return BI.extend(BI.RelationViewRegion.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-relation-view-region cursor-pointer",width:150,text:"",value:"",header:"",items:[],belongPackage:!0})},_init:function(){BI.RelationViewRegion.superclass._init.apply(this,arguments);var a=this,b=this.options;this.preview=BI.createWidget({type:"bi.icon_button",cls:"relation-table-preview-font",width:25,height:25,stopPropagation:!0}),this.preview.on(BI.IconButton.EVENT_CHANGE,function(){a.fireEvent(BI.RelationViewRegion.EVENT_PREVIEW,this.isSelected())}),this.title=BI.createWidget({type:"bi.label",height:25,width:70,text:b.text,value:b.value,textAlign:"left"}),BI.isKey(b.header)&&this.title.setTitle(b.header,{container:"body"}),this.button_group=BI.createWidget({type:"bi.button_group",items:this._createItems(b.items),layouts:[{type:"bi.vertical"}]}),BI.createWidget({type:"bi.vertical",element:this,items:[{type:"bi.vertical",cls:"relation-view-region-container bi-card bi-border "+(b.belongPackage?"":"other-package"),items:[{type:"bi.vertical_adapt",cls:"relation-view-region-title bi-border-bottom",items:[this.preview,this.title]},this.button_group]}],hgap:25,vgap:20})},_createItems:function(a){var b=this;return BI.map(a,function(a,c){return BI.extend(c,{type:"bi.relation_view_item",hoverIn:function(){b.setValue(c.value),b.fireEvent(BI.RelationViewRegion.EVENT_HOVER_IN,c.value)},hoverOut:function(){b.setValue([]),b.fireEvent(BI.RelationViewRegion.EVENT_HOVER_OUT,c.value)}})})},doRedMark:function(){this.title.doRedMark.apply(this.title,arguments)},unRedMark:function(){this.title.unRedMark.apply(this.title,arguments)},getWidth:function(){return this.options.width},getHeight:function(){return 25*this.button_group.getAllButtons().length+25+40+3},getTopLeftPosition:function(){return{x:35,y:20}},getTopRightPosition:function(){return{x:this.getWidth()-25-10,y:20}},getBottomPosition:function(){return{x:35,y:this.getHeight()-20}},getLeftPosition:function(){return{x:25,y:30}},getRightPosition:function(){return{x:this.getWidth()-25,y:30}},setValue:function(a){this.button_group.setValue(a)},setPreviewSelected:function(a){this.preview.setSelected(a)}}),BI.RelationViewRegion.EVENT_HOVER_IN="RelationViewRegion.EVENT_HOVER_IN",BI.RelationViewRegion.EVENT_HOVER_OUT="RelationViewRegion.EVENT_HOVER_OUT",BI.RelationViewRegion.EVENT_PREVIEW="RelationViewRegion.EVENT_PREVIEW",BI.shortcut("bi.relation_view_region",BI.RelationViewRegion),BI.ResponisveTable=BI.inherit(BI.Widget,{_const:{perColumnSize:100},_defaultConfig:function(){return BI.extend(BI.ResponisveTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-responsive-table",isNeedFreeze:!1,freezeCols:[],isNeedMerge:!1,mergeCols:[],mergeRule:function(a,b){return BI.isEqual(a,b)},columnSize:[],headerRowSize:25,footerRowSize:25,rowSize:25,regionColumnSize:!1,header:[],footer:!1,items:[],crossHeader:[],crossItems:[]})},_init:function(){BI.ResponisveTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.table=BI.createWidget({type:"bi.table_view",element:this,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,headerRowSize:b.headerRowSize,footerRowSize:b.footerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,header:b.header,footer:b.footer,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems}),this.table.on(BI.Table.EVENT_TABLE_AFTER_INIT,function(){a._initRegionSize(),a.table.resize(),a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_INIT,arguments);
+}),this.table.on(BI.Table.EVENT_TABLE_RESIZE,function(){a._resizeRegion(),a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(){a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_BEFORE_REGION_RESIZE,function(){a.fireEvent(BI.Table.EVENT_TABLE_BEFORE_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_REGION_RESIZE,function(){b.isNeedResize===!0&&a._isAdaptiveColumn()&&a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_BEFORE_COLUMN_RESIZE,function(){a._resizeBody(),a.fireEvent(BI.Table.EVENT_TABLE_BEFORE_COLUMN_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_COLUMN_RESIZE,function(){a.fireEvent(BI.Table.EVENT_TABLE_COLUMN_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){a._resizeRegion(),a._resizeHeader(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)})},_initRegionSize:function(){var a=this.options;if(a.isNeedFreeze===!0){var b=this.table.getRegionColumnSize(),c=this.table.element.width();if(!b[0]||"fill"===b[0]||b[0]>c||b[1]>c){var d=a.freezeCols;if(0===d.length)this.table.setRegionColumnSize([0,"fill"]);else if(d.length>0&&d.lengtha.columnSize.length/2&&(e=2*c/3),this.table.setRegionColumnSize([e,"fill"])}else this.table.setRegionColumnSize(["fill",0])}}},_getBlockSize:function(){var a=this.options,b=this.table.getCalculateColumnSize();if(a.isNeedFreeze===!0){var c=[],d=[];BI.each(b,function(b,e){a.freezeCols.contains(b)?c.push(e):d.push(e)});var e=BI.sum(c)+c.length,f=BI.sum(d)+d.length;return{sumLeft:e,sumRight:f,left:c,right:d}}return{size:b,sum:BI.sum(b)+b.length}},_isAdaptiveColumn:function(a){return!(BI.last(a||this.table.getColumnSize())>1.05)},_resizeHeader:function(){var a=this,b=this.options;if(b.isNeedFreeze===!0)if(this._isAdaptiveColumn()){var c=this.table.getCalculateColumnSize();this.table.setHeaderColumnSize(c)}else{var d=this.table.getClientRegionColumnSize(),e=this._getBlockSize(),f=e.sumLeft,g=e.sumRight,h=e.left,i=e.right;h[h.length-1]+=d[0]-f,i[i.length-1]+=d[1]-g;var j=BI.clone(h),k=BI.clone(i);j[j.length-1]="",k[k.length-1]="",this.table.setColumnSize(j.concat(k)),e=a._getBlockSize(),h[h.length-1]0&&a.freezeCols.length=d+e)&&this.table.setRegionColumnSize([d,"fill"]),this._resizeRegion()}},_resizeRegion:function(){var a=this.options,b=this.table.getCalculateRegionColumnSize();if(a.isNeedFreeze===!0&&a.freezeCols.length>0&&a.freezeCols.lengtha.columnSize.length/2&&(e=2*c/3),this.table.setRegionColumnSize([e,"fill"])}}},resize:function(){this.table.resize(),this._resizeRegion(),this._resizeHeader()},setColumnSize:function(a){this.table.setColumnSize(a),this._adjustRegion(),this._resizeHeader()},getColumnSize:function(){return this.table.getColumnSize()},getCalculateColumnSize:function(){return this.table.getCalculateColumnSize()},setHeaderColumnSize:function(a){this.table.setHeaderColumnSize(a),this._adjustRegion(),this._resizeHeader()},setRegionColumnSize:function(a){this.table.setRegionColumnSize(a),this._resizeHeader()},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},getCalculateRegionColumnSize:function(){return this.table.getCalculateRegionColumnSize()},getCalculateRegionRowSize:function(){return this.table.getCalculateRegionRowSize()},getClientRegionColumnSize:function(){return this.table.getClientRegionColumnSize()},getScrollRegionColumnSize:function(){return this.table.getScrollRegionColumnSize()},getScrollRegionRowSize:function(){return this.table.getScrollRegionRowSize()},hasVerticalScroll:function(){return this.table.hasVerticalScroll()},setVerticalScroll:function(a){this.table.setVerticalScroll(a)},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},getLeftHorizontalScroll:function(){return this.table.getLeftHorizontalScroll()},getRightHorizontalScroll:function(){return this.table.getRightHorizontalScroll()},getColumns:function(){return this.table.getColumns()},attr:function(){BI.ResponisveTable.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments)},populate:function(a){var b=this,c=this.options;this.table.populate.apply(this.table,arguments),c.isNeedFreeze===!0&&BI.nextTick(function(){b._initRegionSize(),b.table.resize(),b._resizeHeader()})}}),BI.shortcut("bi.responsive_table",BI.ResponisveTable),BI.SelectTreeFirstPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeFirstPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-first-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.SelectTreeFirstPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.first_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:25,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeFirstPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_first_plus_group_node",BI.SelectTreeFirstPlusGroupNode),BI.SelectTreeLastPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeLastPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-last-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.SelectTreeLastPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.last_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:25,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeLastPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_last_plus_group_node",BI.SelectTreeLastPlusGroupNode),BI.SelectTreeMidPlusGroupNode=BI.inherit(BI.NodeButton,{_defaultConfig:function(){var a=BI.SelectTreeMidPlusGroupNode.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{baseCls:(a.baseCls||"")+" bi-select-tree-mid-plus-group-node bi-list-item-active",logic:{dynamic:!1},id:"",pId:"",readonly:!0,open:!1,height:25})},_init:function(){BI.SelectTreeMidPlusGroupNode.superclass._init.apply(this,arguments);var a=this,b=this.options;this.checkbox=BI.createWidget({type:"bi.mid_tree_node_checkbox",stopPropagation:!0}),this.text=BI.createWidget({type:"bi.label",textAlign:"left",whiteSpace:"nowrap",textHeight:b.height,height:b.height,hgap:b.hgap,text:b.text,value:b.value,py:b.py}),this.checkbox.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&(this.isSelected()?a.triggerExpand():a.triggerCollapse())});var c=BI.LogicFactory.createLogicTypeByDirection(BI.Direction.Left),d=BI.LogicFactory.createLogicItemsByDirection(BI.Direction.Left,{width:25,el:this.checkbox},this.text);BI.createWidget(BI.extend({element:this},BI.LogicFactory.createLogic(c,BI.extend(b.logic,{items:d}))))},isOnce:function(){return!0},doRedMark:function(){this.text.doRedMark.apply(this.text,arguments)},unRedMark:function(){this.text.unRedMark.apply(this.text,arguments)},doClick:function(){BI.NodeButton.superclass.doClick.apply(this,arguments)},setOpened:function(a){BI.SelectTreeMidPlusGroupNode.superclass.setOpened.apply(this,arguments),BI.isNotNull(this.checkbox)&&this.checkbox.setSelected(a)}}),BI.shortcut("bi.select_tree_mid_plus_group_node",BI.SelectTreeMidPlusGroupNode),BI.SelectTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-combo",height:30,text:"",items:[]})},_init:function(){BI.SelectTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items}),this.popup=BI.createWidget({type:"bi.select_tree_popup",items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.popup.on(BI.SingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView()})},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()},populate:function(a){this.combo.populate(a)}}),BI.shortcut("bi.select_tree_combo",BI.SelectTreeCombo),BI.SelectTreeExpander=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SelectTreeExpander.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-expander",trigger:"click",toggle:!0,direction:"bottom",isDefaultInit:!0,el:{},popup:{}})},_init:function(){BI.SelectTreeExpander.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(BI.extend({stopPropagation:!0},b.el)),this.trigger.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&this.isSelected()&&a.expander.setValue([]),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.expander=BI.createWidget({type:"bi.expander",element:this,trigger:b.trigger,toggle:b.toggle,direction:b.direction,isDefaultInit:b.isDefaultInit,el:this.trigger,popup:b.popup}),this.expander.on(BI.Controller.EVENT_CHANGE,function(b){b===BI.Events.CLICK&&a.trigger.setSelected(!1),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)})},setValue:function(a){BI.contains(a,this.trigger.getValue())?(this.trigger.setSelected(!0),this.expander.setValue([])):(this.trigger.setSelected(!1),this.expander.setValue(a))},getValue:function(){return this.trigger.isSelected()?[this.trigger.getValue()]:this.expander.getValue()},populate:function(a){this.expander.populate(a)}}),BI.shortcut("bi.select_tree_expander",BI.SelectTreeExpander),BI.SelectTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.SelectTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-select-tree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),items:[]})},_formatItems:function(a,b){var c=this;return BI.each(a,function(d,e){var f={layer:b};if(e.id=e.id||BI.UUID(),e.isParent===!0||BI.isNotEmptyArray(e.children)){switch(d){case 0:f.type="bi.select_tree_first_plus_group_node";break;case a.length-1:f.type="bi.select_tree_last_plus_group_node";break;default:f.type="bi.select_tree_mid_plus_group_node"}BI.defaults(e,f),c._formatItems(e.children)}else{switch(d){case a.length-1:f.type="bi.last_tree_leaf_item";break;default:f.type="bi.mid_tree_leaf_item"}BI.defaults(e,f)}}),a},_init:function(){BI.SelectTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.level_tree",expander:{type:"bi.select_tree_expander",isDefaultInit:!0},items:this._formatItems(BI.Tree.transformToTreeFormat(b.items)),chooseType:BI.Selection.Single}),BI.createWidget({type:"bi.vertical",element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.LevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.SelectTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.SelectTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.SelectTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.select_tree_popup",BI.SelectTreePopup),BI.SequenceTableDynamicNumber=BI.inherit(BI.SequenceTableTreeNumber,{_defaultConfig:function(){return BI.extend(BI.SequenceTableDynamicNumber.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-sequence-table-dynamic-number"})},_init:function(){BI.SequenceTableDynamicNumber.superclass._init.apply(this,arguments)},_formatNumber:function(a){function b(a){var c=0;return BI.isNotEmptyArray(a.children)?(BI.each(a.children,function(a,d){c+=b(d)}),a.children.length>1&&BI.isNotEmptyArray(a.values)&&c++):c++,c}var c=this.options,d=[],e=this._getStart(a),f=0,g=0;return BI.each(a,function(a,h){BI.isArray(h.children)&&(BI.each(h.children,function(a,h){var i=b(h);d.push({text:e++,start:f,top:g,cnt:i,index:a,height:i*c.rowSize}),f+=i,g+=i*c.rowSize}),BI.isNotEmptyArray(h.values)&&(d.push({text:BI.i18nText("BI-Summary_Values"),start:f++,top:g,cnt:1,isSummary:!0,height:c.rowSize}),g+=c.rowSize))}),d}}),BI.shortcut("bi.sequence_table_dynamic_number",BI.SequenceTableDynamicNumber),BI.SequenceTableListNumber=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SequenceTableListNumber.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-sequence-table-list-number",isNeedFreeze:!1,scrollTop:0,startSequence:1,headerRowSize:25,rowSize:25,sequenceHeaderCreator:null,header:[],items:[],crossHeader:[],crossItems:[],pageSize:20})},_init:function(){BI.SequenceTableListNumber.superclass._init.apply(this,arguments);var a=this.options;this.start=a.startSequence,this.renderedCells=[],this.renderedKeys=[],this.container=BI.createWidget({type:"bi.absolute",width:60,scrollable:!1}),this.scrollContainer=BI.createWidget({type:"bi.vertical",scrollable:!1,scrolly:!1,items:[this.container]}),this.headerContainer=BI.createWidget({type:"bi.absolute",cls:"bi-border",width:58,scrollable:!1}),this.layout=BI.createWidget({type:"bi.vtape",element:this,items:[{el:this.headerContainer,height:a.headerRowSize*a.header.length-2},{el:{type:"bi.layout"},height:2},{el:this.scrollContainer}]}),this._populate()},_layout:function(){var a=this.options,b=a.headerRowSize*a.header.length-2,c=this.layout.attr("items");a.isNeedFreeze===!1?(c[0].height=0,c[1].height=0):a.isNeedFreeze===!0&&(c[0].height=b,c[1].height=2),this.layout.attr("items",c),this.layout.resize(),this.container.setHeight(a.items.length*a.rowSize);try{this.scrollContainer.element.scrollTop(a.scrollTop)}catch(d){}},_createHeader:function(){var a=this.options;BI.createWidget({type:"bi.absolute",element:this.headerContainer,items:[{el:a.sequenceHeaderCreator||{type:"bi.table_style_cell",cls:"sequence-table-title-cell",styleGetter:a.headerCellStyleGetter,text:BI.i18nText("BI-Number_Index")},left:0,top:0,right:0,bottom:0}]})},_calculateChildrenToRender:function(){for(var a=this,b=this.options,c=BI.clamp(b.scrollTop,0,b.rowSize*b.items.length-(b.height-b.header.length*b.headerRowSize)+BI.DOM.getScrollWidth()),d=Math.floor(c/b.rowSize),e=d+Math.floor((b.height-b.header.length*b.headerRowSize)/b.rowSize),f=[],g=[],h=d,i=0;h<=e&&h-1)b.rowSize!==this.renderedCells[j]._height&&(this.renderedCells[j]._height=b.rowSize,this.renderedCells[j].el.setHeight(b.rowSize)),this.renderedCells[j].top!==k&&(this.renderedCells[j].top=k,this.renderedCells[j].el.element.css("top",k+"px")),f.push(this.renderedCells[j]);else{var l=BI.createWidget(BI.extend({type:"bi.table_style_cell",cls:"sequence-table-number-cell bi-border-left bi-border-right bi-border-bottom",width:60,height:b.rowSize,text:this.start+h,styleGetter:function(c){return function(){return b.sequenceCellStyleGetter(a.start+h-1)}}(i)}));f.push({el:l,left:0,top:k,_height:b.rowSize})}g.push(this.start+h)}var m={},n={},o=[];BI.each(g,function(b,c){BI.deepContains(a.renderedKeys,c)?m[b]=c:n[b]=c}),BI.each(this.renderedKeys,function(a,b){BI.deepContains(m,b)||BI.deepContains(n,b)||o.push(a)}),BI.each(o,function(b,c){a.renderedCells[c].el.destroy()});var p=[];BI.each(n,function(a){p.push(f[a])}),BI.createWidget({type:"bi.absolute",element:this.container,items:p}),this.renderedCells=f,this.renderedKeys=g},_populate:function(){this.headerContainer.empty(),this._createHeader(),this._layout(),this._calculateChildrenToRender()},setVerticalScroll:function(a){if(this.options.scrollTop!==a){this.options.scrollTop=a;try{this.scrollContainer.element.scrollTop(a)}catch(b){}}},getVerticalScroll:function(){return this.options.scrollTop},setVPage:function(a){a=a<1?1:a;var b=this.options;this.start=(a-1)*b.pageSize+1},_restore:function(){this.options;BI.each(this.renderedCells,function(a,b){b.el.destroy()}),this.renderedCells=[],this.renderedKeys=[]},restore:function(){this._restore()},populate:function(a,b){var c=this.options;a&&a!==this.options.items&&(c.items=a,this._restore()),b&&b!==this.options.header&&(c.header=b),this._populate()}}),BI.shortcut("bi.sequence_table_list_number",BI.SequenceTableListNumber),BI.SequenceTable=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SequenceTable.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-sequence-table",el:{type:"bi.adaptive_table"},sequence:{},isNeedResize:!0,isResizeAdapt:!1,isNeedFreeze:!1,freezeCols:[],isNeedMerge:!1,mergeCols:[],mergeRule:BI.emptyFn,columnSize:[],minColumnSize:[],maxColumnSize:[],headerRowSize:25,rowSize:25,regionColumnSize:[],headerCellStyleGetter:BI.emptyFn,summaryCellStyleGetter:BI.emptyFn,sequenceCellStyleGetter:BI.emptyFn,header:[],items:[],crossHeader:[],crossItems:[],showSequence:!1,startSequence:1})},_init:function(){BI.SequenceTable.superclass._init.apply(this,arguments);var a=this,b=this.options;this.sequence=BI.createWidget(b.sequence,{type:"bi.sequence_table_list_number",invisible:b.showSequence===!1,startSequence:b.startSequence,isNeedFreeze:b.isNeedFreeze,header:b.header,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems,headerRowSize:b.headerRowSize,rowSize:b.rowSize,width:60,height:b.height&&b.height-BI.GridTableScrollbar.SIZE,headerCellStyleGetter:b.headerCellStyleGetter,summaryCellStyleGetter:b.summaryCellStyleGetter,sequenceCellStyleGetter:b.sequenceCellStyleGetter}),this.table=BI.createWidget(b.el,{type:"bi.adaptive_table",width:b.showSequence===!0?b.width-60:b.width,height:b.height,isNeedResize:b.isNeedResize,isResizeAdapt:b.isResizeAdapt,isNeedFreeze:b.isNeedFreeze,freezeCols:b.freezeCols,isNeedMerge:b.isNeedMerge,mergeCols:b.mergeCols,mergeRule:b.mergeRule,columnSize:b.columnSize,minColumnSize:b.minColumnSize,maxColumnSize:b.maxColumnSize,headerRowSize:b.headerRowSize,rowSize:b.rowSize,regionColumnSize:b.regionColumnSize,headerCellStyleGetter:b.headerCellStyleGetter,summaryCellStyleGetter:b.summaryCellStyleGetter,sequenceCellStyleGetter:b.sequenceCellStyleGetter,header:b.header,items:b.items,crossHeader:b.crossHeader,crossItems:b.crossItems}),this.table.on(BI.Table.EVENT_TABLE_SCROLL,function(b){a.sequence.getVerticalScroll()!==this.getVerticalScroll()&&(a.sequence.setVerticalScroll(this.getVerticalScroll()),a.sequence.populate()),a.fireEvent(BI.Table.EVENT_TABLE_SCROLL,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_REGION_RESIZE,arguments)}),this.table.on(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,function(){b.regionColumnSize=this.getRegionColumnSize(),b.columnSize=this.getColumnSize(),a.fireEvent(BI.Table.EVENT_TABLE_AFTER_COLUMN_RESIZE,arguments)}),this.htape=BI.createWidget({type:"bi.absolute",element:this,items:[{el:this.sequence,left:0,top:0},{el:this.table,top:0,left:b.showSequence===!0?60:0}]}),this._populate()},_populate:function(){var a=this.options;a.showSequence===!0?(this.sequence.setVisible(!0),this.table.element.css("left","60px"),this.table.setWidth(a.width-60)):(this.sequence.setVisible(!1),this.table.element.css("left","0px"),this.table.setWidth(a.width))},setWidth:function(a){BI.PageTable.superclass.setWidth.apply(this,arguments),this.table.setWidth(this.options.showSequence?a-60:a)},setHeight:function(a){BI.PageTable.superclass.setHeight.apply(this,arguments),this.table.setHeight(a),this.sequence.setHeight(a-BI.GridTableScrollbar.SIZE)},setColumnSize:function(a){this.options.columnSize=a,this.table.setColumnSize(a)},getColumnSize:function(){return this.table.getColumnSize()},setRegionColumnSize:function(a){this.options.columnSize=a,this.table.setRegionColumnSize(a)},getRegionColumnSize:function(){return this.table.getRegionColumnSize()},hasLeftHorizontalScroll:function(){return this.table.hasLeftHorizontalScroll()},hasRightHorizontalScroll:function(){return this.table.hasRightHorizontalScroll()},setLeftHorizontalScroll:function(a){this.table.setLeftHorizontalScroll(a)},setRightHorizontalScroll:function(a){this.table.setRightHorizontalScroll(a)},setVerticalScroll:function(a){this.table.setVerticalScroll(a),this.sequence.setVerticalScroll(a)},getVerticalScroll:function(){return this.table.getVerticalScroll()},setVPage:function(a){this.sequence.setVPage&&this.sequence.setVPage(a)},setHPage:function(a){this.sequence.setHPage&&this.sequence.setHPage(a)},attr:function(){BI.SequenceTable.superclass.attr.apply(this,arguments),this.table.attr.apply(this.table,arguments),this.sequence.attr.apply(this.sequence,arguments)},restore:function(){this.table.restore(),this.sequence.restore()},populate:function(a,b,c,d){var e=this.options;a&&(e.items=a),b&&(e.header=b),c&&(e.crossItems=c),d&&(e.crossHeader=d),this._populate(),this.table.populate.apply(this.table,arguments),this.sequence.populate.apply(this.sequence,arguments),this.sequence.setVerticalScroll(this.table.getVerticalScroll())},destroy:function(){this.table.destroy(),BI.SequenceTable.superclass.destroy.apply(this,arguments)}}),BI.shortcut("bi.sequence_table",BI.SequenceTable),BI.SingleTreeCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SingleTreeCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-combo",trigger:{},height:30,text:"",items:[]})},_init:function(){BI.SingleTreeCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.trigger=BI.createWidget(BI.extend({type:"bi.single_tree_trigger",text:b.text,height:b.height,items:b.items},b.trigger)),this.popup=BI.createWidget({type:"bi.single_tree_popup",items:b.items}),this.combo=BI.createWidget({type:"bi.combo",element:this,adjustLength:2,el:this.trigger,popup:{el:this.popup}}),this.combo.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.SingleTreeCombo.EVENT_BEFORE_POPUPVIEW,arguments)}),this.popup.on(BI.SingleTreePopup.EVENT_CHANGE,function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.SingleTreeCombo.EVENT_CHANGE)})},populate:function(a){this.combo.populate(a)},setValue:function(a){a=BI.isArray(a)?a:[a],this.trigger.setValue(a),this.popup.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.SingleTreeCombo.EVENT_CHANGE="SingleTreeCombo.EVENT_CHANGE",BI.SingleTreeCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.single_tree_combo",BI.SingleTreeCombo),BI.SingleTreePopup=BI.inherit(BI.Pane,{_defaultConfig:function(){return BI.extend(BI.SingleTreePopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-popup",tipText:BI.i18nText("BI-No_Selected_Item"),items:[]})},_init:function(){BI.SingleTreePopup.superclass._init.apply(this,arguments);var a=this,b=this.options;this.tree=BI.createWidget({type:"bi.level_tree",expander:{isDefaultInit:!0},items:b.items,chooseType:BI.Selection.Single}),BI.createWidget({type:"bi.vertical",element:this,items:[this.tree]}),this.tree.on(BI.Controller.EVENT_CHANGE,function(){a.fireEvent(BI.Controller.EVENT_CHANGE,arguments)}),this.tree.on(BI.LevelTree.EVENT_CHANGE,function(){a.fireEvent(BI.SingleTreePopup.EVENT_CHANGE)}),this.check()},getValue:function(){return this.tree.getValue()},setValue:function(a){a=BI.isArray(a)?a:[a],this.tree.setValue(a)},populate:function(a){BI.SingleTreePopup.superclass.populate.apply(this,arguments),this.tree.populate(a)}}),BI.SingleTreePopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.single_tree_popup",BI.SingleTreePopup),BI.SingleTreeTrigger=BI.inherit(BI.Trigger,{_defaultConfig:function(){return BI.extend(BI.SingleTreeTrigger.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-single-tree-trigger",height:30,text:"",items:[]})},_init:function(){BI.SingleTreeTrigger.superclass._init.apply(this,arguments);var a=this.options;this.trigger=BI.createWidget({type:"bi.select_text_trigger",element:this,text:a.text,items:a.items,height:a.height})},_checkTitle:function(){var a=this,b=this.getValue();BI.any(this.options.items,function(c,d){if(b.contains(d.value))return a.trigger.setTitle(d.text||d.value),!0})},setValue:function(a){a=BI.isArray(a)?a:[a],this.options.value=a,this.trigger.setValue(a),this._checkTitle()},getValue:function(){return this.options.value||[]},populate:function(a){BI.SingleTreeTrigger.superclass.populate.apply(this,arguments),this.trigger.populate(a)}}),BI.shortcut("bi.single_tree_trigger",BI.SingleTreeTrigger),BI.SwitchTree=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.SwitchTree.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-switch-tree",items:[]})},_init:function(){BI.SwitchTree.superclass._init.apply(this,arguments);this.options;this.tab=BI.createWidget({type:"bi.tab",element:this,tab:null,defaultShowIndex:BI.SwitchTree.SelectType.SingleSelect,cardCreator:BI.bind(this._createTree,this)})},_createTree:function(a){var b=this,c=this.options;switch(a){case BI.SwitchTree.SelectType.SingleSelect:return this.levelTree=BI.createWidget({type:"bi.multilayer_single_level_tree",isDefaultInit:!0,items:BI.deepClone(c.items)}),this.levelTree.on(BI.LevelTree.EVENT_CHANGE,function(){b.fireEvent(BI.SwitchTree.EVENT_CHANGE,arguments)}),this.levelTree;case BI.SwitchTree.SelectType.MultiSelect:return this.tree=BI.createWidget({type:"bi.simple_tree",items:this._removeIsParent(BI.deepClone(c.items))}),this.tree.on(BI.SimpleTreeView.EVENT_CHANGE,function(){b.fireEvent(BI.SwitchTree.EVENT_CHANGE,arguments)}),this.tree}},_removeIsParent:function(a){return BI.each(a,function(a,b){BI.isNotNull(b.isParent)&&delete b.isParent}),a},switchSelect:function(){switch(this.getSelect()){case BI.SwitchTree.SelectType.SingleSelect:this.setSelect(BI.SwitchTree.SelectType.MultiSelect);break;case BI.SwitchTree.SelectType.MultiSelect:this.setSelect(BI.SwitchTree.SelectType.SingleSelect)}},setSelect:function(a){this.tab.setSelect(a)},getSelect:function(){return this.tab.getSelect()},setValue:function(a){switch(this.storeValue=a,this.getSelect()){case BI.SwitchTree.SelectType.SingleSelect:this.levelTree.setValue(a);break;case BI.SwitchTree.SelectType.MultiSelect:this.tree.setValue(a)}},getValue:function(){return this.tab.getValue()},populate:function(a){this.options.items=a,BI.isNotNull(this.levelTree)&&this.levelTree.populate(BI.deepClone(a)),BI.isNotNull(this.tree)&&this.tree.populate(this._removeIsParent(BI.deepClone(a)))}}),BI.SwitchTree.EVENT_CHANGE="SwitchTree.EVENT_CHANGE",BI.SwitchTree.SelectType={SingleSelect:BI.Selection.Single,MultiSelect:BI.Selection.Multi},BI.shortcut("bi.switch_tree",BI.SwitchTree),BI.TimeInterval=BI.inherit(BI.Single,{constants:{height:25,width:25,lgap:15,offset:-15,timeErrorCls:"time-error",DATE_MIN_VALUE:"1900-01-01",DATE_MAX_VALUE:"2099-12-31"},_defaultConfig:function(){var a=BI.TimeInterval.superclass._defaultConfig.apply(this,arguments);return BI.extend(a,{extraCls:"bi-time-interval"})},_init:function(){var a=this;BI.TimeInterval.superclass._init.apply(this,arguments),this.left=this._createCombo(),this.right=this._createCombo(),this.label=BI.createWidget({type:"bi.label",height:this.constants.height,width:this.constants.width,text:"-"}),BI.createWidget({element:a,type:"bi.center",hgap:15,height:this.constants.height,items:[{type:"bi.absolute",items:[{el:a.left,left:this.constants.offset,right:0,top:0,bottom:0}]},{type:"bi.absolute",items:[{el:a.right,left:0,right:this.constants.offset,top:0,bottom:0}]}]}),BI.createWidget({type:"bi.horizontal_auto",element:this,items:[a.label]})},_createCombo:function(){var a=this,b=BI.createWidget({type:"bi.multidate_combo"});return b.on(BI.MultiDateCombo.EVENT_ERROR,function(){a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls),a.fireEvent(BI.TimeInterval.EVENT_ERROR)}),b.on(BI.MultiDateCombo.EVENT_VALID,function(){BI.Bubbles.hide("error");var b=a.left.getKey(),c=a.right.getKey();a._check(b,c)&&a._compare(b,c)?(a._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),a.element.addClass(a.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),a,{offsetStyle:"center"}),a.fireEvent(BI.TimeInterval.EVENT_ERROR)):(a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls))}),b.on(BI.MultiDateCombo.EVENT_FOCUS,function(){BI.Bubbles.hide("error");var b=a.left.getKey(),c=a.right.getKey();a._check(b,c)&&a._compare(b,c)?(a._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),a.element.addClass(a.constants.timeErrorCls),BI.Bubbles.show("error",BI.i18nText("BI-Time_Interval_Error_Text"),a,{offsetStyle:"center"}),a.fireEvent(BI.TimeInterval.EVENT_ERROR)):(a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls));
+}),b.on(BI.MultiDateCombo.EVENT_BEFORE_POPUPVIEW,function(){a.left.hidePopupView(),a.right.hidePopupView()}),b.on(BI.MultiDateCombo.EVENT_CONFIRM,function(){BI.Bubbles.hide("error");var b=a.left.getKey(),c=a.right.getKey();a._check(b,c)&&a._compare(b,c)?(a._setTitle(BI.i18nText("BI-Time_Interval_Error_Text")),a.element.addClass(a.constants.timeErrorCls),a.fireEvent(BI.TimeInterval.EVENT_ERROR)):(a._clearTitle(),a.element.removeClass(a.constants.timeErrorCls),a.fireEvent(BI.TimeInterval.EVENT_CHANGE))}),b},_dateCheck:function(a){return Date.parseDateTime(a,"%Y-%x-%d").print("%Y-%x-%d")==a||Date.parseDateTime(a,"%Y-%X-%d").print("%Y-%X-%d")==a||Date.parseDateTime(a,"%Y-%x-%e").print("%Y-%x-%e")==a||Date.parseDateTime(a,"%Y-%X-%e").print("%Y-%X-%e")==a},_checkVoid:function(a){return!Date.checkVoid(a.year,a.month,a.day,this.constants.DATE_MIN_VALUE,this.constants.DATE_MAX_VALUE)[0]},_check:function(a,b){var c=a.match(/\d+/g),d=b.match(/\d+/g);return this._dateCheck(a)&&Date.checkLegal(a)&&this._checkVoid({year:c[0],month:c[1],day:c[2]})&&this._dateCheck(b)&&Date.checkLegal(b)&&this._checkVoid({year:d[0],month:d[1],day:d[2]})},_compare:function(a,b){return a=Date.parseDateTime(a,"%Y-%X-%d").print("%Y-%X-%d"),b=Date.parseDateTime(b,"%Y-%X-%d").print("%Y-%X-%d"),BI.isNotNull(a)&&BI.isNotNull(b)&&a>b},_setTitle:function(a){this.left.setTitle(a),this.right.setTitle(a),this.label.setTitle(a)},_clearTitle:function(){this.left.setTitle(""),this.right.setTitle(""),this.label.setTitle("")},setValue:function(a){a=a||{},this.left.setValue(a.start),this.right.setValue(a.end)},getValue:function(){return{start:this.left.getValue(),end:this.right.getValue()}}}),BI.TimeInterval.EVENT_VALID="EVENT_VALID",BI.TimeInterval.EVENT_ERROR="EVENT_ERROR",BI.TimeInterval.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.time_interval",BI.TimeInterval),BI.YearCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-combo",behaviors:{},min:"1900-01-01",max:"2099-12-31",height:25})},_init:function(){BI.YearCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.storeValue="",this.trigger=BI.createWidget({type:"bi.year_trigger",min:b.min,max:b.max}),this.trigger.on(BI.YearTrigger.EVENT_FOCUS,function(){a.storeValue=this.getKey()}),this.trigger.on(BI.YearTrigger.EVENT_START,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.YearTrigger.EVENT_STOP,function(){a.combo.showView()}),this.trigger.on(BI.YearTrigger.EVENT_ERROR,function(){a.combo.isViewVisible()&&a.combo.hideView()}),this.trigger.on(BI.YearTrigger.EVENT_CONFIRM,function(){a.combo.isViewVisible()||(this.getKey()&&this.getKey()!==a.storeValue?a.setValue(this.getKey()):this.getKey()||a.setValue(),a.fireEvent(BI.YearCombo.EVENT_CONFIRM))}),this.combo=BI.createWidget({type:"bi.combo",element:this,destroyWhenHide:!0,isNeedAdjustHeight:!1,isNeedAdjustWidth:!1,el:this.trigger,popup:{minWidth:85,stopPropagation:!1,el:{type:"bi.year_popup",ref:function(){a.popup=this},listeners:[{eventName:BI.YearPopup.EVENT_CHANGE,action:function(){a.setValue(a.popup.getValue()),a.combo.hideView(),a.fireEvent(BI.YearCombo.EVENT_CONFIRM)}}],behaviors:b.behaviors,min:b.min,max:b.max}}}),this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW,function(){var b=a.trigger.getKey();BI.isNotNull(b)?a.popup.setValue(b):b||b===a.storeValue?a.setValue():a.popup.setValue(a.storeValue),a.fireEvent(BI.YearCombo.EVENT_BEFORE_POPUPVIEW)})},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.popup.getValue()}}),BI.YearCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.year_combo",BI.YearCombo),BI.YearPopup=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearPopup.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-popup",behaviors:{},min:"1900-01-01",max:"2099-12-31"})},_createYearCalendar:function(a){var b=this.options,c=this._year,d=BI.createWidget({type:"bi.year_calendar",behaviors:b.behaviors,min:b.min,max:b.max,logic:{dynamic:!0},year:c+12*a});return d.setValue(this._year),d},_init:function(){BI.YearPopup.superclass._init.apply(this,arguments);var a=this;this.selectedYear=this._year=(new Date).getFullYear();var b=BI.createWidget({type:"bi.icon_button",cls:"pre-page-h-font",width:25,height:25,value:-1}),c=BI.createWidget({type:"bi.icon_button",cls:"next-page-h-font",width:25,height:25,value:1});this.navigation=BI.createWidget({type:"bi.navigation",element:this,single:!0,logic:{dynamic:!0},tab:{cls:"year-popup-navigation bi-high-light bi-border-top",height:25,items:[b,c]},cardCreator:BI.bind(this._createYearCalendar,this),afterCardShow:function(){this.setValue(a.selectedYear);var d=this.getSelectedCard();b.setEnable(!d.isFrontYear()),c.setEnable(!d.isFinalYear())}}),this.navigation.on(BI.Navigation.EVENT_CHANGE,function(){a.selectedYear=this.getValue(),a.fireEvent(BI.Controller.EVENT_CHANGE,arguments),a.fireEvent(BI.YearPopup.EVENT_CHANGE,a.selectedYear)})},getValue:function(){return this.selectedYear},setValue:function(a){var b=this.options;Date.checkVoid(a,1,1,b.min,b.max)[0]?(a=(new Date).getFullYear(),this.selectedYear="",this.navigation.setSelect(BI.YearCalendar.getPageByYear(a)),this.navigation.setValue("")):(this.selectedYear=a,this.navigation.setSelect(BI.YearCalendar.getPageByYear(a)),this.navigation.setValue(a))}}),BI.YearPopup.EVENT_CHANGE="EVENT_CHANGE",BI.shortcut("bi.year_popup",BI.YearPopup),BI.YearTrigger=BI.inherit(BI.Trigger,{_const:{hgap:4,vgap:2,triggerWidth:25,errorText:BI.i18nText("BI-Please_Input_Positive_Integer"),errorTextInvalid:BI.i18nText("BI-Year_Trigger_Invalid_Text")},_defaultConfig:function(){return BI.extend(BI.YearTrigger.superclass._defaultConfig.apply(this,arguments),{extraCls:"bi-year-trigger bi-border",min:"1900-01-01",max:"2099-12-31",height:25})},_init:function(){BI.YearTrigger.superclass._init.apply(this,arguments);var a=this,b=this.options,c=this._const;this.editor=BI.createWidget({type:"bi.sign_editor",height:b.height,validationChecker:function(d){return a.editor.setErrorText(BI.isPositiveInteger(d)?c.errorTextInvalid:c.errorText),""===d||BI.isPositiveInteger(d)&&!Date.checkVoid(d,1,1,b.min,b.max)[0]},quitChecker:function(a){return!1},hgap:c.hgap,vgap:c.vgap,allowBlank:!0,errorText:c.errorText}),this.editor.on(BI.SignEditor.EVENT_FOCUS,function(){a.fireEvent(BI.YearTrigger.EVENT_FOCUS)}),this.editor.on(BI.SignEditor.EVENT_STOP,function(){a.fireEvent(BI.YearTrigger.EVENT_STOP)}),this.editor.on(BI.SignEditor.EVENT_CONFIRM,function(){var b=a.editor.getValue();BI.isNotNull(b)&&(a.editor.setValue(b),a.editor.setTitle(b)),a.fireEvent(BI.YearTrigger.EVENT_CONFIRM)}),this.editor.on(BI.SignEditor.EVENT_SPACE,function(){a.editor.isValid()&&a.editor.blur()}),this.editor.on(BI.SignEditor.EVENT_START,function(){a.fireEvent(BI.YearTrigger.EVENT_START)}),this.editor.on(BI.SignEditor.EVENT_ERROR,function(){a.fireEvent(BI.YearTrigger.EVENT_ERROR)}),BI.createWidget({element:this,type:"bi.htape",items:[{el:this.editor},{el:{type:"bi.text_button",baseCls:"bi-trigger-year-text",text:BI.i18nText("BI-Multi_Date_Year"),width:c.triggerWidth},width:c.triggerWidth},{el:{type:"bi.trigger_icon_button",width:c.triggerWidth},width:c.triggerWidth}]})},setValue:function(a){this.editor.setState(a),this.editor.setValue(a),this.editor.setTitle(a)},getKey:function(){return 0|this.editor.getValue()}}),BI.YearTrigger.EVENT_FOCUS="EVENT_FOCUS",BI.YearTrigger.EVENT_ERROR="EVENT_ERROR",BI.YearTrigger.EVENT_START="EVENT_START",BI.YearTrigger.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearTrigger.EVENT_STOP="EVENT_STOP",BI.shortcut("bi.year_trigger",BI.YearTrigger),BI.YearMonthCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearMonthCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-month-combo",yearBehaviors:{},monthBehaviors:{},height:25})},_init:function(){BI.YearMonthCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.year=BI.createWidget({type:"bi.year_combo",behaviors:b.yearBehaviors}),this.month=BI.createWidget({type:"bi.month_combo",behaviors:b.monthBehaviors}),this.year.on(BI.YearCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearMonthCombo.EVENT_CONFIRM)}),this.year.on(BI.YearCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW)}),this.month.on(BI.MonthCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearMonthCombo.EVENT_CONFIRM)}),this.month.on(BI.MonthCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW)}),BI.createWidget({type:"bi.center",element:this,hgap:5,items:[this.year,this.month]})},setValue:function(a){a=a||{},this.month.setValue(a.month),this.year.setValue(a.year)},getValue:function(){return{year:this.year.getValue(),month:this.month.getValue()}}}),BI.YearMonthCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearMonthCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.year_month_combo",BI.YearMonthCombo),BI.YearQuarterCombo=BI.inherit(BI.Widget,{_defaultConfig:function(){return BI.extend(BI.YearQuarterCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-year-quarter-combo",yearBehaviors:{},quarterBehaviors:{},height:25})},_init:function(){BI.YearQuarterCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;this.year=BI.createWidget({type:"bi.year_combo",behaviors:b.yearBehaviors}),this.quarter=BI.createWidget({type:"bi.quarter_combo",behaviors:b.quarterBehaviors}),this.year.on(BI.YearCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_CONFIRM)}),this.year.on(BI.YearCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW)}),this.quarter.on(BI.QuarterCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_CONFIRM)}),this.quarter.on(BI.QuarterCombo.EVENT_BEFORE_POPUPVIEW,function(){a.fireEvent(BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW)}),BI.createWidget({type:"bi.center",element:this,hgap:5,items:[this.year,this.quarter]})},setValue:function(a){a=a||{},this.quarter.setValue(a.quarter),this.year.setValue(a.year)},getValue:function(){return{year:this.year.getValue(),quarter:this.quarter.getValue()}}}),BI.YearQuarterCombo.EVENT_CONFIRM="EVENT_CONFIRM",BI.YearQuarterCombo.EVENT_BEFORE_POPUPVIEW="EVENT_BEFORE_POPUPVIEW",BI.shortcut("bi.year_quarter_combo",BI.YearQuarterCombo),BI.AbstractAllValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractAllValueChooser.superclass._defaultConfig.apply(this,arguments),{width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_valueFormatter:function(a){var b=a;return BI.isNotNull(this.items)&&BI.some(this.items,function(c,d){if(d.value===a)return b=d.text,!0}),b},_itemsCreator:function(a,b){function c(c){var d=(a.keywords||[]).slice();if(a.keyword&&d.push(a.keyword),BI.each(d,function(a,b){var d=BI.Func.getSearchResult(c,b);c=d.matched.concat(d.finded)}),a.selectedValues){var e=BI.makeObject(a.selectedValues,!0);c=BI.filter(c,function(a,b){return!e[b.value]})}return a.type===BI.MultiSelectCombo.REQ_GET_ALL_DATA?void b({items:c}):a.type===BI.MultiSelectCombo.REQ_GET_DATA_LENGTH?void b({count:c.length}):void b({items:c,hasNext:!1})}var d=this,e=this.options;e.cache&&this.items?c(this.items):e.itemsCreator({},function(a){d.items=a,c(a)})}}),BI.AllValueChooserCombo=BI.inherit(BI.AbstractAllValueChooser,{_defaultConfig:function(){return BI.extend(BI.AllValueChooserCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-all-value-chooser-combo",width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_init:function(){BI.AllValueChooserCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&(this.items=b.items),this.combo=BI.createWidget({type:"bi.multi_select_combo",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.combo.on(BI.MultiSelectCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.AllValueChooserCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue({type:BI.Selection.Multi,value:a||[]})},getValue:function(){var a=this.combo.getValue()||{};return a.type===BI.Selection.All?a.assist:a.value||[]},populate:function(){this.combo.populate.apply(this,arguments)}}),BI.AllValueChooserCombo.EVENT_CONFIRM="AllValueChooserCombo.EVENT_CONFIRM",BI.shortcut("bi.all_value_chooser_combo",BI.AllValueChooserCombo),BI.AllValueChooserPane=BI.inherit(BI.AbstractAllValueChooser,{_defaultConfig:function(){return BI.extend(BI.AllValueChooserPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-all-value-chooser-pane",width:200,height:30,items:null,itemsCreator:BI.emptyFn,cache:!0})},_init:function(){BI.AllValueChooserPane.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&(this.items=b.items),this.list=BI.createWidget({type:"bi.multi_select_list",element:this,itemsCreator:BI.bind(this._itemsCreator,this),valueFormatter:BI.bind(this._valueFormatter,this),width:b.width,height:b.height}),this.list.on(BI.MultiSelectList.EVENT_CHANGE,function(){a.fireEvent(BI.AllValueChooserPane.EVENT_CHANGE)})},setValue:function(a){this.list.setValue({type:BI.Selection.Multi,value:a||[]})},getValue:function(){var a=this.list.getValue()||{};return a.type===BI.Selection.All?a.assist:a.value||[]},populate:function(){this.list.populate.apply(this.list,arguments)}}),BI.AllValueChooserPane.EVENT_CHANGE="AllValueChooserPane.EVENT_CHANGE",BI.shortcut("bi.all_value_chooser_pane",BI.AllValueChooserPane),BI.AbstractTreeValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractTreeValueChooser.superclass._defaultConfig.apply(this,arguments),{items:null,itemsCreator:BI.emptyFn})},_initData:function(a){this.items=a;var b=BI.Tree.treeFormat(a);this.tree=new BI.Tree,this.tree.initTree(b)},_itemsCreator:function(a,b){function c(){switch(a.type){case BI.TreeView.REQ_TYPE_INIT_DATA:d._reqInitTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_ADJUST_DATA:d._reqAdjustTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_SELECT_DATA:d._reqSelectedTreeNode(a,b);break;case BI.TreeView.REQ_TYPE_GET_SELECTED_DATA:d._reqDisplayTreeNode(a,b);break;default:d._reqTreeNode(a,b)}}var d=this,e=this.options;this.items?c():e.itemsCreator({},function(a){d._initData(a),c()})},_reqDisplayTreeNode:function(a,b){function c(a,b,g){return null==g||BI.isEmpty(g)?void BI.each(b.getChildren(),function(d,g){var h=BI.clone(a);h.push(g.value);var i=f._getChildCount(h);e(g,b.id,i),c(h,g,{})}):void BI.each(g,function(b){var h=f._getTreeNode(a,b),i=BI.clone(a);i.push(h.value),e(h,h.parent&&h.parent.id,d(g[b],i)),c(i,h,g[b])})}function d(a,b){return null==a?0:BI.isEmpty(a)?f._getChildCount(b):BI.size(a)}function e(a,b,c){g.push({id:a.id,pId:b,text:a.text+(c>0?"("+BI.i18nText("BI-Basic_Altogether")+c+BI.i18nText("BI-Basic_Count")+")":""),value:a.value,open:!0})}var f=this,g=[],h=a.selectedValues;return null==h||BI.isEmpty(h)?void b({}):(c([],this.tree.getRoot(),h),void b({items:g}))},_reqSelectedTreeNode:function(a,b){function c(a){var b=m.concat(k);if(g(a,b))if(f(b))i._deleteNode(a,b);else{var c=[],j=e(m,k,[],c);j&&BI.isNotEmptyArray(c)&&BI.each(c,function(b,c){var e=i._getNode(a,c);e?i._deleteNode(a,c):d(a,c,BI.last(c))})}if(h(a,b)){var l=[],j=!1;f(b)?j=!0:(j=e(m,k,l),b=m),j===!0&&(d(a,b,k),l.length>0&&BI.each(l,function(b,c){i._buildTree(a,c)}))}}function d(a,b,c){var d=a,e=[],f=[];BI.some(b,function(g,h){var j=d[h];if(null==j){if(0===g)return!0;if(!BI.isEmpty(d))return!0;var k=b.slice(0,g),l=i._getChildren(k);if(f.push(k),e.push(l.length),g===b.length-1&&1===l.length&&l[0]===c)for(var m=e.length-1;m>=0&&1===e[m];m--)i._deleteNode(a,f[m]);else BI.each(l,function(a,e){return g===b.length-1&&e.value===c||void(d[e.value]={})});d=d[h]}else d=j})}function e(a,b,c,d){var f=BI.clone(a);if(f.push(b),i._isMatch(a,b,l))return d&&d.push(f),!0;var g=i._getChildren(f),h=[],j=!1;return BI.each(g,function(a,b){e(f,b.value,c,d)?j=!0:h.push(b.value)}),j===!0&&BI.each(h,function(a,b){var d=BI.clone(f);d.push(b),c.push(d)}),j}function f(a){for(var b=0,c=a.length;bj._const.perPage)break}return f}function d(a,b,c,i,k){if(j._isMatch(b,c,l)){var m=i||h(b,c);return e(b,c,!1,m,!i&&f(b,c),!0,k),[!0,m]}var n=BI.clone(b);n.push(c);var o=j._getChildren(n),p=!1,m=!1,q=i||g(b,c);return BI.each(o,function(b,c){var e=d(a+1,n,c.value,q,k);e[1]===!0&&(m=!0),e[0]===!0&&(p=!0)}),p===!0&&(m=q||h(b,c)&&m,e(b,c,!0,m,!1,!1,k)),[p,m]}function e(a,b,c,d,e,f,g){var h=j._getTreeNode(a,b);g.push({id:h.id,pId:h.pId,text:h.text,value:h.value,title:h.title,isParent:h.getChildrenLength()>0,open:c,checked:d,halfCheck:e,flag:f})}function f(a,b){var c=i(a);return null==c?null:BI.any(c,function(a,c){if(a===b&&null!=c&&!BI.isEmpty(c))return!0})}function g(a,b){var c=i(a);return null==c?null:BI.any(c,function(a,c){if(a===b&&null!=c&&BI.isEmpty(c))return!0})}function h(a,b){var c=i(a);return null!=c&&BI.any(c,function(a){if(a===b)return!0})}function i(a){var b=m;return null==b?null:(BI.every(a,function(a,c){return b=b[c],null!=b}),b)}var j=this,k=[],l=a.keyword||"",m=a.selectedValues,n=a.lastSearchValue||"",o=c();BI.nextTick(function(){b({hasNext:o.length>j._const.perPage,items:k,lastSearchValue:BI.last(o)})})},_reqTreeNode:function(a,b){function c(a,b){var c={};return BI.each(a,function(a,c){b=b[c]||{}}),BI.each(b,function(a,b){if(BI.isNull(b))return void(c[a]=[0,0]);if(BI.isEmpty(b))return void(c[a]=[2,0]);var d={};BI.each(b,function(a,b){(BI.isNull(b)||BI.isEmpty(b))&&(d[a]=!0)}),c[a]=[1,BI.size(d)]}),c}function d(a,b,c,d){var f=d.checked,g=d.half,h=!1,i=!1;if(BI.has(c,a))if(1===c[a][0]){var j=BI.clone(b);j.push(a);var k=e._getChildCount(j);k>0&&k!==c[a][1]&&(i=!0)}else 2===c[a][0]&&(h=!0);var l;return l=f||i||h?(h||f)&&!g||BI.has(c,a):BI.has(c,a),[l,i]}var e=this,f=[],g=a.times,h=a.checkState||{},i=a.parentValues||[],j=a.selectedValues||{},k={};k=c(i,j);for(var l=this._getChildren(i),m=(g-1)*this._const.perPage;l[m]&&m0,checked:n[0],halfCheck:n[1]})}BI.nextTick(function(){b({items:f,hasNext:l.length>g*e._const.perPage})})},_getNode:function(a,b){for(var c=a,d=0,e=b.length;d0&&BI.isEmpty(e);)c=d[d.length-1],d=d.slice(0,d.length-1),e=this._getNode(a,d),null!=e&&delete e[c]},_buildTree:function(a,b){var c=a;BI.each(b,function(a,b){BI.has(c,b)||(c[b]={}),c=c[b]})},_isMatch:function(a,b,c){var d=this._getTreeNode(a,b),e=BI.Func.getSearchResult([d.text||d.value],c);return e.finded.length>0||e.matched.length>0},_getTreeNode:function(a,b){var c,d=this,e=0;return this.tree.traverse(function(f){if(!d.tree.isRoot(f))return!(e>a.length)&&(e===a.length&&f.value===b?(c=f,!1):f.value!==a[e]||void e++)}),c},_getChildren:function(a){if(a.length>0)var b=BI.last(a),c=this._getTreeNode(a.slice(0,a.length-1),b);else var c=this.tree.getRoot();return c.getChildren()},_getChildCount:function(a){return this._getChildren(a).length}}),BI.TreeValueChooserCombo=BI.inherit(BI.AbstractTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.TreeValueChooserCombo.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tree-value-chooser-combo",width:200,height:30,items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.TreeValueChooserCombo.superclass._init.apply(this,arguments);var a=this,b=this.options;BI.isNotNull(b.items)&&this._initData(b.items),this.combo=BI.createWidget({type:"bi.multi_tree_combo",element:this,itemsCreator:BI.bind(this._itemsCreator,this),width:b.width,height:b.height}),this.combo.on(BI.MultiTreeCombo.EVENT_CONFIRM,function(){a.fireEvent(BI.TreeValueChooserCombo.EVENT_CONFIRM)})},setValue:function(a){this.combo.setValue(a)},getValue:function(){return this.combo.getValue()},populate:function(){this.combo.populate.apply(this.combo,arguments)}}),BI.TreeValueChooserCombo.EVENT_CONFIRM="TreeValueChooserCombo.EVENT_CONFIRM",BI.shortcut("bi.tree_value_chooser_combo",BI.TreeValueChooserCombo),BI.TreeValueChooserPane=BI.inherit(BI.AbstractTreeValueChooser,{_defaultConfig:function(){return BI.extend(BI.TreeValueChooserPane.superclass._defaultConfig.apply(this,arguments),{baseCls:"bi-tree-value-chooser-pane",items:null,itemsCreator:BI.emptyFn})},_init:function(){BI.TreeValueChooserPane.superclass._init.apply(this,arguments);var a=this,b=this.options;this.pane=BI.createWidget({type:"bi.multi_select_tree",element:this,itemsCreator:BI.bind(this._itemsCreator,this)}),this.pane.on(BI.MultiSelectTree.EVENT_CHANGE,function(){a.fireEvent(BI.TreeValueChooserPane.EVENT_CHANGE)}),BI.isNotNull(b.items)&&(this._initData(b.items),this.populate())},setSelectedValue:function(a){this.pane.setSelectedValue(a)},setValue:function(a){this.pane.setValue(a)},getValue:function(){return this.pane.getValue()},populate:function(){this.pane.populate.apply(this.pane,arguments)}}),BI.TreeValueChooserPane.EVENT_CHANGE="TreeValueChooserPane.EVENT_CHANGE",BI.shortcut("bi.tree_value_chooser_pane",BI.TreeValueChooserPane),BI.AbstractValueChooser=BI.inherit(BI.Widget,{_const:{perPage:100},_defaultConfig:function(){return BI.extend(BI.AbstractValueChooser.superclass._defaultConfig.apply(this,arguments),{items:null,itemsCreator:BI.emptyFn,cache:!0})},_valueFormatter:function(a){var b=a;return BI.isNotNull(this.items)&&BI.some(this.items,function(c,d){if(d.value===a)return b=d.text,!0}),b},_getItemsByTimes:function(a,b){for(var c=[],d=(b-1)*this._const.perPage;a[d]&&d