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__components__EditableArrayOfFragment.js
/*** module: node_modules/absol-form/js/components/EditableArrayOfFragment.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _ScalableComponent = _interopRequireDefault(require("../core/ScalableComponent"));

var _OOP = _interopRequireDefault(require("absol/src/HTML5/OOP"));

var _FCore = require("../core/FCore");

var _Assembler = require("../core/Assembler");

var _ArrayOfFragment = _interopRequireDefault(require("./ArrayOfFragment"));

var _FlexiconButton = _interopRequireDefault(require("absol-acomp/js/FlexiconButton"));

require("../../css/editablearrayoffragment.css");

var _inheritComponentClass = _interopRequireDefault(require("../core/inheritComponentClass"));


/***
 * @extends ArrayOfFragment
 * @constructor
 */
function EditableArrayOfFragment() {
  _ArrayOfFragment.default.call(this);

  this.fragments = [];

  this._makeArray();
}

(0, _inheritComponentClass.default)(EditableArrayOfFragment, _ArrayOfFragment.default);
EditableArrayOfFragment.prototype.tag = "EditableArrayOfFragment";
EditableArrayOfFragment.prototype.menuIcon = "span.mdi.mdi-tray-full";

EditableArrayOfFragment.prototype.render = function () {
  return (0, _FCore._)({
    class: 'as-editable-array-of-fragment',
    child: ['.as-editable-array-of-fragment-item-list', {
      class: 'as-editable-array-of-fragment-bottom',
      child: [{
        tag: _FlexiconButton.default.tag,
        props: {
          text: 'LanguageModule' in window ? LanguageModule.text('txt_add') : 'Add'
        }
      }]
    }]
  });
};

EditableArrayOfFragment.prototype.onCreated = function () {
  this.$list = (0, _FCore.$)('.as-editable-array-of-fragment-item-list', this.domElt);
  this.$addBtn = (0, _FCore.$)('.as-editable-array-of-fragment-bottom .as-flexicon-button', this.domElt).on('click', this.addNewRow.bind(this));

  _ArrayOfFragment.default.prototype.onCreated.call(this);
};

EditableArrayOfFragment.prototype.getAttributeItemFragmentClassDescriptor = function () {
  return {
    type: 'fragmentClass'
  };
};

EditableArrayOfFragment.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)));
    self.notifyChange();
    return arguments.length;
  };

  var oUnShift = this._dataArr.unshift;

  this._dataArr.unshift = function () {
    var newItems = Array.prototype.slice.call(arguments);
    self.notifyChange();
    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 deleteCount;
    var addedItems;
    if (arguments.length < 1) start = 0;else start = arguments[0];
    if (start < 0) start = this.length - start;
    start = Math.max(0, start);
    if (arguments.length < 2) deleteCount = this.length - start;else deleteCount = arguments[1];
    if (deleteCount < 0) deleteCount = 0;
    deleteCount = Math.min(deleteCount, this.length - start);
    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 = _Assembler.AssemblerInstance.buildFragment({
        class: className
      });

      frag.props = item;
      return frag;
    });
    var endCtnElt = self.fragments[start + deleteCount] && self.fragments[start + deleteCount].domElt.parentElement;
    var removedFragments = self.fragments.splice.apply(self.fragments, [start, deleteCount].concat(newFragments));
    removedFragments.forEach(function (frg) {
      self.fragment.removeChild(frg);
      frg.domElt.parentElement.remove();
    });
    newFragments.forEach(function (frg) {
      self.fragment.addChild(frg);
      var itemCtn = (0, _FCore._)({
        class: 'as-editable-array-of-fragment-item',
        child: [frg.domElt, {
          class: ['as-editable-array-of-fragment-remove-btn-ctn'],
          child: {
            tag: 'button',
            class: 'as-from-tool-button',
            child: 'span.mdi.mdi-delete',
            on: {
              click: function () {
                var eventData = {};
                eventData.type = 'cmd_remove_row';

                var idx = self._dataArr.indexOf(frg.props);

                eventData.rowIdx = idx;
                eventData.accepted = true;

                eventData.accept = function (isAccepted) {
                  this.accepted = isAccepted;
                };

                self.emit(eventData.type, eventData, self);

                if (eventData.accepted && eventData.accepted.then) {
                  eventData.accepted.then(function (isAccept) {
                    if (isAccept) {
                      if (idx >= 0) self._dataArr.splice(idx, 1);
                    }
                  });
                } else if (eventData.accepted) {
                  if (idx >= 0) self._dataArr.splice(idx, 1);
                }
              }
            }
          }
        }]
      });
      if (endCtnElt) self.$list.addChildBefore(itemCtn, endCtnElt);else self.$list.addChild(itemCtn);
    });
    var newBindItems = newFragments.map(function (frg) {
      return frg.props;
    });
    self.notifyChange();
    return Array.prototype.splice.apply(this, [start, deleteCount].concat(newBindItems));
  };
};

EditableArrayOfFragment.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;
    }
  };
};

EditableArrayOfFragment.prototype.addNewRow = function () {
  var eventData = {};
  eventData.type = 'cmd_insert_row';
  eventData.rowIdx = this._dataArr.length;
  eventData.result = {};

  eventData.resolve = function (result) {
    this.result = result;
  };

  var self = this;
  self.emit(eventData.type, eventData, self);

  if (eventData.result) {
    if (eventData.result.then) {
      eventData.result.then(function (result) {
        if (result) {
          self._dataArr.push(result);
        }
      });
    } else {
      self._dataArr.push(eventData.result);
    }
  }
};

_Assembler.AssemblerInstance.addClass(EditableArrayOfFragment);

var _default = EditableArrayOfFragment;
exports.default = _default;

VaKeR 2022