{"version":3,"file":"polyfills.js","mappings":"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","names":["require","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","define","global","globalThis","__symbol__","name","__Zone_symbol_prefix","initZone","_a","performance","mark","performanceMeasure","label","measure","ZoneImpl","parent","zoneSpec","_parent","_name","_properties","properties","_zoneDelegate","_ZoneDelegate","assertZonePatched","Promise","patches","ZoneAwarePromise","Error","defineProperty","get","zone","current","enumerable","configurable","_currentZoneFrame","_currentTask","__load_patch","fn","ignoreDuplicate","checkDuplicate","perfName","_api","key","getZoneWith","fork","wrap","callback","source","_callback","intercept","runGuarded","run","applyThis","applyArgs","invoke","error","handleError","runTask","task","NO_ZONE","zoneTask","type","_b","data","_c","_d","isPeriodic","_e","isRefreshable","state","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","previousTask","cancelFn","undefined","invokeTask","unknown","scheduling","zoneDelegates","_zoneDelegates","_updateTaskCount","scheduleTask","newZone","concat","_zone","err","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","runCount","count","nativeMicroTaskQueuePromise","DELEGATE_ZS","onHasTask","delegate","_","target","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","parentHasTask","targetZone","returnTask","push","scheduleFn","value","isEmpty","counts","prev","next","change","options","_state","self","useG","args","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","toString","handleId","toJSON","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeScheduleMicroTask","func","resolve","nativeThen","then","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","loadZone","Zone","getOwnPropertyDescriptor","ObjectGetPrototypeOf","getPrototypeOf","create","Array","slice","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","window","internalWindow","_global","REMOVE_ATTRIBUTE","patchPrototype","fnNames","constructor","_loop_1","patched","name_1","isPropertyWritable","propertyDesc","writable","set","isWebWorker","WorkerGlobalScope","isNode","process","isBrowser","HTMLElement","isMix","zoneSymbolEventNames$1","enableBeforeunloadSymbol","wrapFn","event","eventNameSymbol","result","listener","errorEvent","message","filename","lineno","colno","preventDefault","returnValue","patchProperty","obj","prop","desc","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","removeEventListener","addEventListener","removeAttribute","onProperties","j","originalInstanceKey","className","OriginalClass","a","instance","patchFn","proto","delegateName","patchDelegate_1","funcName","metaCreator","setNative","cbIdx","meta","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","navigator","userAgent","indexOf","isFunction","isNumber","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","api","apis","patchOptions","ADD_EVENT_LISTENER","add","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","originalDelegate","once","delegate_1","globalCallback","context","isCapture","tasks","errors","copyTasks","_loop_2","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","nativePrependEventListener","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","buildEventListenerOptions","passive","capture","prepend","customSchedulePrepend","isExisting","symbolEventNames","symbolEventName","existingTasks","splice","removeAbortListener","allRemoved","compareTaskCallbackVsDelegate","typeOfDelegate","compare","diff","unpatchedEvents","passiveEvents","copyEventListenerOptions","newOptions","signal","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","aborted","constructorName","targetSource","onAbort_1","unshift","existingTask","findEventTasks","symbolCaptureEventName","captureTasks","removeTasks","keys","match","exec","evtName","results","foundTasks","captureFalseTasks","captureTrueTasks","Event","patchQueueMicrotask","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","handleOrId","handle","refresh","clearTask","options_1","delay","callback_1","handle_1","handleId_1","isPeriodic_1","isRefreshable_1","task_1","originalRefresh_1","id","patchCustomElements","customElements","callbacks","eventTargetPatch","eventNames","EVENT_TARGET","EventTarget","patchEvent","ignoreProperties","tip","filter","ip","targetIgnoreProperties","op","patchFilteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","propertyDescriptorPatch","__Zone_ignore_on_properties","patchTargets","internalWindow_1","ignoreErrorProperties","patchBrowser","legacyPatch","clear","blockingMethods","name_2","XMLHttpRequestEventTarget","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequest","XMLHttpRequestPrototype","oriAddListener","oriRemoveListener","XMLHttpRequestEventTarget_1","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","sendNative","url","placeholderCallback","abortNative","findPendingTask","newListener","readyState","DONE","loadTasks","status","oriInvoke_1","geolocation","findPromiseRejectionHandler","e","forEach","PromiseRejectionEvent","evt","promise","reason","rejection","patchPromise","readableObjectToString","JSON","stringify","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","console","stack","_loop_3","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handler","isThenable","forwardResolution","forwardRejection","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","v","resolvePromise","wasCalled","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","TypeError","clearRejectedNoCatch","trace","currentTask","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","AggregateError","executor","withResolvers","res","rej","any","values","Symbol","iterator","promises","_i","values_1","finished","race","onResolve","onReject","values_2","all","allWithCallback","allSettled","thenCallback","errorCallback","unresolvedCount","valueIndex","resolvedValues","_loop_4","this_1","curValueIndex","thenErr","values_3","toStringTag","species","C","catch","finally","onFinally","NativePromise","symbolThenPatched","Ctor","originalThen","_this","zoneify","resultPromise","ctor","patchToString","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","targetName","method","nativeDelegate","opts","descriptor","patchUtil","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchCommon","Zone$1","exports","__webpack_require__","module","BLOCK_MARKER$1","_SerializerVisitor","visitText","text","visitContainer","container","children","child","visit","join","visitIcu","icu","strCases","cases","k","expression","visitTagPlaceholder","ph","isVoid","startName","closeName","visitPlaceholder","visitIcuPlaceholder","visitBlockPlaceholder","Endian","findEndOfBlock","cooked","raw","cookedIndex","rawIndex","Little","Big","$localize$1","messageParts","expressions","translate","translation","stripBlock","BLOCK_MARKER","messagePart","rawMessagePart","charAt","$localize","ɵ$localize"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/polyfills.ts","./node_modules/zone.js/bundles/zone.umd.js","./node_modules/@angular/localize/fesm2022/localize.mjs","./node_modules/@angular/localize/fesm2022/init.mjs"],"sourcesContent":["/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\n/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags.ts';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js'; // Included with Angular CLI.\r\n\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n","'use strict';\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * @license Angular v\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n})((function () {\n 'use strict';\n var global = globalThis;\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n function __symbol__(name) {\n var symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n return symbolPrefix + name;\n }\n function initZone() {\n var _a;\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n var ZoneImpl = /** @class */ (function () {\n function ZoneImpl(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = (zoneSpec && zoneSpec.properties) || {};\n this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n ZoneImpl.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(ZoneImpl, \"root\", {\n get: function () {\n var zone = _a.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ZoneImpl, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ZoneImpl, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: false,\n configurable: true\n });\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneImpl.__load_patch = function (name, fn, ignoreDuplicate) {\n if (ignoreDuplicate === void 0) { ignoreDuplicate = false; }\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, _a, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(ZoneImpl.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ZoneImpl.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n ZoneImpl.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n ZoneImpl.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n ZoneImpl.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n ZoneImpl.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n ZoneImpl.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n ZoneImpl.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n ZoneImpl.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name +\n '; Execution: ' +\n this.name +\n ')');\n }\n var zoneTask = task;\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n var type = task.type, _b = task.data, _c = _b === void 0 ? {} : _b, _d = _c.isPeriodic, isPeriodic = _d === void 0 ? false : _d, _e = _c.isRefreshable, isRefreshable = _e === void 0 ? false : _e;\n if (task.state === notScheduled && (type === eventTask || type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && zoneTask._transitionTo(running, scheduled);\n var previousTask = _currentTask;\n _currentTask = zoneTask;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (type == macroTask && task.data && !isPeriodic && !isRefreshable) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, zoneTask, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n var state = task.state;\n if (state !== notScheduled && state !== unknown) {\n if (type == eventTask || isPeriodic || (isRefreshable && state === scheduling)) {\n reEntryGuard && zoneTask._transitionTo(scheduled, running, scheduling);\n }\n else {\n var zoneDelegates = zoneTask._zoneDelegates;\n this._updateTaskCount(zoneTask, -1);\n reEntryGuard && zoneTask._transitionTo(notScheduled, running, notScheduled);\n if (isRefreshable) {\n zoneTask._zoneDelegates = zoneDelegates;\n }\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n ZoneImpl.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \".concat(this.name, \" which is descendants of the original zone \").concat(task.zone.name));\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n ZoneImpl.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n ZoneImpl.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n ZoneImpl.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n ZoneImpl.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name +\n '; Execution: ' +\n this.name +\n ')');\n if (task.state !== scheduled && task.state !== running) {\n return;\n }\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = -1;\n return task;\n };\n ZoneImpl.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return ZoneImpl;\n }());\n _a = ZoneImpl;\n // tslint:disable-next-line:require-internal-with-underscore\n (function () {\n _a.__symbol__ = __symbol__;\n })();\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) { return delegate.scheduleTask(target, task); },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); },\n };\n var _ZoneDelegate = /** @class */ (function () {\n function _ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = {\n 'microTask': 0,\n 'macroTask': 0,\n 'eventTask': 0,\n };\n this._zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this._zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this._zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this._zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this._zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this._zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this._zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this._zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = this._zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this._zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this._zone;\n }\n }\n }\n Object.defineProperty(_ZoneDelegate.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: false,\n configurable: true\n });\n _ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS\n ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec)\n : new ZoneImpl(targetZone, zoneSpec);\n };\n _ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS\n ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source)\n : callback;\n };\n _ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS\n ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source)\n : callback.apply(applyThis, applyArgs);\n };\n _ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS\n ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error)\n : true;\n };\n _ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n _ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS\n ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs)\n : task.callback.apply(applyThis, applyArgs);\n };\n _ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n _ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n // tslint:disable-next-line:require-internal-with-underscore\n _ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = (counts[type] = prev + count);\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type,\n };\n this.hasTask(this._zone, isEmpty);\n }\n };\n return _ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: false,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(\"\".concat(this.type, \" '\").concat(this.source, \"': can not transition to '\").concat(toState, \"', expecting state '\").concat(fromState1, \"'\").concat(fromState2 ? \" or '\" + fromState2 + \"'\" : '', \", was '\").concat(this._state, \"'.\"));\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount,\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !ZoneImpl[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; },\n nativeScheduleMicroTask: nativeScheduleMicroTask,\n };\n var _currentZoneFrame = { parent: null, zone: new ZoneImpl(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return ZoneImpl;\n }\n function loadZone() {\n var _a;\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n var global = globalThis;\n var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone'] && (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function')) {\n throw new Error('Zone already loaded.');\n }\n // Initialize global `Zone` constant.\n (_a = global['Zone']) !== null && _a !== void 0 ? _a : (global['Zone'] = initZone());\n return global['Zone'];\n }\n /**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n var ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n var ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n var ObjectCreate = Object.create;\n /** Array.prototype.slice */\n var ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n var ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n var REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n var ZONE_SYMBOL_ADD_EVENT_LISTENER = __symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = __symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n var TRUE_STR = 'true';\n /** false string const */\n var FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n var ZONE_SYMBOL_PREFIX = __symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n var zoneSymbol = __symbol__;\n var isWindowExists = typeof window !== 'undefined';\n var internalWindow = isWindowExists ? window : undefined;\n var _global = (isWindowExists && internalWindow) || globalThis;\n var REMOVE_ATTRIBUTE = 'removeAttribute';\n function bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n var isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isNode = !('nw' in _global) &&\n typeof _global.process !== 'undefined' &&\n _global.process.toString() === '[object process]';\n var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isMix = typeof _global.process !== 'undefined' &&\n _global.process.toString() === '[object process]' &&\n !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n var zoneSymbolEventNames$1 = {};\n var enableBeforeunloadSymbol = zoneSymbol('enable_beforeunload');\n var wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result =\n listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (\n // https://github.com/angular/angular/issues/47579\n // https://www.w3.org/TR/2011/WD-html5-20110525/history.html#beforeunloadevent\n // This is the only specific case we should check for. The spec defines that the\n // `returnValue` attribute represents the message to show the user. When the event\n // is created, this attribute must be set to the empty string.\n event.type === 'beforeunload' &&\n // To prevent any breaking changes resulting from this change, given that\n // it was already causing a significant number of failures in G3, we have hidden\n // that behavior behind a global configuration flag. Consumers can enable this\n // flag explicitly if they want the `beforeunload` event to be handled as defined\n // in the specification.\n _global[enableBeforeunloadSymbol] &&\n // The IDL event definition is `attribute DOMString returnValue`, so we check whether\n // `typeof result` is a string.\n typeof result === 'string') {\n event.returnValue = result;\n }\n else if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.slice(2);\n var eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n var originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n },\n });\n }\n })(prop);\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n var isDetectedIEOrEdge = false;\n var ieOrEdge = false;\n function isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) { }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) { }\n return ieOrEdge;\n }\n function isFunction(value) {\n return typeof value === 'function';\n }\n function isNumber(value) {\n return typeof value === 'number';\n }\n /**\n * @fileoverview\n * @suppress {missingRequire}\n */\n // Note that passive event listeners are now supported by most modern browsers,\n // including Chrome, Firefox, Safari, and Edge. There's a pending change that\n // would remove support for legacy browsers by zone.js. Removing `passiveSupported`\n // from the codebase will reduce the final code size for existing apps that still use zone.js.\n var passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n },\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n var OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true,\n };\n var zoneSymbolEventNames = {};\n var globalSources = {};\n var EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n var IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function prepareEventNames(eventName, eventNameToString) {\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n function patchEventTarget(_global, api, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n var error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = context || event.target || _global;\n var tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n var errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n var err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n var err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n var _loop_2 = function (i) {\n var err = errors[i];\n api.nativeScheduleMicroTask(function () {\n throw err;\n });\n };\n for (var i = 0; i < errors.length; i++) {\n _loop_2(i);\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // We use a shared global `taskData` to pass data for `scheduleEventTask`,\n // eliminating the need to create a new object solely for passing data.\n // WARNING: This object has a static lifetime, meaning it is not created\n // each time `addEventListener` is called. It is instantiated only once\n // and captured by reference inside the `addEventListener` and\n // `removeEventListener` functions. Do not add any new properties to this\n // object, as doing so would necessitate maintaining the information\n // between `addEventListener` calls.\n var taskData = {};\n var nativeAddEventListener = (proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]);\n var nativeRemoveEventListener = (proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER]);\n var nativeListeners = (proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER]);\n var nativeRemoveAllListeners = (proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]);\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return __assign(__assign({}, options), { passive: true });\n }\n return options;\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n /**\n * In the context of events and listeners, this function will be\n * called at the end by `cancelTask`, which, in turn, calls `task.cancelFn`.\n * Cancelling a task is primarily used to remove event listeners from\n * the task target.\n */\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (task.removeAbortListener) {\n task.removeAbortListener();\n task.removeAbortListener = null;\n }\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return ((typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate));\n };\n var compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n var passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n function copyEventListenerOptions(options) {\n if (typeof options === 'object' && options !== null) {\n // We need to destructure the target `options` object since it may\n // be frozen or sealed (possibly provided implicitly by a third-party\n // library), or its properties may be readonly.\n var newOptions = __assign({}, options);\n // The `signal` option was recently introduced, which caused regressions in\n // third-party scenarios where `AbortController` was directly provided to\n // `addEventListener` as options. For instance, in cases like\n // `document.addEventListener('keydown', callback, abortControllerInstance)`,\n // which is valid because `AbortController` includes a `signal` getter, spreading\n // `{...options}` wouldn't copy the `signal`. Additionally, using `Object.create`\n // isn't feasible since `AbortController` is a built-in object type, and attempting\n // to create a new object directly with it as the prototype might result in\n // unexpected behavior.\n if (options.signal) {\n newOptions.signal = options.signal;\n }\n return newOptions;\n }\n return options;\n }\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n var options = copyEventListenerOptions(buildEventListenerOptions(arguments[2], passive));\n var signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n // the signal is an aborted one, just return without attaching the event listener.\n return;\n }\n if (unpatchedEvents) {\n // check unpatched list\n for (var i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var once = options && typeof options === 'object' ? options.once : false;\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n var symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source =\n constructorName +\n addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // In the code below, `options` should no longer be reassigned; instead, it\n // should only be mutated. This is because we pass that object to the native\n // `addEventListener`.\n // It's generally recommended to use the same object reference for options.\n // This ensures consistency and avoids potential issues.\n taskData.options = options;\n if (once) {\n // When using `addEventListener` with the `once` option, we don't pass\n // the `once` option directly to the native `addEventListener` method.\n // Instead, we keep the `once` setting and handle it ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n if (signal) {\n // When using `addEventListener` with the `signal` option, we don't pass\n // the `signal` option directly to the native `addEventListener` method.\n // Instead, we keep the `signal` setting and handle it ourselves.\n taskData.options.signal = undefined;\n }\n // The `scheduleEventTask` function will ultimately call `customScheduleGlobal`,\n // which in turn calls the native `addEventListener`. This is why `taskData.options`\n // is updated before scheduling the task, as `customScheduleGlobal` uses\n // `taskData.options` to pass it to the native `addEventListener`.\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n if (signal) {\n // after task is scheduled, we need to store the signal back to task.options\n taskData.options.signal = signal;\n // Wrapping `task` in a weak reference would not prevent memory leaks. Weak references are\n // primarily used for preventing strong references cycles. `onAbort` is always reachable\n // as it's an event listener, so its closure retains a strong reference to the `task`.\n var onAbort_1 = function () { return task.zone.cancelTask(task); };\n nativeListener.call(signal, 'abort', onAbort_1, { once: true });\n // We need to remove the `abort` listener when the event listener is going to be removed,\n // as it creates a closure that captures `task`. This closure retains a reference to the\n // `task` object even after it goes out of scope, preventing `task` from being garbage\n // collected.\n task.removeAbortListener = function () { return signal.removeEventListener('abort', onAbort_1); };\n }\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n taskData.options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var options = arguments[2];\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n // `existingTasks` may not exist if the `addEventListener` was called before\n // it was patched by zone.js. Please refer to the attached issue for\n // clarification, particularly after the `if` condition, before calling\n // the native `removeEventListener`.\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates with capture=false were removed\n // https:// github.com/angular/angular/issues/31643\n // https://github.com/angular/angular/issues/54581\n if (!capture && typeof eventName === 'string') {\n var onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n // In all other conditions, when `addEventListener` is called after being\n // patched by zone.js, we would always find an event task on the `EventTarget`.\n // This will trigger `cancelFn` on the `existingTask`, leading to `customCancelGlobal`,\n // which ultimately removes an event listener and cleans up the abort listener\n // (if an `AbortSignal` was provided when scheduling a task).\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // https://github.com/angular/zone.js/issues/930\n // We may encounter a situation where the `addEventListener` was\n // called on the event target before zone.js is loaded, resulting\n // in no task being stored on the event target due to its invocation\n // of the native implementation. In this scenario, we simply need to\n // invoke the native `removeEventListener`.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n if (!eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n var symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n var captureFalseTasks = target[symbolEventName[FALSE_STR]];\n var captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks\n ? captureFalseTasks.concat(captureTrueTasks)\n : captureFalseTasks.slice();\n }\n }\n function patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n }\n /**\n * @fileoverview\n * @suppress {missingRequire}\n */\n function patchQueueMicrotask(global, api) {\n api.patchMethod(global, 'queueMicrotask', function (delegate) {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n }\n /**\n * @fileoverview\n * @suppress {missingRequire}\n */\n var taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n var handleOrId = setNative.apply(window, data.args);\n // Whlist on Node.js when get can the ID by using `[Symbol.toPrimitive]()` we do\n // to this so that we do not cause potentally leaks when using `setTimeout`\n // since this can be periodic when using `.refresh`.\n if (isNumber(handleOrId)) {\n data.handleId = handleOrId;\n }\n else {\n data.handle = handleOrId;\n // On Node.js a timeout and interval can be restarted over and over again by using the `.refresh` method.\n data.isRefreshable = isFunction(handleOrId.refresh);\n }\n return task;\n }\n function clearTask(task) {\n var _a = task.data, handle = _a.handle, handleId = _a.handleId;\n return clearNative.call(window, handle !== null && handle !== void 0 ? handle : handleId);\n }\n setNative = patchMethod(window, setName, function (delegate) { return function (self, args) {\n var _a;\n if (isFunction(args[0])) {\n var options_1 = {\n isRefreshable: false,\n isPeriodic: nameSuffix === 'Interval',\n delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined,\n args: args,\n };\n var callback_1 = args[0];\n args[0] = function timer() {\n try {\n return callback_1.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n var handle_1 = options_1.handle, handleId_1 = options_1.handleId, isPeriodic_1 = options_1.isPeriodic, isRefreshable_1 = options_1.isRefreshable;\n if (!isPeriodic_1 && !isRefreshable_1) {\n if (handleId_1) {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[handleId_1];\n }\n else if (handle_1) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n handle_1[taskSymbol] = null;\n }\n }\n }\n };\n var task_1 = scheduleMacroTaskWithCurrentZone(setName, args[0], options_1, scheduleTask, clearTask);\n if (!task_1) {\n return task_1;\n }\n // Node.js must additionally support the ref and unref functions.\n var _b = task_1.data, handleId = _b.handleId, handle = _b.handle, isRefreshable = _b.isRefreshable, isPeriodic = _b.isPeriodic;\n if (handleId) {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handleId] = task_1;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task_1;\n if (isRefreshable && !isPeriodic) {\n var originalRefresh_1 = handle.refresh;\n handle.refresh = function () {\n var zone = task_1.zone, state = task_1.state;\n if (state === 'notScheduled') {\n task_1._state = 'scheduled';\n zone._updateTaskCount(task_1, 1);\n }\n else if (state === 'running') {\n task_1._state = 'scheduling';\n }\n return originalRefresh_1.call(this);\n };\n }\n }\n return (_a = handle !== null && handle !== void 0 ? handle : handleId) !== null && _a !== void 0 ? _a : task_1;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative = patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (isNumber(id)) {\n // non nodejs env.\n task = tasksByHandleId[id];\n delete tasksByHandleId[id];\n }\n else {\n // nodejs env ?? other environments.\n task = id === null || id === void 0 ? void 0 : id[taskSymbol];\n if (task) {\n id[taskSymbol] = null;\n }\n else {\n task = id;\n }\n }\n if (task === null || task === void 0 ? void 0 : task.type) {\n if (task.cancelFn) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n }\n function patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n // https://html.spec.whatwg.org/multipage/custom-elements.html#concept-custom-element-definition-lifecycle-callbacks\n var callbacks = [\n 'connectedCallback',\n 'disconnectedCallback',\n 'adoptedCallback',\n 'attributeChangedCallback',\n 'formAssociatedCallback',\n 'formDisabledCallback',\n 'formResetCallback',\n 'formStateRestoreCallback',\n ];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n }\n function eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n }\n /**\n * @fileoverview\n * @suppress {globalThis}\n */\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n /**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\n function getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(function (name) { return name.startsWith('on') && name.length > 2; })\n .map(function (name) { return name.substring(2); });\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n var patchTargets = [];\n if (isBrowser) {\n var internalWindow_1 = window;\n patchTargets = patchTargets.concat([\n 'Document',\n 'SVGElement',\n 'Element',\n 'HTMLElement',\n 'HTMLBodyElement',\n 'HTMLMediaElement',\n 'HTMLFrameSetElement',\n 'HTMLFrameElement',\n 'HTMLIFrameElement',\n 'HTMLMarqueeElement',\n 'Worker',\n ]);\n var ignoreErrorProperties = isIE()\n ? [{ target: internalWindow_1, ignoreProperties: ['error'] }]\n : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow_1, getOnEventNames(internalWindow_1), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow_1));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'IDBIndex',\n 'IDBRequest',\n 'IDBOpenDBRequest',\n 'IDBDatabase',\n 'IDBTransaction',\n 'IDBCursor',\n 'WebSocket',\n ]);\n for (var i = 0; i < patchTargets.length; i++) {\n var target = _global[patchTargets[i]];\n target &&\n target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n }\n /**\n * @fileoverview\n * @suppress {missingRequire}\n */\n function patchBrowser(Zone) {\n Zone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_2 = blockingMethods[i];\n patchMethod(global, name_2, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n });\n Zone.__load_patch('MutationObserver', function (global, Zone, api) {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n });\n Zone.__load_patch('IntersectionObserver', function (global, Zone, api) {\n patchClass('IntersectionObserver');\n });\n Zone.__load_patch('FileReader', function (global, Zone, api) {\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = (target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n });\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = {\n target: self,\n url: self[XHR_URL],\n isPeriodic: false,\n args: args,\n aborted: false,\n };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self &&\n self[XHR_ERROR_BEFORE_SCHEDULED] === true &&\n !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n });\n Zone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, {\n promise: e.promise,\n reason: e.rejection,\n });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n Zone.__load_patch('queueMicrotask', function (global, Zone, api) {\n patchQueueMicrotask(global, api);\n });\n }\n function patchPromise(Zone) {\n Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] !== false;\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n var _loop_3 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_3();\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) { }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED &&\n value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) &&\n value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask &&\n Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: trace,\n });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n var uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' +\n readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) { }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState\n ? typeof onFulfilled === 'function'\n ? onFulfilled\n : forwardResolution\n : typeof onRejected === 'function'\n ? onRejected\n : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution\n ? []\n : [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var noop = function () { };\n var AggregateError = global.AggregateError;\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n var onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return ZONE_AWARE_PROMISE_TO_STRING;\n };\n ZoneAwarePromise.resolve = function (value) {\n if (value instanceof ZoneAwarePromise) {\n return value;\n }\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.withResolvers = function () {\n var result = {};\n result.promise = new ZoneAwarePromise(function (res, rej) {\n result.resolve = res;\n result.reject = rej;\n });\n return result;\n };\n ZoneAwarePromise.any = function (values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n var promises = [];\n var count = 0;\n try {\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var v = values_1[_i];\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n var finished = false;\n var errors = [];\n return new ZoneAwarePromise(function (resolve, reject) {\n for (var i = 0; i < promises.length; i++) {\n promises[i].then(function (v) {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, function (err) {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n return ZoneAwarePromise.allWithCallback(values);\n };\n ZoneAwarePromise.allSettled = function (values) {\n var P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: function (value) { return ({ status: 'fulfilled', value: value }); },\n errorCallback: function (err) { return ({ status: 'rejected', reason: err }); },\n });\n };\n ZoneAwarePromise.allWithCallback = function (values, callback) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_4 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n try {\n value.then(function (value) {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, function (err) {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n for (var _i = 0, values_3 = values; _i < values_3.length; _i++) {\n var value = values_3[_i];\n _loop_4(value);\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () {\n return 'Promise';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.species, {\n get: function () {\n return ZoneAwarePromise;\n },\n enumerable: false,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var _a;\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and\n // invokes it with the `value` context. Otherwise, this will throw an error: `TypeError:\n // Cannot read properties of undefined (reading 'Symbol(Symbol.species)')`.\n var C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var _a;\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n var C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = (global[symbolPromise] = global['Promise']);\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n var resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', function (delegate) { return zoneify(delegate); });\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n }\n function patchToString(Zone) {\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n }\n function patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = (target[symbol] = target[method]);\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = \"\".concat(targetName, \".\").concat(method, \"::\") + callback;\n var prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch (_a) {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n }\n function patchUtil(Zone) {\n Zone.__load_patch('util', function (global, Zone, api) {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n var eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS`\n // to define which events will not be patched by `Zone.js`. In newer version (>=0.9.0), we\n // change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep the name consistent with\n // angular repo. The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be\n // supported for backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({\n globalSources: globalSources,\n zoneSymbolEventNames: zoneSymbolEventNames,\n eventNames: eventNames,\n isBrowser: isBrowser,\n isMix: isMix,\n isNode: isNode,\n TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR,\n ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR,\n }); };\n });\n }\n function patchCommon(Zone) {\n patchPromise(Zone);\n patchToString(Zone);\n patchUtil(Zone);\n }\n var Zone$1 = loadZone();\n patchCommon(Zone$1);\n patchBrowser(Zone$1);\n}));\n","/**\n * @license Angular v18.2.8\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * The character used to mark the start and end of a \"block\" in a `$localize` tagged string.\n * A block can indicate metadata about the message or specify a name of a placeholder for a\n * substitution expressions.\n *\n * For example:\n *\n * ```ts\n * $localize`Hello, ${title}:title:!`;\n * $localize`:meaning|description@@id:source message text`;\n * ```\n */\nconst BLOCK_MARKER$1 = ':';\n/**\n * The marker used to separate a message's \"meaning\" from its \"description\" in a metadata block.\n *\n * For example:\n *\n * ```ts\n * $localize `:correct|Indicates that the user got the answer correct: Right!`;\n * $localize `:movement|Button label for moving to the right: Right!`;\n * ```\n */\nconst MEANING_SEPARATOR = '|';\n/**\n * The marker used to separate a message's custom \"id\" from its \"description\" in a metadata block.\n *\n * For example:\n *\n * ```ts\n * $localize `:A welcome message on the home page@@myApp-homepage-welcome: Welcome!`;\n * ```\n */\nconst ID_SEPARATOR = '@@';\n/**\n * The marker used to separate legacy message ids from the rest of a metadata block.\n *\n * For example:\n *\n * ```ts\n * $localize `:@@custom-id␟2df64767cd895a8fabe3e18b94b5b6b6f9e2e3f0: Welcome!`;\n * ```\n *\n * Note that this character is the \"symbol for the unit separator\" (␟) not the \"unit separator\n * character\" itself, since that has no visual representation. See https://graphemica.com/%E2%90%9F.\n *\n * Here is some background for the original \"unit separator character\":\n * https://stackoverflow.com/questions/8695118/whats-the-file-group-record-unit-separator-control-characters-and-its-usage\n */\nconst LEGACY_ID_INDICATOR = '\\u241F';\n\n/**\n * A lazily created TextEncoder instance for converting strings into UTF-8 bytes\n */\nlet textEncoder;\n/**\n * Return the message id or compute it using the XLIFF1 digest.\n */\nfunction digest(message) {\n return message.id || computeDigest(message);\n}\n/**\n * Compute the message id using the XLIFF1 digest.\n */\nfunction computeDigest(message) {\n return sha1(serializeNodes(message.nodes).join('') + `[${message.meaning}]`);\n}\n/**\n * Return the message id or compute it using the XLIFF2/XMB/$localize digest.\n */\nfunction decimalDigest(message, preservePlaceholders) {\n return message.id || computeDecimalDigest(message, preservePlaceholders);\n}\n/**\n * Compute the message id using the XLIFF2/XMB/$localize digest.\n */\nfunction computeDecimalDigest(message, preservePlaceholders) {\n const visitor = new _SerializerIgnoreExpVisitor(preservePlaceholders);\n const parts = message.nodes.map((a) => a.visit(visitor, null));\n return computeMsgId(parts.join(''), message.meaning);\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * The visitor is also used in the i18n parser tests\n *\n * @internal\n */\nclass _SerializerVisitor {\n visitText(text, context) {\n return text.value;\n }\n visitContainer(container, context) {\n return `[${container.children.map((child) => child.visit(this)).join(', ')}]`;\n }\n visitIcu(icu, context) {\n const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expression}, ${icu.type}, ${strCases.join(', ')}}`;\n }\n visitTagPlaceholder(ph, context) {\n return ph.isVoid\n ? ``\n : `${ph.children\n .map((child) => child.visit(this))\n .join(', ')}`;\n }\n visitPlaceholder(ph, context) {\n return ph.value ? `${ph.value}` : ``;\n }\n visitIcuPlaceholder(ph, context) {\n return `${ph.value.visit(this)}`;\n }\n visitBlockPlaceholder(ph, context) {\n return `${ph.children\n .map((child) => child.visit(this))\n .join(', ')}`;\n }\n}\nconst serializerVisitor = new _SerializerVisitor();\nfunction serializeNodes(nodes) {\n return nodes.map((a) => a.visit(serializerVisitor, null));\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * Ignore the expressions so that message IDs stays identical if only the expression changes.\n *\n * @internal\n */\nclass _SerializerIgnoreExpVisitor extends _SerializerVisitor {\n constructor(preservePlaceholders) {\n super();\n this.preservePlaceholders = preservePlaceholders;\n }\n visitPlaceholder(ph, context) {\n // Do not take the expression into account when `preservePlaceholders` is disabled.\n return this.preservePlaceholders\n ? super.visitPlaceholder(ph, context)\n : ``;\n }\n visitIcu(icu) {\n let strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n // Do not take the expression into account\n return `{${icu.type}, ${strCases.join(', ')}}`;\n }\n}\n/**\n * Compute the SHA1 of the given string\n *\n * see https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf\n *\n * WARNING: this function has not been designed not tested with security in mind.\n * DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT.\n */\nfunction sha1(str) {\n textEncoder ??= new TextEncoder();\n const utf8 = [...textEncoder.encode(str)];\n const words32 = bytesToWords32(utf8, Endian.Big);\n const len = utf8.length * 8;\n const w = new Uint32Array(80);\n let a = 0x67452301, b = 0xefcdab89, c = 0x98badcfe, d = 0x10325476, e = 0xc3d2e1f0;\n words32[len >> 5] |= 0x80 << (24 - (len % 32));\n words32[(((len + 64) >> 9) << 4) + 15] = len;\n for (let i = 0; i < words32.length; i += 16) {\n const h0 = a, h1 = b, h2 = c, h3 = d, h4 = e;\n for (let j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = words32[i + j];\n }\n else {\n w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n }\n const fkVal = fk(j, b, c, d);\n const f = fkVal[0];\n const k = fkVal[1];\n const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n e = d;\n d = c;\n c = rol32(b, 30);\n b = a;\n a = temp;\n }\n a = add32(a, h0);\n b = add32(b, h1);\n c = add32(c, h2);\n d = add32(d, h3);\n e = add32(e, h4);\n }\n // Convert the output parts to a 160-bit hexadecimal string\n return toHexU32(a) + toHexU32(b) + toHexU32(c) + toHexU32(d) + toHexU32(e);\n}\n/**\n * Convert and format a number as a string representing a 32-bit unsigned hexadecimal number.\n * @param value The value to format as a string.\n * @returns A hexadecimal string representing the value.\n */\nfunction toHexU32(value) {\n // unsigned right shift of zero ensures an unsigned 32-bit number\n return (value >>> 0).toString(16).padStart(8, '0');\n}\nfunction fk(index, b, c, d) {\n if (index < 20) {\n return [(b & c) | (~b & d), 0x5a827999];\n }\n if (index < 40) {\n return [b ^ c ^ d, 0x6ed9eba1];\n }\n if (index < 60) {\n return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n }\n return [b ^ c ^ d, 0xca62c1d6];\n}\n/**\n * Compute the fingerprint of the given string\n *\n * The output is 64 bit number encoded as a decimal string\n *\n * based on:\n * https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/GoogleJsMessageIdGenerator.java\n */\nfunction fingerprint(str) {\n textEncoder ??= new TextEncoder();\n const utf8 = textEncoder.encode(str);\n const view = new DataView(utf8.buffer, utf8.byteOffset, utf8.byteLength);\n let hi = hash32(view, utf8.length, 0);\n let lo = hash32(view, utf8.length, 102072);\n if (hi == 0 && (lo == 0 || lo == 1)) {\n hi = hi ^ 0x130f9bef;\n lo = lo ^ -0x6b5f56d8;\n }\n return (BigInt.asUintN(32, BigInt(hi)) << BigInt(32)) | BigInt.asUintN(32, BigInt(lo));\n}\nfunction computeMsgId(msg, meaning = '') {\n let msgFingerprint = fingerprint(msg);\n if (meaning) {\n // Rotate the 64-bit message fingerprint one bit to the left and then add the meaning\n // fingerprint.\n msgFingerprint =\n BigInt.asUintN(64, msgFingerprint << BigInt(1)) |\n ((msgFingerprint >> BigInt(63)) & BigInt(1));\n msgFingerprint += fingerprint(meaning);\n }\n return BigInt.asUintN(63, msgFingerprint).toString();\n}\nfunction hash32(view, length, c) {\n let a = 0x9e3779b9, b = 0x9e3779b9;\n let index = 0;\n const end = length - 12;\n for (; index <= end; index += 12) {\n a += view.getUint32(index, true);\n b += view.getUint32(index + 4, true);\n c += view.getUint32(index + 8, true);\n const res = mix(a, b, c);\n (a = res[0]), (b = res[1]), (c = res[2]);\n }\n const remainder = length - index;\n // the first byte of c is reserved for the length\n c += length;\n if (remainder >= 4) {\n a += view.getUint32(index, true);\n index += 4;\n if (remainder >= 8) {\n b += view.getUint32(index, true);\n index += 4;\n // Partial 32-bit word for c\n if (remainder >= 9) {\n c += view.getUint8(index++) << 8;\n }\n if (remainder >= 10) {\n c += view.getUint8(index++) << 16;\n }\n if (remainder === 11) {\n c += view.getUint8(index++) << 24;\n }\n }\n else {\n // Partial 32-bit word for b\n if (remainder >= 5) {\n b += view.getUint8(index++);\n }\n if (remainder >= 6) {\n b += view.getUint8(index++) << 8;\n }\n if (remainder === 7) {\n b += view.getUint8(index++) << 16;\n }\n }\n }\n else {\n // Partial 32-bit word for a\n if (remainder >= 1) {\n a += view.getUint8(index++);\n }\n if (remainder >= 2) {\n a += view.getUint8(index++) << 8;\n }\n if (remainder === 3) {\n a += view.getUint8(index++) << 16;\n }\n }\n return mix(a, b, c)[2];\n}\nfunction mix(a, b, c) {\n a -= b;\n a -= c;\n a ^= c >>> 13;\n b -= c;\n b -= a;\n b ^= a << 8;\n c -= a;\n c -= b;\n c ^= b >>> 13;\n a -= b;\n a -= c;\n a ^= c >>> 12;\n b -= c;\n b -= a;\n b ^= a << 16;\n c -= a;\n c -= b;\n c ^= b >>> 5;\n a -= b;\n a -= c;\n a ^= c >>> 3;\n b -= c;\n b -= a;\n b ^= a << 10;\n c -= a;\n c -= b;\n c ^= b >>> 15;\n return [a, b, c];\n}\n// Utils\nvar Endian;\n(function (Endian) {\n Endian[Endian[\"Little\"] = 0] = \"Little\";\n Endian[Endian[\"Big\"] = 1] = \"Big\";\n})(Endian || (Endian = {}));\nfunction add32(a, b) {\n return add32to64(a, b)[1];\n}\nfunction add32to64(a, b) {\n const low = (a & 0xffff) + (b & 0xffff);\n const high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n return [high >>> 16, (high << 16) | (low & 0xffff)];\n}\n// Rotate a 32b number left `count` position\nfunction rol32(a, count) {\n return (a << count) | (a >>> (32 - count));\n}\nfunction bytesToWords32(bytes, endian) {\n const size = (bytes.length + 3) >>> 2;\n const words32 = [];\n for (let i = 0; i < size; i++) {\n words32[i] = wordAt(bytes, i * 4, endian);\n }\n return words32;\n}\nfunction byteAt(bytes, index) {\n return index >= bytes.length ? 0 : bytes[index];\n}\nfunction wordAt(bytes, index, endian) {\n let word = 0;\n if (endian === Endian.Big) {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << (24 - 8 * i);\n }\n }\n else {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << (8 * i);\n }\n }\n return word;\n}\n\n// This module specifier is intentionally a relative path to allow bundling the code directly\n/**\n * Parse a `$localize` tagged string into a structure that can be used for translation or\n * extraction.\n *\n * See `ParsedMessage` for an example.\n */\nfunction parseMessage(messageParts, expressions, location, messagePartLocations, expressionLocations = []) {\n const substitutions = {};\n const substitutionLocations = {};\n const associatedMessageIds = {};\n const metadata = parseMetadata(messageParts[0], messageParts.raw[0]);\n const cleanedMessageParts = [metadata.text];\n const placeholderNames = [];\n let messageString = metadata.text;\n for (let i = 1; i < messageParts.length; i++) {\n const { messagePart, placeholderName = computePlaceholderName(i), associatedMessageId, } = parsePlaceholder(messageParts[i], messageParts.raw[i]);\n messageString += `{$${placeholderName}}${messagePart}`;\n if (expressions !== undefined) {\n substitutions[placeholderName] = expressions[i - 1];\n substitutionLocations[placeholderName] = expressionLocations[i - 1];\n }\n placeholderNames.push(placeholderName);\n if (associatedMessageId !== undefined) {\n associatedMessageIds[placeholderName] = associatedMessageId;\n }\n cleanedMessageParts.push(messagePart);\n }\n const messageId = metadata.customId || computeMsgId(messageString, metadata.meaning || '');\n const legacyIds = metadata.legacyIds ? metadata.legacyIds.filter((id) => id !== messageId) : [];\n return {\n id: messageId,\n legacyIds,\n substitutions,\n substitutionLocations,\n text: messageString,\n customId: metadata.customId,\n meaning: metadata.meaning || '',\n description: metadata.description || '',\n messageParts: cleanedMessageParts,\n messagePartLocations,\n placeholderNames,\n associatedMessageIds,\n location,\n };\n}\n/**\n * Parse the given message part (`cooked` + `raw`) to extract the message metadata from the text.\n *\n * If the message part has a metadata block this function will extract the `meaning`,\n * `description`, `customId` and `legacyId` (if provided) from the block. These metadata properties\n * are serialized in the string delimited by `|`, `@@` and `␟` respectively.\n *\n * (Note that `␟` is the `LEGACY_ID_INDICATOR` - see `constants.ts`.)\n *\n * For example:\n *\n * ```ts\n * `:meaning|description@@custom-id:`\n * `:meaning|@@custom-id:`\n * `:meaning|description:`\n * `:description@@custom-id:`\n * `:meaning|:`\n * `:description:`\n * `:@@custom-id:`\n * `:meaning|description@@custom-id␟legacy-id-1␟legacy-id-2:`\n * ```\n *\n * @param cooked The cooked version of the message part to parse.\n * @param raw The raw version of the message part to parse.\n * @returns A object containing any metadata that was parsed from the message part.\n */\nfunction parseMetadata(cooked, raw) {\n const { text: messageString, block } = splitBlock(cooked, raw);\n if (block === undefined) {\n return { text: messageString };\n }\n else {\n const [meaningDescAndId, ...legacyIds] = block.split(LEGACY_ID_INDICATOR);\n const [meaningAndDesc, customId] = meaningDescAndId.split(ID_SEPARATOR, 2);\n let [meaning, description] = meaningAndDesc.split(MEANING_SEPARATOR, 2);\n if (description === undefined) {\n description = meaning;\n meaning = undefined;\n }\n if (description === '') {\n description = undefined;\n }\n return { text: messageString, meaning, description, customId, legacyIds };\n }\n}\n/**\n * Parse the given message part (`cooked` + `raw`) to extract any placeholder metadata from the\n * text.\n *\n * If the message part has a metadata block this function will extract the `placeholderName` and\n * `associatedMessageId` (if provided) from the block.\n *\n * These metadata properties are serialized in the string delimited by `@@`.\n *\n * For example:\n *\n * ```ts\n * `:placeholder-name@@associated-id:`\n * ```\n *\n * @param cooked The cooked version of the message part to parse.\n * @param raw The raw version of the message part to parse.\n * @returns A object containing the metadata (`placeholderName` and `associatedMessageId`) of the\n * preceding placeholder, along with the static text that follows.\n */\nfunction parsePlaceholder(cooked, raw) {\n const { text: messagePart, block } = splitBlock(cooked, raw);\n if (block === undefined) {\n return { messagePart };\n }\n else {\n const [placeholderName, associatedMessageId] = block.split(ID_SEPARATOR);\n return { messagePart, placeholderName, associatedMessageId };\n }\n}\n/**\n * Split a message part (`cooked` + `raw`) into an optional delimited \"block\" off the front and the\n * rest of the text of the message part.\n *\n * Blocks appear at the start of message parts. They are delimited by a colon `:` character at the\n * start and end of the block.\n *\n * If the block is in the first message part then it will be metadata about the whole message:\n * meaning, description, id. Otherwise it will be metadata about the immediately preceding\n * substitution: placeholder name.\n *\n * Since blocks are optional, it is possible that the content of a message block actually starts\n * with a block marker. In this case the marker must be escaped `\\:`.\n *\n * @param cooked The cooked version of the message part to parse.\n * @param raw The raw version of the message part to parse.\n * @returns An object containing the `text` of the message part and the text of the `block`, if it\n * exists.\n * @throws an error if the `block` is unterminated\n */\nfunction splitBlock(cooked, raw) {\n if (raw.charAt(0) !== BLOCK_MARKER$1) {\n return { text: cooked };\n }\n else {\n const endOfBlock = findEndOfBlock(cooked, raw);\n return {\n block: cooked.substring(1, endOfBlock),\n text: cooked.substring(endOfBlock + 1),\n };\n }\n}\nfunction computePlaceholderName(index) {\n return index === 1 ? 'PH' : `PH_${index - 1}`;\n}\n/**\n * Find the end of a \"marked block\" indicated by the first non-escaped colon.\n *\n * @param cooked The cooked string (where escaped chars have been processed)\n * @param raw The raw string (where escape sequences are still in place)\n *\n * @returns the index of the end of block marker\n * @throws an error if the block is unterminated\n */\nfunction findEndOfBlock(cooked, raw) {\n for (let cookedIndex = 1, rawIndex = 1; cookedIndex < cooked.length; cookedIndex++, rawIndex++) {\n if (raw[rawIndex] === '\\\\') {\n rawIndex++;\n }\n else if (cooked[cookedIndex] === BLOCK_MARKER$1) {\n return cookedIndex;\n }\n }\n throw new Error(`Unterminated $localize metadata block in \"${raw}\".`);\n}\n\nclass MissingTranslationError extends Error {\n constructor(parsedMessage) {\n super(`No translation found for ${describeMessage(parsedMessage)}.`);\n this.parsedMessage = parsedMessage;\n this.type = 'MissingTranslationError';\n }\n}\nfunction isMissingTranslationError(e) {\n return e.type === 'MissingTranslationError';\n}\n/**\n * Translate the text of the `$localize` tagged-string (i.e. `messageParts` and\n * `substitutions`) using the given `translations`.\n *\n * The tagged-string is parsed to extract its `messageId` which is used to find an appropriate\n * `ParsedTranslation`. If this doesn't match and there are legacy ids then try matching a\n * translation using those.\n *\n * If one is found then it is used to translate the message into a new set of `messageParts` and\n * `substitutions`.\n * The translation may reorder (or remove) substitutions as appropriate.\n *\n * If there is no translation with a matching message id then an error is thrown.\n * If a translation contains a placeholder that is not found in the message being translated then an\n * error is thrown.\n */\nfunction translate$1(translations, messageParts, substitutions) {\n const message = parseMessage(messageParts, substitutions);\n // Look up the translation using the messageId, and then the legacyId if available.\n let translation = translations[message.id];\n // If the messageId did not match a translation, try matching the legacy ids instead\n if (message.legacyIds !== undefined) {\n for (let i = 0; i < message.legacyIds.length && translation === undefined; i++) {\n translation = translations[message.legacyIds[i]];\n }\n }\n if (translation === undefined) {\n throw new MissingTranslationError(message);\n }\n return [\n translation.messageParts,\n translation.placeholderNames.map((placeholder) => {\n if (message.substitutions.hasOwnProperty(placeholder)) {\n return message.substitutions[placeholder];\n }\n else {\n throw new Error(`There is a placeholder name mismatch with the translation provided for the message ${describeMessage(message)}.\\n` +\n `The translation contains a placeholder with name ${placeholder}, which does not exist in the message.`);\n }\n }),\n ];\n}\n/**\n * Parse the `messageParts` and `placeholderNames` out of a target `message`.\n *\n * Used by `loadTranslations()` to convert target message strings into a structure that is more\n * appropriate for doing translation.\n *\n * @param message the message to be parsed.\n */\nfunction parseTranslation(messageString) {\n const parts = messageString.split(/{\\$([^}]*)}/);\n const messageParts = [parts[0]];\n const placeholderNames = [];\n for (let i = 1; i < parts.length - 1; i += 2) {\n placeholderNames.push(parts[i]);\n messageParts.push(`${parts[i + 1]}`);\n }\n const rawMessageParts = messageParts.map((part) => part.charAt(0) === BLOCK_MARKER$1 ? '\\\\' + part : part);\n return {\n text: messageString,\n messageParts: makeTemplateObject(messageParts, rawMessageParts),\n placeholderNames,\n };\n}\n/**\n * Create a `ParsedTranslation` from a set of `messageParts` and `placeholderNames`.\n *\n * @param messageParts The message parts to appear in the ParsedTranslation.\n * @param placeholderNames The names of the placeholders to intersperse between the `messageParts`.\n */\nfunction makeParsedTranslation(messageParts, placeholderNames = []) {\n let messageString = messageParts[0];\n for (let i = 0; i < placeholderNames.length; i++) {\n messageString += `{$${placeholderNames[i]}}${messageParts[i + 1]}`;\n }\n return {\n text: messageString,\n messageParts: makeTemplateObject(messageParts, messageParts),\n placeholderNames,\n };\n}\n/**\n * Create the specialized array that is passed to tagged-string tag functions.\n *\n * @param cooked The message parts with their escape codes processed.\n * @param raw The message parts with their escaped codes as-is.\n */\nfunction makeTemplateObject(cooked, raw) {\n Object.defineProperty(cooked, 'raw', { value: raw });\n return cooked;\n}\nfunction describeMessage(message) {\n const meaningString = message.meaning && ` - \"${message.meaning}\"`;\n const legacy = message.legacyIds && message.legacyIds.length > 0\n ? ` [${message.legacyIds.map((l) => `\"${l}\"`).join(', ')}]`\n : '';\n return `\"${message.id}\"${legacy} (\"${message.text}\"${meaningString})`;\n}\n\n/**\n * Load translations for use by `$localize`, if doing runtime translation.\n *\n * If the `$localize` tagged strings are not going to be replaced at compiled time, it is possible\n * to load a set of translations that will be applied to the `$localize` tagged strings at runtime,\n * in the browser.\n *\n * Loading a new translation will overwrite a previous translation if it has the same `MessageId`.\n *\n * Note that `$localize` messages are only processed once, when the tagged string is first\n * encountered, and does not provide dynamic language changing without refreshing the browser.\n * Loading new translations later in the application life-cycle will not change the translated text\n * of messages that have already been translated.\n *\n * The message IDs and translations are in the same format as that rendered to \"simple JSON\"\n * translation files when extracting messages. In particular, placeholders in messages are rendered\n * using the `{$PLACEHOLDER_NAME}` syntax. For example the message from the following template:\n *\n * ```html\n *
preinner-preboldinner-postpost
\n * ```\n *\n * would have the following form in the `translations` map:\n *\n * ```ts\n * {\n * \"2932901491976224757\":\n * \"pre{$START_TAG_SPAN}inner-pre{$START_BOLD_TEXT}bold{$CLOSE_BOLD_TEXT}inner-post{$CLOSE_TAG_SPAN}post\"\n * }\n * ```\n *\n * @param translations A map from message ID to translated message.\n *\n * These messages are processed and added to a lookup based on their `MessageId`.\n *\n * @see {@link clearTranslations} for removing translations loaded using this function.\n * @see {@link $localize} for tagging messages as needing to be translated.\n * @publicApi\n */\nfunction loadTranslations(translations) {\n // Ensure the translate function exists\n if (!$localize.translate) {\n $localize.translate = translate;\n }\n if (!$localize.TRANSLATIONS) {\n $localize.TRANSLATIONS = {};\n }\n Object.keys(translations).forEach((key) => {\n $localize.TRANSLATIONS[key] = parseTranslation(translations[key]);\n });\n}\n/**\n * Remove all translations for `$localize`, if doing runtime translation.\n *\n * All translations that had been loading into memory using `loadTranslations()` will be removed.\n *\n * @see {@link loadTranslations} for loading translations at runtime.\n * @see {@link $localize} for tagging messages as needing to be translated.\n *\n * @publicApi\n */\nfunction clearTranslations() {\n $localize.translate = undefined;\n $localize.TRANSLATIONS = {};\n}\n/**\n * Translate the text of the given message, using the loaded translations.\n *\n * This function may reorder (or remove) substitutions as indicated in the matching translation.\n */\nfunction translate(messageParts, substitutions) {\n try {\n return translate$1($localize.TRANSLATIONS, messageParts, substitutions);\n }\n catch (e) {\n console.warn(e.message);\n return [messageParts, substitutions];\n }\n}\n\n/**\n * Tag a template literal string for localization.\n *\n * For example:\n *\n * ```ts\n * $localize `some string to localize`\n * ```\n *\n * **Providing meaning, description and id**\n *\n * You can optionally specify one or more of `meaning`, `description` and `id` for a localized\n * string by pre-pending it with a colon delimited block of the form:\n *\n * ```ts\n * $localize`:meaning|description@@id:source message text`;\n *\n * $localize`:meaning|:source message text`;\n * $localize`:description:source message text`;\n * $localize`:@@id:source message text`;\n * ```\n *\n * This format is the same as that used for `i18n` markers in Angular templates. See the\n * [Angular i18n guide](guide/i18n/prepare#mark-text-in-component-template).\n *\n * **Naming placeholders**\n *\n * If the template literal string contains expressions, then the expressions will be automatically\n * associated with placeholder names for you.\n *\n * For example:\n *\n * ```ts\n * $localize `Hi ${name}! There are ${items.length} items.`;\n * ```\n *\n * will generate a message-source of `Hi {$PH}! There are {$PH_1} items`.\n *\n * The recommended practice is to name the placeholder associated with each expression though.\n *\n * Do this by providing the placeholder name wrapped in `:` characters directly after the\n * expression. These placeholder names are stripped out of the rendered localized string.\n *\n * For example, to name the `items.length` expression placeholder `itemCount` you write:\n *\n * ```ts\n * $localize `There are ${items.length}:itemCount: items`;\n * ```\n *\n * **Escaping colon markers**\n *\n * If you need to use a `:` character directly at the start of a tagged string that has no\n * metadata block, or directly after a substitution expression that has no name you must escape\n * the `:` by preceding it with a backslash:\n *\n * For example:\n *\n * ```ts\n * // message has a metadata block so no need to escape colon\n * $localize `:some description::this message starts with a colon (:)`;\n * // no metadata block so the colon must be escaped\n * $localize `\\:this message starts with a colon (:)`;\n * ```\n *\n * ```ts\n * // named substitution so no need to escape colon\n * $localize `${label}:label:: ${}`\n * // anonymous substitution so colon must be escaped\n * $localize `${label}\\: ${}`\n * ```\n *\n * **Processing localized strings:**\n *\n * There are three scenarios:\n *\n * * **compile-time inlining**: the `$localize` tag is transformed at compile time by a\n * transpiler, removing the tag and replacing the template literal string with a translated\n * literal string from a collection of translations provided to the transpilation tool.\n *\n * * **run-time evaluation**: the `$localize` tag is a run-time function that replaces and\n * reorders the parts (static strings and expressions) of the template literal string with strings\n * from a collection of translations loaded at run-time.\n *\n * * **pass-through evaluation**: the `$localize` tag is a run-time function that simply evaluates\n * the original template literal string without applying any translations to the parts. This\n * version is used during development or where there is no need to translate the localized\n * template literals.\n *\n * @param messageParts a collection of the static parts of the template string.\n * @param expressions a collection of the values of each placeholder in the template string.\n * @returns the translated string, with the `messageParts` and `expressions` interleaved together.\n *\n * @globalApi\n * @publicApi\n */\nconst $localize$1 = function (messageParts, ...expressions) {\n if ($localize$1.translate) {\n // Don't use array expansion here to avoid the compiler adding `__read()` helper unnecessarily.\n const translation = $localize$1.translate(messageParts, expressions);\n messageParts = translation[0];\n expressions = translation[1];\n }\n let message = stripBlock(messageParts[0], messageParts.raw[0]);\n for (let i = 1; i < messageParts.length; i++) {\n message += expressions[i - 1] + stripBlock(messageParts[i], messageParts.raw[i]);\n }\n return message;\n};\nconst BLOCK_MARKER = ':';\n/**\n * Strip a delimited \"block\" from the start of the `messagePart`, if it is found.\n *\n * If a marker character (:) actually appears in the content at the start of a tagged string or\n * after a substitution expression, where a block has not been provided the character must be\n * escaped with a backslash, `\\:`. This function checks for this by looking at the `raw`\n * messagePart, which should still contain the backslash.\n *\n * @param messagePart The cooked message part to process.\n * @param rawMessagePart The raw message part to check.\n * @returns the message part with the placeholder name stripped, if found.\n * @throws an error if the block is unterminated\n */\nfunction stripBlock(messagePart, rawMessagePart) {\n return rawMessagePart.charAt(0) === BLOCK_MARKER\n ? messagePart.substring(findEndOfBlock(messagePart, rawMessagePart) + 1)\n : messagePart;\n}\n\n// This file exports all the `utils` as private exports so that other parts of `@angular/localize`\n\n// This file contains the public API of the `@angular/localize` entry-point\n\n// DO NOT ADD public exports to this file.\n\nexport { clearTranslations, loadTranslations, $localize$1 as ɵ$localize, MissingTranslationError as ɵMissingTranslationError, computeMsgId as ɵcomputeMsgId, findEndOfBlock as ɵfindEndOfBlock, isMissingTranslationError as ɵisMissingTranslationError, makeParsedTranslation as ɵmakeParsedTranslation, makeTemplateObject as ɵmakeTemplateObject, parseMessage as ɵparseMessage, parseMetadata as ɵparseMetadata, parseTranslation as ɵparseTranslation, splitBlock as ɵsplitBlock, translate$1 as ɵtranslate };\n","/**\n * @license Angular v18.2.8\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵ$localize } from '@angular/localize';\nexport { ɵ$localize as $localize } from '@angular/localize';\n\n// Attach $localize to the global context, as a side-effect of this module.\nglobalThis.$localize = ɵ$localize;\n"],"x_google_ignoreList":[1,2,3]}