File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/ui/menu-configurable/dist/menu-configurable.bundle.js.map
Back
{"version":3,"file":"menu-configurable.bundle.js","sources":["../src/menu-configurable.js"],"sourcesContent":["import {Runtime, Dom, Type, Loc} from 'main.core';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {Menu as MainMenu, MenuManager} from 'main.popup';\nimport type {MenuItemOptions} from \"main.popup\";\nimport {Draggable} from 'ui.draganddrop.draggable';\n\nexport type Parameters = {\n\tid: string,\n\titems: Item[],\n\tbindElement: ?HTMLElement,\n\tmaxVisibleItems: ?number,\n}\n\nexport type Item = {\n\tisHidden: boolean,\n\ttext: ?string,\n\thtml: ?string,\n\tid: ?string,\n\tonclick: ?Function,\n}\n\nexport class Menu extends EventEmitter\n{\n\t#id: string;\n\t#items: Array;\n\t#menu: MainMenu;\n\t#bindElement: ?HTMLElement;\n\t#draggable: Draggable;\n\t#promise: Promise;\n\t#closeResolver: Function;\n\t#maxVisibleItems: number = 0;\n\n\tconstructor(parameters: Parameters)\n\t{\n\t\tsuper();\n\n\t\tthis.#id = Type.isStringFilled(parameters.id) ? parameters.id : 'settings-popup-' + Math.random().toString().substring(2);\n\t\tthis.#items = parameters.items;\n\t\tthis.#bindElement = parameters.bindElement;\n\t\tthis.#maxVisibleItems = Number(parameters.maxVisibleItems);\n\t\tthis.#createMenu();\n\n\t\tthis.setEventNamespace('BX.UI.MenuConfigurable.Menu');\n\t}\n\n\topen(bindElement: ?HTMLElement): Promise\n\t{\n\t\tif (bindElement)\n\t\t{\n\t\t\tthis.#menu?.getPopupWindow().setBindElement(bindElement);\n\t\t}\n\t\tthis.#menu?.show();\n\n\t\tif (!this.#promise)\n\t\t{\n\t\t\tthis.#promise = new Promise((resolve) => {\n\t\t\t\tthis.#closeResolver = resolve;\n\t\t\t});\n\t\t}\n\n\t\treturn this.#promise;\n\t}\n\n\t#resolveWithCancel(): void\n\t{\n\t\tthis.#promise = null;\n\t\tif (this.#closeResolver)\n\t\t{\n\t\t\tthis.#closeResolver({isCanceled: true});\n\t\t}\n\t\tthis.#closeResolver = null;\n\t}\n\n\t#resolveWithItems(): void\n\t{\n\t\tthis.#promise = null;\n\t\tif (this.#closeResolver)\n\t\t{\n\t\t\tthis.#closeResolver({items: this.#items});\n\t\t}\n\t\tthis.#closeResolver = null;\n\t}\n\n\tclose(): void\n\t{\n\t\tthis.#createMenu();\n\t\tthis.#resolveWithCancel();\n\t}\n\n\tsetItems(items: Item[]): this\n\t{\n\t\tthis.#items = items;\n\n\t\treturn this;\n\t}\n\n\t#getItemById(id: string): ?Item\n\t{\n\t\treturn this.#items.find(item => item.id === id);\n\t}\n\n\tgetItemsFromMenu(): Item[]\n\t{\n\t\tconst items = [];\n\t\tlet isHidden = false;\n\n\t\tthis.#menu.itemsContainer.querySelectorAll('.menu-configurable-item').forEach((node: HTMLElement) => {\n\t\t\tif (node.classList.contains('menu-configurable-hidden-section-title'))\n\t\t\t{\n\t\t\t\tisHidden = true;\n\t\t\t}\n\t\t\tconst itemId = node.dataset.id;\n\t\t\tconst item = this.#getItemById(itemId);\n\t\t\tif (item)\n\t\t\t{\n\t\t\t\tconst clonedItem = Runtime.clone(item);\n\t\t\t\tclonedItem.isHidden = isHidden;\n\t\t\t\titems.push(clonedItem);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t#createMenu(bindElement: ?HTLMElement): Menu\n\t{\n\t\tif (this.#menu)\n\t\t{\n\t\t\tthis.#menu.destroy();\n\t\t\tthis.#draggable = null;\n\t\t}\n\n\t\tconst menuItems = [];\n\t\tmenuItems.push(this.#getVisibleSectionTitleItem());\n\t\tconst visibleItems = this.#items.filter(item => !item.isHidden);\n\t\tconst hiddenItems = this.#items.filter(item => item.isHidden);\n\t\tvisibleItems.forEach((item) => {\n\t\t\tmenuItems.push(this.#getMenuItem(item));\n\t\t});\n\t\tmenuItems.push(this.#getHiddenSectionTitleItem());\n\t\thiddenItems.forEach((item) => {\n\t\t\tmenuItems.push(this.#getMenuItem(item));\n\t\t});\n\t\tmenuItems.push(this.#getSaveItem());\n\t\tmenuItems.push(this.#getCancelItem());\n\n\t\tthis.#menu = MenuManager.create({\n\t\t\tid: this.#id,\n\t\t\titems: menuItems,\n\t\t\tbindElement: bindElement ?? this.#bindElement,\n\t\t\tevents: {\n\t\t\t\tonClose: this.close.bind(this),\n\t\t\t}\n\t\t});\n\n\t\tthis.#initDraggable();\n\n\t\treturn this.#menu;\n\t}\n\n\t#getSaveItem(): MenuItemOptions\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_JS_MENU_CONFIGURABLE_SAVE'),\n\t\t\tonclick: this.#save.bind(this),\n\t\t}\n\t}\n\n\t#getCancelItem(): MenuItemOptions\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_JS_MENU_CONFIGURABLE_CANCEL'),\n\t\t\tonclick: this.#cancel.bind(this),\n\t\t}\n\t}\n\n\t#save(): void\n\t{\n\t\tconst event = new BaseEvent();\n\t\tthis.emit('Save', event);\n\t\tif (event.isDefaultPrevented())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#saveItemsFromMenu();\n\t\tthis.#resolveWithItems();\n\t\tthis.#createMenu();\n\t}\n\n\t#cancel(): void\n\t{\n\t\tconst event = new BaseEvent();\n\t\tthis.emit('Cancel', event);\n\t\tif (event.isDefaultPrevented())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.close();\n\t}\n\n\t#getMenuItem(item: Item): MenuItemOptions\n\t{\n\t\treturn {\n\t\t\tid: item.id,\n\t\t\ttext: item.text,\n\t\t\thtml: item.html,\n\t\t\tclassName: 'menu-configurable-item',\n\t\t\tdataset: {\n\t\t\t\tid: item.id,\n\t\t\t},\n\t\t}\n\t}\n\n\t#getVisibleSectionTitleItem(): MenuItemOptions\n\t{\n\t\treturn {\n\t\t\tdelimiter: true,\n\t\t\thtml: '<span>' + Loc.getMessage('UI_JS_MENU_CONFIGURABLE_VISIBLE') + '</span>',\n\t\t\tclassName: 'menu-configurable-visible-section-title menu-configurable-delimiter-item',\n\t\t}\n\t}\n\n\t#getHiddenSectionTitleItem(): MenuItemOptions\n\t{\n\t\treturn {\n\t\t\tdelimiter: true,\n\t\t\thtml: '<span>' + Loc.getMessage('UI_JS_MENU_CONFIGURABLE_HIDDEN') + '</span>',\n\t\t\tclassName: 'menu-configurable-hidden-section-title menu-configurable-delimiter-item menu-configurable-item',\n\t\t}\n\t}\n\n\t#initDraggable(): void\n\t{\n\t\tthis.#draggable = new Draggable({\n\t\t\tcontainer: this.#menu.itemsContainer,\n\t\t\tdraggable: '.menu-configurable-item',\n\t\t\tdragElement: '.menu-popup-item-icon',\n\t\t\ttype: Draggable.MOVE,\n\t\t});\n\t\tthis.#draggable.subscribe('end', this.#adjustMaxVisibleItems.bind(this));\n\t}\n\n\t#saveItemsFromMenu(): void\n\t{\n\t\tthis.setItems(this.getItemsFromMenu());\n\t}\n\n\t#getItemNode(item: Item): ?HTMLElement\n\t{\n\t\treturn this.#menu.itemsContainer.querySelector('.menu-configurable-item[data-id=\"' + item.id + '\"]');\n\t}\n\n\t#getHiddenSectionTitleNode(): ?HTMLElement\n\t{\n\t\treturn this.#menu.itemsContainer.querySelector('.menu-configurable-hidden-section-title');\n\t}\n\n\t#adjustMaxVisibleItems(): void\n\t{\n\t\tif (this.#maxVisibleItems <= 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst runtimeItems = this.getItemsFromMenu();\n\t\tconst visibleItems = runtimeItems.filter(item => !item.isHidden);\n\t\tconst visibleItemsCount = visibleItems.length;\n\t\tconst hiddenSectionTitleNode = this.#getHiddenSectionTitleNode();\n\t\tif (hiddenSectionTitleNode && visibleItemsCount > this.#maxVisibleItems)\n\t\t{\n\t\t\tfor (let index = this.#maxVisibleItems; index < visibleItemsCount; index++)\n\t\t\t{\n\t\t\t\tconst item = visibleItems[index];\n\t\t\t\tconst node = this.#getItemNode(item);\n\t\t\t\tif (node)\n\t\t\t\t{\n\t\t\t\t\tDom.insertAfter(node, hiddenSectionTitleNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["Menu","EventEmitter","constructor","parameters","Type","isStringFilled","id","Math","random","toString","substring","items","bindElement","Number","maxVisibleItems","setEventNamespace","open","getPopupWindow","setBindElement","show","Promise","resolve","close","setItems","getItemsFromMenu","isHidden","itemsContainer","querySelectorAll","forEach","node","classList","contains","itemId","dataset","item","clonedItem","Runtime","clone","push","isCanceled","find","destroy","menuItems","visibleItems","filter","hiddenItems","MenuManager","create","events","onClose","bind","text","Loc","getMessage","onclick","event","BaseEvent","emit","isDefaultPrevented","html","className","delimiter","Draggable","container","draggable","dragElement","type","MOVE","subscribe","querySelector","runtimeItems","visibleItemsCount","length","hiddenSectionTitleNode","index","Dom","insertAfter"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings