12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219 |
- var $jscomp = $jscomp || {};
- $jscomp.scope = {};
- $jscomp.ASSUME_ES5 = false;
- $jscomp.ASSUME_NO_NATIVE_MAP = false;
- $jscomp.ASSUME_NO_NATIVE_SET = false;
- $jscomp.defineProperty = $jscomp.ASSUME_ES5 || typeof Object.defineProperties == 'function' ? Object.defineProperty : function(target, property, descriptor) {
- descriptor = descriptor;
- if (target == Array.prototype || target == Object.prototype) {
- return;
- }
- target[property] = descriptor.value;
- };
- $jscomp.getGlobal = function(maybeGlobal) {
- return typeof window != 'undefined' && window === maybeGlobal ? maybeGlobal : typeof global != 'undefined' && global != null ? global : maybeGlobal;
- };
- $jscomp.global = $jscomp.getGlobal(this);
- $jscomp.polyfill = function(target, polyfill, fromLang, toLang) {
- if (!polyfill) {
- return;
- }
- var obj = $jscomp.global;
- var split = target.split('.');
- for (var i = 0; i < split.length - 1; i++) {
- var key = split[i];
- if (!(key in obj)) {
- obj[key] = {};
- }
- obj = obj[key];
- }
- var property = split[split.length - 1];
- var orig = obj[property];
- var impl = polyfill(orig);
- if (impl == orig || impl == null) {
- return;
- }
- $jscomp.defineProperty(obj, property, {configurable:true, writable:true, value:impl});
- };
- $jscomp.polyfill('Array.prototype.copyWithin', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(target, start, opt_end) {
- var len = this.length;
- target = Number(target);
- start = Number(start);
- opt_end = Number(opt_end != null ? opt_end : len);
- if (target < start) {
- opt_end = Math.min(opt_end, len);
- while (start < opt_end) {
- if (start in this) {
- this[target++] = this[start++];
- } else {
- delete this[target++];
- start++;
- }
- }
- } else {
- opt_end = Math.min(opt_end, len + start - target);
- target += opt_end - start;
- while (opt_end > start) {
- if (--opt_end in this) {
- this[--target] = this[opt_end];
- } else {
- delete this[target];
- }
- }
- }
- return this;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.SYMBOL_PREFIX = 'jscomp_symbol_';
- $jscomp.initSymbol = function() {
- $jscomp.initSymbol = function() {
- };
- if (!$jscomp.global['Symbol']) {
- $jscomp.global['Symbol'] = $jscomp.Symbol;
- }
- };
- $jscomp.Symbol = function() {
- var counter = 0;
- function Symbol(opt_description) {
- return $jscomp.SYMBOL_PREFIX + (opt_description || '') + counter++;
- }
- return Symbol;
- }();
- $jscomp.initSymbolIterator = function() {
- $jscomp.initSymbol();
- var symbolIterator = $jscomp.global['Symbol'].iterator;
- if (!symbolIterator) {
- symbolIterator = $jscomp.global['Symbol'].iterator = $jscomp.global['Symbol']('iterator');
- }
- if (typeof Array.prototype[symbolIterator] != 'function') {
- $jscomp.defineProperty(Array.prototype, symbolIterator, {configurable:true, writable:true, value:function() {
- return $jscomp.arrayIterator(this);
- }});
- }
- $jscomp.initSymbolIterator = function() {
- };
- };
- $jscomp.arrayIterator = function(array) {
- var index = 0;
- return $jscomp.iteratorPrototype(function() {
- if (index < array.length) {
- return {done:false, value:array[index++]};
- } else {
- return {done:true};
- }
- });
- };
- $jscomp.iteratorPrototype = function(next) {
- $jscomp.initSymbolIterator();
- var iterator = {next:next};
- iterator[$jscomp.global['Symbol'].iterator] = function() {
- return this;
- };
- return iterator;
- };
- $jscomp.iteratorFromArray = function(array, transform) {
- $jscomp.initSymbolIterator();
- if (array instanceof String) {
- array = array + '';
- }
- var i = 0;
- var iter = {next:function() {
- if (i < array.length) {
- var index = i++;
- return {value:transform(index, array[index]), done:false};
- }
- iter.next = function() {
- return {done:true, value:void 0};
- };
- return iter.next();
- }};
- iter[Symbol.iterator] = function() {
- return iter;
- };
- return iter;
- };
- $jscomp.polyfill('Array.prototype.entries', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function() {
- return $jscomp.iteratorFromArray(this, function(i, v) {
- return [i, v];
- });
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Array.prototype.fill', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(value, opt_start, opt_end) {
- var length = this.length || 0;
- if (opt_start < 0) {
- opt_start = Math.max(0, length + opt_start);
- }
- if (opt_end == null || opt_end > length) {
- opt_end = length;
- }
- opt_end = Number(opt_end);
- if (opt_end < 0) {
- opt_end = Math.max(0, length + opt_end);
- }
- for (var i = Number(opt_start || 0); i < opt_end; i++) {
- this[i] = value;
- }
- return this;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.findInternal = function(array, callback, thisArg) {
- if (array instanceof String) {
- array = String(array);
- }
- var len = array.length;
- for (var i = 0; i < len; i++) {
- var value = array[i];
- if (callback.call(thisArg, value, i, array)) {
- return {i:i, v:value};
- }
- }
- return {i:-1, v:void 0};
- };
- $jscomp.polyfill('Array.prototype.find', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(callback, opt_thisArg) {
- return $jscomp.findInternal(this, callback, opt_thisArg).v;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Array.prototype.findIndex', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(callback, opt_thisArg) {
- return $jscomp.findInternal(this, callback, opt_thisArg).i;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Array.from', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(arrayLike, opt_mapFn, opt_thisArg) {
- $jscomp.initSymbolIterator();
- opt_mapFn = opt_mapFn != null ? opt_mapFn : function(x) {
- return x;
- };
- var result = [];
- var iteratorFunction = arrayLike[Symbol.iterator];
- if (typeof iteratorFunction == 'function') {
- arrayLike = iteratorFunction.call(arrayLike);
- var next;
- var k = 0;
- while (!(next = arrayLike.next()).done) {
- result.push(opt_mapFn.call(opt_thisArg, next.value, k++));
- }
- } else {
- var len = arrayLike.length;
- for (var i = 0; i < len; i++) {
- result.push(opt_mapFn.call(opt_thisArg, arrayLike[i], i));
- }
- }
- return result;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Object.is', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(left, right) {
- if (left === right) {
- return left !== 0 || 1 / left === 1 / right;
- } else {
- return left !== left && right !== right;
- }
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Array.prototype.includes', function(orig) {
- if (orig) {
- return orig;
- }
- var includes = function(searchElement, opt_fromIndex) {
- var array = this;
- if (array instanceof String) {
- array = String(array);
- }
- var len = array.length;
- var i = opt_fromIndex || 0;
- if (i < 0) {
- i = Math.max(i + len, 0);
- }
- for (; i < len; i++) {
- var element = array[i];
- if (element === searchElement || Object.is(element, searchElement)) {
- return true;
- }
- }
- return false;
- };
- return includes;
- }, 'es7', 'es3');
- $jscomp.polyfill('Array.prototype.keys', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function() {
- return $jscomp.iteratorFromArray(this, function(i) {
- return i;
- });
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Array.of', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(var_args) {
- return Array.from(arguments);
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Array.prototype.values', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function() {
- return $jscomp.iteratorFromArray(this, function(k, v) {
- return v;
- });
- };
- return polyfill;
- }, 'es8', 'es3');
- $jscomp.makeIterator = function(iterable) {
- $jscomp.initSymbolIterator();
- var iteratorFunction = iterable[Symbol.iterator];
- return iteratorFunction ? iteratorFunction.call(iterable) : $jscomp.arrayIterator(iterable);
- };
- $jscomp.FORCE_POLYFILL_PROMISE = false;
- $jscomp.polyfill('Promise', function(NativePromise) {
- if (NativePromise && !$jscomp.FORCE_POLYFILL_PROMISE) {
- return NativePromise;
- }
- function AsyncExecutor() {
- this.batch_ = null;
- }
- AsyncExecutor.prototype.asyncExecute = function(f) {
- if (this.batch_ == null) {
- this.batch_ = [];
- this.asyncExecuteBatch_();
- }
- this.batch_.push(f);
- return this;
- };
- AsyncExecutor.prototype.asyncExecuteBatch_ = function() {
- var self = this;
- this.asyncExecuteFunction(function() {
- self.executeBatch_();
- });
- };
- var nativeSetTimeout = $jscomp.global['setTimeout'];
- AsyncExecutor.prototype.asyncExecuteFunction = function(f) {
- nativeSetTimeout(f, 0);
- };
- AsyncExecutor.prototype.executeBatch_ = function() {
- while (this.batch_ && this.batch_.length) {
- var executingBatch = this.batch_;
- this.batch_ = [];
- for (var i = 0; i < executingBatch.length; ++i) {
- var f = executingBatch[i];
- executingBatch[i] = null;
- try {
- f();
- } catch (error) {
- this.asyncThrow_(error);
- }
- }
- }
- this.batch_ = null;
- };
- AsyncExecutor.prototype.asyncThrow_ = function(exception) {
- this.asyncExecuteFunction(function() {
- throw exception;
- });
- };
- var PromiseState = {PENDING:0, FULFILLED:1, REJECTED:2};
- var PolyfillPromise = function(executor) {
- this.state_ = PromiseState.PENDING;
- this.result_ = undefined;
- this.onSettledCallbacks_ = [];
- var resolveAndReject = this.createResolveAndReject_();
- try {
- executor(resolveAndReject.resolve, resolveAndReject.reject);
- } catch (e) {
- resolveAndReject.reject(e);
- }
- };
- PolyfillPromise.prototype.createResolveAndReject_ = function() {
- var thisPromise = this;
- var alreadyCalled = false;
- function firstCallWins(method) {
- return function(x) {
- if (!alreadyCalled) {
- alreadyCalled = true;
- method.call(thisPromise, x);
- }
- };
- }
- return {resolve:firstCallWins(this.resolveTo_), reject:firstCallWins(this.reject_)};
- };
- PolyfillPromise.prototype.resolveTo_ = function(value) {
- if (value === this) {
- this.reject_(new TypeError('A Promise cannot resolve to itself'));
- } else {
- if (value instanceof PolyfillPromise) {
- this.settleSameAsPromise_(value);
- } else {
- if (isObject(value)) {
- this.resolveToNonPromiseObj_(value);
- } else {
- this.fulfill_(value);
- }
- }
- }
- };
- PolyfillPromise.prototype.resolveToNonPromiseObj_ = function(obj) {
- var thenMethod = undefined;
- try {
- thenMethod = obj.then;
- } catch (error) {
- this.reject_(error);
- return;
- }
- if (typeof thenMethod == 'function') {
- this.settleSameAsThenable_(thenMethod, obj);
- } else {
- this.fulfill_(obj);
- }
- };
- function isObject(value) {
- switch(typeof value) {
- case 'object':
- return value != null;
- case 'function':
- return true;
- default:
- return false;
- }
- }
- PolyfillPromise.prototype.reject_ = function(reason) {
- this.settle_(PromiseState.REJECTED, reason);
- };
- PolyfillPromise.prototype.fulfill_ = function(value) {
- this.settle_(PromiseState.FULFILLED, value);
- };
- PolyfillPromise.prototype.settle_ = function(settledState, valueOrReason) {
- if (this.state_ != PromiseState.PENDING) {
- throw new Error('Cannot settle(' + settledState + ', ' + valueOrReason + '): Promise already settled in state' + this.state_);
- }
- this.state_ = settledState;
- this.result_ = valueOrReason;
- this.executeOnSettledCallbacks_();
- };
- PolyfillPromise.prototype.executeOnSettledCallbacks_ = function() {
- if (this.onSettledCallbacks_ != null) {
- for (var i = 0; i < this.onSettledCallbacks_.length; ++i) {
- asyncExecutor.asyncExecute(this.onSettledCallbacks_[i]);
- }
- this.onSettledCallbacks_ = null;
- }
- };
- var asyncExecutor = new AsyncExecutor;
- PolyfillPromise.prototype.settleSameAsPromise_ = function(promise) {
- var methods = this.createResolveAndReject_();
- promise.callWhenSettled_(methods.resolve, methods.reject);
- };
- PolyfillPromise.prototype.settleSameAsThenable_ = function(thenMethod, thenable) {
- var methods = this.createResolveAndReject_();
- try {
- thenMethod.call(thenable, methods.resolve, methods.reject);
- } catch (error) {
- methods.reject(error);
- }
- };
- PolyfillPromise.prototype.then = function(onFulfilled, onRejected) {
- var resolveChild;
- var rejectChild;
- var childPromise = new PolyfillPromise(function(resolve, reject) {
- resolveChild = resolve;
- rejectChild = reject;
- });
- function createCallback(paramF, defaultF) {
- if (typeof paramF == 'function') {
- return function(x) {
- try {
- resolveChild(paramF(x));
- } catch (error) {
- rejectChild(error);
- }
- };
- } else {
- return defaultF;
- }
- }
- this.callWhenSettled_(createCallback(onFulfilled, resolveChild), createCallback(onRejected, rejectChild));
- return childPromise;
- };
- PolyfillPromise.prototype['catch'] = function(onRejected) {
- return this.then(undefined, onRejected);
- };
- PolyfillPromise.prototype.callWhenSettled_ = function(onFulfilled, onRejected) {
- var thisPromise = this;
- function callback() {
- switch(thisPromise.state_) {
- case PromiseState.FULFILLED:
- onFulfilled(thisPromise.result_);
- break;
- case PromiseState.REJECTED:
- onRejected(thisPromise.result_);
- break;
- default:
- throw new Error('Unexpected state: ' + thisPromise.state_);
- }
- }
- if (this.onSettledCallbacks_ == null) {
- asyncExecutor.asyncExecute(callback);
- } else {
- this.onSettledCallbacks_.push(callback);
- }
- };
- function resolvingPromise(opt_value) {
- if (opt_value instanceof PolyfillPromise) {
- return opt_value;
- } else {
- return new PolyfillPromise(function(resolve, reject) {
- resolve(opt_value);
- });
- }
- }
- PolyfillPromise['resolve'] = resolvingPromise;
- PolyfillPromise['reject'] = function(opt_reason) {
- return new PolyfillPromise(function(resolve, reject) {
- reject(opt_reason);
- });
- };
- PolyfillPromise['race'] = function(thenablesOrValues) {
- return new PolyfillPromise(function(resolve, reject) {
- var iterator = $jscomp.makeIterator(thenablesOrValues);
- for (var iterRec = iterator.next(); !iterRec.done; iterRec = iterator.next()) {
- resolvingPromise(iterRec.value).callWhenSettled_(resolve, reject);
- }
- });
- };
- PolyfillPromise['all'] = function(thenablesOrValues) {
- var iterator = $jscomp.makeIterator(thenablesOrValues);
- var iterRec = iterator.next();
- if (iterRec.done) {
- return resolvingPromise([]);
- } else {
- return new PolyfillPromise(function(resolveAll, rejectAll) {
- var resultsArray = [];
- var unresolvedCount = 0;
- function onFulfilled(i) {
- return function(ithResult) {
- resultsArray[i] = ithResult;
- unresolvedCount--;
- if (unresolvedCount == 0) {
- resolveAll(resultsArray);
- }
- };
- }
- do {
- resultsArray.push(undefined);
- unresolvedCount++;
- resolvingPromise(iterRec.value).callWhenSettled_(onFulfilled(resultsArray.length - 1), rejectAll);
- iterRec = iterator.next();
- } while (!iterRec.done);
- });
- }
- };
- return PolyfillPromise;
- }, 'es6', 'es3');
- $jscomp.polyfill('Promise.prototype.finally', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(onFinally) {
- return this.then(function(value) {
- var promise = Promise.resolve(onFinally());
- return promise.then(function() {
- return value;
- });
- }, function(reason) {
- var promise = Promise.resolve(onFinally());
- return promise.then(function() {
- throw reason;
- });
- });
- };
- return polyfill;
- }, 'es9', 'es3');
- $jscomp.underscoreProtoCanBeSet = function() {
- var x = {a:true};
- var y = {};
- try {
- y.__proto__ = x;
- return y.a;
- } catch (e) {
- }
- return false;
- };
- $jscomp.setPrototypeOf = typeof Object.setPrototypeOf == 'function' ? Object.setPrototypeOf : $jscomp.underscoreProtoCanBeSet() ? function(target, proto) {
- target.__proto__ = proto;
- if (target.__proto__ !== proto) {
- throw new TypeError(target + ' is not extensible');
- }
- return target;
- } : null;
- $jscomp.generator = {};
- $jscomp.generator.ensureIteratorResultIsObject_ = function(result) {
- if (result instanceof Object) {
- return;
- }
- throw new TypeError('Iterator result ' + result + ' is not an object');
- };
- $jscomp.generator.Context = function() {
- this.isRunning_ = false;
- this.yieldAllIterator_ = null;
- this.yieldResult = undefined;
- this.nextAddress = 1;
- this.catchAddress_ = 0;
- this.finallyAddress_ = 0;
- this.abruptCompletion_ = null;
- this.finallyContexts_ = null;
- };
- $jscomp.generator.Context.prototype.start_ = function() {
- if (this.isRunning_) {
- throw new TypeError('Generator is already running');
- }
- this.isRunning_ = true;
- };
- $jscomp.generator.Context.prototype.stop_ = function() {
- this.isRunning_ = false;
- };
- $jscomp.generator.Context.prototype.jumpToErrorHandler_ = function() {
- this.nextAddress = this.catchAddress_ || this.finallyAddress_;
- };
- $jscomp.generator.Context.prototype.next_ = function(value) {
- this.yieldResult = value;
- };
- $jscomp.generator.Context.prototype.throw_ = function(e) {
- this.abruptCompletion_ = {exception:e, isException:true};
- this.jumpToErrorHandler_();
- };
- $jscomp.generator.Context.prototype['return'] = function(value) {
- this.abruptCompletion_ = {'return':value};
- this.nextAddress = this.finallyAddress_;
- };
- $jscomp.generator.Context.prototype.jumpThroughFinallyBlocks = function(nextAddress) {
- this.abruptCompletion_ = {jumpTo:nextAddress};
- this.nextAddress = this.finallyAddress_;
- };
- $jscomp.generator.Context.prototype.yield = function(value, resumeAddress) {
- this.nextAddress = resumeAddress;
- return {value:value};
- };
- $jscomp.generator.Context.prototype.yieldAll = function(iterable, resumeAddress) {
- var iterator = $jscomp.makeIterator(iterable);
- var result = iterator.next();
- $jscomp.generator.ensureIteratorResultIsObject_(result);
- if (result.done) {
- this.yieldResult = result.value;
- this.nextAddress = resumeAddress;
- return;
- }
- this.yieldAllIterator_ = iterator;
- return this.yield(result.value, resumeAddress);
- };
- $jscomp.generator.Context.prototype.jumpTo = function(nextAddress) {
- this.nextAddress = nextAddress;
- };
- $jscomp.generator.Context.prototype.jumpToEnd = function() {
- this.nextAddress = 0;
- };
- $jscomp.generator.Context.prototype.setCatchFinallyBlocks = function(catchAddress, finallyAddress) {
- this.catchAddress_ = catchAddress;
- if (finallyAddress != undefined) {
- this.finallyAddress_ = finallyAddress;
- }
- };
- $jscomp.generator.Context.prototype.setFinallyBlock = function(finallyAddress) {
- this.catchAddress_ = 0;
- this.finallyAddress_ = finallyAddress || 0;
- };
- $jscomp.generator.Context.prototype.leaveTryBlock = function(nextAddress, catchAddress) {
- this.nextAddress = nextAddress;
- this.catchAddress_ = catchAddress || 0;
- };
- $jscomp.generator.Context.prototype.enterCatchBlock = function(nextCatchBlockAddress) {
- this.catchAddress_ = nextCatchBlockAddress || 0;
- var exception = this.abruptCompletion_.exception;
- this.abruptCompletion_ = null;
- return exception;
- };
- $jscomp.generator.Context.prototype.enterFinallyBlock = function(nextCatchAddress, nextFinallyAddress, finallyDepth) {
- if (!finallyDepth) {
- this.finallyContexts_ = [this.abruptCompletion_];
- } else {
- this.finallyContexts_[finallyDepth] = this.abruptCompletion_;
- }
- this.catchAddress_ = nextCatchAddress || 0;
- this.finallyAddress_ = nextFinallyAddress || 0;
- };
- $jscomp.generator.Context.prototype.leaveFinallyBlock = function(nextAddress, finallyDepth) {
- var preservedContext = this.finallyContexts_.splice(finallyDepth || 0)[0];
- var abruptCompletion = this.abruptCompletion_ = this.abruptCompletion_ || preservedContext;
- if (abruptCompletion) {
- if (abruptCompletion.isException) {
- return this.jumpToErrorHandler_();
- }
- if (abruptCompletion.jumpTo != undefined && this.finallyAddress_ < abruptCompletion.jumpTo) {
- this.nextAddress = abruptCompletion.jumpTo;
- this.abruptCompletion_ = null;
- } else {
- this.nextAddress = this.finallyAddress_;
- }
- } else {
- this.nextAddress = nextAddress;
- }
- };
- $jscomp.generator.Context.prototype.forIn = function(object) {
- return new $jscomp.generator.Context.PropertyIterator(object);
- };
- $jscomp.generator.Context.PropertyIterator = function(object) {
- this.object_ = object;
- this.properties_ = [];
- for (var property in object) {
- this.properties_.push(property);
- }
- this.properties_.reverse();
- };
- $jscomp.generator.Context.PropertyIterator.prototype.getNext = function() {
- while (this.properties_.length > 0) {
- var property = this.properties_.pop();
- if (property in this.object_) {
- return property;
- }
- }
- return null;
- };
- $jscomp.generator.Engine_ = function(program) {
- this.context_ = new $jscomp.generator.Context;
- this.program_ = program;
- };
- $jscomp.generator.Engine_.prototype.next_ = function(value) {
- this.context_.start_();
- if (this.context_.yieldAllIterator_) {
- return this.yieldAllStep_(this.context_.yieldAllIterator_.next, value, this.context_.next_);
- }
- this.context_.next_(value);
- return this.nextStep_();
- };
- $jscomp.generator.Engine_.prototype.return_ = function(value) {
- this.context_.start_();
- var yieldAllIterator = this.context_.yieldAllIterator_;
- if (yieldAllIterator) {
- var returnFunction = 'return' in yieldAllIterator ? yieldAllIterator['return'] : function(v) {
- return {value:v, done:true};
- };
- return this.yieldAllStep_(returnFunction, value, this.context_['return']);
- }
- this.context_['return'](value);
- return this.nextStep_();
- };
- $jscomp.generator.Engine_.prototype.throw_ = function(exception) {
- this.context_.start_();
- if (this.context_.yieldAllIterator_) {
- return this.yieldAllStep_(this.context_.yieldAllIterator_['throw'], exception, this.context_.next_);
- }
- this.context_.throw_(exception);
- return this.nextStep_();
- };
- $jscomp.generator.Engine_.prototype.yieldAllStep_ = function(action, value, nextAction) {
- try {
- var result = action.call(this.context_.yieldAllIterator_, value);
- $jscomp.generator.ensureIteratorResultIsObject_(result);
- if (!result.done) {
- this.context_.stop_();
- return result;
- }
- var resultValue = result.value;
- } catch (e) {
- this.context_.yieldAllIterator_ = null;
- this.context_.throw_(e);
- return this.nextStep_();
- }
- this.context_.yieldAllIterator_ = null;
- nextAction.call(this.context_, resultValue);
- return this.nextStep_();
- };
- $jscomp.generator.Engine_.prototype.nextStep_ = function() {
- while (this.context_.nextAddress) {
- try {
- var yieldValue = this.program_(this.context_);
- if (yieldValue) {
- this.context_.stop_();
- return {value:yieldValue.value, done:false};
- }
- } catch (e) {
- this.context_.yieldResult = undefined;
- this.context_.throw_(e);
- }
- }
- this.context_.stop_();
- if (this.context_.abruptCompletion_) {
- var abruptCompletion = this.context_.abruptCompletion_;
- this.context_.abruptCompletion_ = null;
- if (abruptCompletion.isException) {
- throw abruptCompletion.exception;
- }
- return {value:abruptCompletion['return'], done:true};
- }
- return {value:undefined, done:true};
- };
- $jscomp.generator.Generator_ = function(engine) {
- this.next = function(opt_value) {
- return engine.next_(opt_value);
- };
- this['throw'] = function(exception) {
- return engine.throw_(exception);
- };
- this['return'] = function(value) {
- return engine.return_(value);
- };
- $jscomp.initSymbolIterator();
- this[Symbol.iterator] = function() {
- return this;
- };
- };
- $jscomp.generator.createGenerator = function(generator, program) {
- var result = new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(program));
- if ($jscomp.setPrototypeOf) {
- $jscomp.setPrototypeOf(result, generator.prototype);
- }
- return result;
- };
- $jscomp.asyncExecutePromiseGenerator = function(generator) {
- function passValueToGenerator(value) {
- return generator.next(value);
- }
- function passErrorToGenerator(error) {
- return generator['throw'](error);
- }
- return new Promise(function(resolve, reject) {
- function handleGeneratorRecord(genRec) {
- if (genRec.done) {
- resolve(genRec.value);
- } else {
- Promise.resolve(genRec.value).then(passValueToGenerator, passErrorToGenerator).then(handleGeneratorRecord, reject);
- }
- }
- handleGeneratorRecord(generator.next());
- });
- };
- $jscomp.asyncExecutePromiseGeneratorFunction = function(generatorFunction) {
- return $jscomp.asyncExecutePromiseGenerator(generatorFunction());
- };
- $jscomp.asyncExecutePromiseGeneratorProgram = function(program) {
- return $jscomp.asyncExecutePromiseGenerator(new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(program)));
- };
- $jscomp.checkEs6ConformanceViaProxy = function() {
- try {
- var proxied = {};
- var proxy = Object.create(new $jscomp.global['Proxy'](proxied, {'get':function(target, key, receiver) {
- return target == proxied && key == 'q' && receiver == proxy;
- }}));
- return proxy['q'] === true;
- } catch (err) {
- return false;
- }
- };
- $jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS = false;
- $jscomp.ES6_CONFORMANCE = $jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS && $jscomp.checkEs6ConformanceViaProxy();
- $jscomp.owns = function(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
- };
- $jscomp.polyfill('WeakMap', function(NativeWeakMap) {
- function isConformant() {
- if (!NativeWeakMap || !Object.seal) {
- return false;
- }
- try {
- var x = Object.seal({});
- var y = Object.seal({});
- var map = new NativeWeakMap([[x, 2], [y, 3]]);
- if (map.get(x) != 2 || map.get(y) != 3) {
- return false;
- }
- map['delete'](x);
- map.set(y, 4);
- return !map.has(x) && map.get(y) == 4;
- } catch (err) {
- return false;
- }
- }
- if ($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS) {
- if (NativeWeakMap && $jscomp.ES6_CONFORMANCE) {
- return NativeWeakMap;
- }
- } else {
- if (isConformant()) {
- return NativeWeakMap;
- }
- }
- var prop = '$jscomp_hidden_' + Math.random();
- function insert(target) {
- if (!$jscomp.owns(target, prop)) {
- var obj = {};
- $jscomp.defineProperty(target, prop, {value:obj});
- }
- }
- function patch(name) {
- var prev = Object[name];
- if (prev) {
- Object[name] = function(target) {
- insert(target);
- return prev(target);
- };
- }
- }
- patch('freeze');
- patch('preventExtensions');
- patch('seal');
- var index = 0;
- var PolyfillWeakMap = function(opt_iterable) {
- this.id_ = (index += Math.random() + 1).toString();
- if (opt_iterable) {
- $jscomp.initSymbol();
- $jscomp.initSymbolIterator();
- var iter = $jscomp.makeIterator(opt_iterable);
- var entry;
- while (!(entry = iter.next()).done) {
- var item = entry.value;
- this.set(item[0], item[1]);
- }
- }
- };
- PolyfillWeakMap.prototype.set = function(key, value) {
- insert(key);
- if (!$jscomp.owns(key, prop)) {
- throw new Error('WeakMap key fail: ' + key);
- }
- key[prop][this.id_] = value;
- return this;
- };
- PolyfillWeakMap.prototype.get = function(key) {
- return $jscomp.owns(key, prop) ? key[prop][this.id_] : undefined;
- };
- PolyfillWeakMap.prototype.has = function(key) {
- return $jscomp.owns(key, prop) && $jscomp.owns(key[prop], this.id_);
- };
- PolyfillWeakMap.prototype['delete'] = function(key) {
- if (!$jscomp.owns(key, prop) || !$jscomp.owns(key[prop], this.id_)) {
- return false;
- }
- return delete key[prop][this.id_];
- };
- return PolyfillWeakMap;
- }, 'es6', 'es3');
- $jscomp.MapEntry = function() {
- this.previous;
- this.next;
- this.head;
- this.key;
- this.value;
- };
- $jscomp.polyfill('Map', function(NativeMap) {
- function isConformant() {
- if ($jscomp.ASSUME_NO_NATIVE_MAP || !NativeMap || typeof NativeMap != 'function' || !NativeMap.prototype.entries || typeof Object.seal != 'function') {
- return false;
- }
- try {
- NativeMap = NativeMap;
- var key = Object.seal({x:4});
- var map = new NativeMap($jscomp.makeIterator([[key, 's']]));
- if (map.get(key) != 's' || map.size != 1 || map.get({x:4}) || map.set({x:4}, 't') != map || map.size != 2) {
- return false;
- }
- var iter = map.entries();
- var item = iter.next();
- if (item.done || item.value[0] != key || item.value[1] != 's') {
- return false;
- }
- item = iter.next();
- if (item.done || item.value[0].x != 4 || item.value[1] != 't' || !iter.next().done) {
- return false;
- }
- return true;
- } catch (err) {
- return false;
- }
- }
- if ($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS) {
- if (NativeMap && $jscomp.ES6_CONFORMANCE) {
- return NativeMap;
- }
- } else {
- if (isConformant()) {
- return NativeMap;
- }
- }
- $jscomp.initSymbol();
- $jscomp.initSymbolIterator();
- var idMap = new WeakMap;
- var PolyfillMap = function(opt_iterable) {
- this.data_ = {};
- this.head_ = createHead();
- this.size = 0;
- if (opt_iterable) {
- var iter = $jscomp.makeIterator(opt_iterable);
- var entry;
- while (!(entry = iter.next()).done) {
- var item = entry.value;
- this.set(item[0], item[1]);
- }
- }
- };
- PolyfillMap.prototype.set = function(key, value) {
- key = key === 0 ? 0 : key;
- var r = maybeGetEntry(this, key);
- if (!r.list) {
- r.list = this.data_[r.id] = [];
- }
- if (!r.entry) {
- r.entry = {next:this.head_, previous:this.head_.previous, head:this.head_, key:key, value:value};
- r.list.push(r.entry);
- this.head_.previous.next = r.entry;
- this.head_.previous = r.entry;
- this.size++;
- } else {
- r.entry.value = value;
- }
- return this;
- };
- PolyfillMap.prototype['delete'] = function(key) {
- var r = maybeGetEntry(this, key);
- if (r.entry && r.list) {
- r.list.splice(r.index, 1);
- if (!r.list.length) {
- delete this.data_[r.id];
- }
- r.entry.previous.next = r.entry.next;
- r.entry.next.previous = r.entry.previous;
- r.entry.head = null;
- this.size--;
- return true;
- }
- return false;
- };
- PolyfillMap.prototype.clear = function() {
- this.data_ = {};
- this.head_ = this.head_.previous = createHead();
- this.size = 0;
- };
- PolyfillMap.prototype.has = function(key) {
- return !!maybeGetEntry(this, key).entry;
- };
- PolyfillMap.prototype.get = function(key) {
- var entry = maybeGetEntry(this, key).entry;
- return entry && entry.value;
- };
- PolyfillMap.prototype.entries = function() {
- return makeIterator(this, function(entry) {
- return [entry.key, entry.value];
- });
- };
- PolyfillMap.prototype.keys = function() {
- return makeIterator(this, function(entry) {
- return entry.key;
- });
- };
- PolyfillMap.prototype.values = function() {
- return makeIterator(this, function(entry) {
- return entry.value;
- });
- };
- PolyfillMap.prototype.forEach = function(callback, opt_thisArg) {
- var iter = this.entries();
- var item;
- while (!(item = iter.next()).done) {
- var entry = item.value;
- callback.call(opt_thisArg, entry[1], entry[0], this);
- }
- };
- PolyfillMap.prototype[Symbol.iterator] = PolyfillMap.prototype.entries;
- var maybeGetEntry = function(map, key) {
- var id = getId(key);
- var list = map.data_[id];
- if (list && $jscomp.owns(map.data_, id)) {
- for (var index = 0; index < list.length; index++) {
- var entry = list[index];
- if (key !== key && entry.key !== entry.key || key === entry.key) {
- return {id:id, list:list, index:index, entry:entry};
- }
- }
- }
- return {id:id, list:list, index:-1, entry:undefined};
- };
- var makeIterator = function(map, func) {
- var entry = map.head_;
- return $jscomp.iteratorPrototype(function() {
- if (entry) {
- while (entry.head != map.head_) {
- entry = entry.previous;
- }
- while (entry.next != entry.head) {
- entry = entry.next;
- return {done:false, value:func(entry)};
- }
- entry = null;
- }
- return {done:true, value:void 0};
- });
- };
- var createHead = function() {
- var head = {};
- head.previous = head.next = head.head = head;
- return head;
- };
- var mapIndex = 0;
- var getId = function(obj) {
- var type = obj && typeof obj;
- if (type == 'object' || type == 'function') {
- obj = obj;
- if (!idMap.has(obj)) {
- var id = '' + ++mapIndex;
- idMap.set(obj, id);
- return id;
- }
- return idMap.get(obj);
- }
- return 'p_' + obj;
- };
- return PolyfillMap;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.acosh', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x);
- return Math.log(x + Math.sqrt(x * x - 1));
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.asinh', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x);
- if (x === 0) {
- return x;
- }
- var y = Math.log(Math.abs(x) + Math.sqrt(x * x + 1));
- return x < 0 ? -y : y;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.log1p', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x);
- if (x < 0.25 && x > -0.25) {
- var y = x;
- var d = 1;
- var z = x;
- var zPrev = 0;
- var s = 1;
- while (zPrev != z) {
- y *= x;
- s *= -1;
- z = (zPrev = z) + s * y / ++d;
- }
- return z;
- }
- return Math.log(1 + x);
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.atanh', function(orig) {
- if (orig) {
- return orig;
- }
- var log1p = Math.log1p;
- var polyfill = function(x) {
- x = Number(x);
- return (log1p(x) - log1p(-x)) / 2;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.cbrt', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- if (x === 0) {
- return x;
- }
- x = Number(x);
- var y = Math.pow(Math.abs(x), 1 / 3);
- return x < 0 ? -y : y;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.clz32', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x) >>> 0;
- if (x === 0) {
- return 32;
- }
- var result = 0;
- if ((x & 4294901760) === 0) {
- x <<= 16;
- result += 16;
- }
- if ((x & 4278190080) === 0) {
- x <<= 8;
- result += 8;
- }
- if ((x & 4026531840) === 0) {
- x <<= 4;
- result += 4;
- }
- if ((x & 3221225472) === 0) {
- x <<= 2;
- result += 2;
- }
- if ((x & 2147483648) === 0) {
- result++;
- }
- return result;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.cosh', function(orig) {
- if (orig) {
- return orig;
- }
- var exp = Math.exp;
- var polyfill = function(x) {
- x = Number(x);
- return (exp(x) + exp(-x)) / 2;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.expm1', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x);
- if (x < .25 && x > -.25) {
- var y = x;
- var d = 1;
- var z = x;
- var zPrev = 0;
- while (zPrev != z) {
- y *= x / ++d;
- z = (zPrev = z) + y;
- }
- return z;
- }
- return Math.exp(x) - 1;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.hypot', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x, y, var_args) {
- x = Number(x);
- y = Number(y);
- var i, z, sum;
- var max = Math.max(Math.abs(x), Math.abs(y));
- for (i = 2; i < arguments.length; i++) {
- max = Math.max(max, Math.abs(arguments[i]));
- }
- if (max > 1e100 || max < 1e-100) {
- if (!max) {
- return max;
- }
- x = x / max;
- y = y / max;
- sum = x * x + y * y;
- for (i = 2; i < arguments.length; i++) {
- z = Number(arguments[i]) / max;
- sum += z * z;
- }
- return Math.sqrt(sum) * max;
- } else {
- sum = x * x + y * y;
- for (i = 2; i < arguments.length; i++) {
- z = Number(arguments[i]);
- sum += z * z;
- }
- return Math.sqrt(sum);
- }
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.imul', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(a, b) {
- a = Number(a);
- b = Number(b);
- var ah = a >>> 16 & 65535;
- var al = a & 65535;
- var bh = b >>> 16 & 65535;
- var bl = b & 65535;
- var lh = ah * bl + al * bh << 16 >>> 0;
- return al * bl + lh | 0;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.log10', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- return Math.log(x) / Math.LN10;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.log2', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- return Math.log(x) / Math.LN2;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.sign', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x);
- return x === 0 || isNaN(x) ? x : x > 0 ? 1 : -1;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.sinh', function(orig) {
- if (orig) {
- return orig;
- }
- var exp = Math.exp;
- var polyfill = function(x) {
- x = Number(x);
- if (x === 0) {
- return x;
- }
- return (exp(x) - exp(-x)) / 2;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.tanh', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x);
- if (x === 0) {
- return x;
- }
- var y = Math.exp(-2 * Math.abs(x));
- var z = (1 - y) / (1 + y);
- return x < 0 ? -z : z;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Math.trunc', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- x = Number(x);
- if (isNaN(x) || x === Infinity || x === -Infinity || x === 0) {
- return x;
- }
- var y = Math.floor(Math.abs(x));
- return x < 0 ? -y : y;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.EPSILON', function(orig) {
- return Math.pow(2, -52);
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.MAX_SAFE_INTEGER', function() {
- return 9007199254740991;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.MIN_SAFE_INTEGER', function() {
- return -9007199254740991;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.isFinite', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- if (typeof x !== 'number') {
- return false;
- }
- return !isNaN(x) && x !== Infinity && x !== -Infinity;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.isInteger', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- if (!Number.isFinite(x)) {
- return false;
- }
- return x === Math.floor(x);
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.isNaN', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- return typeof x === 'number' && isNaN(x);
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.isSafeInteger', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(x) {
- return Number.isInteger(x) && Math.abs(x) <= Number.MAX_SAFE_INTEGER;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.parseFloat', function(orig) {
- return orig || parseFloat;
- }, 'es6', 'es3');
- $jscomp.polyfill('Number.parseInt', function(orig) {
- return orig || parseInt;
- }, 'es6', 'es3');
- $jscomp.assign = typeof Object.assign == 'function' ? Object.assign : function(target, var_args) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- if (!source) {
- continue;
- }
- for (var key in source) {
- if ($jscomp.owns(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- $jscomp.polyfill('Object.assign', function(orig) {
- return orig || $jscomp.assign;
- }, 'es6', 'es3');
- $jscomp.polyfill('Object.entries', function(orig) {
- if (orig) {
- return orig;
- }
- var entries = function(obj) {
- var result = [];
- for (var key in obj) {
- if ($jscomp.owns(obj, key)) {
- result.push([key, obj[key]]);
- }
- }
- return result;
- };
- return entries;
- }, 'es8', 'es3');
- $jscomp.polyfill('Object.getOwnPropertySymbols', function(orig) {
- if (orig) {
- return orig;
- }
- return function() {
- return [];
- };
- }, 'es6', 'es5');
- $jscomp.polyfill('Reflect.ownKeys', function(orig) {
- if (orig) {
- return orig;
- }
- var symbolPrefix = 'jscomp_symbol_';
- function isSymbol(key) {
- return key.substring(0, symbolPrefix.length) == symbolPrefix;
- }
- var polyfill = function(target) {
- var keys = [];
- var names = Object.getOwnPropertyNames(target);
- var symbols = Object.getOwnPropertySymbols(target);
- for (var i = 0; i < names.length; i++) {
- (isSymbol(names[i]) ? symbols : keys).push(names[i]);
- }
- return keys.concat(symbols);
- };
- return polyfill;
- }, 'es6', 'es5');
- $jscomp.polyfill('Object.getOwnPropertyDescriptors', function(orig) {
- if (orig) {
- return orig;
- }
- var getOwnPropertyDescriptors = function(obj) {
- var result = {};
- var keys = Reflect.ownKeys(obj);
- for (var i = 0; i < keys.length; i++) {
- result[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);
- }
- return result;
- };
- return getOwnPropertyDescriptors;
- }, 'es8', 'es5');
- $jscomp.polyfill('Object.setPrototypeOf', function(orig) {
- return orig || $jscomp.setPrototypeOf;
- }, 'es6', 'es5');
- $jscomp.polyfill('Object.values', function(orig) {
- if (orig) {
- return orig;
- }
- var values = function(obj) {
- var result = [];
- for (var key in obj) {
- if ($jscomp.owns(obj, key)) {
- result.push(obj[key]);
- }
- }
- return result;
- };
- return values;
- }, 'es8', 'es3');
- $jscomp.polyfill('Reflect.apply', function(orig) {
- if (orig) {
- return orig;
- }
- var apply = Function.prototype.apply;
- var polyfill = function(target, thisArg, argList) {
- return apply.call(target, thisArg, argList);
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.objectCreate = $jscomp.ASSUME_ES5 || typeof Object.create == 'function' ? Object.create : function(prototype) {
- var ctor = function() {
- };
- ctor.prototype = prototype;
- return new ctor;
- };
- $jscomp.construct = function() {
- function reflectConstructWorks() {
- function Base() {
- }
- function Derived() {
- }
- new Base;
- Reflect.construct(Base, [], Derived);
- return new Base instanceof Base;
- }
- if (typeof Reflect != 'undefined' && Reflect.construct) {
- if (reflectConstructWorks()) {
- return Reflect.construct;
- }
- var brokenConstruct = Reflect.construct;
- var patchedConstruct = function(target, argList, opt_newTarget) {
- var out = brokenConstruct(target, argList);
- if (opt_newTarget) {
- Reflect.setPrototypeOf(out, opt_newTarget.prototype);
- }
- return out;
- };
- return patchedConstruct;
- }
- function construct(target, argList, opt_newTarget) {
- if (opt_newTarget === undefined) {
- opt_newTarget = target;
- }
- var proto = opt_newTarget.prototype || Object.prototype;
- var obj = $jscomp.objectCreate(proto);
- var apply = Function.prototype.apply;
- var out = apply.call(target, obj, argList);
- return out || obj;
- }
- return construct;
- }();
- $jscomp.polyfill('Reflect.construct', function(orig) {
- return $jscomp.construct;
- }, 'es6', 'es3');
- $jscomp.polyfill('Reflect.defineProperty', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(target, propertyKey, attributes) {
- try {
- Object.defineProperty(target, propertyKey, attributes);
- var desc = Object.getOwnPropertyDescriptor(target, propertyKey);
- if (!desc) {
- return false;
- }
- return desc.configurable === (attributes.configurable || false) && desc.enumerable === (attributes.enumerable || false) && ('value' in desc ? desc.value === attributes.value && desc.writable === (attributes.writable || false) : desc.get === attributes.get && desc.set === attributes.set);
- } catch (err) {
- return false;
- }
- };
- return polyfill;
- }, 'es6', 'es5');
- $jscomp.polyfill('Reflect.deleteProperty', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(target, propertyKey) {
- if (!$jscomp.owns(target, propertyKey)) {
- return true;
- }
- try {
- return delete target[propertyKey];
- } catch (err) {
- return false;
- }
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Reflect.getOwnPropertyDescriptor', function(orig) {
- return orig || Object.getOwnPropertyDescriptor;
- }, 'es6', 'es5');
- $jscomp.polyfill('Reflect.getPrototypeOf', function(orig) {
- return orig || Object.getPrototypeOf;
- }, 'es6', 'es5');
- $jscomp.findDescriptor = function(target, propertyKey) {
- var obj = target;
- while (obj) {
- var property = Reflect.getOwnPropertyDescriptor(obj, propertyKey);
- if (property) {
- return property;
- }
- obj = Reflect.getPrototypeOf(obj);
- }
- return undefined;
- };
- $jscomp.polyfill('Reflect.get', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(target, propertyKey, opt_receiver) {
- if (arguments.length <= 2) {
- return target[propertyKey];
- }
- var property = $jscomp.findDescriptor(target, propertyKey);
- if (property) {
- return property.get ? property.get.call(opt_receiver) : property.value;
- }
- return undefined;
- };
- return polyfill;
- }, 'es6', 'es5');
- $jscomp.polyfill('Reflect.has', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(target, propertyKey) {
- return propertyKey in target;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Reflect.isExtensible', function(orig) {
- if (orig) {
- return orig;
- }
- if ($jscomp.ASSUME_ES5 || typeof Object.isExtensible == 'function') {
- return Object.isExtensible;
- }
- return function() {
- return true;
- };
- }, 'es6', 'es3');
- $jscomp.polyfill('Reflect.preventExtensions', function(orig) {
- if (orig) {
- return orig;
- }
- if (!($jscomp.ASSUME_ES5 || typeof Object.preventExtensions == 'function')) {
- return function() {
- return false;
- };
- }
- var polyfill = function(target) {
- Object.preventExtensions(target);
- return !Object.isExtensible(target);
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('Reflect.set', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(target, propertyKey, value, opt_receiver) {
- var property = $jscomp.findDescriptor(target, propertyKey);
- if (!property) {
- if (Reflect.isExtensible(target)) {
- target[propertyKey] = value;
- return true;
- }
- return false;
- }
- if (property.set) {
- property.set.call(arguments.length > 3 ? opt_receiver : target, value);
- return true;
- } else {
- if (property.writable && !Object.isFrozen(target)) {
- target[propertyKey] = value;
- return true;
- }
- }
- return false;
- };
- return polyfill;
- }, 'es6', 'es5');
- $jscomp.polyfill('Reflect.setPrototypeOf', function(orig) {
- if (orig) {
- return orig;
- } else {
- if ($jscomp.setPrototypeOf) {
- var setPrototypeOf = $jscomp.setPrototypeOf;
- var polyfill = function(target, proto) {
- try {
- setPrototypeOf(target, proto);
- return true;
- } catch (e) {
- return false;
- }
- };
- return polyfill;
- } else {
- return null;
- }
- }
- }, 'es6', 'es5');
- $jscomp.polyfill('Set', function(NativeSet) {
- function isConformant() {
- if ($jscomp.ASSUME_NO_NATIVE_SET || !NativeSet || typeof NativeSet != 'function' || !NativeSet.prototype.entries || typeof Object.seal != 'function') {
- return false;
- }
- try {
- NativeSet = NativeSet;
- var value = Object.seal({x:4});
- var set = new NativeSet($jscomp.makeIterator([value]));
- if (!set.has(value) || set.size != 1 || set.add(value) != set || set.size != 1 || set.add({x:4}) != set || set.size != 2) {
- return false;
- }
- var iter = set.entries();
- var item = iter.next();
- if (item.done || item.value[0] != value || item.value[1] != value) {
- return false;
- }
- item = iter.next();
- if (item.done || item.value[0] == value || item.value[0].x != 4 || item.value[1] != item.value[0]) {
- return false;
- }
- return iter.next().done;
- } catch (err) {
- return false;
- }
- }
- if ($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS) {
- if (NativeSet && $jscomp.ES6_CONFORMANCE) {
- return NativeSet;
- }
- } else {
- if (isConformant()) {
- return NativeSet;
- }
- }
- $jscomp.initSymbol();
- $jscomp.initSymbolIterator();
- var PolyfillSet = function(opt_iterable) {
- this.map_ = new Map;
- if (opt_iterable) {
- var iter = $jscomp.makeIterator(opt_iterable);
- var entry;
- while (!(entry = iter.next()).done) {
- var item = entry.value;
- this.add(item);
- }
- }
- this.size = this.map_.size;
- };
- PolyfillSet.prototype.add = function(value) {
- value = value === 0 ? 0 : value;
- this.map_.set(value, value);
- this.size = this.map_.size;
- return this;
- };
- PolyfillSet.prototype['delete'] = function(value) {
- var result = this.map_['delete'](value);
- this.size = this.map_.size;
- return result;
- };
- PolyfillSet.prototype.clear = function() {
- this.map_.clear();
- this.size = 0;
- };
- PolyfillSet.prototype.has = function(value) {
- return this.map_.has(value);
- };
- PolyfillSet.prototype.entries = function() {
- return this.map_.entries();
- };
- PolyfillSet.prototype.values = function() {
- return this.map_.values();
- };
- PolyfillSet.prototype.keys = PolyfillSet.prototype.values;
- PolyfillSet.prototype[Symbol.iterator] = PolyfillSet.prototype.values;
- PolyfillSet.prototype.forEach = function(callback, opt_thisArg) {
- var set = this;
- this.map_.forEach(function(value) {
- return callback.call(opt_thisArg, value, value, set);
- });
- };
- return PolyfillSet;
- }, 'es6', 'es3');
- $jscomp.checkStringArgs = function(thisArg, arg, func) {
- if (thisArg == null) {
- throw new TypeError("The 'this' value for String.prototype." + func + ' must not be null or undefined');
- }
- if (arg instanceof RegExp) {
- throw new TypeError('First argument to String.prototype.' + func + ' must not be a regular expression');
- }
- return thisArg + '';
- };
- $jscomp.polyfill('String.prototype.codePointAt', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(position) {
- var string = $jscomp.checkStringArgs(this, null, 'codePointAt');
- var size = string.length;
- position = Number(position) || 0;
- if (!(position >= 0 && position < size)) {
- return void 0;
- }
- position = position | 0;
- var first = string.charCodeAt(position);
- if (first < 55296 || first > 56319 || position + 1 === size) {
- return first;
- }
- var second = string.charCodeAt(position + 1);
- if (second < 56320 || second > 57343) {
- return first;
- }
- return (first - 55296) * 1024 + second + 9216;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('String.prototype.endsWith', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(searchString, opt_position) {
- var string = $jscomp.checkStringArgs(this, searchString, 'endsWith');
- searchString = searchString + '';
- if (opt_position === void 0) {
- opt_position = string.length;
- }
- var i = Math.max(0, Math.min(opt_position | 0, string.length));
- var j = searchString.length;
- while (j > 0 && i > 0) {
- if (string[--i] != searchString[--j]) {
- return false;
- }
- }
- return j <= 0;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('String.fromCodePoint', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(var_args) {
- var result = '';
- for (var i = 0; i < arguments.length; i++) {
- var code = Number(arguments[i]);
- if (code < 0 || code > 1114111 || code !== Math.floor(code)) {
- throw new RangeError('invalid_code_point ' + code);
- }
- if (code <= 65535) {
- result += String.fromCharCode(code);
- } else {
- code -= 65536;
- result += String.fromCharCode(code >>> 10 & 1023 | 55296);
- result += String.fromCharCode(code & 1023 | 56320);
- }
- }
- return result;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('String.prototype.includes', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(searchString, opt_position) {
- var string = $jscomp.checkStringArgs(this, searchString, 'includes');
- return string.indexOf(searchString, opt_position || 0) !== -1;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.polyfill('String.prototype.repeat', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(copies) {
- var string = $jscomp.checkStringArgs(this, null, 'repeat');
- if (copies < 0 || copies > 1342177279) {
- throw new RangeError('Invalid count value');
- }
- copies = copies | 0;
- var result = '';
- while (copies) {
- if (copies & 1) {
- result += string;
- }
- if (copies >>>= 1) {
- string += string;
- }
- }
- return result;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.stringPadding = function(padString, padLength) {
- var padding = padString !== undefined ? String(padString) : ' ';
- if (!(padLength > 0) || !padding) {
- return '';
- }
- var repeats = Math.ceil(padLength / padding.length);
- return padding.repeat(repeats).substring(0, padLength);
- };
- $jscomp.polyfill('String.prototype.padEnd', function(orig) {
- if (orig) {
- return orig;
- }
- var padEnd = function(targetLength, opt_padString) {
- var string = $jscomp.checkStringArgs(this, null, 'padStart');
- var padLength = targetLength - string.length;
- return string + $jscomp.stringPadding(opt_padString, padLength);
- };
- return padEnd;
- }, 'es8', 'es3');
- $jscomp.polyfill('String.prototype.padStart', function(orig) {
- if (orig) {
- return orig;
- }
- var padStart = function(targetLength, opt_padString) {
- var string = $jscomp.checkStringArgs(this, null, 'padStart');
- var padLength = targetLength - string.length;
- return $jscomp.stringPadding(opt_padString, padLength) + string;
- };
- return padStart;
- }, 'es8', 'es3');
- $jscomp.polyfill('String.prototype.startsWith', function(orig) {
- if (orig) {
- return orig;
- }
- var polyfill = function(searchString, opt_position) {
- var string = $jscomp.checkStringArgs(this, searchString, 'startsWith');
- searchString = searchString + '';
- var strLen = string.length;
- var searchLen = searchString.length;
- var i = Math.max(0, Math.min(opt_position | 0, string.length));
- var j = 0;
- while (j < searchLen && i < strLen) {
- if (string[i++] != searchString[j++]) {
- return false;
- }
- }
- return j >= searchLen;
- };
- return polyfill;
- }, 'es6', 'es3');
- $jscomp.arrayFromIterator = function(iterator) {
- var i;
- var arr = [];
- while (!(i = iterator.next()).done) {
- arr.push(i.value);
- }
- return arr;
- };
- $jscomp.arrayFromIterable = function(iterable) {
- if (iterable instanceof Array) {
- return iterable;
- } else {
- return $jscomp.arrayFromIterator($jscomp.makeIterator(iterable));
- }
- };
- $jscomp.inherits = function(childCtor, parentCtor) {
- childCtor.prototype = $jscomp.objectCreate(parentCtor.prototype);
- childCtor.prototype.constructor = childCtor;
- if ($jscomp.setPrototypeOf) {
- var setPrototypeOf = $jscomp.setPrototypeOf;
- setPrototypeOf(childCtor, parentCtor);
- } else {
- for (var p in parentCtor) {
- if (p == 'prototype') {
- continue;
- }
- if (Object.defineProperties) {
- var descriptor = Object.getOwnPropertyDescriptor(parentCtor, p);
- if (descriptor) {
- Object.defineProperty(childCtor, p, descriptor);
- }
- } else {
- childCtor[p] = parentCtor[p];
- }
- }
- }
- childCtor.superClass_ = parentCtor.prototype;
- };
- $jscomp.polyfill('WeakSet', function(NativeWeakSet) {
- function isConformant() {
- if (!NativeWeakSet || !Object.seal) {
- return false;
- }
- try {
- var x = Object.seal({});
- var y = Object.seal({});
- var set = new NativeWeakSet([x]);
- if (!set.has(x) || set.has(y)) {
- return false;
- }
- set['delete'](x);
- set.add(y);
- return !set.has(x) && set.has(y);
- } catch (err) {
- return false;
- }
- }
- if ($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS) {
- if (NativeWeakSet && $jscomp.ES6_CONFORMANCE) {
- return NativeWeakSet;
- }
- } else {
- if (isConformant()) {
- return NativeWeakSet;
- }
- }
- var PolyfillWeakSet = function(opt_iterable) {
- this.map_ = new WeakMap;
- if (opt_iterable) {
- $jscomp.initSymbol();
- $jscomp.initSymbolIterator();
- var iter = $jscomp.makeIterator(opt_iterable);
- var entry;
- while (!(entry = iter.next()).done) {
- var item = entry.value;
- this.add(item);
- }
- }
- };
- PolyfillWeakSet.prototype.add = function(elem) {
- this.map_.set(elem, true);
- return this;
- };
- PolyfillWeakSet.prototype.has = function(elem) {
- return this.map_.has(elem);
- };
- PolyfillWeakSet.prototype['delete'] = function(elem) {
- return this.map_['delete'](elem);
- };
- return PolyfillWeakSet;
- }, 'es6', 'es3');
- try {
- if (Array.prototype.values.toString().indexOf('[native code]') == -1) {
- delete Array.prototype.values;
- }
- } catch (e) {
- }
- Ext.define('Ext.overrides.dom.Element', {override:'Ext.dom.Element', rippleShowTimeout:300});
- Ext.define('Ext.theme.material.Widget', {override:'Ext.Widget', statics:{floatInset:16 / (window.devicePixelRatio || 1)}});
- Ext.define('Ext.theme.material.list.Tree', {override:'Ext.list.Tree', config:{itemRipple:{release:true, delegate:'.' + Ext.baseCSSPrefix + 'treelist-row', color:'default'}}});
- Ext.define('Ext.theme.material.Button', {override:'Ext.Button', config:{ripple:{delegate:'.' + Ext.baseCSSPrefix + 'inner-el'}}, materialIconRe:/^md-icon[-|_](.*)/, applyIconCls:function(classList) {
- var len, i, cls, materialMatch;
- if (classList) {
- classList = Ext.dom.Element.splitCls(classList);
- len = classList.length;
- for (i = 0; i < len; i++) {
- cls = classList[i];
- materialMatch = cls && cls.match(this.materialIconRe);
- if (materialMatch && materialMatch.length > 1) {
- classList.unshift('md-icon');
- break;
- }
- }
- return classList.join(' ');
- }
- return classList;
- }});
- Ext.define('Ext.theme.material.Tool', {override:'Ext.Tool', config:{ripple:{bound:false, color:'default', centered:true}}});
- Ext.define('Ext.theme.material.Panel', {override:'Ext.Panel', config:{buttonAlign:'right', buttonToolbar:{defaultButtonUI:null}}});
- Ext.define('Ext.theme.material.menu.Item', {override:'Ext.menu.Item', config:{ripple:{delegate:'.' + Ext.baseCSSPrefix + 'body-el'}}, shouldRipple:function() {
- var me = this, rippleDelay = me.el.rippleShowTimeout;
- me.clickHideDelay = me.clickHideDelay > rippleDelay ? me.clickHideDelay : rippleDelay;
- return this.getRipple();
- }});
- Ext.define('Ext.theme.material.menu.Menu', {override:'Ext.menu.Menu', config:{indented:false}});
- Ext.define('Ext.theme.material.SplitButton', {override:'Ext.SplitButton', config:{splitRipple:{delegate:'.x-splitInner-el'}, arrowRipple:{delegate:'.x-splitArrow-el'}}, menuShowDelay:0, doDestroy:function() {
- var me = this;
- if (me.hasOwnProperty('menuShowTimeout')) {
- Ext.undefer(me.menuShowTimeout);
- }
- me.callParent();
- }});
- Ext.define('Ext.theme.material.layout.overflow.Scroller', {override:'Ext.layout.overflow.Scroller', config:{backwardTool:{ripple:{centered:false, bound:true, diameterLimit:false}}, forwardTool:{ripple:{centered:false, bound:true, diameterLimit:false}}}});
- Ext.define('Ext.theme.material.field.Field', {override:'Ext.field.Field', config:{labelAlign:'top'}});
- Ext.define('Ext.theme.material.field.Text', {override:'Ext.field.Text', config:{labelAlign:'placeholder', animateUnderline:true}});
- Ext.define('Ext.theme.neptune.Titlebar', {override:'Ext.TitleBar', config:{defaultButtonUI:'alt'}});
- Ext.define('Ext.theme.material.TitleBar', {override:'Ext.TitleBar', config:{titleAlign:'left', defaultButtonUI:'alt'}});
- Ext.define('Ext.theme.material.Toast', {override:'Ext.Toast', config:{alignment:'b-b'}});
- Ext.define('Ext.theme.material.dataview.Abstract', {override:'Ext.dataview.Abstract', config:{itemRipple:{release:true, color:'default'}}});
- Ext.define('Ext.theme.material.dataview.List', {override:'Ext.dataview.List', config:{rowLines:false}});
- Ext.define('Ext.theme.material.dataview.IndexBar', {override:'Ext.dataview.IndexBar', config:{autoHide:true, letters:['*', '#', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']}});
- Ext.define('Ext.theme.material.dataview.NestedList', {override:'Ext.dataview.NestedList', config:{backText:'', useTitleAsBackText:false, backButton:{iconCls:'md-icon-arrow-back', hidden:true}}});
- Ext.define('Ext.theme.material.dataview.pullrefresh.PullRefresh', {override:'Ext.dataview.pullrefresh.PullRefresh', config:{overlay:true, widget:{xtype:'pullrefreshspinner'}}});
- Ext.define('Ext.theme.material.field.Checkbox', {override:'Ext.field.Checkbox', config:{labelAlign:'left', bodyAlign:'end', ripple:{delegate:'.' + Ext.baseCSSPrefix + 'icon-el', bound:false, color:'default'}}});
- Ext.define('Ext.theme.neptune.panel.Date', {override:'Ext.panel.Date', border:true});
- Ext.define('Ext.theme.material.panel.Date', {override:'Ext.panel.Date', config:{headerFormat:'D, M j', hideCaptions:false, hideOutside:true, navigationPosition:'caption', selectOnNavigate:false, showTodayButton:false, splitTitle:true, titleAnimation:false, tools:{previousYear:null, nextYear:null}}});
- Ext.define('Ext.theme.material.field.Date', {override:'Ext.field.Date', config:{floatedPicker:{selectOnNavigate:true, header:{hidden:true}}}});
- Ext.define('Ext.theme.material.form.Borders', {override:'Ext.form.Borders', config:{fieldSeparators:false, inputBorders:true}});
- Ext.define('Ext.theme.material.field.Toggle', {override:'Ext.field.Toggle', config:{ripple:{delegate:'.' + Ext.baseCSSPrefix + 'thumb', bound:false, fit:false, color:'default'}}});
- Ext.define('Ext.theme.material.grid.cell.Check', {override:'Ext.grid.cell.Check', config:{ripple:{delegate:'.' + Ext.baseCSSPrefix + 'checkbox-el', bound:false, color:'default', centered:true}}});
- Ext.define('Ext.theme.material.grid.Grid', {override:'Ext.grid.Grid', config:{rowLines:true, striped:false}});
- Ext.define('Ext.theme.material.navigation.Bar', {override:'Ext.navigation.Bar', config:{defaultBackButtonText:'', useTitleForBackButtonText:false, backButton:{align:'left', ui:'back', hidden:true, iconCls:'md-icon-arrow-back'}}});
- Ext.define('Ext.theme.material.panel.Header', {override:'Ext.panel.Header', config:{titleAlign:'left'}});
- Ext.define('Ext.theme.material.tab.Tab', {override:'Ext.tab.Tab', config:{iconAlign:'top', flex:1}, platformConfig:{desktop:{maxWidth:200}}});
- Ext.define('Ext.theme.material.tab.Bar', {override:'Ext.tab.Bar', config:{animateIndicator:true}, platformConfig:{desktop:{layout:{pack:'center'}}}});
- Ext.namespace('Ext.theme.is').Neptune = true;
- Ext.theme.name = 'Neptune';
- Ext.theme.getDocCls = function() {
- return Ext.platformTags.desktop ? '' : 'x-big';
- };
- Ext.define('Ext.theme.Material', {singleton:true, _autoUpdateMeta:true, _defaultWeight:'500', _colors:{'red':{50:'#ffebee', 100:'#ffcdd2', 200:'#ef9a9a', 300:'#e57373', 400:'#ef5350', 500:'#f44336', 600:'#e53935', 700:'#d32f2f', 800:'#c62828', 900:'#b71c1c', 'a100':'#ff8a80', 'a200':'#ff5252', 'a400':'#ff1744', 'a700':'#d50000'}, 'pink':{50:'#fce4ec', 100:'#f8bbd0', 200:'#f48fb1', 300:'#f06292', 400:'#ec407a', 500:'#e91e63', 600:'#d81b60', 700:'#c2185b', 800:'#ad1457', 900:'#880e4f', 'a100':'#ff80ab',
- 'a200':'#ff4081', 'a400':'#f50057', 'a700':'#c51162'}, 'purple':{50:'#f3e5f5', 100:'#e1bee7', 200:'#ce93d8', 300:'#ba68c8', 400:'#ab47bc', 500:'#9c27b0', 600:'#8e24aa', 700:'#7b1fa2', 800:'#6a1b9a', 900:'#4a148c', 'a100':'#ea80fc', 'a200':'#e040fb', 'a400':'#d500f9', 'a700':'#aa00ff'}, 'deep-purple':{50:'#ede7f6', 100:'#d1c4e9', 200:'#b39ddb', 300:'#9575cd', 400:'#7e57c2', 500:'#673ab7', 600:'#5e35b1', 700:'#512da8', 800:'#4527a0', 900:'#311b92', 'a100':'#b388ff', 'a200':'#7c4dff', 'a400':'#651fff',
- 'a700':'#6200ea'}, 'indigo':{50:'#e8eaf6', 100:'#c5cae9', 200:'#9fa8da', 300:'#7986cb', 400:'#5c6bc0', 500:'#3f51b5', 600:'#3949ab', 700:'#303f9f', 800:'#283593', 900:'#1a237e', 'a100':'#8c9eff', 'a200':'#536dfe', 'a400':'#3d5afe', 'a700':'#304ffe'}, 'blue':{50:'#e3f2fd', 100:'#bbdefb', 200:'#90caf9', 300:'#64b5f6', 400:'#42a5f5', 500:'#2196f3', 600:'#1e88e5', 700:'#1976d2', 800:'#1565c0', 900:'#0d47a1', 'a100':'#82b1ff', 'a200':'#448aff', 'a400':'#2979ff', 'a700':'#2962ff'}, 'light-blue':{50:'#e1f5fe',
- 100:'#b3e5fc', 200:'#81d4fa', 300:'#4fc3f7', 400:'#29b6f6', 500:'#03a9f4', 600:'#039be5', 700:'#0288d1', 800:'#0277bd', 900:'#01579b', 'a100':'#80d8ff', 'a200':'#40c4ff', 'a400':'#00b0ff', 'a700':'#0091ea'}, 'cyan':{50:'#e0f7fa', 100:'#b2ebf2', 200:'#80deea', 300:'#4dd0e1', 400:'#26c6da', 500:'#00bcd4', 600:'#00acc1', 700:'#0097a7', 800:'#00838f', 900:'#006064', 'a100':'#84ffff', 'a200':'#18ffff', 'a400':'#00e5ff', 'a700':'#00b8d4'}, 'teal':{50:'#e0f2f1', 100:'#b2dfdb', 200:'#80cbc4', 300:'#4db6ac',
- 400:'#26a69a', 500:'#009688', 600:'#00897b', 700:'#00796b', 800:'#00695c', 900:'#004d40', 'a100':'#a7ffeb', 'a200':'#64ffda', 'a400':'#1de9b6', 'a700':'#00bfa5'}, 'green':{50:'#e8f5e9', 100:'#c8e6c9', 200:'#a5d6a7', 300:'#81c784', 400:'#66bb6a', 500:'#4caf50', 600:'#43a047', 700:'#388e3c', 800:'#2e7d32', 900:'#1b5e20', 'a100':'#b9f6ca', 'a200':'#69f0ae', 'a400':'#00e676', 'a700':'#00c853'}, 'light-green':{50:'#f1f8e9', 100:'#dcedc8', 200:'#c5e1a5', 300:'#aed581', 400:'#9ccc65', 500:'#8bc34a', 600:'#7cb342',
- 700:'#689f38', 800:'#558b2f', 900:'#33691e', 'a100':'#ccff90', 'a200':'#b2ff59', 'a400':'#76ff03', 'a700':'#64dd17'}, 'lime':{50:'#f9fbe7', 100:'#f0f4c3', 200:'#e6ee9c', 300:'#dce775', 400:'#d4e157', 500:'#cddc39', 600:'#c0ca33', 700:'#afb42b', 800:'#9e9d24', 900:'#827717', 'a100':'#f4ff81', 'a200':'#eeff41', 'a400':'#c6ff00', 'a700':'#aeea00'}, 'yellow':{50:'#fffde7', 100:'#fff9c4', 200:'#fff59d', 300:'#fff176', 400:'#ffee58', 500:'#ffeb3b', 600:'#fdd835', 700:'#fbc02d', 800:'#f9a825', 900:'#f57f17',
- 'a100':'#ffff8d', 'a200':'#ffff00', 'a400':'#ffea00', 'a700':'#ffd600'}, 'amber':{50:'#fff8e1', 100:'#ffecb3', 200:'#ffe082', 300:'#ffd54f', 400:'#ffca28', 500:'#ffc107', 600:'#ffb300', 700:'#ffa000', 800:'#ff8f00', 900:'#ff6f00', 'a100':'#ffe57f', 'a200':'#ffd740', 'a400':'#ffc400', 'a700':'#ffab00'}, 'orange':{50:'#fff3e0', 100:'#ffe0b2', 200:'#ffcc80', 300:'#ffb74d', 400:'#ffa726', 500:'#ff9800', 600:'#fb8c00', 700:'#f57c00', 800:'#ef6c00', 900:'#e65100', 'a100':'#ffd180', 'a200':'#ffab40', 'a400':'#ff9100',
- 'a700':'#ff6d00'}, 'deep-orange':{50:'#fbe9e7', 100:'#ffccbc', 200:'#ffab91', 300:'#ff8a65', 400:'#ff7043', 500:'#ff5722', 600:'#f4511e', 700:'#e64a19', 800:'#d84315', 900:'#bf360c', 'a100':'#ff9e80', 'a200':'#ff6e40', 'a400':'#ff3d00', 'a700':'#dd2c00'}, 'brown':{50:'#efebe9', 100:'#d7ccc8', 200:'#bcaaa4', 300:'#a1887f', 400:'#8d6e63', 500:'#795548', 600:'#6d4c41', 700:'#5d4037', 800:'#4e342e', 900:'#3e2723'}, 'grey':{50:'#fafafa', 100:'#f5f5f5', 200:'#eeeeee', 300:'#e0e0e0', 400:'#bdbdbd', 500:'#9e9e9e',
- 600:'#757575', 700:'#616161', 800:'#424242', 900:'#212121'}, 'blue-grey':{50:'#eceff1', 100:'#cfd8dc', 200:'#b0bec5', 300:'#90a4ae', 400:'#78909c', 500:'#607d8b', 600:'#546e7a', 700:'#455a64', 800:'#37474f', 900:'#263238', 1E3:'#11171a'}}, hasFashion:function() {
- return !!window.Fashion && !!Fashion.css && Fashion.css.setVariables;
- }, setAutoUpdateMeta:function(value) {
- this._autoUpdateMeta = value;
- }, getAutoUpdateMeta:function() {
- return this._autoUpdateMeta;
- }, getDefaultWeight:function() {
- return this._defaultWeight;
- }, setDarkMode:function(value) {
- if (!this.hasFashion()) {
- Ext.Logger.warn('Fashion was not found and is required to set CSS Variables for Material Theme');
- return;
- }
- Fashion.css.setVariables({'dark-mode':value ? 'true' : 'false'});
- }, setColors:function(colorsConfig) {
- var obj = {}, baseColor, accentColor;
- if (!this.hasFashion()) {
- Ext.Logger.warn('Fashion was not found and is required to set CSS Variables for Material Theme');
- return;
- }
- colorsConfig = Ext.merge({baseWeight:this.getDefaultWeight(), accentWeight:this.getDefaultWeight()}, colorsConfig);
- baseColor = this._colors[colorsConfig.base];
- accentColor = this._colors[colorsConfig.accent];
- if (baseColor) {
- if (baseColor[colorsConfig.baseWeight]) {
- obj['base-color-name'] = colorsConfig.base;
- if (this.getAutoUpdateMeta()) {
- this.updateMetaThemeColor(colorsConfig.base, colorsConfig.baseWeight);
- }
- } else {
- Ext.Logger.warn('Base color weight: ' + colorsConfig.baseWeight + ' is not a valid weight', this);
- }
- } else {
- if (colorsConfig.base) {
- Ext.Logger.warn('Base color: ' + colorsConfig.base + ' is not a valid material color', this);
- }
- }
- if (accentColor) {
- if (accentColor[colorsConfig.accentWeight]) {
- obj['accent-color-name'] = colorsConfig.accent;
- } else {
- Ext.Logger.warn('Accent color weight: ' + colorsConfig.accentWeight + ' is not a valid weight', this);
- }
- } else {
- if (colorsConfig.accent) {
- Ext.Logger.warn('Accent color: ' + colorsConfig.accent + ' is not a valid material color', this);
- }
- }
- if (colorsConfig.darkMode !== null) {
- obj['dark-mode'] = colorsConfig.darkMode ? 'true' : 'false';
- }
- Fashion.css.setVariables(obj);
- }, updateMetaThemeColor:function(colorName, weight) {
- var color = this._colors[colorName], toolbarIsDynamic = Ext.manifest.material.toolbar.dynamic, meta;
- if (!weight) {
- weight = this.getDefaultWeight();
- }
- if (Ext.platformTags.android && Ext.platformTags.chrome && toolbarIsDynamic && color) {
- color = color[weight];
- meta = Ext.query('meta[name\x3d"theme-color"]')[0];
- if (meta) {
- meta.setAttribute('content', color);
- }
- }
- }, getColors:function() {
- return this._colors;
- }});
- var color, toolbarIsDynamic, head, meta;
- Ext.require('Ext.theme.Material');
- if (Ext.platformTags.android && Ext.platformTags.chrome && Ext.manifest.material && Ext.manifest.material.toolbar) {
- color = Ext.manifest.material.toolbar.color;
- toolbarIsDynamic = Ext.manifest.material.toolbar.dynamic;
- head = document.head;
- if (toolbarIsDynamic && Ext.supports.CSSVariables) {
- color = getComputedStyle(document.body).getPropertyValue('--primary-color-md');
- color = color.replace(/ /g, '').replace(/^#(?:\\3)?/, '#');
- }
- if (color) {
- meta = document.createElement('meta');
- meta.setAttribute('name', 'theme-color');
- meta.setAttribute('content', color);
- head.appendChild(meta);
- }
- }
- Ext.namespace('Ext.theme.is').Material = true;
- Ext.theme.name = 'Material';
|