Your IP : 216.73.216.86


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

{"version":3,"file":"main.bundle.js","sources":["../src/internal/has-block.js","../src/internal/has-create-button.js","../src/internal/on-animation-end.js","../src/internal/is-empty.js","../src/external.controls.js","../src/main.js"],"sourcesContent":["/**\n * Checks that element contains block\n * @param {HTMLElement} element\n * @return {boolean}\n */\nexport default function hasBlock(element: HTMLElement): boolean\n{\n\treturn !!element && !!element.querySelector('.block-wrapper');\n}","/**\n * Checks that element contains \"Add new Block\" button\n * @param {HTMLElement} element\n * @return {boolean}\n */\nexport default function hasCreateButton(element: HTMLElement): boolean\n{\n\treturn !!element && !!element.querySelector('button[data-id=\"insert_first_block\"]');\n}","import {Event} from 'main.core';\n\nexport default function onAnimationEnd(element: HTMLElement, animationName: string)\n{\n\treturn new Promise(((resolve) => {\n\t\tconst onAnimationEndListener = (event) => {\n\t\t\tif (!animationName || (event.animationName === animationName))\n\t\t\t{\n\t\t\t\tresolve(event);\n\t\t\t\tEvent.bind(element, 'animationend', onAnimationEndListener);\n\t\t\t}\n\t\t};\n\n\t\tEvent.bind(element, 'animationend', onAnimationEndListener);\n\t}));\n}","import {Type} from 'main.core';\n\nexport default function isEmpty(value): boolean\n{\n\tif (Type.isNil(value))\n\t{\n\t\treturn true;\n\t}\n\n\tif (Type.isArrayLike(value))\n\t{\n\t\treturn !value.length;\n\t}\n\n\tif (Type.isObject(value))\n\t{\n\t\treturn Object.keys(value).length <= 0;\n\t}\n\n\treturn true;\n}","import { Dom } from 'main.core';\n\nimport { Main } from './main';\n\ntype Block = {\n\tid: number,\n\tstate: boolean,\n\tpermissions: {\n\t\tallowDesignBlock: boolean,\n\t\tallowModifyStyles: boolean,\n\t\tallowEditContent: boolean,\n\t\tallowSorting: boolean,\n\t\tallowRemove: boolean,\n\t\tallowChangeState: boolean,\n\t},\n};\n\ntype MobileTop = {\n\tblockId: number,\n\ttop: number,\n\theight: number,\n};\n\nexport class ExternalControls\n{\n\t#postMessages = {\n\t\tmode: 'mode',\n\t\tregister: 'register',\n\t\tchangeState: 'changestate',\n\t\teditorEnable: 'editorenable',\n\t\tshowControls: 'showcontrols',\n\t\tshowBlockControls: 'showblockcontrols',\n\t\thideAll: 'hideall',\n\t\tbackendAction: 'backendaction',\n\t};\n\n\t#currentMobileTop: number = -1;\n\t#mouseEntered: boolean = false;\n\t#disableControls: boolean = false;\n\t#currentMousePosition: number = 0;\n\t#blocksMobileTops: Array<MobileTop> = [];\n\n\tconstructor()\n\t{\n\t\tif (Main.isExternalControlsEnabled())\n\t\t{\n\t\t\tthis.#registerListeners();\n\t\t}\n\t}\n\n\t/**\n\t * Registers all required listeners.\n\t */\n\t#registerListeners()\n\t{\n\t\tsetTimeout(() => {\n\t\t\tthis.#registerBlocks();\n\t\t}, 0);\n\n\t\t// listening commands from outer frame\n\t\twindow.addEventListener('message', (event) => {\n\t\t\tif (this.isControlsExternal())\n\t\t\t{\n\t\t\t\tthis.listenExternalCommands(event.data.action, event.data.payload);\n\t\t\t}\n\t\t});\n\n\t\t// catching the mouse and scrolling\n\t\tdocument.addEventListener('mouseenter', (event) => {\n\t\t\tthis.#mouseEntered = true;\n\t\t});\n\t\tdocument.addEventListener('mouseleave', (event) => {\n\t\t\tthis.#mouseEntered = false;\n\t\t});\n\t\tdocument.addEventListener('mousemove', (event) => {\n\t\t\tthis.onMobileMouseMove(event.y);\n\t\t});\n\t\tdocument.addEventListener('scroll', () => {\n\t\t\tif (this.#mouseEntered)\n\t\t\t{\n\t\t\t\tthis.recalculateTopsIfExternals();\n\t\t\t}\n\t\t});\n\n\t\t// checking when external commands become enabled\n\t\tBX.addCustomEvent('BX.Landing.Main:changeControls', (type, topInPercent) =>\n\t\t{\n\t\t\tif (type === 'internal')\n\t\t\t{\n\t\t\t\tthis.postExternalCommand(this.#postMessages.hideAll, {});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t// mode switching some time\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.recalculateTops(true);\n\t\t\t\t}, 400);\n\t\t\t}\n\t\t});\n\n\t\t// checking inline editor — enabled or disabled\n\t\tBX.addCustomEvent('BX.Landing.Editor:enable', () =>\n\t\t{\n\t\t\tthis.#disableControls = true;\n\t\t\tif (this.isControlsExternal())\n\t\t\t{\n\t\t\t\tthis.postExternalCommand(this.#postMessages.hideAll, {});\n\t\t\t}\n\t\t});\n\t\tBX.addCustomEvent('BX.Landing.Editor:disable', () =>\n\t\t{\n\t\t\tthis.#disableControls = false;\n\t\t\tthis.recalculateTopsIfExternals(true);\n\t\t});\n\n\t\t// checking that new block was added and any block changed its active status\n\t\tBX.addCustomEvent('BX.Landing.Block:onAfterAdd', (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst blockData = event.getData();\n\t\t\t\tthis.#registerNewBlock(blockData.id);\n\t\t\t}, 500);\n\t\t});\n\t\tBX.addCustomEvent('BX.Landing.Block:changeState', (blockId, state) => {\n\t\t\tthis.postExternalCommand(this.#postMessages.changeState, { blockId, state });\n\t\t});\n\n\t\t// form's settings were opened and then closed\n\t\tBX.addCustomEvent('BX.Landing.Block:onFormSettingsOpen', () => {\n\t\t\tif (this.isControlsExternal())\n\t\t\t{\n\t\t\t\tthis.postExternalCommand(this.#postMessages.hideAll, {});\n\t\t\t}\n\t\t\tthis.#disableControls = true;\n\t\t});\n\t\tBX.addCustomEvent('BX.Landing.Block:onFormSettingsClose', (blockId) => {\n\t\t\t// after form completely closed\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.#disableControls = false;\n\t\t\t\tthis.recalculateTopsIfExternals(true);\n\t\t\t}, 400);\n\t\t\tthis.postExternalCommand(this.#postMessages.hideAll, {});\n\t\t});\n\t\tBX.addCustomEvent('BX.Landing.Block:onAfterFormSave', (blockId) =>\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.postExternalCommand(this.#postMessages.backendAction, {\n\t\t\t\t\taction: 'Landing\\\\Block::saveForm', data: {block: blockId},\n\t\t\t\t});\n\t\t\t}, 1000);\n\t\t});\n\t\tBX.addCustomEvent('BX.Landing.Block:onBlockEditClose', () => {\n\t\t\tthis.#disableControls = false;\n\t\t\tthis.recalculateTopsIfExternals(true);\n\t\t});\n\n\t\tBX.addCustomEvent('BX.Landing.Block:onContentSave', this.recalculateTopsIfExternals.bind(this));\n\t\tBX.addCustomEvent('BX.Landing.Block:onDesignerBlockSave', this.recalculateTopsIfExternals.bind(this));\n\t\tBX.addCustomEvent('BX.Landing.Block:Card:add', this.recalculateTopsIfExternals.bind(this));\n\t\tBX.addCustomEvent('BX.Landing.Block:Card:remove', this.recalculateTopsIfExternals.bind(this));\n\t\tBX.addCustomEvent('BX.Landing.Block:afterRemove', this.recalculateTopsIfExternals.bind(this));\n\t\tBX.addCustomEvent('BX.Landing.Backend:action', this.onBackendAction.bind(this));\n\t\tBX.addCustomEvent('BX.Landing.Backend:batch', this.onBackendAction.bind(this));\n\t}\n\n\t/**\n\t * Invokes when backend action occurred.\n\t */\n\tonBackendAction(action, data)\n\t{\n\t\tthis.#disableControls = false;\n\t\tthis.postExternalCommand(this.#postMessages.backendAction, { action, data });\n\t}\n\n\t/**\n\t * Creates and returns Block object for sending to external window.\n\t *\n\t * @param {BX.Landing.} block\n\t * @return {Block}\n\t */\n\t#createBlockObject(block: BX.Landing.Block): Block\n\t{\n\t\treturn {\n\t\t\tid: parseInt(block.id),\n\t\t\tstate: block.isEnabled(),\n\t\t\tpermissions: {\n\t\t\t\tallowDesignBlock: block.isDesignBlockAllowed(),\n\t\t\t\tallowModifyStyles: block.isStyleModifyAllowed(),\n\t\t\t\tallowEditContent: block.isEditBlockAllowed(),\n\t\t\t\tallowSorting: block.isEditBlockAllowed(),\n\t\t\t\tallowRemove: block.isRemoveBlockAllowed(),\n\t\t\t\tallowChangeState: block.isChangeStateBlockAllowed(),\n\t\t\t\tallowPaste: block.isPasteBlockAllowed(),\n\t\t\t\tallowSaveInLibrary: block.isSaveBlockInLibraryAllowed(),\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Registers all blocks on entire page.\n\t */\n\t#registerBlocks()\n\t{\n\t\tconst blocksCollection = BX.Landing.PageObject.getBlocks();\n\t\tconst data = [];\n\n\t\t[...blocksCollection].map(block => data.push(this.#createBlockObject(block)));\n\n\t\tthis.postExternalCommand(this.#postMessages.register, {\n\t\t\tblocks: data,\n\t\t});\n\t}\n\n\t/**\n\t * Registers new block.\n\t *\n\t * @param {number} blockId\n\t */\n\t#registerNewBlock(blockId: number)\n\t{\n\t\tconst block = BX.Landing.PageObject.getBlocks().get(blockId);\n\t\tif (block)\n\t\t{\n\t\t\tthis.postExternalCommand(this.#postMessages.register, {\n\t\t\t\tblocks: [this.#createBlockObject(block)],\n\t\t\t});\n\t\t\t// because new block adding some time\n\t\t\tif (this.isControlsExternal()) {\n\t\t\t\tthis.recalculateTops();\n\t\t\t} else {\n\t\t\t\tthis.postExternalCommand(this.#postMessages.hideAll, {});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks that landing controls is external\n\t *\n\t * @return {boolean}\n\t */\n\tisControlsExternal()\n\t{\n\t\treturn Dom.hasClass(document.body, 'landing-ui-external-controls');\n\t}\n\n\t/**\n\t * Recalculates block tops.\n\t *\n\t * @param {boolean} resetMobileTop\n\t */\n\trecalculateTops(resetMobileTop: boolean)\n\t{\n\t\tthis.#blocksMobileTops = [];\n\n\t\tif (resetMobileTop)\n\t\t{\n\t\t\tthis.#currentMobileTop = -1;\n\t\t}\n\n\t\t[...document.body.querySelectorAll('.block-wrapper')].map(block => {\n\t\t\tconst blockRect = block.getBoundingClientRect();\n\t\t\tif (blockRect.height > 1)// hidden on mobile blocks\n\t\t\t{\n\t\t\t\tthis.#blocksMobileTops.push({\n\t\t\t\t\tblockId: parseInt(block.getAttribute('data-id')),\n\t\t\t\t\ttop: blockRect.top,\n\t\t\t\t\theight: blockRect.height,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.onMobileMouseMove(this.#currentMousePosition);\n\t}\n\n\t/**\n\t * Recalculates block tops only if external controls are enabled.\n\t *\n\t * @param {boolean} resetMobileTop\n\t */\n\trecalculateTopsIfExternals(resetMobileTop: boolean)\n\t{\n\t\tif (this.isControlsExternal())\n\t\t{\n\t\t\tthis.recalculateTops(resetMobileTop);\n\t\t}\n\t}\n\n\t/**\n\t * Call when user moves mouse over the mobile page.\n\t *\n\t * @param {number} top\n\t */\n\tonMobileMouseMove(top: number)\n\t{\n\t\tif (this.#disableControls || !this.isControlsExternal())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (top <= 0)\n\t\t{\n\t\t\tthis.#currentMobileTop = -1;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#currentMousePosition = top;\n\n\t\tfor (let i = 0, c = this.#blocksMobileTops.length; i < c; i++)\n\t\t{\n\t\t\tif (\n\t\t\t\ttop >= this.#blocksMobileTops[i]['top']\n\t\t\t\t&& (!this.#blocksMobileTops[i+1] || top < this.#blocksMobileTops[i+1]['top'])\n\t\t\t)\n\t\t\t{\n\t\t\t\tif (this.#blocksMobileTops[i]['top'] !== this.#currentMobileTop)\n\t\t\t\t{\n\t\t\t\t\tthis.#currentMobileTop = this.#blocksMobileTops[i]['top'];\n\n\t\t\t\t\tthis.postExternalCommand(this.#postMessages.showControls, {\n\t\t\t\t\t\tblockId: this.#blocksMobileTops[i]['blockId'],\n\t\t\t\t\t\ttop: this.#blocksMobileTops[i]['top'],\n\t\t\t\t\t\theight: this.#blocksMobileTops[i]['height'],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sends action with payload to parent window.\n\t *\n\t * @param {string} action\n\t * @param {Object} payload\n\t */\n\tpostExternalCommand(action, payload)\n\t{\n\t\tif (window.parent)\n\t\t{\n\t\t\twindow.parent.postMessage({action, payload}, window.location.origin);\n\t\t}\n\t}\n\n\t/**\n\t * Receives actions with payload from parent window.\n\t *\n\t * @param {string} action\n\t * @param {Object} payload\n\t */\n\tlistenExternalCommands(action, payload)\n\t{\n\t\tconst block = BX.Landing.PageObject.getBlocks().get(\n\t\t\tpayload?.blockId ? payload.blockId : -1\n\t\t);\n\n\t\tif (payload?.blockId && !block)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst successCallback = () => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.#currentMousePosition = 0;\n\t\t\t\tthis.recalculateTops();\n\t\t\t}, 300);\n\t\t};\n\n\t\tswitch (action)\n\t\t{\n\t\t\tcase 'onDesignerBlockClick':\n\t\t\t{\n\t\t\t\tblock.onDesignerBlockClick();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onEditBlockClick':\n\t\t\t{\n\t\t\t\tblock.onShowContentPanel();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onStyleBlockClick':\n\t\t\t{\n\t\t\t\tblock.onStyleShow();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onSortDownBlockClick':\n\t\t\t{\n\t\t\t\tblock.moveDown();\n\t\t\t\tsuccessCallback();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onSortUpBlockClick':\n\t\t\t{\n\t\t\t\tblock.moveUp();\n\t\t\t\tsuccessCallback();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onRemoveBlockClick':\n\t\t\t{\n\t\t\t\tblock.deleteBlock();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onChangeStateBlockClick':\n\t\t\t{\n\t\t\t\tblock.onStateChange();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onCutBlockClick':\n\t\t\t{\n\t\t\t\tMain.getInstance().onCutBlock.bind(Main.getInstance(), block)();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onCopyBlockClick':\n\t\t\t{\n\t\t\t\tMain.getInstance().onCopyBlock.bind(Main.getInstance(), block)();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onPasteBlockClick':\n\t\t\t{\n\t\t\t\tMain.getInstance().onPasteBlock.bind(\n\t\t\t\t\tMain.getInstance(),\n\t\t\t\t\tblock,\n\t\t\t\t\t(blockId) => {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tthis.#registerNewBlock(blockId);\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t}\n\t\t\t\t)();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onFeedbackClick':\n\t\t\t{\n\t\t\t\tblock.showFeedbackForm();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onSaveInLibraryClick':\n\t\t\t{\n\t\t\t\tblock.saveBlock();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'onHideEditorPanel':\n\t\t\t{\n\t\t\t\tBX.Landing.UI.Panel.EditorPanel.getInstance().hide();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","import {Type, Dom, Cache, Tag, Text, Runtime} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {Env} from 'landing.env';\nimport {Loc} from 'landing.loc';\nimport {Content} from 'landing.ui.panel.content';\nimport {SaveBlock} from 'landing.ui.panel.saveblock';\nimport {SliderHacks} from 'landing.sliderhacks';\nimport {PageObject} from 'landing.pageobject';\nimport hasBlock from './internal/has-block';\nimport hasCreateButton from './internal/has-create-button';\nimport onAnimationEnd from './internal/on-animation-end';\nimport isEmpty from './internal/is-empty';\nimport {ExternalControls} from './external.controls';\nimport {Backend} from 'landing.backend';\n\nBX.Landing.getMode = () => 'edit';\n\n/**\n * @memberOf BX.Landing\n */\nexport class Main extends EventEmitter\n{\n\tstatic TYPE_PAGE = 'PAGE';\n\tstatic TYPE_STORE = 'STORE';\n\tstatic TYPE_KNOWLEDGE = 'KNOWLEDGE';\n\tstatic TYPE_GROUP = 'GROUP';\n\n\tstatic getMode()\n\t{\n\t\treturn 'edit';\n\t}\n\n\tstatic createInstance(id: number)\n\t{\n\t\tconst rootWindow = BX.Landing.PageObject.getRootWindow();\n\t\tif (rootWindow.BX.Landing.Main.instance)\n\t\t{\n\t\t\trootWindow.BX.Landing.Main.instance.clear();\n\t\t}\n\t\trootWindow.BX.Landing.Main.instance = new BX.Landing.Main(id);\n\t}\n\n\tstatic getInstance(): Main\n\t{\n\t\tconst rootWindow = BX.Landing.PageObject.getRootWindow();\n\t\trootWindow.BX.Reflection.namespace('BX.Landing.Main');\n\t\tif (rootWindow.BX.Landing.Main.instance)\n\t\t{\n\t\t\treturn rootWindow.BX.Landing.Main.instance;\n\t\t}\n\n\t\trootWindow.BX.Landing.Main.instance = new Main(-1);\n\n\t\treturn rootWindow.BX.Landing.Main.instance;\n\t}\n\n\t/**\n\t * Returns true, if current page is Editor.\n\t * @return {boolean}\n\t */\n\tstatic isEditorMode()\n\t{\n\t\treturn Dom.hasClass(document.body, 'landing-editor');\n\t}\n\n\t/**\n\t * Returns true, if external controls is enabled.\n\t * @return {boolean}\n\t */\n\tstatic isExternalControlsEnabled()\n\t{\n\t\treturn Dom.hasClass(document.body, 'enable-external-controls');\n\t}\n\n\t/**\n\t * Returns in percent scroll position of page.\n\t *\n\t * @return {number}\n\t */\n\tstatic topInPercent(): number\n\t{\n\t\tconst scrollHeight = Math.max(\n\t\t\tdocument.body.scrollHeight, document.documentElement.scrollHeight,\n\t\t\tdocument.body.offsetHeight, document.documentElement.offsetHeight,\n\t\t\tdocument.body.clientHeight, document.documentElement.clientHeight\n\t\t);\n\n\t\tconst scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n\n\t\treturn scrollTop / scrollHeight * 100;\n\t}\n\n\t/**\n\t * Landing ID\n\t * @type {number}\n\t */\n\tid: number;\n\n\tconstructor(id: number)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.Main');\n\n\t\tconst options = Env.getInstance().getOptions();\n\n\t\tthis.id = id;\n\t\tthis.options = Object.freeze(options);\n\t\tthis.blocks = this.options.blocks;\n\t\tthis.currentBlock = null;\n\t\tthis.isDesignBlockModeFlag = this.options[\"design_block\"] === true;\n\t\tthis.loadedDeps = {};\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.externalControls = new ExternalControls;\n\n\t\tthis.onSliderFormLoaded = this.onSliderFormLoaded.bind(this);\n\t\tthis.onBlockDelete = this.onBlockDelete.bind(this);\n\n\t\tBX.addCustomEvent('Landing.Block:onAfterDelete', this.onBlockDelete);\n\n\t\tthis.adjustEmptyAreas();\n\n\t\tBX.Landing.UI.Panel.StatusPanel.setLastModified(options.lastModified);\n\t\tif (!this.isDesignBlockModeFlag)\n\t\t{\n\t\t\tBX.Landing.UI.Panel.StatusPanel.getInstance().show();\n\t\t}\n\n\t\tconst pageType = Env.getInstance().getType();\n\t\tif (\n\t\t\tpageType === Main.TYPE_KNOWLEDGE\n\t\t\t|| pageType === Main.TYPE_GROUP\n\t\t)\n\t\t{\n\t\t\tconst mainArea = document.querySelector('.landing-main');\n\t\t\tif (Type.isDomNode(mainArea))\n\t\t\t{\n\t\t\t\tDom.addClass(mainArea, 'landing-ui-collapse');\n\t\t\t}\n\t\t}\n\t}\n\n\tclear(): void\n\t{\n\t\tBX.removeCustomEvent('Landing.Block:onAfterDelete', this.onBlockDelete);\n\t}\n\n\tisCrmFormPage(): boolean\n\t{\n\t\treturn Env.getInstance().getSpecialType() === 'crm_forms';\n\t}\n\n\tisDesignBlockMode()\n\t{\n\t\treturn this.isDesignBlockModeFlag;\n\t}\n\n\tgetSaveBlockPanel(): Content\n\t{\n\t\tconst panel = new SaveBlock('save_block_panel', {block: this.currentBlock});\n\t\tpanel.layout.hidden = true;\n\t\tpanel.content.hidden = false;\n\t\tDom.append(panel.layout, window.parent.document.body);\n\n\t\treturn panel;\n\t}\n\n\tgetBlocksPanel(): Content\n\t{\n\t\treturn this.cache.remember('blockPanel', () => {\n\t\t\tconst blocksPanel = this.createBlocksPanel();\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (blocksPanel.sidebarButtons.get(this.options.default_section))\n\t\t\t\t{\n\t\t\t\t\tblocksPanel.sidebarButtons.get(this.options.default_section).layout.click();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t[...blocksPanel.sidebarButtons][0].layout.click();\n\t\t\t\t}\n\t\t\t});\n\t\t\tblocksPanel.layout.hidden = true;\n\t\t\tblocksPanel.content.hidden = false;\n\t\t\tDom.append(blocksPanel.layout, window.parent.document.body);\n\n\t\t\treturn blocksPanel;\n\t\t});\n\t}\n\n\thideBlocksPanel()\n\t{\n\t\tif (this.getBlocksPanel())\n\t\t{\n\t\t\treturn this.getBlocksPanel().hide();\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\tgetLayoutAreas(): Array<HTMLElement>\n\t{\n\t\treturn this.cache.remember('layoutAreas', () => {\n\t\t\treturn [\n\t\t\t\t...document.body.querySelectorAll('.landing-header'),\n\t\t\t\t...document.body.querySelectorAll('.landing-sidebar'),\n\t\t\t\t...document.body.querySelectorAll('.landing-main'),\n\t\t\t\t...document.body.querySelectorAll('.landing-footer'),\n\t\t\t];\n\t\t});\n\t}\n\n\t/**\n\t * Creates insert block button\n\t * @param {HTMLElement} area\n\t * @return {BX.Landing.UI.Button.Plus}\n\t */\n\tcreateInsertBlockButton(area: HTMLElement)\n\t{\n\t\tconst button = new BX.Landing.UI.Button.Plus('insert_first_block', {\n\t\t\ttext: Loc.getMessage('ACTION_BUTTON_CREATE'),\n\t\t});\n\n\t\tbutton.on('click', this.showBlocksPanel.bind(this, null, area, button));\n\t\tbutton.on('mouseover', this.onCreateButtonMouseover.bind(this, area, button));\n\t\tbutton.on('mouseout', this.onCreateButtonMouseout.bind(this, area, button));\n\n\t\treturn button;\n\t}\n\n\tonCreateButtonMouseover(area: HTMLElement, button)\n\t{\n\t\tif (\n\t\t\tDom.hasClass(area, 'landing-header')\n\t\t\t|| Dom.hasClass(area, 'landing-footer')\n\t\t)\n\t\t{\n\t\t\tconst areas = this.getLayoutAreas();\n\n\t\t\tif (areas.length > 1)\n\t\t\t{\n\t\t\t\tconst createText = Loc.getMessage('ACTION_BUTTON_CREATE');\n\n\t\t\t\tif (Dom.hasClass(area, 'landing-main'))\n\t\t\t\t{\n\t\t\t\t\tbutton.setText(\n\t\t\t\t\t\t`${createText} ${Loc.getMessage('LANDING_ADD_BLOCK_TO_MAIN')}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (Dom.hasClass(area, 'landing-header'))\n\t\t\t\t{\n\t\t\t\t\tbutton.setText(\n\t\t\t\t\t\t`${createText} ${Loc.getMessage('LANDING_ADD_BLOCK_TO_HEADER')}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (Dom.hasClass(area, 'landing-sidebar'))\n\t\t\t\t{\n\t\t\t\t\tbutton.setText(\n\t\t\t\t\t\t`${createText} ${Loc.getMessage('LANDING_ADD_BLOCK_TO_SIDEBAR')}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (Dom.hasClass(area, 'landing-footer'))\n\t\t\t\t{\n\t\t\t\t\tbutton.setText(\n\t\t\t\t\t\t`${createText} ${Loc.getMessage('LANDING_ADD_BLOCK_TO_FOOTER')}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tclearTimeout(this.fadeTimeout);\n\t\t\t\tthis.fadeTimeout = setTimeout(() => {\n\t\t\t\t\tDom.addClass(area, 'landing-area-highlight');\n\n\t\t\t\t\tareas\n\t\t\t\t\t\t.filter((currentArea) => currentArea !== area)\n\t\t\t\t\t\t.forEach((currentArea) => {\n\t\t\t\t\t\t\tDom.addClass(currentArea, 'landing-area-fade');\n\t\t\t\t\t\t});\n\t\t\t\t}, 400);\n\t\t\t}\n\t\t}\n\t}\n\n\tonCreateButtonMouseout(area, button)\n\t{\n\t\tclearTimeout(this.fadeTimeout);\n\n\t\tif (Dom.hasClass(area, 'landing-header')\n\t\t\t|| Dom.hasClass(area, 'landing-footer'))\n\t\t{\n\t\t\tconst areas = this.getLayoutAreas();\n\n\t\t\tif (areas.length > 1)\n\t\t\t{\n\t\t\t\tbutton.setText(Loc.getMessage('ACTION_BUTTON_CREATE'));\n\t\t\t\tareas.forEach((currentArea) => {\n\t\t\t\t\tDom.removeClass(currentArea, 'landing-area-highlight');\n\t\t\t\t\tDom.removeClass(currentArea, 'landing-area-fade');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tinitEmptyArea(area: HTMLElement)\n\t{\n\t\tif (area)\n\t\t{\n\t\t\tarea.innerHTML = '';\n\t\t\tDom.append(this.createInsertBlockButton(area).layout, area);\n\t\t\tDom.addClass(area, 'landing-empty');\n\t\t}\n\t}\n\n\n\t// eslint-disable-next-line class-methods-use-this\n\tdestroyEmptyArea(area: HTMLElement)\n\t{\n\t\tif (area)\n\t\t{\n\t\t\tconst button = area.querySelector('button[data-id=\"insert_first_block\"]');\n\n\t\t\tif (button)\n\t\t\t{\n\t\t\t\tDom.remove(button);\n\t\t\t}\n\n\t\t\tDom.removeClass(area, 'landing-empty');\n\t\t}\n\t}\n\n\n\t/**\n\t * Adjusts areas\n\t */\n\tadjustEmptyAreas()\n\t{\n\t\tthis.getLayoutAreas()\n\t\t\t.filter((area) => {\n\t\t\t\treturn hasBlock(area) && hasCreateButton(area);\n\t\t\t})\n\t\t\t.forEach(this.destroyEmptyArea, this);\n\n\t\tthis.getLayoutAreas()\n\t\t\t.filter((area) => {\n\t\t\t\treturn !hasBlock(area) && !hasCreateButton(area);\n\t\t\t})\n\t\t\t.forEach(this.initEmptyArea, this);\n\n\t\tconst main = document.body.querySelector('main.landing-edit-mode');\n\t\tconst isAllEmpty = !this.getLayoutAreas().some(hasBlock);\n\n\t\tif (main)\n\t\t{\n\t\t\tif (isAllEmpty)\n\t\t\t{\n\t\t\t\tDom.addClass(main, 'landing-empty');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tDom.removeClass(main, 'landing-empty');\n\t\t}\n\t}\n\n\n\t/**\n\t * Enables landing controls\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tenableControls()\n\t{\n\t\tDom.removeClass(document.body, 'landing-ui-hide-controls');\n\t}\n\n\n\t/**\n\t * Disables landing controls\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tdisableControls()\n\t{\n\t\tDom.addClass(document.body, 'landing-ui-hide-controls');\n\t}\n\n\n\t/**\n\t * Checks that landing controls is enabled\n\t * @return {boolean}\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tisControlsEnabled()\n\t{\n\t\treturn !Dom.hasClass(document.body, 'landing-ui-hide-controls');\n\t}\n\n\t/**\n\t * Makes landing controls internal.\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tmakeControlsInternal()\n\t{\n\t\tBX.onCustomEvent('BX.Landing.Main:changeControls', ['internal', Main.topInPercent()]);\n\t\tDom.removeClass(document.body, 'landing-ui-external-controls');\n\t}\n\n\t/**\n\t * Makes landing controls external.\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tmakeControlsExternal()\n\t{\n\t\tBX.onCustomEvent('BX.Landing.Main:changeControls', ['external', Main.topInPercent()]);\n\t\tDom.addClass(document.body, 'landing-ui-external-controls');\n\t}\n\n\t/**\n\t * Checks that landing controls is external.\n\t * @return {boolean}\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tisControlsExternal()\n\t{\n\t\treturn Dom.hasClass(document.body, 'landing-ui-external-controls');\n\t}\n\n\t/**\n\t * Set device code in body data-attribute.\n\t * @param {string} code\n\t */\n\tsetDeviceCode(code: string)\n\t{\n\t\tdocument.body.setAttribute('data-device', code);\n\t}\n\n\t/**\n\t * Get device code from body attribute.\n\t * @return {string}\n\t */\n\tgetDeviceCode(): ?string\n\t{\n\t\treturn document.body.getAttribute('data-device');\n\t}\n\n\t/**\n\t * Set BX classes to mark this landing frame as mobile (touch) device\n\t */\n\tsetTouchDevice()\n\t{\n\t\tDom.removeClass(document.documentElement, 'bx-no-touch');\n\t\tDom.addClass(document.documentElement, 'bx-touch');\n\t}\n\n\t/**\n\t * Set BX classes to mark this landing frame as desktop (no touch) device\n\t */\n\tsetNoTouchDevice()\n\t{\n\t\tDom.removeClass(document.documentElement, 'bx-touch');\n\t\tDom.addClass(document.documentElement, 'bx-no-touch');\n\t}\n\n\n\t/**\n\t * Appends block\n\t * @param {addBlockResponse} data\n\t * @param {boolean} [withoutAnimation]\n\t * @returns {HTMLElement}\n\t */\n\tappendBlock(data, withoutAnimation)\n\t{\n\t\tif (!this.isAllowedAppendBlock(data))\n\t\t{\n\t\t\treturn Tag.render``;\n\t\t}\n\n\t\tconst block = Tag.render`${data.content}`;\n\t\tblock.id = `block${data.id}`;\n\n\t\tif (!withoutAnimation)\n\t\t{\n\t\t\tDom.addClass(block, 'landing-ui-show');\n\t\t\tonAnimationEnd(block, 'showBlock').then(() => {\n\t\t\t\tDom.removeClass(block, 'landing-ui-show');\n\t\t\t});\n\t\t}\n\n\t\tthis.insertToBlocksFlow(block);\n\n\t\treturn block;\n\t}\n\n\t/**\n\t * Check if the block can be appended\n\t * @param {addBlockResponse} data\n\t * @returns {boolean} - Returns true if the block can be appended, otherwise false\n\t */\n\tisAllowedAppendBlock(data)\n\t{\n\t\tconst type = BX.Landing.Env.getInstance().getType().toLowerCase();\n\t\tlet allowedBlockTypes = data.manifest.block.type ?? [];\n\t\tif (\n\t\t\ttype === 'mainpage'\n\t\t\t|| allowedBlockTypes.includes('mainpage')\n\t\t)\n\t\t{\n\t\t\tif (Type.isString(allowedBlockTypes))\n\t\t\t{\n\t\t\t\tallowedBlockTypes = [allowedBlockTypes];\n\t\t\t}\n\n\t\t\tif (!allowedBlockTypes.includes(type))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\n\t/**\n\t * Shows blocks list panel\n\t * @param {BX.Landing.Block} block\n\t * @param {HTMLElement} [area]\n\t * @param [button]\n\t * @param [insertBefore]\n\t */\n\tshowBlocksPanel(block, area, button, insertBefore)\n\t{\n\t\tthis.currentBlock = block;\n\t\tthis.currentArea = area;\n\t\tthis.insertBefore = insertBefore;\n\n\t\tBX.Landing.UI.Panel.EditorPanel.getInstance().hide();\n\n\t\tif (this.isCrmFormPage() || this.isControlsExternal())\n\t\t{\n\t\t\tconst rootWindow = PageObject.getRootWindow();\n\t\t\tDom.append(this.getBlocksPanel().layout, rootWindow.document.body);\n\t\t\tDom.append(this.getBlocksPanel().overlay, rootWindow.document.body);\n\t\t}\n\n\t\tthis.getBlocksPanel().show();\n\t\tthis.disableAddBlockButtons();\n\n\t\tif (!!area && !!button)\n\t\t{\n\t\t\tthis.onCreateButtonMouseout(area, button);\n\t\t}\n\t}\n\n\tshowSaveBlock(block)\n\t{\n\t\tthis.currentBlock = block;\n\t\tthis.getSaveBlockPanel().show();\n\t}\n\n\tdisableAddBlockButtons()\n\t{\n\t\tPageObject.getBlocks().forEach((block) => {\n\t\t\tconst panel = block.panels.get('create_action');\n\t\t\tif (panel)\n\t\t\t{\n\t\t\t\tconst button = panel.buttons.get('insert_after');\n\t\t\t\tif (button)\n\t\t\t\t{\n\t\t\t\t\tbutton.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tenableAddBlockButtons()\n\t{\n\t\tPageObject.getBlocks().forEach((block) => {\n\t\t\tconst panel = block.panels.get('create_action');\n\t\t\tif (panel)\n\t\t\t{\n\t\t\t\tconst button = panel.buttons.get('insert_after');\n\t\t\t\tif (button)\n\t\t\t\t{\n\t\t\t\t\tbutton.enable();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Creates blocks list panel\n\t * @returns {BX.Landing.UI.Panel.Content}\n\t */\n\tcreateBlocksPanel()\n\t{\n\t\tconst {blocks} = this.options;\n\t\tconst categories = Object.keys(blocks);\n\n\t\tconst panel = new Content('blocks_panel', {\n\t\t\ttitle: Loc.getMessage('LANDING_CONTENT_BLOCKS_TITLE'),\n\t\t\tclassName: 'landing-ui-panel-block-list',\n\t\t\tscrollAnimation: true,\n\t\t});\n\n\t\tpanel.subscribe('onCancel', () => {\n\t\t\tthis.enableAddBlockButtons();\n\t\t});\n\n\t\tcategories.forEach((categoryId) => {\n\t\t\tconst hasItems = !isEmpty(blocks[categoryId].items);\n\t\t\tconst isPopular = categoryId === 'popular';\n\t\t\tconst isSeparator = blocks[categoryId].separator;\n\n\t\t\tif ((hasItems && !isPopular) || isSeparator)\n\t\t\t{\n\t\t\t\tpanel.appendSidebarButton(\n\t\t\t\t\tthis.createBlockPanelSidebarButton(categoryId, blocks[categoryId]),\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tpanel.appendSidebarButton(\n\t\t\tnew BX.Landing.UI.Button.SidebarButton('feedback_button', {\n\t\t\t\tclassName: 'landing-ui-button-sidebar-feedback',\n\t\t\t\ttext: Loc.getMessage('LANDING_BLOCKS_LIST_FEEDBACK_BUTTON'),\n\t\t\t\tonClick: this.showFeedbackForm.bind(this),\n\t\t\t}),\n\t\t);\n\n\t\treturn panel;\n\t}\n\n\n\t/**\n\t * Shows feedback form\n\t * @param data\n\t */\n\tshowSliderFeedbackForm(data = {})\n\t{\n\t\tRuntime.loadExtension('ui.feedback.form').then(() => {\n\t\t\tconst data = {};\n\t\t\tdata.bitrix24 = this.options.server_name;\n\t\t\tdata.siteId = this.options.site_id;\n\t\t\tdata.siteUrl = this.options.url;\n\t\t\tdata.siteTemplate = this.options.xml_id;\n\t\t\tdata.productType = this.options.productType || 'Undefined';\n\t\t\tdata.typeproduct = (() =>\n\t\t\t{\n\t\t\t\tif (this.options.params.type === Main.TYPE_GROUP)\n\t\t\t\t{\n\t\t\t\t\treturn 'KNOWLEDGE_GROUP';\n\t\t\t\t}\n\n\t\t\t\treturn this.options.params.type;\n\t\t\t})();\n\n\t\t\tBX.UI.Feedback.Form.open(\n\t\t\t\t{\n\t\t\t\t\tid: Math.random()+'',\n\t\t\t\t\tforms: this.getFeedbackFormOptions(),\n\t\t\t\t\tpresets: data,\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\n\t}\n\n\n\t/**\n\t * Gets feedback form options\n\t * @return {{id: string, sec: string, lang: string}}\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tgetFeedbackFormOptions()\n\t{\n\t\treturn [\n\t\t\t{zones: ['en', 'eu', 'in', 'uk'], id: 16, lang: 'en', sec: '3h483y'},\n\t\t\t{zones: ['ru', 'by', 'kz'], id: 8, lang: 'ru', sec: 'x80yjw'},\n\t\t\t{zones: ['ua'], id: 18, lang: 'ua', sec: 'd9e09o'},\n\t\t\t{zones: ['la', 'co', 'mx'], id: 14, lang: 'la', sec: 'wu561i'},\n\t\t\t{zones: ['de'], id: 10, lang: 'de', sec: 'eraz2q'},\n\t\t\t{zones: ['com.br', 'br'], id: 12, lang: 'br', sec: 'r6wvge'},\n\t\t];\n\t}\n\n\n\t/**\n\t * Handles feedback loaded event\n\t */\n\tonSliderFormLoaded()\n\t{\n\t\tthis.sliderFormLoader.hide();\n\t}\n\n\n\t/**\n\t * Shows feedback form for blocks list panel\n\t */\n\tshowFeedbackForm()\n\t{\n\t\tthis.showSliderFeedbackForm({target: 'blocksList'});\n\t}\n\n\n\t/**\n\t * Initialises feedback form\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tinitFeedbackForm()\n\t{\n\t\tconst rootWindow = PageObject.getRootWindow();\n\t\t((w, d, u, b) => {\n\t\t\tw.Bitrix24FormObject = b; w[b] = w[b] || function() {\n\t\t\t\t// eslint-disable-next-line prefer-rest-params\n\t\t\t\targuments[0].ref = u;\n\t\t\t\t// eslint-disable-next-line prefer-rest-params\n\t\t\t\t(w[b].forms = w[b].forms || []).push(arguments[0]);\n\t\t\t};\n\t\t\tif (w[b].forms) return;\n\t\t\tconst s = d.createElement('script');\n\t\t\tconst r = 1 * new Date(); s.async = 1; s.src = `${u}?${r}`;\n\t\t\tconst h = d.getElementsByTagName('script')[0]; h.parentNode.insertBefore(s, h);\n\t\t})(rootWindow, rootWindow.document, 'https://product-feedback.bitrix24.com/bitrix/js/crm/form_loader.js', 'b24formFeedBack');\n\t}\n\n\n\t/**\n\t * Creates blocks list panel sidebar button\n\t * @param {string} category\n\t * @param {object} options\n\t * @returns {BX.Landing.UI.Button.SidebarButton}\n\t */\n\tcreateBlockPanelSidebarButton(category, options)\n\t{\n\t\treturn new BX.Landing.UI.Button.SidebarButton(category, {\n\t\t\ttext: options.name,\n\t\t\tchild: !options.separator,\n\t\t\tclassName: options.new ? 'landing-ui-new-section' : '',\n\t\t\tonClick: this.onBlocksListCategoryChange.bind(this, category),\n\t\t});\n\t}\n\n\t/**\n\t * Adds dynamically new block to the category.\n\t * @param {string} category Category code.\n\t * @param {{code: string, name: string, preview: string, section: Array<string>}} block Block data.\n\t */\n\taddNewBlockToCategory(category, block)\n\t{\n\t\tif (this.blocks[category])\n\t\t{\n\t\t\tconst blockCode = block['codeOriginal'] || block['code'];\n\t\t\tif (category === 'last')\n\t\t\t{\n\t\t\t\tif (!this.lastBlocks)\n\t\t\t\t{\n\t\t\t\t\tthis.lastBlocks = Object.keys(this.blocks.last.items);\n\t\t\t\t}\n\t\t\t\tthis.lastBlocks.unshift(blockCode);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.blocks[category].items[blockCode] = block;\n\t\t\t}\n\t\t\tthis.onBlocksListCategoryChange(category);\n\t\t}\n\t}\n\n\tremoveBlockFromList(blockCode: string)\n\t{\n\t\tlet removed = false;\n\t\tfor (let category in this.blocks)\n\t\t{\n\t\t\tif (this.blocks[category].items[blockCode] !== undefined)\n\t\t\t{\n\t\t\t\tdelete this.blocks[category].items[blockCode];\n\t\t\t\tremoved = true;\n\t\t\t}\n\t\t}\n\t\tif (this.lastBlocks.indexOf(blockCode) !== -1)\n\t\t{\n\t\t\tthis.lastBlocks.splice(this.lastBlocks.indexOf(blockCode), 1);\n\t\t\tremoved = true;\n\t\t}\n\n\t\t// refresh panel\n\t\tif (removed)\n\t\t{\n\t\t\tconst activeCategoryButton = this.getBlocksPanel().sidebarButtons.find((button) => {\n\t\t\t\treturn Dom.hasClass(button.layout, 'landing-ui-active');\n\t\t\t});\n\t\t\tif (activeCategoryButton)\n\t\t\t{\n\t\t\t\tthis.onBlocksListCategoryChange(activeCategoryButton.id);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns page's template code if exists.\n\t * @return {string|null}\n\t */\n\tgetTemplateCode()\n\t{\n\t\tlet { tplCode } = Env.getInstance().getOptions();\n\t\tif (tplCode.indexOf('@') > 0)\n\t\t{\n\t\t\ttplCode = tplCode.split('@')[1];\n\t\t}\n\t\tif (!tplCode || tplCode.length <= 0)\n\t\t{\n\t\t\ttplCode = null;\n\t\t}\n\t\treturn tplCode;\n\t}\n\n\n\t/**\n\t * Handles event on blocks list category change\n\t * @param {string} category - Category id\n\t */\n\tonBlocksListCategoryChange(category)\n\t{\n\t\tconst templateCode = this.getTemplateCode();\n\t\tthis.getBlocksPanel().content.hidden = false;\n\n\t\tthis.getBlocksPanel().sidebarButtons.forEach((button) => {\n\t\t\tconst action = button.id === category ? 'add' : 'remove';\n\t\t\tbutton.layout.classList[action]('landing-ui-active');\n\t\t});\n\n\t\tthis.getBlocksPanel().content.innerHTML = '';\n\n\t\tif (category === 'last')\n\t\t{\n\t\t\tif (!this.lastBlocks)\n\t\t\t{\n\t\t\t\tthis.lastBlocks = Object.keys(this.blocks.last.items);\n\t\t\t}\n\n\t\t\tthis.lastBlocks = [...new Set(this.lastBlocks)];\n\n\t\t\tthis.lastBlocks.forEach((blockKey) => {\n\t\t\t\tconst block = this.getBlockFromRepository(blockKey);\n\t\t\t\tthis.getBlocksPanel().appendCard(this.createBlockCard(blockKey, block));\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tObject.keys(this.blocks[category].items).forEach((blockKey) => {\n\t\t\tconst block = this.blocks[category].items[blockKey];\n\t\t\tconst blockTplCode = (block['tpl_code'] && block['tpl_code'].length > 0) ? block['tpl_code'] : null;\n\t\t\tif (\n\t\t\t\t!templateCode || !blockTplCode ||\n\t\t\t\t(blockTplCode && blockTplCode === templateCode)\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.getBlocksPanel().appendCard(this.createBlockCard(blockKey, block));\n\t\t\t}\n\t\t});\n\n\t\tif (this.getBlocksPanel().content.scrollTop)\n\t\t{\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.getBlocksPanel().content.scrollTop = 0;\n\t\t\t});\n\t\t}\n\t}\n\n\t// eslint-disable-next-line consistent-return\n\tgetBlockFromRepository(code)\n\t{\n\t\tconst {blocks} = this.options;\n\t\tconst categories = Object.keys(blocks);\n\t\tconst category = categories.find((categoryId) => {\n\t\t\treturn code in blocks[categoryId].items;\n\t\t});\n\n\t\tif (category)\n\t\t{\n\t\t\treturn blocks[category].items[code];\n\t\t}\n\t}\n\n\t/**\n\t * Handles copy block event\n\t * @param {BX.Landing.Block} block\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tonCopyBlock(block)\n\t{\n\t\twindow.localStorage.landingBlockId = block.id;\n\t\twindow.localStorage.landingBlockName = block.manifest.block.name;\n\t\twindow.localStorage.landingBlockAction = 'copy';\n\n\t\ttry\n\t\t{\n\t\t\twindow.localStorage.requiredUserAction = JSON.stringify(\n\t\t\t\tblock.requiredUserActionOptions,\n\t\t\t);\n\t\t}\n\t\tcatch (err)\n\t\t{\n\t\t\twindow.localStorage.requiredUserAction = '';\n\t\t}\n\t}\n\n\n\t/**\n\t * Handles cut block event\n\t * @param {BX.Landing.Block} block\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tonCutBlock(block)\n\t{\n\t\twindow.localStorage.landingBlockId = block.id;\n\t\twindow.localStorage.landingBlockName = block.manifest.block.name;\n\t\twindow.localStorage.landingBlockAction = 'cut';\n\n\t\ttry\n\t\t{\n\t\t\twindow.localStorage.requiredUserAction = JSON.stringify(\n\t\t\t\tblock.requiredUserActionOptions,\n\t\t\t);\n\t\t}\n\t\tcatch (err)\n\t\t{\n\t\t\twindow.localStorage.requiredUserAction = '';\n\t\t}\n\n\t\tBX.Landing.PageObject.getBlocks().remove(block);\n\t\tDom.remove(block.node);\n\t\tBX.onCustomEvent('Landing.Block:onAfterDelete', [block]);\n\t}\n\n\n\t/**\n\t * Handles paste block event\n\t * @param {BX.Landing.Block} block\n\t * @param {() => {}} callback\n\t */\n\tonPasteBlock(block, callback)\n\t{\n\t\tif (window.localStorage.landingBlockId)\n\t\t{\n\t\t\tlet action = 'Landing::copyBlock';\n\n\t\t\tif (window.localStorage.landingBlockAction === 'cut')\n\t\t\t{\n\t\t\t\taction = 'Landing::moveBlock';\n\t\t\t}\n\n\t\t\tconst requestBody = {};\n\n\t\t\trequestBody[action] = {\n\t\t\t\taction,\n\t\t\t\tdata: {\n\t\t\t\t\tlid: block.lid || BX.Landing.Main.getInstance().id,\n\t\t\t\t\tblock: window.localStorage.landingBlockId,\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tAFTER_ID: block.id,\n\t\t\t\t\t\tRETURN_CONTENT: 'Y',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tBX.Landing.Backend.getInstance()\n\t\t\t\t.batch(action, requestBody, {action})\n\t\t\t\t.then((res) => {\n\t\t\t\t\tthis.currentBlock = block;\n\t\t\t\t\treturn this.addBlock(res[action].result.content, false, false, callback);\n\t\t\t\t});\n\t\t}\n\t}\n\n\n\t/**\n\t * Adds block from server response\n\t * @param {addBlockResponse} res\n\t * @param {boolean} [withoutAnimation = false]\n\t * @param {boolean} [insertBefore = false]\n\t * @param {() => {}} callback\n\t * @return {Promise<T>}\n\t */\n\taddBlock(res, withoutAnimation, insertBefore = false, callback)\n\t{\n\t\tif (this.lastBlocks)\n\t\t{\n\t\t\tthis.lastBlocks.unshift(res.manifest.codeOriginal || res.manifest.code);\n\t\t}\n\n\t\tconst self = this;\n\t\tconst block = this.appendBlock(res, withoutAnimation);\n\n\t\treturn this.loadBlockDeps(res)\n\t\t\t.then((blockRes) => {\n\t\t\t\tself.currentBlock = null;\n\t\t\t\tself.currentArea = null;\n\n\t\t\t\tconst blockId = parseInt(res.id);\n\t\t\t\tconst allOldBlocks = BX.Landing.PageObject.getBlocks();\n\t\t\t\tif (allOldBlocks)\n\t\t\t\t{\n\t\t\t\t\tallOldBlocks.forEach((oldBlock) => {\n\t\t\t\t\t\tif (oldBlock.id === blockId)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDom.remove(oldBlock.node);\n\t\t\t\t\t\t\tBX.Landing.PageObject.getBlocks().remove(oldBlock);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Init block entity\n\t\t\t\tvoid new BX.Landing.Block(block, {\n\t\t\t\t\tid: blockId,\n\t\t\t\t\tsections: res.sections,\n\t\t\t\t\trequiredUserAction: res.requiredUserAction,\n\t\t\t\t\tmanifest: res.manifest,\n\t\t\t\t\taccess: res.access,\n\t\t\t\t\tactive: Text.toBoolean(res.active),\n\t\t\t\t\tphp: res.php,\n\t\t\t\t\tdesigned: res.designed,\n\t\t\t\t\tanchor: res.anchor,\n\t\t\t\t\tdynamicParams: res.dynamicParams,\n\t\t\t\t\trepoId: res.repoId,\n\t\t\t\t});\n\n\t\t\t\treturn self.runBlockScripts(res)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tif (callback)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcallback(blockId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn block;\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tconsole.warn(err);\n\t\t\t});\n\t}\n\n\n\t/**\n\t * Handles edd block event\n\t * @param {string} blockCode\n\t * @param {*} [restoreId]\n\t * @param {?boolean} [preventHistory = false]\n\t * @return {Promise<BX.Landing.Block>}\n\t */\n\tonAddBlock(blockCode, restoreId, preventHistory: ?boolean  = false)\n\t{\n\t\tconst id = Text.toNumber(restoreId);\n\t\tthis.hideBlocksPanel();\n\n\t\treturn this.showBlockLoader()\n\t\t\t.then(this.loadBlock(blockCode, id, preventHistory))\n\t\t\t.then((res) => {\n\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}, 500);\n\t\t\t\t});\n\t\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tres.manifest.codeOriginal = blockCode;\n\t\t\t\tconst p = this.addBlock(res, false, this.insertBefore);\n\t\t\t\tthis.insertBefore = false;\n\t\t\t\tthis.adjustEmptyAreas();\n\t\t\t\tvoid this.hideBlockLoader();\n\t\t\t\tthis.enableAddBlockButtons();\n\t\t\t\tBX.onCustomEvent('BX.Landing.Block:onAfterAdd', res);\n\t\t\t\tthis.sendAnalyticsData('onAddBlock', res);\n\t\t\t\treturn p;\n\t\t\t});\n\t}\n\n\n\t/**\n\t * Inserts element to blocks flow.\n\t * Element can be inserted after current block or after last block\n\t * @param {HTMLElement} element\n\t */\n\tinsertToBlocksFlow(element)\n\t{\n\t\tconst isCurrentBlockAvailable = (\n\t\t\tthis.currentBlock\n\t\t\t&& this.currentBlock.node\n\t\t\t&& this.currentBlock.node.parentNode\n\t\t);\n\n\t\tif (isCurrentBlockAvailable && !this.insertBefore)\n\t\t{\n\t\t\tDom.insertAfter(element, this.currentBlock.node);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isCurrentBlockAvailable && this.insertBefore)\n\t\t{\n\t\t\tDom.insertBefore(element, this.currentBlock.node);\n\t\t}\n\n\t\tDom.prepend(element, this.currentArea);\n\t}\n\n\n\t/**\n\t * Gets block loader\n\t * @return {HTMLElement}\n\t */\n\tgetBlockLoader()\n\t{\n\t\tif (!this.blockLoader)\n\t\t{\n\t\t\tthis.blockLoader = new BX.Loader({size: 60});\n\t\t\tthis.blockLoaderContainer = Dom.create('div', {\n\t\t\t\tprops: {className: 'landing-block-loader-container'},\n\t\t\t\tchildren: [this.blockLoader.layout],\n\t\t\t});\n\t\t}\n\n\t\treturn this.blockLoaderContainer;\n\t}\n\n\n\t/**\n\t * Shows block loader\n\t * @return {Function}\n\t */\n\tshowBlockLoader()\n\t{\n\t\tthis.insertToBlocksFlow(this.getBlockLoader());\n\t\tthis.blockLoader.show();\n\t\treturn Promise.resolve();\n\t}\n\n\n\t/**\n\t * Hides block loader\n\t * @return {Function}\n\t */\n\thideBlockLoader()\n\t{\n\t\tDom.remove(this.getBlockLoader());\n\t\tthis.blockLoader = null;\n\t\treturn Promise.resolve();\n\t}\n\n\n\t/**\n\t * Loads block dependencies\n\t * @param {addBlockResponse} data\n\t * @returns {Promise<addBlockResponse>}\n\t */\n\tloadBlockDeps(data)\n\t{\n\t\tconst ext = BX.processHTML(data.content_ext);\n\n\t\tif (BX.type.isArray(ext.SCRIPT))\n\t\t{\n\t\t\text.SCRIPT = ext.SCRIPT.filter((item) => {\n\t\t\t\treturn !item.isInternal;\n\t\t\t});\n\t\t}\n\n\t\tif (BX.type.isObject(data.lang))\n\t\t{\n\t\t\tLoc.setMessage(data.lang);\n\t\t}\n\n\t\tlet loadedScripts = 0;\n\t\tconst scriptsCount = (data.js.length + ext.SCRIPT.length + ext.STYLE.length + data.css.length);\n\t\tlet resPromise = null;\n\n\t\tif (!this.loadedDeps[data.manifest.code] && scriptsCount > 0)\n\t\t{\n\t\t\tresPromise = new Promise(((resolve) => {\n\t\t\t\tfunction onLoad()\n\t\t\t\t{\n\t\t\t\t\tloadedScripts += 1;\n\n\t\t\t\t\tif (loadedScripts === scriptsCount)\n\t\t\t\t\t{\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (scriptsCount > loadedScripts)\n\t\t\t\t{\n\t\t\t\t\t// Load extensions files\n\t\t\t\t\text.SCRIPT.forEach((item) => {\n\t\t\t\t\t\tif (!item.isInternal)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.loadScript(item.JS, onLoad);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\text.STYLE.forEach((item) => {\n\t\t\t\t\t\tBX.loadScript(item, onLoad);\n\t\t\t\t\t});\n\n\t\t\t\t\t// Load block files\n\t\t\t\t\tdata.css.forEach((item) => {\n\t\t\t\t\t\tBX.loadScript(item, onLoad);\n\t\t\t\t\t});\n\n\t\t\t\t\tdata.js.forEach((item) => {\n\t\t\t\t\t\tBX.loadScript(item, onLoad);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tonLoad();\n\t\t\t\t}\n\n\t\t\t\tthis.loadedDeps[data.manifest.code] = true;\n\t\t\t}));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tresPromise = Promise.resolve(data);\n\t\t}\n\n\t\treturn resPromise.then(data => {\n\t\t\tif (BX.type.isArray(data.assetStrings))\n\t\t\t{\n\t\t\t\tconst head = document.head;\n\t\t\t\tdata.assetStrings.forEach(string => {\n\t\t\t\t\tconst element = Tag.render`${string}`;\n\t\t\t\t\tDom.insertAfter(element, head.lastChild);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn data;\n\t\t});\n\t}\n\n\t/**\n\t * Executes block scripts\n\t * @param data\n\t * @return {Promise}\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\trunBlockScripts(data)\n\t{\n\t\treturn new Promise(((resolve) => {\n\t\t\tconst scripts = BX.processHTML(data.content).SCRIPT;\n\n\t\t\tif (scripts.length)\n\t\t\t{\n\t\t\t\tBX.ajax.processScripts(scripts, undefined, () => {\n\t\t\t\t\tresolve(data);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresolve(data);\n\t\t\t}\n\t\t}));\n\t}\n\n\n\t/**\n\t * Load new block from server\n\t * @param {string} blockCode\n\t * @param {int} [restoreId]\n\t * @param {boolean} [preventHistory = false]\n\t * @returns {Function}\n\t */\n\tloadBlock(blockCode, restoreId, preventHistory)\n\t{\n\t\treturn () => {\n\t\t\tlet lid = this.id;\n\t\t\tlet siteId = this.options.site_id;\n\n\t\t\tif (this.currentBlock)\n\t\t\t{\n\t\t\t\tlid = this.currentBlock.lid;\n\t\t\t\tsiteId = this.currentBlock.siteId;\n\t\t\t}\n\n\t\t\tif (this.currentArea)\n\t\t\t{\n\t\t\t\tlid = Dom.attr(this.currentArea, 'data-landing');\n\t\t\t\tsiteId = Dom.attr(this.currentArea, 'data-site');\n\t\t\t}\n\n\t\t\tlet requestBody = {\n\t\t\t\tlid,\n\t\t\t\tsiteId,\n\t\t\t\tpreventHistory: preventHistory ? 1 : 0,\n\t\t\t};\n\n\t\t\tconst fields = {\n\t\t\t\tACTIVE: 'Y',\n\t\t\t\tCODE: blockCode,\n\t\t\t\tAFTER_ID: this.currentBlock ? this.currentBlock.id : 0,\n\t\t\t\tRETURN_CONTENT: 'Y',\n\t\t\t};\n\n\t\t\tif (!Type.isBoolean(preventHistory) || preventHistory === false)\n\t\t\t{\n\t\t\t\t// Change history steps\n\t\t\t\tBX.Landing.History.getInstance().push();\n\t\t\t}\n\n\t\t\tif (!restoreId)\n\t\t\t{\n\t\t\t\trequestBody.fields = fields;\n\t\t\t\treturn Backend\n\t\t\t\t\t.getInstance()\n\t\t\t\t\t.action('Landing::addBlock', requestBody, {code: blockCode})\n\t\t\t\t\t.then(result => {\n\t\t\t\t\t\tif (this.insertBefore)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn Backend\n\t\t\t\t\t\t\t\t.getInstance()\n\t\t\t\t\t\t\t\t.action('Landing::upBlock', {\n\t\t\t\t\t\t\t\t\tlid,\n\t\t\t\t\t\t\t\t\tsiteId,\n\t\t\t\t\t\t\t\t\tblock: result.id,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn BX.Landing.Backend.getInstance()\n\t\t\t\t.action('Block::getContent', {\n\t\t\t\t\tblock: restoreId,\n\t\t\t\t\tlid,\n\t\t\t\t\tfields,\n\t\t\t\t\teditMode: 1,\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\tres.id = restoreId;\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t};\n\t}\n\n\n\t/**\n\t * Creates block preview card\n\t * @param {string} blockKey - Block key (folder name)\n\t * @param {{name: string, [preview]: ?string, [new]: ?boolean}} block - Object with block data\n\t * @param {string} [mode]\n\t * @returns {BX.Landing.UI.Card.BlockPreviewCard}\n\t */\n\tcreateBlockCard(blockKey, block, mode)\n\t{\n\t\treturn new BX.Landing.UI.Card.BlockPreviewCard({\n\t\t\ttitle: block.name,\n\t\t\timage: block.preview,\n\t\t\tcode: blockKey,\n\t\t\tapp_expired: block.app_expired,\n\t\t\tfavorite: !!block.favorite,\n\t\t\tfavoriteMy: !!block.favoriteMy,\n\t\t\trepo_id: block.repo_id,\n\t\t\tmode,\n\t\t\tisNew: block.new === true,\n\t\t\tonClick: this.onAddBlock.bind(this, blockKey),\n\t\t});\n\t}\n\n\n\t/**\n\t * Handles block delete event\n\t */\n\tonBlockDelete(block)\n\t{\n\t\tif (!block.parent.querySelector('.block-wrapper'))\n\t\t{\n\t\t\tthis.adjustEmptyAreas();\n\t\t}\n\t\tthis.sendAnalyticsData('onDeleteBlock', block);\n\t}\n\n\n\t/**\n\t * Shows page overlay\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tshowOverlay()\n\t{\n\t\tconst main = document.querySelector('main.landing-edit-mode');\n\t\tif (main)\n\t\t{\n\t\t\tDom.addClass(main, 'landing-ui-overlay');\n\t\t}\n\t}\n\n\n\t/**\n\t * Hides page overlay\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\thideOverlay()\n\t{\n\t\tconst main = document.querySelector('main.landing-edit-mode');\n\t\tif (main)\n\t\t{\n\t\t\tDom.removeClass(main, 'landing-ui-overlay');\n\t\t}\n\t}\n\n\treloadSlider(url: string): Promise<any>\n\t{\n\t\treturn SliderHacks.reloadSlider(url, window.parent);\n\t}\n\n\tsendAnalyticsData(action, data)\n\t{\n\t\tconst code = data.manifest.code;\n\t\tconst block = this.getBlockFromRepository(code);\n\t\tlet analyticsCategory = '';\n\t\tlet p2 = '';\n\t\tlet analyticsEvent = '';\n\t\tconst type = BX.Landing.Env.getInstance().getType();\n\t\tif (type === 'MAINPAGE')\n\t\t{\n\t\t\tanalyticsCategory = 'vibe';\n\t\t\tif (action === 'onAddBlock')\n\t\t\t{\n\t\t\t\tanalyticsEvent = 'add_widget';\n\t\t\t}\n\n\t\t\tif (action === 'onDeleteBlock')\n\t\t\t{\n\t\t\t\tanalyticsEvent = 'delete_widget';\n\t\t\t}\n\t\t\tconst widgetCode = code.replaceAll(/[._]/g, '-');\n\t\t\tp2 = `widget-id_${widgetCode}`;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tanalyticsCategory = 'site'; // site ||  shop || kb\n\t\t\tif (action === 'onAddBlock')\n\t\t\t{\n\t\t\t\tanalyticsEvent = 'add_block';\n\t\t\t}\n\n\t\t\tif (action === 'onDeleteBlock')\n\t\t\t{\n\t\t\t\tanalyticsEvent = 'delete_block';\n\t\t\t}\n\t\t\tconst blockCode = code.replaceAll(/[._]/g, '-');\n\t\t\tp2 = `widget-id_${blockCode}`;\n\t\t}\n\t\tlet itemType = '';\n\t\tlet p1 = '';\n\t\tif (block.repo_id)\n\t\t{\n\t\t\titemType = 'partner'; // partner || local\n\t\t\tif (block.app_code)\n\t\t\t{\n\t\t\t\tp1 = block.app_code.replaceAll(/[._]/g, '-'); // appCode || local\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\titemType = 'system';\n\t\t\tp1 = 'system';\n\t\t}\n\n\t\tBX.UI.Analytics.sendData({\n\t\t\ttool: 'landing',\n\t\t\tcategory: analyticsCategory,\n\t\t\tevent: analyticsEvent,\n\t\t\ttype: itemType,\n\t\t\tp1,\n\t\t\tp2,\n\t\t});\n\t}\n}"],"names":["hasBlock","element","querySelector","hasCreateButton","onAnimationEnd","animationName","Promise","resolve","onAnimationEndListener","event","Event","bind","isEmpty","value","Type","isNil","isArrayLike","length","isObject","Object","keys","ExternalControls","mode","register","changeState","editorEnable","showControls","showBlockControls","hideAll","backendAction","Main","isExternalControlsEnabled","action","data","postExternalCommand","Dom","hasClass","document","body","resetMobileTop","querySelectorAll","map","block","blockRect","getBoundingClientRect","height","push","blockId","parseInt","getAttribute","top","onMobileMouseMove","isControlsExternal","recalculateTops","i","c","payload","window","parent","postMessage","location","origin","BX","Landing","PageObject","getBlocks","get","successCallback","setTimeout","onDesignerBlockClick","onShowContentPanel","onStyleShow","moveDown","moveUp","deleteBlock","onStateChange","getInstance","onCutBlock","onCopyBlock","onPasteBlock","showFeedbackForm","saveBlock","UI","Panel","EditorPanel","hide","addEventListener","listenExternalCommands","y","recalculateTopsIfExternals","addCustomEvent","type","topInPercent","blockData","getData","id","state","onBackendAction","isEnabled","permissions","allowDesignBlock","isDesignBlockAllowed","allowModifyStyles","isStyleModifyAllowed","allowEditContent","isEditBlockAllowed","allowSorting","allowRemove","isRemoveBlockAllowed","allowChangeState","isChangeStateBlockAllowed","allowPaste","isPasteBlockAllowed","allowSaveInLibrary","isSaveBlockInLibraryAllowed","blocksCollection","blocks","getMode","rootWindow","getRootWindow","instance","clear","Reflection","namespace","scrollHeight","Math","max","documentElement","offsetHeight","clientHeight","scrollTop","setEventNamespace","options","Env","getOptions","freeze","currentBlock","isDesignBlockModeFlag","loadedDeps","cache","Cache","MemoryCache","externalControls","onSliderFormLoaded","onBlockDelete","adjustEmptyAreas","StatusPanel","setLastModified","lastModified","show","pageType","getType","TYPE_KNOWLEDGE","TYPE_GROUP","mainArea","isDomNode","addClass","removeCustomEvent","getSpecialType","panel","SaveBlock","layout","hidden","content","append","remember","blocksPanel","createBlocksPanel","sidebarButtons","default_section","click","getBlocksPanel","area","button","Button","Plus","text","Loc","getMessage","on","showBlocksPanel","onCreateButtonMouseover","onCreateButtonMouseout","areas","getLayoutAreas","createText","setText","clearTimeout","fadeTimeout","filter","currentArea","forEach","removeClass","innerHTML","createInsertBlockButton","remove","destroyEmptyArea","initEmptyArea","main","isAllEmpty","some","onCustomEvent","code","setAttribute","withoutAnimation","isAllowedAppendBlock","Tag","render","then","insertToBlocksFlow","toLowerCase","allowedBlockTypes","manifest","includes","isString","insertBefore","isCrmFormPage","overlay","disableAddBlockButtons","getSaveBlockPanel","panels","buttons","disable","enable","categories","Content","title","className","scrollAnimation","subscribe","enableAddBlockButtons","categoryId","hasItems","items","isPopular","isSeparator","separator","appendSidebarButton","createBlockPanelSidebarButton","SidebarButton","onClick","Runtime","loadExtension","bitrix24","server_name","siteId","site_id","siteUrl","url","siteTemplate","xml_id","productType","typeproduct","params","Feedback","Form","open","random","forms","getFeedbackFormOptions","presets","zones","lang","sec","sliderFormLoader","showSliderFeedbackForm","target","w","d","u","b","Bitrix24FormObject","arguments","ref","s","createElement","r","Date","async","src","h","getElementsByTagName","parentNode","category","name","child","onBlocksListCategoryChange","blockCode","lastBlocks","last","unshift","removed","undefined","indexOf","splice","activeCategoryButton","find","tplCode","split","templateCode","getTemplateCode","classList","Set","blockKey","getBlockFromRepository","appendCard","createBlockCard","blockTplCode","requestAnimationFrame","localStorage","landingBlockId","landingBlockName","landingBlockAction","requiredUserAction","JSON","stringify","requiredUserActionOptions","err","node","callback","requestBody","lid","AFTER_ID","RETURN_CONTENT","Backend","batch","res","addBlock","result","codeOriginal","self","appendBlock","loadBlockDeps","blockRes","allOldBlocks","oldBlock","Block","sections","access","active","Text","toBoolean","php","designed","anchor","dynamicParams","repoId","runBlockScripts","console","warn","restoreId","preventHistory","toNumber","hideBlocksPanel","showBlockLoader","loadBlock","p","hideBlockLoader","sendAnalyticsData","isCurrentBlockAvailable","insertAfter","prepend","blockLoader","Loader","size","blockLoaderContainer","create","props","children","getBlockLoader","ext","processHTML","content_ext","isArray","SCRIPT","item","isInternal","setMessage","loadedScripts","scriptsCount","js","STYLE","css","resPromise","onLoad","loadScript","JS","assetStrings","head","string","lastChild","scripts","ajax","processScripts","attr","fields","ACTIVE","CODE","isBoolean","History","editMode","Card","BlockPreviewCard","image","preview","app_expired","favorite","favoriteMy","repo_id","isNew","onAddBlock","SliderHacks","reloadSlider","analyticsCategory","p2","analyticsEvent","widgetCode","replaceAll","itemType","p1","app_code","Analytics","sendData","tool","EventEmitter"],"mappings":"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"}