Your IP : 52.15.48.21
{"version":3,"file":"counterpanel.bundle.js","sources":["../src/item.js","../src/panel.js"],"sourcesContent":["import { Dom, Tag, Type } from 'main.core';\nimport { Counter } from 'ui.cnt';\nimport { EventEmitter } from \"main.core.events\";\nimport 'ui.design-tokens';\n\nexport default class CounterItem\n{\n\tconstructor(args)\n\t{\n\t\tthis.id = args.id ? args.id : null;\n\t\tthis.separator = Type.isBoolean(args.separator) ? args.separator : true;\n\t\tthis.items = Type.isArray(args.items) ? args.items : [];\n\t\tthis.popupMenu = null;\n\t\tthis.isActive = Type.isBoolean(args.isActive) ? args.isActive : false;\n\t\tthis.isRestricted = Type.isBoolean(args.isRestricted) ? args.isRestricted : false;\n\t\tthis.panel = args.panel ? args.panel : null;\n\t\tthis.title = args.title ? args.title : null;\n\t\tthis.value = (Type.isNumber(args.value) && args.value !== undefined) ? args.value : null;\n\t\tthis.titleOrder = null;\n\t\tthis.valueOrder = null;\n\t\tthis.color = args.color ? args.color : null;\n\t\tthis.parent = Type.isBoolean(args.parent) ? args.parent : null;\n\t\tthis.parentId = args.parentId ? args.parentId : null;\n\t\tthis.locked = false;\n\t\tthis.type = Type.isString(args.type) ? args.type.toLowerCase() : null;\n\t\tthis.eventsForActive = Type.isObject(args.eventsForActive) ? args.eventsForActive : {};\n\t\tthis.eventsForUnActive = Type.isObject(args.eventsForUnActive) ? args.eventsForUnActive : {};\n\n\t\tif (Type.isObject(args.title))\n\t\t{\n\t\t\tthis.title = args.title.value ? args.title.value : null;\n\t\t\tthis.titleOrder = Type.isNumber(args.title.order) ? args.title.order : null;\n\t\t}\n\n\t\tif (Type.isObject(args.value))\n\t\t{\n\t\t\tthis.value = Type.isNumber(args.value.value) ? args.value.value : null;\n\t\t\tthis.valueOrder = Type.isNumber(args.value.order) ? args.value.order : null;\n\t\t}\n\n\t\tthis.layout = {\n\t\t\tcontainer: null,\n\t\t\tvalue: null,\n\t\t\ttitle: null,\n\t\t\tcross: null,\n\t\t\tdropdownArrow: null,\n\t\t\tmenuItem: null\n\t\t};\n\n\t\tthis.counter = this.#getCounter();\n\n\t\tif (!this.#getPanel().isMultiselect())\n\t\t{\n\t\t\tthis.#bindEvents();\n\t\t}\n\t}\n\n\tgetItems()\n\t{\n\t\treturn this.items;\n\t}\n\n\thasParentId()\n\t{\n\t\treturn this.parentId;\n\t}\n\n\t#bindEvents()\n\t{\n\t\tEventEmitter.subscribe('BX.UI.CounterPanel.Item:activate', (item) => {\n\t\t\tconst isLinkedItems = item.data.parentId === this.id;\n\t\t\tif (item.data !== this && !isLinkedItems)\n\t\t\t{\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t});\n\t}\n\n\tupdateValue(param: Number)\n\t{\n\t\tif (Type.isNumber(param))\n\t\t{\n\t\t\tthis.value = param;\n\t\t\tthis.#getCounter().update(param);\n\n\t\t\tif (param === 0)\n\t\t\t{\n\t\t\t\tthis.updateColor(this.parentId ? 'GRAY' : 'THEME');\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateValueAnimate(param: Number)\n\t{\n\t\tif (Type.isNumber(param))\n\t\t{\n\t\t\tthis.value = param;\n\t\t\tthis.#getCounter().update(param);\n\t\t\tthis.#getCounter().show();\n\n\t\t\tif (param === 0)\n\t\t\t{\n\t\t\t\tthis.updateColor(this.parentId ? 'GRAY' : 'THEME');\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateColor(param: string)\n\t{\n\t\tif (Type.isString(param))\n\t\t{\n\t\t\tthis.color = param;\n\t\t\tthis.#getCounter().setColor(Counter.Color[param]);\n\t\t}\n\t}\n\n\tactivate(isEmitEvent: boolean = true)\n\t{\n\t\tthis.isActive = true;\n\t\tif (this.parentId)\n\t\t{\n\t\t\tconst target = BX.findParent(\n\t\t\t\tthis.getContainerMenu(),\n\t\t\t\t{\n\t\t\t\t\t'className': 'ui-counter-panel__popup-item'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (target)\n\t\t\t{\n\t\t\t\ttarget.classList.add('--active');\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getContainer().classList.add('--active');\n\t\t}\n\n\t\tif (isEmitEvent)\n\t\t{\n\t\t\tEventEmitter.emit('BX.UI.CounterPanel.Item:activate', this);\n\t\t}\n\t}\n\n\tdeactivate(isEmitEvent: boolean = true)\n\t{\n\t\tthis.isActive = false;\n\t\tif (this.parentId)\n\t\t{\n\t\t\tconst target = BX.findParent(\n\t\t\t\tthis.getContainerMenu(),\n\t\t\t\t{\n\t\t\t\t\t'className': 'ui-counter-panel__popup-item'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (target)\n\t\t\t{\n\t\t\t\ttarget.classList.remove('--active');\n\t\t\t\ttarget.classList.remove('--hover');\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getContainer().classList.remove('--active');\n\t\t\tthis.getContainer().classList.remove('--hover');\n\t\t}\n\n\t\tif (isEmitEvent)\n\t\t{\n\t\t\tEventEmitter.emit('BX.UI.CounterPanel.Item:deactivate', this);\n\t\t}\n\t}\n\n\tgetSeparator()\n\t{\n\t\treturn this.separator;\n\t}\n\n\t#getPanel()\n\t{\n\t\treturn this.panel;\n\t}\n\n\t#getCounter(value: Number, color: String)\n\t{\n\t\tif (!this.counter)\n\t\t{\n\t\t\tthis.counter = new Counter({\n\t\t\t\tvalue: this.value,\n\t\t\t\tcolor: this.color ? Counter.Color[this.color.toUpperCase()] : (this.parentId ? Counter.Color.GRAY : Counter.Color.THEME),\n\t\t\t\tanimation: false\n\t\t\t});\n\t\t}\n\n\t\treturn this.counter;\n\t}\n\n\t#getValue()\n\t{\n\t\tif (!this.layout.value)\n\t\t{\n\t\t\tconst counterValue = this.isRestricted\n\t\t\t\t? Tag.render`<div class=\"ui-counter-panel__item-lock\"></div>`\n\t\t\t\t: this.#getCounter().getContainer();\n\n\t\t\tthis.layout.value = Tag.render`\n\t\t\t\t<div class=\"ui-counter-panel__item-value\">\n\t\t\t\t\t${counterValue}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tthis.layout.value.style.setProperty('order', this.valueOrder);\n\t\t}\n\n\t\treturn this.layout.value;\n\t}\n\n\t#getTitle()\n\t{\n\t\tif (!this.layout.title)\n\t\t{\n\t\t\tthis.layout.title = Tag.render`\n\t\t\t\t<div class=\"ui-counter-panel__item-title\">${this.title}</div>\n\t\t\t`;\n\n\t\t\tthis.layout.title.style.setProperty('order', this.titleOrder);\n\t\t}\n\n\t\treturn this.layout.title;\n\t}\n\n\t#getCross()\n\t{\n\t\tif (!this.layout.cross)\n\t\t{\n\t\t\tthis.layout.cross = Tag.render`\n\t\t\t\t<div class=\"ui-counter-panel__item-cross\">\n\t\t\t\t\t<i></i>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.cross;\n\t}\n\n\tsetEvents(container)\n\t{\n\t\tif (!container) \n\t\t{\n\t\t\tcontainer = this.getContainer();\n\t\t}\n\t\t\n\t\tif (this.eventsForActive)\n\t\t{\n\t\t\tconst eventKeys = Object.keys(this.eventsForActive);\n\n\t\t\tfor (let i = 0; i < eventKeys.length; i++)\n\t\t\t{\n\t\t\t\tlet event = eventKeys[i];\n\t\t\t\tcontainer.addEventListener(event, () => {\n\t\t\t\t\tif (this.isActive)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.eventsForActive[event]();\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (this.eventsForUnActive)\n\t\t{\n\t\t\tconst eventKeys = Object.keys(this.eventsForUnActive);\n\n\t\t\tfor (let i = 0; i < eventKeys.length; i++)\n\t\t\t{\n\t\t\t\tlet event = eventKeys[i];\n\t\t\t\tcontainer.addEventListener(event, () => {\n\t\t\t\t\tif (!this.isActive)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.eventsForUnActive[event]();\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tisLocked()\n\t{\n\t\treturn this.locked;\n\t}\n\n\tlock()\n\t{\n\t\tthis.locked = true;\n\t\tthis.getContainer().classList.add('--locked');\n\t}\n\n\tunLock()\n\t{\n\t\tthis.locked = false;\n\t\tthis.getContainer().classList.remove('--locked');\n\t}\n\n\tgetArrowDropdown()\n\t{\n\t\tif (!this.layout.dropdownArrow)\n\t\t{\n\t\t\tthis.layout.dropdownArrow = Tag.render`\n\t\t\t\t<div class=\"ui-counter-panel__item-dropdown\">\n\t\t\t\t\t<i></i>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.dropdownArrow;\n\t}\n\n\tgetContainerMenu()\n\t{\n\t\tif (!this.layout.menuItem)\n\t\t{\n\t\t\tthis.layout.menuItem = Tag.render`\n\t\t\t\t<span>\n\t\t\t\t\t${this.#getValue()}\n\t\t\t\t\t${this.title}\n\t\t\t\t\t${this.#getCross()}\n\t\t\t\t</span>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.menuItem;\n\t}\n\n\tgetContainer()\n\t{\n\t\tif (!this.layout.container)\n\t\t{\n\t\t\tconst type = this.type ? `id=\"ui-counter-panel-item-${this.type}\"` : '';\n\t\t\tconst isValue = Type.isNumber(this.value);\n\n\t\t\tthis.layout.container = Tag.render`\n\t\t\t\t<div ${type} class=\"ui-counter-panel__item\">\n\t\t\t\t\t${isValue ? this.#getValue() : ''}\n\t\t\t\t\t${this.title ? this.#getTitle() : ''}\n\t\t\t\t\t${isValue ? this.#getCross() : ''}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tif (this.parent)\n\t\t\t{\n\t\t\t\tthis.layout.container = Tag.render`\n\t\t\t\t\t<div class=\"ui-counter-panel__item\">\n\t\t\t\t\t\t${this.title ? this.#getTitle() : ''}\n\t\t\t\t\t\t${isValue ? this.#getValue() : ''}\n\t\t\t\t\t\t${this.#getCross()}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\n\t\t\t\tthis.#getCross().addEventListener('click', (ev) => {\n\t\t\t\t\tthis.deactivate();\n\t\t\t\t\tev.stopPropagation();\n\t\t\t\t});\n\n\t\t\t\tDom.addClass(this.layout.container, '--dropdown');\n\t\t\t}\n\n\t\t\tif (!isValue)\n\t\t\t{\n\t\t\t\tthis.layout.container.classList.add('--string');\n\t\t\t}\n\n\t\t\tif (!isValue && !this.eventsForActive && !this.eventsForUnActive)\n\t\t\t{\n\t\t\t\tthis.layout.container.classList.add('--title');\n\t\t\t}\n\n\t\t\tif (!this.separator)\n\t\t\t{\n\t\t\t\tthis.layout.container.classList.add('--without-separator');\n\t\t\t}\n\n\t\t\tif (this.locked)\n\t\t\t{\n\t\t\t\tthis.layout.container.classList.add('--locked');\n\t\t\t}\n\n\t\t\tif (this.isActive)\n\t\t\t{\n\t\t\t\tthis.activate();\n\t\t\t}\n\n\t\t\tif (this.isRestricted)\n\t\t\t{\n\t\t\t\tthis.layout.container.classList.add('--restricted');\n\t\t\t}\n\n\t\t\tthis.setEvents(this.layout.container);\n\n\t\t\tif (isValue && this.items.length === 0)\n\t\t\t{\n\t\t\t\tif (!this.parent)\n\t\t\t\t{\n\t\t\t\t\tthis.layout.container.addEventListener('mouseenter', () => {\n\t\t\t\t\t\tif (!this.isActive)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.layout.container.classList.add('--hover');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.layout.container.addEventListener('mouseleave', () => {\n\t\t\t\t\t\tif (!this.isActive)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.layout.container.classList.remove('--hover');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.layout.container.addEventListener('click', () => {\n\t\t\t\t\t\tthis.isActive\n\t\t\t\t\t\t\t? this.deactivate()\n\t\t\t\t\t\t\t: this.activate();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.parent)\n\t\t\t{\n\t\t\t\tDom.append(this.getArrowDropdown(), this.layout.container);\n\t\t\t}\n\t\t}\n\n\t\treturn this.layout.container;\n\t}\n}\n","import { Dom, Tag, Type } from 'main.core';\nimport { PopupMenuWindow } from 'main.popup';\nimport CounterItem from './item';\nimport './style.css';\n\ntype CounterPanelOptions = {\n\ttarget: HTMLElement;\n\titems: Array;\n\tmultiselect: boolean;\n\ttitle: string;\n}\n\nexport default class CounterPanel\n{\n\tconstructor(options: CounterPanelOptions)\n\t{\n\t\tthis.target = Type.isDomNode(options.target) ? options.target : null;\n\t\tthis.items = Type.isArray(options.items) ? options.items : [];\n\t\tthis.multiselect = Type.isBoolean(options.multiselect) ? options.multiselect : null;\n\t\tthis.title = Type.isStringFilled(options.title) ? options.title : null;\n\t\tthis.container = null;\n\t\tthis.keys = [];\n\t\tthis.hasParent = [];\n\t}\n\n\t#adjustData()\n\t{\n\t\tthis.items = this.items.map(item => {\n\t\t\titem.panel = this;\n\t\t\tthis.keys.push(item.id);\n\t\t\tif (item.parentId)\n\t\t\t{\n\t\t\t\tthis.hasParent.push(item.parentId);\n\t\t\t}\n\t\t\treturn new CounterItem(item);\n\t\t});\n\n\t\tthis.hasParent.forEach(item => {\n\t\t\tlet index = this.keys.indexOf(item);\n\t\t\tthis.items[index].parent = true;\n\t\t});\n\n\t\tthis.items.map(item => {\n\t\t\tif (item.parentId)\n\t\t\t{\n\t\t\t\tlet index = this.keys.indexOf(item.parentId);\n\t\t\t\tthis.items[index].items.push(item.id);\n\t\t\t}\n\t\t});\n\t}\n\n\n\tisMultiselect()\n\t{\n\t\treturn this.multiselect;\n\t}\n\n\tgetItems()\n\t{\n\t\treturn this.items;\n\t}\n\n\tgetItemById(param)\n\t{\n\t\tif (param)\n\t\t{\n\t\t\tconst index = this.keys.indexOf(param);\n\t\t\treturn this.items[index];\n\t\t}\n\t}\n\n\t#getContainer()\n\t{\n\t\tif (!this.container)\n\t\t{\n\t\t\tlet myHead = '';\n\t\t\tif (this.title)\n\t\t\t{\n\t\t\t\tmyHead = Tag.render`\n\t\t\t\t\t<div class=\"ui-counter-panel__item-head\">${this.title}</div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\tthis.container = Tag.render`\n\t\t\t\t<div class=\"ui-counter-panel ui-counter-panel__scope\">${myHead}</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.container;\n\t}\n\n\t#render()\n\t{\n\t\tif (this.target && this.items.length > 0)\n\t\t{\n\t\t\tthis.items.map((item, key) => {\n\t\t\t\tif (item instanceof CounterItem)\n\t\t\t\t{\n\t\t\t\t\tif (!item.hasParentId())\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.#getContainer().appendChild(item.getContainer());\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthis.items.length !== key + 1\n\t\t\t\t\t\t\t&& this.items.length > 1\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.#getContainer().appendChild(Tag.render`\n\t\t\t\t\t\t\t\t<div class=\"ui-counter-panel__item-separator ${!item.getSeparator() ? '--invisible' : ''}\"></div>\n\t\t\t\t\t\t\t`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (item.parent)\n\t\t\t\t\t{\n\t\t\t\t\t\titem.getContainer().addEventListener('click', () => {\n\t\t\t\t\t\t\tconst itemsArr = [];\n\t\t\t\t\t\t\titem.getItems().forEach(item => {\n\t\t\t\t\t\t\t\tconst itemCounter = this.getItemById(item);\n\t\t\t\t\t\t\t\tlet test = {\n\t\t\t\t\t\t\t\t\thtml: itemCounter.getContainerMenu(),\n\t\t\t\t\t\t\t\t\tclassName: `ui-counter-panel__popup-item menu-popup-no-icon ${itemCounter.isActive ? '--active' : ''}`,\n\t\t\t\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\t\t\t\titemCounter.isActive\n\t\t\t\t\t\t\t\t\t\t\t? itemCounter.deactivate()\n\t\t\t\t\t\t\t\t\t\t\t: itemCounter.activate();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\titemsArr.push(test);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst popup = new PopupMenuWindow({\n\t\t\t\t\t\t\t\tclassName: 'ui-counter-panel__popup ui-counter-panel__scope',\n\t\t\t\t\t\t\t\tbindElement: item.getArrowDropdown(),\n\t\t\t\t\t\t\t\tautoHide: true,\n\t\t\t\t\t\t\t\tcloseByEsc : true,\n\t\t\t\t\t\t\t\titems: itemsArr,\n\t\t\t\t\t\t\t\tangle: true,\n\t\t\t\t\t\t\t\toffsetLeft: 6,\n\t\t\t\t\t\t\t\toffsetTop: 5,\n\t\t\t\t\t\t\t\tanimation: 'fading-slide',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tonPopupShow: () => {\n\t\t\t\t\t\t\t\t\t\titem.getContainer().classList.add('--hover');\n\t\t\t\t\t\t\t\t\t\titem.getContainer().classList.add('--pointer-events-none');\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\t\t\t\t\titem.getContainer().classList.remove('--hover');\n\t\t\t\t\t\t\t\t\t\titem.getContainer().classList.remove('--pointer-events-none');\n\t\t\t\t\t\t\t\t\t\tpopup.destroy();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tpopup.show();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tDom.clean(this.target);\n\t\t\tthis.target.appendChild(this.#getContainer());\n\t\t}\n\t}\n\n\tinit()\n\t{\n\t\tthis.#adjustData();\n\t\tthis.#render();\n\t}\n}\n"],"names":["CounterItem","args","id","separator","Type","isBoolean","items","isArray","popupMenu","isActive","isRestricted","panel","title","value","isNumber","undefined","titleOrder","valueOrder","color","parent","parentId","locked","type","isString","toLowerCase","eventsForActive","isObject","eventsForUnActive","order","layout","container","cross","dropdownArrow","menuItem","counter","isMultiselect","param","update","updateColor","show","setColor","Counter","Color","isEmitEvent","target","BX","findParent","getContainerMenu","classList","add","getContainer","EventEmitter","emit","remove","eventKeys","Object","keys","i","length","event","addEventListener","Tag","render","isValue","ev","deactivate","stopPropagation","Dom","addClass","activate","setEvents","append","getArrowDropdown","subscribe","item","isLinkedItems","data","toUpperCase","GRAY","THEME","animation","counterValue","style","setProperty","CounterPanel","options","_classPrivateMethodInitSpec","isDomNode","multiselect","isStringFilled","hasParent","index","indexOf","_classPrivateMethodGet","map","push","forEach","myHead","key","hasParentId","appendChild","getSeparator","itemsArr","getItems","itemCounter","getItemById","test","html","className","onclick","popup","PopupMenuWindow","bindElement","autoHide","closeByEsc","angle","offsetLeft","offsetTop","events","onPopupShow","onPopupClose","destroy","clean"],"mappings":"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"}