Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/ui/menu-configurable/dist/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/ui/menu-configurable/dist/menu-configurable.bundle.js.map

{"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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"}