![]() 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/launcher/FOutline.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OutlineDelegate = OutlineDelegate; exports.default = void 0; var _FCore = _interopRequireDefault(require("../core/FCore")); require("../../css/componentoutline.css"); var _BaseEditor = _interopRequireDefault(require("../core/BaseEditor")); var _OOP = _interopRequireDefault(require("absol/src/HTML5/OOP")); var _ExpTree = _interopRequireDefault(require("absol-acomp/js/ExpTree")); var _FFloatWindow = _interopRequireDefault(require("./FFloatWindow")); var _stringGenerate = require("absol/src/String/stringGenerate"); var _ = _FCore.default._; var $ = _FCore.default.$; /*** * @augments FFloatWindow * @constructor */ function FOutline() { _FFloatWindow.default.call(this); _BaseEditor.default.call(this); this.$view = null; this.idPrefix = (0, _stringGenerate.randomIdent)(3); /** * * @type {OutlineDelegate} * @private */ this._delegate = null; this.$focusNode = undefined; this._lastPressTime = 0; this.$nodesById = {}; this._savedStatus = {}; this._selectedIds = {}; for (var key in this) { if (key.startsWith('ev_')) { this[key] = this[key].bind(this); } } } _OOP.default.mixClass(FOutline, _FFloatWindow.default, _BaseEditor.default); FOutline.prototype.windowTitle = 'Outline'; FOutline.prototype._updateAllTree = function () { if (!this._delegate) return; var treeData = this._delegate.getTreeData(); this.$view.clearChild(); this.$nodesById = {}; var createTree = nodeData => { var nodeElt = this._makeNode(); nodeData.id = nodeData.id || (0, _stringGenerate.randomIdent)(5); nodeElt.data = nodeData; nodeElt.name = nodeData.name; nodeElt.icon = nodeData.icon; nodeElt.id = this.idPrefix + nodeData.id; this.$nodesById[nodeData.id] = nodeElt; if (this._selectedIds[nodeData.id]) nodeElt.addClass('as-component-outline-node-selected'); if (nodeData.children) { nodeElt.status = 'open'; if (['close', 'open'].indexOf(this._savedStatus[nodeElt.id]) >= 0) nodeElt.status = this._savedStatus[nodeElt.id]; nodeData.children.map(d => createTree(d)).forEach(elt => nodeElt.addChild(elt)); } return nodeElt; }; this.$view.addChild(treeData.map(d => createTree(d))); }; FOutline.prototype.notifyTreeChange = function (data) { this._updateAllTree(); }; FOutline.prototype.notifySelectedChange = function (data) { if (!this._delegate) return; var selectedIdList = this._delegate.getSelectedIdList().reduce((ac, cr) => { ac[cr] = true; return ac; }, {}); Object.keys(this._selectedIds).forEach(id => { if (this.$nodesById[id] && !selectedIdList[id]) { this.$nodesById[id].removeClass('as-component-outline-node-selected'); } }); this._selectedIds = selectedIdList; Object.keys(this._selectedIds).forEach(id => { if (this.$nodesById[id]) { this.$nodesById[id].addClass('as-component-outline-node-selected'); } }); }; FOutline.prototype.ev_contextNode = function (nodeElt, event) { if (!this._delegate) return; var menuProps = this._delegate.getNodeContextMenu(nodeElt); if (!menuProps) return; menuProps = Object.assign({}, menuProps); menuProps.extendStyle = Object.assign({ fontSize: '12px' }, menuProps.extendStyle || {}); event.showContextMenu(menuProps, event => { this._delegate.onNodeSelectContextMenu(nodeElt, event.menuItem, event); }); }; FOutline.prototype._makeNode = function () { var savedStatus = this._savedStatus; var node = _({ tag: _ExpTree.default.tag, on: { statuschange: function () { savedStatus[this.id] = this.status; } } }); node.on('press', this.ev_PressNode.bind(this, node)); node.getNode().defineEvent('contextmenu').on('contextmenu', this.ev_contextNode.bind(this, node)); return node; }; FOutline.prototype.ev_PressNode = function (node, event) { if (this._delegate) this._delegate.onClickNode(node, event); }; FOutline.prototype.updateComponentStatus = function () { var newSelectedIds = this.layoutEditor.anchorEditors.reduce(function (ac, ae) { var id = ae.component.attributes.id; if (ae.isFocus) { ac[id] = 'focus'; } else { ac[id] = true; } return ac; }.bind(this), {}); var oldSelectedIds = this._selectedIds; Object.keys(Object.assign({}, oldSelectedIds, newSelectedIds)).forEach(function (id) { var node = this.$nodesById[id]; if (!node) return; if (newSelectedIds[id]) { node.addClass('as-component-outline-node-selected'); if (newSelectedIds[id] === 'focus') { node.addClass('as-component-outline-node-focus'); } else { node.removeClass('as-component-outline-node-focus'); } } else { node.removeClass('as-component-outline-node-selected'); node.removeClass('as-component-outline-node-focus'); } }.bind(this)); this._selectedIds = newSelectedIds; }; FOutline.prototype.createView = function () { this.$view = _({ class: ['as-component-outline'] }); // this.$attachhook = _('attachhook'); // this.$view.appendChild(this.$attachhook); // this.$attachhook.on('attached', function () { // ResizeSystem.add(this); // this.requestUpdate(); // }); // this.$attachhook.requestUpdate = function () { // this.$view.$body.addStyle('max-height', this.$view.parentElement.clientHeight - this.$view.$head.clientHeight + 'px'); // }.bind(this); // // if (this.$expTree) // this.$view.addChild(this.$expTree); }; FOutline.prototype.ev_keydown = function (event) { return; var now = new Date().getTime(); if (now - this._lastPressTime < 50) return; this._lastPressTime = now; switch (event.key) { case 'Down': case 'ArrowDown': if (this.$focusNode) this.selectNext(this.$focusNode.__comp__); break; case 'Up': case 'ArrowUp': if (this.$focusNode) this.selectPrev(this.$focusNode.__comp__); break; } this.layoutEditor.ev_cmdKeyDown(event); setTimeout(this.$view.focus.bind(this.$view), 10); }; FOutline.prototype.selectNext = function (component) { var prev = undefined; var self = this; $('exptree', this.$view, function (node) { if (node.__comp__ == component) { prev = node; } else if (prev) { self.layoutEditor.setActiveComponent(node.__comp__); node.$node.focus(); return true; } }); }; FOutline.prototype.selectPrev = function (component) { var prev = undefined; var self = this; $('exptree', this.$view, function (node) { if (node.__comp__ == component) { if (prev) { self.layoutEditor.setActiveComponent(prev.__comp__); prev.$node.focus(); return true; } } prev = node; }); }; Object.defineProperty(FOutline.prototype, 'delegate', { set: function (delegate) { if (this._delegate) this._delegate.partner = null; this._delegate = delegate; if (delegate) delegate.partner = this; this._updateAllTree(); }, get: function () { return this._delegate; } }); var _default = FOutline; exports.default = _default; function OutlineDelegate() { this.partner = null; } OutlineDelegate.prototype.getTreeData = function () { return []; }; /** * * @param nodeElt * @returns {{items: *[]} | null} */ OutlineDelegate.prototype.getNodeContextMenu = function (nodeElt) { return { items: [] }; }; /** * * @returns {string[]} */ OutlineDelegate.prototype.getSelectedIdList = function () { return []; }; OutlineDelegate.prototype.onNodeSelectContextMenu = function (nodeElt, item, event) {}; OutlineDelegate.prototype.onClickNode = function (nodeElt, event) {}; OutlineDelegate.prototype.notifyTreeChange = function (data) { if (this.partner) this.partner.notifyTreeChange(Object.assign({ sender: this }, data)); }; OutlineDelegate.prototype.notifySelectedChange = function () { if (this.partner) this.partner.notifySelectedChange(); };