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-vchart__src__BarStackChart.js
/*** module: node_modules/absol-vchart/src/BarStackChart.js ***/
"use strict";

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

require("./style/barstackchart.css");

var _VCore = _interopRequireDefault(require("./VCore"));

var _GContainer = _interopRequireDefault(require("absol-svg/js/svg/GContainer"));

var _SvgCanvas = _interopRequireDefault(require("absol-svg/js/svg/SvgCanvas"));

var _DomSignal = _interopRequireDefault(require("absol/src/HTML5/DomSignal"));

var _helper = require("./helper");

var _Color = _interopRequireDefault(require("absol/src/Color/Color"));

var _BChart = require("./BChart");

var _Object = require("absol/src/DataStructure/Object");

var _utils = require("absol-acomp/js/utils");

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


var _ = _VCore.default._;
var $ = _VCore.default.$;
/***
 * @extends SvgCanvas
 * @constructor
 */

function BarStackChart() {
  this._contentMargin = 5;
  /***
   *
   * @type {GContainer}
   */

  this.$content = $('.vc-bar-stack-content', this);
  this.$content.box.setPosition(40, 5);
  /***
   *
   * @type {GContainer}
   */

  this.$noteCtn = $('.vc-bar-stack-note-ctn', this);
  /***
   *
   * @type {GContainer}
   */

  this.$stack = $('.vc-bar-stack', this);
  this.domSignal = new _DomSignal.default($('sattachhook.vc-dom-signal', this));
  this.domSignal.on('_updateContentPosition', this.updateContentPosition.bind(this)).on('updateContent', this.updateContent.bind(this));
  this.blocks = [];
  this.$blocks = [];
  this.$notes = [];
  this.domSignal.emit('updateContent');
  this.resizeCtrl = new _BChart.ChartResizeController(this);
  (0, _Object.observePropertyChanges)(this, ['blocks'], () => {
    this.domSignal.emit('updateContent');
  });
}

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

BarStackChart.render = function () {
  return _({
    tag: 'svgcanvas',
    class: ['vc-bar-stack-chart', 'base-chart'],
    child: [{
      tag: 'gcontainer',
      class: 'vc-bar-stack-content',
      child: [{
        tag: 'gcontainer',
        class: 'vc-bar-stack-note-ctn'
      }, {
        tag: 'gcontainer',
        class: 'vc-bar-stack'
      }]
    }, 'sattachhook.vc-dom-signal']
  });
};

BarStackChart.prototype.revokeResource = function () {
  (0, _Object.unobservePropertyChanges)(this, ['blocks']);
  (0, _utils.revokeResource)(this.resizeCtrl);
  this.revokeResource = _noop.default;

  while (this.lastChild) {
    (0, _utils.revokeResource)(this.lastChild);
    this.lastChild.remove();
  }
};

BarStackChart.prototype.normalizeData = function () {
  var blockColor = (0, _helper.generateBackgroundColors)(this.blocks.length);
  var sum = this.blocks.reduce(function (ac, cr) {
    return ac + cr.value;
  }, 0);
  this.blocks.forEach(function (block, i) {
    block.color = block.color || blockColor[i];
    block.percent = block.percent || block.value * 100 / sum;
  });
};

BarStackChart.prototype.updateSize = function () {
  _SvgCanvas.default.prototype.updateSize.call(this);

  this.updateContentPosition();
};
/***
 *
 * @param block
 * @returns {GContainer}
 * @private
 */


BarStackChart.prototype._makeNote = function (block) {
  var noteElt = _({
    tag: 'gcontainer',
    class: 'vc-bar-stack-note',
    child: [{
      tag: 'text',
      class: 'vc-bar-stack-note-name',
      style: {
        fill: block.color + ''
      },
      attr: {
        y: 15,
        x: 0
      },
      child: {
        text: block.name
      }
    }, {
      tag: 'text',
      class: 'vc-bar-stack-note-desc'
    }]
  });

  noteElt.$name = $('.vc-bar-stack-note-name', this);
  noteElt.$desc = $('.vc-bar-stack-note-desc', this);
  return noteElt;
};
/***
 *
 * @param block
 * @returns {GContainer}
 * @private
 */


BarStackChart.prototype._makeBlock = function (block) {
  var valueColor = _Color.default.parse(block.color + '').getContrastYIQ();

  var percenColor = valueColor.clone();
  percenColor.rgba[0] = (percenColor.rgba[0] + Math.sqrt(0.5)) / 2;
  percenColor.rgba[1] = (percenColor.rgba[1] + Math.sqrt(0.5)) / 2;
  percenColor.rgba[2] = (percenColor.rgba[2] + Math.sqrt(0.5)) / 2;

  var blockElt = _({
    tag: 'gcontainer',
    class: 'vc-bar-stack-block',
    child: [{
      tag: 'rect',
      class: 'vc-bar-stack-block-rect',
      style: {
        fill: block.color
      },
      attr: {
        x: -250,
        y: 0,
        width: 500,
        height: 10
      }
    }, {
      tag: 'text',
      class: 'vc-bar-stack-block-value',
      attr: {
        y: 25
      },
      style: {
        fill: valueColor + ''
      },
      child: {
        text: block.value
      }
    }, {
      tag: 'text',
      class: 'vc-bar-stack-block-percent',
      attr: {
        y: 55
      },
      style: {
        fill: percenColor + ''
      },
      child: {
        text: block.percent.toFixed(1) + '%'
      }
    }]
  });

  blockElt.$rect = $('.vc-bar-stack-block-rect', blockElt);
  return blockElt;
};

BarStackChart.prototype._createNote = function () {
  var thisC = this;
  this.$noteCtn.clearChild();
  this.$notes = this.blocks.map(function (block) {
    var noteElt = thisC._makeNote(block);

    thisC.$noteCtn.addChild(noteElt);
    return noteElt;
  });
};

BarStackChart.prototype._createStack = function () {
  var thisC = this;
  this.$stack.clearChild();
  this.$blocks = this.blocks.map(function (block) {
    var blockElt = thisC._makeBlock(block);

    thisC.$stack.addChild(blockElt);
    return blockElt;
  });
};

BarStackChart.prototype.createContent = function () {
  this.normalizeData();

  this._createNote();

  this._createStack();
};

BarStackChart.prototype.updateContentPosition = function () {
  if (!this.isDescendantOf(document.body)) {
    this.emit('_updateContentPosition');
    return;
  }

  this.$content.box.setPosition(this._contentMargin, 40);
  this.$content.box.setSize(this.box.width - 2 * this._contentMargin, this.box.height - this._contentMargin - 40);

  this._updateNotePosition();

  this._updateStackPosition();
};

BarStackChart.prototype._updateNotePosition = function () {
  var thisC = this;
  var noteCtnBox = this.$noteCtn.getBBox();
  this.$noteCtn.box.setSize(noteCtnBox.width, this.$content.box.height);
  this.$noteCtn.box.setPosition(this.$content.box.width - noteCtnBox.width, 0);
  var dy = this.$noteCtn.box.height / this.blocks.length;
  this.$notes.forEach(function (noteElt, i) {
    noteElt.box.y = dy * i + dy / 2 - 7;
  });
};

BarStackChart.prototype._updateStackPosition = function () {
  var thisC = this;
  this.$stack.box.setSize(this.$content.box.width - this.$noteCtn.box.width - 20, this.$content.box.height);
  this.$stack.box.x = this.$stack.box.width / 2; //to center

  var dy = this.$noteCtn.box.height / this.blocks.length;
  var width = this.$stack.box.width;
  var maxValue = this.blocks.reduce(function (ac, cr) {
    return Math.max(ac, cr.value);
  }, 0);
  this.$blocks.forEach(function (blockElt, i) {
    var block = thisC.blocks[i];
    blockElt.box.y = dy * i;
    blockElt.$rect.attr({
      height: dy,
      width: block.value / maxValue * width,
      x: -block.value / maxValue * width / 2
    });
  });
};

BarStackChart.prototype.updateContent = function () {
  this.createContent();
  this.updateContentPosition();
};

_VCore.default.install(BarStackChart);

var _default = BarStackChart;
exports.default = _default;

VaKeR 2022