Files
OfficialSite/www/assets/scripts/app.js

418 lines
26 KiB
JavaScript
Raw Normal View History

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* jshint esnext: true */
var _globals = require('./utils/globals');
var _globals2 = _interopRequireDefault(_globals);
var _modules = require('./modules');
var modules = _interopRequireWildcard(_modules);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var App = function () {
function App() {
_classCallCheck(this, App);
this.modules = modules;
this.currentModules = [];
}
/**
* Execute global functions and settings
* @return {Object}
*/
_createClass(App, [{
key: 'initGlobals',
value: function initGlobals() {
(0, _globals2.default)();
return this;
}
/**
* Find modules and initialize them
* @return {Object} this Allows chaining
*/
}, {
key: 'initModules',
value: function initModules() {
// Elements with module
var moduleEls = document.querySelectorAll('[data-module]');
// Loop through elements
var i = 0;
var elsLen = moduleEls.length;
for (; i < elsLen; i++) {
// Current element
var el = moduleEls[i];
// All data- attributes considered as options
var options = this.getElemData(el);
// Add current DOM element and jQuery element
options.el = el;
options.$el = $(el);
// Module does exist at this point
var attr = options.module;
// Splitting modules found in the data-attribute
var moduleIdents = attr.replace(/\s/g, '').split(',');
// Loop modules
var j = 0;
var modulesLen = moduleIdents.length;
for (; j < modulesLen; j++) {
var moduleAttr = moduleIdents[j];
if (typeof this.modules[moduleAttr] === 'function') {
var module = new this.modules[moduleAttr](options);
this.currentModules.push(module);
}
}
}
return this;
}
/**
* Get element data attributes
* @param {DOMElement} el
* @return {Array} data
*/
}, {
key: 'getElemData',
value: function getElemData(el) {
// All attributes
var attributes = el.attributes;
// Regex Pattern
var pattern = /^data\-(.+)$/;
// Output
var data = {};
for (var i in attributes) {
// Attributes name (ex: data-module)
var name = attributes[i].name;
// This happens.
if (!name) {
continue;
}
var match = name.match(pattern);
if (!match) {
continue;
}
// If this throws an error, you have some
// serious problems in your HTML.
data[match[1]] = el.getAttribute(name);
}
return data;
}
/**
* Initialize app after document ready
*/
}, {
key: 'init',
value: function init() {
this.initGlobals().initModules();
}
}]);
return App;
}();
$(function () {
window.app = new App();
window.app.init();
});
},{"./modules":3,"./utils/globals":8}],2:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
svg4everybody();
};
},{}],3:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Button = require('./modules/Button');
Object.defineProperty(exports, 'Button', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_Button).default;
}
});
var _Title = require('./modules/Title');
Object.defineProperty(exports, 'Title', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_Title).default;
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
},{"./modules/Button":5,"./modules/Title":6}],4:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _environment = require('../utils/environment');
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /* jshint esnext: true */
/**
* Abstract module
* Gives access to generic jQuery nodes
*/
var _class = function _class(options) {
_classCallCheck(this, _class);
this.$document = _environment.$document;
this.$window = _environment.$window;
this.$html = _environment.$html;
this.$body = _environment.$body;
this.$el = options.$el;
};
exports.default = _class;
},{"../utils/environment":7}],5:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _AbstractModule2 = require('./AbstractModule');
var _AbstractModule3 = _interopRequireDefault(_AbstractModule2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* jshint esnext: true */
var _class = function (_AbstractModule) {
_inherits(_class, _AbstractModule);
function _class(options) {
_classCallCheck(this, _class);
var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, options));
_this.$el.on('click', function (event) {
_this.$document.trigger('title.changeLabel', [$(event.currentTarget).val()]);
});
return _this;
}
_createClass(_class, [{
key: 'destroy',
value: function destroy() {
this.$el.off('.Button');
}
}]);
return _class;
}(_AbstractModule3.default);
exports.default = _class;
},{"./AbstractModule":4}],6:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _visibility = require('../utils/visibility');
var _AbstractModule2 = require('./AbstractModule');
var _AbstractModule3 = _interopRequireDefault(_AbstractModule2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* jshint esnext: true */
var _class = function (_AbstractModule) {
_inherits(_class, _AbstractModule);
function _class(options) {
_classCallCheck(this, _class);
var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, options));
_this.$label = _this.$el.find('.js-label');
_this.$document.on('title.changeLabel', function (event, value) {
_this.changeLabel(value);
});
(0, _visibility.registerDocumentHiddenCallback)(_this.logHidden);
(0, _visibility.registerDocumentVisibleCallback)(_this.logVisible);
return _this;
}
_createClass(_class, [{
key: 'logHidden',
value: function logHidden() {
console.log('Title is hidden');
}
}, {
key: 'logVisible',
value: function logVisible() {
console.log('Title is visible');
}
}, {
key: 'changeLabel',
value: function changeLabel(value) {
this.$label.text(value);
}
}, {
key: 'destroy',
value: function destroy() {
this.$document.off('title.changeLabel');
this.$el.off('.Title');
}
}]);
return _class;
}(_AbstractModule3.default);
exports.default = _class;
},{"../utils/visibility":9,"./AbstractModule":4}],7:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var $document = $(document);
var $window = $(window);
var $html = $(document.documentElement);
var $body = $(document.body);
exports.$document = $document;
exports.$window = $window;
exports.$html = $html;
exports.$body = $body;
},{}],8:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
(0, _svg2.default)();
};
var _svg = require('../global/svg');
var _svg2 = _interopRequireDefault(_svg);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
},{"../global/svg":2}],9:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.registerDocumentVisibleCallback = exports.registerDocumentHiddenCallback = undefined;
var _environment = require('../utils/environment');
var CALLBACKS = {
hidden: [],
visible: []
};
// Main event
/* jshint esnext: true */
_environment.$document.on('visibilitychange', function (event) {
if (document.hidden) {
onDocumentChange('hidden');
} else {
onDocumentChange('visible');
}
});
function registerDocumentHiddenCallback(callback) {
CALLBACKS['hidden'].push(callback);
}
function registerDocumentVisibleCallback(callback) {
CALLBACKS['visible'].push(callback);
}
function onDocumentChange(state) {
var callbacks = CALLBACKS[state];
var i = 0;
var len = callbacks.length;
for (; i < len; i++) {
callbacks[i]();
}
}
exports.registerDocumentHiddenCallback = registerDocumentHiddenCallback;
exports.registerDocumentVisibleCallback = registerDocumentVisibleCallback;
},{"../utils/environment":7}]},{},[1,2,3,4,5,6,7,8,9])
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9ncnVudC1icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJhc3NldHMvc2NyaXB0cy9BcHAuanMiLCJhc3NldHMvc2NyaXB0cy9nbG9iYWwvc3ZnLmpzIiwiYXNzZXRzL3NjcmlwdHMvbW9kdWxlcy5qcyIsImFzc2V0cy9zY3JpcHRzL21vZHVsZXMvQWJzdHJhY3RNb2R1bGUuanMiLCJhc3NldHMvc2NyaXB0cy9tb2R1bGVzL0J1dHRvbi5qcyIsImFzc2V0cy9zY3JpcHRzL21vZHVsZXMvVGl0bGUuanMiLCJhc3NldHMvc2NyaXB0cy91dGlscy9lbnZpcm9ubWVudC5qcyIsImFzc2V0cy9zY3JpcHRzL3V0aWxzL2dsb2JhbHMuanMiLCJhc3NldHMvc2NyaXB0cy91dGlscy92aXNpYmlsaXR5LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7QUNDQTs7OztBQUNBOztJQUFZOzs7Ozs7OztJQUVOO0FBQ0wsVUFESyxHQUNMLEdBQWM7d0JBRFQsS0FDUzs7QUFDYixPQUFLLE9BQUwsR0FBZSxPQUFmLENBRGE7QUFFYixPQUFLLGNBQUwsR0FBc0IsRUFBdEIsQ0FGYTtFQUFkOzs7Ozs7OztjQURLOztnQ0FVUztBQUNiLDRCQURhO0FBRWIsVUFBTyxJQUFQLENBRmE7Ozs7Ozs7Ozs7Z0NBU0E7O0FBRWIsT0FBSSxZQUFZLFNBQVMsZ0JBQVQsQ0FBMEIsZUFBMUIsQ0FBWjs7O0FBRlMsT0FLVCxJQUFJLENBQUosQ0FMUztBQU1iLE9BQUksU0FBUyxVQUFVLE1BQVYsQ0FOQTs7QUFRYixVQUFPLElBQUksTUFBSixFQUFZLEdBQW5CLEVBQXdCOzs7QUFHdkIsUUFBSSxLQUFLLFVBQVUsQ0FBVixDQUFMOzs7QUFIbUIsUUFNbkIsVUFBVSxLQUFLLFdBQUwsQ0FBaUIsRUFBakIsQ0FBVjs7O0FBTm1CLFdBU3ZCLENBQVEsRUFBUixHQUFhLEVB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