UNPKG

chimee-helper-events

Version:
1,448 lines (1,218 loc) 44.2 kB
/** * chimee-helper-events v0.1.0 * (c) 2017 toxic-johann * Released under MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.chimeeHelperEvents = global.chimeeHelperEvents || {}))); }(this, (function (exports) { 'use strict'; function unwrapExports (x) { return x && x.__esModule ? x['default'] : x; } function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } // 7.1.4 ToInteger var ceil = Math.ceil; var floor = Math.floor; var _toInteger = function(it){ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; // 7.2.1 RequireObjectCoercible(argument) var _defined = function(it){ if(it == undefined)throw TypeError("Can't call method on " + it); return it; }; // true -> String#at // false -> String#codePointAt var _stringAt = function(TO_STRING){ return function(that, pos){ var s = String(_defined(that)) , i = _toInteger(pos) , l = s.length , a, b; if(i < 0 || i >= l)return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; var _library = true; var _global = createCommonjsModule(function (module) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef }); var _core = createCommonjsModule(function (module) { var core = module.exports = {version: '2.4.0'}; if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef }); var _aFunction = function(it){ if(typeof it != 'function')throw TypeError(it + ' is not a function!'); return it; }; // optional / simple context binding var _ctx = function(fn, that, length){ _aFunction(fn); if(that === undefined)return fn; switch(length){ case 1: return function(a){ return fn.call(that, a); }; case 2: return function(a, b){ return fn.call(that, a, b); }; case 3: return function(a, b, c){ return fn.call(that, a, b, c); }; } return function(/* ...args */){ return fn.apply(that, arguments); }; }; var _isObject = function(it){ return typeof it === 'object' ? it !== null : typeof it === 'function'; }; var _anObject = function(it){ if(!_isObject(it))throw TypeError(it + ' is not an object!'); return it; }; var _fails = function(exec){ try { return !!exec(); } catch(e){ return true; } }; // Thank's IE8 for his funny defineProperty var _descriptors = !_fails(function(){ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; }); var document$1 = _global.document; var is = _isObject(document$1) && _isObject(document$1.createElement); var _domCreate = function(it){ return is ? document$1.createElement(it) : {}; }; var _ie8DomDefine = !_descriptors && !_fails(function(){ return Object.defineProperty(_domCreate('div'), 'a', {get: function(){ return 7; }}).a != 7; }); // 7.1.1 ToPrimitive(input [, PreferredType]) // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string var _toPrimitive = function(it, S){ if(!_isObject(it))return it; var fn, val; if(S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it)))return val; if(typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it)))return val; if(!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it)))return val; throw TypeError("Can't convert object to primitive value"); }; var dP = Object.defineProperty; var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes){ _anObject(O); P = _toPrimitive(P, true); _anObject(Attributes); if(_ie8DomDefine)try { return dP(O, P, Attributes); } catch(e){ /* empty */ } if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); if('value' in Attributes)O[P] = Attributes.value; return O; }; var _objectDp = { f: f }; var _propertyDesc = function(bitmap, value){ return { enumerable : !(bitmap & 1), configurable: !(bitmap & 2), writable : !(bitmap & 4), value : value }; }; var _hide = _descriptors ? function(object, key, value){ return _objectDp.f(object, key, _propertyDesc(1, value)); } : function(object, key, value){ object[key] = value; return object; }; var PROTOTYPE = 'prototype'; var $export = function(type, name, source){ var IS_FORCED = type & $export.F , IS_GLOBAL = type & $export.G , IS_STATIC = type & $export.S , IS_PROTO = type & $export.P , IS_BIND = type & $export.B , IS_WRAP = type & $export.W , exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {}) , expProto = exports[PROTOTYPE] , target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] : (_global[name] || {})[PROTOTYPE] , key, own, out; if(IS_GLOBAL)source = name; for(key in source){ // contains in native own = !IS_FORCED && target && target[key] !== undefined; if(own && key in exports)continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? _ctx(out, _global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function(C){ var F = function(a, b, c){ if(this instanceof C){ switch(arguments.length){ case 0: return new C; case 1: return new C(a); case 2: return new C(a, b); } return new C(a, b, c); } return C.apply(this, arguments); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% if(IS_PROTO){ (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% if(type & $export.R && expProto && !expProto[key])_hide(expProto, key, out); } } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` var _export = $export; var _redefine = _hide; var hasOwnProperty = {}.hasOwnProperty; var _has = function(it, key){ return hasOwnProperty.call(it, key); }; var _iterators = {}; var toString = {}.toString; var _cof = function(it){ return toString.call(it).slice(8, -1); }; // fallback for non-array-like ES3 and non-enumerable old V8 strings var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function(it){ return _cof(it) == 'String' ? it.split('') : Object(it); }; // to indexed object, toObject with fallback for non-array-like ES3 strings var _toIobject = function(it){ return _iobject(_defined(it)); }; // 7.1.15 ToLength var min = Math.min; var _toLength = function(it){ return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; var max = Math.max; var min$1 = Math.min; var _toIndex = function(index, length){ index = _toInteger(index); return index < 0 ? max(index + length, 0) : min$1(index, length); }; // false -> Array#indexOf // true -> Array#includes var _arrayIncludes = function(IS_INCLUDES){ return function($this, el, fromIndex){ var O = _toIobject($this) , length = _toLength(O.length) , index = _toIndex(fromIndex, length) , value; // Array#includes uses SameValueZero equality algorithm if(IS_INCLUDES && el != el)while(length > index){ value = O[index++]; if(value != value)return true; // Array#toIndex ignores holes, Array#includes - not } else for(;length > index; index++)if(IS_INCLUDES || index in O){ if(O[index] === el)return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; var SHARED = '__core-js_shared__'; var store = _global[SHARED] || (_global[SHARED] = {}); var _shared = function(key){ return store[key] || (store[key] = {}); }; var id = 0; var px = Math.random(); var _uid = function(key){ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; var shared = _shared('keys'); var _sharedKey = function(key){ return shared[key] || (shared[key] = _uid(key)); }; var arrayIndexOf = _arrayIncludes(false); var IE_PROTO$1 = _sharedKey('IE_PROTO'); var _objectKeysInternal = function(object, names){ var O = _toIobject(object) , i = 0 , result = [] , key; for(key in O)if(key != IE_PROTO$1)_has(O, key) && result.push(key); // Don't enum bug & hidden keys while(names.length > i)if(_has(O, key = names[i++])){ ~arrayIndexOf(result, key) || result.push(key); } return result; }; // IE 8- don't enum bug keys var _enumBugKeys = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); // 19.1.2.14 / 15.2.3.14 Object.keys(O) var _objectKeys = Object.keys || function keys(O){ return _objectKeysInternal(O, _enumBugKeys); }; var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties){ _anObject(O); var keys = _objectKeys(Properties) , length = keys.length , i = 0 , P; while(length > i)_objectDp.f(O, P = keys[i++], Properties[P]); return O; }; var _html = _global.document && document.documentElement; // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var IE_PROTO = _sharedKey('IE_PROTO'); var Empty = function(){ /* empty */ }; var PROTOTYPE$1 = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function(){ // Thrash, waste and sodomy: IE GC bug var iframe = _domCreate('iframe') , i = _enumBugKeys.length , lt = '<' , gt = '>' , iframeDocument; iframe.style.display = 'none'; _html.appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createDict = iframe.contentWindow.Object; // html.removeChild(iframe); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); iframeDocument.close(); createDict = iframeDocument.F; while(i--)delete createDict[PROTOTYPE$1][_enumBugKeys[i]]; return createDict(); }; var _objectCreate = Object.create || function create(O, Properties){ var result; if(O !== null){ Empty[PROTOTYPE$1] = _anObject(O); result = new Empty; Empty[PROTOTYPE$1] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = createDict(); return Properties === undefined ? result : _objectDps(result, Properties); }; var _wks = createCommonjsModule(function (module) { var store = _shared('wks') , Symbol = _global.Symbol , USE_SYMBOL = typeof Symbol == 'function'; var $exports = module.exports = function(name){ return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name)); }; $exports.store = store; }); var def = _objectDp.f; var TAG = _wks('toStringTag'); var _setToStringTag = function(it, tag, stat){ if(it && !_has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); }; var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() _hide(IteratorPrototype, _wks('iterator'), function(){ return this; }); var _iterCreate = function(Constructor, NAME, next){ Constructor.prototype = _objectCreate(IteratorPrototype, {next: _propertyDesc(1, next)}); _setToStringTag(Constructor, NAME + ' Iterator'); }; // 7.1.13 ToObject(argument) var _toObject = function(it){ return Object(_defined(it)); }; // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var IE_PROTO$2 = _sharedKey('IE_PROTO'); var ObjectProto = Object.prototype; var _objectGpo = Object.getPrototypeOf || function(O){ O = _toObject(O); if(_has(O, IE_PROTO$2))return O[IE_PROTO$2]; if(typeof O.constructor == 'function' && O instanceof O.constructor){ return O.constructor.prototype; } return O instanceof Object ? ObjectProto : null; }; var ITERATOR = _wks('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); var FF_ITERATOR = '@@iterator'; var KEYS = 'keys'; var VALUES = 'values'; var returnThis = function(){ return this; }; var _iterDefine = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ _iterCreate(Constructor, NAME, next); var getMethod = function(kind){ if(!BUGGY && kind in proto)return proto[kind]; switch(kind){ case KEYS: return function keys(){ return new Constructor(this, kind); }; case VALUES: return function values(){ return new Constructor(this, kind); }; } return function entries(){ return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator' , DEF_VALUES = DEFAULT == VALUES , VALUES_BUG = false , proto = Base.prototype , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] , $default = $native || getMethod(DEFAULT) , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined , $anyNative = NAME == 'Array' ? proto.entries || $native : $native , methods, key, IteratorPrototype; // Fix native if($anyNative){ IteratorPrototype = _objectGpo($anyNative.call(new Base)); if(IteratorPrototype !== Object.prototype){ // Set @@toStringTag to native iterators _setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines if(!_library && !_has(IteratorPrototype, ITERATOR))_hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF if(DEF_VALUES && $native && $native.name !== VALUES){ VALUES_BUG = true; $default = function values(){ return $native.call(this); }; } // Define iterator if((!_library || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ _hide(proto, ITERATOR, $default); } // Plug for library _iterators[NAME] = $default; _iterators[TAG] = returnThis; if(DEFAULT){ methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: $entries }; if(FORCED)for(key in methods){ if(!(key in proto))_redefine(proto, key, methods[key]); } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; var $at = _stringAt(true); // 21.1.3.27 String.prototype[@@iterator]() _iterDefine(String, 'String', function(iterated){ this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function(){ var O = this._t , index = this._i , point; if(index >= O.length)return {value: undefined, done: true}; point = $at(O, index); this._i += point.length; return {value: point, done: false}; }); var _addToUnscopables = function(){ /* empty */ }; var _iterStep = function(done, value){ return {value: value, done: !!done}; }; // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() var es6_array_iterator = _iterDefine(Array, 'Array', function(iterated, kind){ this._t = _toIobject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function(){ var O = this._t , kind = this._k , index = this._i++; if(!O || index >= O.length){ this._t = undefined; return _iterStep(1); } if(kind == 'keys' )return _iterStep(0, index); if(kind == 'values')return _iterStep(0, O[index]); return _iterStep(0, [index, O[index]]); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) _iterators.Arguments = _iterators.Array; _addToUnscopables('keys'); _addToUnscopables('values'); _addToUnscopables('entries'); var TO_STRING_TAG = _wks('toStringTag'); for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ var NAME = collections[i] , Collection = _global[NAME] , proto = Collection && Collection.prototype; if(proto && !proto[TO_STRING_TAG])_hide(proto, TO_STRING_TAG, NAME); _iterators[NAME] = _iterators.Array; } var f$1 = _wks; var _wksExt = { f: f$1 }; var iterator$2 = _wksExt.f('iterator'); var iterator = createCommonjsModule(function (module) { module.exports = { "default": iterator$2, __esModule: true }; }); var _meta = createCommonjsModule(function (module) { var META = _uid('meta') , setDesc = _objectDp.f , id = 0; var isExtensible = Object.isExtensible || function(){ return true; }; var FREEZE = !_fails(function(){ return isExtensible(Object.preventExtensions({})); }); var setMeta = function(it){ setDesc(it, META, {value: { i: 'O' + ++id, // object ID w: {} // weak collections IDs }}); }; var fastKey = function(it, create){ // return primitive with prefix if(!_isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; if(!_has(it, META)){ // can't set metadata to uncaught frozen object if(!isExtensible(it))return 'F'; // not necessary to add metadata if(!create)return 'E'; // add missing metadata setMeta(it); // return object ID } return it[META].i; }; var getWeak = function(it, create){ if(!_has(it, META)){ // can't set metadata to uncaught frozen object if(!isExtensible(it))return true; // not necessary to add metadata if(!create)return false; // add missing metadata setMeta(it); // return hash weak collections IDs } return it[META].w; }; // add metadata on freeze-family methods calling var onFreeze = function(it){ if(FREEZE && meta.NEED && isExtensible(it) && !_has(it, META))setMeta(it); return it; }; var meta = module.exports = { KEY: META, NEED: false, fastKey: fastKey, getWeak: getWeak, onFreeze: onFreeze }; }); var defineProperty = _objectDp.f; var _wksDefine = function(name){ var $Symbol = _core.Symbol || (_core.Symbol = _library ? {} : _global.Symbol || {}); if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: _wksExt.f(name)}); }; var _keyof = function(object, el){ var O = _toIobject(object) , keys = _objectKeys(O) , length = keys.length , index = 0 , key; while(length > index)if(O[key = keys[index++]] === el)return key; }; var f$2 = Object.getOwnPropertySymbols; var _objectGops = { f: f$2 }; var f$3 = {}.propertyIsEnumerable; var _objectPie = { f: f$3 }; // all enumerable object keys, includes symbols var _enumKeys = function(it){ var result = _objectKeys(it) , getSymbols = _objectGops.f; if(getSymbols){ var symbols = getSymbols(it) , isEnum = _objectPie.f , i = 0 , key; while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); } return result; }; // 7.2.2 IsArray(argument) var _isArray = Array.isArray || function isArray(arg){ return _cof(arg) == 'Array'; }; // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) var hiddenKeys = _enumBugKeys.concat('length', 'prototype'); var f$5 = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ return _objectKeysInternal(O, hiddenKeys); }; var _objectGopn = { f: f$5 }; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var gOPN$1 = _objectGopn.f; var toString$1 = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function(it){ try { return gOPN$1(it); } catch(e){ return windowNames.slice(); } }; var f$4 = function getOwnPropertyNames(it){ return windowNames && toString$1.call(it) == '[object Window]' ? getWindowNames(it) : gOPN$1(_toIobject(it)); }; var _objectGopnExt = { f: f$4 }; var gOPD$1 = Object.getOwnPropertyDescriptor; var f$6 = _descriptors ? gOPD$1 : function getOwnPropertyDescriptor(O, P){ O = _toIobject(O); P = _toPrimitive(P, true); if(_ie8DomDefine)try { return gOPD$1(O, P); } catch(e){ /* empty */ } if(_has(O, P))return _propertyDesc(!_objectPie.f.call(O, P), O[P]); }; var _objectGopd = { f: f$6 }; // ECMAScript 6 symbols shim var META = _meta.KEY; var gOPD = _objectGopd.f; var dP$1 = _objectDp.f; var gOPN = _objectGopnExt.f; var $Symbol = _global.Symbol; var $JSON = _global.JSON; var _stringify = $JSON && $JSON.stringify; var PROTOTYPE$2 = 'prototype'; var HIDDEN = _wks('_hidden'); var TO_PRIMITIVE = _wks('toPrimitive'); var isEnum = {}.propertyIsEnumerable; var SymbolRegistry = _shared('symbol-registry'); var AllSymbols = _shared('symbols'); var OPSymbols = _shared('op-symbols'); var ObjectProto$1 = Object[PROTOTYPE$2]; var USE_NATIVE = typeof $Symbol == 'function'; var QObject = _global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var setter = !QObject || !QObject[PROTOTYPE$2] || !QObject[PROTOTYPE$2].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDesc = _descriptors && _fails(function(){ return _objectCreate(dP$1({}, 'a', { get: function(){ return dP$1(this, 'a', {value: 7}).a; } })).a != 7; }) ? function(it, key, D){ var protoDesc = gOPD(ObjectProto$1, key); if(protoDesc)delete ObjectProto$1[key]; dP$1(it, key, D); if(protoDesc && it !== ObjectProto$1)dP$1(ObjectProto$1, key, protoDesc); } : dP$1; var wrap = function(tag){ var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE$2]); sym._k = tag; return sym; }; var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ return typeof it == 'symbol'; } : function(it){ return it instanceof $Symbol; }; var $defineProperty = function defineProperty(it, key, D){ if(it === ObjectProto$1)$defineProperty(OPSymbols, key, D); _anObject(it); key = _toPrimitive(key, true); _anObject(D); if(_has(AllSymbols, key)){ if(!D.enumerable){ if(!_has(it, HIDDEN))dP$1(it, HIDDEN, _propertyDesc(1, {})); it[HIDDEN][key] = true; } else { if(_has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; D = _objectCreate(D, {enumerable: _propertyDesc(0, false)}); } return setSymbolDesc(it, key, D); } return dP$1(it, key, D); }; var $defineProperties = function defineProperties(it, P){ _anObject(it); var keys = _enumKeys(P = _toIobject(P)) , i = 0 , l = keys.length , key; while(l > i)$defineProperty(it, key = keys[i++], P[key]); return it; }; var $create = function create(it, P){ return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P); }; var $propertyIsEnumerable = function propertyIsEnumerable(key){ var E = isEnum.call(this, key = _toPrimitive(key, true)); if(this === ObjectProto$1 && _has(AllSymbols, key) && !_has(OPSymbols, key))return false; return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ it = _toIobject(it); key = _toPrimitive(key, true); if(it === ObjectProto$1 && _has(AllSymbols, key) && !_has(OPSymbols, key))return; var D = gOPD(it, key); if(D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; return D; }; var $getOwnPropertyNames = function getOwnPropertyNames(it){ var names = gOPN(_toIobject(it)) , result = [] , i = 0 , key; while(names.length > i){ if(!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); } return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ var IS_OP = it === ObjectProto$1 , names = gOPN(IS_OP ? OPSymbols : _toIobject(it)) , result = [] , i = 0 , key; while(names.length > i){ if(_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto$1, key) : true))result.push(AllSymbols[key]); } return result; }; // 19.4.1.1 Symbol([description]) if(!USE_NATIVE){ $Symbol = function Symbol(){ if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); var tag = _uid(arguments.length > 0 ? arguments[0] : undefined); var $set = function(value){ if(this === ObjectProto$1)$set.call(OPSymbols, value); if(_has(this, HIDDEN) && _has(this[HIDDEN], tag))this[HIDDEN][tag] = false; setSymbolDesc(this, tag, _propertyDesc(1, value)); }; if(_descriptors && setter)setSymbolDesc(ObjectProto$1, tag, {configurable: true, set: $set}); return wrap(tag); }; _redefine($Symbol[PROTOTYPE$2], 'toString', function toString(){ return this._k; }); _objectGopd.f = $getOwnPropertyDescriptor; _objectDp.f = $defineProperty; _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames; _objectPie.f = $propertyIsEnumerable; _objectGops.f = $getOwnPropertySymbols; if(_descriptors && !_library){ _redefine(ObjectProto$1, 'propertyIsEnumerable', $propertyIsEnumerable, true); } _wksExt.f = function(name){ return wrap(_wks(name)); }; } _export(_export.G + _export.W + _export.F * !USE_NATIVE, {Symbol: $Symbol}); for(var symbols = ( // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' ).split(','), i$1 = 0; symbols.length > i$1; )_wks(symbols[i$1++]); for(var symbols = _objectKeys(_wks.store), i$1 = 0; symbols.length > i$1; )_wksDefine(symbols[i$1++]); _export(_export.S + _export.F * !USE_NATIVE, 'Symbol', { // 19.4.2.1 Symbol.for(key) 'for': function(key){ return _has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) keyFor: function keyFor(key){ if(isSymbol(key))return _keyof(SymbolRegistry, key); throw TypeError(key + ' is not a symbol!'); }, useSetter: function(){ setter = true; }, useSimple: function(){ setter = false; } }); _export(_export.S + _export.F * !USE_NATIVE, 'Object', { // 19.1.2.2 Object.create(O [, Properties]) create: $create, // 19.1.2.4 Object.defineProperty(O, P, Attributes) defineProperty: $defineProperty, // 19.1.2.3 Object.defineProperties(O, Properties) defineProperties: $defineProperties, // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) getOwnPropertyDescriptor: $getOwnPropertyDescriptor, // 19.1.2.7 Object.getOwnPropertyNames(O) getOwnPropertyNames: $getOwnPropertyNames, // 19.1.2.8 Object.getOwnPropertySymbols(O) getOwnPropertySymbols: $getOwnPropertySymbols }); // 24.3.2 JSON.stringify(value [, replacer [, space]]) $JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function(){ var S = $Symbol(); // MS Edge converts symbol values to JSON as {} // WebKit converts symbol values to JSON as null // V8 throws on boxed symbols return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { stringify: function stringify(it){ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined var args = [it] , i = 1 , replacer, $replacer; while(arguments.length > i)args.push(arguments[i++]); replacer = args[1]; if(typeof replacer == 'function')$replacer = replacer; if($replacer || !_isArray(replacer))replacer = function(key, value){ if($replacer)value = $replacer.call(this, key, value); if(!isSymbol(value))return value; }; args[1] = replacer; return _stringify.apply($JSON, args); } }); // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) $Symbol[PROTOTYPE$2][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE$2], TO_PRIMITIVE, $Symbol[PROTOTYPE$2].valueOf); // 19.4.3.5 Symbol.prototype[@@toStringTag] _setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag] _setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag] _setToStringTag(_global.JSON, 'JSON', true); _wksDefine('asyncIterator'); _wksDefine('observable'); var index = _core.Symbol; var symbol = createCommonjsModule(function (module) { module.exports = { "default": index, __esModule: true }; }); var _typeof_1 = createCommonjsModule(function (module, exports) { "use strict"; exports.__esModule = true; var _iterator2 = _interopRequireDefault(iterator); var _symbol2 = _interopRequireDefault(symbol); var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { return typeof obj === "undefined" ? "undefined" : _typeof(obj); } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); }; }); var _typeof = unwrapExports(_typeof_1); var classCallCheck = createCommonjsModule(function (module, exports) { "use strict"; exports.__esModule = true; exports.default = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; }); var _classCallCheck = unwrapExports(classCallCheck); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) _export(_export.S + _export.F * !_descriptors, 'Object', {defineProperty: _objectDp.f}); var $Object = _core.Object; var defineProperty$3 = function defineProperty(it, key, desc){ return $Object.defineProperty(it, key, desc); }; var defineProperty$1 = createCommonjsModule(function (module) { module.exports = { "default": defineProperty$3, __esModule: true }; }); var createClass = createCommonjsModule(function (module, exports) { "use strict"; exports.__esModule = true; var _defineProperty2 = _interopRequireDefault(defineProperty$1); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); }); var _createClass = unwrapExports(createClass); // 19.1.2.1 Object.assign(target, source, ...) var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) var _objectAssign = !$assign || _fails(function(){ var A = {} , B = {} , S = Symbol() , K = 'abcdefghijklmnopqrst'; A[S] = 7; K.split('').forEach(function(k){ B[k] = k; }); return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; }) ? function assign(target, source){ // eslint-disable-line no-unused-vars var T = _toObject(target) , aLen = arguments.length , index = 1 , getSymbols = _objectGops.f , isEnum = _objectPie.f; while(aLen > index){ var S = _iobject(arguments[index++]) , keys = getSymbols ? _objectKeys(S).concat(getSymbols(S)) : _objectKeys(S) , length = keys.length , j = 0 , key; while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; } return T; } : $assign; // 19.1.3.1 Object.assign(target, source) _export(_export.S + _export.F, 'Object', {assign: _objectAssign}); var assign$1 = _core.Object.assign; var assign = createCommonjsModule(function (module) { module.exports = { "default": assign$1, __esModule: true }; }); var _Object$assign = unwrapExports(assign); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) _export(_export.S, 'Object', {create: _objectCreate}); var $Object$1 = _core.Object; var create$1 = function create(P, D){ return $Object$1.create(P, D); }; var create = createCommonjsModule(function (module) { module.exports = { "default": create$1, __esModule: true }; }); var _Object$create = unwrapExports(create); // most Object methods by ES6 should accept primitives var _objectSap = function(KEY, exec){ var fn = (_core.Object || {})[KEY] || Object[KEY] , exp = {}; exp[KEY] = exec(fn); _export(_export.S + _export.F * _fails(function(){ fn(1); }), 'Object', exp); }; // 19.1.2.14 Object.keys(O) _objectSap('keys', function(){ return function keys(it){ return _objectKeys(_toObject(it)); }; }); var keys$1 = _core.Object.keys; var keys = createCommonjsModule(function (module) { module.exports = { "default": keys$1, __esModule: true }; }); // 20.1.2.3 Number.isInteger(number) var floor$1 = Math.floor; var _isInteger = function isInteger(it){ return !_isObject(it) && isFinite(it) && floor$1(it) === it; }; // 20.1.2.3 Number.isInteger(number) _export(_export.S, 'Number', {isInteger: _isInteger}); var isInteger$2 = _core.Number.isInteger; var isInteger$1 = createCommonjsModule(function (module) { module.exports = { "default": isInteger$2, __esModule: true }; }); var _stringWs = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; var space = '[' + _stringWs + ']'; var non = '\u200b\u0085'; var ltrim = RegExp('^' + space + space + '*'); var rtrim = RegExp(space + space + '*$'); var exporter = function(KEY, exec, ALIAS){ var exp = {}; var FORCE = _fails(function(){ return !!_stringWs[KEY]() || non[KEY]() != non; }); var fn = exp[KEY] = FORCE ? exec(trim) : _stringWs[KEY]; if(ALIAS)exp[ALIAS] = fn; _export(_export.P + _export.F * FORCE, 'String', exp); }; // 1 -> String#trimLeft // 2 -> String#trimRight // 3 -> String#trim var trim = exporter.trim = function(string, TYPE){ string = String(_defined(string)); if(TYPE & 1)string = string.replace(ltrim, ''); if(TYPE & 2)string = string.replace(rtrim, ''); return string; }; var _stringTrim = exporter; var $parseFloat = _global.parseFloat; var $trim = _stringTrim.trim; var _parseFloat$3 = 1 / $parseFloat(_stringWs + '-0') !== -Infinity ? function parseFloat(str){ var string = $trim(String(str), 3) , result = $parseFloat(string); return result === 0 && string.charAt(0) == '-' ? -0 : result; } : $parseFloat; // 20.1.2.12 Number.parseFloat(string) _export(_export.S + _export.F * (Number.parseFloat != _parseFloat$3), 'Number', {parseFloat: _parseFloat$3}); var _parseFloat$1 = parseFloat; var _parseFloat = createCommonjsModule(function (module) { module.exports = { "default": _parseFloat$1, __esModule: true }; }); /** * toxic-predicate-functions v0.1.2 * (c) 2017 toxic-johann * Released under MIT */ /** * to check whether a variable is array * @param {Anything} arr * @return {Boolean} true when it is a boolean */ function isArray$1(arr) { return Array.isArray(arr); } /** * 判断是否为function * @param {Anything} obj [description] * @return {Boolean} [description] */ function isFunction(obj) { return typeof obj === 'function'; } /** * 判断是否是对象 * @param {Anything} obj 传入对象 * @return {Boolean} [description] */ function isObject$1(obj) { // incase of arrow function and array return Object(obj) === obj && String(obj) === '[object Object]' && !isFunction(obj) && !isArray$1(obj); } /** * @module event * @author huzunjie * @description 自定义事件基础类 */ /* 缓存事件监听方法及包装,内部数据格式: * targetIndex_<type:'click|mouseup|done'>: [ [ * function(){ ... handler ... }, * function(){ ... handlerWrap ... handler.apply(target, arguments) ... }, * isOnce * ]] */ var _evtListenerCache = _Object$create(null); _evtListenerCache.count = 0; /** * 得到某对象的某事件类型对应的监听队列数组 * @param {Object} target 发生事件的对象 * @param {String} type 事件类型(这里的时间类型不只是名称,还是缓存标识,可以通过添加后缀来区分) * @return {Array} */ function getEvtTypeCache(target, type) { var evtId = target.__evt_id; if (!evtId) { /* 设置__evt_id不可枚举 */ Object.defineProperty(target, '__evt_id', { writable: true, enumerable: false, configurable: true }); /* 空对象初始化绑定索引 */ evtId = target.__evt_id = ++_evtListenerCache.count; } var typeCacheKey = evtId + '_' + type; var evtTypeCache = _evtListenerCache[typeCacheKey]; if (!evtTypeCache) { evtTypeCache = _evtListenerCache[typeCacheKey] = []; } return evtTypeCache; } /** * 触发事件监听方法 * @param {Object} target 发生事件的对象 * @param {String} type 事件类型 * @param {Object} eventObj 触发事件时要传回的event对象 * @return {undefined} */ function emitEventCache(target, type, eventObj) { var evt = _Object$create(null); evt.type = type; evt.target = target; if (eventObj) { _Object$assign(evt, isObject$1(eventObj) ? eventObj : { data: eventObj }); } getEvtTypeCache(target, type).forEach(function (item) { (item[1] || item[0]).apply(target, [evt]); }); } /** * 添加事件监听到缓存 * @param {Object} target 发生事件的对象 * @param {String} type 事件类型 * @param {Function} handler 监听函数 * @param {Boolean} isOnce 是否单次执行 * @param {Function} handlerWrap * @return {undefined} */ function addEventCache(target, type, handler) { var isOnce = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var handlerWrap = arguments[4]; if (isFunction(isOnce) && !handlerWrap) { handlerWrap = isOnce; isOnce = undefined; } var handlers = [handler, undefined, isOnce]; if (isOnce && !handlerWrap) { handlerWrap = function handlerWrap() { removeEventCache(target, type, handler, isOnce); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } handler.apply(target, args); }; } if (handlerWrap) { handlers[1] = handlerWrap; } getEvtTypeCache(target, type).push(handlers); } /** * 移除事件监听 * @param {Object} target 发生事件的对象 * @param {String} type 事件类型 * @param {Function} handler 监听函数 * @return {undefined} */ function removeEventCache(target, type, handler) { var isOnce = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var typeCache = getEvtTypeCache(target, type); if (handler || isOnce) { /* 有指定 handler 则清除对应监听 */ var handlerId = -1; var handlerWrap = void 0; typeCache.find(function (item, i) { if ((!handler || item[0] === handler) && (!isOnce || item[2])) { handlerId = i; handlerWrap = item[1]; return true; } }); if (handlerId !== -1) { typeCache.splice(handlerId, 1); } return handlerWrap; } else { /* 未指定 handler 则清除type对应的所有监听 */ typeCache.length = 0; } } /** * @class CustEvent * @description * Event 自定义事件类 * 1. 可以使用不传参得到的实例作为eventBus使用 * 2. 可以通过指定target,用多个实例操作同一target对象的事件管理 * 3. 当设定target时,可以通过设置assign为true,来给target实现"on\once\off\emit"方法 * @param {Object} target 发生事件的对象(空则默认为event实例) * @param {Boolean} assign 是否将"on\once\off\emit"方法实现到target对象上 * @return {event} */ var CustEvent = function () { function CustEvent(target, assign$$1) { var _this = this; _classCallCheck(this, CustEvent); /* 设置__target不可枚举 */ Object.defineProperty(this, '__target', { writable: true, enumerable: false, configurable: true }); this.__target = this; if (target) { if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) !== 'object') { throw new Error('CusEvent target are not object'); } this.__target = target; /* 为target实现on\once\off\emit */ if (assign$$1) { ['on', 'once', 'off', 'emit'].forEach(function (mth) { target[mth] = _this[mth]; }); } } } /** * 添加事件监听 * @param {String} type 事件类型 * @param {Function} handler 监听函数 * @param {Boolean} isOnce 单次监听类型 * @return {event} */ _createClass(CustEvent, [{ key: 'on', value: function on(type, handler) { var isOnce = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; addEventCache(this.__target, type, handler, isOnce); return this; } /** * 添加事件监听,并且只执行一次 * @param {String} type 事件类型 * @param {Function} handler 监听函数 * @return {event} */ }, { key: 'once', value: function once(type, handler) { return this.on(type, handler, true); } /** * 移除事件监听 * @param {String} type 事件类型 * @param {Function} handler 监听函数(不指定handler则清除type对应的所有事件监听) * @param {Boolean} isOnce 单次监听类型 * @return {event} */ }, { key: 'off', value: function off(type, handler) { var isOnce = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; removeEventCache(this.__target, type, handler, isOnce); return this; } /** * 触发事件监听函数 * @param {String} type 事件类型 * @return {event} */ }, { key: 'emit', value: function emit(type, data) { emitEventCache(this.__target, type, { data: data }); return this; } }]); return CustEvent; }(); exports.emitEventCache = emitEventCache; exports.addEventCache = addEventCache; exports.removeEventCache = removeEventCache; exports.CustEvent = CustEvent; Object.defineProperty(exports, '__esModule', { value: true }); })));