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

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

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

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

var _QuickMenu = _interopRequireDefault(require("./QuickMenu"));

var _AElement = _interopRequireDefault(require("absol/src/HTML5/AElement"));




/***
 * @extends AElement
 * @constructor
 */
function PathMenu() {
  this._path = [];
  this.$items = [];
}

PathMenu.tag = 'PathMenu'.toLowerCase();

PathMenu.render = function () {
  return (0, _ACore._)({
    attr: {
      tabindex: '1'
    },
    extendEvent: ['press', 'change'],
    class: 'as-path-menu'
  });
};

PathMenu.prototype._makeItem = function (data, idx) {
  var self = this;
  var button = (0, _ACore._)({
    class: ['as-ribbon-split-button', 'as-path-menu-item'],
    child: {
      class: 'as-ribbon-split-button-content',
      child: [{
        tag: 'button',
        attr: {
          'tabindex': '-1'
        },
        class: 'as-ribbon-split-button-primary',
        child: {
          tag: 'span',
          class: 'as-ribbon-split-button-text',
          child: {
            text: (data.name || data.text || '') + ''
          }
        }
      }, {
        tag: 'button',
        attr: {
          'tabindex': '-1'
        },
        class: 'as-ribbon-split-button-extend',
        child: ['span.mdi.mdi-chevron-right']
      }]
    }
  });
  button.on('mouseenter', function () {
    if (document.activeElement && _AElement.default.prototype.isDescendantOf.call(document.activeElement, self) && self.hasClass('as-opening-item')) {
      if (button.quickMenu) button.quickMenu.open();
    }
  });
  var extendIconElt = (0, _ACore.$)('.as-ribbon-split-button-extend .mdi', button);
  var primaryBtn = (0, _ACore.$)('.as-ribbon-split-button-primary', button).on('click', function () {
    self.emit('press', {
      target: self,
      pathItem: data,
      index: idx
    }, self);
  }); //as-ribbon-split-button-icon

  var icon = null;

  if (data.icon) {
    icon = (0, _ACore._)(data.icon);
  } else if (data.iconSrc) {
    icon = (0, _ACore._)({
      tag: 'img',
      props: {
        src: data.iconSrc
      }
    });
  }

  if (icon) {
    if (icon.parentElement) icon = (0, _ACore.$)(icon.cloneNode(true));
    icon.addClass('as-ribbon-split-button-icon');
    primaryBtn.addChildBefore(icon, primaryBtn.firstChild);
  }

  var quickTrigger = (0, _ACore.$)('.as-ribbon-split-button-extend', button);

  if (data.items && data.items.length > 0) {
    button.quickMenu = _QuickMenu.default.toggleWhenClick(quickTrigger, {
      getMenuProps: function () {
        return {
          items: data.items.map(function (it, menuIndex) {
            if (typeof it === "string") return it;

            if (typeof it === "object") {
              if (it.icon || it.iconSrc || it.name || it.text) {
                return {
                  text: it.name || it.text,
                  menuIndex: menuIndex,
                  icon: it.iconSrc ? {
                    tag: 'img',
                    props: {
                      src: it.iconSrc
                    }
                  } : it.icon || undefined,
                  extendStyle: it.extendStyle || {},
                  extendClass: it.extendClass || []
                };
              }
            }

            return it;
          })
        };
      },
      anchor: [1, 6, 0, 7],
      onOpen: function () {
        self.addClass('as-opening-item');
        extendIconElt.addClass('mdi-rotate-90');
      },
      onClose: function () {
        self.removeClass('as-opening-item');
        extendIconElt.removeClass('mdi-rotate-90');
      },
      onSelect: function (item) {
        var dataItem = data.items[item.menuIndex];
        self.emit('change', {
          target: self,
          pathItem: data,
          item: dataItem,
          index: idx
        }, self);
        button.removeClass('as-open');
      }
    });
  } else {
    button.addClass('as-has-no-item');
  }

  return button;
};

PathMenu.property = {};
PathMenu.property.path = {
  set: function (path) {
    this._path = path || [];
    this.$items.forEach(elt => elt.remove());
    this.$items = this._path.map((it, i) => this._makeItem(it, i));
    this.addChild(this.$items);
  },
  get: function () {
    return this._path;
  }
};

_ACore.default.install(PathMenu);

var _default = PathMenu;
exports.default = _default;

VaKeR 2022