![]() 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-form/js/components/ |
Upload File : |
import ScalableComponent from "../core/ScalableComponent"; import {_} from "../core/FCore"; import {AssemblerInstance} from "../core/Assembler"; import "../../css/arrayoffragment.css"; import inheritComponentClass from "../core/inheritComponentClass"; /*** * @extends ScalableComponent * @constructor */ function ArrayOfFragment() { ScalableComponent.call(this); this.fragments = []; this._makeArray(); } inheritComponentClass(ArrayOfFragment, ScalableComponent); ArrayOfFragment.prototype.tag = "ArrayOfFragment"; ArrayOfFragment.prototype.menuIcon = "span.mdi.mdi-tray-full"; ArrayOfFragment.prototype.styleHandlers.itemSpacing = { set: function (value) { this.domElt.addStyle('--as-aof-item-spacing', value + 'px'); return value; }, descriptor: { type: 'measureSize', units: ['px'] }, export: function () { var ref = arguments[arguments.length - 1]; var value = ref.get(); if (value === 10) return undefined; return value; } }; ArrayOfFragment.prototype.render = function () { return _({ class: 'as-array-of-fragment' }); }; ArrayOfFragment.prototype.onCreate = function () { ScalableComponent.prototype.onCreate.call(this); this.style.itemSpacing = 10; }; ArrayOfFragment.prototype.attributeHandlers.itemFragmentClass = { descriptor: { type: 'fragmentClass' } }; ArrayOfFragment.prototype.attributeHandlers.disabled = { set: function (value) { if (value) this.domElt.addClass('as-disabled'); else this.domElt.removeClass('as-disabled'); }, get: function () { return this.domElt.containsClass('as-disabled'); }, descriptor: { type: 'bool' } } ArrayOfFragment.prototype._clearAllFragment = function () { this.domElt.clearChild(); }; ArrayOfFragment.prototype._makeArray = function () { if (this._dataArr) return; var self = this; this._dataArr = []; this._dataArr.push = function () { this.splice.apply(this, [this.length, this.length].concat(Array.prototype.slice.apply(arguments))); return arguments.length; } var oUnShift = this._dataArr.unshift; this._dataArr.unshift = function () { var newItems = Array.prototype.slice.call(arguments); return oUnShift.apply(this._array, newItems); } this._dataArr.pop = function () { if (this.length <= 0) return undefined; var res = this[this.length - 1]; this.slice(this.length - 1, this.length); self.notifyChange(); return res; }; this._dataArr.shift = function () { if (this.length <= 0) return undefined; var res = this[0]; this.slice(0, 1); self.notifyChange(); return res; }; this._dataArr.splice = function () { var start; var end; var addedItems; if (arguments.length < 1) start = 0; else start = arguments[0]; if (arguments.length < 2) end = this.length; else end = arguments[1]; if (start < 0) start = this.length - start; if (end < 0) end = this.length - end; start = Math.max(0, start); end = Math.max(start, end); if (arguments.length > 2) addedItems = Array.prototype.slice.call(arguments, 2); else addedItems = []; var className = self.getAttribute('itemFragmentClass'); var newFragments = addedItems.map(function (item) { var frag = AssemblerInstance.buildFragment({ class: className }); frag.props = item; return frag; }); var endElt = self.fragments[end] && self.fragments[end].domElt; var removedFragments = self.fragments.splice.apply(self.fragments, [start, end].concat(newFragments)); removedFragments.forEach(function (frg) { self.fragment.removeChild(frg); frg.domElt.remove(); }); newFragments.forEach(function (frg) { if (endElt) self.domElt.addChildBefore(frg.domElt, endElt); else self.domElt.addChild(frg.domElt); self.fragment.addChild(frg); }); var newBindItems = newFragments.map(function (frg) { return frg.props; }); self.notifyChange(); return Array.prototype.splice.apply(this, [start, end].concat(newBindItems)); }; }; ArrayOfFragment.prototype.createDataBindingDescriptor = function () { var self = this; return { set: function (value) { value = value || []; if (!value.slice) value = []; self._dataArr.splice.apply(self._dataArr, [0, self._dataArr.length].concat(value)); }, get: function () { return self._dataArr; } } }; export default ArrayOfFragment;