![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-full/dist/js/ |
Upload File : |
/*** module: node_modules/absol-form/js/cmds/LayoutEditorCmd.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LayoutEditorCmdDescriptors = exports.LayoutEditorCmdTree = exports.LayoutEditorCmdNames = exports.default = void 0; var _R = _interopRequireDefault(require("../R")); var _FormPreview = _interopRequireDefault(require("../editor/FormPreview")); var _ClipboardManager = _interopRequireDefault(require("../ClipboardManager")); var _PluginManager = _interopRequireDefault(require("../core/PluginManager")); var _FCore = _interopRequireDefault(require("../core/FCore")); var _FileSaver = require("absol/src/Network/FileSaver"); var _BlockEditor = _interopRequireDefault(require("../ciruiteditor/blockeditor/BlockEditor")); var _LineEditor = _interopRequireDefault(require("../ciruiteditor/lineeditor/LineEditor")); /** * @type {import('../editor/LayoutEditor').default} */ var LayoutEditorCmd = {}; LayoutEditorCmd.preview = function () { this.execCmd('update_from_other'); if (!this.rootLayout) return; /** * @type {import('./FormEditor').default} */ var formEditor = this.getContext(_R.default.FORM_EDITOR); if (!formEditor) return; var tabHolder = formEditor.getEditorHolderByEditor(this); var currentTabIdent = tabHolder.ident; var previewTabIdent = currentTabIdent + '_preview'; var previewEditor; var previewTabHolder = formEditor.getEditorHolderByIdent(previewTabIdent); if (previewTabHolder) previewEditor = previewTabHolder.editor; if (!previewEditor) { previewEditor = new _FormPreview.default(); previewEditor.attach(this); var name = tabHolder.name + '(Preview)'; var desc = tabHolder.desc; formEditor.openEditorTab(previewTabIdent, name, desc, previewEditor, { layoutEditor: this }); } else { previewTabHolder.tabframe.requestActive(); } var data = this.getData(); previewEditor.setData(data); }; LayoutEditorCmd.save = function () { this.execCmd('update_from_other'); var formEditor = this.getContext(_R.default.FORM_EDITOR); if (formEditor) { var tabHolder = formEditor.getEditorHolderByEditor(this); if (tabHolder) _PluginManager.default.exec(this, _R.default.PLUGINS.SAVE_CONTENT_DATA, tabHolder); } this.notifySaved(); }; LayoutEditorCmd.update_from_other = function () { var formEditor = this.getContext(_R.default.FORM_EDITOR); if (formEditor) { var tabHolder = formEditor.getEditorHolderByEditor(this); var currentTabIdent = tabHolder.ident; var blockEditorTabIdent = currentTabIdent + '_blocks'; var blockEditor; var blockEditorTabHolder = formEditor.getEditorHolderByIdent(blockEditorTabIdent); if (blockEditorTabHolder) blockEditor = blockEditorTabHolder.editor; if (blockEditor) { this.setBlockData(blockEditor.getData()); blockEditor.notifySaved(); } var lineEditorTabIdent = currentTabIdent + '_lines'; var lineEditor; var lineEditorTabHolder = formEditor.getEditorHolderByIdent(lineEditorTabIdent); if (lineEditorTabHolder) lineEditor = lineEditorTabHolder.editor; if (lineEditor) { this.setLineData(lineEditor.getData()); lineEditor.notifySaved(); } } }; LayoutEditorCmd.saveAs = function () {}; LayoutEditorCmd.importFromJson = function () { var self = this; var fileInput = _FCore.default._({ tag: 'input', style: { position: 'fixed', zIndex: '-100', opacity: '0' }, attr: { type: 'file', accept: 'application/JSON' }, on: { change: function (event) { if (this.files.length > 0) { var file = this.files[0]; var reader = new FileReader(); reader.onload = function () { try { var data = JSON.parse(reader.result); if (data.app == _R.default.APP) { self.applyData(data); self.commitHistory("import", 'Import form JSON file'); self.notifyUnsaved(); } else { console.error('Invalid data!'); } } catch (error) { console.error(error); } }; reader.readAsText(file); } } } }).addTo(document.body); fileInput.focus(); fileInput.click(); }; LayoutEditorCmd.export2Json = function () { var fileName = 'exported.json'; var formEditor = this.getContext(_R.default.FORM_EDITOR); if (formEditor) { var tabHolder = formEditor.getEditorHolderByEditor(this); fileName = tabHolder.name.replace(/[\\\/\.\?]/g, '_') + '.json'; } var a = document.createElement('a'); this.$view.appendChild(a); var text = JSON.stringify(Object.assign(this.getData(), { app: _R.default.APP, version: _R.default.VERSION }), null, ' '); var fileType = 'json'; var blob = new Blob([text], { type: fileType, encoding: "UTF-8" }); (0, _FileSaver.saveAs)(blob, fileName); }; LayoutEditorCmd.export2sharpEncode = function () { if (!window.EncodingClass) return; var fileName = 'exported.txt'; var formEditor = this.getContext(_R.default.FORM_EDITOR); if (formEditor) { var tabHolder = formEditor.getEditorHolderByEditor(this); fileName = tabHolder.name.replace(/[\\\/\.\?]/g, '_') + '.txt'; } var text = window.EncodingClass.string.fromVariable(Object.assign(this.getData(), { app: _R.default.APP, version: _R.default.VERSION }), null, ' '); (0, _FileSaver.saveTextAs)(text, fileName); }; LayoutEditorCmd.editBlocks = function () { if (!this.rootLayout) return; /** * @type {import('./FormEditor').default} */ var formEditor = this.getContext(_R.default.FORM_EDITOR); if (!formEditor) return; var tabHolder = formEditor.getEditorHolderByEditor(this); var currentTabIdent = tabHolder.ident; var blockEditorTabIdent = currentTabIdent + '_blocks'; var blockEditor; var blockEditorTabHolder = formEditor.getEditorHolderByIdent(blockEditorTabIdent); if (blockEditorTabHolder) blockEditor = blockEditorTabHolder.editor; if (!blockEditor) { blockEditor = new _BlockEditor.default(); blockEditor.attach(this); var name = tabHolder.name + '(blocks)'; var desc = tabHolder.desc; formEditor.openEditorTab(blockEditorTabIdent, name, desc, blockEditor, { layoutEditor: this }); } else { blockEditorTabHolder.tabframe.requestActive(); } var data = this.getBlockData(); blockEditor.setData(data); }; LayoutEditorCmd.editLines = function () { if (!this.rootLayout) return; var formEditor = this.getContext(_R.default.FORM_EDITOR); if (!formEditor) return; var tabHolder = formEditor.getEditorHolderByEditor(this); var currentTabIdent = tabHolder.ident; var lineEditorTabIdent = currentTabIdent + '_lines'; var lineEditor; var lineEditorTabHolder = formEditor.getEditorHolderByIdent(lineEditorTabIdent); if (lineEditorTabHolder) lineEditor = lineEditorTabHolder.editor; if (!lineEditor) { lineEditor = new _LineEditor.default(); lineEditor.attach(this); var name = tabHolder.name + '(lines)'; var desc = tabHolder.desc; formEditor.openEditorTab(lineEditorTabIdent, name, desc, lineEditor, { layoutEditor: this }); } else { lineEditorTabHolder.tabframe.requestActive(); } var data = this.getLineData(); lineEditor.setData(data); }; LayoutEditorCmd.cut = function () { if (this.anchorEditors.length < 1) return; var components = this.anchorEditors.map(function (ed) { return ed.component; }); var componentsData = components.map(function (component) { var data = component.getData(); data.bound = component.view.getBoundingClientRect().toJSON(); return data; }); _ClipboardManager.default.set(_R.default.CLIPBOARD.COMPONENTS, componentsData); //code copy and edit from LayoutEditor.prototype.removeComponent var self = this; this.anchorEditors.forEach(function (ed) { ed.component.remove(); self.emit('removecomponent', { type: 'removecomponent', target: this, component: ed.component }, this); }); function visit(node) { if (node.attributes && node.attributes.name) { node.attributes.id = undefined; delete node.attributes.id; } if (node.children) node.children.forEach(visit); } componentsData.forEach(visit); this.componentPropertiesEditor.edit(); this.setActiveComponent(); this.notifyDataChange(); this.notifyUnsaved(); this.componentOtline.updateComponentTree(); this.commitHistory('cut', 'Cut ' + components.map(function (c) { return c.getAttribute('name'); }).join(', ')); }; LayoutEditorCmd.copy = function () { if (this.anchorEditors.length < 1) return; var componentsData = this.anchorEditors.map(function (ed) { var data = ed.component.getData(); data.bound = ed.component.view.getBoundingClientRect().toJSON(); return data; }); function visit(node) { if (node.attributes && node.attributes.name) { node.attributes.name = undefined; delete node.attributes.name; node.attributes.id = undefined; delete node.attributes.id; } if (node.children) node.children.forEach(visit); } componentsData.forEach(visit); _ClipboardManager.default.set(_R.default.CLIPBOARD.COMPONENTS, componentsData); }; LayoutEditorCmd.paste = function (event) { var posX = 0; var posY = 0; if (event) { var bound = this.rootLayout.domElt.getBoundingClientRect(); posX = this.mouseClientX - bound.left; posY = this.mouseClientY - bound.top; } var components = _ClipboardManager.default.get(_R.default.CLIPBOARD.COMPONENTS); if (components) { this.addNewComponent(components, posX, posY); } }; LayoutEditorCmd.undo = function () { this.undoHistory.undo(); }; LayoutEditorCmd.redo = function () { this.undoHistory.redo(); }; LayoutEditorCmd.selectAll = function () { var now = new Date().getTime(); var comp; if (this.anchorEditors.length == 0) { comp = this.rootLayout.children; } else { comp = (this.findNearestLayoutParent(this.anchorEditors[0].component.parent) || this.rootLayout).children; } this.setActiveComponent.apply(this, comp); }; LayoutEditorCmd.editRootLayout = function () { this.editLayout(this.rootLayout); this.setActiveComponent(this.rootLayout); }; LayoutEditorCmd.zoomIn = function () { this.zoomBy(1 / 0.9); }; LayoutEditorCmd.zoomOut = function () { this.zoomBy(0.9); }; LayoutEditorCmd.resetZoom = function () { this.setSoftScale(1); }; var _default = LayoutEditorCmd; exports.default = _default; var LayoutEditorCmdNames = []; exports.LayoutEditorCmdNames = LayoutEditorCmdNames; var LayoutEditorCmdTree = [[['preview'], ['save', 'saveAs', 'importFromJson', 'export2Json', 'export2sharpEncode'], ['undo', 'redo'], ['editBlocks', 'editLines'], ['cut', 'copy', 'paste', 'delete']], ['editRootLayout', 'selectAll'], ['zoomOut', 'zoomIn', 'resetZoom']]; exports.LayoutEditorCmdTree = LayoutEditorCmdTree; var LayoutEditorCmdDescriptors = { editRootLayout: { type: 'trigger', desc: "Edit Root Layout", icon: 'span.mdi.mdi-border-outside' }, preview: { type: 'trigger', icon: 'span.mdi.mdi-play', desc: 'Preview', bindKey: { win: 'Ctrl-K', mac: 'TODO?' } }, cut: { type: 'trigger', icon: 'span.mdi.mdi-content-cut', desc: 'Cut', bindKey: { win: 'Ctrl-X', mac: 'TODO?' } }, copy: { type: 'trigger', icon: 'span.mdi.mdi-content-copy', desc: 'Copy', bindKey: { win: 'Ctrl-C', mac: 'TODO?' } }, paste: { type: 'trigger', icon: 'span.mdi.mdi-content-paste', desc: 'Paste', bindKey: { win: 'Ctrl-V', mac: 'TODO?' } }, delete: { type: 'trigger', icon: 'span.mdi.mdi-delete-variant', desc: 'Delete', bindKey: { win: 'Delete', mac: 'Delete' } }, save: { type: 'trigger', icon: 'span.mdi.mdi-content-save', desc: 'Save', bindKey: { win: 'Ctrl-S', mac: '//todo' } }, saveAs: { type: 'trigger', icon: 'span.mdi.mdi-content-save-edit', desc: 'Save As' }, importFromJson: { type: 'trigger', icon: 'span.mdi.mdi-cloud-upload[style="color:#1da8f2"]', desc: 'Import From JSON', bindKey: { win: 'Ctrl-Shift-I', mac: 'TODO?' } }, export2Json: { type: 'trigger', icon: 'span.mdi.mdi-cloud-download-outline', desc: 'Export To JSON', bindKey: { win: 'Ctrl-Shift-E', mac: 'TODO?' } }, export2sharpEncode: { type: 'trigger', icon: 'span.mdi.mdi-music-accidental-sharp', desc: 'Export To #', bindKey: { win: 'Ctrl-Shift-#', mac: 'TODO?' } }, editBlocks: { type: 'trigger', icon: 'mdi-shape', desc: 'Edit Blocks', bindKey: { win: 'Ctrl-Shift-B', mac: 'TODO?' } }, editLines: { type: 'trigger', icon: 'span.mdi.mdi-transit-connection-variant[style="color:rgb(255, 100, 50)"]', desc: 'Edit Lines', bindKey: { win: 'Ctrl-Shift-L', mac: 'TODO?' } }, undo: { type: 'trigger', icon: 'span.mdi.mdi-undo', desc: 'Undo', bindKey: { win: 'Ctrl-Z', mac: 'TODO?' } }, redo: { type: 'trigger', icon: 'span.mdi.mdi-redo', desc: 'Redo', bindKey: { win: 'Ctrl-Y', mac: 'TODO?' } }, selectAll: { type: 'trigger', desc: 'Select All', icon: 'span.mdi.mdi-select-all', bindKey: { win: 'Ctrl-A', mac: 'TODO?' } }, zoomIn: { type: 'trigger', desc: 'Zoom In', icon: 'span.mdi.mdi-magnify-plus-outline' }, zoomOut: { type: 'trigger', desc: 'Zoom Out', icon: 'span.mdi.mdi-magnify-minus-outline' }, resetZoom: { type: 'trigger', desc: 'Reset Zoom ', icon: 'span.mdi.mdi-magnify-close' } }; exports.LayoutEditorCmdDescriptors = LayoutEditorCmdDescriptors;