2016-04-04 21:31:15 -04:00
( 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 */
2016-05-18 23:12:36 -04:00
var _globals = require ( './utils/globals' ) ;
var _globals2 = _interopRequireDefault ( _globals ) ;
2016-04-04 21:31:15 -04:00
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 ; } }
2016-05-18 23:12:36 -04:00
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
2016-04-04 21:31:15 -04:00
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var App = function ( ) {
2016-05-18 23:12:36 -04:00
function App ( ) {
2016-04-04 21:31:15 -04:00
_classCallCheck ( this , App ) ;
this . modules = modules ;
this . currentModules = [ ] ;
}
/ * *
* Execute global functions and settings
* @ return { Object }
* /
_createClass ( App , [ {
key : 'initGlobals' ,
value : function initGlobals ( ) {
2016-05-18 23:12:36 -04:00
( 0 , _globals2 . default ) ( ) ;
2016-04-04 21:31:15 -04:00
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
2016-05-18 23:12:36 -04:00
* @ param { DOMElement } el
* @ return { Array } data
2016-04-04 21:31:15 -04:00
* /
} , {
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 ( ) ;
} ) ;
2016-05-18 23:12:36 -04:00
} , { "./modules" : 3 , "./utils/globals" : 8 } ] , 2 : [ function ( require , module , exports ) {
"use strict" ;
2016-04-04 21:31:15 -04:00
Object . defineProperty ( exports , "__esModule" , {
2016-05-18 23:12:36 -04:00
value : true
2016-04-04 21:31:15 -04:00
} ) ;
2016-05-18 23:12:36 -04:00
exports . default = function ( ) {
svg4everybody ( ) ;
} ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
} , { } ] , 3 : [ function ( require , module , exports ) {
'use strict' ;
Object . defineProperty ( exports , "__esModule" , {
value : true
2016-04-04 21:31:15 -04:00
} ) ;
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 } ; }
2016-05-18 23:12:36 -04:00
} , { "./modules/Button" : 5 , "./modules/Title" : 6 } ] , 4 : [ function ( require , module , exports ) {
2016-04-04 21:31:15 -04:00
'use strict' ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2016-05-18 23:12:36 -04:00
var _environment = require ( '../utils/environment' ) ;
2016-04-04 21:31:15 -04:00
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
2016-05-18 23:12:36 -04:00
/ * *
* Abstract module
* Gives access to generic jQuery nodes
* /
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
var AbstractModule = function AbstractModule ( options ) {
_classCallCheck ( this , AbstractModule ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
this . $document = _environment . $document ;
this . $window = _environment . $window ;
this . $html = _environment . $html ;
this . $body = _environment . $body ;
this . $el = options . $el ;
2016-04-04 21:31:15 -04:00
} ;
2016-05-18 23:12:36 -04:00
exports . default = AbstractModule ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
} , { "../utils/environment" : 7 } ] , 5 : [ function ( require , module , exports ) {
2016-04-04 21:31:15 -04:00
'use strict' ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2016-05-18 23:12:36 -04:00
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 ; } ; } ( ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
var _AbstractModule2 = require ( './AbstractModule' ) ;
var _AbstractModule3 = _interopRequireDefault ( _AbstractModule2 ) ;
2016-04-04 21:31:15 -04:00
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 ; }
2016-05-18 23:12:36 -04:00
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 */
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
var _class = function ( _AbstractModule ) {
_inherits ( _class , _AbstractModule ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
function _class ( options ) {
_classCallCheck ( this , _class ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
var _this = _possibleConstructorReturn ( this , Object . getPrototypeOf ( _class ) . call ( this , options ) ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
_this . $el . on ( 'click' , function ( event ) {
_this . $document . trigger ( 'title.changeLabel' , [ $ ( event . currentTarget ) . val ( ) ] ) ;
} ) ;
2016-04-04 21:31:15 -04:00
return _this ;
}
2016-05-18 23:12:36 -04:00
_createClass ( _class , [ {
key : 'destroy' ,
value : function destroy ( ) {
this . $el . off ( '.Button' ) ;
}
} ] ) ;
return _class ;
} ( _AbstractModule3 . default ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
exports . default = _class ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
} , { "./AbstractModule" : 4 } ] , 6 : [ function ( require , module , exports ) {
2016-04-04 21:31:15 -04:00
'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 ; } ; } ( ) ;
2016-05-18 23:12:36 -04:00
var _AbstractModule2 = require ( './AbstractModule' ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
var _AbstractModule3 = _interopRequireDefault ( _AbstractModule2 ) ;
2016-04-04 21:31:15 -04:00
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 */
2016-05-18 23:12:36 -04:00
var _class = function ( _AbstractModule ) {
_inherits ( _class , _AbstractModule ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
function _class ( options ) {
_classCallCheck ( this , _class ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
var _this = _possibleConstructorReturn ( this , Object . getPrototypeOf ( _class ) . call ( this , options ) ) ;
2016-04-04 21:31:15 -04:00
_this . $label = _this . $el . find ( '.js-label' ) ;
_this . $document . on ( 'title.changeLabel' , function ( event , value ) {
_this . changeLabel ( value ) ;
} ) ;
return _this ;
}
2016-05-18 23:12:36 -04:00
_createClass ( _class , [ {
2016-04-04 21:31:15 -04:00
key : 'changeLabel' ,
value : function changeLabel ( value ) {
this . $label . text ( value ) ;
}
} , {
key : 'destroy' ,
value : function destroy ( ) {
this . $document . off ( 'title.changeLabel' ) ;
2016-05-18 23:12:36 -04:00
this . $el . off ( '.Title' ) ;
2016-04-04 21:31:15 -04:00
}
} ] ) ;
2016-05-18 23:12:36 -04:00
return _class ;
} ( _AbstractModule3 . default ) ;
exports . default = _class ;
} , { "./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 ) ;
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
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 } ; }
2016-04-04 21:31:15 -04:00
2016-05-18 23:12:36 -04:00
} , { "../global/svg" : 2 } ] } , { } , [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] )
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9ncnVudC1icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJhc3NldHMvc2NyaXB0cy9BcHAuanMiLCJhc3NldHMvc2NyaXB0cy9nbG9iYWwvc3ZnLmpzIiwiYXNzZXRzL3NjcmlwdHMvbW9kdWxlcy5qcyIsImFzc2V0cy9zY3JpcHRzL21vZHVsZXMvQWJzdHJhY3RNb2R1bGUuanMiLCJhc3NldHMvc2NyaXB0cy9tb2R1bGVzL0J1dHRvbi5qcyIsImFzc2V0cy9zY3JpcHRzL21vZHVsZXMvVGl0bGUuanMiLCJhc3NldHMvc2NyaXB0cy91dGlscy9lbnZpcm9ubWVudC5qcyIsImFzc2V0cy9zY3JpcHRzL3V0aWxzL2dsb2JhbHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztBQ0NBOzs7O0FBQ0E7O0lBQVk7Ozs7Ozs7O0lBRU47QUFDTCxVQURLLEdBQ0wsR0FBYzt3QkFEVCxLQUNTOztBQUNiLE9BQUssT0FBTCxHQUFlLE9BQWYsQ0FEYTtBQUViLE9BQUssY0FBTCxHQUFzQixFQUF0QixDQUZhO0VBQWQ7Ozs7Ozs7O2NBREs7O2dDQVVTO0FBQ2IsNEJBRGE7QUFFYixVQUFPLElBQVAsQ0FGYTs7Ozs7Ozs7OztnQ0FTQTs7QUFFYixPQUFJLFlBQVksU0FBUyxnQkFBVCxDQUEwQixlQUExQixDQUFaOzs7QUFGUyxPQUtULElBQUksQ0FBSixDQUxTO0FBTWIsT0FBSSxTQUFTLFVBQVUsTUFBVixDQU5BOztBQVFiLFVBQU8sSUFBSSxNQUFKLEVBQVksR0FBbkIsRUFBd0I7OztBQUd2QixRQUFJLEtBQUssVUFBVSxDQUFWLENBQUw7OztBQUhtQixRQU1uQixVQUFVLEtBQUssV0FBTCxDQUFpQixFQUFqQixDQUFWOzs7QUFObUIsV0FTdkIsQ0FBUSxFQUFSLEdBQWEsRUFBYixDQVR1QjtBQVV2QixZQUFRLEdBQVIsR0FBYyxFQUFFLEVB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