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-acomp__js__dualselectbox__DSBModes.js
/*** module: node_modules/absol-acomp/js/dualselectbox/DSBModes.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DSBModeNormal = DSBModeNormal;
exports.DSBModeSearch = DSBModeSearch;

var _ACore = require("../../ACore");

var _utils = require("../utils");

var _noop = _interopRequireDefault(require("absol/src/Code/noop"));

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


function DSBModeNormal(elt, items) {
  this.items = items;
  this.value = [undefined, undefined];
  this.elt = elt;
  this.$lists = this.elt.$lists;
  this.$leftItems = items.map(item => this._makeLeftItem(item));
  this.$leftItemDict = this.$leftItems.reduce((ac, cr) => {
    ac[(0, _utils.keyStringOf)(cr.itemData.value)] = cr;
    return ac;
  }, {});
  this.$rightItemDict = {};
  this.$rightItems = [];
  this.rightListDict = {};

  if (items.length > 0) {
    this.viewRight(items[0].value);
  }

  this.$selectedLeft = null;
  this.$selectedRight = null;
}

DSBModeNormal.prototype._makeLeftItem = function (item) {
  var self = this;
  var itemElt = (0, _ACore._)({
    class: 'absol-selectlist-item',
    attr: {
      'data-key': (0, _utils.keyStringOf)(item.value)
    },
    child: {
      tag: 'span',
      class: 'absol-selectlist-item-text',
      child: {
        text: item.text
      }
    },
    on: {
      click: function () {
        self.selectLeft(item.value);
        self.viewToSelected();
        self.elt.notifyChange();
      }
    }
  });
  itemElt.itemData = item;
  return itemElt;
};

DSBModeNormal.prototype._makeRightItem = function (leftItem, item) {
  var self = this;
  var itemElt = (0, _ACore._)({
    class: 'absol-selectlist-item',
    attr: {
      'data-key': (0, _utils.keyStringOf)(item.value)
    },
    child: {
      tag: 'span',
      class: 'absol-selectlist-item-text',
      child: {
        text: item.text
      }
    },
    on: {
      click: function () {
        self.selectLeft(leftItem.value);
        self.selectRight(item.value);
        self.elt.notifyChange();
      }
    }
  });
  itemElt.itemData = item;
  return itemElt;
};

DSBModeNormal.prototype.selectLeft = function (leftValue) {
  var itemElt = this.$leftItemDict[(0, _utils.keyStringOf)(leftValue)];
  if (!itemElt) return false;
  if (this.$selectedLeft === itemElt) return true;

  if (this.$selectedLeft) {
    this.$selectedLeft.removeClass('as-selected');
    this.$selectedLeft = null;
  }

  itemElt.addClass('as-selected');
  this.$selectedLeft = itemElt;
  this.value[0] = leftValue;
  this.viewRight(leftValue);
  var ok = this.selectRight(this.value[1]);
  var sItems;

  if (!ok) {
    sItems = itemElt.itemData.items;
    if (sItems && sItems.length > 0) this.selectRight(sItems[0].value);
  }

  return true;
};

DSBModeNormal.prototype.viewRight = function (leftValue) {
  var key = (0, _utils.keyStringOf)(leftValue);
  var holder = this.rightListDict[key];
  var items;
  var leftItem;

  if (!holder) {
    leftItem = this.$leftItemDict[key] && this.$leftItemDict[key].itemData;
    items = leftItem && leftItem.items;

    if (items) {
      holder = {};
      holder.list = items.map(sItem => this._makeRightItem(leftItem, sItem));
      holder.dict = holder.list.reduce((ac, cr) => {
        ac[(0, _utils.keyStringOf)(cr.itemData.value)] = cr;
        return ac;
      }, {});
      this.rightListDict[key] = holder;
    }
  }

  if (holder) {
    if (this.$rightItems !== holder.list) {
      this.$rightItems = holder.list;
      this.$rightItemDict = holder.dict;
      this.$lists[1].clearChild().addChild(this.$rightItems);
    }
  } else {
    this.$lists[1].clearChild();
    this.$rightItems = null;
    this.$rightItemDict = {};
  }
};

DSBModeNormal.prototype.selectRight = function (value) {
  var itemElt = this.$rightItemDict[(0, _utils.keyStringOf)(value)];
  if (!itemElt) return false;
  if (this.$selectedRight === itemElt) return true;

  if (this.$selectedRight) {
    this.$selectedRight.removeClass('as-selected');
    this.$selectedRight = null;
  }

  itemElt.addClass('as-selected');
  this.$selectedRight = itemElt;
  this.value[1] = value;
  return true;
};

DSBModeNormal.prototype.onStart = function () {
  this.$lists[0].clearChild().addChild(this.$leftItems);
  this.$lists[1].clearChild().addChild(this.$rightItems);
  this.viewToSelected();
};

DSBModeNormal.prototype.onStop = _noop.default;

DSBModeNormal.prototype.setValue = function (value, strictValue) {
  if (!(value instanceof Array)) {
    value = [undefined, undefined];
  }

  while (value.length < 2) {
    value.push(undefined);
  }

  while (value.length > 2) value.pop();

  var leftOK = this.selectLeft(value[0]);

  if (!leftOK && strictValue) {
    if (this.items.length > 0) {
      leftOK = this.selectLeft(this.items[0].value);
    }
  }

  if (leftOK) this.viewRight(this.value[0]);
  var rightOK = this.selectRight(value[1]);

  if (!rightOK && strictValue) {
    if (this.$selectedLeft && this.$selectedLeft.itemData.items && this.$selectedLeft.itemData.items.length > 0) {
      rightOK = this.selectRight(this.$selectedLeft.itemData.items[0].value);
    }
  }

  this.viewToSelected();
};

DSBModeNormal.prototype.getValue = function (strictValue) {
  var value = this.value.slice();
  if (!strictValue) return value;

  if (!this.$leftItemDict[(0, _utils.keyStringOf)(value[0])]) {
    value[0] = this.items[0] && this.items[0].value;
  }

  var rightHolder = this.rightListDict[(0, _utils.keyStringOf)(value[0])];

  if (rightHolder) {
    if (!rightHolder.dict[(0, _utils.keyStringOf)(value[1])]) {
      if (rightHolder.list.length > 0) {
        value[1] = rightHolder.list[0].itemData.value;
      }
    }
  }

  return value;
};

DSBModeNormal.prototype.getSelectedItem = function () {
  var value = this.value.slice();
  var item = [null, null];

  if (this.$leftItemDict[(0, _utils.keyStringOf)(value[0])]) {
    item[0] = this.$leftItemDict[(0, _utils.keyStringOf)(value[0])].itemData;
  }

  var rightHolder = this.rightListDict[(0, _utils.keyStringOf)(value[0])];

  if (rightHolder) {
    if (rightHolder.dict[(0, _utils.keyStringOf)(value[1])]) {
      item[1] = rightHolder.dict[(0, _utils.keyStringOf)(value[1])].itemData;
    }
  }

  return item;
};

DSBModeNormal.prototype.viewToSelected = function () {
  setTimeout(() => {
    if (this.$selectedLeft) {
      (0, _utils.vScrollIntoView)(this.$selectedLeft);
    }

    if (this.$selectedRight) {
      (0, _utils.vScrollIntoView)(this.$selectedRight);
    }
  }, 50);
};
/***
 * @extends DSBModeNormal
 * @param elt
 * @param items
 * @constructor
 */


function DSBModeSearch(elt, items) {
  DSBModeNormal.apply(this, arguments);
}

_OOP.default.mixClass(DSBModeSearch, DSBModeNormal);

delete DSBModeSearch.prototype.getValue;
delete DSBModeSearch.prototype.setValue;

DSBModeSearch.prototype.onStart = function () {
  DSBModeNormal.prototype.onStart.call(this);
  this.$lists[0].scrollTop = 0;
  this.$lists[1].scrollTop = 0;

  if (this.$selectedLeft) {
    this.$selectedLeft.removeClass('as-selected');
    this.$selectedLeft = null;
  }

  if (this.$selectedRight) {
    this.$selectedRight.removeClass('as-selected');
    this.$selectedRight = null;
  }
};

DSBModeSearch.prototype.updateSelectedFromRef = function () {
  var normalMode = this.elt.modes.normal;

  if (normalMode.$selectedLeft) {
    this.selectLeft(normalMode.$selectedLeft.itemData.value, true);
  }

  if (normalMode.$selectedRight) {
    this.selectRight(normalMode.$selectedRight.itemData.value, true);
  }
};

DSBModeSearch.prototype.selectLeft = function (leftValue, viewOnly) {
  if (!viewOnly) this.elt.modes.normal.selectLeft(leftValue);
  var itemElt = this.$leftItemDict[(0, _utils.keyStringOf)(leftValue)];
  if (this.$selectedLeft === itemElt) return true;

  if (this.$selectedLeft) {
    this.$selectedLeft.removeClass('as-selected');
    this.$selectedLeft = null;
  }

  if (!itemElt) return false;
  itemElt.addClass('as-selected');
  this.$selectedLeft = itemElt;
  this.viewRight(leftValue);
  var sItems = itemElt.itemData.items;
  if (sItems && sItems.length > 0 && !viewOnly) this.selectRight(sItems[0].value);
  return true;
};

DSBModeSearch.prototype.selectRight = function (value, viewOnly) {
  if (!viewOnly) this.elt.modes.normal.selectRight(value);
  var itemElt = this.$rightItemDict[(0, _utils.keyStringOf)(value)];
  if (this.$selectedRight === itemElt) return true;

  if (this.$selectedRight) {
    this.$selectedRight.removeClass('as-selected');
    this.$selectedRight = null;
  }

  if (!itemElt) return false;
  itemElt.addClass('as-selected');
  this.$selectedRight = itemElt;
  return true;
};

VaKeR 2022