VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol-form__js__cmds__LayoutEditorCmd.js
/*** 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;

VaKeR 2022