Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/landing/designerblock/dist/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/landing/designerblock/dist/designerblock.bundle.js.map

{"version":3,"file":"designerblock.bundle.js","sources":["../src/node.js","../src/ui/designerblock.js","../src/ui/panels/repo.js","../src/panels/repo.js","../src/designerblock.js"],"sourcesContent":["import {Dom, Event} from 'main.core';\n\nexport type NodeType = {\n\telement: HTMLElement,\n\tselector: string,\n\ttype: ?string,\n\tclassName: ?string,\n\tcardSelector: ?string,\n\tonHover: ?() => {}\n};\n\nexport class Node\n{\n\telement: HTMLElement;\n\tselector: string;\n\tcardSelector: string;\n\tpseudoElement: boolean;\n\tonHover: ?() => {};\n\n\tconstructor(options: NodeType)\n\t{\n\t\tthis.element = options.element;\n\t\tthis.selector = options.selector;\n\t\tthis.cardSelector = options.cardSelector;\n\t\tthis.onHover = options.onHover;\n\t\tthis.pseudoElement = Dom.hasClass(this.element, 'landing-designer-block-pseudo-last');\n\n\t\tEvent.bind(this.element, 'mouseover', this.onMouseOver.bind(this));\n\n\t\tif (options.className)\n\t\t{\n\t\t\tDom.addClass(this.element, options.className);\n\t\t}\n\t}\n\n\tisPseudoElement(): boolean\n\t{\n\t\treturn this.pseudoElement;\n\t}\n\n\tgetSelector(): string\n\t{\n\t\treturn (this.cardSelector ? this.cardSelector + ' ' : '') + this.selector;\n\t}\n\n\tgetCardSelector(): string\n\t{\n\t\treturn this.cardSelector;\n\t}\n\n\tgetOriginalSelector(): string\n\t{\n\t\treturn this.selector;\n\t}\n\n\tgetElement(): HTMLElement\n\t{\n\t\treturn this.element;\n\t}\n\n\tonMouseOver(event: Event)\n\t{\n\t\tevent.stopPropagation();\n\t\tthis.onHover(this);\n\t}\n}\n","import {Tag} from 'main.core';\nimport {Loc} from 'landing.loc';\n\nexport class DesignerBlockUI\n{\n\tstatic getHoverDiv(): HTMLDivElement\n\t{\n\t\treturn Tag.render`<div class=\"landing-designer-block-node-hover\"></div>`;\n\t}\n\n\tstatic getPseudoLast(): HTMLElement\n\t{\n\t\treturn Tag.render`<div class=\"landing-designer-block-pseudo-last\"></div>`;\n\t}\n\n\tstatic getAddNodeButton(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-designer-block-node-hover-add\">\n\t\t\t\t<span class=\"landing-designer-block-node-hover-add-title\">\n\t\t\t\t\t${Loc.getMessage('LANDING_DESIGN_BLOCK_REPO_BUTTON')}\n\t\t\t\t</span>\n\t\t\t</div>`;\n\t}\n}\n","import {Loc} from 'landing.loc';\nimport {Content} from 'landing.ui.panel.content';\nimport {Dom, Cache, Tag} from 'main.core';\n\nexport type RepoElementType = {\n\tname: string,\n\tcode: string,\n\thtml: string,\n\tmanifest: {\n\t\tnodes: {\n\t\t\t[selector: string]: {\n\t\t\t\ttype: string\n\t\t\t}\n\t\t},\n\t\tstyle: {\n\t\t\t[selector: string]: {\n\t\t\t\ttype: string\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport type RepoPanelOptions = {\n\tonElementSelect: (RepoElementType) => {}\n};\n\n\nexport class RepoPanel extends Content\n{\n\tconstructor(options: RepoPanelOptions)\n\t{\n\t\tsuper('design_repo', {\n\t\t\ttitle: Loc.getMessage('LANDING_DESIGN_BLOCK_REPO_TITLE'),\n\t\t\tscrollAnimation: true\n\t\t});\n\n\t\tthis.currentCategory = null;\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.onElementSelect = options.onElementSelect;\n\n\t\tthis.renderTo(\n\t\t\tparent.document.body\n\t\t\t? parent.document.body\n\t\t\t: document.body\n\t\t);\n\n\t\tDom.addClass(this.layout, 'landing-ui-panel-repo');\n\t}\n\n\taddRepository(repository: Array<RepoElementType>)\n\t{\n\t\trepository.map(item => {\n\t\t\tthis.addElement(item);\n\t\t});\n\t}\n\n\tmakeElementUnique(element: RepoElementType): RepoElementType\n\t{\n\t\tconst newManifest = {};\n\t\tconst newStyleManifest = {};\n\t\tconst origNodes = element.manifest.nodes;\n\t\tObject.keys(element.manifest.nodes).map(selector => {\n\t\t\tconst randPostfix = '-' + this.randomNum(1000, 9999);\n\t\t\tconst className = selector.substring(1);\n\t\t\telement.html = element.html.replaceAll(new RegExp(className + '([\\\\s\"]{1})', 'g'), className + randPostfix + '$1');\n\t\t\tnewManifest[selector + randPostfix] = element.manifest.nodes[selector];\n\t\t\tif (element.manifest.style && selector in element.manifest.style)\n\t\t\t{\n\t\t\t\tnewStyleManifest[selector + randPostfix] = element.manifest.style[selector];\n\t\t\t}\n\t\t});\n\t\telement.manifest.nodes = newManifest;\n\t\tif (element.manifest.style)\n\t\t{\n\t\t\tObject.keys(element.manifest.style).map(selector => {\n\t\t\t\tif (selector in origNodes)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst randPostfix = '-' + this.randomNum(1000, 9999);\n\t\t\t\tconst className = selector.substring(1);\n\t\t\t\telement.html = element.html.replaceAll(new RegExp(className + '([\\\\s\"]{1})', 'g'), className + randPostfix + '$1');\n\t\t\t\tnewStyleManifest[selector + randPostfix] = element.manifest.style[selector];\n\t\t\t});\n\t\t\telement.manifest.style = newStyleManifest;\n\t\t}\n\t\treturn element;\n\t}\n\n\taddElement(element: RepoElementType)\n\t{\n\t\tconst nodeCard = new BX.Landing.UI.Card.BlockPreviewCard({\n\t\t\ttitle: element.name,\n\t\t\timage: '/bitrix/images/landing/designerblock/presets/' + element .code + '.jpg',\n\t\t\tonClick: () => {\n\t\t\t\tthis.onElementSelect(this.makeElementUnique(element));\n\t\t\t\tvoid this.hide();\n\t\t\t}\n\t\t});\n\t\tthis.appendCard(nodeCard);\n\t}\n\n\trandomNum(min: number, max: number): number\n\t{\n\t\treturn parseInt(Math.random() * (max - min) + min);\n\t}\n\n\tgetListContainer(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('listContainer', () => {\n\t\t\treturn Tag.render`<div class=\"landing-ui-field-layer-list-container\"></div>`;\n\t\t});\n\t}\n}\n","import {RepoPanel, RepoElementType} from '../ui/panels/repo';\n\nexport type RepoManagerOptions = {\n\trepository: Array<RepoElementType>,\n\tonElementSelect: (RepoElementType) => {}\n};\n\nexport class RepoManager\n{\n\tconstructor(options: RepoManagerOptions)\n\t{\n\t\tthis.panel = new RepoPanel({\n\t\t\tonElementSelect: options.onElementSelect\n\t\t});\n\n\t\tthis.panel.addRepository(options.repository);\n\t}\n\n\tshowPanel()\n\t{\n\t\tthis.panel.show().then();\n\t}\n}\n","import {Dom, Event, Tag, Text} from 'main.core';\nimport {Backend} from 'landing.backend';\nimport {Env} from 'landing.env';\nimport {Metrika} from 'landing.metrika';\nimport {Highlight} from 'landing.ui.highlight';\n\nimport {Node, NodeType} from './node';\nimport {DesignerBlockUI} from './ui/designerblock';\nimport {RepoElementType} from './ui/panels/repo';\nimport {RepoManager} from './panels/repo';\n\nimport 'ui.fonts.opensans';\nimport './designerblock.css';\n\ntype ManifestNodesItem = {\n\t[selector: string]: {\n\t\tcode: ?string,\n\t\tname: ?string,\n\t\ttype: string,\n\t\tuseInDesigner: ?boolean\n\t}\n};\n\nexport type DesignerBlockOptions = {\n\tid: number,\n\tlid: number,\n\tcode: string,\n\tdesigned: boolean,\n\tautoPublicationEnabled: boolean,\n\taccess: string,\n\tactive: boolean,\n\tanchor: string,\n\tmanifest: {\n\t\tcards: {\n\t\t\t[selector: string]: {\n\t\t\t\tname: string\n\t\t\t}\n\t\t},\n\t\tnodes: {\n\t\t\t[selector: string]: {\n\t\t\t\tcode: ?string,\n\t\t\t\tname: ?string,\n\t\t\t\ttype: string\n\t\t\t}\n\t\t}\n\t},\n\trepository: Array<RepoElementType>\n};\n\nexport class DesignerBlock\n{\n\tblockNode: HTMLElement;\n\toriginalNode: HTMLElement;\n\thoverArea: HTMLElement = null;\n\tactiveNode: Node = null;\n\tchanged: boolean = false;\n\tsaving: boolean = false;\n\tdesigned: boolean;\n\tautoPublicationEnabled: boolean;\n\tblockCode: string;\n\tblockId: number;\n\tlandingId: number;\n\tnodes: ManifestNodesItem;\n\thighlight: Highlight;\n\tnodeMap: WeakMap;\n\tmetrika: Metrika;\n\trepoManager: RepoManager;\n\tcardSelectors: Array<string>;\n\n\tconstructor(blockNode: HTMLElement, options: DesignerBlockOptions)\n\t{\n\t\tif (!blockNode)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.originalNode = blockNode;\n\t\tthis.blockNode = blockNode.children[0];\n\t\tthis.blockCode = options.code;\n\t\tthis.blockId = options.id;\n\t\tthis.designed = options.designed;\n\t\tthis.autoPublicationEnabled = options.autoPublicationEnabled;\n\t\tthis.landingId = options.lid;\n\t\tthis.nodes = options.manifest.nodes;\n\t\tthis.highlight = new Highlight();\n\t\tthis.cardSelectors = options.manifest.cards ? Object.keys(options.manifest.cards) : [];\n\t\tthis.designAllowed = !!Env.getInstance().getOptions().design_block_allowed;\n\t\tthis.cardSelectors.push('');// for without cards elements\n\t\tthis.nodeMap = new WeakMap();\n\t\tthis.metrika = new Metrika(true);\n\t\tthis.repoManager = new RepoManager({\n\t\t\trepository: options.repository,\n\t\t\tonElementSelect: this.addElement.bind(this)\n\t\t});\n\n\t\tthis.saveButton = parent.document.getElementById('landing-design-block-save')\n\t\t\t|| top.document.getElementById('landing-design-block-save')\n\t\t\t|| document.getElementById('landing-design-block-save');\n\n\t\tBX.addCustomEvent('Landing.Editor:load', () => {\n\t\t\tthis.preventEvents();\n\t\t\tthis.initHistoryEvents();\n\t\t\tthis.initTopPanel();\n\t\t\tthis.initNodes();\n\t\t\tthis.initGrid();\n\t\t\tthis.initSliders();\n\t\t\tthis.initHoverArea();\n\t\t});\n\t}\n\n\tclearHtml(content: string): string\n\t{\n\t\treturn content\n\t\t\t.replace(/<div class=\"[^\"]*landing-designer-block-pseudo-last[^\"]*\"[^>]*>[\\s]*<\\/div>/g, '')\n\t\t\t.replace(/<div class=\"[^\"]*landing-highlight-border[^\"]*\"[^>]*>[\\s]*<\\/div>/g, '')\n\t\t\t.replace(/url\\(&quot;(.*?)&quot;\\)/g, 'url($1)')\n\t\t\t.replace(/\\s*data-(landingwrapper)=\"[^\"]+\"\\s*/g, ' ')\n\t\t\t.replace(/\\s*[\\w-_]+--type-wrapper\\s*/g, ' ')\n\t\t\t.replace(/<div[\\s]*>[\\s]*<\\/div>/g, '')\n\t\t\t.replace(/\\s*style=\"\"/g, '')\n\t\t\t.replace(/cursor: pointer;/g, '')\n\t\t\t.replace(/user-select: none;/g, '');\n\t}\n\n\tpreventEvents()\n\t{\n\t\tconst preventMap = {\n\t\t\ta: 'click',\n\t\t\tform: 'submit',\n\t\t\tinput: 'keydown'\n\t\t};\n\t\tObject.keys(preventMap).map(tag => {\n\t\t\t[...this.blockNode.querySelectorAll(tag)].map(node => {\n\t\t\t\tEvent.bind(node, preventMap[tag], (e) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tinitHistoryEvents()\n\t{\n\t\tBX.Landing.History.getInstance()\n\t\t\t.setTypeDesignerBlock(this.blockId)\n\t\t\t.then(() => {\n\t\t\t\treturn Backend.getInstance()\n\t\t\t\t\t.action(\"History::clearDesignerBlock\", {\n\t\t\t\t\t\tblockId: this.blockId,\n\t\t\t\t\t});\n\t\t\t});\n\n\t\tconst body = this.getDocumentBody();\n\n\t\ttop.BX.addCustomEvent('Landing:onHistoryAddNode',\n\t\t\ttags => {\n\t\t\t\tlet elementAdded = false;\n\t\t\t\ttags.map(tag => {\n\t\t\t\t\tconst insertAfterSelector = tag.insertAfterSelector || null;\n\t\t\t\t\tconst parentNodeSelector = tag.parentNodeSelector || null;\n\t\t\t\t\tconst element = Tag.render`${tag.elementHtml}`;\n\n\t\t\t\t\tif (insertAfterSelector)\n\t\t\t\t\t{\n\t\t\t\t\t\telementAdded = true;\n\t\t\t\t\t\tDom.insertAfter(element, body.querySelector(insertAfterSelector));\n\t\t\t\t\t}\n\t\t\t\t\telse if (parentNodeSelector)\n\t\t\t\t\t{\n\t\t\t\t\t\telementAdded = true;\n\t\t\t\t\t\tDom.prepend(element, body.querySelector(parentNodeSelector));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (elementAdded)\n\t\t\t\t{\n\t\t\t\t\tthis.refreshManifest();\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.sendLabel(\n\t\t\t\t\t\t\t'designerBlock',\n\t\t\t\t\t\t\t'onHistoryAddNode'\n\t\t\t\t\t\t);\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\ttop.BX.addCustomEvent('Landing:onHistoryRemoveNode',\n\t\t\ttags => {\n\t\t\t\ttags.map(tag => {\n\t\t\t\t\tthis.removeNode(\n\t\t\t\t\t\tbody.querySelector(tag.elementSelector)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t\tthis.refreshManifest();\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.sendLabel(\n\t\t\t\t\t\t'designerBlock',\n\t\t\t\t\t\t'onHistoryRemoveNode'\n\t\t\t\t\t);\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t);\n\t}\n\n\tinitTopPanel()\n\t{\n\t\tEvent.bind(this.saveButton, 'click', () => {\n\t\t\tthis.highlight.hide(true);\n\n\t\t\tconst finishCallback = () => {\n\t\t\t\tif (BX.SidePanel && BX.SidePanel.Instance)\n\t\t\t\t{\n\t\t\t\t\tBX.SidePanel.Instance.close();\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (!this.changed)\n\t\t\t{\n\t\t\t\tfinishCallback();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.designAllowed)\n\t\t\t{\n\t\t\t\ttop.BX.UI.InfoHelper.show('limit_crm_superblock');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.saving = true;\n\n\t\t\tconst batch = {};\n\t\t\tbatch['Block::updateContent'] = {\n\t\t\t\taction: 'Block::updateContent',\n\t\t\t\tdata: {\n\t\t\t\t\tlid: this.landingId,\n\t\t\t\t\tblock: this.blockId,\n\t\t\t\t\tcontent: this.clearHtml(this.originalNode.innerHTML).replaceAll(' style=\"', ' bxstyle=\"'),\n\t\t\t\t\tdesigned: 1\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (this.autoPublicationEnabled)\n\t\t\t{\n\t\t\t\tbatch['Landing::publication'] = {\n\t\t\t\t\taction: 'Landing::publication',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tlid: this.landingId\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t\tbatch['History::clearDesignerBlock'] = {\n\t\t\t\taction: 'History::clearDesignerBlock',\n\t\t\t\tdata: {\n\t\t\t\t\tblockId: this.blockId,\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tBackend.getInstance()\n\t\t\t\t.batch('Block::updateContent', batch)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tfinishCallback();\n\t\t\t\t});\n\n\t\t\tthis.sendLabel(\n\t\t\t\t'designerBlock',\n\t\t\t\t'save' +\n\t\t\t\t'&designed=' + (this.designed ? 'Y' : 'N') +\n\t\t\t\t'&code=' + this.blockCode\n\t\t\t);\n\t\t});\n\t}\n\n\tinitNodes()\n\t{\n\t\tObject.keys(this.nodes).map(selector => {\n\t\t\tthis.cardSelectors.map(cardSelector => {\n\t\t\t\t[...this.blockNode.querySelectorAll((cardSelector ? cardSelector + ' ' : '') + selector)].map(element => {\n\t\t\t\t\tif (this.nodes[selector]['useInDesigner'] === false)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.addNode({\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\tcardSelector,\n\t\t\t\t\t\ttype: this.nodes[selector]['type']\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tinitGrid()\n\t{\n\t\t// collect node's parent and add pseudo last elements into the wrappers\n\t\tObject.keys(this.nodes).map(selector => {\n\t\t\tthis.cardSelectors.map(cardSelector => {\n\t\t\t\t[...this.blockNode.querySelectorAll((cardSelector ? cardSelector + ' ' : '') + selector)].map(element => {\n\t\t\t\t\tif (this.nodes[selector]['useInDesigner'] === false)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst wrapper = (this.nodes[selector]['type'] === 'icon')\n\t\t\t\t\t\t? element.parentNode.parentNode\n\t\t\t\t\t\t: element.parentNode;\n\t\t\t\t\tif (Dom.attr(wrapper, 'data-landingWrapper'))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst pseudoElement = DesignerBlockUI.getPseudoLast();\n\t\t\t\t\tDom.attr(wrapper, 'data-landingWrapper', true);\n\t\t\t\t\tDom.append(pseudoElement, wrapper);\n\t\t\t\t\tthis.addNode({\n\t\t\t\t\t\tcardSelector,\n\t\t\t\t\t\telement: pseudoElement,\n\t\t\t\t\t\tclassName: selector.substr(1) + '-last',\n\t\t\t\t\t\tselector: selector + '-last'\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tinitSliders()\n\t{\n\t\tconst sliderSelector = '.js-carousel';\n\t\t[...this.blockNode.querySelectorAll(sliderSelector)].map(slider => {\n\t\t\tconst count =\n\t\t\t\t(Text.toNumber(slider.dataset.slidesShow) || 1)\n\t\t\t\t* (Text.toNumber(slider.dataset.rows) || 1)\n\t\t\t;\n\t\t\tconst selector = `.${[...slider.classList].join('.')} .js-slide:not(:nth-child(-n+${count}))`;\n\t\t\tdocument.head.appendChild(\n\t\t\t\tTag.render`<style>${selector}{display: none !important;}</style>`\n\t\t\t);\n\t\t});\n\t}\n\n\tinitHoverArea()\n\t{\n\t\tif (this.hoverArea)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hoverArea = DesignerBlockUI.getHoverDiv();\n\n\t\tconst addNodeElement = DesignerBlockUI.getAddNodeButton();\n\t\tconst CardAction = BX.Landing.UI.Button.CardAction;\n\t\tconst BaseButtonPanel = BX.Landing.UI.Panel.BaseButtonPanel;\n\t\tconst cardAction = new BaseButtonPanel(\n\t\t\t'nodeAction',\n\t\t\t'landing-ui-panel-block-card-action'\n\t\t);\n\n\t\tEvent.bind(addNodeElement, 'click', () => {\n\t\t\tthis.repoManager.showPanel();\n\t\t\tthis.hideHoverArea();\n\t\t});\n\n\t\tcardAction.addButton(new CardAction('remove', {\n\t\t\thtml: '&nbsp;',\n\t\t\tonClick: this.removeElement.bind(this)\n\t\t}));\n\n\t\tvoid cardAction.show();\n\n\t\tDom.append(addNodeElement, this.hoverArea);\n\t\tDom.append(cardAction.layout, this.hoverArea);\n\t\tDom.append(this.hoverArea, this.getDocumentBody());\n\n\t\tEvent.bind(this.blockNode, 'mouseover', () => {\n\t\t\tthis.hideHoverArea();\n\t\t});\n\t}\n\n\tadjustHoverArea()\n\t{\n\t\tif (!this.hoverArea)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.showHoverArea();\n\n\t\tconst clientRect = this.activeNode.getElement().getBoundingClientRect();\n\t\tconst hoverElementAdd = this.hoverArea.querySelector('.landing-designer-block-node-hover-add');\n\t\tconst hoverElementActions = this.hoverArea.querySelector('div[data-id=\"nodeAction\"]');\n\t\tconst editorWindow = BX.Landing.PageObject.getEditorWindow();\n\n\t\tif (hoverElementActions)\n\t\t{\n\t\t\tif (this.activeNode.isPseudoElement())\n\t\t\t{\n\t\t\t\tDom.hide(hoverElementActions);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.show(hoverElementActions);\n\t\t\t}\n\t\t}\n\n\t\tif (hoverElementAdd)\n\t\t{\n\t\t\tDom.style(\n\t\t\t\thoverElementAdd,\n\t\t\t\t{ top: (clientRect.height - 5) + 'px' }\n\t\t\t);\n\t\t}\n\n\t\tDom.style(\n\t\t\tthis.hoverArea,\n\t\t\t{\n\t\t\t\ttop: clientRect.top + editorWindow.scrollY + 'px',\n\t\t\t\tleft: clientRect.left + (clientRect.width < 30 ? 30 : 0) + 'px',\n\t\t\t\twidth: clientRect.width + 'px',\n\t\t\t\theight: '35px'\n\t\t\t}\n\t\t);\n\t}\n\n\tshowHoverArea()\n\t{\n\t\tif (this.hoverArea)\n\t\t{\n\t\t\tDom.show(this.hoverArea);\n\t\t}\n\t}\n\n\thideHoverArea()\n\t{\n\t\tif (this.hoverArea)\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tDom.hide(this.hoverArea);\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\trefreshManifest(manifest: ?ManifestNodesItem)\n\t{\n\t\tif (manifest)\n\t\t{\n\t\t\tObject.keys(manifest).map(selector => {\n\t\t\t\tthis.nodes[selector] = manifest[selector];\n\t\t\t});\n\t\t}\n\t\tthis.initNodes();\n\t\tthis.initGrid();\n\t}\n\n\tgetDocumentBody(): HTMLElement\n\t{\n\t\treturn document.body;\n\t}\n\n\tisInsideElement(element: HTMLElement): boolean\n\t{\n\t\treturn element.parentElement.tagName === 'A';\n\t}\n\n\tsendLabel(key: string, value: string)\n\t{\n\t\tthis.metrika.clearSendedLabel();\n\t\tthis.metrika.sendLabel(null, key, value);\n\t}\n\n\taddElement(repoElement: RepoElementType)\n\t{\n\t\tconst activeNode = this.activeNode;\n\t\tconst tags = [];\n\n\t\t[...document.body.querySelectorAll(activeNode.getSelector())].map(node => {\n\t\t\tconst elementHtml = repoElement.html;\n\t\t\tconst element = Tag.render`${elementHtml}`;\n\t\t\tconst insertAfter = this.isInsideElement(node) ? node.parentNode : node;\n\t\t\tDom.insertAfter(element, insertAfter);\n\t\t\ttags.push({\n\t\t\t\telementHtml,\n\t\t\t\telementSelector: BX.Landing.Utils.getCSSSelector(element),\n\t\t\t\tinsertAfterSelector: BX.Landing.Utils.getCSSSelector(insertAfter)\n\t\t\t});\n\t\t});\n\n\t\tthis.sendLabel(\n\t\t\t'designerBlock',\n\t\t\t'addElement' +\n\t\t\t'&code=' + this.blockCode +\n\t\t\t'&name=' + repoElement.code +\n\t\t\t'&preset=' + (Object.keys(repoElement.manifest.nodes).length === 1 ? 'N' : 'Y')\n\t\t);\n\n\t\tthis.changed = true;\n\t\tthis.refreshManifest(repoElement.manifest.nodes);\n\t\tthis.highlight.show(null);\n\n\t\tBackend.getInstance()\n\t\t\t.action(\"History::pushDesignerBlock\", {\n\t\t\t\tblockId: this.blockId,\n\t\t\t\taction: 'ADD_NODE',\n\t\t\t\tdata: {\n\t\t\t\t\ttags: tags,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.then(result => {\n\t\t\t\tBX.Landing.History.getInstance().push();\n\t\t\t});\n\t}\n\n\tremoveElement()\n\t{\n\t\tconst tags = [];\n\t\tthis.hideHoverArea();\n\n\t\tthis.highlight.hide();\n\n\t\tsetTimeout(() => {\n\n\t\t\tthis.sendLabel(\n\t\t\t\t'designerBlock',\n\t\t\t\t'removeElement' +\n\t\t\t\t'&tagName=' + this.activeNode.getElement().tagName +\n\t\t\t\t'&code=' + this.blockCode\n\t\t\t);\n\n\t\t\t[...document.body.querySelectorAll(this.activeNode.getSelector())].map(node => {\n\t\t\t\ttags.push({\n\t\t\t\t\telementHtml: this.clearHtml(node.outerHTML),\n\t\t\t\t\telementSelector: BX.Landing.Utils.getCSSSelector(node),\n\t\t\t\t\tinsertAfterSelector: node.previousElementSibling ? BX.Landing.Utils.getCSSSelector(node.previousElementSibling) : null,\n\t\t\t\t\tparentNodeSelector: BX.Landing.Utils.getCSSSelector(node.parentNode)\n\t\t\t\t});\n\t\t\t\tthis.removeNode(node);\n\t\t\t});\n\n\t\t\tthis.changed = true;\n\t\t\tthis.refreshManifest();\n\n\t\t\tBackend.getInstance()\n\t\t\t\t.action(\"History::pushDesignerBlock\", {\n\t\t\t\t\tblockId: this.blockId,\n\t\t\t\t\taction: 'REMOVE_NODE',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tselector: this.activeNode.getOriginalSelector(),\n\t\t\t\t\t\ttags: tags,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then(result => {\n\t\t\t\t\tBX.Landing.History.getInstance().push();\n\t\t\t\t});\n\n\t\t}, 0);\n\t}\n\n\ttypeWithWrapper(type: string)\n\t{\n\t\treturn type === 'icon' || type === 'embed';\n\t}\n\n\taddNode(nodeOptions: NodeType): boolean\n\t{\n\t\tif (!this.nodeMap.get(nodeOptions.element))\n\t\t{\n\t\t\tif (nodeOptions.selector.match(/^\\.[\\w-_]+$/i) === null)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// for some type we get parent node\n\t\t\tconst withWrapper = this.typeWithWrapper(nodeOptions.type);\n\t\t\tnodeOptions.element = withWrapper\n\t\t\t\t? nodeOptions.element.parentNode\n\t\t\t\t: nodeOptions.element;\n\t\t\tif (withWrapper)\n\t\t\t{\n\t\t\t\tnodeOptions.selector = nodeOptions.selector + '--type-wrapper';\n\t\t\t\tDom.addClass(nodeOptions.element, nodeOptions.selector.substr(1));\n\t\t\t}\n\t\t\t// mouse over callback\n\t\t\tnodeOptions.onHover = this.onMouseOver.bind(this);\n\n\t\t\tthis.nodeMap.set(\n\t\t\t\tnodeOptions.element,\n\t\t\t\tnew Node(nodeOptions)\n\t\t\t);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tremoveNode(node: HTMLElement)\n\t{\n\t\tif (node)\n\t\t{\n\t\t\tDom.remove(node);\n\t\t\tthis.nodeMap.delete(node);\n\t\t}\n\t}\n\n\tonMouseOver(node: Node)\n\t{\n\t\tif (this.saving)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.activeNode = node;\n\t\tthis.adjustHoverArea();\n\t\tif (!node.isPseudoElement())\n\t\t{\n\t\t\tthis.highlight.show(node.getElement());\n\t\t}\n\t}\n}\n"],"names":["Node","options","element","selector","cardSelector","onHover","pseudoElement","Dom","hasClass","Event","bind","onMouseOver","className","addClass","event","stopPropagation","DesignerBlockUI","Tag","render","Loc","getMessage","RepoPanel","title","scrollAnimation","currentCategory","cache","Cache","MemoryCache","onElementSelect","renderTo","parent","document","body","layout","repository","map","item","addElement","newManifest","newStyleManifest","origNodes","manifest","nodes","Object","keys","randPostfix","randomNum","substring","html","replaceAll","RegExp","style","nodeCard","BX","Landing","UI","Card","BlockPreviewCard","name","image","code","onClick","makeElementUnique","hide","appendCard","min","max","parseInt","Math","random","remember","Content","RepoManager","panel","addRepository","show","then","DesignerBlock","blockNode","originalNode","children","blockCode","blockId","id","designed","autoPublicationEnabled","landingId","lid","highlight","Highlight","cardSelectors","cards","designAllowed","Env","getInstance","getOptions","design_block_allowed","push","nodeMap","WeakMap","metrika","Metrika","repoManager","saveButton","getElementById","top","addCustomEvent","preventEvents","initHistoryEvents","initTopPanel","initNodes","initGrid","initSliders","initHoverArea","content","replace","preventMap","a","form","input","tag","querySelectorAll","node","e","preventDefault","History","setTypeDesignerBlock","Backend","action","getDocumentBody","tags","elementAdded","insertAfterSelector","parentNodeSelector","elementHtml","insertAfter","querySelector","prepend","refreshManifest","setTimeout","sendLabel","removeNode","elementSelector","finishCallback","SidePanel","Instance","close","changed","InfoHelper","saving","batch","data","block","clearHtml","innerHTML","addNode","type","wrapper","parentNode","attr","getPseudoLast","append","substr","sliderSelector","slider","count","Text","toNumber","dataset","slidesShow","rows","classList","join","head","appendChild","hoverArea","getHoverDiv","addNodeElement","getAddNodeButton","CardAction","Button","BaseButtonPanel","Panel","cardAction","showPanel","hideHoverArea","addButton","removeElement","showHoverArea","clientRect","activeNode","getElement","getBoundingClientRect","hoverElementAdd","hoverElementActions","editorWindow","PageObject","getEditorWindow","isPseudoElement","height","scrollY","left","width","parentElement","tagName","key","value","clearSendedLabel","repoElement","getSelector","isInsideElement","Utils","getCSSSelector","length","result","outerHTML","previousElementSibling","getOriginalSelector","nodeOptions","get","match","withWrapper","typeWithWrapper","set","remove","adjustHoverArea"],"mappings":"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"}