| Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/landing/history/dist/ |
| Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/landing/history/dist/history.bundle.js.map |
{"version":3,"file":"history.bundle.js","sources":["../src/internal/constants.js","../src/action/edit-node.js","../src/action/edit-text.js","../src/action/edit-embed.js","../src/action/edit-map.js","../src/action/edit-image.js","../src/action/edit-icon.js","../src/action/edit-link.js","../src/action/sort-block.js","../src/action/add-block.js","../src/action/remove-block.js","../src/action/add-card.js","../src/action/remove-card.js","../src/action/add-node.js","../src/action/remove-node.js","../src/action/edit-style.js","../src/action/update-content.js","../src/action/multiply.js","../src/history-command.js","../src/internal/register-base-commands.js","../src/internal/async-json-parse.js","../src/internal/async-json-stringify.js","../src/internal/remove-page-history.js","../src/internal/load-stack.js","../src/internal/fetch-entities.js","../src/internal/remove-entities.js","../src/internal/clear.js","../src/internal/on-update.js","../src/internal/on-init.js","../src/history-entry.js","../src/history-highlight.js","../src/history.js"],"sourcesContent":["export const UNDO: string = 'undo';\nexport const REDO: string = 'redo';\nexport const INIT: string = 'init';\nexport const RESOLVED: string = 'resolved';\nexport const PENDING: string = 'pending';\nexport const MAX_ENTRIES_COUNT: number = 100;","const {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {object} entry\n * @return {Promise}\n */\nconst editNode = function (entry)\n{\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.block);\n\n\t\t\tif (!block)\n\t\t\t{\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\n\t\t\tblock.forceInit();\n\t\t\tconst node = block.nodes.getBySelector(entry.selector);\n\n\t\t\tif (!node)\n\t\t\t{\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\n\t\t\treturn scrollTo(node.node)\n\t\t\t\t.then(highlight.bind(null, node.node, editNode.useRangeRect))\n\t\t\t\t.then(() => {\n\t\t\t\t\treturn node.setValue(entry.params.value, false, true);\n\t\t\t\t});\n\t\t});\n}\neditNode.useRangeRect = true;\n\nexport default editNode;","import editNode from './edit-node';\n\nconst editText = editNode;\n\nexport default editText;","import editNode from './edit-node';\n\nconst editEmbed = editNode;\n\nexport default editEmbed;","import editNode from './edit-node';\n\nconst editMap = editNode;\n\nexport default editMap;","import editNode from './edit-node';\n\nconst editImage = editNode;\neditImage.useRangeRect = false;\n\nexport default editImage;","import editImage from './edit-image';\n\nconst editIcon = editImage;\n\nexport default editIcon;","import editNode from './edit-node';\n\nconst editLink = editNode;\neditLink.useRangeRect = false;\n\nexport default editLink;","const {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {object} entry\n * @return {Promise}\n */\nexport default function sortBlock(entry)\n{\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.block);\n\t\t\tblock.forceInit();\n\n\t\t\treturn scrollTo(block.node)\n\t\t\t\t.then(highlight.bind(null, block.node))\n\t\t\t\t.then(() => {\n\t\t\t\t\treturn block[entry.params.direction](true);\n\t\t\t\t});\n\t\t});\n}","import {PageObject} from 'landing.pageobject';\n\nconst {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {object} entry\n * @return {Promise}\n */\nexport default function addBlock(entry)\n{\n\treturn PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.params.currentBlock);\n\n\t\t\treturn new Promise(((resolve) => {\n\t\t\t\tif (block)\n\t\t\t\t{\n\t\t\t\t\tblock.forceInit();\n\t\t\t\t\treturn scrollTo(block.node)\n\t\t\t\t\t\t.then(highlight.bind(null, block.node, false, true))\n\t\t\t\t\t\t.then(resolve);\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t}))\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst landing = BX.Landing.Main.getInstance();\n\t\t\t\t\tlanding.currentBlock = block;\n\n\t\t\t\t\treturn PageObject.getInstance().view().then((iframe) => {\n\t\t\t\t\t\tlanding.currentArea = iframe.contentDocument.body.querySelector(`[data-landing=\"${entry.params.lid}\"]`);\n\t\t\t\t\t\tlanding.insertBefore = entry.params.insertBefore;\n\n\t\t\t\t\t\treturn landing.onAddBlock(entry.params.code, entry.block, true);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t});\n}","const {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {object} entry\n * @return {Promise}\n */\nexport default function removeBlock(entry)\n{\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.block);\n\t\t\tblock.forceInit();\n\n\t\t\treturn scrollTo(block.node)\n\t\t\t\t.then(() => {\n\t\t\t\t\thighlight(block.node);\n\t\t\t\t\treturn block.deleteBlock(true);\n\t\t\t\t});\n\t\t});\n}","const {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {string} state\n * @param {object} entry\n * @return {Promise}\n */\nexport default function addCard(entry)\n{\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.block);\n\t\t\tif (block)\n\t\t\t{\n\t\t\t\tblock.forceInit();\n\t\t\t}\n\n\t\t\tif (!block)\n\t\t\t{\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\n\t\t\treturn block;\n\t\t})\n\t\t.then((block) => {\n\t\t\treturn BX.Landing.PageObject.getInstance().view()\n\t\t\t\t.then((iframe) => {\n\t\t\t\t\tconst parentNode = iframe.contentDocument.querySelector(entry.params.selector).parentNode;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tblock,\n\t\t\t\t\t\tparentNode,\n\t\t\t\t\t];\n\t\t\t\t});\n\t\t})\n\t\t.then((elements) => {\n\t\t\treturn scrollTo(elements[1])\n\t\t\t\t.then(() => {\n\t\t\t\t\treturn elements;\n\t\t\t\t});\n\t\t})\n\t\t.then((elements) => {\n\t\t\tlet block = elements[0];\n\t\t\treturn block\n\t\t\t\t.addCard({\n\t\t\t\t\tindex: entry.params.position,\n\t\t\t\t\tcontainer: elements[1],\n\t\t\t\t\tcontent: entry.params.content,\n\t\t\t\t\tselector: entry.params.selector,\n\t\t\t\t}, true)\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst card = block.cards.getBySelector(entry.params.selector);\n\t\t\t\t\tif (!card)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn Promise.reject();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn highlight(card.node);\n\t\t\t\t})\n\t\t})\n\t\t.catch(() => {});\n}","const {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {string} state\n * @param {object} entry\n * @return {Promise}\n */\nexport default function removeCard(entry)\n{\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.block);\n\t\t\tblock.forceInit();\n\n\t\t\tif (!block)\n\t\t\t{\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\n\t\t\tconst relativeSelector = entry.params.selector + '@' + (entry.params.position + 1);\n\t\t\t// todo: return +1 position from back. To be more precise - not always may be +1, need evaluate this\n\t\t\tconst card = block.cards.getBySelector(relativeSelector);\n\n\t\t\tif (!card)\n\t\t\t{\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\n\t\t\treturn scrollTo(card.node)\n\t\t\t\t.then(highlight.bind(null, card.node))\n\t\t\t\t.then(() => {\n\t\t\t\t\treturn block.removeCard(relativeSelector, true);\n\t\t\t\t});\n\t\t});\n}","/**\n * History entry action for add node.\n * @param {object} entry History entry.\n * @return {Promise}\n */\nexport default function addNode(entry)\n{\n\t// entry.block === null >> designer mode\n\n\treturn new Promise((resolve, reject) => {\n\t\t// const tags = (entry.redo || {}).tags || ((entry.undo || {}).tags || []);\n\t\tconst tags = entry.params.tags || {};\n\t\ttop.BX.onCustomEvent(this, 'Landing:onHistoryAddNode', [tags]);\n\t\tresolve();\n\t});\n}","/**\n * History entry action for remove node.\n * @param {object} entry History entry.\n * @return {Promise}\n */\nexport default function removeNode(entry)\n{\n\t// entry.block === null >> designer mode\n\n\treturn new Promise((resolve, reject) => {\n\t\t// const tags = (entry.redo || {}).tags || ((entry.undo || {}).tags || []);\n\t\tconst tags = entry.params.tags || {};\n\t\ttop.BX.onCustomEvent(this, 'Landing:onHistoryRemoveNode', [tags]);\n\t\tresolve();\n\t});\n}","const {scrollTo, slice} = BX.Landing.Utils;\n\n/**\n * @param {object} entry\n * @return {Promise}\n */\nexport default function editStyle(entry)\n{\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.block);\n\n\t\t\tif (!block)\n\t\t\t{\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\n\t\t\tblock.forceInit();\n\t\t\tblock.initStyles();\n\t\t\treturn block;\n\t\t})\n\t\t.then((block) => {\n\t\t\treturn scrollTo(block.node)\n\t\t\t\t.then(() => {\n\t\t\t\t\treturn block;\n\t\t\t\t});\n\t\t})\n\t\t.then((block) => {\n\t\t\tlet elements = slice(block.node.querySelectorAll(entry.selector));\n\n\t\t\tif (block.selector === entry.selector)\n\t\t\t{\n\t\t\t\telements = [block.content];\n\t\t\t}\n\n\t\t\telements.forEach((element) => {\n\t\t\t\telement.className = entry.params.value.className;\n\t\t\t\tif (entry.params.value.style && entry.params.value.style !== '')\n\t\t\t\t{\n\t\t\t\t\telement.style = entry.params.value.style;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\telement.removeAttribute('style');\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn block;\n\t\t})\n\t\t.then((block) => {\n\t\t\tconst form = block.forms.find((currentForm) => {\n\t\t\t\treturn (\n\t\t\t\t\tcurrentForm.selector === entry.selector\n\t\t\t\t\t|| currentForm.relativeSelector === entry.selector\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tif (form)\n\t\t\t{\n\t\t\t\tform.fields.forEach((field) => {\n\t\t\t\t\tfield.reset();\n\t\t\t\t\tfield.onFrameLoad();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// todo: relative selector? position?\n\t\t\tconst styleNode = block.styles.find((style) => {\n\t\t\t\treturn (\n\t\t\t\t\tstyle.selector === entry.selector\n\t\t\t\t\t|| style.relativeSelector === entry.selector\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tif (styleNode)\n\t\t\t{\n\t\t\t\tblock.onStyleInputWithDebounce({node: styleNode.node, data: styleNode.getValue()}, true);\n\t\t\t}\n\t\t});\n}","const {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {object} entry\n * @return {Promise}\n */\nexport default function updateContent(entry)\n{\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(entry.block);\n\t\t\tblock.forceInit();\n\n\t\t\treturn scrollTo(block.node)\n\t\t\t\t.then(() => {\n\t\t\t\t\tvoid highlight(block.node);\n\t\t\t\t\treturn block.updateContent(entry.params.content, true);\n\t\t\t\t});\n\t\t});\n}","const {scrollTo, highlight} = BX.Landing.Utils;\n\n/**\n * @param {object} entry\n * @return {Promise}\n */\nexport default function multiply(entry)\n{\n\tlet blockId = null;\n\tconst updateBlockStateData = {};\n\tentry.params.forEach(singleAction => {\n\t\tif (!blockId && singleAction.params.block)\n\t\t{\n\t\t\tblockId = singleAction.params.block;\n\t\t}\n\n\t\t// todo: all types nodes\n\t\tif (\n\t\t\tsingleAction.command === 'editText'\n\t\t\t|| singleAction.command === 'editImage'\n\t\t\t|| singleAction.command === 'editEmbed'\n\t\t\t|| singleAction.command === 'editMap'\n\t\t\t|| singleAction.command === 'editIcon'\n\t\t\t|| singleAction.command === 'editLink'\n\t\t)\n\t\t{\n\t\t\tupdateBlockStateData[singleAction.params.selector] = singleAction.params.value;\n\t\t}\n\n\t\tif (singleAction.command === 'updateDynamic')\n\t\t{\n\t\t\tupdateBlockStateData.dynamicParams = singleAction.params.dynamicParams;\n\t\t\tupdateBlockStateData.dynamicState = singleAction.params.dynamicState;\n\t\t}\n\n\t\tif (singleAction.command === 'changeAnchor')\n\t\t{\n\t\t\tupdateBlockStateData.settings = {id: singleAction.params.value};\n\t\t}\n\t});\n\n\treturn BX.Landing.PageObject.getInstance().blocks()\n\t\t.then((blocks) => {\n\t\t\tconst block = blocks.get(blockId);\n\t\t\tif (block)\n\t\t\t{\n\t\t\t\tblock.forceInit();\n\n\t\t\t\treturn scrollTo(block.node)\n\t\t\t\t\t.then(() =>\n\t\t\t\t\t{\n\t\t\t\t\t\tvoid highlight(block.node);\n\t\t\t\t\t\tif (Object.keys(updateBlockStateData).length > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock.updateBlockState(updateBlockStateData, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t});\n}","import {Type} from 'main.core';\n\n/**\n * Implements interface for works with command of history\n * @param {{id: string, undo: function, redo: function}} options\n */\nexport default class Command\n{\n\tconstructor(options: {id: string, command: () => {}})\n\t{\n\t\tthis.id = Type.isStringFilled(options.id) ? options.id : '#invalidCommand';\n\t\t// todo: remove undo redo\n\t\t// this.undo = Type.isFunction(options.undo) ? options.undo : (() => {});\n\t\t// this.redo = Type.isFunction(options.redo) ? options.redo : (() => {});\n\t\tthis.command = Type.isFunction(options.command) ? options.command : (() => {});\n\t}\n}","import editText from '../action/edit-text';\nimport editEmbed from '../action/edit-embed';\nimport editMap from '../action/edit-map';\nimport editImage from '../action/edit-image';\nimport editIcon from '../action/edit-icon';\nimport editLink from '../action/edit-link';\nimport sortBlock from '../action/sort-block';\nimport addBlock from '../action/add-block';\nimport removeBlock from '../action/remove-block';\nimport addCard from '../action/add-card';\nimport removeCard from '../action/remove-card';\nimport addNode from '../action/add-node';\nimport removeNode from '../action/remove-node';\nimport editStyle from '../action/edit-style';\nimport updateContent from '../action/update-content';\nimport multiply from '../action/multiply';\n\nimport Command from '../history-command';\n\nimport type {History} from '../history';\n\n/**\n * Registers base internal commands\n * @param {History} history\n * @return {Promise<History>}\n */\nexport default function registerBaseCommands(history: History)\n{\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'editText',\n\t\t\tcommand: editText,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'editImage',\n\t\t\tcommand: editImage,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'editEmbed',\n\t\t\tcommand: editEmbed,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'editMap',\n\t\t\tcommand: editMap,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'editIcon',\n\t\t\tcommand: editIcon,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'editLink',\n\t\t\tcommand: editLink,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'sortBlock',\n\t\t\tcommand: sortBlock,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'addBlock',\n\t\t\tcommand: addBlock,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'removeBlock',\n\t\t\tcommand: removeBlock,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'updateStyle',\n\t\t\tcommand: editStyle,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'addCard',\n\t\t\tcommand: addCard,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'removeCard',\n\t\t\tcommand: removeCard,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'addNode',\n\t\t\tcommand: addNode,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'removeNode',\n\t\t\tcommand: removeNode,\n\t\t}),\n\t);\n\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'updateContent',\n\t\t\tcommand: updateContent,\n\t\t}),\n\t);\n\n\thistory.registerCommand(\n\t\tnew Command({\n\t\t\tid: 'multiply',\n\t\t\tcommand: multiply,\n\t\t}),\n\t);\n\n\treturn Promise.resolve(history);\n}","const worker = new Worker(\n\t'/bitrix/js/landing/history/src/worker/json-parse-worker.js',\n);\n\n/**\n * Parses json string\n * @param {string} str\n * @return {Promise<?Object|array>}\n */\nexport default function asyncJsonParse(str): Promise<{[key: string]: any} | Array<any>>\n{\n\treturn new Promise(((resolve) => {\n\t\tworker.postMessage(str);\n\t\tworker.addEventListener('message', (event) => {\n\t\t\tresolve(event.data);\n\t\t});\n\t}));\n}\n","const worker = new Worker(\n\t'/bitrix/js/landing/history/src/worker/json-stringify-worker.js',\n);\n\n/**\n * Serializes object\n * @param {Object|array} obj\n * @return {Promise<?String>}\n */\nexport default function asyncJsonStringify(obj: {[key: string]: any} | Array<any>): Promise<?string>\n{\n\treturn new Promise(((resolve) => {\n\t\tworker.postMessage(obj);\n\t\tworker.addEventListener('message', (event) => {\n\t\t\tresolve(event.data);\n\t\t});\n\t}));\n}","import {Type} from 'main.core';\nimport asyncJsonParse from './async-json-parse';\nimport asyncJsonStringify from './async-json-stringify';\nimport type {History} from '../history';\n\n/**\n * Removes page history from storage\n * @param {int} pageId\n * @param {History} history\n * @return {Promise<History>}\n */\nexport default function removePageHistory(pageId, history: History): Promise<History>\n{\n\treturn asyncJsonParse(window.localStorage.history)\n\t\t.then((historyData) => {\n\t\t\treturn Type.isPlainObject(historyData) ? historyData : {};\n\t\t})\n\t\t.then((all) => {\n\t\t\tif (pageId in all)\n\t\t\t{\n\t\t\t\tdelete all[pageId];\n\t\t\t}\n\n\t\t\treturn all;\n\t\t})\n\t\t.then(asyncJsonStringify)\n\t\t.then((allString) => {\n\t\t\twindow.localStorage.history = allString;\n\t\t\treturn history;\n\t\t});\n}\n","import {Type, Text} from 'main.core';\nimport {Main} from 'landing.main';\nimport type {History} from '../history';\n\n/**\n * Loads history from storage\n * @param {History} history\n * @return {Promise<History>}\n */\nexport default function loadStack(history: History)\n{\n\tlet currentPageId;\n\n\ttry\n\t{\n\t\tcurrentPageId = Main.getInstance().id;\n\t}\n\tcatch (err)\n\t{\n\t\tcurrentPageId = -1;\n\t}\n\n\t// todo: if design - no?\n\n\treturn BX.Landing.Backend.getInstance()\n\t\t.action(\n\t\t\t\"History::getForLanding\",\n\t\t\t{lid: currentPageId},\n\t\t)\n\t\t.then((data: {stackCount: number, step: number}) => {\n\t\t\thistory.stack = Text.toNumber(data.stackCount);\n\t\t\thistory.step = Math.min(Text.toNumber(data.step), history.stack);\n\n\t\t\treturn history;\n\t\t})\n\t\t.catch((e) => {\n\t\t\treturn history;\n\t\t});\n}","/**\n * Fetches entities from entries\n * @param {BX.Landing.History.Entry[]} items\n * @return {Promise<any>}\n */\nexport default function fetchEntities(items): Promise<any>\n{\n\tconst entities = {blocks: [], images: []};\n\n\titems.forEach((item) => {\n\t\tif (item.command === 'addBlock')\n\t\t{\n\t\t\tentities.blocks.push(item.block);\n\t\t}\n\n\t\tif (item.command === 'editImage')\n\t\t{\n\t\t\tentities.images.push({block: item.block, id: item.redo.id});\n\t\t}\n\t});\n\n\treturn Promise.resolve(entities);\n}","import type {History} from '../history';\n\n/**\n * Makes request with removed entities\n * @param {{\n * \t\tblocks: int[],\n * \t\timages: {block: int, id: int}[]\n * \t}} entities\n * @param {History} history\n * @return {Promise<History>}\n */\nexport default function removeEntities(entities, history: History): Promise<History>\n{\n\t// if (entities.blocks.length || entities.images.length)\n\t// {\n\t// \treturn BX.Landing.Backend.getInstance().action(\"Landing::removeEntities\", {data: entities})\n\t// \t\t.then(function() {\n\t// \t\t\treturn onNewBranch(history);\n\t// \t\t})\n\t// \t\t.then(onUpdate);\n\t// }\n\n\treturn Promise.resolve(history);\n}","import {INIT, RESOLVED} from './constants';\nimport type {History} from '../history';\n\n/**\n * Clears history stack\n * @param {History} history\n * @return {Promise<History>}\n */\nexport default function clear(history: History): Promise<History>\n{\n\thistory.stack = [];\n \thistory.step = -1;\n\thistory.commandState = RESOLVED;\n\treturn Promise.resolve(history);\n}","import type {History} from '../history';\n\n/**\n * Calls on update history stack\n * @param {History} history\n * @return {Promise<History>}\n */\nexport default function onUpdate(history: History): Promise<History>\n{\n\tconst rootWindow = BX.Landing.PageObject.getRootWindow();\n\tBX.onCustomEvent(rootWindow.window, 'BX.Landing.History:update', [history]);\n\n\treturn Promise.resolve(history);\n}","import type {History} from '../history';\n\n/**\n * Calls on init history object\n * @param history\n * @return {Promise<History>}\n */\nexport default function onInit(history: History): Promise<History>\n{\n\tconst rootWindow = BX.Landing.PageObject.getRootWindow();\n\tBX.onCustomEvent(rootWindow.window, 'BX.Landing.History:init', [history]);\n\n\treturn Promise.resolve(history);\n}","import {Type} from 'main.core';\n\nexport default class Entry\n{\n\tconstructor(options)\n\t{\n\t\tthis.block = options.block;\n\t\tthis.selector = options.selector;\n\t\tthis.command = Type.isStringFilled(options.command) ? options.command : '#invalidCommand';\n\t\tthis.params = options.params;\n\t}\n}","import {PageObject} from 'landing.pageobject';\nimport {Highlight as HighlightNode} from 'landing.ui.highlight';\n\nexport default class Highlight extends HighlightNode\n{\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.layout.classList.add('landing-ui-highlight-animation');\n\t\tthis.animationDuration = 300;\n\t}\n\n\tstatic getInstance()\n\t{\n\t\tconst rootWindow = PageObject.getRootWindow();\n\t\tif (!rootWindow.BX.Landing.History.Highlight.instance)\n\t\t{\n\t\t\trootWindow.BX.Landing.History.Highlight.instance = new Highlight();\n\t\t}\n\n\t\treturn rootWindow.BX.Landing.History.Highlight.instance;\n\t}\n\n\tshow(element, rect): Promise<any>\n\t{\n\t\tBX.Landing.UI.Highlight.prototype.show.call(this, element, rect);\n\n\t\treturn new Promise(((resolve) => {\n\t\t\tsetTimeout(resolve, this.animationDuration);\n\t\t\tthis.hide();\n\t\t}));\n\t}\n}","import {Event} from 'main.core';\nimport {PageObject} from 'landing.pageobject';\nimport {RESOLVED, PENDING} from './internal/constants';\nimport registerBaseCommands from './internal/register-base-commands';\nimport removePageHistory from './internal/remove-page-history';\nimport loadStack from './internal/load-stack';\nimport fetchEntities from './internal/fetch-entities';\nimport removeEntities from './internal/remove-entities';\nimport clear from './internal/clear';\nimport onUpdate from './internal/on-update';\nimport onInit from './internal/on-init';\nimport Command from './history-command';\nimport Entry from './history-entry';\nimport Highlight from './history-highlight';\nimport editText from './action/edit-text';\nimport editEmbed from './action/edit-embed';\nimport editMap from './action/edit-map';\nimport editImage from './action/edit-image';\nimport editIcon from './action/edit-icon';\nimport editLink from './action/edit-link';\nimport sortBlock from './action/sort-block';\nimport addBlock from './action/add-block';\nimport removeBlock from './action/remove-block';\nimport addCard from './action/add-card';\nimport removeCard from './action/remove-card';\nimport addNode from './action/add-node';\nimport removeNode from './action/remove-node';\nimport editStyle from './action/edit-style';\nimport updateContent from './action/update-content';\nimport {Main} from 'landing.main';\n\n/**\n * Implements interface for works with landing history\n * Implements singleton pattern use as BX.Landing.History.getInstance()\n * @memberOf BX.Landing\n */\nexport class History\n{\n\tstatic TYPE_LANDING = 'L';\n\tstatic TYPE_DESIGNER_BLOCK = 'D';\n\n\tstack: number;\n\tcommands: {};\n\t/**\n\t * From 1 to X. 0 - is state without any history\n\t * @type {number}\n\t */\n\tstep: number;\n\tcommandState: string;\n\tlandingId: number;\n\tdesignerBlockId: ?number = null;\n\n\tconstructor()\n\t{\n\t\tthis.type = History.TYPE_LANDING;\n\t\tthis.stack = 0;\n\t\tthis.commands = {};\n\t\tthis.step = 0;\n\t\tthis.commandState = RESOLVED;\n\t\tthis.onStorage = this.onStorage.bind(this);\n\n\t\ttry\n\t\t{\n\t\t\tthis.landingId = Main.getInstance().id;\n\t\t}\n\t\tcatch (err)\n\t\t{\n\t\t\tthis.landingId = -1;\n\t\t}\n\n\t\tEvent.bind(window, 'storage', this.onStorage);\n\n\t\tregisterBaseCommands(this)\n\t\t\t.then(loadStack)\n\t\t\t.then(onInit);\n\t}\n\n\tstatic Command = Command;\n\tstatic Entry = Entry;\n\tstatic Highlight = Highlight;\n\t// todo: need?\n\t// static Action = {\n\t// \teditText,\n\t// \teditEmbed,\n\t// \teditMap,\n\t// \teditImage,\n\t// \teditIcon,\n\t// \teditLink,\n\t// \tsortBlock,\n\t// \taddBlock,\n\t// \tremoveBlock,\n\t// \taddCard,\n\t// \tremoveCard,\n\t// \teditStyle,\n\t// \taddNode,\n\t// \tremoveNode,\n\t// \tupdateContent\n\t// };\n\n\tstatic getInstance(): History\n\t{\n\t\tconst rootWindow = PageObject.getRootWindow();\n\t\tif (!rootWindow.BX.Landing.History.instance)\n\t\t{\n\t\t\trootWindow.BX.Landing.History.instance = new BX.Landing.History();\n\t\t}\n\n\t\treturn rootWindow.BX.Landing.History.instance;\n\t}\n\n\t/**\n\t * Set special type for designer block\n\t * @param blockId\n\t * @return {Promise<BX.Landing.History>|*}\n\t */\n\tsetTypeDesignerBlock(blockId: number): Promise<History>\n\t{\n\t\tthis.type = History.TYPE_DESIGNER_BLOCK;\n\t\tthis.designerBlockId = blockId;\n\n\t\treturn loadStack(this);\n\t}\n\n\tgetUndoAction(): string\n\t{\n\t\tif (this.type === History.TYPE_DESIGNER_BLOCK)\n\t\t{\n\t\t\treturn \"History::undoDesignerBlock\";\n\t\t}\n\n\t\treturn \"History::undoLanding\";\n\t}\n\n\tgetRedoAction(): string\n\t{\n\t\tif (this.type === History.TYPE_DESIGNER_BLOCK)\n\t\t{\n\t\t\treturn \"History::redoDesignerBlock\";\n\t\t}\n\n\t\treturn \"History::redoLanding\";\n\t}\n\n\tgetActionParams(): string\n\t{\n\t\tif (\n\t\t\tthis.type === History.TYPE_DESIGNER_BLOCK\n\t\t\t&& this.designerBlockId\n\t\t)\n\t\t{\n\t\t\treturn {\n\t\t\t\tblockId: this.designerBlockId,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tlid: this.landingId,\n\t\t};\n\t}\n\n\t/**\n\t * Applies preview history entry\n\t * @return {Promise}\n\t */\n\tundo()\n\t{\n\t\tif (this.canUndo())\n\t\t{\n\t\t\treturn BX.Landing.Backend.getInstance()\n\t\t\t\t.action(\n\t\t\t\t\tthis.getUndoAction(),\n\t\t\t\t\tthis.getActionParams(),\n\t\t\t\t)\n\t\t\t\t.then(command => {\n\t\t\t\t\tif (command)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst params = command.params;\n\t\t\t\t\t\tconst entry = new Entry({\n\t\t\t\t\t\t\tblock: params.block,\n\t\t\t\t\t\t\tselector: params.selector,\n\t\t\t\t\t\t\tcommand: command.command,\n\t\t\t\t\t\t\tparams: params,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn this.runCommand(entry, -1);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t})\n\t\t\t\t.then(res => {\n\t\t\t\t\treturn this.offset(-1).then(onUpdate);\n\t\t\t\t})\n\t\t}\n\n\t\treturn Promise.resolve(this);\n\t}\n\n\n\t/**\n\t * Applies preview next history entry\n\t * @return {Promise}\n\t */\n\tredo()\n\t{\n\t\tif (this.canRedo())\n\t\t{\n\t\t\treturn BX.Landing.Backend.getInstance()\n\t\t\t\t.action(\n\t\t\t\t\tthis.getRedoAction(),\n\t\t\t\t\tthis.getActionParams(),\n\t\t\t\t)\n\t\t\t\t.then(command => {\n\t\t\t\t\tif (command)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst params = command.params;\n\t\t\t\t\t\tconst entry = new Entry({\n\t\t\t\t\t\t\tblock: params.block,\n\t\t\t\t\t\t\tselector: params.selector,\n\t\t\t\t\t\t\tcommand: command.command,\n\t\t\t\t\t\t\tparams: params,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn this.runCommand(entry, 1);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t})\n\t\t\t\t.then(res => {\n\t\t\t\t\treturn this.offset(1).then(onUpdate);\n\t\t\t\t})\n\t\t}\n\n\t\treturn Promise.resolve(this);\n\t}\n\n\toffset(offsetValue: number): Promise<History>\n\t{\n\t\tif (this.commandState === PENDING)\n\t\t{\n\t\t\treturn Promise.resolve(this);\n\t\t}\n\n\t\tlet step = this.step + offsetValue;\n\n\t\tif (step >= 0 && step <= this.stack)\n\t\t{\n\t\t\tthis.step = step;\n\t\t}\n\n\t\treturn Promise.resolve(this);\n\t}\n\n\t// todo: offsetvelue if haaaaack, fuuuu\n\trunCommand(entry: Entry, offsetValue: number)\n\t{\n\t\tif (entry)\n\t\t{\n\t\t\tconst command = this.commands[entry.command];\n\t\t\tif (command)\n\t\t\t{\n\t\t\t\tthis.commandState = PENDING;\n\n\t\t\t\treturn command.command(entry)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tthis.commandState = RESOLVED;\n\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tthis.commandState = RESOLVED;\n\t\t\t\t\t\t// todo: how check and process error\n\t\t\t\t\t\treturn this.offset(offsetValue);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Check that there are actions to undo\n\t * @returns {boolean}\n\t */\n\tcanUndo()\n\t{\n\t\treturn (\n\t\t\tthis.commandState !== PENDING\n\t\t\t&& (this.step > 0 && this.stack > 0 && this.step <= this.stack)\n\t\t);\n\t}\n\n\n\t/**\n\t * Check that there are actions to redo\n\t * @returns {boolean}\n\t */\n\tcanRedo()\n\t{\n\t\treturn (\n\t\t\tthis.commandState !== PENDING\n\t\t\t&& (this.step < this.stack && this.step >= 0)\n\t\t);\n\t}\n\n\n\t/**\n\t * Adds entry to history stack\n\t * @param {BX.Landing.History.Entry} entry\n\t */\n\tpush(entry)\n\t{\n\t\tif (this.step < this.stack)\n\t\t{\n\t\t\tthis.stack = this.step;\n\t\t}\n\n\t\tthis.step++;\n\t\tthis.stack++;\n\n\t\tonUpdate(this);\n\t}\n\n\n\t/**\n\t * Registers unique history command\n\t * @param {Command} command\n\t */\n\tregisterCommand(command)\n\t{\n\t\tif (command instanceof Command)\n\t\t{\n\t\t\tthis.commands[command.id] = command;\n\t\t}\n\t}\n\n\n\t/**\n\t * Removes page history from storage\n\t * @param {int} pageId\n\t * @return {Promise<BX.Landing.History>}\n\t */\n\tremovePageHistory(pageId)\n\t{\n\t\t// todo: publication clear method\n\t\treturn removePageHistory(pageId, this)\n\t\t\t.then((history) => {\n\t\t\t\tlet currentPageId;\n\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tcurrentPageId = BX.Landing.Main.getInstance().id;\n\t\t\t\t}\n\t\t\t\tcatch (err)\n\t\t\t\t{\n\t\t\t\t\tcurrentPageId = -1;\n\t\t\t\t}\n\n\t\t\t\tif (currentPageId === pageId)\n\t\t\t\t{\n\t\t\t\t\treturn clear(history);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.reject();\n\t\t\t})\n\t\t\t.then(onUpdate)\n\t\t\t.catch(() => {});\n\t}\n\n\n\t/**\n\t * Handles storage event\n\t * @param {StorageEvent} event\n\t */\n\tonStorage(event)\n\t{\n\t\tif (event.key === null)\n\t\t{\n\t\t\tif (!window.localStorage.history)\n\t\t\t{\n\t\t\t\tclear(this).then(onUpdate);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Handles new branch events\n\t * @param {BX.Landing.History.Entry[]} entries\n\t * @return {Promise<History>}\n\t */\n\tonNewBranch(entries)\n\t{\n\t\treturn fetchEntities(entries, this)\n\t\t\t.then((entities) => {\n\t\t\t\treturn removeEntities(entities, this);\n\t\t\t});\n\t}\n}"],"names":["RESOLVED","PENDING","BX","Landing","Utils","scrollTo","highlight","editNode","entry","PageObject","getInstance","blocks","then","block","get","Promise","reject","forceInit","node","nodes","getBySelector","selector","bind","useRangeRect","setValue","params","value","editText","editEmbed","editMap","editImage","editIcon","editLink","sortBlock","direction","addBlock","currentBlock","resolve","landing","Main","view","iframe","currentArea","contentDocument","body","querySelector","lid","insertBefore","onAddBlock","code","removeBlock","deleteBlock","addCard","parentNode","elements","index","position","container","content","card","cards","removeCard","relativeSelector","addNode","tags","top","onCustomEvent","removeNode","slice","editStyle","initStyles","querySelectorAll","forEach","element","className","style","removeAttribute","form","forms","find","currentForm","fields","field","reset","onFrameLoad","styleNode","styles","onStyleInputWithDebounce","data","getValue","updateContent","multiply","blockId","updateBlockStateData","singleAction","command","dynamicParams","dynamicState","settings","id","Object","keys","length","updateBlockState","Command","options","Type","isStringFilled","isFunction","registerBaseCommands","history","registerCommand","worker","Worker","asyncJsonParse","str","postMessage","addEventListener","event","asyncJsonStringify","obj","removePageHistory","pageId","window","localStorage","historyData","isPlainObject","all","allString","loadStack","currentPageId","err","Backend","action","stack","Text","toNumber","stackCount","step","Math","min","e","fetchEntities","items","entities","images","item","push","redo","removeEntities","clear","commandState","onUpdate","rootWindow","getRootWindow","onInit","Entry","Highlight","layout","classList","add","animationDuration","rect","UI","prototype","show","call","setTimeout","hide","History","instance","HighlightNode","type","TYPE_LANDING","commands","onStorage","landingId","Event","TYPE_DESIGNER_BLOCK","designerBlockId","canUndo","getUndoAction","getActionParams","runCommand","res","offset","canRedo","getRedoAction","offsetValue","key","entries"],"mappings":"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"}