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

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

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

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

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

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

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


var _ = _ACore.default._;
var $ = _ACore.default.$;
/***
 * @extends AElement
 * @constructor
 */

function RibbonSplitButton() {
  this.$icon = null;
  this._icon = null;
  this.$text = $('.as-ribbon-split-button-text', this);
  this.$primaryBtn = $('.as-ribbon-split-button-primary', this).on('click', this.eventHandler.clickPrimaryBtn);
  this.$extendBtn = $('.as-ribbon-split-button-extend', this);
  this.$extendText = $('.as-ribbon-split-button-text', this.$extendBtn); //for big style

  this._menuHolder = null;
}

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

RibbonSplitButton.render = function () {
  return _({
    extendEvent: ['press', 'select'],
    attr: {
      'tabindex': '0'
    },
    class: ['as-ribbon-split-button', 'as-no-dropdown'],
    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'
        }
      }, {
        tag: 'button',
        attr: {
          'tabindex': '-1'
        },
        class: 'as-ribbon-split-button-extend',
        child: ['span.as-ribbon-split-button-text', 'span.mdi.mdi-chevron-down.as-ribbon-dropdown-icon']
      }]
    }
  });
};

RibbonSplitButton.property = {};
RibbonSplitButton.property.items = {
  set: function (items) {
    var thisB = this;
    this._items = items || [];

    if (this._items && this._items.length > 0) {
      if (!this._menuHolder) {
        this.removeClass('as-no-dropdown');
        this._menuHolder = _QuickMenu.default.toggleWhenClick(this.$extendBtn || this, {
          getMenuProps: function () {
            return {
              extendStyle: {
                'min-width': thisB.getBoundingClientRect().width + 'px'
              },
              items: thisB._items
            };
          },
          getFlowedElement: function () {
            return thisB;
          },
          anchor: [1, 2, 6, 5],
          onSelect: function (item) {
            thisB.emit('select', {
              item: (0, _utils.cleanMenuItemProperty)(item),
              type: 'select',
              target: thisB
            });
          }
        });
      }
    } else {
      if (this._menuHolder) {
        this.addClass('as-no-dropdown');

        this._menuHolder.remove();

        this._menuHolder = null;
      }
    }
  },
  get: function () {
    return this._items;
  }
};
RibbonSplitButton.property.text = {
  set: function (value) {
    value = value || '';
    this.$text.attr('data-text', value);
    if (this.$extendText) this.$extendText.attr('data-text', value);
  },
  get: function () {
    return this.$text.attr('data-text') | '';
  }
};
RibbonSplitButton.property.icon = {
  set: function (icon) {
    icon = icon || null;
    this._icon = icon;
    if (this.$icon) this.$primaryBtn.removeChild(this.$icon);

    if (icon) {
      this.$icon = _(icon);
      this.$primaryBtn.addChildBefore(this.$icon, this.$text);
      if (this.$icon.addClass) this.$icon.addClass('as-ribbon-split-button-icon');
    } else {
      this.$icon = null;
    }
  },
  get: function () {
    return this._icon;
  }
};
RibbonSplitButton.eventHandler = {};

RibbonSplitButton.eventHandler.clickPrimaryBtn = function () {
  this.emit('press', {
    type: 'press',
    target: this,
    item: (0, _utils.cleanMenuItemProperty)(this)
  });
};

_ACore.default.install(RibbonSplitButton);

var _default = RibbonSplitButton;
exports.default = _default;

VaKeR 2022