| Current Path : /var/www/homesaver/www/bitrix/js/landing/ui/form/menuform/dist/ |
| Current File : /var/www/homesaver/www/bitrix/js/landing/ui/form/menuform/dist/menuform.bundle.js.map |
{"version":3,"file":"menuform.bundle.js","sources":["../src/menuform.js"],"sourcesContent":["import {Dom, Type, Tag} from 'main.core';\nimport {Loc} from 'landing.loc';\nimport {Env} from 'landing.env';\nimport {Main} from 'landing.main';\nimport {BaseForm} from 'landing.ui.form.baseform';\nimport {MenuItemForm} from 'landing.ui.form.menuitemform';\nimport {Draggable} from 'ui.draganddrop.draggable';\n\nimport './css/style.css';\n\n/**\n * @memberOf BX.Landing.UI.Form\n */\nexport class MenuForm extends BaseForm\n{\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\tDom.addClass(this.layout, 'landing-ui-form-menu');\n\n\t\tthis.forms = new BX.Landing.UI.Collection.FormCollection();\n\n\t\tif (Type.isArray(options.forms))\n\t\t{\n\t\t\toptions.forms.forEach((form) => {\n\t\t\t\tthis.addForm(form);\n\t\t\t});\n\t\t}\n\n\t\tthis.draggable = new Draggable({\n\t\t\tcontainer: this.getBody(),\n\t\t\tcontext: parent.window,\n\t\t\tdraggable: '.landing-ui-form-menuitem',\n\t\t\tdragElement: '.landing-ui-form-header-drag-button',\n\t\t\ttype: Draggable.DROP_PREVIEW,\n\t\t\tdepth: {\n\t\t\t\tmargin: 20,\n\t\t\t},\n\t\t\toffset: {\n\t\t\t\ty: -65,\n\t\t\t},\n\t\t});\n\n\t\tthis.onMenuItemRemove = this.onMenuItemRemove.bind(this);\n\n\t\tDom.append(this.getAddItemLayout(), this.layout);\n\t}\n\n\taddForm(form: BaseForm)\n\t{\n\t\tif (!this.forms.contains(form))\n\t\t{\n\t\t\tthis.forms.add(form);\n\t\t\tDom.append(form.layout, this.body);\n\t\t\tform.subscribe('remove', this.onMenuItemRemove.bind(this));\n\n\t\t\tif (this.draggable)\n\t\t\t{\n\t\t\t\tthis.draggable.invalidateCache();\n\t\t\t}\n\t\t}\n\t}\n\n\tonMenuItemRemove(event)\n\t{\n\t\tconst children = this.draggable.getChildren(event.data.form.layout);\n\n\t\tchildren.forEach((element) => {\n\t\t\tDom.remove(element);\n\t\t});\n\n\t\tthis.forms.remove(event.data.form);\n\t\tthis.draggable.invalidateCache();\n\t}\n\n\tserialize()\n\t{\n\t\tconst draggableElements = this.draggable.getDraggableElements();\n\t\tconst getChildren = (parent) => {\n\t\t\tconst parentDepth = this.draggable.getElementDepth(parent);\n\t\t\tconst allChildren = this.draggable.getChildren(parent);\n\n\t\t\treturn allChildren.reduce((acc, current) => {\n\t\t\t\tconst currentDepth = this.draggable.getElementDepth(current);\n\n\t\t\t\tif (currentDepth === (parentDepth + 1))\n\t\t\t\t{\n\t\t\t\t\tconst form = this.forms.getByLayout(current);\n\t\t\t\t\tacc.push({\n\t\t\t\t\t\t...form.serialize(),\n\t\t\t\t\t\tchildren: getChildren(current),\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t}, []);\n\t\t};\n\n\t\treturn draggableElements.reduce((acc, element) => {\n\t\t\tif (this.draggable.getElementDepth(element) === 0)\n\t\t\t{\n\t\t\t\tconst form = this.forms.getByLayout(element);\n\t\t\t\tacc.push({\n\t\t\t\t\t...form.serialize(),\n\t\t\t\t\tchildren: getChildren(element),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t}, []);\n\t}\n\n\tonAddButtonClick(event: MouseEvent)\n\t{\n\t\tevent.preventDefault();\n\n\t\tconst pageType = Env.getInstance().getType();\n\t\tconst content = {\n\t\t\ttext: Loc.getMessage('LANDING_NEW_PAGE_LABEL'),\n\t\t\ttarget: '_blank',\n\t\t\thref: ['KNOWLEDGE', 'GROUP'].includes(pageType) ? '#landing0' : '',\n\t\t};\n\n\t\tconst allowedTypes = [\n\t\t\tBX.Landing.UI.Field.LinkUrl.TYPE_BLOCK,\n\t\t\tBX.Landing.UI.Field.LinkUrl.TYPE_PAGE,\n\t\t\tBX.Landing.UI.Field.LinkUrl.TYPE_CRM_FORM,\n\t\t\tBX.Landing.UI.Field.LinkUrl.TYPE_CRM_PHONE,\n\t\t];\n\n\t\tif (pageType === 'STORE')\n\t\t{\n\t\t\tallowedTypes.push(\n\t\t\t\tBX.Landing.UI.Field.LinkUrl.TYPE_CATALOG,\n\t\t\t);\n\t\t}\n\n\t\tconst field = new BX.Landing.UI.Field.Link({\n\t\t\tcontent,\n\t\t\toptions: {\n\t\t\t\tsiteId: Env.getInstance().getSiteId(),\n\t\t\t\tlandingId: Main.getInstance().id,\n\t\t\t\tfilter: {\n\t\t\t\t\t'=TYPE': pageType,\n\t\t\t\t},\n\t\t\t},\n\t\t\tallowedTypes,\n\t\t});\n\n\t\tconst form = new MenuItemForm({\n\t\t\tfields: [field],\n\t\t});\n\n\t\tform.showForm();\n\n\t\tthis.addForm(form);\n\n\t\tsetTimeout(() => {\n\t\t\tfield.input.enableEdit();\n\n\t\t\tconst {input} = field.input;\n\t\t\tconst [textNode] = input.childNodes;\n\n\t\t\tif (textNode)\n\t\t\t{\n\t\t\t\tconst range = document.createRange();\n\t\t\t\tconst sel = window.getSelection();\n\n\t\t\t\trange.setStart(textNode, input.innerText.length);\n\t\t\t\trange.collapse(true);\n\t\t\t\tsel.removeAllRanges();\n\t\t\t\tsel.addRange(range);\n\t\t\t}\n\t\t});\n\t}\n\n\tgetAddButton(): HTMLButtonElement\n\t{\n\t\treturn this.cache.remember('addButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<button \n\t\t\t\t\tclass=\"ui-btn ui-btn-sm ui-btn-light-border ui-btn-icon-add ui-btn-round landing-ui-form-menu-add-button\"\n\t\t\t\t\tonclick=\"${this.onAddButtonClick.bind(this)}\"\n\t\t\t\t\t>\n\t\t\t\t\t${Loc.getMessage('LANDING_ADD_MENU_ITEM')}\n\t\t\t\t</button>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetAddItemLayout(): HTMLElement\n\t{\n\t\treturn this.cache.remember('addItemLayout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-ui-form-menu-add\">\n\t\t\t\t\t${this.getAddButton()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n}"],"names":["MenuForm","options","Dom","addClass","layout","forms","BX","Landing","UI","Collection","FormCollection","Type","isArray","forEach","form","addForm","draggable","Draggable","container","getBody","context","parent","window","dragElement","type","DROP_PREVIEW","depth","margin","offset","y","onMenuItemRemove","bind","append","getAddItemLayout","contains","add","body","subscribe","invalidateCache","event","children","getChildren","data","element","remove","draggableElements","getDraggableElements","parentDepth","getElementDepth","allChildren","reduce","acc","current","currentDepth","getByLayout","push","serialize","preventDefault","pageType","Env","getInstance","getType","content","text","Loc","getMessage","target","href","includes","allowedTypes","Field","LinkUrl","TYPE_BLOCK","TYPE_PAGE","TYPE_CRM_FORM","TYPE_CRM_PHONE","TYPE_CATALOG","field","Link","siteId","getSiteId","landingId","Main","id","filter","MenuItemForm","fields","showForm","setTimeout","input","enableEdit","childNodes","textNode","range","document","createRange","sel","getSelection","setStart","innerText","length","collapse","removeAllRanges","addRange","cache","remember","Tag","render","onAddButtonClick","getAddButton","BaseForm"],"mappings":"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"}