123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- (function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define('/Section/GridMenu', ['exports', 'jquery', 'Component'], factory);
- } else if (typeof exports !== "undefined") {
- factory(exports, require('jquery'), require('Component'));
- } else {
- var mod = {
- exports: {}
- };
- factory(mod.exports, global.jQuery, global.Component);
- global.SectionGridMenu = mod.exports;
- }
- })(this, function (exports, _jquery, _Component2) {
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var _jquery2 = babelHelpers.interopRequireDefault(_jquery);
- var _Component3 = babelHelpers.interopRequireDefault(_Component2);
- var $BODY = (0, _jquery2.default)('body');
- var $HTML = (0, _jquery2.default)('html');
- var Scrollable = function () {
- function Scrollable($el) {
- babelHelpers.classCallCheck(this, Scrollable);
- this.$el = $el;
- this.api = null;
- this.init();
- }
- babelHelpers.createClass(Scrollable, [{
- key: 'init',
- value: function init() {
- this.api = this.$el.asScrollable({
- namespace: 'scrollable',
- skin: 'scrollable-inverse',
- direction: 'vertical',
- contentSelector: '>',
- containerSelector: '>'
- }).data('asScrollable');
- }
- }, {
- key: 'update',
- value: function update() {
- if (this.api) {
- this.api.update();
- }
- }
- }, {
- key: 'enable',
- value: function enable() {
- if (!this.api) {
- this.init();
- }
- if (this.api) {
- this.api.enable();
- }
- }
- }, {
- key: 'disable',
- value: function disable() {
- if (this.api) {
- this.api.disable();
- }
- }
- }]);
- return Scrollable;
- }();
- var GridMenu = function (_Component) {
- babelHelpers.inherits(GridMenu, _Component);
- function GridMenu() {
- var _ref;
- babelHelpers.classCallCheck(this, GridMenu);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- var _this = babelHelpers.possibleConstructorReturn(this, (_ref = GridMenu.__proto__ || Object.getPrototypeOf(GridMenu)).call.apply(_ref, [this].concat(args)));
- _this.isOpened = false;
- _this.scrollable = new Scrollable(_this.$el);
- return _this;
- }
- babelHelpers.createClass(GridMenu, [{
- key: 'open',
- value: function open() {
- this.animate(function () {
- this.$el.addClass('active');
- (0, _jquery2.default)('[data-toggle="gridmenu"]').addClass('active').attr('aria-expanded', true);
- $BODY.addClass('site-gridmenu-active');
- $HTML.addClass('disable-scrolling');
- }, function () {
- this.scrollable.enable();
- });
- this.isOpened = true;
- }
- }, {
- key: 'close',
- value: function close() {
- this.animate(function () {
- this.$el.removeClass('active');
- (0, _jquery2.default)('[data-toggle="gridmenu"]').addClass('active').attr('aria-expanded', true);
- $BODY.removeClass('site-gridmenu-active');
- $HTML.removeClass('disable-scrolling');
- }, function () {
- this.scrollable.disable();
- });
- this.isOpened = false;
- }
- }, {
- key: 'toggle',
- value: function toggle(opened) {
- if (opened) {
- this.open();
- } else {
- this.close();
- }
- }
- }, {
- key: 'animate',
- value: function animate(doing, callback) {
- var _this2 = this;
- doing.call(this);
- this.$el.trigger('changing.site.gridmenu');
- setTimeout(function () {
- callback.call(_this2);
- _this2.$el.trigger('changed.site.gridmenu');
- }, 500);
- }
- }]);
- return GridMenu;
- }(_Component3.default);
- exports.default = GridMenu;
- });
|