{"version":3,"file":"sidepanel.layout.bundle.js","sources":["../src/index.js"],"sourcesContent":["import 'ui.fonts.opensans';\nimport './css/style.css';\nimport 'sidepanel';\nimport {Dom, Tag, Type, BaseError, Event, Runtime} from 'main.core';\nimport {BaseEvent, EventEmitter} from 'main.core.events';\nimport {CloseButton, CancelButton, BaseButton} from 'ui.buttons';\nimport {Menu, type MenuOptions, Item as MenuItem} from 'ui.sidepanel.menu';\n\nconst UI = BX.UI;\nconst SidePanel = BX.SidePanel;\n\ntype DesignOptions = {\n\tmargin: ?boolean;\n\tsection: ?boolean;\n\talignButtonsLeft: ?boolean;\n};\n\ntype SidePanelMenuOptions = {\n\t...MenuOptions;\n\tcontentAttribute: ?string;\n};\n\ntype Options = {\n\textensions: ?Array;\n\ttitle: ?string;\n\ttoolbar: ?Function;\n\tcontent: string|Element|Promise|BX.Promise;\n\tbuttons: ?Function;\n\tdesign: ?DesignOptions;\n\tmenu: ?SidePanelMenuOptions;\n};\n\nfunction prepareOptions(options: Options = {})\n{\n\toptions = Object.assign({}, options);\n\toptions.design = Object.assign({}, options.design || {});\n\toptions.design = {\n\t\tmargin: true,\n\t\tsection: true,\n\t\t...options.design,\n\t};\n\n\toptions.extensions = (options.extensions || []).concat([\n\t\t'ui.sidepanel.layout',\n\t\t'ui.buttons',\n\t]);\n\tif (options.toolbar)\n\t{\n\t\toptions.extensions.push('ui.buttons.icons');\n\t}\n\tif (options.design.section)\n\t{\n\t\toptions.extensions.push('ui.sidepanel-content');\n\t}\n\tif (options.menu)\n\t{\n\t\toptions.extensions.push('ui.sidepanel.menu');\n\t}\n\n\treturn options;\n}\n\nexport class Layout\n{\n\tstatic createContent(options: Options = {})\n\t{\n\t\toptions = prepareOptions(options);\n\t\treturn top.BX.Runtime\n\t\t\t.loadExtension(options.extensions)\n\t\t\t.then(() => (new Layout(options)).render())\n\t\t;\n\t}\n\n\tstatic createLayout(options: Options = {}): Promise\n\t{\n\t\toptions = prepareOptions(options);\n\n\t\treturn top.BX.Runtime\n\t\t\t.loadExtension(options.extensions)\n\t\t\t.then(() => new Layout(options))\n\t\t;\n\t}\n\n\t#container;\n\t#containerFooter;\n\t#options;\n\t#menu: Menu;\n\n\tconstructor(options: Options = {})\n\t{\n\t\tthis.#options = prepareOptions(options);\n\t\tconst menuOptions = this.#options.menu;\n\t\tif (menuOptions)\n\t\t{\n\t\t\tthis.#menu = new Menu(Object.assign(menuOptions));\n\t\t\tif (Type.isUndefined(menuOptions.contentAttribute))\n\t\t\t{\n\t\t\t\tmenuOptions.contentAttribute = 'data-menu-item-id';\n\t\t\t}\n\t\t\tif (menuOptions.contentAttribute)\n\t\t\t{\n\t\t\t\tthis.#menu.subscribe('click', (event: BaseEvent) => {\n\t\t\t\t\tthis.#onMenuItemClick((event.getData() || {}).item);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tgetContainer()\n\t{\n\t\tif (!this.#container)\n\t\t{\n\t\t\tthis.#container = Tag.render`
`;\n\t\t}\n\t\treturn this.#container;\n\t}\n\n\tgetMenu(): Menu\n\t{\n\t\treturn this.#menu;\n\t}\n\n\tgetFooterContainer()\n\t{\n\t\tif (!this.#containerFooter)\n\t\t{\n\t\t\tthis.#containerFooter = Tag.render`
`;\n\t\t}\n\n\t\treturn this.#containerFooter;\n\t}\n\n\trender(content: string = '', promised: boolean = false)\n\t{\n\t\tif (this.#options.content && !promised)\n\t\t{\n\t\t\tcontent = this.#options.content();\n\t\t\tif (\n\t\t\t\tObject.prototype.toString.call(content) === \"[object Promise]\"\n\t\t\t\t|| (content.toString && content.toString() === \"[object BX.Promise]\")\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn content.then(content => this.render(content, true));\n\t\t\t}\n\t\t}\n\n\t\tconst container = this.getContainer();\n\t\tcontainer.innerHTML = '';\n\n\t\t// HEADER\n\t\tif (this.#options.title)\n\t\t{\n\t\t\tconst title = Tag.safe`${this.#options.title}`;\n\t\t\tconst header = Tag.render`\n\t\t\t\t
\n\t\t\t\t\t
${title}
\n\t\t\t\t
\n\t\t\t`;\n\n\t\t\tif (Type.isFunction(this.#options.toolbar))\n\t\t\t{\n\t\t\t\tconst toolbar = Tag.render`
`;\n\t\t\t\tthis.#options.toolbar({...UI}).forEach(button => {\n\t\t\t\t\tif (button instanceof BaseButton)\n\t\t\t\t\t{\n\t\t\t\t\t\tbutton.renderTo(toolbar)\n\t\t\t\t\t}\n\t\t\t\t\telse if (Type.isDomNode(button))\n\t\t\t\t\t{\n\t\t\t\t\t\ttoolbar.appendChild(button);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthrow BaseError('Wrong button type ' + button);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\theader.appendChild(toolbar);\n\t\t\t}\n\n\t\t\tcontainer.appendChild(header);\n\t\t}\n\n\t\t// CONTENT\n\t\t{\n\t\t\tconst design = this.#options.design;\n\t\t\tconst classes = ['ui-sidepanel-layout-content'];\n\t\t\tconst styles = [];\n\t\t\tif (design.margin)\n\t\t\t{\n\t\t\t\tif (design.margin === true)\n\t\t\t\t{\n\t\t\t\t\tclasses.push('ui-sidepanel-layout-content-margin');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tstyles.push('margin: ' + design.margin);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet contentElement = Tag.render`
`;\n\t\t\tcontainer.appendChild(contentElement);\n\n\t\t\tif (this.#menu)\n\t\t\t{\n\t\t\t\tthis.#menu.renderTo(contentElement);\n\t\t\t}\n\t\t\tcontentElement.appendChild(Tag.render`
`);\n\t\t\tcontentElement = contentElement.lastElementChild;\n\n\t\t\tif (design.section)\n\t\t\t{\n\t\t\t\tcontentElement.appendChild(Tag.render`
`);\n\t\t\t\tcontentElement = contentElement.firstElementChild;\n\t\t\t}\n\t\t\tif (typeof content === 'string')\n\t\t\t{\n\t\t\t\tcontentElement.innerHTML = content;\n\t\t\t}\n\t\t\telse if (content instanceof Element)\n\t\t\t{\n\t\t\t\tcontentElement.appendChild(content);\n\t\t\t}\n\n\t\t\tif (this.#menu)\n\t\t\t{\n\t\t\t\tthis.#onMenuItemClick(this.#menu.getActiveItem(), contentElement);\n\t\t\t}\n\t\t}\n\n\t\t// FOOTER\n\t\tconst isButtonsUndefined = typeof this.#options.buttons === 'undefined';\n\t\tif (typeof this.#options.buttons === 'function' || isButtonsUndefined)\n\t\t{\n\t\t\tconst cancelButton = new CancelButton({onclick: () => SidePanel.Instance.close()});\n\t\t\tconst closeButton = new CloseButton({onclick: () => SidePanel.Instance.close()});\n\t\t\tconst defaults = {\n\t\t\t\t...UI,\n\t\t\t\tcancelButton,\n\t\t\t\tcloseButton,\n\t\t\t};\n\t\t\tif (isButtonsUndefined)\n\t\t\t{\n\t\t\t\tthis.#options.buttons = () => [closeButton];\n\t\t\t}\n\n\t\t\tconst buttonList = this.#options.buttons(defaults);\n\t\t\tif (buttonList && buttonList.length > 0)\n\t\t\t{\n\t\t\t\tcontainer.appendChild(Tag.render``);\n\n\t\t\t\tconst classes = ['ui-sidepanel-layout-buttons'];\n\t\t\t\tif (this.#options.design.alignButtonsLeft)\n\t\t\t\t{\n\t\t\t\t\tclasses.push('ui-sidepanel-layout-buttons-align-left');\n\t\t\t\t}\n\t\t\t\tconst buttons = Tag.render`
`;\n\t\t\t\tthis.getFooterContainer().appendChild(buttons);\n\t\t\t\tbuttonList.forEach(button => {\n\t\t\t\t\tif (button instanceof BaseButton)\n\t\t\t\t\t{\n\t\t\t\t\t\tbutton.renderTo(buttons)\n\t\t\t\t\t}\n\t\t\t\t\telse if (Type.isDomNode(button))\n\t\t\t\t\t{\n\t\t\t\t\t\tbuttons.appendChild(button);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthrow BaseError('Wrong button type ' + button);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontainer.appendChild(this.getFooterContainer());\n\t\t\t}\n\t\t}\n\n\t\tsetTimeout(()=> {\n\t\t\tthis.afterRender();\n\t\t});\n\t\treturn container;\n\t}\n\n\tafterRender()\n\t{\n\t\tthis.#adjustFooter();\n\n\t\tconst resizeHandler = Runtime.throttle(this.#adjustFooter, 300, this);\n\t\tEvent.bind(window, \"resize\", resizeHandler);\n\n\t\tconst topSlider = SidePanel.Instance.getTopSlider();\n\t\tif (topSlider)\n\t\t{\n\t\t\tEventEmitter.subscribeOnce(topSlider, 'SidePanel.Slider:onDestroy', () => {\n\t\t\t\tEvent.unbind(window, \"resize\", resizeHandler);\n\t\t\t});\n\t\t}\n\t}\n\n\t#getScrollWidth()\n\t{\n\t\tconst div = Tag.render`
`\n\t\tdocument.body.appendChild(div);\n\t\tconst scrollWidth = div.offsetWidth - div.clientWidth\n\t\tDom.remove(div);\n\t\treturn scrollWidth;\n\t}\n\n\n\t#adjustFooter()\n\t{\n\t\tconst parentSet = this.getContainer().parentNode;\n\n\t\tif (parentSet.scrollWidth > parentSet.offsetWidth)\n\t\t{\n\t\t\tDom.style(this.getFooterContainer(), 'bottom', this.#getScrollWidth() + 'px');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.style(this.getFooterContainer(), 'bottom', 0);\n\t\t}\n\t}\n\n\t#onMenuItemClick(item: MenuItem, container: HTMLElement = null)\n\t{\n\t\tif (!item)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst id = item.getId();\n\t\tlet attr = this.#options.menu.contentAttribute;\n\t\tif (!attr)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer = container || this.#container;\n\t\tlet nodes = container.querySelectorAll(`[${attr}]`);\n\t\tnodes = Array.prototype.slice.call(nodes);\n\t\tnodes.forEach(node => {\n\t\t\tnode.hidden = node.getAttribute(attr) !== id;\n\t\t});\n\t}\n}\n"],"names":["UI","BX","SidePanel","prepareOptions","options","Object","assign","design","margin","section","extensions","concat","toolbar","push","menu","Layout","createContent","top","Runtime","loadExtension","then","render","createLayout","constructor","menuOptions","Menu","Type","isUndefined","contentAttribute","subscribe","event","getData","item","getContainer","Tag","getMenu","getFooterContainer","content","promised","prototype","toString","call","container","innerHTML","title","safe","header","isFunction","forEach","button","BaseButton","renderTo","isDomNode","appendChild","BaseError","classes","styles","contentElement","join","lastElementChild","firstElementChild","Element","getActiveItem","isButtonsUndefined","buttons","cancelButton","CancelButton","onclick","Instance","close","closeButton","CloseButton","defaults","buttonList","length","alignButtonsLeft","setTimeout","afterRender","resizeHandler","throttle","Event","bind","window","topSlider","getTopSlider","EventEmitter","subscribeOnce","unbind","div","document","body","scrollWidth","offsetWidth","clientWidth","Dom","remove","parentSet","parentNode","style","id","getId","attr","nodes","querySelectorAll","Array","slice","node","hidden","getAttribute"],"mappings":"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"}