diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/122.faec37ef.iframe.bundle.js b/122.faec37ef.iframe.bundle.js new file mode 100644 index 0000000..fb43e70 --- /dev/null +++ b/122.faec37ef.iframe.bundle.js @@ -0,0 +1,2 @@ +/*! For license information please see 122.faec37ef.iframe.bundle.js.LICENSE.txt */ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[122],{"./node_modules/@angular/cdk/fesm2022/collections.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{hx:()=>ArrayDataSource,CB:()=>SelectionModel,DQ:()=>_RecycleViewRepeaterStrategy,sL:()=>_VIEW_REPEATER_STRATEGY,y4:()=>isDataSource});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),Subscription=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subscription.js"),lift=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),OperatorSubscriber=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");var _ViewRepeaterOperation,ConnectableObservable=function(_super){function ConnectableObservable(source,subjectFactory){var _this=_super.call(this)||this;return _this.source=source,_this.subjectFactory=subjectFactory,_this._subject=null,_this._refCount=0,_this._connection=null,(0,lift.S)(source)&&(_this.lift=source.lift),_this}return(0,tslib_es6.C6)(ConnectableObservable,_super),ConnectableObservable.prototype._subscribe=function(subscriber){return this.getSubject().subscribe(subscriber)},ConnectableObservable.prototype.getSubject=function(){var subject=this._subject;return subject&&!subject.isStopped||(this._subject=this.subjectFactory()),this._subject},ConnectableObservable.prototype._teardown=function(){this._refCount=0;var _connection=this._connection;this._subject=this._connection=null,null==_connection||_connection.unsubscribe()},ConnectableObservable.prototype.connect=function(){var _this=this,connection=this._connection;if(!connection){connection=this._connection=new Subscription.yU;var subject_1=this.getSubject();connection.add(this.source.subscribe((0,OperatorSubscriber._)(subject_1,void 0,(function(){_this._teardown(),subject_1.complete()}),(function(err){_this._teardown(),subject_1.error(err)}),(function(){return _this._teardown()})))),connection.closed&&(this._connection=null,connection=Subscription.yU.EMPTY)}return connection},ConnectableObservable.prototype.refCount=function(){return function refCount(){return(0,lift.N)((function(source,subscriber){var connection=null;source._refCount++;var refCounter=(0,OperatorSubscriber._)(subscriber,void 0,void 0,void 0,(function(){if(!source||source._refCount<=0||0<--source._refCount)connection=null;else{var sharedConnection=source._connection,conn=connection;connection=null,!sharedConnection||conn&&sharedConnection!==conn||sharedConnection.unsubscribe(),subscriber.unsubscribe()}}));source.subscribe(refCounter),refCounter.closed||(connection=source.connect())}))}()(this)},ConnectableObservable}(Observable.c),isObservable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isObservable.js"),of=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");class DataSource{}function isDataSource(value){return value&&"function"==typeof value.connect&&!(value instanceof ConnectableObservable)}class ArrayDataSource extends DataSource{constructor(_data){super(),this._data=_data}connect(){return(0,isObservable.A)(this._data)?this._data:(0,of.of)(this._data)}disconnect(){}}!function(_ViewRepeaterOperation){_ViewRepeaterOperation[_ViewRepeaterOperation.REPLACED=0]="REPLACED",_ViewRepeaterOperation[_ViewRepeaterOperation.INSERTED=1]="INSERTED",_ViewRepeaterOperation[_ViewRepeaterOperation.MOVED=2]="MOVED",_ViewRepeaterOperation[_ViewRepeaterOperation.REMOVED=3]="REMOVED"}(_ViewRepeaterOperation||(_ViewRepeaterOperation={}));const _VIEW_REPEATER_STRATEGY=new core.InjectionToken("_ViewRepeater");class _RecycleViewRepeaterStrategy{constructor(){this.viewCacheSize=20,this._viewCache=[]}applyChanges(changes,viewContainerRef,itemContextFactory,itemValueResolver,itemViewChanged){changes.forEachOperation(((record,adjustedPreviousIndex,currentIndex)=>{let view,operation;if(null==record.previousIndex){const viewArgsFactory=()=>itemContextFactory(record,adjustedPreviousIndex,currentIndex);view=this._insertView(viewArgsFactory,currentIndex,viewContainerRef,itemValueResolver(record)),operation=view?_ViewRepeaterOperation.INSERTED:_ViewRepeaterOperation.REPLACED}else null==currentIndex?(this._detachAndCacheView(adjustedPreviousIndex,viewContainerRef),operation=_ViewRepeaterOperation.REMOVED):(view=this._moveView(adjustedPreviousIndex,currentIndex,viewContainerRef,itemValueResolver(record)),operation=_ViewRepeaterOperation.MOVED);itemViewChanged&&itemViewChanged({context:view?.context,operation,record})}))}detach(){for(const view of this._viewCache)view.destroy();this._viewCache=[]}_insertView(viewArgsFactory,currentIndex,viewContainerRef,value){const cachedView=this._insertViewFromCache(currentIndex,viewContainerRef);if(cachedView)return void(cachedView.context.$implicit=value);const viewArgs=viewArgsFactory();return viewContainerRef.createEmbeddedView(viewArgs.templateRef,viewArgs.context,viewArgs.index)}_detachAndCacheView(index,viewContainerRef){const detachedView=viewContainerRef.detach(index);this._maybeCacheView(detachedView,viewContainerRef)}_moveView(adjustedPreviousIndex,currentIndex,viewContainerRef,value){const view=viewContainerRef.get(adjustedPreviousIndex);return viewContainerRef.move(view,currentIndex),view.context.$implicit=value,view}_maybeCacheView(view,viewContainerRef){if(this._viewCache.lengththis._markSelected(value))):this._markSelected(initiallySelectedValues[0]),this._selectedToEmit.length=0)}select(...values){this._verifyValueAssignment(values),values.forEach((value=>this._markSelected(value)));const changed=this._hasQueuedChanges();return this._emitChangeEvent(),changed}deselect(...values){this._verifyValueAssignment(values),values.forEach((value=>this._unmarkSelected(value)));const changed=this._hasQueuedChanges();return this._emitChangeEvent(),changed}setSelection(...values){this._verifyValueAssignment(values);const oldValues=this.selected,newSelectedSet=new Set(values);values.forEach((value=>this._markSelected(value))),oldValues.filter((value=>!newSelectedSet.has(this._getConcreteValue(value,newSelectedSet)))).forEach((value=>this._unmarkSelected(value)));const changed=this._hasQueuedChanges();return this._emitChangeEvent(),changed}toggle(value){return this.isSelected(value)?this.deselect(value):this.select(value)}clear(flushEvent=!0){this._unmarkAll();const changed=this._hasQueuedChanges();return flushEvent&&this._emitChangeEvent(),changed}isSelected(value){return this._selection.has(this._getConcreteValue(value))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(predicate){this._multiple&&this.selected&&this._selected.sort(predicate)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(value){value=this._getConcreteValue(value),this.isSelected(value)||(this._multiple||this._unmarkAll(),this.isSelected(value)||this._selection.add(value),this._emitChanges&&this._selectedToEmit.push(value))}_unmarkSelected(value){value=this._getConcreteValue(value),this.isSelected(value)&&(this._selection.delete(value),this._emitChanges&&this._deselectedToEmit.push(value))}_unmarkAll(){this.isEmpty()||this._selection.forEach((value=>this._unmarkSelected(value)))}_verifyValueAssignment(values){if(values.length>1&&!this._multiple&&("undefined"==typeof ngDevMode||ngDevMode))throw function getMultipleValuesInSingleSelectionError(){return Error("Cannot pass multiple values into SelectionModel with single-value mode.")}()}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(inputValue,selection){if(this.compareWith){selection=selection??this._selection;for(let selectedValue of selection)if(this.compareWith(inputValue,selectedValue))return selectedValue;return inputValue}return inputValue}}class UniqueSelectionDispatcher{constructor(){this._listeners=[]}notify(id,name){for(let listener of this._listeners)listener(id,name)}listen(listener){return this._listeners.push(listener),()=>{this._listeners=this._listeners.filter((registered=>listener!==registered))}}ngOnDestroy(){this._listeners=[]}static#_=this.ɵfac=function UniqueSelectionDispatcher_Factory(__ngFactoryType__){return new(__ngFactoryType__||UniqueSelectionDispatcher)};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:UniqueSelectionDispatcher,factory:UniqueSelectionDispatcher.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](UniqueSelectionDispatcher,[{type:core.Injectable,args:[{providedIn:"root"}]}],null,null)},"./node_modules/@angular/forms/fesm2022/forms.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{X1:()=>ReactiveFormsModule,YN:()=>FormsModule,cV:()=>NgForm,j4:()=>FormGroupDirective,k0:()=>Validators,kq:()=>NG_VALUE_ACCESSOR,vO:()=>NgControl});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_common__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js"),rxjs__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),rxjs_operators__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");class BaseControlValueAccessor{constructor(_renderer,_elementRef){this._renderer=_renderer,this._elementRef=_elementRef,this.onChange=_=>{},this.onTouched=()=>{}}setProperty(key,value){this._renderer.setProperty(this._elementRef.nativeElement,key,value)}registerOnTouched(fn){this.onTouched=fn}registerOnChange(fn){this.onChange=fn}setDisabledState(isDisabled){this.setProperty("disabled",isDisabled)}static#_=this.ɵfac=function BaseControlValueAccessor_Factory(__ngFactoryType__){return new(__ngFactoryType__||BaseControlValueAccessor)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:BaseControlValueAccessor})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](BaseControlValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef}]),null);class BuiltInControlValueAccessor extends BaseControlValueAccessor{static#_=this.ɵfac=(()=>{let ɵBuiltInControlValueAccessor_BaseFactory;return function BuiltInControlValueAccessor_Factory(__ngFactoryType__){return(ɵBuiltInControlValueAccessor_BaseFactory||(ɵBuiltInControlValueAccessor_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](BuiltInControlValueAccessor)))(__ngFactoryType__||BuiltInControlValueAccessor)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:BuiltInControlValueAccessor,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](BuiltInControlValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive}],null,null);const NG_VALUE_ACCESSOR=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"NgValueAccessor":""),CHECKBOX_VALUE_ACCESSOR={provide:NG_VALUE_ACCESSOR,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>CheckboxControlValueAccessor)),multi:!0};class CheckboxControlValueAccessor extends BuiltInControlValueAccessor{writeValue(value){this.setProperty("checked",value)}static#_=this.ɵfac=(()=>{let ɵCheckboxControlValueAccessor_BaseFactory;return function CheckboxControlValueAccessor_Factory(__ngFactoryType__){return(ɵCheckboxControlValueAccessor_BaseFactory||(ɵCheckboxControlValueAccessor_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](CheckboxControlValueAccessor)))(__ngFactoryType__||CheckboxControlValueAccessor)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:CheckboxControlValueAccessor,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function CheckboxControlValueAccessor_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change",(function CheckboxControlValueAccessor_change_HostBindingHandler($event){return ctx.onChange($event.target.checked)}))("blur",(function CheckboxControlValueAccessor_blur_HostBindingHandler(){return ctx.onTouched()}))},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([CHECKBOX_VALUE_ACCESSOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](CheckboxControlValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[CHECKBOX_VALUE_ACCESSOR]}]}],null,null);const DEFAULT_VALUE_ACCESSOR={provide:NG_VALUE_ACCESSOR,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>DefaultValueAccessor)),multi:!0};const COMPOSITION_BUFFER_MODE=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"CompositionEventMode":"");class DefaultValueAccessor extends BaseControlValueAccessor{constructor(renderer,elementRef,_compositionMode){super(renderer,elementRef),this._compositionMode=_compositionMode,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function _isAndroid(){const userAgent=(0,_angular_common__WEBPACK_IMPORTED_MODULE_1__["ɵgetDOM"])()?(0,_angular_common__WEBPACK_IMPORTED_MODULE_1__["ɵgetDOM"])().getUserAgent():"";return/android (\d+)/.test(userAgent.toLowerCase())}())}writeValue(value){const normalizedValue=null==value?"":value;this.setProperty("value",normalizedValue)}_handleInput(value){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(value)}_compositionStart(){this._composing=!0}_compositionEnd(value){this._composing=!1,this._compositionMode&&this.onChange(value)}static#_=this.ɵfac=function DefaultValueAccessor_Factory(__ngFactoryType__){return new(__ngFactoryType__||DefaultValueAccessor)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](COMPOSITION_BUFFER_MODE,8))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:DefaultValueAccessor,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function DefaultValueAccessor_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("input",(function DefaultValueAccessor_input_HostBindingHandler($event){return ctx._handleInput($event.target.value)}))("blur",(function DefaultValueAccessor_blur_HostBindingHandler(){return ctx.onTouched()}))("compositionstart",(function DefaultValueAccessor_compositionstart_HostBindingHandler(){return ctx._compositionStart()}))("compositionend",(function DefaultValueAccessor_compositionend_HostBindingHandler($event){return ctx._compositionEnd($event.target.value)}))},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([DEFAULT_VALUE_ACCESSOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}function isEmptyInputValue(value){return null==value||("string"==typeof value||Array.isArray(value))&&0===value.length}function hasValidLength(value){return null!=value&&"number"==typeof value.length}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DefaultValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"$any(this)._handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"$any(this)._compositionStart()","(compositionend)":"$any(this)._compositionEnd($event.target.value)"},providers:[DEFAULT_VALUE_ACCESSOR]}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[COMPOSITION_BUFFER_MODE]}]}]),null);const NG_VALIDATORS=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"NgValidators":""),NG_ASYNC_VALIDATORS=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"NgAsyncValidators":""),EMAIL_REGEXP=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class Validators{static min(min){return minValidator(min)}static max(max){return maxValidator(max)}static required(control){return requiredValidator(control)}static requiredTrue(control){return requiredTrueValidator(control)}static email(control){return emailValidator(control)}static minLength(minLength){return minLengthValidator(minLength)}static maxLength(maxLength){return maxLengthValidator(maxLength)}static pattern(pattern){return patternValidator(pattern)}static nullValidator(control){return null}static compose(validators){return compose(validators)}static composeAsync(validators){return composeAsync(validators)}}function minValidator(min){return control=>{if(isEmptyInputValue(control.value)||isEmptyInputValue(min))return null;const value=parseFloat(control.value);return!isNaN(value)&&value{if(isEmptyInputValue(control.value)||isEmptyInputValue(max))return null;const value=parseFloat(control.value);return!isNaN(value)&&value>max?{max:{max,actual:control.value}}:null}}function requiredValidator(control){return isEmptyInputValue(control.value)?{required:!0}:null}function requiredTrueValidator(control){return!0===control.value?null:{required:!0}}function emailValidator(control){return isEmptyInputValue(control.value)||EMAIL_REGEXP.test(control.value)?null:{email:!0}}function minLengthValidator(minLength){return control=>isEmptyInputValue(control.value)||!hasValidLength(control.value)?null:control.value.lengthhasValidLength(control.value)&&control.value.length>maxLength?{maxlength:{requiredLength:maxLength,actualLength:control.value.length}}:null}function patternValidator(pattern){if(!pattern)return nullValidator;let regex,regexStr;return"string"==typeof pattern?(regexStr="","^"!==pattern.charAt(0)&&(regexStr+="^"),regexStr+=pattern,"$"!==pattern.charAt(pattern.length-1)&&(regexStr+="$"),regex=new RegExp(regexStr)):(regexStr=pattern.toString(),regex=pattern),control=>{if(isEmptyInputValue(control.value))return null;const value=control.value;return regex.test(value)?null:{pattern:{requiredPattern:regexStr,actualValue:value}}}}function nullValidator(control){return null}function isPresent(o){return null!=o}function toObservable(value){const obs=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵisPromise"])(value)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.H)(value):value;if(("undefined"==typeof ngDevMode||ngDevMode)&&!(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵisSubscribable"])(obs)){let errorMessage="Expected async validator to return Promise or Observable.";throw"object"==typeof value&&(errorMessage+=" Are you using a synchronous validator where an async validator is expected?"),new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](-1101,errorMessage)}return obs}function mergeErrors(arrayOfErrors){let res={};return arrayOfErrors.forEach((errors=>{res=null!=errors?{...res,...errors}:res})),0===Object.keys(res).length?null:res}function executeValidators(control,validators){return validators.map((validator=>validator(control)))}function normalizeValidators(validators){return validators.map((validator=>function isValidatorFn(validator){return!validator.validate}(validator)?validator:c=>validator.validate(c)))}function compose(validators){if(!validators)return null;const presentValidators=validators.filter(isPresent);return 0==presentValidators.length?null:function(control){return mergeErrors(executeValidators(control,presentValidators))}}function composeValidators(validators){return null!=validators?compose(normalizeValidators(validators)):null}function composeAsync(validators){if(!validators)return null;const presentValidators=validators.filter(isPresent);return 0==presentValidators.length?null:function(control){const observables=executeValidators(control,presentValidators).map(toObservable);return(0,rxjs__WEBPACK_IMPORTED_MODULE_3__.p)(observables).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.T)(mergeErrors))}}function composeAsyncValidators(validators){return null!=validators?composeAsync(normalizeValidators(validators)):null}function mergeValidators(controlValidators,dirValidator){return null===controlValidators?[dirValidator]:Array.isArray(controlValidators)?[...controlValidators,dirValidator]:[controlValidators,dirValidator]}function getControlValidators(control){return control._rawValidators}function getControlAsyncValidators(control){return control._rawAsyncValidators}function makeValidatorsArray(validators){return validators?Array.isArray(validators)?validators:[validators]:[]}function hasValidator(validators,validator){return Array.isArray(validators)?validators.includes(validator):validators===validator}function addValidators(validators,currentValidators){const current=makeValidatorsArray(currentValidators);return makeValidatorsArray(validators).forEach((v=>{hasValidator(current,v)||current.push(v)})),current}function removeValidators(validators,currentValidators){return makeValidatorsArray(currentValidators).filter((v=>!hasValidator(validators,v)))}class AbstractControlDirective{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(validators){this._rawValidators=validators||[],this._composedValidatorFn=composeValidators(this._rawValidators)}_setAsyncValidators(validators){this._rawAsyncValidators=validators||[],this._composedAsyncValidatorFn=composeAsyncValidators(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(fn){this._onDestroyCallbacks.push(fn)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach((fn=>fn())),this._onDestroyCallbacks=[]}reset(value=void 0){this.control&&this.control.reset(value)}hasError(errorCode,path){return!!this.control&&this.control.hasError(errorCode,path)}getError(errorCode,path){return this.control?this.control.getError(errorCode,path):null}}class ControlContainer extends AbstractControlDirective{get formDirective(){return null}get path(){return null}}class NgControl extends AbstractControlDirective{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class AbstractControlStatus{constructor(cd){this._cd=cd}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}const ngControlStatusHost={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},ngGroupStatusHost={...ngControlStatusHost,"[class.ng-submitted]":"isSubmitted"};class NgControlStatus extends AbstractControlStatus{constructor(cd){super(cd)}static#_=this.ɵfac=function NgControlStatus_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgControlStatus)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgControl,2))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgControlStatus,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function NgControlStatus_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("ng-untouched",ctx.isUntouched)("ng-touched",ctx.isTouched)("ng-pristine",ctx.isPristine)("ng-dirty",ctx.isDirty)("ng-valid",ctx.isValid)("ng-invalid",ctx.isInvalid)("ng-pending",ctx.isPending)},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgControlStatus,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[formControlName],[ngModel],[formControl]",host:ngControlStatusHost}]}],(()=>[{type:NgControl,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self}]}]),null);class NgControlStatusGroup extends AbstractControlStatus{constructor(cd){super(cd)}static#_=this.ɵfac=function NgControlStatusGroup_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgControlStatusGroup)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ControlContainer,10))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgControlStatusGroup,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function NgControlStatusGroup_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("ng-untouched",ctx.isUntouched)("ng-touched",ctx.isTouched)("ng-pristine",ctx.isPristine)("ng-dirty",ctx.isDirty)("ng-valid",ctx.isValid)("ng-invalid",ctx.isInvalid)("ng-pending",ctx.isPending)("ng-submitted",ctx.isSubmitted)},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgControlStatusGroup,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:ngGroupStatusHost}]}],(()=>[{type:ControlContainer,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self}]}]),null);const formControlNameExample='\n
\n \n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',formGroupNameExample='\n
\n
\n \n
\n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',ngModelGroupExample='\n
\n
\n \n
\n
';const disabledAttrWarning="\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n\n Example:\n // Specify the `disabled` property at control creation time:\n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n\n // Controls can also be enabled/disabled after creation:\n form.get('first')?.enable();\n form.get('last')?.disable();\n";function describeKey(isFormGroup,key){return isFormGroup?`with name: '${key}'`:`at index: ${key}`}class ControlEvent{}class ValueChangeEvent extends ControlEvent{constructor(value,source){super(),this.value=value,this.source=source}}class PristineChangeEvent extends ControlEvent{constructor(pristine,source){super(),this.pristine=pristine,this.source=source}}class TouchedChangeEvent extends ControlEvent{constructor(touched,source){super(),this.touched=touched,this.source=source}}class StatusChangeEvent extends ControlEvent{constructor(status,source){super(),this.status=status,this.source=source}}class FormSubmittedEvent extends ControlEvent{constructor(source){super(),this.source=source}}class FormResetEvent extends ControlEvent{constructor(source){super(),this.source=source}}function pickValidators(validatorOrOpts){return(isOptionsObj(validatorOrOpts)?validatorOrOpts.validators:validatorOrOpts)||null}function pickAsyncValidators(asyncValidator,validatorOrOpts){return("undefined"==typeof ngDevMode||ngDevMode)&&isOptionsObj(validatorOrOpts)&&asyncValidator&&console.warn("\n It looks like you're constructing using a FormControl with both an options argument and an\n async validators argument. Mixing these arguments will cause your async validators to be dropped.\n You should either put all your validators in the options object, or in separate validators\n arguments. For example:\n\n // Using validators arguments\n fc = new FormControl(42, Validators.required, myAsyncValidator);\n\n // Using AbstractControlOptions\n fc = new FormControl(42, {validators: Validators.required, asyncValidators: myAV});\n\n // Do NOT mix them: async validators will be dropped!\n fc = new FormControl(42, {validators: Validators.required}, /* Oops! */ myAsyncValidator);\n"),(isOptionsObj(validatorOrOpts)?validatorOrOpts.asyncValidators:asyncValidator)||null}function isOptionsObj(validatorOrOpts){return null!=validatorOrOpts&&!Array.isArray(validatorOrOpts)&&"object"==typeof validatorOrOpts}function assertControlPresent(parent,isGroup,key){const controls=parent.controls;if(!(isGroup?Object.keys(controls):controls).length)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1e3,"undefined"==typeof ngDevMode||ngDevMode?function noControlsError(isFormGroup){return`\n There are no form controls registered with this ${isFormGroup?"group":"array"} yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n `}(isGroup):"");if(!controls[key])throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1001,"undefined"==typeof ngDevMode||ngDevMode?function missingControlError(isFormGroup,key){return`Cannot find form control ${describeKey(isFormGroup,key)}`}(isGroup,key):"")}function assertAllValuesPresent(control,isGroup,value){control._forEachChild(((_,key)=>{if(void 0===value[key])throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1002,"undefined"==typeof ngDevMode||ngDevMode?function missingControlValueError(isFormGroup,key){return`Must supply a value for form control ${describeKey(isFormGroup,key)}`}(isGroup,key):"")}))}class AbstractControl{constructor(validators,asyncValidators){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=null,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this._status=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.computed)((()=>this.statusReactive())),this.statusReactive=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.signal)(void 0),this._pristine=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.computed)((()=>this.pristineReactive())),this.pristineReactive=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.signal)(!0),this._touched=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.computed)((()=>this.touchedReactive())),this.touchedReactive=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.signal)(!1),this._events=new rxjs__WEBPACK_IMPORTED_MODULE_5__.B,this.events=this._events.asObservable(),this._onDisabledChange=[],this._assignValidators(validators),this._assignAsyncValidators(asyncValidators)}get validator(){return this._composedValidatorFn}set validator(validatorFn){this._rawValidators=this._composedValidatorFn=validatorFn}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(asyncValidatorFn){this._rawAsyncValidators=this._composedAsyncValidatorFn=asyncValidatorFn}get parent(){return this._parent}get status(){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)(this.statusReactive)}set status(v){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)((()=>this.statusReactive.set(v)))}get valid(){return"VALID"===this.status}get invalid(){return"INVALID"===this.status}get pending(){return"PENDING"==this.status}get disabled(){return"DISABLED"===this.status}get enabled(){return"DISABLED"!==this.status}get pristine(){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)(this.pristineReactive)}set pristine(v){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)((()=>this.pristineReactive.set(v)))}get dirty(){return!this.pristine}get touched(){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)(this.touchedReactive)}set touched(v){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)((()=>this.touchedReactive.set(v)))}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(validators){this._assignValidators(validators)}setAsyncValidators(validators){this._assignAsyncValidators(validators)}addValidators(validators){this.setValidators(addValidators(validators,this._rawValidators))}addAsyncValidators(validators){this.setAsyncValidators(addValidators(validators,this._rawAsyncValidators))}removeValidators(validators){this.setValidators(removeValidators(validators,this._rawValidators))}removeAsyncValidators(validators){this.setAsyncValidators(removeValidators(validators,this._rawAsyncValidators))}hasValidator(validator){return hasValidator(this._rawValidators,validator)}hasAsyncValidator(validator){return hasValidator(this._rawAsyncValidators,validator)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(opts={}){const changed=!1===this.touched;this.touched=!0;const sourceControl=opts.sourceControl??this;this._parent&&!opts.onlySelf&&this._parent.markAsTouched({...opts,sourceControl}),changed&&!1!==opts.emitEvent&&this._events.next(new TouchedChangeEvent(!0,sourceControl))}markAllAsTouched(opts={}){this.markAsTouched({onlySelf:!0,emitEvent:opts.emitEvent,sourceControl:this}),this._forEachChild((control=>control.markAllAsTouched(opts)))}markAsUntouched(opts={}){const changed=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const sourceControl=opts.sourceControl??this;this._forEachChild((control=>{control.markAsUntouched({onlySelf:!0,emitEvent:opts.emitEvent,sourceControl})})),this._parent&&!opts.onlySelf&&this._parent._updateTouched(opts,sourceControl),changed&&!1!==opts.emitEvent&&this._events.next(new TouchedChangeEvent(!1,sourceControl))}markAsDirty(opts={}){const changed=!0===this.pristine;this.pristine=!1;const sourceControl=opts.sourceControl??this;this._parent&&!opts.onlySelf&&this._parent.markAsDirty({...opts,sourceControl}),changed&&!1!==opts.emitEvent&&this._events.next(new PristineChangeEvent(!1,sourceControl))}markAsPristine(opts={}){const changed=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const sourceControl=opts.sourceControl??this;this._forEachChild((control=>{control.markAsPristine({onlySelf:!0,emitEvent:opts.emitEvent})})),this._parent&&!opts.onlySelf&&this._parent._updatePristine(opts,sourceControl),changed&&!1!==opts.emitEvent&&this._events.next(new PristineChangeEvent(!0,sourceControl))}markAsPending(opts={}){this.status="PENDING";const sourceControl=opts.sourceControl??this;!1!==opts.emitEvent&&(this._events.next(new StatusChangeEvent(this.status,sourceControl)),this.statusChanges.emit(this.status)),this._parent&&!opts.onlySelf&&this._parent.markAsPending({...opts,sourceControl})}disable(opts={}){const skipPristineCheck=this._parentMarkedDirty(opts.onlySelf);this.status="DISABLED",this.errors=null,this._forEachChild((control=>{control.disable({...opts,onlySelf:!0})})),this._updateValue();const sourceControl=opts.sourceControl??this;!1!==opts.emitEvent&&(this._events.next(new ValueChangeEvent(this.value,sourceControl)),this._events.next(new StatusChangeEvent(this.status,sourceControl)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...opts,skipPristineCheck},this),this._onDisabledChange.forEach((changeFn=>changeFn(!0)))}enable(opts={}){const skipPristineCheck=this._parentMarkedDirty(opts.onlySelf);this.status="VALID",this._forEachChild((control=>{control.enable({...opts,onlySelf:!0})})),this.updateValueAndValidity({onlySelf:!0,emitEvent:opts.emitEvent}),this._updateAncestors({...opts,skipPristineCheck},this),this._onDisabledChange.forEach((changeFn=>changeFn(!1)))}_updateAncestors(opts,sourceControl){this._parent&&!opts.onlySelf&&(this._parent.updateValueAndValidity(opts),opts.skipPristineCheck||this._parent._updatePristine({},sourceControl),this._parent._updateTouched({},sourceControl))}setParent(parent){this._parent=parent}getRawValue(){return this.value}updateValueAndValidity(opts={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const shouldHaveEmitted=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||this._runAsyncValidator(shouldHaveEmitted,opts.emitEvent)}const sourceControl=opts.sourceControl??this;!1!==opts.emitEvent&&(this._events.next(new ValueChangeEvent(this.value,sourceControl)),this._events.next(new StatusChangeEvent(this.status,sourceControl)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!opts.onlySelf&&this._parent.updateValueAndValidity({...opts,sourceControl})}_updateTreeValidity(opts={emitEvent:!0}){this._forEachChild((ctrl=>ctrl._updateTreeValidity(opts))),this.updateValueAndValidity({onlySelf:!0,emitEvent:opts.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?"DISABLED":"VALID"}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(shouldHaveEmitted,emitEvent){if(this.asyncValidator){this.status="PENDING",this._hasOwnPendingAsyncValidator={emitEvent:!1!==emitEvent};const obs=toObservable(this.asyncValidator(this));this._asyncValidationSubscription=obs.subscribe((errors=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(errors,{emitEvent,shouldHaveEmitted})}))}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const shouldHaveEmitted=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,shouldHaveEmitted}return!1}setErrors(errors,opts={}){this.errors=errors,this._updateControlsErrors(!1!==opts.emitEvent,this,opts.shouldHaveEmitted)}get(path){let currPath=path;return null==currPath?null:(Array.isArray(currPath)||(currPath=currPath.split(".")),0===currPath.length?null:currPath.reduce(((control,name)=>control&&control._find(name)),this))}getError(errorCode,path){const control=path?this.get(path):this;return control&&control.errors?control.errors[errorCode]:null}hasError(errorCode,path){return!!this.getError(errorCode,path)}get root(){let x=this;for(;x._parent;)x=x._parent;return x}_updateControlsErrors(emitEvent,changedControl,shouldHaveEmitted){this.status=this._calculateStatus(),emitEvent&&this.statusChanges.emit(this.status),(emitEvent||shouldHaveEmitted)&&this._events.next(new StatusChangeEvent(this.status,changedControl)),this._parent&&this._parent._updateControlsErrors(emitEvent,changedControl,shouldHaveEmitted)}_initObservables(){this.valueChanges=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this.statusChanges=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter}_calculateStatus(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"}_anyControlsHaveStatus(status){return this._anyControls((control=>control.status===status))}_anyControlsDirty(){return this._anyControls((control=>control.dirty))}_anyControlsTouched(){return this._anyControls((control=>control.touched))}_updatePristine(opts,changedControl){const newPristine=!this._anyControlsDirty(),changed=this.pristine!==newPristine;this.pristine=newPristine,this._parent&&!opts.onlySelf&&this._parent._updatePristine(opts,changedControl),changed&&this._events.next(new PristineChangeEvent(this.pristine,changedControl))}_updateTouched(opts={},changedControl){this.touched=this._anyControlsTouched(),this._events.next(new TouchedChangeEvent(this.touched,changedControl)),this._parent&&!opts.onlySelf&&this._parent._updateTouched(opts,changedControl)}_registerOnCollectionChange(fn){this._onCollectionChange=fn}_setUpdateStrategy(opts){isOptionsObj(opts)&&null!=opts.updateOn&&(this._updateOn=opts.updateOn)}_parentMarkedDirty(onlySelf){const parentDirty=this._parent&&this._parent.dirty;return!onlySelf&&!!parentDirty&&!this._parent._anyControlsDirty()}_find(name){return null}_assignValidators(validators){this._rawValidators=Array.isArray(validators)?validators.slice():validators,this._composedValidatorFn=function coerceToValidator(validator){return Array.isArray(validator)?composeValidators(validator):validator||null}(this._rawValidators)}_assignAsyncValidators(validators){this._rawAsyncValidators=Array.isArray(validators)?validators.slice():validators,this._composedAsyncValidatorFn=function coerceToAsyncValidator(asyncValidator){return Array.isArray(asyncValidator)?composeAsyncValidators(asyncValidator):asyncValidator||null}(this._rawAsyncValidators)}}class FormGroup extends AbstractControl{constructor(controls,validatorOrOpts,asyncValidator){super(pickValidators(validatorOrOpts),pickAsyncValidators(asyncValidator,validatorOrOpts)),("undefined"==typeof ngDevMode||ngDevMode)&&function validateFormGroupControls(controls){const invalidKeys=Object.keys(controls).filter((key=>key.includes(".")));invalidKeys.length>0&&console.warn(`FormGroup keys cannot include \`.\`, please replace the keys for: ${invalidKeys.join(",")}.`)}(controls),this.controls=controls,this._initObservables(),this._setUpdateStrategy(validatorOrOpts),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(name,control){return this.controls[name]?this.controls[name]:(this.controls[name]=control,control.setParent(this),control._registerOnCollectionChange(this._onCollectionChange),control)}addControl(name,control,options={}){this.registerControl(name,control),this.updateValueAndValidity({emitEvent:options.emitEvent}),this._onCollectionChange()}removeControl(name,options={}){this.controls[name]&&this.controls[name]._registerOnCollectionChange((()=>{})),delete this.controls[name],this.updateValueAndValidity({emitEvent:options.emitEvent}),this._onCollectionChange()}setControl(name,control,options={}){this.controls[name]&&this.controls[name]._registerOnCollectionChange((()=>{})),delete this.controls[name],control&&this.registerControl(name,control),this.updateValueAndValidity({emitEvent:options.emitEvent}),this._onCollectionChange()}contains(controlName){return this.controls.hasOwnProperty(controlName)&&this.controls[controlName].enabled}setValue(value,options={}){assertAllValuesPresent(this,!0,value),Object.keys(value).forEach((name=>{assertControlPresent(this,!0,name),this.controls[name].setValue(value[name],{onlySelf:!0,emitEvent:options.emitEvent})})),this.updateValueAndValidity(options)}patchValue(value,options={}){null!=value&&(Object.keys(value).forEach((name=>{const control=this.controls[name];control&&control.patchValue(value[name],{onlySelf:!0,emitEvent:options.emitEvent})})),this.updateValueAndValidity(options))}reset(value={},options={}){this._forEachChild(((control,name)=>{control.reset(value?value[name]:null,{onlySelf:!0,emitEvent:options.emitEvent})})),this._updatePristine(options,this),this._updateTouched(options,this),this.updateValueAndValidity(options)}getRawValue(){return this._reduceChildren({},((acc,control,name)=>(acc[name]=control.getRawValue(),acc)))}_syncPendingControls(){let subtreeUpdated=this._reduceChildren(!1,((updated,child)=>!!child._syncPendingControls()||updated));return subtreeUpdated&&this.updateValueAndValidity({onlySelf:!0}),subtreeUpdated}_forEachChild(cb){Object.keys(this.controls).forEach((key=>{const control=this.controls[key];control&&cb(control,key)}))}_setUpControls(){this._forEachChild((control=>{control.setParent(this),control._registerOnCollectionChange(this._onCollectionChange)}))}_updateValue(){this.value=this._reduceValue()}_anyControls(condition){for(const[controlName,control]of Object.entries(this.controls))if(this.contains(controlName)&&condition(control))return!0;return!1}_reduceValue(){return this._reduceChildren({},((acc,control,name)=>((control.enabled||this.disabled)&&(acc[name]=control.value),acc)))}_reduceChildren(initValue,fn){let res=initValue;return this._forEachChild(((control,name)=>{res=fn(res,control,name)})),res}_allControlsDisabled(){for(const controlName of Object.keys(this.controls))if(this.controls[controlName].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(name){return this.controls.hasOwnProperty(name)?this.controls[name]:null}}class FormRecord extends FormGroup{}const CALL_SET_DISABLED_STATE=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken("CallSetDisabledState",{providedIn:"root",factory:()=>setDisabledStateDefault}),setDisabledStateDefault="always";function controlPath(name,parent){return[...parent.path,name]}function setUpControl(control,dir,callSetDisabledState=setDisabledStateDefault){("undefined"==typeof ngDevMode||ngDevMode)&&(control||_throwError(dir,"Cannot find control with"),dir.valueAccessor||function _throwMissingValueAccessorError(dir){const loc=_describeControlLocation(dir);throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](-1203,`No value accessor for form control ${loc}.`)}(dir)),setUpValidators(control,dir),dir.valueAccessor.writeValue(control.value),(control.disabled||"always"===callSetDisabledState)&&dir.valueAccessor.setDisabledState?.(control.disabled),function setUpViewChangePipeline(control,dir){dir.valueAccessor.registerOnChange((newValue=>{control._pendingValue=newValue,control._pendingChange=!0,control._pendingDirty=!0,"change"===control.updateOn&&updateControl(control,dir)}))}(control,dir),function setUpModelChangePipeline(control,dir){const onChange=(newValue,emitModelEvent)=>{dir.valueAccessor.writeValue(newValue),emitModelEvent&&dir.viewToModelUpdate(newValue)};control.registerOnChange(onChange),dir._registerOnDestroy((()=>{control._unregisterOnChange(onChange)}))}(control,dir),function setUpBlurPipeline(control,dir){dir.valueAccessor.registerOnTouched((()=>{control._pendingTouched=!0,"blur"===control.updateOn&&control._pendingChange&&updateControl(control,dir),"submit"!==control.updateOn&&control.markAsTouched()}))}(control,dir),function setUpDisabledChangeHandler(control,dir){if(dir.valueAccessor.setDisabledState){const onDisabledChange=isDisabled=>{dir.valueAccessor.setDisabledState(isDisabled)};control.registerOnDisabledChange(onDisabledChange),dir._registerOnDestroy((()=>{control._unregisterOnDisabledChange(onDisabledChange)}))}}(control,dir)}function cleanUpControl(control,dir,validateControlPresenceOnChange=!0){const noop=()=>{validateControlPresenceOnChange&&("undefined"==typeof ngDevMode||ngDevMode)&&function _noControlError(dir){return _throwError(dir,"There is no FormControl instance attached to form control element with")}(dir)};dir.valueAccessor&&(dir.valueAccessor.registerOnChange(noop),dir.valueAccessor.registerOnTouched(noop)),cleanUpValidators(control,dir),control&&(dir._invokeOnDestroyCallbacks(),control._registerOnCollectionChange((()=>{})))}function registerOnValidatorChange(validators,onChange){validators.forEach((validator=>{validator.registerOnValidatorChange&&validator.registerOnValidatorChange(onChange)}))}function setUpValidators(control,dir){const validators=getControlValidators(control);null!==dir.validator?control.setValidators(mergeValidators(validators,dir.validator)):"function"==typeof validators&&control.setValidators([validators]);const asyncValidators=getControlAsyncValidators(control);null!==dir.asyncValidator?control.setAsyncValidators(mergeValidators(asyncValidators,dir.asyncValidator)):"function"==typeof asyncValidators&&control.setAsyncValidators([asyncValidators]);const onValidatorChange=()=>control.updateValueAndValidity();registerOnValidatorChange(dir._rawValidators,onValidatorChange),registerOnValidatorChange(dir._rawAsyncValidators,onValidatorChange)}function cleanUpValidators(control,dir){let isControlUpdated=!1;if(null!==control){if(null!==dir.validator){const validators=getControlValidators(control);if(Array.isArray(validators)&&validators.length>0){const updatedValidators=validators.filter((validator=>validator!==dir.validator));updatedValidators.length!==validators.length&&(isControlUpdated=!0,control.setValidators(updatedValidators))}}if(null!==dir.asyncValidator){const asyncValidators=getControlAsyncValidators(control);if(Array.isArray(asyncValidators)&&asyncValidators.length>0){const updatedAsyncValidators=asyncValidators.filter((asyncValidator=>asyncValidator!==dir.asyncValidator));updatedAsyncValidators.length!==asyncValidators.length&&(isControlUpdated=!0,control.setAsyncValidators(updatedAsyncValidators))}}}const noop=()=>{};return registerOnValidatorChange(dir._rawValidators,noop),registerOnValidatorChange(dir._rawAsyncValidators,noop),isControlUpdated}function updateControl(control,dir){control._pendingDirty&&control.markAsDirty(),control.setValue(control._pendingValue,{emitModelToViewChange:!1}),dir.viewToModelUpdate(control._pendingValue),control._pendingChange=!1}function setUpFormContainer(control,dir){null!=control||"undefined"!=typeof ngDevMode&&!ngDevMode||_throwError(dir,"Cannot find control with"),setUpValidators(control,dir)}function _throwError(dir,message){const messageEnd=_describeControlLocation(dir);throw new Error(`${message} ${messageEnd}`)}function _describeControlLocation(dir){const path=dir.path;return path&&path.length>1?`path: '${path.join(" -> ")}'`:path?.[0]?`name: '${path}'`:"unspecified name attribute"}function isPropertyUpdated(changes,viewModel){if(!changes.hasOwnProperty("model"))return!1;const change=changes.model;return!!change.isFirstChange()||!Object.is(viewModel,change.currentValue)}function syncPendingControls(form,directives){form._syncPendingControls(),directives.forEach((dir=>{const control=dir.control;"submit"===control.updateOn&&control._pendingChange&&(dir.viewToModelUpdate(control._pendingValue),control._pendingChange=!1)}))}function selectValueAccessor(dir,valueAccessors){if(!valueAccessors)return null;let defaultAccessor,builtinAccessor,customAccessor;return Array.isArray(valueAccessors)||"undefined"!=typeof ngDevMode&&!ngDevMode||function _throwInvalidValueAccessorError(dir){const loc=_describeControlLocation(dir);throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1200,`Value accessor was not provided as an array for form control with ${loc}. Check that the \`NG_VALUE_ACCESSOR\` token is configured as a \`multi: true\` provider.`)}(dir),valueAccessors.forEach((v=>{v.constructor===DefaultValueAccessor?defaultAccessor=v:!function isBuiltInAccessor(valueAccessor){return Object.getPrototypeOf(valueAccessor.constructor)===BuiltInControlValueAccessor}(v)?(customAccessor&&("undefined"==typeof ngDevMode||ngDevMode)&&_throwError(dir,"More than one custom value accessor matches form control with"),customAccessor=v):(builtinAccessor&&("undefined"==typeof ngDevMode||ngDevMode)&&_throwError(dir,"More than one built-in value accessor matches form control with"),builtinAccessor=v)})),customAccessor||(builtinAccessor||(defaultAccessor||(("undefined"==typeof ngDevMode||ngDevMode)&&_throwError(dir,"No valid value accessor for form control with"),null)))}function _ngModelWarning(name,type,instance,warningConfig){"never"!==warningConfig&&((null!==warningConfig&&"once"!==warningConfig||type._ngModelWarningSentOnce)&&("always"!==warningConfig||instance._ngModelWarningSent)||(console.warn(function ngModelWarning(directiveName){return`\n It looks like you're using ngModel on the same form field as ${directiveName}.\n Support for using the ngModel input property and ngModelChange event with\n reactive form directives has been deprecated in Angular v6 and will be removed\n in a future version of Angular.\n\n For more information on this, see our API docs here:\n https://angular.io/api/forms/${"formControl"===directiveName?"FormControlDirective":"FormControlName"}#use-with-ngmodel\n `}(name)),type._ngModelWarningSentOnce=!0,instance._ngModelWarningSent=!0))}const formDirectiveProvider$1={provide:ControlContainer,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>NgForm))},resolvedPromise$1=Promise.resolve();class NgForm extends ControlContainer{get submitted(){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)(this.submittedReactive)}constructor(validators,asyncValidators,callSetDisabledState){super(),this.callSetDisabledState=callSetDisabledState,this._submitted=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.computed)((()=>this.submittedReactive())),this.submittedReactive=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.signal)(!1),this._directives=new Set,this.ngSubmit=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this.form=new FormGroup({},composeValidators(validators),composeAsyncValidators(asyncValidators))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(dir){resolvedPromise$1.then((()=>{const container=this._findContainer(dir.path);dir.control=container.registerControl(dir.name,dir.control),setUpControl(dir.control,dir,this.callSetDisabledState),dir.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(dir)}))}getControl(dir){return this.form.get(dir.path)}removeControl(dir){resolvedPromise$1.then((()=>{const container=this._findContainer(dir.path);container&&container.removeControl(dir.name),this._directives.delete(dir)}))}addFormGroup(dir){resolvedPromise$1.then((()=>{const container=this._findContainer(dir.path),group=new FormGroup({});setUpFormContainer(group,dir),container.registerControl(dir.name,group),group.updateValueAndValidity({emitEvent:!1})}))}removeFormGroup(dir){resolvedPromise$1.then((()=>{const container=this._findContainer(dir.path);container&&container.removeControl(dir.name)}))}getFormGroup(dir){return this.form.get(dir.path)}updateModel(dir,value){resolvedPromise$1.then((()=>{this.form.get(dir.path).setValue(value)}))}setValue(value){this.control.setValue(value)}onSubmit($event){return this.submittedReactive.set(!0),syncPendingControls(this.form,this._directives),this.ngSubmit.emit($event),"dialog"===$event?.target?.method}onReset(){this.resetForm()}resetForm(value=void 0){this.form.reset(value),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(path){return path.pop(),path.length?this.form.get(path):this.form}static#_=this.ɵfac=function NgForm_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgForm)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](CALL_SET_DISABLED_STATE,8))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgForm,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function NgForm_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("submit",(function NgForm_submit_HostBindingHandler($event){return ctx.onSubmit($event)}))("reset",(function NgForm_reset_HostBindingHandler(){return ctx.onReset()}))},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([formDirectiveProvider$1]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}function removeListItem(list,el){const index=list.indexOf(el);index>-1&&list.splice(index,1)}function isFormControlState(formState){return"object"==typeof formState&&null!==formState&&2===Object.keys(formState).length&&"value"in formState&&"disabled"in formState}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgForm,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]",providers:[formDirectiveProvider$1],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[CALL_SET_DISABLED_STATE]}]}]),{options:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngFormOptions"]}]});const FormControl=class FormControl extends AbstractControl{constructor(formState=null,validatorOrOpts,asyncValidator){super(pickValidators(validatorOrOpts),pickAsyncValidators(asyncValidator,validatorOrOpts)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(formState),this._setUpdateStrategy(validatorOrOpts),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),isOptionsObj(validatorOrOpts)&&(validatorOrOpts.nonNullable||validatorOrOpts.initialValueIsDefault)&&(isFormControlState(formState)?this.defaultValue=formState.value:this.defaultValue=formState)}setValue(value,options={}){this.value=this._pendingValue=value,this._onChange.length&&!1!==options.emitModelToViewChange&&this._onChange.forEach((changeFn=>changeFn(this.value,!1!==options.emitViewToModelChange))),this.updateValueAndValidity(options)}patchValue(value,options={}){this.setValue(value,options)}reset(formState=this.defaultValue,options={}){this._applyFormState(formState),this.markAsPristine(options),this.markAsUntouched(options),this.setValue(this.value,options),this._pendingChange=!1}_updateValue(){}_anyControls(condition){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(fn){this._onChange.push(fn)}_unregisterOnChange(fn){removeListItem(this._onChange,fn)}registerOnDisabledChange(fn){this._onDisabledChange.push(fn)}_unregisterOnDisabledChange(fn){removeListItem(this._onDisabledChange,fn)}_forEachChild(cb){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange))&&(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0)}_applyFormState(formState){isFormControlState(formState)?(this.value=this._pendingValue=formState.value,formState.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=formState}};class AbstractFormGroupDirective extends ControlContainer{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return controlPath(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#_=this.ɵfac=(()=>{let ɵAbstractFormGroupDirective_BaseFactory;return function AbstractFormGroupDirective_Factory(__ngFactoryType__){return(ɵAbstractFormGroupDirective_BaseFactory||(ɵAbstractFormGroupDirective_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](AbstractFormGroupDirective)))(__ngFactoryType__||AbstractFormGroupDirective)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:AbstractFormGroupDirective,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AbstractFormGroupDirective,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive}],null,null);const modelGroupProvider={provide:ControlContainer,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>NgModelGroup))};class NgModelGroup extends AbstractFormGroupDirective{constructor(parent,validators,asyncValidators){super(),this.name="",this._parent=parent,this._setValidators(validators),this._setAsyncValidators(asyncValidators)}_checkParentType(){if(!(this._parent instanceof NgModelGroup)&&!(this._parent instanceof NgForm)&&("undefined"==typeof ngDevMode||ngDevMode))throw function modelGroupParentException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1353,`\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n ${formGroupNameExample}\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n ${ngModelGroupExample}`)}()}static#_=this.ɵfac=function NgModelGroup_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgModelGroup)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ControlContainer,5),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgModelGroup,selectors:[["","ngModelGroup",""]],inputs:{name:[0,"ngModelGroup","name"]},exportAs:["ngModelGroup"],features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([modelGroupProvider]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgModelGroup,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngModelGroup]",providers:[modelGroupProvider],exportAs:"ngModelGroup"}]}],(()=>[{type:ControlContainer,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.SkipSelf}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]}]),{name:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngModelGroup"]}]});const formControlBinding$1={provide:NgControl,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>NgModel))},resolvedPromise=Promise.resolve();class NgModel extends NgControl{constructor(parent,validators,asyncValidators,valueAccessors,_changeDetectorRef,callSetDisabledState){super(),this._changeDetectorRef=_changeDetectorRef,this.callSetDisabledState=callSetDisabledState,this.control=new FormControl,this._registered=!1,this.name="",this.update=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this._parent=parent,this._setValidators(validators),this._setAsyncValidators(asyncValidators),this.valueAccessor=selectValueAccessor(this,valueAccessors)}ngOnChanges(changes){if(this._checkForErrors(),!this._registered||"name"in changes){if(this._registered&&(this._checkName(),this.formDirective)){const oldName=changes.name.previousValue;this.formDirective.removeControl({name:oldName,path:this._getPath(oldName)})}this._setUpControl()}"isDisabled"in changes&&this._updateDisabled(changes),isPropertyUpdated(changes,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(newValue){this.viewModel=newValue,this.update.emit(newValue)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){setUpControl(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){if("undefined"==typeof ngDevMode||ngDevMode){if(!(this._parent instanceof NgModelGroup)&&this._parent instanceof AbstractFormGroupDirective)throw function formGroupNameException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1351,`\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n ${formGroupNameExample}\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n ${ngModelGroupExample}`)}();if(!(this._parent instanceof NgModelGroup||this._parent instanceof NgForm))throw function modelParentException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1350,`\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup's partner directive "formControlName" instead. Example:\n\n ${formControlNameExample}\n\n Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n Example:\n\n \n
\n \n \n
\n`)}()}}_checkName(){if(this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&!this.name&&("undefined"==typeof ngDevMode||ngDevMode))throw function missingNameException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1352,'If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: \n Example 2: ')}()}_updateValue(value){resolvedPromise.then((()=>{this.control.setValue(value,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()}))}_updateDisabled(changes){const disabledValue=changes.isDisabled.currentValue,isDisabled=0!==disabledValue&&(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute)(disabledValue);resolvedPromise.then((()=>{isDisabled&&!this.control.disabled?this.control.disable():!isDisabled&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()}))}_getPath(controlName){return this._parent?controlPath(controlName,this._parent):[controlName]}static#_=this.ɵfac=function NgModel_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgModel)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ControlContainer,9),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALUE_ACCESSOR,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef,8),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](CALL_SET_DISABLED_STATE,8))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgModel,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([formControlBinding$1]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"],_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgModel,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[formControlBinding$1],exportAs:"ngModel"}]}],(()=>[{type:ControlContainer,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALUE_ACCESSOR]}]},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[CALL_SET_DISABLED_STATE]}]}]),{name:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],isDisabled:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["disabled"]}],model:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngModel"]}],options:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngModelOptions"]}],update:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Output,args:["ngModelChange"]}]});class ɵNgNoValidate{static#_=this.ɵfac=function ɵNgNoValidate_Factory(__ngFactoryType__){return new(__ngFactoryType__||ɵNgNoValidate)};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:ɵNgNoValidate,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ɵNgNoValidate,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"form:not([ngNoForm]):not([ngNativeValidate])",host:{novalidate:""}}]}],null,null);const NUMBER_VALUE_ACCESSOR={provide:NG_VALUE_ACCESSOR,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>NumberValueAccessor)),multi:!0};class NumberValueAccessor extends BuiltInControlValueAccessor{writeValue(value){const normalizedValue=null==value?"":value;this.setProperty("value",normalizedValue)}registerOnChange(fn){this.onChange=value=>{fn(""==value?null:parseFloat(value))}}static#_=this.ɵfac=(()=>{let ɵNumberValueAccessor_BaseFactory;return function NumberValueAccessor_Factory(__ngFactoryType__){return(ɵNumberValueAccessor_BaseFactory||(ɵNumberValueAccessor_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NumberValueAccessor)))(__ngFactoryType__||NumberValueAccessor)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NumberValueAccessor,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function NumberValueAccessor_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("input",(function NumberValueAccessor_input_HostBindingHandler($event){return ctx.onChange($event.target.value)}))("blur",(function NumberValueAccessor_blur_HostBindingHandler(){return ctx.onTouched()}))},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([NUMBER_VALUE_ACCESSOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NumberValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[NUMBER_VALUE_ACCESSOR]}]}],null,null);const RADIO_VALUE_ACCESSOR={provide:NG_VALUE_ACCESSOR,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>RadioControlValueAccessor)),multi:!0};class RadioControlRegistry{constructor(){this._accessors=[]}add(control,accessor){this._accessors.push([control,accessor])}remove(accessor){for(let i=this._accessors.length-1;i>=0;--i)if(this._accessors[i][1]===accessor)return void this._accessors.splice(i,1)}select(accessor){this._accessors.forEach((c=>{this._isSameGroup(c,accessor)&&c[1]!==accessor&&c[1].fireUncheck(accessor.value)}))}_isSameGroup(controlPair,accessor){return!!controlPair[0].control&&(controlPair[0]._parent===accessor._control._parent&&controlPair[1].name===accessor.name)}static#_=this.ɵfac=function RadioControlRegistry_Factory(__ngFactoryType__){return new(__ngFactoryType__||RadioControlRegistry)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:RadioControlRegistry,factory:RadioControlRegistry.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](RadioControlRegistry,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],null,null);class RadioControlValueAccessor extends BuiltInControlValueAccessor{constructor(renderer,elementRef,_registry,_injector){super(renderer,elementRef),this._registry=_registry,this._injector=_injector,this.setDisabledStateFired=!1,this.onChange=()=>{},this.callSetDisabledState=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(CALL_SET_DISABLED_STATE,{optional:!0})??setDisabledStateDefault}ngOnInit(){this._control=this._injector.get(NgControl),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(value){this._state=value===this.value,this.setProperty("checked",this._state)}registerOnChange(fn){this._fn=fn,this.onChange=()=>{fn(this.value),this._registry.select(this)}}setDisabledState(isDisabled){(this.setDisabledStateFired||isDisabled||"whenDisabledForLegacyCode"===this.callSetDisabledState)&&this.setProperty("disabled",isDisabled),this.setDisabledStateFired=!0}fireUncheck(value){this.writeValue(value)}_checkName(){this.name&&this.formControlName&&this.name!==this.formControlName&&("undefined"==typeof ngDevMode||ngDevMode)&&function throwNameError(){throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1202,'\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n ')}(),!this.name&&this.formControlName&&(this.name=this.formControlName)}static#_=this.ɵfac=function RadioControlValueAccessor_Factory(__ngFactoryType__){return new(__ngFactoryType__||RadioControlValueAccessor)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](RadioControlRegistry),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injector))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:RadioControlValueAccessor,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function RadioControlValueAccessor_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change",(function RadioControlValueAccessor_change_HostBindingHandler(){return ctx.onChange()}))("blur",(function RadioControlValueAccessor_blur_HostBindingHandler(){return ctx.onTouched()}))},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([RADIO_VALUE_ACCESSOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](RadioControlValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[RADIO_VALUE_ACCESSOR]}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:RadioControlRegistry},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injector}]),{name:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],formControlName:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],value:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const RANGE_VALUE_ACCESSOR={provide:NG_VALUE_ACCESSOR,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>RangeValueAccessor)),multi:!0};class RangeValueAccessor extends BuiltInControlValueAccessor{writeValue(value){this.setProperty("value",parseFloat(value))}registerOnChange(fn){this.onChange=value=>{fn(""==value?null:parseFloat(value))}}static#_=this.ɵfac=(()=>{let ɵRangeValueAccessor_BaseFactory;return function RangeValueAccessor_Factory(__ngFactoryType__){return(ɵRangeValueAccessor_BaseFactory||(ɵRangeValueAccessor_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](RangeValueAccessor)))(__ngFactoryType__||RangeValueAccessor)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:RangeValueAccessor,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function RangeValueAccessor_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change",(function RangeValueAccessor_change_HostBindingHandler($event){return ctx.onChange($event.target.value)}))("input",(function RangeValueAccessor_input_HostBindingHandler($event){return ctx.onChange($event.target.value)}))("blur",(function RangeValueAccessor_blur_HostBindingHandler(){return ctx.onTouched()}))},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([RANGE_VALUE_ACCESSOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](RangeValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[RANGE_VALUE_ACCESSOR]}]}],null,null);const NG_MODEL_WITH_FORM_CONTROL_WARNING=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"NgModelWithFormControlWarning":""),formControlBinding={provide:NgControl,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>FormControlDirective))};class FormControlDirective extends NgControl{set isDisabled(isDisabled){("undefined"==typeof ngDevMode||ngDevMode)&&console.warn(disabledAttrWarning)}static#_=this._ngModelWarningSentOnce=!1;constructor(validators,asyncValidators,valueAccessors,_ngModelWarningConfig,callSetDisabledState){super(),this._ngModelWarningConfig=_ngModelWarningConfig,this.callSetDisabledState=callSetDisabledState,this.update=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this._ngModelWarningSent=!1,this._setValidators(validators),this._setAsyncValidators(asyncValidators),this.valueAccessor=selectValueAccessor(this,valueAccessors)}ngOnChanges(changes){if(this._isControlChanged(changes)){const previousForm=changes.form.previousValue;previousForm&&cleanUpControl(previousForm,this,!1),setUpControl(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}isPropertyUpdated(changes,this.viewModel)&&(("undefined"==typeof ngDevMode||ngDevMode)&&_ngModelWarning("formControl",FormControlDirective,this,this._ngModelWarningConfig),this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&cleanUpControl(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(newValue){this.viewModel=newValue,this.update.emit(newValue)}_isControlChanged(changes){return changes.hasOwnProperty("form")}static#_2=this.ɵfac=function FormControlDirective_Factory(__ngFactoryType__){return new(__ngFactoryType__||FormControlDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALUE_ACCESSOR,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_MODEL_WITH_FORM_CONTROL_WARNING,8),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](CALL_SET_DISABLED_STATE,8))};static#_3=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:FormControlDirective,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([formControlBinding]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"],_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](FormControlDirective,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[formControl]",providers:[formControlBinding],exportAs:"ngForm"}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALUE_ACCESSOR]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_MODEL_WITH_FORM_CONTROL_WARNING]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[CALL_SET_DISABLED_STATE]}]}]),{form:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["formControl"]}],isDisabled:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["disabled"]}],model:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngModel"]}],update:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Output,args:["ngModelChange"]}]});const formDirectiveProvider={provide:ControlContainer,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>FormGroupDirective))};class FormGroupDirective extends ControlContainer{get submitted(){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)(this._submittedReactive)}set submitted(value){this._submittedReactive.set(value)}constructor(validators,asyncValidators,callSetDisabledState){super(),this.callSetDisabledState=callSetDisabledState,this._submitted=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.computed)((()=>this._submittedReactive())),this._submittedReactive=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.signal)(!1),this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this._setValidators(validators),this._setAsyncValidators(asyncValidators)}ngOnChanges(changes){this._checkFormPresent(),changes.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(cleanUpValidators(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange((()=>{})))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(dir){const ctrl=this.form.get(dir.path);return setUpControl(ctrl,dir,this.callSetDisabledState),ctrl.updateValueAndValidity({emitEvent:!1}),this.directives.push(dir),ctrl}getControl(dir){return this.form.get(dir.path)}removeControl(dir){cleanUpControl(dir.control||null,dir,!1),function removeListItem$1(list,el){const index=list.indexOf(el);index>-1&&list.splice(index,1)}(this.directives,dir)}addFormGroup(dir){this._setUpFormContainer(dir)}removeFormGroup(dir){this._cleanUpFormContainer(dir)}getFormGroup(dir){return this.form.get(dir.path)}addFormArray(dir){this._setUpFormContainer(dir)}removeFormArray(dir){this._cleanUpFormContainer(dir)}getFormArray(dir){return this.form.get(dir.path)}updateModel(dir,value){this.form.get(dir.path).setValue(value)}onSubmit($event){return this._submittedReactive.set(!0),syncPendingControls(this.form,this.directives),this.ngSubmit.emit($event),this.form._events.next(new FormSubmittedEvent(this.control)),"dialog"===$event?.target?.method}onReset(){this.resetForm()}resetForm(value=void 0){this.form.reset(value),this._submittedReactive.set(!1),this.form._events.next(new FormResetEvent(this.form))}_updateDomValue(){this.directives.forEach((dir=>{const oldCtrl=dir.control,newCtrl=this.form.get(dir.path);oldCtrl!==newCtrl&&(cleanUpControl(oldCtrl||null,dir),newCtrl instanceof FormControl&&(setUpControl(newCtrl,dir,this.callSetDisabledState),dir.control=newCtrl))})),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(dir){const ctrl=this.form.get(dir.path);setUpFormContainer(ctrl,dir),ctrl.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(dir){if(this.form){const ctrl=this.form.get(dir.path);if(ctrl){const isControlUpdated=function cleanUpFormContainer(control,dir){return cleanUpValidators(control,dir)}(ctrl,dir);isControlUpdated&&ctrl.updateValueAndValidity({emitEvent:!1})}}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange((()=>{}))}_updateValidators(){setUpValidators(this.form,this),this._oldForm&&cleanUpValidators(this._oldForm,this)}_checkFormPresent(){if(!this.form&&("undefined"==typeof ngDevMode||ngDevMode))throw function missingFormException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1052,`formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n ${formControlNameExample}`)}()}static#_=this.ɵfac=function FormGroupDirective_Factory(__ngFactoryType__){return new(__ngFactoryType__||FormGroupDirective)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](CALL_SET_DISABLED_STATE,8))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:FormGroupDirective,selectors:[["","formGroup",""]],hostBindings:function FormGroupDirective_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("submit",(function FormGroupDirective_submit_HostBindingHandler($event){return ctx.onSubmit($event)}))("reset",(function FormGroupDirective_reset_HostBindingHandler(){return ctx.onReset()}))},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([formDirectiveProvider]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"],_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](FormGroupDirective,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[formGroup]",providers:[formDirectiveProvider],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[CALL_SET_DISABLED_STATE]}]}]),{form:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["formGroup"]}],ngSubmit:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Output}]});const formGroupNameProvider={provide:ControlContainer,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>FormGroupName))};class FormGroupName extends AbstractFormGroupDirective{constructor(parent,validators,asyncValidators){super(),this.name=null,this._parent=parent,this._setValidators(validators),this._setAsyncValidators(asyncValidators)}_checkParentType(){if(_hasInvalidParent(this._parent)&&("undefined"==typeof ngDevMode||ngDevMode))throw function groupParentException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1053,`formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n ${formGroupNameExample}`)}()}static#_=this.ɵfac=function FormGroupName_Factory(__ngFactoryType__){return new(__ngFactoryType__||FormGroupName)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ControlContainer,13),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:FormGroupName,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([formGroupNameProvider]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](FormGroupName,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[formGroupName]",providers:[formGroupNameProvider]}]}],(()=>[{type:ControlContainer,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.SkipSelf}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]}]),{name:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["formGroupName"]}]});const formArrayNameProvider={provide:ControlContainer,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>FormArrayName))};class FormArrayName extends ControlContainer{constructor(parent,validators,asyncValidators){super(),this.name=null,this._parent=parent,this._setValidators(validators),this._setAsyncValidators(asyncValidators)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return controlPath(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){if(_hasInvalidParent(this._parent)&&("undefined"==typeof ngDevMode||ngDevMode))throw function arrayParentException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1054,'formArrayName must be used with a parent formGroup directive. You\'ll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n \n
\n
\n
\n \n
\n
\n
\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });')}()}static#_=this.ɵfac=function FormArrayName_Factory(__ngFactoryType__){return new(__ngFactoryType__||FormArrayName)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ControlContainer,13),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:FormArrayName,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([formArrayNameProvider]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}function _hasInvalidParent(parent){return!(parent instanceof FormGroupName||parent instanceof FormGroupDirective||parent instanceof FormArrayName)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](FormArrayName,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[formArrayName]",providers:[formArrayNameProvider]}]}],(()=>[{type:ControlContainer,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.SkipSelf}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]}]),{name:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["formArrayName"]}]});const controlNameBinding={provide:NgControl,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>FormControlName))};class FormControlName extends NgControl{set isDisabled(isDisabled){("undefined"==typeof ngDevMode||ngDevMode)&&console.warn(disabledAttrWarning)}static#_=this._ngModelWarningSentOnce=!1;constructor(parent,validators,asyncValidators,valueAccessors,_ngModelWarningConfig){super(),this._ngModelWarningConfig=_ngModelWarningConfig,this._added=!1,this.name=null,this.update=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this._ngModelWarningSent=!1,this._parent=parent,this._setValidators(validators),this._setAsyncValidators(asyncValidators),this.valueAccessor=selectValueAccessor(this,valueAccessors)}ngOnChanges(changes){this._added||this._setUpControl(),isPropertyUpdated(changes,this.viewModel)&&(("undefined"==typeof ngDevMode||ngDevMode)&&_ngModelWarning("formControlName",FormControlName,this,this._ngModelWarningConfig),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(newValue){this.viewModel=newValue,this.update.emit(newValue)}get path(){return controlPath(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){if("undefined"==typeof ngDevMode||ngDevMode){if(!(this._parent instanceof FormGroupName)&&this._parent instanceof AbstractFormGroupDirective)throw function ngModelGroupException(){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1051,`formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n ${formGroupNameExample}\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n ${ngModelGroupExample}`)}();if(!(this._parent instanceof FormGroupName||this._parent instanceof FormGroupDirective||this._parent instanceof FormArrayName))throw function controlParentException(nameOrIndex){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1050,`formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n ${function describeFormControl(nameOrIndex){if(null==nameOrIndex||""===nameOrIndex)return"";return`Affected Form Control ${"string"==typeof nameOrIndex?"name":"index"}: "${nameOrIndex}"`}(nameOrIndex)}\n\n Example:\n\n ${formControlNameExample}`)}(this.name)}}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#_2=this.ɵfac=function FormControlName_Factory(__ngFactoryType__){return new(__ngFactoryType__||FormControlName)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](ControlContainer,13),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_ASYNC_VALIDATORS,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_VALUE_ACCESSOR,10),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NG_MODEL_WITH_FORM_CONTROL_WARNING,8))};static#_3=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:FormControlName,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([controlNameBinding]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"],_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](FormControlName,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[formControlName]",providers:[controlNameBinding]}]}],(()=>[{type:ControlContainer,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.SkipSelf}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_ASYNC_VALIDATORS]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Self},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_VALUE_ACCESSOR]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[NG_MODEL_WITH_FORM_CONTROL_WARNING]}]}]),{name:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["formControlName"]}],isDisabled:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["disabled"]}],model:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngModel"]}],update:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Output,args:["ngModelChange"]}]});const SELECT_VALUE_ACCESSOR={provide:NG_VALUE_ACCESSOR,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>SelectControlValueAccessor)),multi:!0};function _buildValueString$1(id,value){return null==id?`${value}`:(value&&"object"==typeof value&&(value="Object"),`${id}: ${value}`.slice(0,50))}class SelectControlValueAccessor extends BuiltInControlValueAccessor{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(fn){if("function"!=typeof fn&&("undefined"==typeof ngDevMode||ngDevMode))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1201,`compareWith must be a function, but received ${JSON.stringify(fn)}`);this._compareWith=fn}writeValue(value){this.value=value;const valueString=_buildValueString$1(this._getOptionId(value),value);this.setProperty("value",valueString)}registerOnChange(fn){this.onChange=valueString=>{this.value=this._getOptionValue(valueString),fn(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(value){for(const id of this._optionMap.keys())if(this._compareWith(this._optionMap.get(id),value))return id;return null}_getOptionValue(valueString){const id=function _extractId$1(valueString){return valueString.split(":")[0]}(valueString);return this._optionMap.has(id)?this._optionMap.get(id):valueString}static#_=this.ɵfac=(()=>{let ɵSelectControlValueAccessor_BaseFactory;return function SelectControlValueAccessor_Factory(__ngFactoryType__){return(ɵSelectControlValueAccessor_BaseFactory||(ɵSelectControlValueAccessor_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](SelectControlValueAccessor)))(__ngFactoryType__||SelectControlValueAccessor)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:SelectControlValueAccessor,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function SelectControlValueAccessor_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change",(function SelectControlValueAccessor_change_HostBindingHandler($event){return ctx.onChange($event.target.value)}))("blur",(function SelectControlValueAccessor_blur_HostBindingHandler(){return ctx.onTouched()}))},inputs:{compareWith:"compareWith"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([SELECT_VALUE_ACCESSOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](SelectControlValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[SELECT_VALUE_ACCESSOR]}]}],null,{compareWith:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgSelectOption{constructor(_element,_renderer,_select){this._element=_element,this._renderer=_renderer,this._select=_select,this._select&&(this.id=this._select._registerOption())}set ngValue(value){null!=this._select&&(this._select._optionMap.set(this.id,value),this._setElementValue(_buildValueString$1(this.id,value)),this._select.writeValue(this._select.value))}set value(value){this._setElementValue(value),this._select&&this._select.writeValue(this._select.value)}_setElementValue(value){this._renderer.setProperty(this._element.nativeElement,"value",value)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#_=this.ɵfac=function NgSelectOption_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgSelectOption)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](SelectControlValueAccessor,9))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgSelectOption,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgSelectOption,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"option"}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2},{type:SelectControlValueAccessor,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),{ngValue:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngValue"]}],value:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["value"]}]});const SELECT_MULTIPLE_VALUE_ACCESSOR={provide:NG_VALUE_ACCESSOR,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>SelectMultipleControlValueAccessor)),multi:!0};function _buildValueString(id,value){return null==id?`${value}`:("string"==typeof value&&(value=`'${value}'`),value&&"object"==typeof value&&(value="Object"),`${id}: ${value}`.slice(0,50))}class SelectMultipleControlValueAccessor extends BuiltInControlValueAccessor{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(fn){if("function"!=typeof fn&&("undefined"==typeof ngDevMode||ngDevMode))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](1201,`compareWith must be a function, but received ${JSON.stringify(fn)}`);this._compareWith=fn}writeValue(value){let optionSelectedStateSetter;if(this.value=value,Array.isArray(value)){const ids=value.map((v=>this._getOptionId(v)));optionSelectedStateSetter=(opt,o)=>{opt._setSelected(ids.indexOf(o.toString())>-1)}}else optionSelectedStateSetter=(opt,o)=>{opt._setSelected(!1)};this._optionMap.forEach(optionSelectedStateSetter)}registerOnChange(fn){this.onChange=element=>{const selected=[],selectedOptions=element.selectedOptions;if(void 0!==selectedOptions){const options=selectedOptions;for(let i=0;i{let ɵSelectMultipleControlValueAccessor_BaseFactory;return function SelectMultipleControlValueAccessor_Factory(__ngFactoryType__){return(ɵSelectMultipleControlValueAccessor_BaseFactory||(ɵSelectMultipleControlValueAccessor_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](SelectMultipleControlValueAccessor)))(__ngFactoryType__||SelectMultipleControlValueAccessor)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:SelectMultipleControlValueAccessor,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function SelectMultipleControlValueAccessor_HostBindings(rf,ctx){1&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change",(function SelectMultipleControlValueAccessor_change_HostBindingHandler($event){return ctx.onChange($event.target)}))("blur",(function SelectMultipleControlValueAccessor_blur_HostBindingHandler(){return ctx.onTouched()}))},inputs:{compareWith:"compareWith"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([SELECT_MULTIPLE_VALUE_ACCESSOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](SelectMultipleControlValueAccessor,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[SELECT_MULTIPLE_VALUE_ACCESSOR]}]}],null,{compareWith:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class ɵNgSelectMultipleOption{constructor(_element,_renderer,_select){this._element=_element,this._renderer=_renderer,this._select=_select,this._select&&(this.id=this._select._registerOption(this))}set ngValue(value){null!=this._select&&(this._value=value,this._setElementValue(_buildValueString(this.id,value)),this._select.writeValue(this._select.value))}set value(value){this._select?(this._value=value,this._setElementValue(_buildValueString(this.id,value)),this._select.writeValue(this._select.value)):this._setElementValue(value)}_setElementValue(value){this._renderer.setProperty(this._element.nativeElement,"value",value)}_setSelected(selected){this._renderer.setProperty(this._element.nativeElement,"selected",selected)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#_=this.ɵfac=function ɵNgSelectMultipleOption_Factory(__ngFactoryType__){return new(__ngFactoryType__||ɵNgSelectMultipleOption)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](SelectMultipleControlValueAccessor,9))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:ɵNgSelectMultipleOption,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}function toInteger(value){return"number"==typeof value?value:parseInt(value,10)}function toFloat(value){return"number"==typeof value?value:parseFloat(value)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ɵNgSelectMultipleOption,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"option"}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2},{type:SelectMultipleControlValueAccessor,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),{ngValue:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngValue"]}],value:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["value"]}]});class AbstractValidatorDirective{constructor(){this._validator=nullValidator}ngOnChanges(changes){if(this.inputName in changes){const input=this.normalizeInput(changes[this.inputName].currentValue);this._enabled=this.enabled(input),this._validator=this._enabled?this.createValidator(input):nullValidator,this._onChange&&this._onChange()}}validate(control){return this._validator(control)}registerOnValidatorChange(fn){this._onChange=fn}enabled(input){return null!=input}static#_=this.ɵfac=function AbstractValidatorDirective_Factory(__ngFactoryType__){return new(__ngFactoryType__||AbstractValidatorDirective)};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:AbstractValidatorDirective,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AbstractValidatorDirective,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive}],null,null);const MAX_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>MaxValidator)),multi:!0};class MaxValidator extends AbstractValidatorDirective{constructor(){super(...arguments),this.inputName="max",this.normalizeInput=input=>toFloat(input),this.createValidator=max=>maxValidator(max)}static#_=this.ɵfac=(()=>{let ɵMaxValidator_BaseFactory;return function MaxValidator_Factory(__ngFactoryType__){return(ɵMaxValidator_BaseFactory||(ɵMaxValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](MaxValidator)))(__ngFactoryType__||MaxValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:MaxValidator,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function MaxValidator_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("max",ctx._enabled?ctx.max:null)},inputs:{max:"max"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([MAX_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](MaxValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]",providers:[MAX_VALIDATOR],host:{"[attr.max]":"_enabled ? max : null"}}]}],null,{max:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const MIN_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>MinValidator)),multi:!0};class MinValidator extends AbstractValidatorDirective{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=input=>toFloat(input),this.createValidator=min=>minValidator(min)}static#_=this.ɵfac=(()=>{let ɵMinValidator_BaseFactory;return function MinValidator_Factory(__ngFactoryType__){return(ɵMinValidator_BaseFactory||(ɵMinValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](MinValidator)))(__ngFactoryType__||MinValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:MinValidator,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function MinValidator_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("min",ctx._enabled?ctx.min:null)},inputs:{min:"min"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([MIN_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](MinValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]",providers:[MIN_VALIDATOR],host:{"[attr.min]":"_enabled ? min : null"}}]}],null,{min:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const REQUIRED_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>RequiredValidator)),multi:!0},CHECKBOX_REQUIRED_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>CheckboxRequiredValidator)),multi:!0};class RequiredValidator extends AbstractValidatorDirective{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute,this.createValidator=input=>requiredValidator}enabled(input){return input}static#_=this.ɵfac=(()=>{let ɵRequiredValidator_BaseFactory;return function RequiredValidator_Factory(__ngFactoryType__){return(ɵRequiredValidator_BaseFactory||(ɵRequiredValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](RequiredValidator)))(__ngFactoryType__||RequiredValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:RequiredValidator,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function RequiredValidator_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("required",ctx._enabled?"":null)},inputs:{required:"required"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([REQUIRED_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](RequiredValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[REQUIRED_VALIDATOR],host:{"[attr.required]":'_enabled ? "" : null'}}]}],null,{required:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class CheckboxRequiredValidator extends RequiredValidator{constructor(){super(...arguments),this.createValidator=input=>requiredTrueValidator}static#_=this.ɵfac=(()=>{let ɵCheckboxRequiredValidator_BaseFactory;return function CheckboxRequiredValidator_Factory(__ngFactoryType__){return(ɵCheckboxRequiredValidator_BaseFactory||(ɵCheckboxRequiredValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](CheckboxRequiredValidator)))(__ngFactoryType__||CheckboxRequiredValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:CheckboxRequiredValidator,selectors:[["input","type","checkbox","required","","formControlName",""],["input","type","checkbox","required","","formControl",""],["input","type","checkbox","required","","ngModel",""]],hostVars:1,hostBindings:function CheckboxRequiredValidator_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("required",ctx._enabled?"":null)},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([CHECKBOX_REQUIRED_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](CheckboxRequiredValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[CHECKBOX_REQUIRED_VALIDATOR],host:{"[attr.required]":'_enabled ? "" : null'}}]}],null,null);const EMAIL_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>EmailValidator)),multi:!0};class EmailValidator extends AbstractValidatorDirective{constructor(){super(...arguments),this.inputName="email",this.normalizeInput=_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute,this.createValidator=input=>emailValidator}enabled(input){return input}static#_=this.ɵfac=(()=>{let ɵEmailValidator_BaseFactory;return function EmailValidator_Factory(__ngFactoryType__){return(ɵEmailValidator_BaseFactory||(ɵEmailValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](EmailValidator)))(__ngFactoryType__||EmailValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:EmailValidator,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([EMAIL_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](EmailValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[email][formControlName],[email][formControl],[email][ngModel]",providers:[EMAIL_VALIDATOR]}]}],null,{email:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const MIN_LENGTH_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>MinLengthValidator)),multi:!0};class MinLengthValidator extends AbstractValidatorDirective{constructor(){super(...arguments),this.inputName="minlength",this.normalizeInput=input=>toInteger(input),this.createValidator=minlength=>minLengthValidator(minlength)}static#_=this.ɵfac=(()=>{let ɵMinLengthValidator_BaseFactory;return function MinLengthValidator_Factory(__ngFactoryType__){return(ɵMinLengthValidator_BaseFactory||(ɵMinLengthValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](MinLengthValidator)))(__ngFactoryType__||MinLengthValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:MinLengthValidator,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function MinLengthValidator_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("minlength",ctx._enabled?ctx.minlength:null)},inputs:{minlength:"minlength"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([MIN_LENGTH_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](MinLengthValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[MIN_LENGTH_VALIDATOR],host:{"[attr.minlength]":"_enabled ? minlength : null"}}]}],null,{minlength:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const MAX_LENGTH_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>MaxLengthValidator)),multi:!0};class MaxLengthValidator extends AbstractValidatorDirective{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=input=>toInteger(input),this.createValidator=maxlength=>maxLengthValidator(maxlength)}static#_=this.ɵfac=(()=>{let ɵMaxLengthValidator_BaseFactory;return function MaxLengthValidator_Factory(__ngFactoryType__){return(ɵMaxLengthValidator_BaseFactory||(ɵMaxLengthValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](MaxLengthValidator)))(__ngFactoryType__||MaxLengthValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:MaxLengthValidator,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function MaxLengthValidator_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("maxlength",ctx._enabled?ctx.maxlength:null)},inputs:{maxlength:"maxlength"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([MAX_LENGTH_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](MaxLengthValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[MAX_LENGTH_VALIDATOR],host:{"[attr.maxlength]":"_enabled ? maxlength : null"}}]}],null,{maxlength:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const PATTERN_VALIDATOR={provide:NG_VALIDATORS,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((()=>PatternValidator)),multi:!0};class PatternValidator extends AbstractValidatorDirective{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=input=>input,this.createValidator=input=>patternValidator(input)}static#_=this.ɵfac=(()=>{let ɵPatternValidator_BaseFactory;return function PatternValidator_Factory(__ngFactoryType__){return(ɵPatternValidator_BaseFactory||(ɵPatternValidator_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](PatternValidator)))(__ngFactoryType__||PatternValidator)}})();static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:PatternValidator,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function PatternValidator_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("pattern",ctx._enabled?ctx.pattern:null)},inputs:{pattern:"pattern"},features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([PATTERN_VALIDATOR]),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PatternValidator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[PATTERN_VALIDATOR],host:{"[attr.pattern]":"_enabled ? pattern : null"}}]}],null,{pattern:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const SHARED_FORM_DIRECTIVES=[ɵNgNoValidate,NgSelectOption,ɵNgSelectMultipleOption,DefaultValueAccessor,NumberValueAccessor,RangeValueAccessor,CheckboxControlValueAccessor,SelectControlValueAccessor,SelectMultipleControlValueAccessor,RadioControlValueAccessor,NgControlStatus,NgControlStatusGroup,RequiredValidator,MinLengthValidator,MaxLengthValidator,PatternValidator,CheckboxRequiredValidator,EmailValidator,MinValidator,MaxValidator],TEMPLATE_DRIVEN_DIRECTIVES=[NgModel,NgModelGroup,NgForm],REACTIVE_DRIVEN_DIRECTIVES=[FormControlDirective,FormGroupDirective,FormControlName,FormGroupName,FormArrayName];class ɵInternalFormsSharedModule{static#_=this.ɵfac=function ɵInternalFormsSharedModule_Factory(__ngFactoryType__){return new(__ngFactoryType__||ɵInternalFormsSharedModule)};static#_2=this.ɵmod=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({type:ɵInternalFormsSharedModule,declarations:[ɵNgNoValidate,NgSelectOption,ɵNgSelectMultipleOption,DefaultValueAccessor,NumberValueAccessor,RangeValueAccessor,CheckboxControlValueAccessor,SelectControlValueAccessor,SelectMultipleControlValueAccessor,RadioControlValueAccessor,NgControlStatus,NgControlStatusGroup,RequiredValidator,MinLengthValidator,MaxLengthValidator,PatternValidator,CheckboxRequiredValidator,EmailValidator,MinValidator,MaxValidator],exports:[ɵNgNoValidate,NgSelectOption,ɵNgSelectMultipleOption,DefaultValueAccessor,NumberValueAccessor,RangeValueAccessor,CheckboxControlValueAccessor,SelectControlValueAccessor,SelectMultipleControlValueAccessor,RadioControlValueAccessor,NgControlStatus,NgControlStatusGroup,RequiredValidator,MinLengthValidator,MaxLengthValidator,PatternValidator,CheckboxRequiredValidator,EmailValidator,MinValidator,MaxValidator]});static#_3=this.ɵinj=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ɵInternalFormsSharedModule,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModule,args:[{declarations:SHARED_FORM_DIRECTIVES,exports:SHARED_FORM_DIRECTIVES}]}],null,null);class FormArray extends AbstractControl{constructor(controls,validatorOrOpts,asyncValidator){super(pickValidators(validatorOrOpts),pickAsyncValidators(asyncValidator,validatorOrOpts)),this.controls=controls,this._initObservables(),this._setUpdateStrategy(validatorOrOpts),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(index){return this.controls[this._adjustIndex(index)]}push(control,options={}){this.controls.push(control),this._registerControl(control),this.updateValueAndValidity({emitEvent:options.emitEvent}),this._onCollectionChange()}insert(index,control,options={}){this.controls.splice(index,0,control),this._registerControl(control),this.updateValueAndValidity({emitEvent:options.emitEvent})}removeAt(index,options={}){let adjustedIndex=this._adjustIndex(index);adjustedIndex<0&&(adjustedIndex=0),this.controls[adjustedIndex]&&this.controls[adjustedIndex]._registerOnCollectionChange((()=>{})),this.controls.splice(adjustedIndex,1),this.updateValueAndValidity({emitEvent:options.emitEvent})}setControl(index,control,options={}){let adjustedIndex=this._adjustIndex(index);adjustedIndex<0&&(adjustedIndex=0),this.controls[adjustedIndex]&&this.controls[adjustedIndex]._registerOnCollectionChange((()=>{})),this.controls.splice(adjustedIndex,1),control&&(this.controls.splice(adjustedIndex,0,control),this._registerControl(control)),this.updateValueAndValidity({emitEvent:options.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(value,options={}){assertAllValuesPresent(this,!1,value),value.forEach(((newValue,index)=>{assertControlPresent(this,!1,index),this.at(index).setValue(newValue,{onlySelf:!0,emitEvent:options.emitEvent})})),this.updateValueAndValidity(options)}patchValue(value,options={}){null!=value&&(value.forEach(((newValue,index)=>{this.at(index)&&this.at(index).patchValue(newValue,{onlySelf:!0,emitEvent:options.emitEvent})})),this.updateValueAndValidity(options))}reset(value=[],options={}){this._forEachChild(((control,index)=>{control.reset(value[index],{onlySelf:!0,emitEvent:options.emitEvent})})),this._updatePristine(options,this),this._updateTouched(options,this),this.updateValueAndValidity(options)}getRawValue(){return this.controls.map((control=>control.getRawValue()))}clear(options={}){this.controls.length<1||(this._forEachChild((control=>control._registerOnCollectionChange((()=>{})))),this.controls.splice(0),this.updateValueAndValidity({emitEvent:options.emitEvent}))}_adjustIndex(index){return index<0?index+this.length:index}_syncPendingControls(){let subtreeUpdated=this.controls.reduce(((updated,child)=>!!child._syncPendingControls()||updated),!1);return subtreeUpdated&&this.updateValueAndValidity({onlySelf:!0}),subtreeUpdated}_forEachChild(cb){this.controls.forEach(((control,index)=>{cb(control,index)}))}_updateValue(){this.value=this.controls.filter((control=>control.enabled||this.disabled)).map((control=>control.value))}_anyControls(condition){return this.controls.some((control=>control.enabled&&condition(control)))}_setUpControls(){this._forEachChild((control=>this._registerControl(control)))}_allControlsDisabled(){for(const control of this.controls)if(control.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(control){control.setParent(this),control._registerOnCollectionChange(this._onCollectionChange)}_find(name){return this.at(name)??null}}function isAbstractControlOptions(options){return!!options&&(void 0!==options.asyncValidators||void 0!==options.validators||void 0!==options.updateOn)}class FormBuilder{constructor(){this.useNonNullable=!1}get nonNullable(){const nnfb=new FormBuilder;return nnfb.useNonNullable=!0,nnfb}group(controls,options=null){const reducedControls=this._reduceControls(controls);let newOptions={};return isAbstractControlOptions(options)?newOptions=options:null!==options&&(newOptions.validators=options.validator,newOptions.asyncValidators=options.asyncValidator),new FormGroup(reducedControls,newOptions)}record(controls,options=null){const reducedControls=this._reduceControls(controls);return new FormRecord(reducedControls,options)}control(formState,validatorOrOpts,asyncValidator){let newOptions={};return this.useNonNullable?(isAbstractControlOptions(validatorOrOpts)?newOptions=validatorOrOpts:(newOptions.validators=validatorOrOpts,newOptions.asyncValidators=asyncValidator),new FormControl(formState,{...newOptions,nonNullable:!0})):new FormControl(formState,validatorOrOpts,asyncValidator)}array(controls,validatorOrOpts,asyncValidator){const createdControls=controls.map((c=>this._createControl(c)));return new FormArray(createdControls,validatorOrOpts,asyncValidator)}_reduceControls(controls){const createdControls={};return Object.keys(controls).forEach((controlName=>{createdControls[controlName]=this._createControl(controls[controlName])})),createdControls}_createControl(controls){if(controls instanceof FormControl)return controls;if(controls instanceof AbstractControl)return controls;if(Array.isArray(controls)){const value=controls[0],validator=controls.length>1?controls[1]:null,asyncValidator=controls.length>2?controls[2]:null;return this.control(value,validator,asyncValidator)}return this.control(controls)}static#_=this.ɵfac=function FormBuilder_Factory(__ngFactoryType__){return new(__ngFactoryType__||FormBuilder)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:FormBuilder,factory:FormBuilder.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](FormBuilder,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],null,null);class NonNullableFormBuilder{static#_=this.ɵfac=function NonNullableFormBuilder_Factory(__ngFactoryType__){return new(__ngFactoryType__||NonNullableFormBuilder)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:NonNullableFormBuilder,factory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(FormBuilder).nonNullable,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NonNullableFormBuilder,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(FormBuilder).nonNullable}]}],null,null);class UntypedFormBuilder extends FormBuilder{group(controlsConfig,options=null){return super.group(controlsConfig,options)}control(formState,validatorOrOpts,asyncValidator){return super.control(formState,validatorOrOpts,asyncValidator)}array(controlsConfig,validatorOrOpts,asyncValidator){return super.array(controlsConfig,validatorOrOpts,asyncValidator)}static#_=this.ɵfac=(()=>{let ɵUntypedFormBuilder_BaseFactory;return function UntypedFormBuilder_Factory(__ngFactoryType__){return(ɵUntypedFormBuilder_BaseFactory||(ɵUntypedFormBuilder_BaseFactory=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](UntypedFormBuilder)))(__ngFactoryType__||UntypedFormBuilder)}})();static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:UntypedFormBuilder,factory:UntypedFormBuilder.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](UntypedFormBuilder,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],null,null);new _angular_core__WEBPACK_IMPORTED_MODULE_0__.Version("18.2.3");class FormsModule{static withConfig(opts){return{ngModule:FormsModule,providers:[{provide:CALL_SET_DISABLED_STATE,useValue:opts.callSetDisabledState??setDisabledStateDefault}]}}static#_=this.ɵfac=function FormsModule_Factory(__ngFactoryType__){return new(__ngFactoryType__||FormsModule)};static#_2=this.ɵmod=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({type:FormsModule,declarations:[NgModel,NgModelGroup,NgForm],exports:[ɵInternalFormsSharedModule,NgModel,NgModelGroup,NgForm]});static#_3=this.ɵinj=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({imports:[ɵInternalFormsSharedModule]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](FormsModule,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModule,args:[{declarations:TEMPLATE_DRIVEN_DIRECTIVES,exports:[ɵInternalFormsSharedModule,TEMPLATE_DRIVEN_DIRECTIVES]}]}],null,null);class ReactiveFormsModule{static withConfig(opts){return{ngModule:ReactiveFormsModule,providers:[{provide:NG_MODEL_WITH_FORM_CONTROL_WARNING,useValue:opts.warnOnNgModelWithFormControl??"always"},{provide:CALL_SET_DISABLED_STATE,useValue:opts.callSetDisabledState??setDisabledStateDefault}]}}static#_=this.ɵfac=function ReactiveFormsModule_Factory(__ngFactoryType__){return new(__ngFactoryType__||ReactiveFormsModule)};static#_2=this.ɵmod=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({type:ReactiveFormsModule,declarations:[FormControlDirective,FormGroupDirective,FormControlName,FormGroupName,FormArrayName],exports:[ɵInternalFormsSharedModule,FormControlDirective,FormGroupDirective,FormControlName,FormGroupName,FormArrayName]});static#_3=this.ɵinj=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({imports:[ɵInternalFormsSharedModule]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ReactiveFormsModule,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModule,args:[{declarations:[REACTIVE_DRIVEN_DIRECTIVES],exports:[ɵInternalFormsSharedModule,REACTIVE_DRIVEN_DIRECTIVES]}]}],null,null)},"./node_modules/@storybook/angular/dist/client/argsToTemplate.js":(__unused_webpack_module,exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.argsToTemplate=void 0,exports.argsToTemplate=function argsToTemplate(args,options={}){const includeSet=options.include?new Set(options.include):null,excludeSet=options.exclude?new Set(options.exclude):null;return Object.entries(args).filter((([key])=>void 0!==args[key])).filter((([key])=>includeSet?includeSet.has(key):!excludeSet||!excludeSet.has(key))).map((([key,value])=>"function"==typeof value?`(${key})="${key}($event)"`:`[${key}]="${key}"`)).join(" ")}},"./node_modules/@storybook/angular/dist/client/decorators.js":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.componentWrapperDecorator=exports.applicationConfig=exports.moduleMetadata=void 0;const ComputesTemplateFromComponent_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/angular-beta/ComputesTemplateFromComponent.js"),NgComponentAnalyzer_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/angular-beta/utils/NgComponentAnalyzer.js");exports.moduleMetadata=metadata=>storyFn=>{const story=storyFn(),storyMetadata=story.moduleMetadata||{};return metadata=metadata||{},{...story,moduleMetadata:{declarations:[...metadata.declarations||[],...storyMetadata.declarations||[]],entryComponents:[...metadata.entryComponents||[],...storyMetadata.entryComponents||[]],imports:[...metadata.imports||[],...storyMetadata.imports||[]],schemas:[...metadata.schemas||[],...storyMetadata.schemas||[]],providers:[...metadata.providers||[],...storyMetadata.providers||[]]}}},exports.applicationConfig=function applicationConfig(config){return storyFn=>{const story=storyFn(),storyConfig=story.applicationConfig;return{...story,applicationConfig:storyConfig||config?{...config,...storyConfig,providers:[...config?.providers||[],...storyConfig?.providers||[]]}:void 0}}};exports.componentWrapperDecorator=(element,props)=>(storyFn,storyContext)=>{const story=storyFn(),currentProps="function"==typeof props?props(storyContext):props,template=(0,NgComponentAnalyzer_1.isComponent)(element)?(0,ComputesTemplateFromComponent_1.computesTemplateFromComponent)(element,currentProps??{},story.template):element(story.template);return{...story,template,...currentProps||story.props?{props:{...currentProps,...story.props}}:{}}}},"./node_modules/@storybook/angular/dist/client/index.js":function(__unused_webpack_module,exports,__webpack_require__){var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.argsToTemplate=exports.applicationConfig=exports.componentWrapperDecorator=exports.moduleMetadata=void 0,__webpack_require__("./node_modules/@storybook/angular/dist/client/globals.js"),__exportStar(__webpack_require__("./node_modules/@storybook/angular/dist/client/public-types.js"),exports);var decorators_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/decorators.js");Object.defineProperty(exports,"moduleMetadata",{enumerable:!0,get:function(){return decorators_1.moduleMetadata}}),Object.defineProperty(exports,"componentWrapperDecorator",{enumerable:!0,get:function(){return decorators_1.componentWrapperDecorator}}),Object.defineProperty(exports,"applicationConfig",{enumerable:!0,get:function(){return decorators_1.applicationConfig}});var argsToTemplate_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/argsToTemplate.js");Object.defineProperty(exports,"argsToTemplate",{enumerable:!0,get:function(){return argsToTemplate_1.argsToTemplate}})},"./node_modules/@storybook/angular/dist/client/public-types.js":(__unused_webpack_module,exports)=>{Object.defineProperty(exports,"__esModule",{value:!0})},"./node_modules/@storybook/angular/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{var _client_index__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/client/index.js");__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"applicationConfig")&&__webpack_require__.d(__webpack_exports__,{applicationConfig:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.applicationConfig}}),__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"moduleMetadata")&&__webpack_require__.d(__webpack_exports__,{moduleMetadata:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata}})}}]); \ No newline at end of file diff --git a/122.faec37ef.iframe.bundle.js.LICENSE.txt b/122.faec37ef.iframe.bundle.js.LICENSE.txt new file mode 100644 index 0000000..193dccb --- /dev/null +++ b/122.faec37ef.iframe.bundle.js.LICENSE.txt @@ -0,0 +1,5 @@ +/** + * @license Angular v18.2.3 + * (c) 2010-2024 Google LLC. https://angular.io/ + * License: MIT + */ diff --git a/2.5f95997f.iframe.bundle.js b/2.5f95997f.iframe.bundle.js new file mode 100644 index 0000000..0333a9d --- /dev/null +++ b/2.5f95997f.iframe.bundle.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2],{"./node_modules/@mdx-js/react/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{MDXProvider:()=>MDXProvider,useMDXComponents:()=>useMDXComponents});var react=__webpack_require__("./node_modules/react/index.js");const emptyComponents={},MDXContext=react.createContext(emptyComponents);function useMDXComponents(components){const contextComponents=react.useContext(MDXContext);return react.useMemo((function(){return"function"==typeof components?components(contextComponents):{...contextComponents,...components}}),[contextComponents,components])}function MDXProvider(properties){let allComponents;return allComponents=properties.disableParentContext?"function"==typeof properties.components?properties.components(emptyComponents):properties.components||emptyComponents:useMDXComponents(properties.components),react.createElement(MDXContext.Provider,{value:allComponents},properties.children)}}}]); \ No newline at end of file diff --git a/26.f5e91325.iframe.bundle.js b/26.f5e91325.iframe.bundle.js new file mode 100644 index 0000000..b8441b8 --- /dev/null +++ b/26.f5e91325.iframe.bundle.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[26],{"./node_modules/storybook/core/components/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{A:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.A,ActionBar:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.E7,AddonPanel:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.hW,Badge:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Ex,Bar:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.yP,Blockquote:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Cv,Button:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.$n,ClipboardCode:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Qf,Code:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Cy,DL:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.DL,Div:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.i,DocumentWrapper:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.NL,EmptyTabContent:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Q2,ErrorFormatter:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Df,FlexBar:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.px,Form:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.lV,H1:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.H1,H2:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.H2,H3:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.H3,H4:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.H4,H5:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.H5,H6:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.H6,HR:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.HR,IconButton:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.K0,IconButtonSkeleton:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Tg,Icons:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.FI,Img:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.E9,LI:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.LI,Link:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.N_,ListItem:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.ck,Loader:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.aH,Modal:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.aF,OL:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.OL,P:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.P,Placeholder:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Or,Pre:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.AC,ResetWrapper:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.dL,ScrollArea:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.FK,Separator:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.wv,Spaced:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.vg,Span:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.L9,StorybookIcon:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.qZ,StorybookLogo:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Md,Symbols:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.i3,SyntaxHighlighter:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.bF,TT:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.TT,TabBar:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.VQ,TabButton:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.KM,TabWrapper:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.TW,Table:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.XI,Tabs:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.tU,TabsState:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__._j,TooltipLinkList:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.gJ,TooltipMessage:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.fi,TooltipNote:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__._,UL:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.UL,WithTooltip:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.kR,WithTooltipPure:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.o4,Zoom:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.GP,codeCommon:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.zb,components:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.dK,createCopyToClipboardFunction:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.zH,getStoryHref:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.jZ,icons:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Pt,interleaveSeparators:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Mp,nameSpaceClassNames:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.mc,resetComponents:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.Km,withReset:()=>_storybook_core_components__WEBPACK_IMPORTED_MODULE_0__.YV});var _storybook_core_components__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/core/dist/components/index.js")}}]); \ No newline at end of file diff --git a/271.28c2dbaa.iframe.bundle.js b/271.28c2dbaa.iframe.bundle.js new file mode 100644 index 0000000..03dd78f --- /dev/null +++ b/271.28c2dbaa.iframe.bundle.js @@ -0,0 +1,422 @@ +/*! For license information please see 271.28c2dbaa.iframe.bundle.js.LICENSE.txt */ +(self.webpackChunk=self.webpackChunk||[]).push([[271],{"./node_modules/@angular/animations/fesm2022/animations.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{FX:()=>ɵPRE_STYLE,If:()=>AnimationMetadataType,K2:()=>sequence,MA:()=>animateChild,Os:()=>group,P:()=>query,hZ:()=>trigger,i0:()=>animate,iF:()=>style,kY:()=>transition,kp:()=>AUTO_STYLE,sf:()=>NoopAnimationPlayer,ui:()=>AnimationGroupPlayer,wk:()=>state});var AnimationMetadataType,_angular_common__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");!function(AnimationMetadataType){AnimationMetadataType[AnimationMetadataType.State=0]="State",AnimationMetadataType[AnimationMetadataType.Transition=1]="Transition",AnimationMetadataType[AnimationMetadataType.Sequence=2]="Sequence",AnimationMetadataType[AnimationMetadataType.Group=3]="Group",AnimationMetadataType[AnimationMetadataType.Animate=4]="Animate",AnimationMetadataType[AnimationMetadataType.Keyframes=5]="Keyframes",AnimationMetadataType[AnimationMetadataType.Style=6]="Style",AnimationMetadataType[AnimationMetadataType.Trigger=7]="Trigger",AnimationMetadataType[AnimationMetadataType.Reference=8]="Reference",AnimationMetadataType[AnimationMetadataType.AnimateChild=9]="AnimateChild",AnimationMetadataType[AnimationMetadataType.AnimateRef=10]="AnimateRef",AnimationMetadataType[AnimationMetadataType.Query=11]="Query",AnimationMetadataType[AnimationMetadataType.Stagger=12]="Stagger"}(AnimationMetadataType||(AnimationMetadataType={}));const AUTO_STYLE="*";function trigger(name,definitions){return{type:AnimationMetadataType.Trigger,name,definitions,options:{}}}function animate(timings,styles=null){return{type:AnimationMetadataType.Animate,styles,timings}}function group(steps,options=null){return{type:AnimationMetadataType.Group,steps,options}}function sequence(steps,options=null){return{type:AnimationMetadataType.Sequence,steps,options}}function style(tokens){return{type:AnimationMetadataType.Style,styles:tokens,offset:null}}function state(name,styles,options){return{type:AnimationMetadataType.State,name,styles,options}}function transition(stateChangeExpr,steps,options=null){return{type:AnimationMetadataType.Transition,expr:stateChangeExpr,animation:steps,options}}function animateChild(options=null){return{type:AnimationMetadataType.AnimateChild,options}}function query(selector,animation,options=null){return{type:AnimationMetadataType.Query,selector,animation,options}}class AnimationBuilder{static#_=this.ɵfac=function AnimationBuilder_Factory(__ngFactoryType__){return new(__ngFactoryType__||AnimationBuilder)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:AnimationBuilder,factory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(BrowserAnimationBuilder),providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AnimationBuilder,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(BrowserAnimationBuilder)}]}],null,null);class AnimationFactory{}class BrowserAnimationBuilder extends AnimationBuilder{constructor(rootRenderer,doc){super(),this.animationModuleType=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.ANIMATION_MODULE_TYPE,{optional:!0}),this._nextAnimationId=0;const typeData={id:"0",encapsulation:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewEncapsulation.None,styles:[],data:{animation:[]}};if(this._renderer=rootRenderer.createRenderer(doc.body,typeData),null===this.animationModuleType&&!function isAnimationRenderer(renderer){const type=renderer.ɵtype;return 0===type||1===type}(this._renderer))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](3600,("undefined"==typeof ngDevMode||ngDevMode)&&"Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.")}build(animation){const id=this._nextAnimationId;this._nextAnimationId++;const entry=Array.isArray(animation)?sequence(animation):animation;return issueAnimationCommand(this._renderer,null,id,"register",[entry]),new BrowserAnimationFactory(id,this._renderer)}static#_=this.ɵfac=function BrowserAnimationBuilder_Factory(__ngFactoryType__){return new(__ngFactoryType__||BrowserAnimationBuilder)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.RendererFactory2),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__.DOCUMENT))};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:BrowserAnimationBuilder,factory:BrowserAnimationBuilder.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](BrowserAnimationBuilder,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.RendererFactory2},{type:Document,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_common__WEBPACK_IMPORTED_MODULE_1__.DOCUMENT]}]}]),null);class BrowserAnimationFactory extends AnimationFactory{constructor(_id,_renderer){super(),this._id=_id,this._renderer=_renderer}create(element,options){return new RendererAnimationPlayer(this._id,element,options||{},this._renderer)}}class RendererAnimationPlayer{constructor(id,element,options,_renderer){this.id=id,this.element=element,this._renderer=_renderer,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",options)}_listen(eventName,callback){return this._renderer.listen(this.element,`@@${this.id}:${eventName}`,callback)}_command(command,...args){issueAnimationCommand(this._renderer,this.element,this.id,command,args)}onDone(fn){this._listen("done",fn)}onStart(fn){this._listen("start",fn)}onDestroy(fn){this._listen("destroy",fn)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(p){this._command("setPosition",p)}getPosition(){return function unwrapAnimationRenderer(renderer){const type=renderer.ɵtype;if(0===type)return renderer;if(1===type)return renderer.animationRenderer;return null}(this._renderer)?.engine?.players[this.id]?.getPosition()??0}}function issueAnimationCommand(renderer,element,id,command,args){renderer.setProperty(element,`@@${id}:${command}`,args)}class NoopAnimationPlayer{constructor(duration=0,delay=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=duration+delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach((fn=>fn())),this._onDoneFns=[])}onStart(fn){this._originalOnStartFns.push(fn),this._onStartFns.push(fn)}onDone(fn){this._originalOnDoneFns.push(fn),this._onDoneFns.push(fn)}onDestroy(fn){this._onDestroyFns.push(fn)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask((()=>this._onFinish()))}_onStart(){this._onStartFns.forEach((fn=>fn())),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach((fn=>fn())),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(position){this._position=this.totalTime?position*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(phaseName){const methods="start"==phaseName?this._onStartFns:this._onDoneFns;methods.forEach((fn=>fn())),methods.length=0}}class AnimationGroupPlayer{constructor(_players){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=_players;let doneCount=0,destroyCount=0,startCount=0;const total=this.players.length;0==total?queueMicrotask((()=>this._onFinish())):this.players.forEach((player=>{player.onDone((()=>{++doneCount==total&&this._onFinish()})),player.onDestroy((()=>{++destroyCount==total&&this._onDestroy()})),player.onStart((()=>{++startCount==total&&this._onStart()}))})),this.totalTime=this.players.reduce(((time,player)=>Math.max(time,player.totalTime)),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach((fn=>fn())),this._onDoneFns=[])}init(){this.players.forEach((player=>player.init()))}onStart(fn){this._onStartFns.push(fn)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach((fn=>fn())),this._onStartFns=[])}onDone(fn){this._onDoneFns.push(fn)}onDestroy(fn){this._onDestroyFns.push(fn)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach((player=>player.play()))}pause(){this.players.forEach((player=>player.pause()))}restart(){this.players.forEach((player=>player.restart()))}finish(){this._onFinish(),this.players.forEach((player=>player.finish()))}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach((player=>player.destroy())),this._onDestroyFns.forEach((fn=>fn())),this._onDestroyFns=[])}reset(){this.players.forEach((player=>player.reset())),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(p){const timeAtPosition=p*this.totalTime;this.players.forEach((player=>{const position=player.totalTime?Math.min(1,timeAtPosition/player.totalTime):1;player.setPosition(position)}))}getPosition(){const longestPlayer=this.players.reduce(((longestSoFar,player)=>null===longestSoFar||player.totalTime>longestSoFar.totalTime?player:longestSoFar),null);return null!=longestPlayer?longestPlayer.getPosition():0}beforeDestroy(){this.players.forEach((player=>{player.beforeDestroy&&player.beforeDestroy()}))}triggerCallback(phaseName){const methods="start"==phaseName?this._onStartFns:this._onDoneFns;methods.forEach((fn=>fn())),methods.length=0}}const ɵPRE_STYLE="!"},"./node_modules/@angular/common/fesm2022/common.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{APP_BASE_HREF:()=>APP_BASE_HREF,AsyncPipe:()=>AsyncPipe,BrowserPlatformLocation:()=>BrowserPlatformLocation,CommonModule:()=>CommonModule,CurrencyPipe:()=>CurrencyPipe,DATE_PIPE_DEFAULT_OPTIONS:()=>DATE_PIPE_DEFAULT_OPTIONS,DATE_PIPE_DEFAULT_TIMEZONE:()=>DATE_PIPE_DEFAULT_TIMEZONE,DOCUMENT:()=>DOCUMENT,DatePipe:()=>DatePipe,DecimalPipe:()=>DecimalPipe,FormStyle:()=>FormStyle,FormatWidth:()=>FormatWidth,HashLocationStrategy:()=>HashLocationStrategy,I18nPluralPipe:()=>I18nPluralPipe,I18nSelectPipe:()=>I18nSelectPipe,IMAGE_CONFIG:()=>_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵIMAGE_CONFIG"],IMAGE_LOADER:()=>IMAGE_LOADER,JsonPipe:()=>JsonPipe,KeyValuePipe:()=>KeyValuePipe,LOCATION_INITIALIZED:()=>LOCATION_INITIALIZED,Location:()=>Location,LocationStrategy:()=>LocationStrategy,LowerCasePipe:()=>LowerCasePipe,NgClass:()=>NgClass,NgComponentOutlet:()=>NgComponentOutlet,NgFor:()=>NgForOf,NgForOf:()=>NgForOf,NgForOfContext:()=>NgForOfContext,NgIf:()=>NgIf,NgIfContext:()=>NgIfContext,NgLocaleLocalization:()=>NgLocaleLocalization,NgLocalization:()=>NgLocalization,NgOptimizedImage:()=>NgOptimizedImage,NgPlural:()=>NgPlural,NgPluralCase:()=>NgPluralCase,NgStyle:()=>NgStyle,NgSwitch:()=>NgSwitch,NgSwitchCase:()=>NgSwitchCase,NgSwitchDefault:()=>NgSwitchDefault,NgTemplateOutlet:()=>NgTemplateOutlet,NumberFormatStyle:()=>NumberFormatStyle,NumberSymbol:()=>NumberSymbol,PRECONNECT_CHECK_BLOCKLIST:()=>PRECONNECT_CHECK_BLOCKLIST,PathLocationStrategy:()=>PathLocationStrategy,PercentPipe:()=>PercentPipe,PlatformLocation:()=>PlatformLocation,Plural:()=>Plural,SlicePipe:()=>SlicePipe,TitleCasePipe:()=>TitleCasePipe,TranslationWidth:()=>TranslationWidth,UpperCasePipe:()=>UpperCasePipe,VERSION:()=>VERSION,ViewportScroller:()=>ViewportScroller,WeekDay:()=>WeekDay,XhrFactory:()=>XhrFactory,formatCurrency:()=>formatCurrency,formatDate:()=>formatDate,formatNumber:()=>formatNumber,formatPercent:()=>formatPercent,getCurrencySymbol:()=>getCurrencySymbol,getLocaleCurrencyCode:()=>getLocaleCurrencyCode,getLocaleCurrencyName:()=>getLocaleCurrencyName,getLocaleCurrencySymbol:()=>getLocaleCurrencySymbol,getLocaleDateFormat:()=>getLocaleDateFormat,getLocaleDateTimeFormat:()=>getLocaleDateTimeFormat,getLocaleDayNames:()=>getLocaleDayNames,getLocaleDayPeriods:()=>getLocaleDayPeriods,getLocaleDirection:()=>getLocaleDirection,getLocaleEraNames:()=>getLocaleEraNames,getLocaleExtraDayPeriodRules:()=>getLocaleExtraDayPeriodRules,getLocaleExtraDayPeriods:()=>getLocaleExtraDayPeriods,getLocaleFirstDayOfWeek:()=>getLocaleFirstDayOfWeek,getLocaleId:()=>getLocaleId,getLocaleMonthNames:()=>getLocaleMonthNames,getLocaleNumberFormat:()=>getLocaleNumberFormat,getLocaleNumberSymbol:()=>getLocaleNumberSymbol,getLocalePluralCase:()=>getLocalePluralCase,getLocaleTimeFormat:()=>getLocaleTimeFormat,getLocaleWeekEndRange:()=>getLocaleWeekEndRange,getNumberOfCurrencyDigits:()=>getNumberOfCurrencyDigits,isPlatformBrowser:()=>isPlatformBrowser,isPlatformServer:()=>isPlatformServer,provideCloudflareLoader:()=>provideCloudflareLoader,provideCloudinaryLoader:()=>provideCloudinaryLoader,provideImageKitLoader:()=>provideImageKitLoader,provideImgixLoader:()=>provideImgixLoader,provideNetlifyLoader:()=>provideNetlifyLoader,registerLocaleData:()=>registerLocaleData,ɵDomAdapter:()=>DomAdapter,ɵNullViewportScroller:()=>NullViewportScroller,ɵPLATFORM_BROWSER_ID:()=>PLATFORM_BROWSER_ID,ɵPLATFORM_SERVER_ID:()=>PLATFORM_SERVER_ID,ɵPlatformNavigation:()=>PlatformNavigation,ɵgetDOM:()=>getDOM,ɵnormalizeQueryParams:()=>normalizeQueryParams,ɵparseCookieValue:()=>parseCookieValue,ɵsetRootDomAdapter:()=>setRootDomAdapter});var _home_runner_work_ngx_components_ngx_components_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"),_angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let _DOM=null;function getDOM(){return _DOM}function setRootDomAdapter(adapter){_DOM??=adapter}class DomAdapter{}class PlatformNavigation{static#_=this.ɵfac=function PlatformNavigation_Factory(__ngFactoryType__){return new(__ngFactoryType__||PlatformNavigation)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PlatformNavigation,factory:()=>window.navigation,providedIn:"platform"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PlatformNavigation,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"platform",useFactory:()=>window.navigation}]}],null,null);const DOCUMENT=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"DocumentToken":"");class PlatformLocation{historyGo(relativePosition){throw new Error(ngDevMode?"Not implemented":"")}static#_=this.ɵfac=function PlatformLocation_Factory(__ngFactoryType__){return new(__ngFactoryType__||PlatformLocation)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PlatformLocation,factory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(BrowserPlatformLocation),providedIn:"platform"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PlatformLocation,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"platform",useFactory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(BrowserPlatformLocation)}]}],null,null);const LOCATION_INITIALIZED=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"Location Initialized":"");class BrowserPlatformLocation extends PlatformLocation{constructor(){super(),this._doc=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return getDOM().getBaseHref(this._doc)}onPopState(fn){const window=getDOM().getGlobalEventTarget(this._doc,"window");return window.addEventListener("popstate",fn,!1),()=>window.removeEventListener("popstate",fn)}onHashChange(fn){const window=getDOM().getGlobalEventTarget(this._doc,"window");return window.addEventListener("hashchange",fn,!1),()=>window.removeEventListener("hashchange",fn)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(newPath){this._location.pathname=newPath}pushState(state,title,url){this._history.pushState(state,title,url)}replaceState(state,title,url){this._history.replaceState(state,title,url)}forward(){this._history.forward()}back(){this._history.back()}historyGo(relativePosition=0){this._history.go(relativePosition)}getState(){return this._history.state}static#_=this.ɵfac=function BrowserPlatformLocation_Factory(__ngFactoryType__){return new(__ngFactoryType__||BrowserPlatformLocation)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:BrowserPlatformLocation,factory:()=>new BrowserPlatformLocation,providedIn:"platform"})}function joinWithSlash(start,end){if(0==start.length)return end;if(0==end.length)return start;let slashes=0;return start.endsWith("/")&&slashes++,end.startsWith("/")&&slashes++,2==slashes?start+end.substring(1):1==slashes?start+end:start+"/"+end}function stripTrailingSlash(url){const match=url.match(/#|\?|$/),pathEndIdx=match&&match.index||url.length,droppedSlashIdx=pathEndIdx-("/"===url[pathEndIdx-1]?1:0);return url.slice(0,droppedSlashIdx)+url.slice(pathEndIdx)}function normalizeQueryParams(params){return params&&"?"!==params[0]?"?"+params:params}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](BrowserPlatformLocation,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"platform",useFactory:()=>new BrowserPlatformLocation}]}],(()=>[]),null);class LocationStrategy{historyGo(relativePosition){throw new Error(ngDevMode?"Not implemented":"")}static#_=this.ɵfac=function LocationStrategy_Factory(__ngFactoryType__){return new(__ngFactoryType__||LocationStrategy)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:LocationStrategy,factory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PathLocationStrategy),providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LocationStrategy,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PathLocationStrategy)}]}],null,null);const APP_BASE_HREF=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"appBaseHref":"");class PathLocationStrategy extends LocationStrategy{constructor(_platformLocation,href){super(),this._platformLocation=_platformLocation,this._removeListenerFns=[],this._baseHref=href??this._platformLocation.getBaseHrefFromDOM()??(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(fn){this._removeListenerFns.push(this._platformLocation.onPopState(fn),this._platformLocation.onHashChange(fn))}getBaseHref(){return this._baseHref}prepareExternalUrl(internal){return joinWithSlash(this._baseHref,internal)}path(includeHash=!1){const pathname=this._platformLocation.pathname+normalizeQueryParams(this._platformLocation.search),hash=this._platformLocation.hash;return hash&&includeHash?`${pathname}${hash}`:pathname}pushState(state,title,url,queryParams){const externalUrl=this.prepareExternalUrl(url+normalizeQueryParams(queryParams));this._platformLocation.pushState(state,title,externalUrl)}replaceState(state,title,url,queryParams){const externalUrl=this.prepareExternalUrl(url+normalizeQueryParams(queryParams));this._platformLocation.replaceState(state,title,externalUrl)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(relativePosition=0){this._platformLocation.historyGo?.(relativePosition)}static#_=this.ɵfac=function PathLocationStrategy_Factory(__ngFactoryType__){return new(__ngFactoryType__||PathLocationStrategy)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](PlatformLocation),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](APP_BASE_HREF,8))};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PathLocationStrategy,factory:PathLocationStrategy.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PathLocationStrategy,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],(()=>[{type:PlatformLocation},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[APP_BASE_HREF]}]}]),null);class HashLocationStrategy extends LocationStrategy{constructor(_platformLocation,_baseHref){super(),this._platformLocation=_platformLocation,this._baseHref="",this._removeListenerFns=[],null!=_baseHref&&(this._baseHref=_baseHref)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(fn){this._removeListenerFns.push(this._platformLocation.onPopState(fn),this._platformLocation.onHashChange(fn))}getBaseHref(){return this._baseHref}path(includeHash=!1){const path=this._platformLocation.hash??"#";return path.length>0?path.substring(1):path}prepareExternalUrl(internal){const url=joinWithSlash(this._baseHref,internal);return url.length>0?"#"+url:url}pushState(state,title,path,queryParams){let url=this.prepareExternalUrl(path+normalizeQueryParams(queryParams));0==url.length&&(url=this._platformLocation.pathname),this._platformLocation.pushState(state,title,url)}replaceState(state,title,path,queryParams){let url=this.prepareExternalUrl(path+normalizeQueryParams(queryParams));0==url.length&&(url=this._platformLocation.pathname),this._platformLocation.replaceState(state,title,url)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(relativePosition=0){this._platformLocation.historyGo?.(relativePosition)}static#_=this.ɵfac=function HashLocationStrategy_Factory(__ngFactoryType__){return new(__ngFactoryType__||HashLocationStrategy)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](PlatformLocation),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](APP_BASE_HREF,8))};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:HashLocationStrategy,factory:HashLocationStrategy.ɵfac})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](HashLocationStrategy,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable}],(()=>[{type:PlatformLocation},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[APP_BASE_HREF]}]}]),null);class Location{constructor(locationStrategy){this._subject=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=locationStrategy;const baseHref=this._locationStrategy.getBaseHref();this._basePath=function _stripOrigin(baseHref){const isAbsoluteUrl=new RegExp("^(https?:)?//").test(baseHref);if(isAbsoluteUrl){const[,pathname]=baseHref.split(/\/\/[^\/]+/);return pathname}return baseHref}(stripTrailingSlash(_stripIndexHtml(baseHref))),this._locationStrategy.onPopState((ev=>{this._subject.emit({url:this.path(!0),pop:!0,state:ev.state,type:ev.type})}))}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(includeHash=!1){return this.normalize(this._locationStrategy.path(includeHash))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(path,query=""){return this.path()==this.normalize(path+normalizeQueryParams(query))}normalize(url){return Location.stripTrailingSlash(function _stripBasePath(basePath,url){if(!basePath||!url.startsWith(basePath))return url;const strippedUrl=url.substring(basePath.length);if(""===strippedUrl||["/",";","?","#"].includes(strippedUrl[0]))return strippedUrl;return url}(this._basePath,_stripIndexHtml(url)))}prepareExternalUrl(url){return url&&"/"!==url[0]&&(url="/"+url),this._locationStrategy.prepareExternalUrl(url)}go(path,query="",state=null){this._locationStrategy.pushState(state,"",path,query),this._notifyUrlChangeListeners(this.prepareExternalUrl(path+normalizeQueryParams(query)),state)}replaceState(path,query="",state=null){this._locationStrategy.replaceState(state,"",path,query),this._notifyUrlChangeListeners(this.prepareExternalUrl(path+normalizeQueryParams(query)),state)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(relativePosition=0){this._locationStrategy.historyGo?.(relativePosition)}onUrlChange(fn){return this._urlChangeListeners.push(fn),this._urlChangeSubscription??=this.subscribe((v=>{this._notifyUrlChangeListeners(v.url,v.state)})),()=>{const fnIndex=this._urlChangeListeners.indexOf(fn);this._urlChangeListeners.splice(fnIndex,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(url="",state){this._urlChangeListeners.forEach((fn=>fn(url,state)))}subscribe(onNext,onThrow,onReturn){return this._subject.subscribe({next:onNext,error:onThrow,complete:onReturn})}static#_=this.normalizeQueryParams=normalizeQueryParams;static#_2=this.joinWithSlash=joinWithSlash;static#_3=this.stripTrailingSlash=stripTrailingSlash;static#_4=this.ɵfac=function Location_Factory(__ngFactoryType__){return new(__ngFactoryType__||Location)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](LocationStrategy))};static#_5=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:Location,factory:()=>createLocation(),providedIn:"root"})}function createLocation(){return new Location((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(LocationStrategy))}function _stripIndexHtml(url){return url.replace(/\/index.html$/,"")}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](Location,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:createLocation}]}],(()=>[{type:LocationStrategy}]),null);const CURRENCIES_EN={ADP:[void 0,void 0,0],AFN:[void 0,"؋",0],ALL:[void 0,void 0,0],AMD:[void 0,"֏",2],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],AZN:[void 0,"₼"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,void 0,2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",2],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GHS:[void 0,"GH₵"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",2],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",2],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",2],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",2],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:["₱"],PKR:[void 0,"Rs",2],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLE:[void 0,void 0,2],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,2],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,"Bs",2],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["F CFA",void 0,0],XPF:["CFPF",void 0,0],XXX:["¤"],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]};var NumberFormatStyle,Plural,FormStyle,TranslationWidth,FormatWidth;!function(NumberFormatStyle){NumberFormatStyle[NumberFormatStyle.Decimal=0]="Decimal",NumberFormatStyle[NumberFormatStyle.Percent=1]="Percent",NumberFormatStyle[NumberFormatStyle.Currency=2]="Currency",NumberFormatStyle[NumberFormatStyle.Scientific=3]="Scientific"}(NumberFormatStyle||(NumberFormatStyle={})),function(Plural){Plural[Plural.Zero=0]="Zero",Plural[Plural.One=1]="One",Plural[Plural.Two=2]="Two",Plural[Plural.Few=3]="Few",Plural[Plural.Many=4]="Many",Plural[Plural.Other=5]="Other"}(Plural||(Plural={})),function(FormStyle){FormStyle[FormStyle.Format=0]="Format",FormStyle[FormStyle.Standalone=1]="Standalone"}(FormStyle||(FormStyle={})),function(TranslationWidth){TranslationWidth[TranslationWidth.Narrow=0]="Narrow",TranslationWidth[TranslationWidth.Abbreviated=1]="Abbreviated",TranslationWidth[TranslationWidth.Wide=2]="Wide",TranslationWidth[TranslationWidth.Short=3]="Short"}(TranslationWidth||(TranslationWidth={})),function(FormatWidth){FormatWidth[FormatWidth.Short=0]="Short",FormatWidth[FormatWidth.Medium=1]="Medium",FormatWidth[FormatWidth.Long=2]="Long",FormatWidth[FormatWidth.Full=3]="Full"}(FormatWidth||(FormatWidth={}));const NumberSymbol={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};var WeekDay;function getLocaleId(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].LocaleId]}function getLocaleDayPeriods(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),amPm=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DayPeriodsFormat],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DayPeriodsStandalone]],formStyle);return getLastDefinedValue(amPm,width)}function getLocaleDayNames(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),days=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DaysFormat],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DaysStandalone]],formStyle);return getLastDefinedValue(days,width)}function getLocaleMonthNames(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),months=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].MonthsFormat],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].MonthsStandalone]],formStyle);return getLastDefinedValue(months,width)}function getLocaleEraNames(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].Eras],width)}function getLocaleFirstDayOfWeek(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].FirstDayOfWeek]}function getLocaleWeekEndRange(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].WeekendRange]}function getLocaleDateFormat(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DateFormat],width)}function getLocaleTimeFormat(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].TimeFormat],width)}function getLocaleDateTimeFormat(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DateTimeFormat],width)}function getLocaleNumberSymbol(locale,symbol){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),res=data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberSymbols][symbol];if(void 0===res){if(symbol===NumberSymbol.CurrencyDecimal)return data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberSymbols][NumberSymbol.Decimal];if(symbol===NumberSymbol.CurrencyGroup)return data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberSymbols][NumberSymbol.Group]}return res}function getLocaleNumberFormat(locale,type){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberFormats][type]}function getLocaleCurrencySymbol(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].CurrencySymbol]||null}function getLocaleCurrencyName(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].CurrencyName]||null}function getLocaleCurrencyCode(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵgetLocaleCurrencyCode"])(locale)}!function(WeekDay){WeekDay[WeekDay.Sunday=0]="Sunday",WeekDay[WeekDay.Monday=1]="Monday",WeekDay[WeekDay.Tuesday=2]="Tuesday",WeekDay[WeekDay.Wednesday=3]="Wednesday",WeekDay[WeekDay.Thursday=4]="Thursday",WeekDay[WeekDay.Friday=5]="Friday",WeekDay[WeekDay.Saturday=6]="Saturday"}(WeekDay||(WeekDay={}));const getLocalePluralCase=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵgetLocalePluralCase"];function checkFullData(data){if(!data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData])throw new Error(`Missing extra locale data for the locale "${data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function getLocaleExtraDayPeriodRules(locale){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale);checkFullData(data);return(data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData][2]||[]).map((rule=>"string"==typeof rule?extractTime(rule):[extractTime(rule[0]),extractTime(rule[1])]))}function getLocaleExtraDayPeriods(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale);checkFullData(data);const dayPeriods=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData][0],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData][1]],formStyle)||[];return getLastDefinedValue(dayPeriods,width)||[]}function getLocaleDirection(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].Directionality]}function getLastDefinedValue(data,index){for(let i=index;i>-1;i--)if(void 0!==data[i])return data[i];throw new Error("Locale data API: locale data undefined")}function extractTime(time){const[h,m]=time.split(":");return{hours:+h,minutes:+m}}function getCurrencySymbol(code,format,locale="en"){const currency=function getLocaleCurrencies(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].Currencies]}(locale)[code]||CURRENCIES_EN[code]||[],symbolNarrow=currency[1];return"narrow"===format&&"string"==typeof symbolNarrow?symbolNarrow:currency[0]||code}const DEFAULT_NB_OF_CURRENCY_DIGITS=2;function getNumberOfCurrencyDigits(code){let digits;const currency=CURRENCIES_EN[code];return currency&&(digits=currency[2]),"number"==typeof digits?digits:DEFAULT_NB_OF_CURRENCY_DIGITS}const ISO8601_DATE_REGEX=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,NAMED_FORMATS={},DATE_FORMATS_SPLIT=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var ZoneWidth,DateType,TranslationType;function formatDate(value,format,locale,timezone){let date=function toDate(value){if(isDate(value))return value;if("number"==typeof value&&!isNaN(value))return new Date(value);if("string"==typeof value){if(value=value.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(value)){const[y,m=1,d=1]=value.split("-").map((val=>+val));return createDate(y,m-1,d)}const parsedNb=parseFloat(value);if(!isNaN(value-parsedNb))return new Date(parsedNb);let match;if(match=value.match(ISO8601_DATE_REGEX))return function isoStringToDate(match){const date=new Date(0);let tzHour=0,tzMin=0;const dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;match[9]&&(tzHour=Number(match[9]+match[10]),tzMin=Number(match[9]+match[11]));dateSetter.call(date,Number(match[1]),Number(match[2])-1,Number(match[3]));const h=Number(match[4]||0)-tzHour,m=Number(match[5]||0)-tzMin,s=Number(match[6]||0),ms=Math.floor(1e3*parseFloat("0."+(match[7]||0)));return timeSetter.call(date,h,m,s,ms),date}(match)}const date=new Date(value);if(!isDate(date))throw new Error(`Unable to convert "${value}" into a date`);return date}(value);format=getNamedFormat(locale,format)||format;let match,parts=[];for(;format;){if(match=DATE_FORMATS_SPLIT.exec(format),!match){parts.push(format);break}{parts=parts.concat(match.slice(1));const part=parts.pop();if(!part)break;format=part}}let dateTimezoneOffset=date.getTimezoneOffset();timezone&&(dateTimezoneOffset=timezoneToOffset(timezone,dateTimezoneOffset),date=function convertTimezoneToLocal(date,timezone,reverse){const reverseValue=reverse?-1:1,dateTimezoneOffset=date.getTimezoneOffset(),timezoneOffset=timezoneToOffset(timezone,dateTimezoneOffset);return function addDateMinutes(date,minutes){return date=new Date(date.getTime()),date.setMinutes(date.getMinutes()+minutes),date}(date,reverseValue*(timezoneOffset-dateTimezoneOffset))}(date,timezone,!0));let text="";return parts.forEach((value=>{const dateFormatter=function getDateFormatter(format){if(DATE_FORMATS[format])return DATE_FORMATS[format];let formatter;switch(format){case"G":case"GG":case"GGG":formatter=dateStrGetter(TranslationType.Eras,TranslationWidth.Abbreviated);break;case"GGGG":formatter=dateStrGetter(TranslationType.Eras,TranslationWidth.Wide);break;case"GGGGG":formatter=dateStrGetter(TranslationType.Eras,TranslationWidth.Narrow);break;case"y":formatter=dateGetter(DateType.FullYear,1,0,!1,!0);break;case"yy":formatter=dateGetter(DateType.FullYear,2,0,!0,!0);break;case"yyy":formatter=dateGetter(DateType.FullYear,3,0,!1,!0);break;case"yyyy":formatter=dateGetter(DateType.FullYear,4,0,!1,!0);break;case"Y":formatter=weekNumberingYearGetter(1);break;case"YY":formatter=weekNumberingYearGetter(2,!0);break;case"YYY":formatter=weekNumberingYearGetter(3);break;case"YYYY":formatter=weekNumberingYearGetter(4);break;case"M":case"L":formatter=dateGetter(DateType.Month,1,1);break;case"MM":case"LL":formatter=dateGetter(DateType.Month,2,1);break;case"MMM":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Abbreviated);break;case"MMMM":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Wide);break;case"MMMMM":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Narrow);break;case"LLL":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Abbreviated,FormStyle.Standalone);break;case"LLLL":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Wide,FormStyle.Standalone);break;case"LLLLL":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Narrow,FormStyle.Standalone);break;case"w":formatter=weekGetter(1);break;case"ww":formatter=weekGetter(2);break;case"W":formatter=weekGetter(1,!0);break;case"d":formatter=dateGetter(DateType.Date,1);break;case"dd":formatter=dateGetter(DateType.Date,2);break;case"c":case"cc":formatter=dateGetter(DateType.Day,1);break;case"ccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Abbreviated,FormStyle.Standalone);break;case"cccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Wide,FormStyle.Standalone);break;case"ccccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Narrow,FormStyle.Standalone);break;case"cccccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Short,FormStyle.Standalone);break;case"E":case"EE":case"EEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Abbreviated);break;case"EEEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Wide);break;case"EEEEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Narrow);break;case"EEEEEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Short);break;case"a":case"aa":case"aaa":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Abbreviated);break;case"aaaa":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Wide);break;case"aaaaa":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Narrow);break;case"b":case"bb":case"bbb":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Abbreviated,FormStyle.Standalone,!0);break;case"bbbb":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Wide,FormStyle.Standalone,!0);break;case"bbbbb":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Narrow,FormStyle.Standalone,!0);break;case"B":case"BB":case"BBB":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Abbreviated,FormStyle.Format,!0);break;case"BBBB":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Wide,FormStyle.Format,!0);break;case"BBBBB":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Narrow,FormStyle.Format,!0);break;case"h":formatter=dateGetter(DateType.Hours,1,-12);break;case"hh":formatter=dateGetter(DateType.Hours,2,-12);break;case"H":formatter=dateGetter(DateType.Hours,1);break;case"HH":formatter=dateGetter(DateType.Hours,2);break;case"m":formatter=dateGetter(DateType.Minutes,1);break;case"mm":formatter=dateGetter(DateType.Minutes,2);break;case"s":formatter=dateGetter(DateType.Seconds,1);break;case"ss":formatter=dateGetter(DateType.Seconds,2);break;case"S":formatter=dateGetter(DateType.FractionalSeconds,1);break;case"SS":formatter=dateGetter(DateType.FractionalSeconds,2);break;case"SSS":formatter=dateGetter(DateType.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":formatter=timeZoneGetter(ZoneWidth.Short);break;case"ZZZZZ":formatter=timeZoneGetter(ZoneWidth.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":formatter=timeZoneGetter(ZoneWidth.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":formatter=timeZoneGetter(ZoneWidth.Long);break;default:return null}return DATE_FORMATS[format]=formatter,formatter}(value);text+=dateFormatter?dateFormatter(date,locale,dateTimezoneOffset):"''"===value?"'":value.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),text}function createDate(year,month,date){const newDate=new Date(0);return newDate.setFullYear(year,month,date),newDate.setHours(0,0,0),newDate}function getNamedFormat(locale,format){const localeId=getLocaleId(locale);if(NAMED_FORMATS[localeId]??={},NAMED_FORMATS[localeId][format])return NAMED_FORMATS[localeId][format];let formatValue="";switch(format){case"shortDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Short);break;case"mediumDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Medium);break;case"longDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Long);break;case"fullDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Full);break;case"shortTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Short);break;case"mediumTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Medium);break;case"longTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Long);break;case"fullTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Full);break;case"short":const shortTime=getNamedFormat(locale,"shortTime"),shortDate=getNamedFormat(locale,"shortDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Short),[shortTime,shortDate]);break;case"medium":const mediumTime=getNamedFormat(locale,"mediumTime"),mediumDate=getNamedFormat(locale,"mediumDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Medium),[mediumTime,mediumDate]);break;case"long":const longTime=getNamedFormat(locale,"longTime"),longDate=getNamedFormat(locale,"longDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Long),[longTime,longDate]);break;case"full":const fullTime=getNamedFormat(locale,"fullTime"),fullDate=getNamedFormat(locale,"fullDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Full),[fullTime,fullDate])}return formatValue&&(NAMED_FORMATS[localeId][format]=formatValue),formatValue}function formatDateTime(str,opt_values){return opt_values&&(str=str.replace(/\{([^}]+)}/g,(function(match,key){return null!=opt_values&&key in opt_values?opt_values[key]:match}))),str}function padNumber(num,digits,minusSign="-",trim,negWrap){let neg="";(num<0||negWrap&&num<=0)&&(negWrap?num=1-num:(num=-num,neg=minusSign));let strNum=String(num);for(;strNum.length0||part>-offset)&&(part+=offset),name===DateType.Hours)0===part&&-12===offset&&(part=12);else if(name===DateType.FractionalSeconds)return function formatFractionalSeconds(milliseconds,digits){return padNumber(milliseconds,3).substring(0,digits)}(part,size);const localeMinus=getLocaleNumberSymbol(locale,NumberSymbol.MinusSign);return padNumber(part,size,localeMinus,trim,negWrap)}}function dateStrGetter(name,width,form=FormStyle.Format,extended=!1){return function(date,locale){return function getDateTranslation(date,locale,name,width,form,extended){switch(name){case TranslationType.Months:return getLocaleMonthNames(locale,form,width)[date.getMonth()];case TranslationType.Days:return getLocaleDayNames(locale,form,width)[date.getDay()];case TranslationType.DayPeriods:const currentHours=date.getHours(),currentMinutes=date.getMinutes();if(extended){const rules=getLocaleExtraDayPeriodRules(locale),dayPeriods=getLocaleExtraDayPeriods(locale,form,width),index=rules.findIndex((rule=>{if(Array.isArray(rule)){const[from,to]=rule,afterFrom=currentHours>=from.hours&¤tMinutes>=from.minutes,beforeTo=currentHours0?Math.floor(zone/60):Math.ceil(zone/60);switch(width){case ZoneWidth.Short:return(zone>=0?"+":"")+padNumber(hours,2,minusSign)+padNumber(Math.abs(zone%60),2,minusSign);case ZoneWidth.ShortGMT:return"GMT"+(zone>=0?"+":"")+padNumber(hours,1,minusSign);case ZoneWidth.Long:return"GMT"+(zone>=0?"+":"")+padNumber(hours,2,minusSign)+":"+padNumber(Math.abs(zone%60),2,minusSign);case ZoneWidth.Extended:return 0===offset?"Z":(zone>=0?"+":"")+padNumber(hours,2,minusSign)+":"+padNumber(Math.abs(zone%60),2,minusSign);default:throw new Error(`Unknown zone width "${width}"`)}}}!function(ZoneWidth){ZoneWidth[ZoneWidth.Short=0]="Short",ZoneWidth[ZoneWidth.ShortGMT=1]="ShortGMT",ZoneWidth[ZoneWidth.Long=2]="Long",ZoneWidth[ZoneWidth.Extended=3]="Extended"}(ZoneWidth||(ZoneWidth={})),function(DateType){DateType[DateType.FullYear=0]="FullYear",DateType[DateType.Month=1]="Month",DateType[DateType.Date=2]="Date",DateType[DateType.Hours=3]="Hours",DateType[DateType.Minutes=4]="Minutes",DateType[DateType.Seconds=5]="Seconds",DateType[DateType.FractionalSeconds=6]="FractionalSeconds",DateType[DateType.Day=7]="Day"}(DateType||(DateType={})),function(TranslationType){TranslationType[TranslationType.DayPeriods=0]="DayPeriods",TranslationType[TranslationType.Days=1]="Days",TranslationType[TranslationType.Months=2]="Months",TranslationType[TranslationType.Eras=3]="Eras"}(TranslationType||(TranslationType={}));const JANUARY=0,THURSDAY=4;function getThursdayThisIsoWeek(datetime){const currentDay=datetime.getDay(),deltaToThursday=0===currentDay?-3:THURSDAY-currentDay;return createDate(datetime.getFullYear(),datetime.getMonth(),datetime.getDate()+deltaToThursday)}function weekGetter(size,monthBased=!1){return function(date,locale){let result;if(monthBased){const nbDaysBefore1stDayOfMonth=new Date(date.getFullYear(),date.getMonth(),1).getDay()-1,today=date.getDate();result=1+Math.floor((today+nbDaysBefore1stDayOfMonth)/7)}else{const thisThurs=getThursdayThisIsoWeek(date),firstThurs=function getFirstThursdayOfYear(year){const firstDayOfYear=createDate(year,JANUARY,1).getDay();return createDate(year,0,1+(firstDayOfYear<=THURSDAY?THURSDAY:THURSDAY+7)-firstDayOfYear)}(thisThurs.getFullYear()),diff=thisThurs.getTime()-firstThurs.getTime();result=1+Math.round(diff/6048e5)}return padNumber(result,size,getLocaleNumberSymbol(locale,NumberSymbol.MinusSign))}}function weekNumberingYearGetter(size,trim=!1){return function(date,locale){return padNumber(getThursdayThisIsoWeek(date).getFullYear(),size,getLocaleNumberSymbol(locale,NumberSymbol.MinusSign),trim)}}const DATE_FORMATS={};function timezoneToOffset(timezone,fallback){timezone=timezone.replace(/:/g,"");const requestedTimezoneOffset=Date.parse("Jan 01, 1970 00:00:00 "+timezone)/6e4;return isNaN(requestedTimezoneOffset)?fallback:requestedTimezoneOffset}function isDate(value){return value instanceof Date&&!isNaN(value.valueOf())}const NUMBER_FORMAT_REGEXP=/^(\d+)?\.((\d+)(-(\d+))?)?$/,MAX_DIGITS=22,DECIMAL_SEP=".",ZERO_CHAR="0",PATTERN_SEP=";",GROUP_SEP=",",DIGIT_CHAR="#",CURRENCY_CHAR="¤",PERCENT_CHAR="%";function formatNumberToLocaleString(value,pattern,locale,groupSymbol,decimalSymbol,digitsInfo,isPercent=!1){let formattedText="",isZero=!1;if(isFinite(value)){let parsedNumber=function parseNumber(num){let digits,integerLen,i,j,zeros,numStr=Math.abs(num)+"",exponent=0;(integerLen=numStr.indexOf(DECIMAL_SEP))>-1&&(numStr=numStr.replace(DECIMAL_SEP,""));(i=numStr.search(/e/i))>0?(integerLen<0&&(integerLen=i),integerLen+=+numStr.slice(i+1),numStr=numStr.substring(0,i)):integerLen<0&&(integerLen=numStr.length);for(i=0;numStr.charAt(i)===ZERO_CHAR;i++);if(i===(zeros=numStr.length))digits=[0],integerLen=1;else{for(zeros--;numStr.charAt(zeros)===ZERO_CHAR;)zeros--;for(integerLen-=i,digits=[],j=0;i<=zeros;i++,j++)digits[j]=Number(numStr.charAt(i))}integerLen>MAX_DIGITS&&(digits=digits.splice(0,MAX_DIGITS-1),exponent=integerLen-1,integerLen=1);return{digits,exponent,integerLen}}(value);isPercent&&(parsedNumber=function toPercent(parsedNumber){if(0===parsedNumber.digits[0])return parsedNumber;const fractionLen=parsedNumber.digits.length-parsedNumber.integerLen;parsedNumber.exponent?parsedNumber.exponent+=2:(0===fractionLen?parsedNumber.digits.push(0,0):1===fractionLen&&parsedNumber.digits.push(0),parsedNumber.integerLen+=2);return parsedNumber}(parsedNumber));let minInt=pattern.minInt,minFraction=pattern.minFrac,maxFraction=pattern.maxFrac;if(digitsInfo){const parts=digitsInfo.match(NUMBER_FORMAT_REGEXP);if(null===parts)throw new Error(`${digitsInfo} is not a valid digit info`);const minIntPart=parts[1],minFractionPart=parts[3],maxFractionPart=parts[5];null!=minIntPart&&(minInt=parseIntAutoRadix(minIntPart)),null!=minFractionPart&&(minFraction=parseIntAutoRadix(minFractionPart)),null!=maxFractionPart?maxFraction=parseIntAutoRadix(maxFractionPart):null!=minFractionPart&&minFraction>maxFraction&&(maxFraction=minFraction)}!function roundNumber(parsedNumber,minFrac,maxFrac){if(minFrac>maxFrac)throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);let digits=parsedNumber.digits,fractionLen=digits.length-parsedNumber.integerLen;const fractionSize=Math.min(Math.max(minFrac,fractionLen),maxFrac);let roundAt=fractionSize+parsedNumber.integerLen,digit=digits[roundAt];if(roundAt>0){digits.splice(Math.max(parsedNumber.integerLen,roundAt));for(let j=roundAt;j=5)if(roundAt-1<0){for(let k=0;k>roundAt;k--)digits.unshift(0),parsedNumber.integerLen++;digits.unshift(1),parsedNumber.integerLen++}else digits[roundAt-1]++;for(;fractionLen=minLen?digits.pop():dropTrailingZeros=!1),d>=10?1:0}),0);carry&&(digits.unshift(carry),parsedNumber.integerLen++)}(parsedNumber,minFraction,maxFraction);let digits=parsedNumber.digits,integerLen=parsedNumber.integerLen;const exponent=parsedNumber.exponent;let decimals=[];for(isZero=digits.every((d=>!d));integerLen0?decimals=digits.splice(integerLen,digits.length):(decimals=digits,digits=[0]);const groups=[];for(digits.length>=pattern.lgSize&&groups.unshift(digits.splice(-pattern.lgSize,digits.length).join(""));digits.length>pattern.gSize;)groups.unshift(digits.splice(-pattern.gSize,digits.length).join(""));digits.length&&groups.unshift(digits.join("")),formattedText=groups.join(getLocaleNumberSymbol(locale,groupSymbol)),decimals.length&&(formattedText+=getLocaleNumberSymbol(locale,decimalSymbol)+decimals.join("")),exponent&&(formattedText+=getLocaleNumberSymbol(locale,NumberSymbol.Exponential)+"+"+exponent)}else formattedText=getLocaleNumberSymbol(locale,NumberSymbol.Infinity);return formattedText=value<0&&!isZero?pattern.negPre+formattedText+pattern.negSuf:pattern.posPre+formattedText+pattern.posSuf,formattedText}function formatCurrency(value,locale,currency,currencyCode,digitsInfo){const pattern=parseNumberFormat(getLocaleNumberFormat(locale,NumberFormatStyle.Currency),getLocaleNumberSymbol(locale,NumberSymbol.MinusSign));pattern.minFrac=getNumberOfCurrencyDigits(currencyCode),pattern.maxFrac=pattern.minFrac;return formatNumberToLocaleString(value,pattern,locale,NumberSymbol.CurrencyGroup,NumberSymbol.CurrencyDecimal,digitsInfo).replace(CURRENCY_CHAR,currency).replace(CURRENCY_CHAR,"").trim()}function formatPercent(value,locale,digitsInfo){return formatNumberToLocaleString(value,parseNumberFormat(getLocaleNumberFormat(locale,NumberFormatStyle.Percent),getLocaleNumberSymbol(locale,NumberSymbol.MinusSign)),locale,NumberSymbol.Group,NumberSymbol.Decimal,digitsInfo,!0).replace(new RegExp(PERCENT_CHAR,"g"),getLocaleNumberSymbol(locale,NumberSymbol.PercentSign))}function formatNumber(value,locale,digitsInfo){return formatNumberToLocaleString(value,parseNumberFormat(getLocaleNumberFormat(locale,NumberFormatStyle.Decimal),getLocaleNumberSymbol(locale,NumberSymbol.MinusSign)),locale,NumberSymbol.Group,NumberSymbol.Decimal,digitsInfo)}function parseNumberFormat(format,minusSign="-"){const p={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},patternParts=format.split(PATTERN_SEP),positive=patternParts[0],negative=patternParts[1],positiveParts=-1!==positive.indexOf(DECIMAL_SEP)?positive.split(DECIMAL_SEP):[positive.substring(0,positive.lastIndexOf(ZERO_CHAR)+1),positive.substring(positive.lastIndexOf(ZERO_CHAR)+1)],integer=positiveParts[0],fraction=positiveParts[1]||"";p.posPre=integer.substring(0,integer.indexOf(DIGIT_CHAR));for(let i=0;i-1)return key;if(key=ngLocalization.getPluralCategory(value,locale),cases.indexOf(key)>-1)return key;if(cases.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${value}"`)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgLocalization,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:locale=>new NgLocaleLocalization(locale),deps:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}],null,null);class NgLocaleLocalization extends NgLocalization{constructor(locale){super(),this.locale=locale}getPluralCategory(value,locale){switch(getLocalePluralCase(locale||this.locale)(value)){case Plural.Zero:return"zero";case Plural.One:return"one";case Plural.Two:return"two";case Plural.Few:return"few";case Plural.Many:return"many";default:return"other"}}static#_=this.ɵfac=function NgLocaleLocalization_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgLocaleLocalization)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID))};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:NgLocaleLocalization,factory:NgLocaleLocalization.ɵfac})}function registerLocaleData(data,localeId,extraData){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵregisterLocaleData"])(data,localeId,extraData)}function parseCookieValue(cookieStr,name){name=encodeURIComponent(name);for(const cookie of cookieStr.split(";")){const eqIndex=cookie.indexOf("="),[cookieName,cookieValue]=-1==eqIndex?[cookie,""]:[cookie.slice(0,eqIndex),cookie.slice(eqIndex+1)];if(cookieName.trim()===name)return decodeURIComponent(cookieValue)}return null}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgLocaleLocalization,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}]),null);const WS_REGEXP=/\s+/,EMPTY_ARRAY=[];class NgClass{constructor(_ngEl,_renderer){this._ngEl=_ngEl,this._renderer=_renderer,this.initialClasses=EMPTY_ARRAY,this.stateMap=new Map}set klass(value){this.initialClasses=null!=value?value.trim().split(WS_REGEXP):EMPTY_ARRAY}set ngClass(value){this.rawClass="string"==typeof value?value.trim().split(WS_REGEXP):value}ngDoCheck(){for(const klass of this.initialClasses)this._updateState(klass,!0);const rawClass=this.rawClass;if(Array.isArray(rawClass)||rawClass instanceof Set)for(const klass of rawClass)this._updateState(klass,!0);else if(null!=rawClass)for(const klass of Object.keys(rawClass))this._updateState(klass,Boolean(rawClass[klass]));this._applyStateDiff()}_updateState(klass,nextEnabled){const state=this.stateMap.get(klass);void 0!==state?(state.enabled!==nextEnabled&&(state.changed=!0,state.enabled=nextEnabled),state.touched=!0):this.stateMap.set(klass,{enabled:nextEnabled,changed:!0,touched:!0})}_applyStateDiff(){for(const stateEntry of this.stateMap){const klass=stateEntry[0],state=stateEntry[1];state.changed?(this._toggleClass(klass,state.enabled),state.changed=!1):state.touched||(state.enabled&&this._toggleClass(klass,!1),this.stateMap.delete(klass)),state.touched=!1}}_toggleClass(klass,enabled){if(ngDevMode&&"string"!=typeof klass)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵstringify"])(klass)}`);(klass=klass.trim()).length>0&&klass.split(WS_REGEXP).forEach((klass=>{enabled?this._renderer.addClass(this._ngEl.nativeElement,klass):this._renderer.removeClass(this._ngEl.nativeElement,klass)}))}static#_=this.ɵfac=function NgClass_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgClass)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgClass,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"},standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgClass,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngClass]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2}]),{klass:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["class"]}],ngClass:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngClass"]}]});class NgComponentOutlet{constructor(_viewContainerRef){this._viewContainerRef=_viewContainerRef,this.ngComponentOutlet=null,this._inputsUsed=new Map}_needToReCreateNgModuleInstance(changes){return void 0!==changes.ngComponentOutletNgModule||void 0!==changes.ngComponentOutletNgModuleFactory}_needToReCreateComponentInstance(changes){return void 0!==changes.ngComponentOutlet||void 0!==changes.ngComponentOutletContent||void 0!==changes.ngComponentOutletInjector||this._needToReCreateNgModuleInstance(changes)}ngOnChanges(changes){if(this._needToReCreateComponentInstance(changes)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){const injector=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(changes)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.createNgModule)(this.ngComponentOutletNgModule,getParentInjector(injector)):this.ngComponentOutletNgModuleFactory?this._moduleRef=this.ngComponentOutletNgModuleFactory.create(getParentInjector(injector)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(const inputName of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(inputName,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(componentRef){for(const[inputName,touched]of this._inputsUsed)touched?(componentRef.setInput(inputName,this.ngComponentOutletInputs[inputName]),this._inputsUsed.set(inputName,!1)):(componentRef.setInput(inputName,void 0),this._inputsUsed.delete(inputName))}static#_=this.ɵfac=function NgComponentOutlet_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgComponentOutlet)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgComponentOutlet,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},standalone:!0,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}function getParentInjector(injector){return injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModuleRef).injector}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgComponentOutlet,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngComponentOutlet]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef}]),{ngComponentOutlet:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletInputs:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletInjector:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletContent:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletNgModule:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletNgModuleFactory:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgForOfContext{constructor($implicit,ngForOf,index,count){this.$implicit=$implicit,this.ngForOf=ngForOf,this.index=index,this.count=count}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}class NgForOf{set ngForOf(ngForOf){this._ngForOf=ngForOf,this._ngForOfDirty=!0}set ngForTrackBy(fn){"undefined"!=typeof ngDevMode&&!ngDevMode||null==fn||"function"==typeof fn||console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. See https://angular.io/api/common/NgForOf#change-propagation for more information.`),this._trackByFn=fn}get ngForTrackBy(){return this._trackByFn}constructor(_viewContainer,_template,_differs){this._viewContainer=_viewContainer,this._template=_template,this._differs=_differs,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(value){value&&(this._template=value)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const value=this._ngForOf;if(!this._differ&&value)if("undefined"==typeof ngDevMode||ngDevMode)try{this._differ=this._differs.find(value).create(this.ngForTrackBy)}catch{let errorMessage=`Cannot find a differ supporting object '${value}' of type '${function getTypeName(type){return type.name||typeof type}(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;throw"object"==typeof value&&(errorMessage+=" Did you mean to use the keyvalue pipe?"),new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](-2200,errorMessage)}else this._differ=this._differs.find(value).create(this.ngForTrackBy)}if(this._differ){const changes=this._differ.diff(this._ngForOf);changes&&this._applyChanges(changes)}}_applyChanges(changes){const viewContainer=this._viewContainer;changes.forEachOperation(((item,adjustedPreviousIndex,currentIndex)=>{if(null==item.previousIndex)viewContainer.createEmbeddedView(this._template,new NgForOfContext(item.item,this._ngForOf,-1,-1),null===currentIndex?void 0:currentIndex);else if(null==currentIndex)viewContainer.remove(null===adjustedPreviousIndex?void 0:adjustedPreviousIndex);else if(null!==adjustedPreviousIndex){const view=viewContainer.get(adjustedPreviousIndex);viewContainer.move(view,currentIndex),applyViewChange(view,item)}}));for(let i=0,ilen=viewContainer.length;i{applyViewChange(viewContainer.get(record.currentIndex),record)}))}static ngTemplateContextGuard(dir,ctx){return!0}static#_=this.ɵfac=function NgForOf_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgForOf)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.IterableDiffers))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgForOf,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}function applyViewChange(view,record){view.context.$implicit=record.item}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgForOf,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngFor][ngForOf]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.IterableDiffers}]),{ngForOf:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngForTrackBy:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngForTemplate:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgIf{constructor(_viewContainer,templateRef){this._viewContainer=_viewContainer,this._context=new NgIfContext,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=templateRef}set ngIf(condition){this._context.$implicit=this._context.ngIf=condition,this._updateView()}set ngIfThen(templateRef){assertTemplate("ngIfThen",templateRef),this._thenTemplateRef=templateRef,this._thenViewRef=null,this._updateView()}set ngIfElse(templateRef){assertTemplate("ngIfElse",templateRef),this._elseTemplateRef=templateRef,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(dir,ctx){return!0}static#_=this.ɵfac=function NgIf_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgIf)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgIf,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgIf,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngIf]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef}]),{ngIf:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngIfThen:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngIfElse:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgIfContext{constructor(){this.$implicit=null,this.ngIf=null}}function assertTemplate(property,templateRef){if(!!(templateRef&&!templateRef.createEmbeddedView))throw new Error(`${property} must be a TemplateRef, but received '${(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵstringify"])(templateRef)}'.`)}class SwitchView{constructor(_viewContainerRef,_templateRef){this._viewContainerRef=_viewContainerRef,this._templateRef=_templateRef,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(created){created&&!this._created?this.create():!created&&this._created&&this.destroy()}}class NgSwitch{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(newValue){this._ngSwitch=newValue,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(view){this._defaultViews.push(view)}_matchCase(value){const matched=value===this._ngSwitch;return this._lastCasesMatched||=matched,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),matched}_updateDefaultCases(useDefault){if(this._defaultViews.length>0&&useDefault!==this._defaultUsed){this._defaultUsed=useDefault;for(const defaultView of this._defaultViews)defaultView.enforceState(useDefault)}}static#_=this.ɵfac=function NgSwitch_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgSwitch)};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgSwitch,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgSwitch,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngSwitch]",standalone:!0}]}],null,{ngSwitch:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgSwitchCase{constructor(viewContainer,templateRef,ngSwitch){this.ngSwitch=ngSwitch,"undefined"!=typeof ngDevMode&&!ngDevMode||ngSwitch||throwNgSwitchProviderNotFoundError("ngSwitchCase","NgSwitchCase"),ngSwitch._addCase(),this._view=new SwitchView(viewContainer,templateRef)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#_=this.ɵfac=function NgSwitchCase_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgSwitchCase)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgSwitch,9))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgSwitchCase,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgSwitchCase,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngSwitchCase]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:NgSwitch,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),{ngSwitchCase:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgSwitchDefault{constructor(viewContainer,templateRef,ngSwitch){"undefined"!=typeof ngDevMode&&!ngDevMode||ngSwitch||throwNgSwitchProviderNotFoundError("ngSwitchDefault","NgSwitchDefault"),ngSwitch._addDefault(new SwitchView(viewContainer,templateRef))}static#_=this.ɵfac=function NgSwitchDefault_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgSwitchDefault)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgSwitch,9))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgSwitchDefault,selectors:[["","ngSwitchDefault",""]],standalone:!0})}function throwNgSwitchProviderNotFoundError(attrName,directiveName){throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2e3,`An element with the "${attrName}" attribute (matching the "${directiveName}" directive) must be located inside an element with the "ngSwitch" attribute (matching "NgSwitch" directive)`)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgSwitchDefault,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngSwitchDefault]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:NgSwitch,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),null);class NgPlural{constructor(_localization){this._localization=_localization,this._caseViews={}}set ngPlural(value){this._updateView(value)}addCase(value,switchView){this._caseViews[value]=switchView}_updateView(switchValue){this._clearViews();const key=getPluralCategory(switchValue,Object.keys(this._caseViews),this._localization);this._activateView(this._caseViews[key])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(view){view&&(this._activeView=view,this._activeView.create())}static#_=this.ɵfac=function NgPlural_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgPlural)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgLocalization))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgPlural,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgPlural,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngPlural]",standalone:!0}]}],(()=>[{type:NgLocalization}]),{ngPlural:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgPluralCase{constructor(value,template,viewContainer,ngPlural){this.value=value;const isANumber=!isNaN(Number(value));ngPlural.addCase(isANumber?`=${value}`:value,new SwitchView(viewContainer,template))}static#_=this.ɵfac=function NgPluralCase_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgPluralCase)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinjectAttribute"]("ngPluralCase"),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgPlural,1))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgPluralCase,selectors:[["","ngPluralCase",""]],standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgPluralCase,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngPluralCase]",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Attribute,args:["ngPluralCase"]}]},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:NgPlural,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),null);class NgStyle{constructor(_ngEl,_differs,_renderer){this._ngEl=_ngEl,this._differs=_differs,this._renderer=_renderer,this._ngStyle=null,this._differ=null}set ngStyle(values){this._ngStyle=values,!this._differ&&values&&(this._differ=this._differs.find(values).create())}ngDoCheck(){if(this._differ){const changes=this._differ.diff(this._ngStyle);changes&&this._applyChanges(changes)}}_setStyle(nameAndUnit,value){const[name,unit]=nameAndUnit.split("."),flags=-1===name.indexOf("-")?void 0:_angular_core__WEBPACK_IMPORTED_MODULE_0__.RendererStyleFlags2.DashCase;null!=value?this._renderer.setStyle(this._ngEl.nativeElement,name,unit?`${value}${unit}`:value,flags):this._renderer.removeStyle(this._ngEl.nativeElement,name,flags)}_applyChanges(changes){changes.forEachRemovedItem((record=>this._setStyle(record.key,null))),changes.forEachAddedItem((record=>this._setStyle(record.key,record.currentValue))),changes.forEachChangedItem((record=>this._setStyle(record.key,record.currentValue)))}static#_=this.ɵfac=function NgStyle_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgStyle)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgStyle,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgStyle,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngStyle]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2}]),{ngStyle:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngStyle"]}]});class NgTemplateOutlet{constructor(_viewContainerRef){this._viewContainerRef=_viewContainerRef,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(changes){if(this._shouldRecreateView(changes)){const viewContainerRef=this._viewContainerRef;if(this._viewRef&&viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const viewContext=this._createContextForwardProxy();this._viewRef=viewContainerRef.createEmbeddedView(this.ngTemplateOutlet,viewContext,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(changes){return!!changes.ngTemplateOutlet||!!changes.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(_target,prop,newValue)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,prop,newValue),get:(_target,prop,receiver)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,prop,receiver)}})}static#_=this.ɵfac=function NgTemplateOutlet_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgTemplateOutlet)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef))};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgTemplateOutlet,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgTemplateOutlet,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngTemplateOutlet]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef}]),{ngTemplateOutletContext:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngTemplateOutlet:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngTemplateOutletInjector:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const COMMON_DIRECTIVES=[NgClass,NgComponentOutlet,NgForOf,NgIf,NgTemplateOutlet,NgStyle,NgSwitch,NgSwitchCase,NgSwitchDefault,NgPlural,NgPluralCase];function invalidPipeArgumentError(type,value){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2100,ngDevMode&&`InvalidPipeArgument: '${value}' for pipe '${(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵstringify"])(type)}'`)}const _promiseStrategy=new class PromiseStrategy{createSubscription(async,updateLatestValue){return async.then(updateLatestValue,(e=>{throw e}))}dispose(subscription){}},_subscribableStrategy=new class SubscribableStrategy{createSubscription(async,updateLatestValue){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)((()=>async.subscribe({next:updateLatestValue,error:e=>{throw e}})))}dispose(subscription){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)((()=>subscription.unsubscribe()))}};class AsyncPipe{constructor(ref){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=ref}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(obj){if(!this._obj){if(obj)try{this.markForCheckOnValueUpdate=!1,this._subscribe(obj)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return obj!==this._obj?(this._dispose(),this.transform(obj)):this._latestValue}_subscribe(obj){this._obj=obj,this._strategy=this._selectStrategy(obj),this._subscription=this._strategy.createSubscription(obj,(value=>this._updateLatestValue(obj,value)))}_selectStrategy(obj){if((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵisPromise"])(obj))return _promiseStrategy;if((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵisSubscribable"])(obj))return _subscribableStrategy;throw invalidPipeArgumentError(AsyncPipe,obj)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(async,value){async===this._obj&&(this._latestValue=value,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#_=this.ɵfac=function AsyncPipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||AsyncPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef,16))};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"async",type:AsyncPipe,pure:!1,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AsyncPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"async",pure:!1,standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef}]),null);class LowerCasePipe{transform(value){if(null==value)return null;if("string"!=typeof value)throw invalidPipeArgumentError(LowerCasePipe,value);return value.toLowerCase()}static#_=this.ɵfac=function LowerCasePipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||LowerCasePipe)};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"lowercase",type:LowerCasePipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LowerCasePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"lowercase",standalone:!0}]}],null,null);const unicodeWordMatch=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;class TitleCasePipe{transform(value){if(null==value)return null;if("string"!=typeof value)throw invalidPipeArgumentError(TitleCasePipe,value);return value.replace(unicodeWordMatch,(txt=>txt[0].toUpperCase()+txt.slice(1).toLowerCase()))}static#_=this.ɵfac=function TitleCasePipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||TitleCasePipe)};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"titlecase",type:TitleCasePipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](TitleCasePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"titlecase",standalone:!0}]}],null,null);class UpperCasePipe{transform(value){if(null==value)return null;if("string"!=typeof value)throw invalidPipeArgumentError(UpperCasePipe,value);return value.toUpperCase()}static#_=this.ɵfac=function UpperCasePipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||UpperCasePipe)};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"uppercase",type:UpperCasePipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](UpperCasePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"uppercase",standalone:!0}]}],null,null);const DATE_PIPE_DEFAULT_TIMEZONE=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"DATE_PIPE_DEFAULT_TIMEZONE":""),DATE_PIPE_DEFAULT_OPTIONS=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"DATE_PIPE_DEFAULT_OPTIONS":"");class DatePipe{constructor(locale,defaultTimezone,defaultOptions){this.locale=locale,this.defaultTimezone=defaultTimezone,this.defaultOptions=defaultOptions}transform(value,format,timezone,locale){if(null==value||""===value||value!=value)return null;try{const _format=format??this.defaultOptions?.dateFormat??"mediumDate",_timezone=timezone??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return formatDate(value,_format,locale||this.locale,_timezone)}catch(error){throw invalidPipeArgumentError(DatePipe,error.message)}}static#_=this.ɵfac=function DatePipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||DatePipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](DATE_PIPE_DEFAULT_TIMEZONE,24),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](DATE_PIPE_DEFAULT_OPTIONS,24))};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"date",type:DatePipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DatePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"date",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[DATE_PIPE_DEFAULT_TIMEZONE]},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[DATE_PIPE_DEFAULT_OPTIONS]},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional}]}]),null);const _INTERPOLATION_REGEXP=/#/g;class I18nPluralPipe{constructor(_localization){this._localization=_localization}transform(value,pluralMap,locale){if(null==value)return"";if("object"!=typeof pluralMap||null===pluralMap)throw invalidPipeArgumentError(I18nPluralPipe,pluralMap);return pluralMap[getPluralCategory(value,Object.keys(pluralMap),this._localization,locale)].replace(_INTERPOLATION_REGEXP,value.toString())}static#_=this.ɵfac=function I18nPluralPipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||I18nPluralPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgLocalization,16))};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"i18nPlural",type:I18nPluralPipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](I18nPluralPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"i18nPlural",standalone:!0}]}],(()=>[{type:NgLocalization}]),null);class I18nSelectPipe{transform(value,mapping){if(null==value)return"";if("object"!=typeof mapping||"string"!=typeof value)throw invalidPipeArgumentError(I18nSelectPipe,mapping);return mapping.hasOwnProperty(value)?mapping[value]:mapping.hasOwnProperty("other")?mapping.other:""}static#_=this.ɵfac=function I18nSelectPipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||I18nSelectPipe)};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"i18nSelect",type:I18nSelectPipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](I18nSelectPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"i18nSelect",standalone:!0}]}],null,null);class JsonPipe{transform(value){return JSON.stringify(value,null,2)}static#_=this.ɵfac=function JsonPipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||JsonPipe)};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"json",type:JsonPipe,pure:!1,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](JsonPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"json",pure:!1,standalone:!0}]}],null,null);class KeyValuePipe{constructor(differs){this.differs=differs,this.keyValues=[],this.compareFn=defaultComparator}transform(input,compareFn=defaultComparator){if(!input||!(input instanceof Map)&&"object"!=typeof input)return null;this.differ??=this.differs.find(input).create();const differChanges=this.differ.diff(input),compareFnChanged=compareFn!==this.compareFn;return differChanges&&(this.keyValues=[],differChanges.forEachItem((r=>{this.keyValues.push(function makeKeyValuePair(key,value){return{key,value}}(r.key,r.currentValue))}))),(differChanges||compareFnChanged)&&(this.keyValues.sort(compareFn),this.compareFn=compareFn),this.keyValues}static#_=this.ɵfac=function KeyValuePipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||KeyValuePipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers,16))};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"keyvalue",type:KeyValuePipe,pure:!1,standalone:!0})}function defaultComparator(keyValueA,keyValueB){const a=keyValueA.key,b=keyValueB.key;if(a===b)return 0;if(void 0===a)return 1;if(void 0===b)return-1;if(null===a)return 1;if(null===b)return-1;if("string"==typeof a&&"string"==typeof b)return a[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers}]),null);class DecimalPipe{constructor(_locale){this._locale=_locale}transform(value,digitsInfo,locale){if(!isValue(value))return null;locale||=this._locale;try{return formatNumber(strToNumber(value),locale,digitsInfo)}catch(error){throw invalidPipeArgumentError(DecimalPipe,error.message)}}static#_=this.ɵfac=function DecimalPipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||DecimalPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16))};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"number",type:DecimalPipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DecimalPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"number",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}]),null);class PercentPipe{constructor(_locale){this._locale=_locale}transform(value,digitsInfo,locale){if(!isValue(value))return null;locale||=this._locale;try{return formatPercent(strToNumber(value),locale,digitsInfo)}catch(error){throw invalidPipeArgumentError(PercentPipe,error.message)}}static#_=this.ɵfac=function PercentPipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||PercentPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16))};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"percent",type:PercentPipe,pure:!0,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PercentPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"percent",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}]),null);class CurrencyPipe{constructor(_locale,_defaultCurrencyCode="USD"){this._locale=_locale,this._defaultCurrencyCode=_defaultCurrencyCode}transform(value,currencyCode=this._defaultCurrencyCode,display="symbol",digitsInfo,locale){if(!isValue(value))return null;locale||=this._locale,"boolean"==typeof display&&(("undefined"==typeof ngDevMode||ngDevMode)&&console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'),display=display?"symbol":"code");let currency=currencyCode||this._defaultCurrencyCode;"code"!==display&&(currency="symbol"===display||"symbol-narrow"===display?getCurrencySymbol(currency,"symbol"===display?"wide":"narrow",locale):display);try{return formatCurrency(strToNumber(value),locale,currency,currencyCode,digitsInfo)}catch(error){throw invalidPipeArgumentError(CurrencyPipe,error.message)}}static#_=this.ɵfac=function CurrencyPipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||CurrencyPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_CURRENCY_CODE,16))};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"currency",type:CurrencyPipe,pure:!0,standalone:!0})}function isValue(value){return!(null==value||""===value||value!=value)}function strToNumber(value){if("string"==typeof value&&!isNaN(Number(value)-parseFloat(value)))return Number(value);if("number"!=typeof value)throw new Error(`${value} is not a number`);return value}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](CurrencyPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"currency",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_CURRENCY_CODE]}]}]),null);class SlicePipe{transform(value,start,end){if(null==value)return null;if(!this.supports(value))throw invalidPipeArgumentError(SlicePipe,value);return value.slice(start,end)}supports(obj){return"string"==typeof obj||Array.isArray(obj)}static#_=this.ɵfac=function SlicePipe_Factory(__ngFactoryType__){return new(__ngFactoryType__||SlicePipe)};static#_2=this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"slice",type:SlicePipe,pure:!1,standalone:!0})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](SlicePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"slice",pure:!1,standalone:!0}]}],null,null);const COMMON_PIPES=[AsyncPipe,UpperCasePipe,LowerCasePipe,JsonPipe,SlicePipe,DecimalPipe,PercentPipe,TitleCasePipe,CurrencyPipe,DatePipe,I18nPluralPipe,I18nSelectPipe,KeyValuePipe];class CommonModule{static#_=this.ɵfac=function CommonModule_Factory(__ngFactoryType__){return new(__ngFactoryType__||CommonModule)};static#_2=this.ɵmod=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({type:CommonModule,imports:[NgClass,NgComponentOutlet,NgForOf,NgIf,NgTemplateOutlet,NgStyle,NgSwitch,NgSwitchCase,NgSwitchDefault,NgPlural,NgPluralCase,AsyncPipe,UpperCasePipe,LowerCasePipe,JsonPipe,SlicePipe,DecimalPipe,PercentPipe,TitleCasePipe,CurrencyPipe,DatePipe,I18nPluralPipe,I18nSelectPipe,KeyValuePipe],exports:[NgClass,NgComponentOutlet,NgForOf,NgIf,NgTemplateOutlet,NgStyle,NgSwitch,NgSwitchCase,NgSwitchDefault,NgPlural,NgPluralCase,AsyncPipe,UpperCasePipe,LowerCasePipe,JsonPipe,SlicePipe,DecimalPipe,PercentPipe,TitleCasePipe,CurrencyPipe,DatePipe,I18nPluralPipe,I18nSelectPipe,KeyValuePipe]});static#_3=this.ɵinj=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](CommonModule,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModule,args:[{imports:[COMMON_DIRECTIVES,COMMON_PIPES],exports:[COMMON_DIRECTIVES,COMMON_PIPES]}]}],null,null);const PLATFORM_BROWSER_ID="browser",PLATFORM_SERVER_ID="server";function isPlatformBrowser(platformId){return platformId===PLATFORM_BROWSER_ID}function isPlatformServer(platformId){return platformId===PLATFORM_SERVER_ID}const VERSION=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.Version("18.2.3");class ViewportScroller{static#_=this.ɵprov=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({token:ViewportScroller,providedIn:"root",factory:()=>isPlatformBrowser((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID))?new BrowserViewportScroller((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT),window):new NullViewportScroller})}class BrowserViewportScroller{constructor(document,window){this.document=document,this.window=window,this.offset=()=>[0,0]}setOffset(offset){Array.isArray(offset)?this.offset=()=>offset:this.offset=offset}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(position){this.window.scrollTo(position[0],position[1])}scrollToAnchor(target){const elSelected=function findAnchorFromDocument(document,target){const documentResult=document.getElementById(target)||document.getElementsByName(target)[0];if(documentResult)return documentResult;if("function"==typeof document.createTreeWalker&&document.body&&"function"==typeof document.body.attachShadow){const treeWalker=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT);let currentNode=treeWalker.currentNode;for(;currentNode;){const shadowRoot=currentNode.shadowRoot;if(shadowRoot){const result=shadowRoot.getElementById(target)||shadowRoot.querySelector(`[name="${target}"]`);if(result)return result}currentNode=treeWalker.nextNode()}}return null}(this.document,target);elSelected&&(this.scrollToElement(elSelected),elSelected.focus())}setHistoryScrollRestoration(scrollRestoration){this.window.history.scrollRestoration=scrollRestoration}scrollToElement(el){const rect=el.getBoundingClientRect(),left=rect.left+this.window.pageXOffset,top=rect.top+this.window.pageYOffset,offset=this.offset();this.window.scrollTo(left-offset[0],top-offset[1])}}class NullViewportScroller{setOffset(offset){}getScrollPosition(){return[0,0]}scrollToPosition(position){}scrollToAnchor(anchor){}setHistoryScrollRestoration(scrollRestoration){}}class XhrFactory{}const PLACEHOLDER_QUALITY="20";function getUrl(src,win){return isAbsoluteUrl(src)?new URL(src):new URL(src,win.location.href)}function isAbsoluteUrl(src){return/^https?:\/\//.test(src)}function extractHostname(url){return isAbsoluteUrl(url)?new URL(url).hostname:url}function isValidPath(path){if(!("string"==typeof path)||""===path.trim())return!1;try{new URL(path);return!0}catch{return!1}}const noopImageLoader=config=>config.src,IMAGE_LOADER=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"ImageLoader":"",{providedIn:"root",factory:()=>noopImageLoader});function createImageLoader(buildUrlFn,exampleUrls){return function provideImageLoader(path){isValidPath(path)||function throwInvalidPathError(path,exampleUrls){throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2959,ngDevMode&&`Image loader has detected an invalid path (\`${path}\`). To fix this, supply a path using one of the following formats: ${exampleUrls.join(" or ")}`)}(path,exampleUrls||[]),path=function normalizePath(path){return path.endsWith("/")?path.slice(0,-1):path}(path);return[{provide:IMAGE_LOADER,useValue:config=>{return isAbsoluteUrl(config.src)&&function throwUnexpectedAbsoluteUrlError(path,url){throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2959,ngDevMode&&`Image loader has detected a \`\` tag with an invalid \`ngSrc\` attribute: ${url}. This image loader expects \`ngSrc\` to be a relative URL - however the provided value is an absolute URL. To fix this, provide \`ngSrc\` as a path relative to the base URL configured for this loader (\`${path}\`).`)}(path,config.src),buildUrlFn(path,{...config,src:(src=config.src,src.startsWith("/")?src.slice(1):src)});var src}}]}}const provideCloudflareLoader=createImageLoader((function createCloudflareUrl(path,config){let params="format=auto";config.width&&(params+=`,width=${config.width}`);config.isPlaceholder&&(params+=`,quality=${PLACEHOLDER_QUALITY}`);return`${path}/cdn-cgi/image/${params}/${config.src}`}),ngDevMode?["https:///cdn-cgi/image//"]:void 0);const cloudinaryLoaderInfo={name:"Cloudinary",testUrl:function isCloudinaryUrl(url){return CLOUDINARY_LOADER_REGEX.test(url)}},CLOUDINARY_LOADER_REGEX=/https?\:\/\/[^\/]+\.cloudinary\.com\/.+/;const provideCloudinaryLoader=createImageLoader((function createCloudinaryUrl(path,config){let params="f_auto,"+(config.isPlaceholder?"q_auto:low":"q_auto");config.width&&(params+=`,w_${config.width}`);return`${path}/image/upload/${params}/${config.src}`}),ngDevMode?["https://res.cloudinary.com/mysite","https://mysite.cloudinary.com","https://subdomain.mysite.com"]:void 0);const imageKitLoaderInfo={name:"ImageKit",testUrl:function isImageKitUrl(url){return IMAGE_KIT_LOADER_REGEX.test(url)}},IMAGE_KIT_LOADER_REGEX=/https?\:\/\/[^\/]+\.imagekit\.io\/.+/;const provideImageKitLoader=createImageLoader((function createImagekitUrl(path,config){const{src,width}=config,params=[];width&¶ms.push(`w-${width}`);config.isPlaceholder&¶ms.push(`q-${PLACEHOLDER_QUALITY}`);const urlSegments=params.length?[path,`tr:${params.join(",")}`,src]:[path,src];return new URL(urlSegments.join("/")).href}),ngDevMode?["https://ik.imagekit.io/mysite","https://subdomain.mysite.com"]:void 0);const imgixLoaderInfo={name:"Imgix",testUrl:function isImgixUrl(url){return IMGIX_LOADER_REGEX.test(url)}},IMGIX_LOADER_REGEX=/https?\:\/\/[^\/]+\.imgix\.net\/.+/;const provideImgixLoader=createImageLoader((function createImgixUrl(path,config){const url=new URL(`${path}/${config.src}`);url.searchParams.set("auto","format"),config.width&&url.searchParams.set("w",config.width.toString());config.isPlaceholder&&url.searchParams.set("q",PLACEHOLDER_QUALITY);return url.href}),ngDevMode?["https://somepath.imgix.net/"]:void 0);const netlifyLoaderInfo={name:"Netlify",testUrl:function isNetlifyUrl(url){return NETLIFY_LOADER_REGEX.test(url)}},NETLIFY_LOADER_REGEX=/https?\:\/\/[^\/]+\.netlify\.app\/.+/;function provideNetlifyLoader(path){if(path&&!isValidPath(path))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2959,ngDevMode&&`Image loader has detected an invalid path (\`${path}\`). To fix this, supply either the full URL to the Netlify site, or leave it empty to use the current site.`);if(path){const url=new URL(path);path=url.origin}const providers=[{provide:IMAGE_LOADER,useValue:config=>function createNetlifyUrl(config,path){const url=new URL(path??"https://a/");url.pathname="/.netlify/images",isAbsoluteUrl(config.src)||config.src.startsWith("/")||(config.src="/"+config.src);url.searchParams.set("url",config.src),config.width&&url.searchParams.set("w",config.width.toString());const configQuality=config.loaderParams?.quality??config.loaderParams?.q;config.isPlaceholder&&!configQuality&&url.searchParams.set("q",PLACEHOLDER_QUALITY);for(const[param,value]of Object.entries(config.loaderParams??{}))validParams.has(param)?url.searchParams.set(validParams.get(param),value.toString()):ngDevMode&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2959,`The Netlify image loader has detected an \`\` tag with the unsupported attribute "\`${param}\`".`));return"a"===url.hostname?url.href.replace(url.origin,""):url.href}(config,path)}];return providers}const validParams=new Map([["height","h"],["fit","fit"],["quality","q"],["q","q"],["position","position"]]);function imgDirectiveDetails(ngSrc,includeNgSrc=!0){return`The NgOptimizedImage directive ${includeNgSrc?`(activated on an element with the \`ngSrc="${ngSrc}"\`) `:""}has detected that`}function assertDevMode(checkName){if(!ngDevMode)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2958,`Unexpected invocation of the ${checkName} in the prod mode. Please make sure that the prod mode is enabled for production builds.`)}class LCPImageObserver{constructor(){this.images=new Map,this.window=null,this.observer=null;const isBrowser=isPlatformBrowser((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID));assertDevMode("LCP checker");const win=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT).defaultView;isBrowser&&"undefined"!=typeof PerformanceObserver&&(this.window=win,this.observer=this.initPerformanceObserver())}initPerformanceObserver(){const observer=new PerformanceObserver((entryList=>{const entries=entryList.getEntries();if(0===entries.length)return;const lcpElement=entries[entries.length-1],imgSrc=lcpElement.element?.src??"";if(imgSrc.startsWith("data:")||imgSrc.startsWith("blob:"))return;const img=this.images.get(imgSrc);img&&(img.priority||img.alreadyWarnedPriority||(img.alreadyWarnedPriority=!0,function logMissingPriorityError(ngSrc){const directiveDetails=imgDirectiveDetails(ngSrc);console.error((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2955,`${directiveDetails} this image is the Largest Contentful Paint (LCP) element but was not marked "priority". This image should be marked "priority" in order to prioritize its loading. To fix this, add the "priority" attribute.`))}(imgSrc)),img.modified&&!img.alreadyWarnedModified&&(img.alreadyWarnedModified=!0,function logModifiedWarning(ngSrc){const directiveDetails=imgDirectiveDetails(ngSrc);console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2964,`${directiveDetails} this image is the Largest Contentful Paint (LCP) element and has had its "ngSrc" attribute modified. This can cause slower loading performance. It is recommended not to modify the "ngSrc" property on any image which could be the LCP element.`))}(imgSrc)))}));return observer.observe({type:"largest-contentful-paint",buffered:!0}),observer}registerImage(rewrittenSrc,originalNgSrc,isPriority){if(!this.observer)return;const newObservedImageState={priority:isPriority,modified:!1,alreadyWarnedModified:!1,alreadyWarnedPriority:!1};this.images.set(getUrl(rewrittenSrc,this.window).href,newObservedImageState)}unregisterImage(rewrittenSrc){this.observer&&this.images.delete(getUrl(rewrittenSrc,this.window).href)}updateImage(originalSrc,newSrc){if(!this.observer)return;const originalUrl=getUrl(originalSrc,this.window).href,img=this.images.get(originalUrl);img&&(img.modified=!0,this.images.set(getUrl(newSrc,this.window).href,img),this.images.delete(originalUrl))}ngOnDestroy(){this.observer&&(this.observer.disconnect(),this.images.clear())}static#_=this.ɵfac=function LCPImageObserver_Factory(__ngFactoryType__){return new(__ngFactoryType__||LCPImageObserver)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:LCPImageObserver,factory:LCPImageObserver.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LCPImageObserver,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],(()=>[]),null);const INTERNAL_PRECONNECT_CHECK_BLOCKLIST=new Set(["localhost","127.0.0.1","0.0.0.0"]),PRECONNECT_CHECK_BLOCKLIST=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"PRECONNECT_CHECK_BLOCKLIST":"");class PreconnectLinkChecker{constructor(){this.document=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT),this.isServer=isPlatformServer((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID)),this.preconnectLinks=null,this.alreadySeen=new Set,this.window=null,this.blocklist=new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST),assertDevMode("preconnect link checker");const win=this.document.defaultView;void 0!==win&&(this.window=win);const blocklist=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PRECONNECT_CHECK_BLOCKLIST,{optional:!0});blocklist&&this.populateBlocklist(blocklist)}populateBlocklist(origins){Array.isArray(origins)?deepForEach(origins,(origin=>{this.blocklist.add(extractHostname(origin))})):this.blocklist.add(extractHostname(origins))}assertPreconnect(rewrittenSrc,originalNgSrc){if(this.isServer)return;const imgUrl=getUrl(rewrittenSrc,this.window);this.blocklist.has(imgUrl.hostname)||this.alreadySeen.has(imgUrl.origin)||(this.alreadySeen.add(imgUrl.origin),this.preconnectLinks??=this.queryPreconnectLinks(),this.preconnectLinks.has(imgUrl.origin)||console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2956,`${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this image. Preconnecting to the origin(s) that serve priority images ensures that these images are delivered as soon as possible. To fix this, please add the following element into the of the document:\n `)))}queryPreconnectLinks(){const preconnectUrls=new Set,links=Array.from(this.document.querySelectorAll("link[rel=preconnect]"));for(let link of links){const url=getUrl(link.href,this.window);preconnectUrls.add(url.origin)}return preconnectUrls}ngOnDestroy(){this.preconnectLinks?.clear(),this.alreadySeen.clear()}static#_=this.ɵfac=function PreconnectLinkChecker_Factory(__ngFactoryType__){return new(__ngFactoryType__||PreconnectLinkChecker)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PreconnectLinkChecker,factory:PreconnectLinkChecker.ɵfac,providedIn:"root"})}function deepForEach(input,fn){for(let value of input)Array.isArray(value)?deepForEach(value,fn):fn(value)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PreconnectLinkChecker,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],(()=>[]),null);const PRELOADED_IMAGES=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken("NG_OPTIMIZED_PRELOADED_IMAGES",{providedIn:"root",factory:()=>new Set});class PreloadLinkCreator{constructor(){this.preloadedImages=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PRELOADED_IMAGES),this.document=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT)}createPreloadLinkTag(renderer,src,srcset,sizes){if(ngDevMode&&this.preloadedImages.size>=5)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2961,ngDevMode&&'The `NgOptimizedImage` directive has detected that more than 5 images were marked as priority. This might negatively affect an overall performance of the page. To fix this, remove the "priority" attribute from images with less priority.');if(this.preloadedImages.has(src))return;this.preloadedImages.add(src);const preload=renderer.createElement("link");renderer.setAttribute(preload,"as","image"),renderer.setAttribute(preload,"href",src),renderer.setAttribute(preload,"rel","preload"),renderer.setAttribute(preload,"fetchpriority","high"),sizes&&renderer.setAttribute(preload,"imageSizes",sizes),srcset&&renderer.setAttribute(preload,"imageSrcset",srcset),renderer.appendChild(this.document.head,preload)}static#_=this.ɵfac=function PreloadLinkCreator_Factory(__ngFactoryType__){return new(__ngFactoryType__||PreloadLinkCreator)};static#_2=this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PreloadLinkCreator,factory:PreloadLinkCreator.ɵfac,providedIn:"root"})}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PreloadLinkCreator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],null,null);const VALID_WIDTH_DESCRIPTOR_SRCSET=/^((\s*\d+w\s*(,|$)){1,})$/,VALID_DENSITY_DESCRIPTOR_SRCSET=/^((\s*\d+(\.\d+)?x\s*(,|$)){1,})$/,ABSOLUTE_SRCSET_DENSITY_CAP=3,RECOMMENDED_SRCSET_DENSITY_CAP=2,DENSITY_SRCSET_MULTIPLIERS=[1,2],DATA_URL_WARN_LIMIT=4e3,DATA_URL_ERROR_LIMIT=1e4,BUILT_IN_LOADERS=[imgixLoaderInfo,imageKitLoaderInfo,cloudinaryLoaderInfo,netlifyLoaderInfo],PRIORITY_COUNT_THRESHOLD=10;let IMGS_WITH_PRIORITY_ATTR_COUNT=0;class NgOptimizedImage{constructor(){this.imageLoader=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(IMAGE_LOADER),this.config=function processConfig(config){let sortedBreakpoints={};config.breakpoints&&(sortedBreakpoints.breakpoints=config.breakpoints.sort(((a,b)=>a-b)));return Object.assign({},_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵIMAGE_CONFIG_DEFAULTS"],config,sortedBreakpoints)}((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵIMAGE_CONFIG"])),this.renderer=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2),this.imgElement=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef).nativeElement,this.injector=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injector),this.isServer=isPlatformServer((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID)),this.preloadLinkCreator=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PreloadLinkCreator),this.lcpObserver=ngDevMode?this.injector.get(LCPImageObserver):null,this._renderedSrc=null,this.priority=!1,this.disableOptimizedSrcset=!1,this.fill=!1}ngOnInit(){if((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵperformanceMarkFeature"])("NgOptimizedImage"),ngDevMode){const ngZone=this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone);if(assertNonEmptyInput(this,"ngSrc",this.ngSrc),function assertValidNgSrcset(dir,value){if(null==value)return;assertNonEmptyInput(dir,"ngSrcset",value);const stringVal=value,isValidWidthDescriptor=VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal),isValidDensityDescriptor=VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);isValidDensityDescriptor&&function assertUnderDensityCap(dir,value){const underDensityCap=value.split(",").every((num=>""===num||parseFloat(num)<=ABSOLUTE_SRCSET_DENSITY_CAP));if(!underDensityCap)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the \`ngSrcset\` contains an unsupported image density:\`${value}\`. NgOptimizedImage generally recommends a max image density of ${RECOMMENDED_SRCSET_DENSITY_CAP}x but supports image densities up to ${ABSOLUTE_SRCSET_DENSITY_CAP}x. The human eye cannot distinguish between image densities greater than ${RECOMMENDED_SRCSET_DENSITY_CAP}x - which makes them unnecessary for most use cases. Images that will be pinch-zoomed are typically the primary use case for ${ABSOLUTE_SRCSET_DENSITY_CAP}x images. Please remove the high density descriptor and try again.`)}(dir,stringVal);if(!isValidWidthDescriptor&&!isValidDensityDescriptor)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`ngSrcset\` has an invalid value (\`${value}\`). To fix this, supply \`ngSrcset\` using a comma-separated list of one or more width descriptors (e.g. "100w, 200w") or density descriptors (e.g. "1x, 2x").`)}(this,this.ngSrcset),function assertNoConflictingSrc(dir){if(dir.src)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2950,`${imgDirectiveDetails(dir.ngSrc)} both \`src\` and \`ngSrc\` have been set. Supplying both of these attributes breaks lazy loading. The NgOptimizedImage directive sets \`src\` itself based on the value of \`ngSrc\`. To fix this, please remove the \`src\` attribute.`)}(this),this.ngSrcset&&function assertNoConflictingSrcset(dir){if(dir.srcset)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2951,`${imgDirectiveDetails(dir.ngSrc)} both \`srcset\` and \`ngSrcset\` have been set. Supplying both of these attributes breaks lazy loading. The NgOptimizedImage directive sets \`srcset\` itself based on the value of \`ngSrcset\`. To fix this, please remove the \`srcset\` attribute.`)}(this),function assertNotBase64Image(dir){let ngSrc=dir.ngSrc.trim();if(ngSrc.startsWith("data:"))throw ngSrc.length>50&&(ngSrc=ngSrc.substring(0,50)+"..."),new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc,!1)} \`ngSrc\` is a Base64-encoded string (${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. To fix this, disable the NgOptimizedImage directive for this element by removing \`ngSrc\` and using a standard \`src\` attribute instead.`)}(this),function assertNotBlobUrl(dir){const ngSrc=dir.ngSrc.trim();if(ngSrc.startsWith("blob:"))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`ngSrc\` was set to a blob URL (${ngSrc}). Blob URLs are not supported by the NgOptimizedImage directive. To fix this, disable the NgOptimizedImage directive for this element by removing \`ngSrc\` and using a regular \`src\` attribute instead.`)}(this),this.fill?(!function assertEmptyWidthAndHeight(dir){if(dir.width||dir.height)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the attributes \`height\` and/or \`width\` are present along with the \`fill\` attribute. Because \`fill\` mode causes an image to fill its containing element, the size attributes have no effect and should be removed.`)}(this),ngZone.runOutsideAngular((()=>function assertNonZeroRenderedHeight(dir,img,renderer){const removeLoadListenerFn=renderer.listen(img,"load",(()=>{removeLoadListenerFn(),removeErrorListenerFn();const renderedHeight=img.clientHeight;dir.fill&&0===renderedHeight&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2952,`${imgDirectiveDetails(dir.ngSrc)} the height of the fill-mode image is zero. This is likely because the containing element does not have the CSS 'position' property set to one of the following: "relative", "fixed", or "absolute". To fix this problem, make sure the container element has the CSS 'position' property defined and the height of the element is not zero.`))})),removeErrorListenerFn=renderer.listen(img,"error",(()=>{removeLoadListenerFn(),removeErrorListenerFn()}))}(this,this.imgElement,this.renderer)))):(!function assertNonEmptyWidthAndHeight(dir){let missingAttributes=[];void 0===dir.width&&missingAttributes.push("width");void 0===dir.height&&missingAttributes.push("height");if(missingAttributes.length>0)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2954,`${imgDirectiveDetails(dir.ngSrc)} these required attributes are missing: ${missingAttributes.map((attr=>`"${attr}"`)).join(", ")}. Including "width" and "height" attributes will prevent image-related layout shifts. To fix this, include "width" and "height" attributes on the image tag or turn on "fill" mode with the \`fill\` attribute.`)}(this),void 0!==this.height&&assertGreaterThanZero(this,this.height,"height"),void 0!==this.width&&assertGreaterThanZero(this,this.width,"width"),ngZone.runOutsideAngular((()=>function assertNoImageDistortion(dir,img,renderer){const removeLoadListenerFn=renderer.listen(img,"load",(()=>{removeLoadListenerFn(),removeErrorListenerFn();const computedStyle=window.getComputedStyle(img);let renderedWidth=parseFloat(computedStyle.getPropertyValue("width")),renderedHeight=parseFloat(computedStyle.getPropertyValue("height"));if("border-box"===computedStyle.getPropertyValue("box-sizing")){const paddingTop=computedStyle.getPropertyValue("padding-top"),paddingRight=computedStyle.getPropertyValue("padding-right"),paddingBottom=computedStyle.getPropertyValue("padding-bottom"),paddingLeft=computedStyle.getPropertyValue("padding-left");renderedWidth-=parseFloat(paddingRight)+parseFloat(paddingLeft),renderedHeight-=parseFloat(paddingTop)+parseFloat(paddingBottom)}const renderedAspectRatio=renderedWidth/renderedHeight,nonZeroRenderedDimensions=0!==renderedWidth&&0!==renderedHeight,intrinsicWidth=img.naturalWidth,intrinsicHeight=img.naturalHeight,intrinsicAspectRatio=intrinsicWidth/intrinsicHeight,suppliedWidth=dir.width,suppliedHeight=dir.height,suppliedAspectRatio=suppliedWidth/suppliedHeight,inaccurateDimensions=Math.abs(suppliedAspectRatio-intrinsicAspectRatio)>.1,stylingDistortion=nonZeroRenderedDimensions&&Math.abs(intrinsicAspectRatio-renderedAspectRatio)>.1;if(inaccurateDimensions)console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2952,`${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match the aspect ratio indicated by the width and height attributes. \nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h (aspect-ratio: ${round(intrinsicAspectRatio)}). \nSupplied width and height attributes: ${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${round(suppliedAspectRatio)}). \nTo fix this, update the width and height attributes.`));else if(stylingDistortion)console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2952,`${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image does not match the image's intrinsic aspect ratio. \nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h (aspect-ratio: ${round(intrinsicAspectRatio)}). \nRendered image size: ${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ${round(renderedAspectRatio)}). \nThis issue can occur if "width" and "height" attributes are added to an image without updating the corresponding image styling. To fix this, adjust image styling. In most cases, adding "height: auto" or "width: auto" to the image styling will fix this issue.`));else if(!dir.ngSrcset&&nonZeroRenderedDimensions){const recommendedWidth=RECOMMENDED_SRCSET_DENSITY_CAP*renderedWidth,recommendedHeight=RECOMMENDED_SRCSET_DENSITY_CAP*renderedHeight;(intrinsicWidth-recommendedWidth>=1e3||intrinsicHeight-recommendedHeight>=1e3)&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2960,`${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly larger than necessary. \nRendered image size: ${renderedWidth}w x ${renderedHeight}h. \nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. \nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. \nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of ${RECOMMENDED_SRCSET_DENSITY_CAP}. To improve loading time, resize the image or consider using the "ngSrcset" and "sizes" attributes.`))}})),removeErrorListenerFn=renderer.listen(img,"error",(()=>{removeLoadListenerFn(),removeErrorListenerFn()}))}(this,this.imgElement,this.renderer)))),function assertValidLoadingInput(dir){if(dir.loading&&dir.priority)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the \`loading\` attribute was used on an image that was marked "priority". Setting \`loading\` on priority images is not allowed because these images will always be eagerly loaded. To fix this, remove the “loading” attribute from the priority image.`);const validInputs=["auto","eager","lazy"];if("string"==typeof dir.loading&&!validInputs.includes(dir.loading))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the \`loading\` attribute has an invalid value (\`${dir.loading}\`). To fix this, provide a valid value ("lazy", "eager", or "auto").`)}(this),this.ngSrcset||function assertNoComplexSizes(dir){let sizes=dir.sizes;if(sizes?.match(/((\)|,)\s|^)\d+px/))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc,!1)} \`sizes\` was set to a string including pixel values. For automatic \`srcset\` generation, \`sizes\` must only include responsive values, such as \`sizes="50vw"\` or \`sizes="(min-width: 768px) 50vw, 100vw"\`. To fix this, modify the \`sizes\` attribute, or provide your own \`ngSrcset\` value directly.`)}(this),function assertValidPlaceholder(dir,imageLoader){(function assertNoPlaceholderConfigWithoutPlaceholder(dir){if(dir.placeholderConfig&&!dir.placeholder)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc,!1)} \`placeholderConfig\` options were provided for an image that does not use the \`placeholder\` attribute, and will have no effect.`)})(dir),function assertNoRelativePlaceholderWithoutLoader(dir,imageLoader){if(!0===dir.placeholder&&imageLoader===noopImageLoader)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2963,`${imgDirectiveDetails(dir.ngSrc)} the \`placeholder\` attribute is set to true but no image loader is configured (i.e. the default one is being used), which would result in the same image being used for the primary image and its placeholder. To fix this, provide a loader or remove the \`placeholder\` attribute from the image.`)}(dir,imageLoader),function assertNoOversizedDataUrl(dir){if(dir.placeholder&&"string"==typeof dir.placeholder&&dir.placeholder.startsWith("data:")){if(dir.placeholder.length>DATA_URL_ERROR_LIMIT)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2965,`${imgDirectiveDetails(dir.ngSrc)} the \`placeholder\` attribute is set to a data URL which is longer than ${DATA_URL_ERROR_LIMIT} characters. This is strongly discouraged, as large inline placeholders directly increase the bundle size of Angular and hurt page load performance. To fix this, generate a smaller data URL placeholder.`);dir.placeholder.length>DATA_URL_WARN_LIMIT&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2965,`${imgDirectiveDetails(dir.ngSrc)} the \`placeholder\` attribute is set to a data URL which is longer than ${DATA_URL_WARN_LIMIT} characters. This is discouraged, as large inline placeholders directly increase the bundle size of Angular and hurt page load performance. For better loading performance, generate a smaller data URL placeholder.`))}}(dir)}(this,this.imageLoader),function assertNotMissingBuiltInLoader(ngSrc,imageLoader){if(imageLoader===noopImageLoader){let builtInLoaderName="";for(const loader of BUILT_IN_LOADERS)if(loader.testUrl(ngSrc)){builtInLoaderName=loader.name;break}builtInLoaderName&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2962,`NgOptimizedImage: It looks like your images may be hosted on the ${builtInLoaderName} CDN, but your app is not using Angular's built-in loader for that CDN. We recommend switching to use the built-in by calling \`provide${builtInLoaderName}Loader()\` in your \`providers\` and passing it your instance's base URL. If you don't want to use the built-in loader, define a custom loader function using IMAGE_LOADER to silence this warning.`))}}(this.ngSrc,this.imageLoader),function assertNoNgSrcsetWithoutLoader(dir,imageLoader){dir.ngSrcset&&imageLoader===noopImageLoader&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2963,`${imgDirectiveDetails(dir.ngSrc)} the \`ngSrcset\` attribute is present but no image loader is configured (i.e. the default one is being used), which would result in the same image being used for all configured sizes. To fix this, provide a loader or remove the \`ngSrcset\` attribute from the image.`))}(this,this.imageLoader),function assertNoLoaderParamsWithoutLoader(dir,imageLoader){dir.loaderParams&&imageLoader===noopImageLoader&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2963,`${imgDirectiveDetails(dir.ngSrc)} the \`loaderParams\` attribute is present but no image loader is configured (i.e. the default one is being used), which means that the loaderParams data will not be consumed and will not affect the URL. To fix this, provide a custom loader or remove the \`loaderParams\` attribute from the image.`))}(this,this.imageLoader),null!==this.lcpObserver){this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone).runOutsideAngular((()=>{this.lcpObserver.registerImage(this.getRewrittenSrc(),this.ngSrc,this.priority)}))}if(this.priority){if(this.injector.get(PreconnectLinkChecker).assertPreconnect(this.getRewrittenSrc(),this.ngSrc),!this.isServer){!function assetPriorityCountBelowThreshold(_x){return _assetPriorityCountBelowThreshold.apply(this,arguments)}(this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.ApplicationRef))}}}this.placeholder&&this.removePlaceholderOnLoad(this.imgElement),this.setHostAttributes()}setHostAttributes(){this.fill?this.sizes||="100vw":(this.setHostAttribute("width",this.width.toString()),this.setHostAttribute("height",this.height.toString())),this.setHostAttribute("loading",this.getLoadingBehavior()),this.setHostAttribute("fetchpriority",this.getFetchPriority()),this.setHostAttribute("ng-img","true");const rewrittenSrcset=this.updateSrcAndSrcset();this.sizes&&this.setHostAttribute("sizes",this.sizes),this.isServer&&this.priority&&this.preloadLinkCreator.createPreloadLinkTag(this.renderer,this.getRewrittenSrc(),rewrittenSrcset,this.sizes)}ngOnChanges(changes){if(ngDevMode&&function assertNoPostInitInputChange(dir,changes,inputs){inputs.forEach((input=>{if(changes.hasOwnProperty(input)&&!changes[input].isFirstChange())throw"ngSrc"===input&&(dir={ngSrc:changes[input].previousValue}),function postInitInputChangeError(dir,inputName){let reason;reason="width"===inputName||"height"===inputName?`Changing \`${inputName}\` may result in different attribute value applied to the underlying image element and cause layout shifts on a page.`:`Changing the \`${inputName}\` would have no effect on the underlying image element, because the resource loading has already occurred.`;return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2953,`${imgDirectiveDetails(dir.ngSrc)} \`${inputName}\` was updated after initialization. The NgOptimizedImage directive will not react to this input change. ${reason} To fix this, either switch \`${inputName}\` to a static value or wrap the image element in an *ngIf that is gated on the necessary value.`)}(dir,input)}))}(this,changes,["ngSrcset","width","height","priority","fill","loading","sizes","loaderParams","disableOptimizedSrcset"]),changes.ngSrc&&!changes.ngSrc.isFirstChange()){const oldSrc=this._renderedSrc;this.updateSrcAndSrcset(!0);const newSrc=this._renderedSrc;if(null!==this.lcpObserver&&oldSrc&&newSrc&&oldSrc!==newSrc){this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone).runOutsideAngular((()=>{this.lcpObserver?.updateImage(oldSrc,newSrc)}))}}ngDevMode&&changes.placeholder?.currentValue&&!this.isServer&&function assertPlaceholderDimensions(dir,imgElement){const computedStyle=window.getComputedStyle(imgElement);let renderedWidth=parseFloat(computedStyle.getPropertyValue("width")),renderedHeight=parseFloat(computedStyle.getPropertyValue("height"));(renderedWidth>1e3||renderedHeight>1e3)&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2967,`${imgDirectiveDetails(dir.ngSrc)} it uses a placeholder image, but at least one of the dimensions attribute (height or width) exceeds the limit of 1000px. To fix this, use a smaller image as a placeholder.`))}(this,this.imgElement)}callImageLoader(configWithoutCustomParams){let augmentedConfig=configWithoutCustomParams;return this.loaderParams&&(augmentedConfig.loaderParams=this.loaderParams),this.imageLoader(augmentedConfig)}getLoadingBehavior(){return this.priority||void 0===this.loading?this.priority?"eager":"lazy":this.loading}getFetchPriority(){return this.priority?"high":"auto"}getRewrittenSrc(){if(!this._renderedSrc){const imgConfig={src:this.ngSrc};this._renderedSrc=this.callImageLoader(imgConfig)}return this._renderedSrc}getRewrittenSrcset(){const widthSrcSet=VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);return this.ngSrcset.split(",").filter((src=>""!==src)).map((srcStr=>{srcStr=srcStr.trim();const width=widthSrcSet?parseFloat(srcStr):parseFloat(srcStr)*this.width;return`${this.callImageLoader({src:this.ngSrc,width})} ${srcStr}`})).join(", ")}getAutomaticSrcset(){return this.sizes?this.getResponsiveSrcset():this.getFixedSrcset()}getResponsiveSrcset(){const{breakpoints}=this.config;let filteredBreakpoints=breakpoints;"100vw"===this.sizes?.trim()&&(filteredBreakpoints=breakpoints.filter((bp=>bp>=640)));return filteredBreakpoints.map((bp=>`${this.callImageLoader({src:this.ngSrc,width:bp})} ${bp}w`)).join(", ")}updateSrcAndSrcset(forceSrcRecalc=!1){forceSrcRecalc&&(this._renderedSrc=null);const rewrittenSrc=this.getRewrittenSrc();let rewrittenSrcset;return this.setHostAttribute("src",rewrittenSrc),this.ngSrcset?rewrittenSrcset=this.getRewrittenSrcset():this.shouldGenerateAutomaticSrcset()&&(rewrittenSrcset=this.getAutomaticSrcset()),rewrittenSrcset&&this.setHostAttribute("srcset",rewrittenSrcset),rewrittenSrcset}getFixedSrcset(){return DENSITY_SRCSET_MULTIPLIERS.map((multiplier=>`${this.callImageLoader({src:this.ngSrc,width:this.width*multiplier})} ${multiplier}x`)).join(", ")}shouldGenerateAutomaticSrcset(){let oversizedImage=!1;return this.sizes||(oversizedImage=this.width>1920||this.height>1080),!this.disableOptimizedSrcset&&!this.srcset&&this.imageLoader!==noopImageLoader&&!oversizedImage}generatePlaceholder(placeholderInput){const{placeholderResolution}=this.config;return!0===placeholderInput?`url(${this.callImageLoader({src:this.ngSrc,width:placeholderResolution,isPlaceholder:!0})})`:"string"==typeof placeholderInput?`url(${placeholderInput})`:null}shouldBlurPlaceholder(placeholderConfig){return!placeholderConfig||!placeholderConfig.hasOwnProperty("blur")||Boolean(placeholderConfig.blur)}removePlaceholderOnLoad(img){const callback=()=>{const changeDetectorRef=this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef);removeLoadListenerFn(),removeErrorListenerFn(),this.placeholder=!1,changeDetectorRef.markForCheck()},removeLoadListenerFn=this.renderer.listen(img,"load",callback),removeErrorListenerFn=this.renderer.listen(img,"error",callback)}ngOnDestroy(){ngDevMode&&(this.priority||null===this._renderedSrc||null===this.lcpObserver||this.lcpObserver.unregisterImage(this._renderedSrc))}setHostAttribute(name,value){this.renderer.setAttribute(this.imgElement,name,value)}static#_=this.ɵfac=function NgOptimizedImage_Factory(__ngFactoryType__){return new(__ngFactoryType__||NgOptimizedImage)};static#_2=this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgOptimizedImage,selectors:[["img","ngSrc",""]],hostVars:18,hostBindings:function NgOptimizedImage_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstyleProp"]("position",ctx.fill?"absolute":null)("width",ctx.fill?"100%":null)("height",ctx.fill?"100%":null)("inset",ctx.fill?"0":null)("background-size",ctx.placeholder?"cover":null)("background-position",ctx.placeholder?"50% 50%":null)("background-repeat",ctx.placeholder?"no-repeat":null)("background-image",ctx.placeholder?ctx.generatePlaceholder(ctx.placeholder):null)("filter",ctx.placeholder&&ctx.shouldBlurPlaceholder(ctx.placeholderConfig)?"blur(15px)":null)},inputs:{ngSrc:[2,"ngSrc","ngSrc",unwrapSafeUrl],ngSrcset:"ngSrcset",sizes:"sizes",width:[2,"width","width",_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute],height:[2,"height","height",_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute],loading:"loading",priority:[2,"priority","priority",_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute],loaderParams:"loaderParams",disableOptimizedSrcset:[2,"disableOptimizedSrcset","disableOptimizedSrcset",_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute],fill:[2,"fill","fill",_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute],placeholder:[2,"placeholder","placeholder",booleanOrUrlAttribute],placeholderConfig:"placeholderConfig",src:"src",srcset:"srcset"},standalone:!0,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputTransformsFeature"],_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}function assertNonEmptyInput(dir,name,value){const isString="string"==typeof value,isEmptyString=isString&&""===value.trim();if(!isString||isEmptyString)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`${name}\` has an invalid value (\`${value}\`). To fix this, change the value to a non-empty string.`)}function assertGreaterThanZero(dir,inputValue,inputName){const validNumber="number"==typeof inputValue&&inputValue>0,validString="string"==typeof inputValue&&/^\d+$/.test(inputValue.trim())&&parseInt(inputValue)>0;if(!validNumber&&!validString)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`${inputName}\` has an invalid value. To fix this, provide \`${inputName}\` as a number greater than 0.`)}function _assetPriorityCountBelowThreshold(){return(_assetPriorityCountBelowThreshold=(0,_home_runner_work_ngx_components_ngx_components_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__.A)((function*(appRef){0===IMGS_WITH_PRIORITY_ATTR_COUNT?(IMGS_WITH_PRIORITY_ATTR_COUNT++,yield(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵwhenStable"])(appRef),IMGS_WITH_PRIORITY_ATTR_COUNT>PRIORITY_COUNT_THRESHOLD&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2966,`NgOptimizedImage: The "priority" attribute is set to true more than ${PRIORITY_COUNT_THRESHOLD} times (${IMGS_WITH_PRIORITY_ATTR_COUNT} times). Marking too many images as "high" priority can hurt your application's LCP (https://web.dev/lcp). "Priority" should only be set on the image expected to be the page's LCP element.`))):IMGS_WITH_PRIORITY_ATTR_COUNT++}))).apply(this,arguments)}function round(input){return Number.isInteger(input)?input:input.toFixed(2)}function unwrapSafeUrl(value){return"string"==typeof value?value:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵunwrapSafeValue"])(value)}function booleanOrUrlAttribute(value){return"string"==typeof value&&"true"!==value&&"false"!==value&&""!==value?value:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute)(value)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgOptimizedImage,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{standalone:!0,selector:"img[ngSrc]",host:{"[style.position]":'fill ? "absolute" : null',"[style.width]":'fill ? "100%" : null',"[style.height]":'fill ? "100%" : null',"[style.inset]":'fill ? "0" : null',"[style.background-size]":'placeholder ? "cover" : null',"[style.background-position]":'placeholder ? "50% 50%" : null',"[style.background-repeat]":'placeholder ? "no-repeat" : null',"[style.background-image]":"placeholder ? generatePlaceholder(placeholder) : null","[style.filter]":'placeholder && shouldBlurPlaceholder(placeholderConfig) ? "blur(15px)" : null'}}]}],null,{ngSrc:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{required:!0,transform:unwrapSafeUrl}]}],ngSrcset:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],sizes:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],width:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute}]}],height:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute}]}],loading:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],priority:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute}]}],loaderParams:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],disableOptimizedSrcset:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute}]}],fill:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute}]}],placeholder:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:booleanOrUrlAttribute}]}],placeholderConfig:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],src:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],srcset:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]})},"./node_modules/@angular/common/fesm2022/http.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Qq:()=>HttpClient,$m:()=>withHttpTransferCache});var asyncToGenerator=__webpack_require__("./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),of=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),mergeMap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),isFunction=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");var filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),finalize=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/finalize.js"),switchMap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs");class HttpHandler{}class HttpBackend{}class HttpHeaders{constructor(headers){this.normalizedNames=new Map,this.lazyUpdate=null,headers?"string"==typeof headers?this.lazyInit=()=>{this.headers=new Map,headers.split("\n").forEach((line=>{const index=line.indexOf(":");if(index>0){const name=line.slice(0,index),key=name.toLowerCase(),value=line.slice(index+1).trim();this.maybeSetNormalizedName(name,key),this.headers.has(key)?this.headers.get(key).push(value):this.headers.set(key,[value])}}))}:"undefined"!=typeof Headers&&headers instanceof Headers?(this.headers=new Map,headers.forEach(((values,name)=>{this.setHeaderEntries(name,values)}))):this.lazyInit=()=>{("undefined"==typeof ngDevMode||ngDevMode)&&function assertValidHeaders(headers){for(const[key,value]of Object.entries(headers))if("string"!=typeof value&&"number"!=typeof value&&!Array.isArray(value))throw new Error(`Unexpected value of the \`${key}\` header provided. Expecting either a string, a number or an array, but got: \`${value}\`.`)}(headers),this.headers=new Map,Object.entries(headers).forEach((([name,values])=>{this.setHeaderEntries(name,values)}))}:this.headers=new Map}has(name){return this.init(),this.headers.has(name.toLowerCase())}get(name){this.init();const values=this.headers.get(name.toLowerCase());return values&&values.length>0?values[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(name){return this.init(),this.headers.get(name.toLowerCase())||null}append(name,value){return this.clone({name,value,op:"a"})}set(name,value){return this.clone({name,value,op:"s"})}delete(name,value){return this.clone({name,value,op:"d"})}maybeSetNormalizedName(name,lcName){this.normalizedNames.has(lcName)||this.normalizedNames.set(lcName,name)}init(){this.lazyInit&&(this.lazyInit instanceof HttpHeaders?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach((update=>this.applyUpdate(update))),this.lazyUpdate=null))}copyFrom(other){other.init(),Array.from(other.headers.keys()).forEach((key=>{this.headers.set(key,other.headers.get(key)),this.normalizedNames.set(key,other.normalizedNames.get(key))}))}clone(update){const clone=new HttpHeaders;return clone.lazyInit=this.lazyInit&&this.lazyInit instanceof HttpHeaders?this.lazyInit:this,clone.lazyUpdate=(this.lazyUpdate||[]).concat([update]),clone}applyUpdate(update){const key=update.name.toLowerCase();switch(update.op){case"a":case"s":let value=update.value;if("string"==typeof value&&(value=[value]),0===value.length)return;this.maybeSetNormalizedName(update.name,key);const base=("a"===update.op?this.headers.get(key):void 0)||[];base.push(...value),this.headers.set(key,base);break;case"d":const toDelete=update.value;if(toDelete){let existing=this.headers.get(key);if(!existing)return;existing=existing.filter((value=>-1===toDelete.indexOf(value))),0===existing.length?(this.headers.delete(key),this.normalizedNames.delete(key)):this.headers.set(key,existing)}else this.headers.delete(key),this.normalizedNames.delete(key)}}setHeaderEntries(name,values){const headerValues=(Array.isArray(values)?values:[values]).map((value=>value.toString())),key=name.toLowerCase();this.headers.set(key,headerValues),this.maybeSetNormalizedName(name,key)}forEach(fn){this.init(),Array.from(this.normalizedNames.keys()).forEach((key=>fn(this.normalizedNames.get(key),this.headers.get(key))))}}class HttpUrlEncodingCodec{encodeKey(key){return standardEncoding(key)}encodeValue(value){return standardEncoding(value)}decodeKey(key){return decodeURIComponent(key)}decodeValue(value){return decodeURIComponent(value)}}const STANDARD_ENCODING_REGEX=/%(\d[a-f0-9])/gi,STANDARD_ENCODING_REPLACEMENTS={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function standardEncoding(v){return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX,((s,t)=>STANDARD_ENCODING_REPLACEMENTS[t]??s))}function valueToString(value){return`${value}`}class HttpParams{constructor(options={}){if(this.updates=null,this.cloneFrom=null,this.encoder=options.encoder||new HttpUrlEncodingCodec,options.fromString){if(options.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function paramParser(rawParams,codec){const map=new Map;rawParams.length>0&&rawParams.replace(/^\?/,"").split("&").forEach((param=>{const eqIdx=param.indexOf("="),[key,val]=-1==eqIdx?[codec.decodeKey(param),""]:[codec.decodeKey(param.slice(0,eqIdx)),codec.decodeValue(param.slice(eqIdx+1))],list=map.get(key)||[];list.push(val),map.set(key,list)}));return map}(options.fromString,this.encoder)}else options.fromObject?(this.map=new Map,Object.keys(options.fromObject).forEach((key=>{const value=options.fromObject[key],values=Array.isArray(value)?value.map(valueToString):[valueToString(value)];this.map.set(key,values)}))):this.map=null}has(param){return this.init(),this.map.has(param)}get(param){this.init();const res=this.map.get(param);return res?res[0]:null}getAll(param){return this.init(),this.map.get(param)||null}keys(){return this.init(),Array.from(this.map.keys())}append(param,value){return this.clone({param,value,op:"a"})}appendAll(params){const updates=[];return Object.keys(params).forEach((param=>{const value=params[param];Array.isArray(value)?value.forEach((_value=>{updates.push({param,value:_value,op:"a"})})):updates.push({param,value,op:"a"})})),this.clone(updates)}set(param,value){return this.clone({param,value,op:"s"})}delete(param,value){return this.clone({param,value,op:"d"})}toString(){return this.init(),this.keys().map((key=>{const eKey=this.encoder.encodeKey(key);return this.map.get(key).map((value=>eKey+"="+this.encoder.encodeValue(value))).join("&")})).filter((param=>""!==param)).join("&")}clone(update){const clone=new HttpParams({encoder:this.encoder});return clone.cloneFrom=this.cloneFrom||this,clone.updates=(this.updates||[]).concat(update),clone}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach((key=>this.map.set(key,this.cloneFrom.map.get(key)))),this.updates.forEach((update=>{switch(update.op){case"a":case"s":const base=("a"===update.op?this.map.get(update.param):void 0)||[];base.push(valueToString(update.value)),this.map.set(update.param,base);break;case"d":if(void 0===update.value){this.map.delete(update.param);break}{let base=this.map.get(update.param)||[];const idx=base.indexOf(valueToString(update.value));-1!==idx&&base.splice(idx,1),base.length>0?this.map.set(update.param,base):this.map.delete(update.param)}}})),this.cloneFrom=this.updates=null)}}class HttpContext{constructor(){this.map=new Map}set(token,value){return this.map.set(token,value),this}get(token){return this.map.has(token)||this.map.set(token,token.defaultValue()),this.map.get(token)}delete(token){return this.map.delete(token),this}has(token){return this.map.has(token)}keys(){return this.map.keys()}}function isArrayBuffer(value){return"undefined"!=typeof ArrayBuffer&&value instanceof ArrayBuffer}function isBlob(value){return"undefined"!=typeof Blob&&value instanceof Blob}function isFormData(value){return"undefined"!=typeof FormData&&value instanceof FormData}class HttpRequest{constructor(method,url,third,fourth){let options;if(this.url=url,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=method.toUpperCase(),function mightHaveBody(method){switch(method){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||fourth?(this.body=void 0!==third?third:null,options=fourth):options=third,options&&(this.reportProgress=!!options.reportProgress,this.withCredentials=!!options.withCredentials,options.responseType&&(this.responseType=options.responseType),options.headers&&(this.headers=options.headers),options.context&&(this.context=options.context),options.params&&(this.params=options.params),this.transferCache=options.transferCache),this.headers??=new HttpHeaders,this.context??=new HttpContext,this.params){const params=this.params.toString();if(0===params.length)this.urlWithParams=url;else{const qIdx=url.indexOf("?"),sep=-1===qIdx?"?":qIdxheaders.set(name,update.setHeaders[name])),headers)),update.setParams&&(params=Object.keys(update.setParams).reduce(((params,param)=>params.set(param,update.setParams[param])),params)),new HttpRequest(method,url,body,{params,headers,context,reportProgress,responseType,withCredentials,transferCache})}}var HttpEventType;!function(HttpEventType){HttpEventType[HttpEventType.Sent=0]="Sent",HttpEventType[HttpEventType.UploadProgress=1]="UploadProgress",HttpEventType[HttpEventType.ResponseHeader=2]="ResponseHeader",HttpEventType[HttpEventType.DownloadProgress=3]="DownloadProgress",HttpEventType[HttpEventType.Response=4]="Response",HttpEventType[HttpEventType.User=5]="User"}(HttpEventType||(HttpEventType={}));class HttpResponseBase{constructor(init,defaultStatus=200,defaultStatusText="OK"){this.headers=init.headers||new HttpHeaders,this.status=void 0!==init.status?init.status:defaultStatus,this.statusText=init.statusText||defaultStatusText,this.url=init.url||null,this.ok=this.status>=200&&this.status<300}}class HttpHeaderResponse extends HttpResponseBase{constructor(init={}){super(init),this.type=HttpEventType.ResponseHeader}clone(update={}){return new HttpHeaderResponse({headers:update.headers||this.headers,status:void 0!==update.status?update.status:this.status,statusText:update.statusText||this.statusText,url:update.url||this.url||void 0})}}class HttpResponse extends HttpResponseBase{constructor(init={}){super(init),this.type=HttpEventType.Response,this.body=void 0!==init.body?init.body:null}clone(update={}){return new HttpResponse({body:void 0!==update.body?update.body:this.body,headers:update.headers||this.headers,status:void 0!==update.status?update.status:this.status,statusText:update.statusText||this.statusText,url:update.url||this.url||void 0})}}class HttpErrorResponse extends HttpResponseBase{constructor(init){super(init,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${init.url||"(unknown url)"}`:this.message=`Http failure response for ${init.url||"(unknown url)"}: ${init.status} ${init.statusText}`,this.error=init.error||null}}var HttpStatusCode;function addBody(options,body){return{body,headers:options.headers,context:options.context,observe:options.observe,params:options.params,reportProgress:options.reportProgress,responseType:options.responseType,withCredentials:options.withCredentials,transferCache:options.transferCache}}!function(HttpStatusCode){HttpStatusCode[HttpStatusCode.Continue=100]="Continue",HttpStatusCode[HttpStatusCode.SwitchingProtocols=101]="SwitchingProtocols",HttpStatusCode[HttpStatusCode.Processing=102]="Processing",HttpStatusCode[HttpStatusCode.EarlyHints=103]="EarlyHints",HttpStatusCode[HttpStatusCode.Ok=200]="Ok",HttpStatusCode[HttpStatusCode.Created=201]="Created",HttpStatusCode[HttpStatusCode.Accepted=202]="Accepted",HttpStatusCode[HttpStatusCode.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",HttpStatusCode[HttpStatusCode.NoContent=204]="NoContent",HttpStatusCode[HttpStatusCode.ResetContent=205]="ResetContent",HttpStatusCode[HttpStatusCode.PartialContent=206]="PartialContent",HttpStatusCode[HttpStatusCode.MultiStatus=207]="MultiStatus",HttpStatusCode[HttpStatusCode.AlreadyReported=208]="AlreadyReported",HttpStatusCode[HttpStatusCode.ImUsed=226]="ImUsed",HttpStatusCode[HttpStatusCode.MultipleChoices=300]="MultipleChoices",HttpStatusCode[HttpStatusCode.MovedPermanently=301]="MovedPermanently",HttpStatusCode[HttpStatusCode.Found=302]="Found",HttpStatusCode[HttpStatusCode.SeeOther=303]="SeeOther",HttpStatusCode[HttpStatusCode.NotModified=304]="NotModified",HttpStatusCode[HttpStatusCode.UseProxy=305]="UseProxy",HttpStatusCode[HttpStatusCode.Unused=306]="Unused",HttpStatusCode[HttpStatusCode.TemporaryRedirect=307]="TemporaryRedirect",HttpStatusCode[HttpStatusCode.PermanentRedirect=308]="PermanentRedirect",HttpStatusCode[HttpStatusCode.BadRequest=400]="BadRequest",HttpStatusCode[HttpStatusCode.Unauthorized=401]="Unauthorized",HttpStatusCode[HttpStatusCode.PaymentRequired=402]="PaymentRequired",HttpStatusCode[HttpStatusCode.Forbidden=403]="Forbidden",HttpStatusCode[HttpStatusCode.NotFound=404]="NotFound",HttpStatusCode[HttpStatusCode.MethodNotAllowed=405]="MethodNotAllowed",HttpStatusCode[HttpStatusCode.NotAcceptable=406]="NotAcceptable",HttpStatusCode[HttpStatusCode.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",HttpStatusCode[HttpStatusCode.RequestTimeout=408]="RequestTimeout",HttpStatusCode[HttpStatusCode.Conflict=409]="Conflict",HttpStatusCode[HttpStatusCode.Gone=410]="Gone",HttpStatusCode[HttpStatusCode.LengthRequired=411]="LengthRequired",HttpStatusCode[HttpStatusCode.PreconditionFailed=412]="PreconditionFailed",HttpStatusCode[HttpStatusCode.PayloadTooLarge=413]="PayloadTooLarge",HttpStatusCode[HttpStatusCode.UriTooLong=414]="UriTooLong",HttpStatusCode[HttpStatusCode.UnsupportedMediaType=415]="UnsupportedMediaType",HttpStatusCode[HttpStatusCode.RangeNotSatisfiable=416]="RangeNotSatisfiable",HttpStatusCode[HttpStatusCode.ExpectationFailed=417]="ExpectationFailed",HttpStatusCode[HttpStatusCode.ImATeapot=418]="ImATeapot",HttpStatusCode[HttpStatusCode.MisdirectedRequest=421]="MisdirectedRequest",HttpStatusCode[HttpStatusCode.UnprocessableEntity=422]="UnprocessableEntity",HttpStatusCode[HttpStatusCode.Locked=423]="Locked",HttpStatusCode[HttpStatusCode.FailedDependency=424]="FailedDependency",HttpStatusCode[HttpStatusCode.TooEarly=425]="TooEarly",HttpStatusCode[HttpStatusCode.UpgradeRequired=426]="UpgradeRequired",HttpStatusCode[HttpStatusCode.PreconditionRequired=428]="PreconditionRequired",HttpStatusCode[HttpStatusCode.TooManyRequests=429]="TooManyRequests",HttpStatusCode[HttpStatusCode.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",HttpStatusCode[HttpStatusCode.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",HttpStatusCode[HttpStatusCode.InternalServerError=500]="InternalServerError",HttpStatusCode[HttpStatusCode.NotImplemented=501]="NotImplemented",HttpStatusCode[HttpStatusCode.BadGateway=502]="BadGateway",HttpStatusCode[HttpStatusCode.ServiceUnavailable=503]="ServiceUnavailable",HttpStatusCode[HttpStatusCode.GatewayTimeout=504]="GatewayTimeout",HttpStatusCode[HttpStatusCode.HttpVersionNotSupported=505]="HttpVersionNotSupported",HttpStatusCode[HttpStatusCode.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",HttpStatusCode[HttpStatusCode.InsufficientStorage=507]="InsufficientStorage",HttpStatusCode[HttpStatusCode.LoopDetected=508]="LoopDetected",HttpStatusCode[HttpStatusCode.NotExtended=510]="NotExtended",HttpStatusCode[HttpStatusCode.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired"}(HttpStatusCode||(HttpStatusCode={}));class HttpClient{constructor(handler){this.handler=handler}request(first,url,options={}){let req;if(first instanceof HttpRequest)req=first;else{let headers,params;headers=options.headers instanceof HttpHeaders?options.headers:new HttpHeaders(options.headers),options.params&&(params=options.params instanceof HttpParams?options.params:new HttpParams({fromObject:options.params})),req=new HttpRequest(first,url,void 0!==options.body?options.body:null,{headers,context:options.context,params,reportProgress:options.reportProgress,responseType:options.responseType||"json",withCredentials:options.withCredentials,transferCache:options.transferCache})}const events$=(0,of.of)(req).pipe(function concatMap(project,resultSelector){return(0,isFunction.T)(resultSelector)?(0,mergeMap.Z)(project,resultSelector,1):(0,mergeMap.Z)(project,1)}((req=>this.handler.handle(req))));if(first instanceof HttpRequest||"events"===options.observe)return events$;const res$=events$.pipe((0,filter.p)((event=>event instanceof HttpResponse)));switch(options.observe||"body"){case"body":switch(req.responseType){case"arraybuffer":return res$.pipe((0,map.T)((res=>{if(null!==res.body&&!(res.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return res.body})));case"blob":return res$.pipe((0,map.T)((res=>{if(null!==res.body&&!(res.body instanceof Blob))throw new Error("Response is not a Blob.");return res.body})));case"text":return res$.pipe((0,map.T)((res=>{if(null!==res.body&&"string"!=typeof res.body)throw new Error("Response is not a string.");return res.body})));default:return res$.pipe((0,map.T)((res=>res.body)))}case"response":return res$;default:throw new Error(`Unreachable: unhandled observe type ${options.observe}}`)}}delete(url,options={}){return this.request("DELETE",url,options)}get(url,options={}){return this.request("GET",url,options)}head(url,options={}){return this.request("HEAD",url,options)}jsonp(url,callbackParam){return this.request("JSONP",url,{params:(new HttpParams).append(callbackParam,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(url,options={}){return this.request("OPTIONS",url,options)}patch(url,body,options={}){return this.request("PATCH",url,addBody(options,body))}post(url,body,options={}){return this.request("POST",url,addBody(options,body))}put(url,body,options={}){return this.request("PUT",url,addBody(options,body))}static#_=this.ɵfac=function HttpClient_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpClient)(core["ɵɵinject"](HttpHandler))};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:HttpClient,factory:HttpClient.ɵfac})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpClient,[{type:core.Injectable}],(()=>[{type:HttpHandler}]),null);const XSSI_PREFIX$1=/^\)\]\}',?\n/,REQUEST_URL_HEADER="X-Request-URL";function getResponseUrl$1(response){if(response.url)return response.url;const xRequestUrl=REQUEST_URL_HEADER.toLocaleLowerCase();return response.headers.get(xRequestUrl)}class FetchBackend{constructor(){this.fetchImpl=(0,core.inject)(FetchFactory,{optional:!0})?.fetch??((...args)=>globalThis.fetch(...args)),this.ngZone=(0,core.inject)(core.NgZone)}handle(request){return new Observable.c((observer=>{const aborter=new AbortController;return this.doRequest(request,aborter.signal,observer).then(noop,(error=>observer.error(new HttpErrorResponse({error})))),()=>aborter.abort()}))}doRequest(request,signal,observer){var _this=this;return(0,asyncToGenerator.A)((function*(){const init=_this.createRequestInit(request);let response;try{const fetchPromise=_this.ngZone.runOutsideAngular((()=>_this.fetchImpl(request.urlWithParams,{signal,...init})));!function silenceSuperfluousUnhandledPromiseRejection(promise){promise.then(noop,noop)}(fetchPromise),observer.next({type:HttpEventType.Sent}),response=yield fetchPromise}catch(error){return void observer.error(new HttpErrorResponse({error,status:error.status??0,statusText:error.statusText,url:request.urlWithParams,headers:error.headers}))}const headers=new HttpHeaders(response.headers),statusText=response.statusText,url=getResponseUrl$1(response)??request.urlWithParams;let status=response.status,body=null;if(request.reportProgress&&observer.next(new HttpHeaderResponse({headers,status,statusText,url})),response.body){const contentLength=response.headers.get("content-length"),chunks=[],reader=response.body.getReader();let decoder,partialText,receivedLength=0;const reqZone="undefined"!=typeof Zone&&Zone.current;yield _this.ngZone.runOutsideAngular((0,asyncToGenerator.A)((function*(){for(;;){const{done,value}=yield reader.read();if(done)break;if(chunks.push(value),receivedLength+=value.length,request.reportProgress){partialText="text"===request.responseType?(partialText??"")+(decoder??=new TextDecoder).decode(value,{stream:!0}):void 0;const reportProgress=()=>observer.next({type:HttpEventType.DownloadProgress,total:contentLength?+contentLength:void 0,loaded:receivedLength,partialText});reqZone?reqZone.run(reportProgress):reportProgress()}}})));const chunksAll=_this.concatChunks(chunks,receivedLength);try{const contentType=response.headers.get("Content-Type")??"";body=_this.parseBody(request,chunksAll,contentType)}catch(error){return void observer.error(new HttpErrorResponse({error,headers:new HttpHeaders(response.headers),status:response.status,statusText:response.statusText,url:getResponseUrl$1(response)??request.urlWithParams}))}}0===status&&(status=body?200:0);status>=200&&status<300?(observer.next(new HttpResponse({body,headers,status,statusText,url})),observer.complete()):observer.error(new HttpErrorResponse({error:body,headers,status,statusText,url}))}))()}parseBody(request,binContent,contentType){switch(request.responseType){case"json":const text=(new TextDecoder).decode(binContent).replace(XSSI_PREFIX$1,"");return""===text?null:JSON.parse(text);case"text":return(new TextDecoder).decode(binContent);case"blob":return new Blob([binContent],{type:contentType});case"arraybuffer":return binContent.buffer}}createRequestInit(req){const headers={},credentials=req.withCredentials?"include":void 0;if(req.headers.forEach(((name,values)=>headers[name]=values.join(","))),req.headers.has("Accept")||(headers.Accept="application/json, text/plain, */*"),!req.headers.has("Content-Type")){const detectedType=req.detectContentTypeHeader();null!==detectedType&&(headers["Content-Type"]=detectedType)}return{body:req.serializeBody(),method:req.method,headers,credentials}}concatChunks(chunks,totalLength){const chunksAll=new Uint8Array(totalLength);let position=0;for(const chunk of chunks)chunksAll.set(chunk,position),position+=chunk.length;return chunksAll}static#_=this.ɵfac=function FetchBackend_Factory(__ngFactoryType__){return new(__ngFactoryType__||FetchBackend)};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:FetchBackend,factory:FetchBackend.ɵfac})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](FetchBackend,[{type:core.Injectable}],null,null);class FetchFactory{}function noop(){}function interceptorChainEndFn(req,finalHandlerFn){return finalHandlerFn(req)}function adaptLegacyInterceptorToChain(chainTailFn,interceptor){return(initialRequest,finalHandlerFn)=>interceptor.intercept(initialRequest,{handle:downstreamRequest=>chainTailFn(downstreamRequest,finalHandlerFn)})}const HTTP_INTERCEPTORS=new core.InjectionToken(ngDevMode?"HTTP_INTERCEPTORS":""),HTTP_INTERCEPTOR_FNS=new core.InjectionToken(ngDevMode?"HTTP_INTERCEPTOR_FNS":""),HTTP_ROOT_INTERCEPTOR_FNS=new core.InjectionToken(ngDevMode?"HTTP_ROOT_INTERCEPTOR_FNS":""),REQUESTS_CONTRIBUTE_TO_STABILITY=new core.InjectionToken(ngDevMode?"REQUESTS_CONTRIBUTE_TO_STABILITY":"",{providedIn:"root",factory:()=>!0});function legacyInterceptorFnFactory(){let chain=null;return(req,handler)=>{if(null===chain){const interceptors=(0,core.inject)(HTTP_INTERCEPTORS,{optional:!0})??[];chain=interceptors.reduceRight(adaptLegacyInterceptorToChain,interceptorChainEndFn)}const pendingTasks=(0,core.inject)(core["ɵPendingTasks"]);if((0,core.inject)(REQUESTS_CONTRIBUTE_TO_STABILITY)){const taskId=pendingTasks.add();return chain(req,handler).pipe((0,finalize.j)((()=>pendingTasks.remove(taskId))))}return chain(req,handler)}}let fetchBackendWarningDisplayed=!1;class HttpInterceptorHandler extends HttpHandler{constructor(backend,injector){if(super(),this.backend=backend,this.injector=injector,this.chain=null,this.pendingTasks=(0,core.inject)(core["ɵPendingTasks"]),this.contributeToStability=(0,core.inject)(REQUESTS_CONTRIBUTE_TO_STABILITY),("undefined"==typeof ngDevMode||ngDevMode)&&!fetchBackendWarningDisplayed){!(0,common.isPlatformServer)(injector.get(core.PLATFORM_ID))||this.backend instanceof FetchBackend||(fetchBackendWarningDisplayed=!0,injector.get(core["ɵConsole"]).warn((0,core["ɵformatRuntimeError"])(2801,"Angular detected that `HttpClient` is not configured to use `fetch` APIs. It's strongly recommended to enable `fetch` for applications that use Server-Side Rendering for better performance and compatibility. To enable `fetch`, add the `withFetch()` to the `provideHttpClient()` call at the root of the application.")))}}handle(initialRequest){if(null===this.chain){const dedupedInterceptorFns=Array.from(new Set([...this.injector.get(HTTP_INTERCEPTOR_FNS),...this.injector.get(HTTP_ROOT_INTERCEPTOR_FNS,[])]));this.chain=dedupedInterceptorFns.reduceRight(((nextSequencedFn,interceptorFn)=>function chainedInterceptorFn(chainTailFn,interceptorFn,injector){return(initialRequest,finalHandlerFn)=>(0,core.runInInjectionContext)(injector,(()=>interceptorFn(initialRequest,(downstreamRequest=>chainTailFn(downstreamRequest,finalHandlerFn)))))}(nextSequencedFn,interceptorFn,this.injector)),interceptorChainEndFn)}if(this.contributeToStability){const taskId=this.pendingTasks.add();return this.chain(initialRequest,(downstreamRequest=>this.backend.handle(downstreamRequest))).pipe((0,finalize.j)((()=>this.pendingTasks.remove(taskId))))}return this.chain(initialRequest,(downstreamRequest=>this.backend.handle(downstreamRequest)))}static#_=this.ɵfac=function HttpInterceptorHandler_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpInterceptorHandler)(core["ɵɵinject"](HttpBackend),core["ɵɵinject"](core.EnvironmentInjector))};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:HttpInterceptorHandler,factory:HttpInterceptorHandler.ɵfac})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpInterceptorHandler,[{type:core.Injectable}],(()=>[{type:HttpBackend},{type:core.EnvironmentInjector}]),null);let foreignDocument,nextRequestId=0;class JsonpCallbackContext{}function jsonpCallbackContext(){return"object"==typeof window?window:{}}class JsonpClientBackend{constructor(callbackMap,document){this.callbackMap=callbackMap,this.document=document,this.resolvedPromise=Promise.resolve()}nextCallback(){return"ng_jsonp_callback_"+nextRequestId++}handle(req){if("JSONP"!==req.method)throw new Error("JSONP requests must use JSONP request method.");if("json"!==req.responseType)throw new Error("JSONP requests must use Json response type.");if(req.headers.keys().length>0)throw new Error("JSONP requests do not support headers.");return new Observable.c((observer=>{const callback=this.nextCallback(),url=req.urlWithParams.replace(/=JSONP_CALLBACK(&|$)/,`=${callback}$1`),node=this.document.createElement("script");node.src=url;let body=null,finished=!1;this.callbackMap[callback]=data=>{delete this.callbackMap[callback],body=data,finished=!0};const cleanup=()=>{node.remove(),delete this.callbackMap[callback]};return node.addEventListener("load",(event=>{this.resolvedPromise.then((()=>{cleanup(),finished?(observer.next(new HttpResponse({body,status:200,statusText:"OK",url})),observer.complete()):observer.error(new HttpErrorResponse({url,status:0,statusText:"JSONP Error",error:new Error("JSONP injected script did not invoke callback.")}))}))})),node.addEventListener("error",(error=>{cleanup(),observer.error(new HttpErrorResponse({error,status:0,statusText:"JSONP Error",url}))})),this.document.body.appendChild(node),observer.next({type:HttpEventType.Sent}),()=>{finished||this.removeListeners(node),cleanup()}}))}removeListeners(script){foreignDocument??=this.document.implementation.createHTMLDocument(),foreignDocument.adoptNode(script)}static#_=this.ɵfac=function JsonpClientBackend_Factory(__ngFactoryType__){return new(__ngFactoryType__||JsonpClientBackend)(core["ɵɵinject"](JsonpCallbackContext),core["ɵɵinject"](common.DOCUMENT))};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:JsonpClientBackend,factory:JsonpClientBackend.ɵfac})}function jsonpInterceptorFn(req,next){return"JSONP"===req.method?(0,core.inject)(JsonpClientBackend).handle(req):next(req)}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](JsonpClientBackend,[{type:core.Injectable}],(()=>[{type:JsonpCallbackContext},{type:void 0,decorators:[{type:core.Inject,args:[common.DOCUMENT]}]}]),null);class JsonpInterceptor{constructor(injector){this.injector=injector}intercept(initialRequest,next){return(0,core.runInInjectionContext)(this.injector,(()=>jsonpInterceptorFn(initialRequest,(downstreamRequest=>next.handle(downstreamRequest)))))}static#_=this.ɵfac=function JsonpInterceptor_Factory(__ngFactoryType__){return new(__ngFactoryType__||JsonpInterceptor)(core["ɵɵinject"](core.EnvironmentInjector))};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:JsonpInterceptor,factory:JsonpInterceptor.ɵfac})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](JsonpInterceptor,[{type:core.Injectable}],(()=>[{type:core.EnvironmentInjector}]),null);const XSSI_PREFIX=/^\)\]\}',?\n/;class HttpXhrBackend{constructor(xhrFactory){this.xhrFactory=xhrFactory}handle(req){if("JSONP"===req.method)throw new core["ɵRuntimeError"](-2800,("undefined"==typeof ngDevMode||ngDevMode)&&"Cannot make a JSONP request without JSONP support. To fix the problem, either add the `withJsonpSupport()` call (if `provideHttpClient()` is used) or import the `HttpClientJsonpModule` in the root NgModule.");const xhrFactory=this.xhrFactory;return(xhrFactory.ɵloadImpl?(0,from.H)(xhrFactory.ɵloadImpl()):(0,of.of)(null)).pipe((0,switchMap.n)((()=>new Observable.c((observer=>{const xhr=xhrFactory.build();if(xhr.open(req.method,req.urlWithParams),req.withCredentials&&(xhr.withCredentials=!0),req.headers.forEach(((name,values)=>xhr.setRequestHeader(name,values.join(",")))),req.headers.has("Accept")||xhr.setRequestHeader("Accept","application/json, text/plain, */*"),!req.headers.has("Content-Type")){const detectedType=req.detectContentTypeHeader();null!==detectedType&&xhr.setRequestHeader("Content-Type",detectedType)}if(req.responseType){const responseType=req.responseType.toLowerCase();xhr.responseType="json"!==responseType?responseType:"text"}const reqBody=req.serializeBody();let headerResponse=null;const partialFromXhr=()=>{if(null!==headerResponse)return headerResponse;const statusText=xhr.statusText||"OK",headers=new HttpHeaders(xhr.getAllResponseHeaders()),url=function getResponseUrl(xhr){return"responseURL"in xhr&&xhr.responseURL?xhr.responseURL:/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())?xhr.getResponseHeader("X-Request-URL"):null}(xhr)||req.url;return headerResponse=new HttpHeaderResponse({headers,status:xhr.status,statusText,url}),headerResponse},onLoad=()=>{let{headers,status,statusText,url}=partialFromXhr(),body=null;204!==status&&(body=void 0===xhr.response?xhr.responseText:xhr.response),0===status&&(status=body?200:0);let ok=status>=200&&status<300;if("json"===req.responseType&&"string"==typeof body){const originalBody=body;body=body.replace(XSSI_PREFIX,"");try{body=""!==body?JSON.parse(body):null}catch(error){body=originalBody,ok&&(ok=!1,body={error,text:body})}}ok?(observer.next(new HttpResponse({body,headers,status,statusText,url:url||void 0})),observer.complete()):observer.error(new HttpErrorResponse({error:body,headers,status,statusText,url:url||void 0}))},onError=error=>{const{url}=partialFromXhr(),res=new HttpErrorResponse({error,status:xhr.status||0,statusText:xhr.statusText||"Unknown Error",url:url||void 0});observer.error(res)};let sentHeaders=!1;const onDownProgress=event=>{sentHeaders||(observer.next(partialFromXhr()),sentHeaders=!0);let progressEvent={type:HttpEventType.DownloadProgress,loaded:event.loaded};event.lengthComputable&&(progressEvent.total=event.total),"text"===req.responseType&&xhr.responseText&&(progressEvent.partialText=xhr.responseText),observer.next(progressEvent)},onUpProgress=event=>{let progress={type:HttpEventType.UploadProgress,loaded:event.loaded};event.lengthComputable&&(progress.total=event.total),observer.next(progress)};return xhr.addEventListener("load",onLoad),xhr.addEventListener("error",onError),xhr.addEventListener("timeout",onError),xhr.addEventListener("abort",onError),req.reportProgress&&(xhr.addEventListener("progress",onDownProgress),null!==reqBody&&xhr.upload&&xhr.upload.addEventListener("progress",onUpProgress)),xhr.send(reqBody),observer.next({type:HttpEventType.Sent}),()=>{xhr.removeEventListener("error",onError),xhr.removeEventListener("abort",onError),xhr.removeEventListener("load",onLoad),xhr.removeEventListener("timeout",onError),req.reportProgress&&(xhr.removeEventListener("progress",onDownProgress),null!==reqBody&&xhr.upload&&xhr.upload.removeEventListener("progress",onUpProgress)),xhr.readyState!==xhr.DONE&&xhr.abort()}})))))}static#_=this.ɵfac=function HttpXhrBackend_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpXhrBackend)(core["ɵɵinject"](common.XhrFactory))};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:HttpXhrBackend,factory:HttpXhrBackend.ɵfac})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpXhrBackend,[{type:core.Injectable}],(()=>[{type:common.XhrFactory}]),null);const XSRF_ENABLED=new core.InjectionToken(ngDevMode?"XSRF_ENABLED":""),XSRF_COOKIE_NAME=new core.InjectionToken(ngDevMode?"XSRF_COOKIE_NAME":"",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),XSRF_HEADER_NAME=new core.InjectionToken(ngDevMode?"XSRF_HEADER_NAME":"",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class HttpXsrfTokenExtractor{}class HttpXsrfCookieExtractor{constructor(doc,platform,cookieName){this.doc=doc,this.platform=platform,this.cookieName=cookieName,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const cookieString=this.doc.cookie||"";return cookieString!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,common["ɵparseCookieValue"])(cookieString,this.cookieName),this.lastCookieString=cookieString),this.lastToken}static#_=this.ɵfac=function HttpXsrfCookieExtractor_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpXsrfCookieExtractor)(core["ɵɵinject"](common.DOCUMENT),core["ɵɵinject"](core.PLATFORM_ID),core["ɵɵinject"](XSRF_COOKIE_NAME))};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:HttpXsrfCookieExtractor,factory:HttpXsrfCookieExtractor.ɵfac})}function xsrfInterceptorFn(req,next){const lcUrl=req.url.toLowerCase();if(!(0,core.inject)(XSRF_ENABLED)||"GET"===req.method||"HEAD"===req.method||lcUrl.startsWith("http://")||lcUrl.startsWith("https://"))return next(req);const token=(0,core.inject)(HttpXsrfTokenExtractor).getToken(),headerName=(0,core.inject)(XSRF_HEADER_NAME);return null==token||req.headers.has(headerName)||(req=req.clone({headers:req.headers.set(headerName,token)})),next(req)}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpXsrfCookieExtractor,[{type:core.Injectable}],(()=>[{type:void 0,decorators:[{type:core.Inject,args:[common.DOCUMENT]}]},{type:void 0,decorators:[{type:core.Inject,args:[core.PLATFORM_ID]}]},{type:void 0,decorators:[{type:core.Inject,args:[XSRF_COOKIE_NAME]}]}]),null);class HttpXsrfInterceptor{constructor(injector){this.injector=injector}intercept(initialRequest,next){return(0,core.runInInjectionContext)(this.injector,(()=>xsrfInterceptorFn(initialRequest,(downstreamRequest=>next.handle(downstreamRequest)))))}static#_=this.ɵfac=function HttpXsrfInterceptor_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpXsrfInterceptor)(core["ɵɵinject"](core.EnvironmentInjector))};static#_2=this.ɵprov=core["ɵɵdefineInjectable"]({token:HttpXsrfInterceptor,factory:HttpXsrfInterceptor.ɵfac})}var HttpFeatureKind;function makeHttpFeature(kind,providers){return{ɵkind:kind,ɵproviders:providers}}function provideHttpClient(...features){if(ngDevMode){const featureKinds=new Set(features.map((f=>f.ɵkind)));if(featureKinds.has(HttpFeatureKind.NoXsrfProtection)&&featureKinds.has(HttpFeatureKind.CustomXsrfConfiguration))throw new Error(ngDevMode?"Configuration error: found both withXsrfConfiguration() and withNoXsrfProtection() in the same call to provideHttpClient(), which is a contradiction.":"")}const providers=[HttpClient,HttpXhrBackend,HttpInterceptorHandler,{provide:HttpHandler,useExisting:HttpInterceptorHandler},{provide:HttpBackend,useFactory:()=>(0,core.inject)(FetchBackend,{optional:!0})??(0,core.inject)(HttpXhrBackend)},{provide:HTTP_INTERCEPTOR_FNS,useValue:xsrfInterceptorFn,multi:!0},{provide:XSRF_ENABLED,useValue:!0},{provide:HttpXsrfTokenExtractor,useClass:HttpXsrfCookieExtractor}];for(const feature of features)providers.push(...feature.ɵproviders);return(0,core.makeEnvironmentProviders)(providers)}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpXsrfInterceptor,[{type:core.Injectable}],(()=>[{type:core.EnvironmentInjector}]),null),function(HttpFeatureKind){HttpFeatureKind[HttpFeatureKind.Interceptors=0]="Interceptors",HttpFeatureKind[HttpFeatureKind.LegacyInterceptors=1]="LegacyInterceptors",HttpFeatureKind[HttpFeatureKind.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",HttpFeatureKind[HttpFeatureKind.NoXsrfProtection=3]="NoXsrfProtection",HttpFeatureKind[HttpFeatureKind.JsonpSupport=4]="JsonpSupport",HttpFeatureKind[HttpFeatureKind.RequestsMadeViaParent=5]="RequestsMadeViaParent",HttpFeatureKind[HttpFeatureKind.Fetch=6]="Fetch"}(HttpFeatureKind||(HttpFeatureKind={}));const LEGACY_INTERCEPTOR_FN=new core.InjectionToken(ngDevMode?"LEGACY_INTERCEPTOR_FN":"");function withInterceptorsFromDi(){return makeHttpFeature(HttpFeatureKind.LegacyInterceptors,[{provide:LEGACY_INTERCEPTOR_FN,useFactory:legacyInterceptorFnFactory},{provide:HTTP_INTERCEPTOR_FNS,useExisting:LEGACY_INTERCEPTOR_FN,multi:!0}])}function withXsrfConfiguration({cookieName,headerName}){const providers=[];return void 0!==cookieName&&providers.push({provide:XSRF_COOKIE_NAME,useValue:cookieName}),void 0!==headerName&&providers.push({provide:XSRF_HEADER_NAME,useValue:headerName}),makeHttpFeature(HttpFeatureKind.CustomXsrfConfiguration,providers)}function withJsonpSupport(){return makeHttpFeature(HttpFeatureKind.JsonpSupport,[JsonpClientBackend,{provide:JsonpCallbackContext,useFactory:jsonpCallbackContext},{provide:HTTP_INTERCEPTOR_FNS,useValue:jsonpInterceptorFn,multi:!0}])}class HttpClientXsrfModule{static disable(){return{ngModule:HttpClientXsrfModule,providers:[makeHttpFeature(HttpFeatureKind.NoXsrfProtection,[{provide:XSRF_ENABLED,useValue:!1}]).ɵproviders]}}static withOptions(options={}){return{ngModule:HttpClientXsrfModule,providers:withXsrfConfiguration(options).ɵproviders}}static#_=this.ɵfac=function HttpClientXsrfModule_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpClientXsrfModule)};static#_2=this.ɵmod=core["ɵɵdefineNgModule"]({type:HttpClientXsrfModule});static#_3=this.ɵinj=core["ɵɵdefineInjector"]({providers:[HttpXsrfInterceptor,{provide:HTTP_INTERCEPTORS,useExisting:HttpXsrfInterceptor,multi:!0},{provide:HttpXsrfTokenExtractor,useClass:HttpXsrfCookieExtractor},withXsrfConfiguration({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"}).ɵproviders,{provide:XSRF_ENABLED,useValue:!0}]})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpClientXsrfModule,[{type:core.NgModule,args:[{providers:[HttpXsrfInterceptor,{provide:HTTP_INTERCEPTORS,useExisting:HttpXsrfInterceptor,multi:!0},{provide:HttpXsrfTokenExtractor,useClass:HttpXsrfCookieExtractor},withXsrfConfiguration({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"}).ɵproviders,{provide:XSRF_ENABLED,useValue:!0}]}]}],null,null);class HttpClientModule{static#_=this.ɵfac=function HttpClientModule_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpClientModule)};static#_2=this.ɵmod=core["ɵɵdefineNgModule"]({type:HttpClientModule});static#_3=this.ɵinj=core["ɵɵdefineInjector"]({providers:[provideHttpClient(withInterceptorsFromDi())]})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpClientModule,[{type:core.NgModule,args:[{providers:[provideHttpClient(withInterceptorsFromDi())]}]}],null,null);class HttpClientJsonpModule{static#_=this.ɵfac=function HttpClientJsonpModule_Factory(__ngFactoryType__){return new(__ngFactoryType__||HttpClientJsonpModule)};static#_2=this.ɵmod=core["ɵɵdefineNgModule"]({type:HttpClientJsonpModule});static#_3=this.ɵinj=core["ɵɵdefineInjector"]({providers:[withJsonpSupport().ɵproviders]})}("undefined"==typeof ngDevMode||ngDevMode)&&core["ɵsetClassMetadata"](HttpClientJsonpModule,[{type:core.NgModule,args:[{providers:[withJsonpSupport().ɵproviders]}]}],null,null);const HTTP_TRANSFER_CACHE_ORIGIN_MAP=new core.InjectionToken(ngDevMode?"HTTP_TRANSFER_CACHE_ORIGIN_MAP":""),BODY="b",HEADERS="h",STATUS="s",STATUS_TEXT="st",REQ_URL="u",RESPONSE_TYPE="rt",CACHE_OPTIONS=new core.InjectionToken(ngDevMode?"HTTP_TRANSFER_STATE_CACHE_OPTIONS":""),ALLOWED_METHODS=["GET","HEAD"];function transferCacheInterceptorFn(req,next){const{isCacheActive,...globalOptions}=(0,core.inject)(CACHE_OPTIONS),{transferCache:requestOptions,method:requestMethod}=req;if(!isCacheActive||!1===requestOptions||"POST"===requestMethod&&!globalOptions.includePostRequests&&!requestOptions||"POST"!==requestMethod&&!ALLOWED_METHODS.includes(requestMethod)||!globalOptions.includeRequestsWithAuthHeaders&&function hasAuthHeaders(req){return req.headers.has("authorization")||req.headers.has("proxy-authorization")}(req)||!1===globalOptions.filter?.(req))return next(req);const transferState=(0,core.inject)(core.TransferState),originMap=(0,core.inject)(HTTP_TRANSFER_CACHE_ORIGIN_MAP,{optional:!0}),isServer=(0,common.isPlatformServer)((0,core.inject)(core.PLATFORM_ID));if(originMap&&!isServer)throw new core["ɵRuntimeError"](2803,ngDevMode&&"Angular detected that the `HTTP_TRANSFER_CACHE_ORIGIN_MAP` token is configured and present in the client side code. Please ensure that this token is only provided in the server code of the application.");const requestUrl=isServer&&originMap?function mapRequestOriginUrl(url,originMap){const origin=new URL(url,"resolve://").origin,mappedOrigin=originMap[origin];if(!mappedOrigin)return url;("undefined"==typeof ngDevMode||ngDevMode)&&function verifyMappedOrigin(url){if("/"!==new URL(url,"resolve://").pathname)throw new core["ɵRuntimeError"](2804,`Angular detected a URL with a path segment in the value provided for the \`HTTP_TRANSFER_CACHE_ORIGIN_MAP\` token: ${url}. The map should only contain origins without any other segments.`)}(mappedOrigin);return url.replace(origin,mappedOrigin)}(req.url,originMap):req.url,storeKey=function makeCacheKey(request,mappedRequestUrl){const{params,method,responseType}=request,encodedParams=sortAndConcatParams(params);let serializedBody=request.serializeBody();serializedBody instanceof URLSearchParams?serializedBody=sortAndConcatParams(serializedBody):"string"!=typeof serializedBody&&(serializedBody="");const hash=function generateHash(value){let hash=0;for(const char of value)hash=Math.imul(31,hash)+char.charCodeAt(0)|0;return hash+=2147483648,hash.toString()}([method,responseType,mappedRequestUrl,serializedBody,encodedParams].join("|"));return(0,core.makeStateKey)(hash)}(req,requestUrl),response=transferState.get(storeKey,null);let headersToInclude=globalOptions.includeHeaders;if("object"==typeof requestOptions&&requestOptions.includeHeaders&&(headersToInclude=requestOptions.includeHeaders),response){const{[BODY]:undecodedBody,[RESPONSE_TYPE]:responseType,[HEADERS]:httpHeaders,[STATUS]:status,[STATUS_TEXT]:statusText,[REQ_URL]:url}=response;let body=undecodedBody;switch(responseType){case"arraybuffer":body=(new TextEncoder).encode(undecodedBody).buffer;break;case"blob":body=new Blob([undecodedBody])}let headers=new HttpHeaders(httpHeaders);return("undefined"==typeof ngDevMode||ngDevMode)&&(headers=function appendMissingHeadersDetection(url,headers,headersToInclude){const warningProduced=new Set;return new Proxy(headers,{get(target,prop){const value=Reflect.get(target,prop),methods=new Set(["get","has","getAll"]);return"function"==typeof value&&methods.has(prop)?headerName=>{const key=(prop+":"+headerName).toLowerCase();if(!headersToInclude.includes(headerName)&&!warningProduced.has(key)){warningProduced.add(key);const truncatedUrl=(0,core["ɵtruncateMiddle"])(url);console.warn((0,core["ɵformatRuntimeError"])(2802,`Angular detected that the \`${headerName}\` header is accessed, but the value of the header was not transferred from the server to the client by the HttpTransferCache. To include the value of the \`${headerName}\` header for the \`${truncatedUrl}\` request, use the \`includeHeaders\` list. The \`includeHeaders\` can be defined either on a request level by adding the \`transferCache\` parameter, or on an application level by adding the \`httpCacheTransfer.includeHeaders\` argument to the \`provideClientHydration()\` call. `))}return value.apply(target,[headerName])}:value}})}(req.url,headers,headersToInclude??[])),(0,of.of)(new HttpResponse({body,headers,status,statusText,url}))}return next(req).pipe((0,tap.M)((event=>{event instanceof HttpResponse&&isServer&&transferState.set(storeKey,{[BODY]:event.body,[HEADERS]:getFilteredHeaders(event.headers,headersToInclude),[STATUS]:event.status,[STATUS_TEXT]:event.statusText,[REQ_URL]:requestUrl,[RESPONSE_TYPE]:req.responseType})})))}function getFilteredHeaders(headers,includeHeaders){if(!includeHeaders)return{};const headersMap={};for(const key of includeHeaders){const values=headers.getAll(key);null!==values&&(headersMap[key]=values)}return headersMap}function sortAndConcatParams(params){return[...params.keys()].sort().map((k=>`${k}=${params.getAll(k)}`)).join("&")}function withHttpTransferCache(cacheOptions){return[{provide:CACHE_OPTIONS,useFactory:()=>((0,core["ɵperformanceMarkFeature"])("NgHttpTransferCache"),{isCacheActive:!0,...cacheOptions})},{provide:HTTP_ROOT_INTERCEPTOR_FNS,useValue:transferCacheInterceptorFn,multi:!0,deps:[core.TransferState,CACHE_OPTIONS]},{provide:core.APP_BOOTSTRAP_LISTENER,multi:!0,useFactory:()=>{const appRef=(0,core.inject)(core.ApplicationRef),cacheState=(0,core.inject)(CACHE_OPTIONS);return()=>{(0,core["ɵwhenStable"])(appRef).then((()=>{cacheState.isCacheActive=!1}))}}}]}},"./node_modules/@angular/compiler/fesm2022/compiler.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AST:()=>AST,ASTWithName:()=>ASTWithName,ASTWithSource:()=>ASTWithSource,AbsoluteSourceSpan:()=>AbsoluteSourceSpan,ArrayType:()=>ArrayType,ArrowFunctionExpr:()=>ArrowFunctionExpr,AstMemoryEfficientTransformer:()=>AstMemoryEfficientTransformer,AstTransformer:()=>AstTransformer,Attribute:()=>Attribute,Binary:()=>Binary,BinaryOperator:()=>BinaryOperator,BinaryOperatorExpr:()=>BinaryOperatorExpr,BindingPipe:()=>BindingPipe,BindingType:()=>BindingType,Block:()=>Block,BlockParameter:()=>BlockParameter,BoundElementProperty:()=>BoundElementProperty,BuiltinType:()=>BuiltinType,BuiltinTypeName:()=>BuiltinTypeName,CUSTOM_ELEMENTS_SCHEMA:()=>CUSTOM_ELEMENTS_SCHEMA,Call:()=>Call,Chain:()=>Chain,ChangeDetectionStrategy:()=>ChangeDetectionStrategy,CommaExpr:()=>CommaExpr,Comment:()=>Comment,CompilerConfig:()=>CompilerConfig,Conditional:()=>Conditional,ConditionalExpr:()=>ConditionalExpr,ConstantPool:()=>ConstantPool,CssSelector:()=>CssSelector,DEFAULT_INTERPOLATION_CONFIG:()=>DEFAULT_INTERPOLATION_CONFIG,DYNAMIC_TYPE:()=>DYNAMIC_TYPE,DeclareFunctionStmt:()=>DeclareFunctionStmt,DeclareVarStmt:()=>DeclareVarStmt,DomElementSchemaRegistry:()=>DomElementSchemaRegistry,DynamicImportExpr:()=>DynamicImportExpr,EOF:()=>EOF,Element:()=>Element,ElementSchemaRegistry:()=>ElementSchemaRegistry,EmitterVisitorContext:()=>EmitterVisitorContext,EmptyExpr:()=>EmptyExpr$1,Expansion:()=>Expansion,ExpansionCase:()=>ExpansionCase,Expression:()=>Expression,ExpressionBinding:()=>ExpressionBinding,ExpressionStatement:()=>ExpressionStatement,ExpressionType:()=>ExpressionType,ExternalExpr:()=>ExternalExpr,ExternalReference:()=>ExternalReference,FactoryTarget:()=>FactoryTarget$1,FunctionExpr:()=>FunctionExpr,HtmlParser:()=>HtmlParser,HtmlTagDefinition:()=>HtmlTagDefinition,I18NHtmlParser:()=>I18NHtmlParser,IfStmt:()=>IfStmt,ImplicitReceiver:()=>ImplicitReceiver,InstantiateExpr:()=>InstantiateExpr,Interpolation:()=>Interpolation$1,InterpolationConfig:()=>InterpolationConfig,InvokeFunctionExpr:()=>InvokeFunctionExpr,JSDocComment:()=>JSDocComment,JitEvaluator:()=>JitEvaluator,KeyedRead:()=>KeyedRead,KeyedWrite:()=>KeyedWrite,LeadingComment:()=>LeadingComment,LetDeclaration:()=>LetDeclaration,Lexer:()=>Lexer,LiteralArray:()=>LiteralArray,LiteralArrayExpr:()=>LiteralArrayExpr,LiteralExpr:()=>LiteralExpr,LiteralMap:()=>LiteralMap,LiteralMapExpr:()=>LiteralMapExpr,LiteralPrimitive:()=>LiteralPrimitive,LocalizedString:()=>LocalizedString,MapType:()=>MapType,MessageBundle:()=>MessageBundle,NONE_TYPE:()=>NONE_TYPE,NO_ERRORS_SCHEMA:()=>NO_ERRORS_SCHEMA,NodeWithI18n:()=>NodeWithI18n,NonNullAssert:()=>NonNullAssert,NotExpr:()=>NotExpr,ParseError:()=>ParseError,ParseErrorLevel:()=>ParseErrorLevel,ParseLocation:()=>ParseLocation,ParseSourceFile:()=>ParseSourceFile,ParseSourceSpan:()=>ParseSourceSpan,ParseSpan:()=>ParseSpan,ParseTreeResult:()=>ParseTreeResult,ParsedEvent:()=>ParsedEvent,ParsedEventType:()=>ParsedEventType,ParsedProperty:()=>ParsedProperty,ParsedPropertyType:()=>ParsedPropertyType,ParsedVariable:()=>ParsedVariable,Parser:()=>Parser,ParserError:()=>ParserError,PrefixNot:()=>PrefixNot,PropertyRead:()=>PropertyRead,PropertyWrite:()=>PropertyWrite,R3BoundTarget:()=>R3BoundTarget,R3Identifiers:()=>Identifiers,R3NgModuleMetadataKind:()=>R3NgModuleMetadataKind,R3SelectorScopeMode:()=>R3SelectorScopeMode,R3TargetBinder:()=>R3TargetBinder,R3TemplateDependencyKind:()=>R3TemplateDependencyKind,ReadKeyExpr:()=>ReadKeyExpr,ReadPropExpr:()=>ReadPropExpr,ReadVarExpr:()=>ReadVarExpr,RecursiveAstVisitor:()=>RecursiveAstVisitor,RecursiveVisitor:()=>RecursiveVisitor,ResourceLoader:()=>ResourceLoader,ReturnStatement:()=>ReturnStatement,STRING_TYPE:()=>STRING_TYPE,SafeCall:()=>SafeCall,SafeKeyedRead:()=>SafeKeyedRead,SafePropertyRead:()=>SafePropertyRead,SelectorContext:()=>SelectorContext,SelectorListContext:()=>SelectorListContext,SelectorMatcher:()=>SelectorMatcher,Serializer:()=>Serializer,SplitInterpolation:()=>SplitInterpolation,Statement:()=>Statement,StmtModifier:()=>StmtModifier,TagContentType:()=>TagContentType,TaggedTemplateExpr:()=>TaggedTemplateExpr,TemplateBindingParseResult:()=>TemplateBindingParseResult,TemplateLiteral:()=>TemplateLiteral,TemplateLiteralElement:()=>TemplateLiteralElement,Text:()=>Text,ThisReceiver:()=>ThisReceiver,TmplAstBlockNode:()=>BlockNode,TmplAstBoundAttribute:()=>BoundAttribute,TmplAstBoundDeferredTrigger:()=>BoundDeferredTrigger,TmplAstBoundEvent:()=>BoundEvent,TmplAstBoundText:()=>BoundText,TmplAstContent:()=>Content,TmplAstDeferredBlock:()=>DeferredBlock,TmplAstDeferredBlockError:()=>DeferredBlockError,TmplAstDeferredBlockLoading:()=>DeferredBlockLoading,TmplAstDeferredBlockPlaceholder:()=>DeferredBlockPlaceholder,TmplAstDeferredTrigger:()=>DeferredTrigger,TmplAstElement:()=>Element$1,TmplAstForLoopBlock:()=>ForLoopBlock,TmplAstForLoopBlockEmpty:()=>ForLoopBlockEmpty,TmplAstHoverDeferredTrigger:()=>HoverDeferredTrigger,TmplAstIcu:()=>Icu$1,TmplAstIdleDeferredTrigger:()=>IdleDeferredTrigger,TmplAstIfBlock:()=>IfBlock,TmplAstIfBlockBranch:()=>IfBlockBranch,TmplAstImmediateDeferredTrigger:()=>ImmediateDeferredTrigger,TmplAstInteractionDeferredTrigger:()=>InteractionDeferredTrigger,TmplAstLetDeclaration:()=>LetDeclaration$1,TmplAstRecursiveVisitor:()=>RecursiveVisitor$1,TmplAstReference:()=>Reference,TmplAstSwitchBlock:()=>SwitchBlock,TmplAstSwitchBlockCase:()=>SwitchBlockCase,TmplAstTemplate:()=>Template,TmplAstText:()=>Text$3,TmplAstTextAttribute:()=>TextAttribute,TmplAstTimerDeferredTrigger:()=>TimerDeferredTrigger,TmplAstUnknownBlock:()=>UnknownBlock,TmplAstVariable:()=>Variable,TmplAstViewportDeferredTrigger:()=>ViewportDeferredTrigger,Token:()=>Token,TokenType:()=>TokenType,TransplantedType:()=>TransplantedType,TreeError:()=>TreeError,Type:()=>Type,TypeModifier:()=>TypeModifier,TypeofExpr:()=>TypeofExpr,Unary:()=>Unary,UnaryOperator:()=>UnaryOperator,UnaryOperatorExpr:()=>UnaryOperatorExpr,VERSION:()=>VERSION,VariableBinding:()=>VariableBinding,Version:()=>Version,ViewEncapsulation:()=>ViewEncapsulation,WrappedNodeExpr:()=>WrappedNodeExpr,WriteKeyExpr:()=>WriteKeyExpr,WritePropExpr:()=>WritePropExpr,WriteVarExpr:()=>WriteVarExpr,Xliff:()=>Xliff,Xliff2:()=>Xliff2,Xmb:()=>Xmb,XmlParser:()=>XmlParser,Xtb:()=>Xtb,compileClassDebugInfo:()=>compileClassDebugInfo,compileClassMetadata:()=>compileClassMetadata,compileComponentClassMetadata:()=>compileComponentClassMetadata,compileComponentDeclareClassMetadata:()=>compileComponentDeclareClassMetadata,compileComponentFromMetadata:()=>compileComponentFromMetadata,compileDeclareClassMetadata:()=>compileDeclareClassMetadata,compileDeclareComponentFromMetadata:()=>compileDeclareComponentFromMetadata,compileDeclareDirectiveFromMetadata:()=>compileDeclareDirectiveFromMetadata,compileDeclareFactoryFunction:()=>compileDeclareFactoryFunction,compileDeclareInjectableFromMetadata:()=>compileDeclareInjectableFromMetadata,compileDeclareInjectorFromMetadata:()=>compileDeclareInjectorFromMetadata,compileDeclareNgModuleFromMetadata:()=>compileDeclareNgModuleFromMetadata,compileDeclarePipeFromMetadata:()=>compileDeclarePipeFromMetadata,compileDeferResolverFunction:()=>compileDeferResolverFunction,compileDirectiveFromMetadata:()=>compileDirectiveFromMetadata,compileFactoryFunction:()=>compileFactoryFunction,compileInjectable:()=>compileInjectable,compileInjector:()=>compileInjector,compileNgModule:()=>compileNgModule,compileOpaqueAsyncClassMetadata:()=>compileOpaqueAsyncClassMetadata,compilePipeFromMetadata:()=>compilePipeFromMetadata,computeMsgId:()=>computeMsgId,core:()=>core,createCssSelectorFromNode:()=>createCssSelectorFromNode,createInjectableType:()=>createInjectableType,createMayBeForwardRefExpression:()=>createMayBeForwardRefExpression,devOnlyGuardedExpression:()=>devOnlyGuardedExpression,emitDistinctChangesOnlyDefaultValue:()=>emitDistinctChangesOnlyDefaultValue,encapsulateStyle:()=>encapsulateStyle,findMatchingDirectivesAndPipes:()=>findMatchingDirectivesAndPipes,getHtmlTagDefinition:()=>getHtmlTagDefinition,getNsPrefix:()=>getNsPrefix,getSafePropertyAccessString:()=>getSafePropertyAccessString,identifierName:()=>identifierName,isIdentifier:()=>isIdentifier,isNgContainer:()=>isNgContainer,isNgContent:()=>isNgContent,isNgTemplate:()=>isNgTemplate,jsDocComment:()=>jsDocComment,leadingComment:()=>leadingComment,literal:()=>literal,literalMap:()=>literalMap,makeBindingParser:()=>makeBindingParser,mergeNsAndName:()=>mergeNsAndName,outputAst:()=>output_ast,parseHostBindings:()=>parseHostBindings,parseTemplate:()=>parseTemplate,preserveWhitespacesDefault:()=>preserveWhitespacesDefault,publishFacade:()=>publishFacade,r3JitTypeSourceSpan:()=>r3JitTypeSourceSpan,sanitizeIdentifier:()=>sanitizeIdentifier,splitNsName:()=>splitNsName,tmplAstVisitAll:()=>visitAll$1,verifyHostBindings:()=>verifyHostBindings,visitAll:()=>visitAll});const _SELECTOR_REGEXP=new RegExp("(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=([\"']?)([^\\]\"']*)\\5)?\\])|(\\))|(\\s*,\\s*)","g");class CssSelector{constructor(){this.element=null,this.classNames=[],this.attrs=[],this.notSelectors=[]}static parse(selector){const results=[],_addResult=(res,cssSel)=>{cssSel.notSelectors.length>0&&!cssSel.element&&0==cssSel.classNames.length&&0==cssSel.attrs.length&&(cssSel.element="*"),res.push(cssSel)};let match,cssSelector=new CssSelector,current=cssSelector,inNot=!1;for(_SELECTOR_REGEXP.lastIndex=0;match=_SELECTOR_REGEXP.exec(selector);){if(match[1]){if(inNot)throw new Error("Nesting :not in a selector is not allowed");inNot=!0,current=new CssSelector,cssSelector.notSelectors.push(current)}const tag=match[2];if(tag){const prefix=match[3];"#"===prefix?current.addAttribute("id",tag.slice(1)):"."===prefix?current.addClassName(tag.slice(1)):current.setElement(tag)}const attribute=match[4];if(attribute&¤t.addAttribute(current.unescapeAttribute(attribute),match[6]),match[7]&&(inNot=!1,current=cssSelector),match[8]){if(inNot)throw new Error("Multiple selectors in :not are not supported");_addResult(results,cssSelector),cssSelector=current=new CssSelector}}return _addResult(results,cssSelector),results}unescapeAttribute(attr){let result="",escaping=!1;for(let i=0;i0&&result.push("class",this.classNames.join(" ")),result.concat(this.attrs)}addAttribute(name,value=""){this.attrs.push(name,value&&value.toLowerCase()||"")}addClassName(name){this.classNames.push(name.toLowerCase())}toString(){let res=this.element||"";if(this.classNames&&this.classNames.forEach((klass=>res+=`.${klass}`)),this.attrs)for(let i=0;ires+=`:not(${notSelector})`)),res}}class SelectorMatcher{constructor(){this._elementMap=new Map,this._elementPartialMap=new Map,this._classMap=new Map,this._classPartialMap=new Map,this._attrValueMap=new Map,this._attrValuePartialMap=new Map,this._listContexts=[]}static createNotMatcher(notSelectors){const notMatcher=new SelectorMatcher;return notMatcher.addSelectables(notSelectors,null),notMatcher}addSelectables(cssSelectors,callbackCtxt){let listContext=null;cssSelectors.length>1&&(listContext=new SelectorListContext(cssSelectors),this._listContexts.push(listContext));for(let i=0;i0&&(!this.listContext||!this.listContext.alreadyMatched)){result=!SelectorMatcher.createNotMatcher(this.notSelectors).match(cssSelector,null)}return!result||!callback||this.listContext&&this.listContext.alreadyMatched||(this.listContext&&(this.listContext.alreadyMatched=!0),callback(this.selector,this.cbContext)),result}}const emitDistinctChangesOnlyDefaultValue=!0;var ViewEncapsulation,ChangeDetectionStrategy,InputFlags;!function(ViewEncapsulation){ViewEncapsulation[ViewEncapsulation.Emulated=0]="Emulated",ViewEncapsulation[ViewEncapsulation.None=2]="None",ViewEncapsulation[ViewEncapsulation.ShadowDom=3]="ShadowDom"}(ViewEncapsulation||(ViewEncapsulation={})),function(ChangeDetectionStrategy){ChangeDetectionStrategy[ChangeDetectionStrategy.OnPush=0]="OnPush",ChangeDetectionStrategy[ChangeDetectionStrategy.Default=1]="Default"}(ChangeDetectionStrategy||(ChangeDetectionStrategy={})),function(InputFlags){InputFlags[InputFlags.None=0]="None",InputFlags[InputFlags.SignalBased=1]="SignalBased",InputFlags[InputFlags.HasDecoratorInputTransform=2]="HasDecoratorInputTransform"}(InputFlags||(InputFlags={}));const CUSTOM_ELEMENTS_SCHEMA={name:"custom-elements"},NO_ERRORS_SCHEMA={name:"no-errors-schema"},Type$1=Function;var SecurityContext,MissingTranslationStrategy;function parserSelectorToR3Selector(selector){const positive=function parserSelectorToSimpleSelector(selector){const classes=selector.classNames&&selector.classNames.length?[8,...selector.classNames]:[];return[selector.element&&"*"!==selector.element?selector.element:"",...selector.attrs,...classes]}(selector),negative=selector.notSelectors&&selector.notSelectors.length?selector.notSelectors.map((notSelector=>function parserSelectorToNegativeSelector(selector){const classes=selector.classNames&&selector.classNames.length?[8,...selector.classNames]:[];return selector.element?[5,selector.element,...selector.attrs,...classes]:selector.attrs.length?[3,...selector.attrs,...classes]:selector.classNames&&selector.classNames.length?[9,...selector.classNames]:[]}(notSelector))):[];return positive.concat(...negative)}function parseSelectorToR3Selector(selector){return selector?CssSelector.parse(selector).map(parserSelectorToR3Selector):[]}!function(SecurityContext){SecurityContext[SecurityContext.NONE=0]="NONE",SecurityContext[SecurityContext.HTML=1]="HTML",SecurityContext[SecurityContext.STYLE=2]="STYLE",SecurityContext[SecurityContext.SCRIPT=3]="SCRIPT",SecurityContext[SecurityContext.URL=4]="URL",SecurityContext[SecurityContext.RESOURCE_URL=5]="RESOURCE_URL"}(SecurityContext||(SecurityContext={})),function(MissingTranslationStrategy){MissingTranslationStrategy[MissingTranslationStrategy.Error=0]="Error",MissingTranslationStrategy[MissingTranslationStrategy.Warning=1]="Warning",MissingTranslationStrategy[MissingTranslationStrategy.Ignore=2]="Ignore"}(MissingTranslationStrategy||(MissingTranslationStrategy={}));var core=Object.freeze({__proto__:null,emitDistinctChangesOnlyDefaultValue,get ViewEncapsulation(){return ViewEncapsulation},get ChangeDetectionStrategy(){return ChangeDetectionStrategy},get InputFlags(){return InputFlags},CUSTOM_ELEMENTS_SCHEMA,NO_ERRORS_SCHEMA,Type:Type$1,get SecurityContext(){return SecurityContext},get MissingTranslationStrategy(){return MissingTranslationStrategy},parseSelectorToR3Selector});let textEncoder;function digest$1(message){return message.id||computeDigest(message)}function computeDigest(message){return function sha1(str){textEncoder??=new TextEncoder;const utf8=[...textEncoder.encode(str)],words32=function bytesToWords32(bytes,endian){const size=bytes.length+3>>>2,words32=[];for(let i=0;i>5]|=128<<24-len%32,words32[15+(len+64>>9<<4)]=len;for(let i=0;ia.visit(serializerVisitor$1,null)))}(message.nodes).join("")+`[${message.meaning}]`)}function decimalDigest(message,preservePlaceholders){return message.id||computeDecimalDigest(message,preservePlaceholders)}function computeDecimalDigest(message,preservePlaceholders){const visitor=new _SerializerIgnoreExpVisitor(preservePlaceholders);return computeMsgId(message.nodes.map((a=>a.visit(visitor,null))).join(""),message.meaning)}class _SerializerVisitor{visitText(text,context){return text.value}visitContainer(container,context){return`[${container.children.map((child=>child.visit(this))).join(", ")}]`}visitIcu(icu,context){const strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.expression}, ${icu.type}, ${strCases.join(", ")}}`}visitTagPlaceholder(ph,context){return ph.isVoid?``:`${ph.children.map((child=>child.visit(this))).join(", ")}`}visitPlaceholder(ph,context){return ph.value?`${ph.value}`:``}visitIcuPlaceholder(ph,context){return`${ph.value.visit(this)}`}visitBlockPlaceholder(ph,context){return`${ph.children.map((child=>child.visit(this))).join(", ")}`}}const serializerVisitor$1=new _SerializerVisitor;class _SerializerIgnoreExpVisitor extends _SerializerVisitor{constructor(preservePlaceholders){super(),this.preservePlaceholders=preservePlaceholders}visitPlaceholder(ph,context){return this.preservePlaceholders?super.visitPlaceholder(ph,context):``}visitIcu(icu){let strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.type}, ${strCases.join(", ")}}`}}function toHexU32(value){return(value>>>0).toString(16).padStart(8,"0")}function fk(index,b,c,d){return index<20?[b&c|~b&d,1518500249]:index<40?[b^c^d,1859775393]:index<60?[b&c|b&d|c&d,2400959708]:[b^c^d,3395469782]}function fingerprint(str){textEncoder??=new TextEncoder;const utf8=textEncoder.encode(str),view=new DataView(utf8.buffer,utf8.byteOffset,utf8.byteLength);let hi=hash32(view,utf8.length,0),lo=hash32(view,utf8.length,102072);return 0!=hi||0!=lo&&1!=lo||(hi^=319790063,lo^=-1801410264),BigInt.asUintN(32,BigInt(hi))<>BigInt(63)&BigInt(1),msgFingerprint+=fingerprint(meaning)),BigInt.asUintN(63,msgFingerprint).toString()}function hash32(view,length,c){let a=2654435769,b=2654435769,index=0;const end=length-12;for(;index<=end;index+=12){a+=view.getUint32(index,!0),b+=view.getUint32(index+4,!0);const res=mix(a,b,c+=view.getUint32(index+8,!0));a=res[0],b=res[1],c=res[2]}const remainder=length-index;return c+=length,remainder>=4?(a+=view.getUint32(index,!0),index+=4,remainder>=8?(b+=view.getUint32(index,!0),index+=4,remainder>=9&&(c+=view.getUint8(index++)<<8),remainder>=10&&(c+=view.getUint8(index++)<<16),11===remainder&&(c+=view.getUint8(index++)<<24)):(remainder>=5&&(b+=view.getUint8(index++)),remainder>=6&&(b+=view.getUint8(index++)<<8),7===remainder&&(b+=view.getUint8(index++)<<16))):(remainder>=1&&(a+=view.getUint8(index++)),remainder>=2&&(a+=view.getUint8(index++)<<8),3===remainder&&(a+=view.getUint8(index++)<<16)),mix(a,b,c)[2]}function mix(a,b,c){return a-=b,a-=c,b-=c,b-=a^=c>>>13,c-=a,c-=b^=a<<8,a-=b,a-=c^=b>>>13,b-=c,b-=a^=c>>>12,c-=a,c-=b^=a<<16,a-=b,a-=c^=b>>>5,b-=c,b-=a^=c>>>3,c-=a,c-=b^=a<<10,[a,b,c^=b>>>15]}var Endian,TypeModifier,BuiltinTypeName;function add32(a,b){return function add32to64(a,b){const low=(65535&a)+(65535&b),high=(a>>>16)+(b>>>16)+(low>>>16);return[high>>>16,high<<16|65535&low]}(a,b)[1]}function rol32(a,count){return a<>>32-count}function byteAt(bytes,index){return index>=bytes.length?0:bytes[index]}function wordAt(bytes,index,endian){let word=0;if(endian===Endian.Big)for(let i=0;i<4;i++)word+=byteAt(bytes,index+i)<<24-8*i;else for(let i=0;i<4;i++)word+=byteAt(bytes,index+i)<<8*i;return word}!function(Endian){Endian[Endian.Little=0]="Little",Endian[Endian.Big=1]="Big"}(Endian||(Endian={})),function(TypeModifier){TypeModifier[TypeModifier.None=0]="None",TypeModifier[TypeModifier.Const=1]="Const"}(TypeModifier||(TypeModifier={}));class Type{constructor(modifiers=TypeModifier.None){this.modifiers=modifiers}hasModifier(modifier){return!!(this.modifiers&modifier)}}!function(BuiltinTypeName){BuiltinTypeName[BuiltinTypeName.Dynamic=0]="Dynamic",BuiltinTypeName[BuiltinTypeName.Bool=1]="Bool",BuiltinTypeName[BuiltinTypeName.String=2]="String",BuiltinTypeName[BuiltinTypeName.Int=3]="Int",BuiltinTypeName[BuiltinTypeName.Number=4]="Number",BuiltinTypeName[BuiltinTypeName.Function=5]="Function",BuiltinTypeName[BuiltinTypeName.Inferred=6]="Inferred",BuiltinTypeName[BuiltinTypeName.None=7]="None"}(BuiltinTypeName||(BuiltinTypeName={}));class BuiltinType extends Type{constructor(name,modifiers){super(modifiers),this.name=name}visitType(visitor,context){return visitor.visitBuiltinType(this,context)}}class ExpressionType extends Type{constructor(value,modifiers,typeParams=null){super(modifiers),this.value=value,this.typeParams=typeParams}visitType(visitor,context){return visitor.visitExpressionType(this,context)}}class ArrayType extends Type{constructor(of,modifiers){super(modifiers),this.of=of}visitType(visitor,context){return visitor.visitArrayType(this,context)}}class MapType extends Type{constructor(valueType,modifiers){super(modifiers),this.valueType=valueType||null}visitType(visitor,context){return visitor.visitMapType(this,context)}}class TransplantedType extends Type{constructor(type,modifiers){super(modifiers),this.type=type}visitType(visitor,context){return visitor.visitTransplantedType(this,context)}}const DYNAMIC_TYPE=new BuiltinType(BuiltinTypeName.Dynamic),INFERRED_TYPE=new BuiltinType(BuiltinTypeName.Inferred),BOOL_TYPE=new BuiltinType(BuiltinTypeName.Bool),INT_TYPE=new BuiltinType(BuiltinTypeName.Int),NUMBER_TYPE=new BuiltinType(BuiltinTypeName.Number),STRING_TYPE=new BuiltinType(BuiltinTypeName.String),FUNCTION_TYPE=new BuiltinType(BuiltinTypeName.Function),NONE_TYPE=new BuiltinType(BuiltinTypeName.None);var UnaryOperator,BinaryOperator;function nullSafeIsEquivalent(base,other){return null==base||null==other?base==other:base.isEquivalent(other)}function areAllEquivalentPredicate(base,other,equivalentPredicate){const len=base.length;if(len!==other.length)return!1;for(let i=0;ibaseElement.isEquivalent(otherElement)))}!function(UnaryOperator){UnaryOperator[UnaryOperator.Minus=0]="Minus",UnaryOperator[UnaryOperator.Plus=1]="Plus"}(UnaryOperator||(UnaryOperator={})),function(BinaryOperator){BinaryOperator[BinaryOperator.Equals=0]="Equals",BinaryOperator[BinaryOperator.NotEquals=1]="NotEquals",BinaryOperator[BinaryOperator.Identical=2]="Identical",BinaryOperator[BinaryOperator.NotIdentical=3]="NotIdentical",BinaryOperator[BinaryOperator.Minus=4]="Minus",BinaryOperator[BinaryOperator.Plus=5]="Plus",BinaryOperator[BinaryOperator.Divide=6]="Divide",BinaryOperator[BinaryOperator.Multiply=7]="Multiply",BinaryOperator[BinaryOperator.Modulo=8]="Modulo",BinaryOperator[BinaryOperator.And=9]="And",BinaryOperator[BinaryOperator.Or=10]="Or",BinaryOperator[BinaryOperator.BitwiseOr=11]="BitwiseOr",BinaryOperator[BinaryOperator.BitwiseAnd=12]="BitwiseAnd",BinaryOperator[BinaryOperator.Lower=13]="Lower",BinaryOperator[BinaryOperator.LowerEquals=14]="LowerEquals",BinaryOperator[BinaryOperator.Bigger=15]="Bigger",BinaryOperator[BinaryOperator.BiggerEquals=16]="BiggerEquals",BinaryOperator[BinaryOperator.NullishCoalesce=17]="NullishCoalesce"}(BinaryOperator||(BinaryOperator={}));class Expression{constructor(type,sourceSpan){this.type=type||null,this.sourceSpan=sourceSpan||null}prop(name,sourceSpan){return new ReadPropExpr(this,name,null,sourceSpan)}key(index,type,sourceSpan){return new ReadKeyExpr(this,index,type,sourceSpan)}callFn(params,sourceSpan,pure){return new InvokeFunctionExpr(this,params,null,sourceSpan,pure)}instantiate(params,type,sourceSpan){return new InstantiateExpr(this,params,type,sourceSpan)}conditional(trueCase,falseCase=null,sourceSpan){return new ConditionalExpr(this,trueCase,falseCase,null,sourceSpan)}equals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Equals,this,rhs,null,sourceSpan)}notEquals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.NotEquals,this,rhs,null,sourceSpan)}identical(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Identical,this,rhs,null,sourceSpan)}notIdentical(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.NotIdentical,this,rhs,null,sourceSpan)}minus(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Minus,this,rhs,null,sourceSpan)}plus(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Plus,this,rhs,null,sourceSpan)}divide(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Divide,this,rhs,null,sourceSpan)}multiply(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Multiply,this,rhs,null,sourceSpan)}modulo(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Modulo,this,rhs,null,sourceSpan)}and(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.And,this,rhs,null,sourceSpan)}bitwiseOr(rhs,sourceSpan,parens=!0){return new BinaryOperatorExpr(BinaryOperator.BitwiseOr,this,rhs,null,sourceSpan,parens)}bitwiseAnd(rhs,sourceSpan,parens=!0){return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd,this,rhs,null,sourceSpan,parens)}or(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Or,this,rhs,null,sourceSpan)}lower(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Lower,this,rhs,null,sourceSpan)}lowerEquals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.LowerEquals,this,rhs,null,sourceSpan)}bigger(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Bigger,this,rhs,null,sourceSpan)}biggerEquals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.BiggerEquals,this,rhs,null,sourceSpan)}isBlank(sourceSpan){return this.equals(TYPED_NULL_EXPR,sourceSpan)}nullishCoalesce(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce,this,rhs,null,sourceSpan)}toStmt(){return new ExpressionStatement(this,null)}}class ReadVarExpr extends Expression{constructor(name,type,sourceSpan){super(type,sourceSpan),this.name=name}isEquivalent(e){return e instanceof ReadVarExpr&&this.name===e.name}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitReadVarExpr(this,context)}clone(){return new ReadVarExpr(this.name,this.type,this.sourceSpan)}set(value){return new WriteVarExpr(this.name,value,null,this.sourceSpan)}}class TypeofExpr extends Expression{constructor(expr,type,sourceSpan){super(type,sourceSpan),this.expr=expr}visitExpression(visitor,context){return visitor.visitTypeofExpr(this,context)}isEquivalent(e){return e instanceof TypeofExpr&&e.expr.isEquivalent(this.expr)}isConstant(){return this.expr.isConstant()}clone(){return new TypeofExpr(this.expr.clone())}}class WrappedNodeExpr extends Expression{constructor(node,type,sourceSpan){super(type,sourceSpan),this.node=node}isEquivalent(e){return e instanceof WrappedNodeExpr&&this.node===e.node}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWrappedNodeExpr(this,context)}clone(){return new WrappedNodeExpr(this.node,this.type,this.sourceSpan)}}class WriteVarExpr extends Expression{constructor(name,value,type,sourceSpan){super(type||value.type,sourceSpan),this.name=name,this.value=value}isEquivalent(e){return e instanceof WriteVarExpr&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWriteVarExpr(this,context)}clone(){return new WriteVarExpr(this.name,this.value.clone(),this.type,this.sourceSpan)}toDeclStmt(type,modifiers){return new DeclareVarStmt(this.name,this.value,type,modifiers,this.sourceSpan)}toConstDecl(){return this.toDeclStmt(INFERRED_TYPE,StmtModifier.Final)}}class WriteKeyExpr extends Expression{constructor(receiver,index,value,type,sourceSpan){super(type||value.type,sourceSpan),this.receiver=receiver,this.index=index,this.value=value}isEquivalent(e){return e instanceof WriteKeyExpr&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWriteKeyExpr(this,context)}clone(){return new WriteKeyExpr(this.receiver.clone(),this.index.clone(),this.value.clone(),this.type,this.sourceSpan)}}class WritePropExpr extends Expression{constructor(receiver,name,value,type,sourceSpan){super(type||value.type,sourceSpan),this.receiver=receiver,this.name=name,this.value=value}isEquivalent(e){return e instanceof WritePropExpr&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWritePropExpr(this,context)}clone(){return new WritePropExpr(this.receiver.clone(),this.name,this.value.clone(),this.type,this.sourceSpan)}}class InvokeFunctionExpr extends Expression{constructor(fn,args,type,sourceSpan,pure=!1){super(type,sourceSpan),this.fn=fn,this.args=args,this.pure=pure}get receiver(){return this.fn}isEquivalent(e){return e instanceof InvokeFunctionExpr&&this.fn.isEquivalent(e.fn)&&areAllEquivalent(this.args,e.args)&&this.pure===e.pure}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitInvokeFunctionExpr(this,context)}clone(){return new InvokeFunctionExpr(this.fn.clone(),this.args.map((arg=>arg.clone())),this.type,this.sourceSpan,this.pure)}}class TaggedTemplateExpr extends Expression{constructor(tag,template,type,sourceSpan){super(type,sourceSpan),this.tag=tag,this.template=template}isEquivalent(e){return e instanceof TaggedTemplateExpr&&this.tag.isEquivalent(e.tag)&&areAllEquivalentPredicate(this.template.elements,e.template.elements,((a,b)=>a.text===b.text))&&areAllEquivalent(this.template.expressions,e.template.expressions)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitTaggedTemplateExpr(this,context)}clone(){return new TaggedTemplateExpr(this.tag.clone(),this.template.clone(),this.type,this.sourceSpan)}}class InstantiateExpr extends Expression{constructor(classExpr,args,type,sourceSpan){super(type,sourceSpan),this.classExpr=classExpr,this.args=args}isEquivalent(e){return e instanceof InstantiateExpr&&this.classExpr.isEquivalent(e.classExpr)&&areAllEquivalent(this.args,e.args)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitInstantiateExpr(this,context)}clone(){return new InstantiateExpr(this.classExpr.clone(),this.args.map((arg=>arg.clone())),this.type,this.sourceSpan)}}class LiteralExpr extends Expression{constructor(value,type,sourceSpan){super(type,sourceSpan),this.value=value}isEquivalent(e){return e instanceof LiteralExpr&&this.value===e.value}isConstant(){return!0}visitExpression(visitor,context){return visitor.visitLiteralExpr(this,context)}clone(){return new LiteralExpr(this.value,this.type,this.sourceSpan)}}class TemplateLiteral{constructor(elements,expressions){this.elements=elements,this.expressions=expressions}clone(){return new TemplateLiteral(this.elements.map((el=>el.clone())),this.expressions.map((expr=>expr.clone())))}}class TemplateLiteralElement{constructor(text,sourceSpan,rawText){this.text=text,this.sourceSpan=sourceSpan,this.rawText=rawText??sourceSpan?.toString()??escapeForTemplateLiteral(escapeSlashes(text))}clone(){return new TemplateLiteralElement(this.text,this.sourceSpan,this.rawText)}}class LiteralPiece{constructor(text,sourceSpan){this.text=text,this.sourceSpan=sourceSpan}}class PlaceholderPiece{constructor(text,sourceSpan,associatedMessage){this.text=text,this.sourceSpan=sourceSpan,this.associatedMessage=associatedMessage}}class LocalizedString extends Expression{constructor(metaBlock,messageParts,placeHolderNames,expressions,sourceSpan){super(STRING_TYPE,sourceSpan),this.metaBlock=metaBlock,this.messageParts=messageParts,this.placeHolderNames=placeHolderNames,this.expressions=expressions}isEquivalent(e){return!1}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitLocalizedString(this,context)}clone(){return new LocalizedString(this.metaBlock,this.messageParts,this.placeHolderNames,this.expressions.map((expr=>expr.clone())),this.sourceSpan)}serializeI18nHead(){let metaBlock=this.metaBlock.description||"";return this.metaBlock.meaning&&(metaBlock=`${this.metaBlock.meaning}|${metaBlock}`),this.metaBlock.customId&&(metaBlock=`${metaBlock}@@${this.metaBlock.customId}`),this.metaBlock.legacyIds&&this.metaBlock.legacyIds.forEach((legacyId=>{metaBlock=`${metaBlock}␟${legacyId}`})),createCookedRawString(metaBlock,this.messageParts[0].text,this.getMessagePartSourceSpan(0))}getMessagePartSourceSpan(i){return this.messageParts[i]?.sourceSpan??this.sourceSpan}getPlaceholderSourceSpan(i){return this.placeHolderNames[i]?.sourceSpan??this.expressions[i]?.sourceSpan??this.sourceSpan}serializeI18nTemplatePart(partIndex){const placeholder=this.placeHolderNames[partIndex-1],messagePart=this.messageParts[partIndex];let metaBlock=placeholder.text;return 0===placeholder.associatedMessage?.legacyIds.length&&(metaBlock+=`@@${computeMsgId(placeholder.associatedMessage.messageString,placeholder.associatedMessage.meaning)}`),createCookedRawString(metaBlock,messagePart.text,this.getMessagePartSourceSpan(partIndex))}}const escapeSlashes=str=>str.replace(/\\/g,"\\\\"),escapeStartingColon=str=>str.replace(/^:/,"\\:"),escapeColons=str=>str.replace(/:/g,"\\:"),escapeForTemplateLiteral=str=>str.replace(/`/g,"\\`").replace(/\${/g,"$\\{");function createCookedRawString(metaBlock,messagePart,range){return""===metaBlock?{cooked:messagePart,raw:escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))),range}:{cooked:`:${metaBlock}:${messagePart}`,raw:escapeForTemplateLiteral(`:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`),range}}class ExternalExpr extends Expression{constructor(value,type,typeParams=null,sourceSpan){super(type,sourceSpan),this.value=value,this.typeParams=typeParams}isEquivalent(e){return e instanceof ExternalExpr&&this.value.name===e.value.name&&this.value.moduleName===e.value.moduleName&&this.value.runtime===e.value.runtime}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitExternalExpr(this,context)}clone(){return new ExternalExpr(this.value,this.type,this.typeParams,this.sourceSpan)}}class ExternalReference{constructor(moduleName,name,runtime){this.moduleName=moduleName,this.name=name,this.runtime=runtime}}class ConditionalExpr extends Expression{constructor(condition,trueCase,falseCase=null,type,sourceSpan){super(type||trueCase.type,sourceSpan),this.condition=condition,this.falseCase=falseCase,this.trueCase=trueCase}isEquivalent(e){return e instanceof ConditionalExpr&&this.condition.isEquivalent(e.condition)&&this.trueCase.isEquivalent(e.trueCase)&&nullSafeIsEquivalent(this.falseCase,e.falseCase)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitConditionalExpr(this,context)}clone(){return new ConditionalExpr(this.condition.clone(),this.trueCase.clone(),this.falseCase?.clone(),this.type,this.sourceSpan)}}class DynamicImportExpr extends Expression{constructor(url,sourceSpan){super(null,sourceSpan),this.url=url}isEquivalent(e){return e instanceof DynamicImportExpr&&this.url===e.url}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitDynamicImportExpr(this,context)}clone(){return new DynamicImportExpr(this.url,this.sourceSpan)}}class NotExpr extends Expression{constructor(condition,sourceSpan){super(BOOL_TYPE,sourceSpan),this.condition=condition}isEquivalent(e){return e instanceof NotExpr&&this.condition.isEquivalent(e.condition)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitNotExpr(this,context)}clone(){return new NotExpr(this.condition.clone(),this.sourceSpan)}}class FnParam{constructor(name,type=null){this.name=name,this.type=type}isEquivalent(param){return this.name===param.name}clone(){return new FnParam(this.name,this.type)}}class FunctionExpr extends Expression{constructor(params,statements,type,sourceSpan,name){super(type,sourceSpan),this.params=params,this.statements=statements,this.name=name}isEquivalent(e){return(e instanceof FunctionExpr||e instanceof DeclareFunctionStmt)&&areAllEquivalent(this.params,e.params)&&areAllEquivalent(this.statements,e.statements)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitFunctionExpr(this,context)}toDeclStmt(name,modifiers){return new DeclareFunctionStmt(name,this.params,this.statements,this.type,modifiers,this.sourceSpan)}clone(){return new FunctionExpr(this.params.map((p=>p.clone())),this.statements,this.type,this.sourceSpan,this.name)}}class ArrowFunctionExpr extends Expression{constructor(params,body,type,sourceSpan){super(type,sourceSpan),this.params=params,this.body=body}isEquivalent(e){return!!(e instanceof ArrowFunctionExpr&&areAllEquivalent(this.params,e.params))&&(this.body instanceof Expression&&e.body instanceof Expression?this.body.isEquivalent(e.body):!(!Array.isArray(this.body)||!Array.isArray(e.body))&&areAllEquivalent(this.body,e.body))}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitArrowFunctionExpr(this,context)}clone(){return new ArrowFunctionExpr(this.params.map((p=>p.clone())),Array.isArray(this.body)?this.body:this.body.clone(),this.type,this.sourceSpan)}toDeclStmt(name,modifiers){return new DeclareVarStmt(name,this,INFERRED_TYPE,modifiers,this.sourceSpan)}}class UnaryOperatorExpr extends Expression{constructor(operator,expr,type,sourceSpan,parens=!0){super(type||NUMBER_TYPE,sourceSpan),this.operator=operator,this.expr=expr,this.parens=parens}isEquivalent(e){return e instanceof UnaryOperatorExpr&&this.operator===e.operator&&this.expr.isEquivalent(e.expr)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitUnaryOperatorExpr(this,context)}clone(){return new UnaryOperatorExpr(this.operator,this.expr.clone(),this.type,this.sourceSpan,this.parens)}}class BinaryOperatorExpr extends Expression{constructor(operator,lhs,rhs,type,sourceSpan,parens=!0){super(type||lhs.type,sourceSpan),this.operator=operator,this.rhs=rhs,this.parens=parens,this.lhs=lhs}isEquivalent(e){return e instanceof BinaryOperatorExpr&&this.operator===e.operator&&this.lhs.isEquivalent(e.lhs)&&this.rhs.isEquivalent(e.rhs)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitBinaryOperatorExpr(this,context)}clone(){return new BinaryOperatorExpr(this.operator,this.lhs.clone(),this.rhs.clone(),this.type,this.sourceSpan,this.parens)}}class ReadPropExpr extends Expression{constructor(receiver,name,type,sourceSpan){super(type,sourceSpan),this.receiver=receiver,this.name=name}get index(){return this.name}isEquivalent(e){return e instanceof ReadPropExpr&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitReadPropExpr(this,context)}set(value){return new WritePropExpr(this.receiver,this.name,value,null,this.sourceSpan)}clone(){return new ReadPropExpr(this.receiver.clone(),this.name,this.type,this.sourceSpan)}}class ReadKeyExpr extends Expression{constructor(receiver,index,type,sourceSpan){super(type,sourceSpan),this.receiver=receiver,this.index=index}isEquivalent(e){return e instanceof ReadKeyExpr&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitReadKeyExpr(this,context)}set(value){return new WriteKeyExpr(this.receiver,this.index,value,null,this.sourceSpan)}clone(){return new ReadKeyExpr(this.receiver.clone(),this.index.clone(),this.type,this.sourceSpan)}}class LiteralArrayExpr extends Expression{constructor(entries,type,sourceSpan){super(type,sourceSpan),this.entries=entries}isConstant(){return this.entries.every((e=>e.isConstant()))}isEquivalent(e){return e instanceof LiteralArrayExpr&&areAllEquivalent(this.entries,e.entries)}visitExpression(visitor,context){return visitor.visitLiteralArrayExpr(this,context)}clone(){return new LiteralArrayExpr(this.entries.map((e=>e.clone())),this.type,this.sourceSpan)}}class LiteralMapEntry{constructor(key,value,quoted){this.key=key,this.value=value,this.quoted=quoted}isEquivalent(e){return this.key===e.key&&this.value.isEquivalent(e.value)}clone(){return new LiteralMapEntry(this.key,this.value.clone(),this.quoted)}}class LiteralMapExpr extends Expression{constructor(entries,type,sourceSpan){super(type,sourceSpan),this.entries=entries,this.valueType=null,type&&(this.valueType=type.valueType)}isEquivalent(e){return e instanceof LiteralMapExpr&&areAllEquivalent(this.entries,e.entries)}isConstant(){return this.entries.every((e=>e.value.isConstant()))}visitExpression(visitor,context){return visitor.visitLiteralMapExpr(this,context)}clone(){const entriesClone=this.entries.map((entry=>entry.clone()));return new LiteralMapExpr(entriesClone,this.type,this.sourceSpan)}}class CommaExpr extends Expression{constructor(parts,sourceSpan){super(parts[parts.length-1].type,sourceSpan),this.parts=parts}isEquivalent(e){return e instanceof CommaExpr&&areAllEquivalent(this.parts,e.parts)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitCommaExpr(this,context)}clone(){return new CommaExpr(this.parts.map((p=>p.clone())))}}const NULL_EXPR=new LiteralExpr(null,null,null),TYPED_NULL_EXPR=new LiteralExpr(null,INFERRED_TYPE,null);var StmtModifier;!function(StmtModifier){StmtModifier[StmtModifier.None=0]="None",StmtModifier[StmtModifier.Final=1]="Final",StmtModifier[StmtModifier.Private=2]="Private",StmtModifier[StmtModifier.Exported=4]="Exported",StmtModifier[StmtModifier.Static=8]="Static"}(StmtModifier||(StmtModifier={}));class LeadingComment{constructor(text,multiline,trailingNewline){this.text=text,this.multiline=multiline,this.trailingNewline=trailingNewline}toString(){return this.multiline?` ${this.text} `:this.text}}class JSDocComment extends LeadingComment{constructor(tags){super("",!0,!0),this.tags=tags}toString(){return function serializeTags(tags){if(0===tags.length)return"";if(1===tags.length&&tags[0].tagName&&!tags[0].text)return`*${tagToString(tags[0])} `;let out="*\n";for(const tag of tags)out+=" *",out+=tagToString(tag).replace(/\n/g,"\n * "),out+="\n";return out+=" ",out}(this.tags)}}class Statement{constructor(modifiers=StmtModifier.None,sourceSpan=null,leadingComments){this.modifiers=modifiers,this.sourceSpan=sourceSpan,this.leadingComments=leadingComments}hasModifier(modifier){return!!(this.modifiers&modifier)}addLeadingComment(leadingComment){this.leadingComments=this.leadingComments??[],this.leadingComments.push(leadingComment)}}class DeclareVarStmt extends Statement{constructor(name,value,type,modifiers,sourceSpan,leadingComments){super(modifiers,sourceSpan,leadingComments),this.name=name,this.value=value,this.type=type||value&&value.type||null}isEquivalent(stmt){return stmt instanceof DeclareVarStmt&&this.name===stmt.name&&(this.value?!!stmt.value&&this.value.isEquivalent(stmt.value):!stmt.value)}visitStatement(visitor,context){return visitor.visitDeclareVarStmt(this,context)}}class DeclareFunctionStmt extends Statement{constructor(name,params,statements,type,modifiers,sourceSpan,leadingComments){super(modifiers,sourceSpan,leadingComments),this.name=name,this.params=params,this.statements=statements,this.type=type||null}isEquivalent(stmt){return stmt instanceof DeclareFunctionStmt&&areAllEquivalent(this.params,stmt.params)&&areAllEquivalent(this.statements,stmt.statements)}visitStatement(visitor,context){return visitor.visitDeclareFunctionStmt(this,context)}}class ExpressionStatement extends Statement{constructor(expr,sourceSpan,leadingComments){super(StmtModifier.None,sourceSpan,leadingComments),this.expr=expr}isEquivalent(stmt){return stmt instanceof ExpressionStatement&&this.expr.isEquivalent(stmt.expr)}visitStatement(visitor,context){return visitor.visitExpressionStmt(this,context)}}class ReturnStatement extends Statement{constructor(value,sourceSpan=null,leadingComments){super(StmtModifier.None,sourceSpan,leadingComments),this.value=value}isEquivalent(stmt){return stmt instanceof ReturnStatement&&this.value.isEquivalent(stmt.value)}visitStatement(visitor,context){return visitor.visitReturnStmt(this,context)}}class IfStmt extends Statement{constructor(condition,trueCase,falseCase=[],sourceSpan,leadingComments){super(StmtModifier.None,sourceSpan,leadingComments),this.condition=condition,this.trueCase=trueCase,this.falseCase=falseCase}isEquivalent(stmt){return stmt instanceof IfStmt&&this.condition.isEquivalent(stmt.condition)&&areAllEquivalent(this.trueCase,stmt.trueCase)&&areAllEquivalent(this.falseCase,stmt.falseCase)}visitStatement(visitor,context){return visitor.visitIfStmt(this,context)}}function leadingComment(text,multiline=!1,trailingNewline=!0){return new LeadingComment(text,multiline,trailingNewline)}function jsDocComment(tags=[]){return new JSDocComment(tags)}function variable(name,type,sourceSpan){return new ReadVarExpr(name,type,sourceSpan)}function importExpr(id,typeParams=null,sourceSpan){return new ExternalExpr(id,null,typeParams,sourceSpan)}function expressionType(expr,typeModifiers,typeParams){return new ExpressionType(expr,typeModifiers,typeParams)}function typeofExpr(expr){return new TypeofExpr(expr)}function literalArr(values,type,sourceSpan){return new LiteralArrayExpr(values,type,sourceSpan)}function literalMap(values,type=null){return new LiteralMapExpr(values.map((e=>new LiteralMapEntry(e.key,e.value,e.quoted))),type,null)}function not(expr,sourceSpan){return new NotExpr(expr,sourceSpan)}function fn(params,body,type,sourceSpan,name){return new FunctionExpr(params,body,type,sourceSpan,name)}function arrowFn(params,body,type,sourceSpan){return new ArrowFunctionExpr(params,body,type,sourceSpan)}function ifStmt(condition,thenClause,elseClause,sourceSpan,leadingComments){return new IfStmt(condition,thenClause,elseClause,sourceSpan,leadingComments)}function taggedTemplate(tag,template,type,sourceSpan){return new TaggedTemplateExpr(tag,template,type,sourceSpan)}function literal(value,type,sourceSpan){return new LiteralExpr(value,type,sourceSpan)}function localizedString(metaBlock,messageParts,placeholderNames,expressions,sourceSpan){return new LocalizedString(metaBlock,messageParts,placeholderNames,expressions,sourceSpan)}function tagToString(tag){let out="";if(tag.tagName&&(out+=` @${tag.tagName}`),tag.text){if(tag.text.match(/\/\*|\*\//))throw new Error('JSDoc text cannot contain "/*" and "*/"');out+=" "+tag.text.replace(/@/g,"\\@")}return out}var output_ast=Object.freeze({__proto__:null,get TypeModifier(){return TypeModifier},Type,get BuiltinTypeName(){return BuiltinTypeName},BuiltinType,ExpressionType,ArrayType,MapType,TransplantedType,DYNAMIC_TYPE,INFERRED_TYPE,BOOL_TYPE,INT_TYPE,NUMBER_TYPE,STRING_TYPE,FUNCTION_TYPE,NONE_TYPE,get UnaryOperator(){return UnaryOperator},get BinaryOperator(){return BinaryOperator},nullSafeIsEquivalent,areAllEquivalent,Expression,ReadVarExpr,TypeofExpr,WrappedNodeExpr,WriteVarExpr,WriteKeyExpr,WritePropExpr,InvokeFunctionExpr,TaggedTemplateExpr,InstantiateExpr,LiteralExpr,TemplateLiteral,TemplateLiteralElement,LiteralPiece,PlaceholderPiece,LocalizedString,ExternalExpr,ExternalReference,ConditionalExpr,DynamicImportExpr,NotExpr,FnParam,FunctionExpr,ArrowFunctionExpr,UnaryOperatorExpr,BinaryOperatorExpr,ReadPropExpr,ReadKeyExpr,LiteralArrayExpr,LiteralMapEntry,LiteralMapExpr,CommaExpr,NULL_EXPR,TYPED_NULL_EXPR,get StmtModifier(){return StmtModifier},LeadingComment,JSDocComment,Statement,DeclareVarStmt,DeclareFunctionStmt,ExpressionStatement,ReturnStatement,IfStmt,RecursiveAstVisitor:class RecursiveAstVisitor$1{visitType(ast,context){return ast}visitExpression(ast,context){return ast.type&&ast.type.visitType(this,context),ast}visitBuiltinType(type,context){return this.visitType(type,context)}visitExpressionType(type,context){return type.value.visitExpression(this,context),null!==type.typeParams&&type.typeParams.forEach((param=>this.visitType(param,context))),this.visitType(type,context)}visitArrayType(type,context){return this.visitType(type,context)}visitMapType(type,context){return this.visitType(type,context)}visitTransplantedType(type,context){return type}visitWrappedNodeExpr(ast,context){return ast}visitTypeofExpr(ast,context){return this.visitExpression(ast,context)}visitReadVarExpr(ast,context){return this.visitExpression(ast,context)}visitWriteVarExpr(ast,context){return ast.value.visitExpression(this,context),this.visitExpression(ast,context)}visitWriteKeyExpr(ast,context){return ast.receiver.visitExpression(this,context),ast.index.visitExpression(this,context),ast.value.visitExpression(this,context),this.visitExpression(ast,context)}visitWritePropExpr(ast,context){return ast.receiver.visitExpression(this,context),ast.value.visitExpression(this,context),this.visitExpression(ast,context)}visitDynamicImportExpr(ast,context){return this.visitExpression(ast,context)}visitInvokeFunctionExpr(ast,context){return ast.fn.visitExpression(this,context),this.visitAllExpressions(ast.args,context),this.visitExpression(ast,context)}visitTaggedTemplateExpr(ast,context){return ast.tag.visitExpression(this,context),this.visitAllExpressions(ast.template.expressions,context),this.visitExpression(ast,context)}visitInstantiateExpr(ast,context){return ast.classExpr.visitExpression(this,context),this.visitAllExpressions(ast.args,context),this.visitExpression(ast,context)}visitLiteralExpr(ast,context){return this.visitExpression(ast,context)}visitLocalizedString(ast,context){return this.visitExpression(ast,context)}visitExternalExpr(ast,context){return ast.typeParams&&ast.typeParams.forEach((type=>type.visitType(this,context))),this.visitExpression(ast,context)}visitConditionalExpr(ast,context){return ast.condition.visitExpression(this,context),ast.trueCase.visitExpression(this,context),ast.falseCase.visitExpression(this,context),this.visitExpression(ast,context)}visitNotExpr(ast,context){return ast.condition.visitExpression(this,context),this.visitExpression(ast,context)}visitFunctionExpr(ast,context){return this.visitAllStatements(ast.statements,context),this.visitExpression(ast,context)}visitArrowFunctionExpr(ast,context){return Array.isArray(ast.body)?this.visitAllStatements(ast.body,context):this.visitExpression(ast.body,context),this.visitExpression(ast,context)}visitUnaryOperatorExpr(ast,context){return ast.expr.visitExpression(this,context),this.visitExpression(ast,context)}visitBinaryOperatorExpr(ast,context){return ast.lhs.visitExpression(this,context),ast.rhs.visitExpression(this,context),this.visitExpression(ast,context)}visitReadPropExpr(ast,context){return ast.receiver.visitExpression(this,context),this.visitExpression(ast,context)}visitReadKeyExpr(ast,context){return ast.receiver.visitExpression(this,context),ast.index.visitExpression(this,context),this.visitExpression(ast,context)}visitLiteralArrayExpr(ast,context){return this.visitAllExpressions(ast.entries,context),this.visitExpression(ast,context)}visitLiteralMapExpr(ast,context){return ast.entries.forEach((entry=>entry.value.visitExpression(this,context))),this.visitExpression(ast,context)}visitCommaExpr(ast,context){return this.visitAllExpressions(ast.parts,context),this.visitExpression(ast,context)}visitAllExpressions(exprs,context){exprs.forEach((expr=>expr.visitExpression(this,context)))}visitDeclareVarStmt(stmt,context){return stmt.value&&stmt.value.visitExpression(this,context),stmt.type&&stmt.type.visitType(this,context),stmt}visitDeclareFunctionStmt(stmt,context){return this.visitAllStatements(stmt.statements,context),stmt.type&&stmt.type.visitType(this,context),stmt}visitExpressionStmt(stmt,context){return stmt.expr.visitExpression(this,context),stmt}visitReturnStmt(stmt,context){return stmt.value.visitExpression(this,context),stmt}visitIfStmt(stmt,context){return stmt.condition.visitExpression(this,context),this.visitAllStatements(stmt.trueCase,context),this.visitAllStatements(stmt.falseCase,context),stmt}visitAllStatements(stmts,context){stmts.forEach((stmt=>stmt.visitStatement(this,context)))}},leadingComment,jsDocComment,variable,importExpr,importType:function importType(id,typeParams,typeModifiers){return null!=id?expressionType(importExpr(id,typeParams,null),typeModifiers):null},expressionType,transplantedType:function transplantedType(type,typeModifiers){return new TransplantedType(type,typeModifiers)},typeofExpr,literalArr,literalMap,unary:function unary(operator,expr,type,sourceSpan){return new UnaryOperatorExpr(operator,expr,type,sourceSpan)},not,fn,arrowFn,ifStmt,taggedTemplate,literal,localizedString,isNull:function isNull(exp){return exp instanceof LiteralExpr&&null===exp.value}});const UNKNOWN_VALUE_KEY=variable(""),KEY_CONTEXT={};class FixupExpression extends Expression{constructor(resolved){super(resolved.type),this.resolved=resolved,this.shared=!1,this.original=resolved}visitExpression(visitor,context){return context===KEY_CONTEXT?this.original.visitExpression(visitor,context):this.resolved.visitExpression(visitor,context)}isEquivalent(e){return e instanceof FixupExpression&&this.resolved.isEquivalent(e.resolved)}isConstant(){return!0}clone(){throw new Error("Not supported.")}fixup(expression){this.resolved=expression,this.shared=!0}}class ConstantPool{constructor(isClosureCompilerEnabled=!1){this.isClosureCompilerEnabled=isClosureCompilerEnabled,this.statements=[],this.literals=new Map,this.literalFactories=new Map,this.sharedConstants=new Map,this._claimedNames=new Map,this.nextNameIndex=0}getConstLiteral(literal,forceShared){if(literal instanceof LiteralExpr&&!isLongStringLiteral(literal)||literal instanceof FixupExpression)return literal;const key=GenericKeyFn.INSTANCE.keyOf(literal);let fixup=this.literals.get(key),newValue=!1;if(fixup||(fixup=new FixupExpression(literal),this.literals.set(key,fixup),newValue=!0),!newValue&&!fixup.shared||newValue&&forceShared){const name=this.freshName();let definition,usage;this.isClosureCompilerEnabled&&isLongStringLiteral(literal)?(definition=variable(name).set(new FunctionExpr([],[new ReturnStatement(literal)])),usage=variable(name).callFn([])):(definition=variable(name).set(literal),usage=variable(name)),this.statements.push(definition.toDeclStmt(INFERRED_TYPE,StmtModifier.Final)),fixup.fixup(usage)}return fixup}getSharedConstant(def,expr){const key=def.keyOf(expr);if(!this.sharedConstants.has(key)){const id=this.freshName();this.sharedConstants.set(key,variable(id)),this.statements.push(def.toSharedConstantDeclaration(id,expr))}return this.sharedConstants.get(key)}getLiteralFactory(literal){if(literal instanceof LiteralArrayExpr){const argumentsForKey=literal.entries.map((e=>e.isConstant()?e:UNKNOWN_VALUE_KEY)),key=GenericKeyFn.INSTANCE.keyOf(literalArr(argumentsForKey));return this._getLiteralFactory(key,literal.entries,(entries=>literalArr(entries)))}{const expressionForKey=literalMap(literal.entries.map((e=>({key:e.key,value:e.value.isConstant()?e.value:UNKNOWN_VALUE_KEY,quoted:e.quoted})))),key=GenericKeyFn.INSTANCE.keyOf(expressionForKey);return this._getLiteralFactory(key,literal.entries.map((e=>e.value)),(entries=>literalMap(entries.map(((value,index)=>({key:literal.entries[index].key,value,quoted:literal.entries[index].quoted}))))))}}getSharedFunctionReference(fn,prefix,useUniqueName=!0){const isArrow=fn instanceof ArrowFunctionExpr;for(const current of this.statements){if(isArrow&¤t instanceof DeclareVarStmt&¤t.value?.isEquivalent(fn))return variable(current.name);if(!isArrow&¤t instanceof DeclareFunctionStmt&&fn instanceof FunctionExpr&&fn.isEquivalent(current))return variable(current.name)}const name=useUniqueName?this.uniqueName(prefix):prefix;return this.statements.push(fn instanceof FunctionExpr?fn.toDeclStmt(name,StmtModifier.Final):new DeclareVarStmt(name,fn,INFERRED_TYPE,StmtModifier.Final,fn.sourceSpan)),variable(name)}_getLiteralFactory(key,values,resultMap){let literalFactory=this.literalFactories.get(key);const literalFactoryArguments=values.filter((e=>!e.isConstant()));if(!literalFactory){const resultExpressions=values.map(((e,index)=>e.isConstant()?this.getConstLiteral(e,!0):variable(`a${index}`))),pureFunctionDeclaration=arrowFn(resultExpressions.filter(isVariable).map((e=>new FnParam(e.name,DYNAMIC_TYPE))),resultMap(resultExpressions),INFERRED_TYPE),name=this.freshName();this.statements.push(variable(name).set(pureFunctionDeclaration).toDeclStmt(INFERRED_TYPE,StmtModifier.Final)),literalFactory=variable(name),this.literalFactories.set(key,literalFactory)}return{literalFactory,literalFactoryArguments}}uniqueName(name,alwaysIncludeSuffix=!0){const count=this._claimedNames.get(name)??0,result=0!==count||alwaysIncludeSuffix?`${name}${count}`:`${name}`;return this._claimedNames.set(name,count+1),result}freshName(){return this.uniqueName("_c")}}class GenericKeyFn{static#_=this.INSTANCE=new GenericKeyFn;keyOf(expr){if(expr instanceof LiteralExpr&&"string"==typeof expr.value)return`"${expr.value}"`;if(expr instanceof LiteralExpr)return String(expr.value);if(expr instanceof LiteralArrayExpr){const entries=[];for(const entry of expr.entries)entries.push(this.keyOf(entry));return`[${entries.join(",")}]`}if(expr instanceof LiteralMapExpr){const entries=[];for(const entry of expr.entries){let key=entry.key;entry.quoted&&(key=`"${key}"`),entries.push(key+":"+this.keyOf(entry.value))}return`{${entries.join(",")}}`}if(expr instanceof ExternalExpr)return`import("${expr.value.moduleName}", ${expr.value.name})`;if(expr instanceof ReadVarExpr)return`read(${expr.name})`;if(expr instanceof TypeofExpr)return`typeof(${this.keyOf(expr.expr)})`;throw new Error(`${this.constructor.name} does not handle expressions of type ${expr.constructor.name}`)}}function isVariable(e){return e instanceof ReadVarExpr}function isLongStringLiteral(expr){return expr instanceof LiteralExpr&&"string"==typeof expr.value&&expr.value.length>=50}const CORE="@angular/core";class Identifiers{static#_=this.NEW_METHOD="factory";static#_2=this.TRANSFORM_METHOD="transform";static#_3=this.PATCH_DEPS="patchedDeps";static#_4=this.core={name:null,moduleName:CORE};static#_5=this.namespaceHTML={name:"ɵɵnamespaceHTML",moduleName:CORE};static#_6=this.namespaceMathML={name:"ɵɵnamespaceMathML",moduleName:CORE};static#_7=this.namespaceSVG={name:"ɵɵnamespaceSVG",moduleName:CORE};static#_8=this.element={name:"ɵɵelement",moduleName:CORE};static#_9=this.elementStart={name:"ɵɵelementStart",moduleName:CORE};static#_10=this.elementEnd={name:"ɵɵelementEnd",moduleName:CORE};static#_11=this.advance={name:"ɵɵadvance",moduleName:CORE};static#_12=this.syntheticHostProperty={name:"ɵɵsyntheticHostProperty",moduleName:CORE};static#_13=this.syntheticHostListener={name:"ɵɵsyntheticHostListener",moduleName:CORE};static#_14=this.attribute={name:"ɵɵattribute",moduleName:CORE};static#_15=this.attributeInterpolate1={name:"ɵɵattributeInterpolate1",moduleName:CORE};static#_16=this.attributeInterpolate2={name:"ɵɵattributeInterpolate2",moduleName:CORE};static#_17=this.attributeInterpolate3={name:"ɵɵattributeInterpolate3",moduleName:CORE};static#_18=this.attributeInterpolate4={name:"ɵɵattributeInterpolate4",moduleName:CORE};static#_19=this.attributeInterpolate5={name:"ɵɵattributeInterpolate5",moduleName:CORE};static#_20=this.attributeInterpolate6={name:"ɵɵattributeInterpolate6",moduleName:CORE};static#_21=this.attributeInterpolate7={name:"ɵɵattributeInterpolate7",moduleName:CORE};static#_22=this.attributeInterpolate8={name:"ɵɵattributeInterpolate8",moduleName:CORE};static#_23=this.attributeInterpolateV={name:"ɵɵattributeInterpolateV",moduleName:CORE};static#_24=this.classProp={name:"ɵɵclassProp",moduleName:CORE};static#_25=this.elementContainerStart={name:"ɵɵelementContainerStart",moduleName:CORE};static#_26=this.elementContainerEnd={name:"ɵɵelementContainerEnd",moduleName:CORE};static#_27=this.elementContainer={name:"ɵɵelementContainer",moduleName:CORE};static#_28=this.styleMap={name:"ɵɵstyleMap",moduleName:CORE};static#_29=this.styleMapInterpolate1={name:"ɵɵstyleMapInterpolate1",moduleName:CORE};static#_30=this.styleMapInterpolate2={name:"ɵɵstyleMapInterpolate2",moduleName:CORE};static#_31=this.styleMapInterpolate3={name:"ɵɵstyleMapInterpolate3",moduleName:CORE};static#_32=this.styleMapInterpolate4={name:"ɵɵstyleMapInterpolate4",moduleName:CORE};static#_33=this.styleMapInterpolate5={name:"ɵɵstyleMapInterpolate5",moduleName:CORE};static#_34=this.styleMapInterpolate6={name:"ɵɵstyleMapInterpolate6",moduleName:CORE};static#_35=this.styleMapInterpolate7={name:"ɵɵstyleMapInterpolate7",moduleName:CORE};static#_36=this.styleMapInterpolate8={name:"ɵɵstyleMapInterpolate8",moduleName:CORE};static#_37=this.styleMapInterpolateV={name:"ɵɵstyleMapInterpolateV",moduleName:CORE};static#_38=this.classMap={name:"ɵɵclassMap",moduleName:CORE};static#_39=this.classMapInterpolate1={name:"ɵɵclassMapInterpolate1",moduleName:CORE};static#_40=this.classMapInterpolate2={name:"ɵɵclassMapInterpolate2",moduleName:CORE};static#_41=this.classMapInterpolate3={name:"ɵɵclassMapInterpolate3",moduleName:CORE};static#_42=this.classMapInterpolate4={name:"ɵɵclassMapInterpolate4",moduleName:CORE};static#_43=this.classMapInterpolate5={name:"ɵɵclassMapInterpolate5",moduleName:CORE};static#_44=this.classMapInterpolate6={name:"ɵɵclassMapInterpolate6",moduleName:CORE};static#_45=this.classMapInterpolate7={name:"ɵɵclassMapInterpolate7",moduleName:CORE};static#_46=this.classMapInterpolate8={name:"ɵɵclassMapInterpolate8",moduleName:CORE};static#_47=this.classMapInterpolateV={name:"ɵɵclassMapInterpolateV",moduleName:CORE};static#_48=this.styleProp={name:"ɵɵstyleProp",moduleName:CORE};static#_49=this.stylePropInterpolate1={name:"ɵɵstylePropInterpolate1",moduleName:CORE};static#_50=this.stylePropInterpolate2={name:"ɵɵstylePropInterpolate2",moduleName:CORE};static#_51=this.stylePropInterpolate3={name:"ɵɵstylePropInterpolate3",moduleName:CORE};static#_52=this.stylePropInterpolate4={name:"ɵɵstylePropInterpolate4",moduleName:CORE};static#_53=this.stylePropInterpolate5={name:"ɵɵstylePropInterpolate5",moduleName:CORE};static#_54=this.stylePropInterpolate6={name:"ɵɵstylePropInterpolate6",moduleName:CORE};static#_55=this.stylePropInterpolate7={name:"ɵɵstylePropInterpolate7",moduleName:CORE};static#_56=this.stylePropInterpolate8={name:"ɵɵstylePropInterpolate8",moduleName:CORE};static#_57=this.stylePropInterpolateV={name:"ɵɵstylePropInterpolateV",moduleName:CORE};static#_58=this.nextContext={name:"ɵɵnextContext",moduleName:CORE};static#_59=this.resetView={name:"ɵɵresetView",moduleName:CORE};static#_60=this.templateCreate={name:"ɵɵtemplate",moduleName:CORE};static#_61=this.defer={name:"ɵɵdefer",moduleName:CORE};static#_62=this.deferWhen={name:"ɵɵdeferWhen",moduleName:CORE};static#_63=this.deferOnIdle={name:"ɵɵdeferOnIdle",moduleName:CORE};static#_64=this.deferOnImmediate={name:"ɵɵdeferOnImmediate",moduleName:CORE};static#_65=this.deferOnTimer={name:"ɵɵdeferOnTimer",moduleName:CORE};static#_66=this.deferOnHover={name:"ɵɵdeferOnHover",moduleName:CORE};static#_67=this.deferOnInteraction={name:"ɵɵdeferOnInteraction",moduleName:CORE};static#_68=this.deferOnViewport={name:"ɵɵdeferOnViewport",moduleName:CORE};static#_69=this.deferPrefetchWhen={name:"ɵɵdeferPrefetchWhen",moduleName:CORE};static#_70=this.deferPrefetchOnIdle={name:"ɵɵdeferPrefetchOnIdle",moduleName:CORE};static#_71=this.deferPrefetchOnImmediate={name:"ɵɵdeferPrefetchOnImmediate",moduleName:CORE};static#_72=this.deferPrefetchOnTimer={name:"ɵɵdeferPrefetchOnTimer",moduleName:CORE};static#_73=this.deferPrefetchOnHover={name:"ɵɵdeferPrefetchOnHover",moduleName:CORE};static#_74=this.deferPrefetchOnInteraction={name:"ɵɵdeferPrefetchOnInteraction",moduleName:CORE};static#_75=this.deferPrefetchOnViewport={name:"ɵɵdeferPrefetchOnViewport",moduleName:CORE};static#_76=this.deferEnableTimerScheduling={name:"ɵɵdeferEnableTimerScheduling",moduleName:CORE};static#_77=this.conditional={name:"ɵɵconditional",moduleName:CORE};static#_78=this.repeater={name:"ɵɵrepeater",moduleName:CORE};static#_79=this.repeaterCreate={name:"ɵɵrepeaterCreate",moduleName:CORE};static#_80=this.repeaterTrackByIndex={name:"ɵɵrepeaterTrackByIndex",moduleName:CORE};static#_81=this.repeaterTrackByIdentity={name:"ɵɵrepeaterTrackByIdentity",moduleName:CORE};static#_82=this.componentInstance={name:"ɵɵcomponentInstance",moduleName:CORE};static#_83=this.text={name:"ɵɵtext",moduleName:CORE};static#_84=this.enableBindings={name:"ɵɵenableBindings",moduleName:CORE};static#_85=this.disableBindings={name:"ɵɵdisableBindings",moduleName:CORE};static#_86=this.getCurrentView={name:"ɵɵgetCurrentView",moduleName:CORE};static#_87=this.textInterpolate={name:"ɵɵtextInterpolate",moduleName:CORE};static#_88=this.textInterpolate1={name:"ɵɵtextInterpolate1",moduleName:CORE};static#_89=this.textInterpolate2={name:"ɵɵtextInterpolate2",moduleName:CORE};static#_90=this.textInterpolate3={name:"ɵɵtextInterpolate3",moduleName:CORE};static#_91=this.textInterpolate4={name:"ɵɵtextInterpolate4",moduleName:CORE};static#_92=this.textInterpolate5={name:"ɵɵtextInterpolate5",moduleName:CORE};static#_93=this.textInterpolate6={name:"ɵɵtextInterpolate6",moduleName:CORE};static#_94=this.textInterpolate7={name:"ɵɵtextInterpolate7",moduleName:CORE};static#_95=this.textInterpolate8={name:"ɵɵtextInterpolate8",moduleName:CORE};static#_96=this.textInterpolateV={name:"ɵɵtextInterpolateV",moduleName:CORE};static#_97=this.restoreView={name:"ɵɵrestoreView",moduleName:CORE};static#_98=this.pureFunction0={name:"ɵɵpureFunction0",moduleName:CORE};static#_99=this.pureFunction1={name:"ɵɵpureFunction1",moduleName:CORE};static#_100=this.pureFunction2={name:"ɵɵpureFunction2",moduleName:CORE};static#_101=this.pureFunction3={name:"ɵɵpureFunction3",moduleName:CORE};static#_102=this.pureFunction4={name:"ɵɵpureFunction4",moduleName:CORE};static#_103=this.pureFunction5={name:"ɵɵpureFunction5",moduleName:CORE};static#_104=this.pureFunction6={name:"ɵɵpureFunction6",moduleName:CORE};static#_105=this.pureFunction7={name:"ɵɵpureFunction7",moduleName:CORE};static#_106=this.pureFunction8={name:"ɵɵpureFunction8",moduleName:CORE};static#_107=this.pureFunctionV={name:"ɵɵpureFunctionV",moduleName:CORE};static#_108=this.pipeBind1={name:"ɵɵpipeBind1",moduleName:CORE};static#_109=this.pipeBind2={name:"ɵɵpipeBind2",moduleName:CORE};static#_110=this.pipeBind3={name:"ɵɵpipeBind3",moduleName:CORE};static#_111=this.pipeBind4={name:"ɵɵpipeBind4",moduleName:CORE};static#_112=this.pipeBindV={name:"ɵɵpipeBindV",moduleName:CORE};static#_113=this.hostProperty={name:"ɵɵhostProperty",moduleName:CORE};static#_114=this.property={name:"ɵɵproperty",moduleName:CORE};static#_115=this.propertyInterpolate={name:"ɵɵpropertyInterpolate",moduleName:CORE};static#_116=this.propertyInterpolate1={name:"ɵɵpropertyInterpolate1",moduleName:CORE};static#_117=this.propertyInterpolate2={name:"ɵɵpropertyInterpolate2",moduleName:CORE};static#_118=this.propertyInterpolate3={name:"ɵɵpropertyInterpolate3",moduleName:CORE};static#_119=this.propertyInterpolate4={name:"ɵɵpropertyInterpolate4",moduleName:CORE};static#_120=this.propertyInterpolate5={name:"ɵɵpropertyInterpolate5",moduleName:CORE};static#_121=this.propertyInterpolate6={name:"ɵɵpropertyInterpolate6",moduleName:CORE};static#_122=this.propertyInterpolate7={name:"ɵɵpropertyInterpolate7",moduleName:CORE};static#_123=this.propertyInterpolate8={name:"ɵɵpropertyInterpolate8",moduleName:CORE};static#_124=this.propertyInterpolateV={name:"ɵɵpropertyInterpolateV",moduleName:CORE};static#_125=this.i18n={name:"ɵɵi18n",moduleName:CORE};static#_126=this.i18nAttributes={name:"ɵɵi18nAttributes",moduleName:CORE};static#_127=this.i18nExp={name:"ɵɵi18nExp",moduleName:CORE};static#_128=this.i18nStart={name:"ɵɵi18nStart",moduleName:CORE};static#_129=this.i18nEnd={name:"ɵɵi18nEnd",moduleName:CORE};static#_130=this.i18nApply={name:"ɵɵi18nApply",moduleName:CORE};static#_131=this.i18nPostprocess={name:"ɵɵi18nPostprocess",moduleName:CORE};static#_132=this.pipe={name:"ɵɵpipe",moduleName:CORE};static#_133=this.projection={name:"ɵɵprojection",moduleName:CORE};static#_134=this.projectionDef={name:"ɵɵprojectionDef",moduleName:CORE};static#_135=this.reference={name:"ɵɵreference",moduleName:CORE};static#_136=this.inject={name:"ɵɵinject",moduleName:CORE};static#_137=this.injectAttribute={name:"ɵɵinjectAttribute",moduleName:CORE};static#_138=this.directiveInject={name:"ɵɵdirectiveInject",moduleName:CORE};static#_139=this.invalidFactory={name:"ɵɵinvalidFactory",moduleName:CORE};static#_140=this.invalidFactoryDep={name:"ɵɵinvalidFactoryDep",moduleName:CORE};static#_141=this.templateRefExtractor={name:"ɵɵtemplateRefExtractor",moduleName:CORE};static#_142=this.forwardRef={name:"forwardRef",moduleName:CORE};static#_143=this.resolveForwardRef={name:"resolveForwardRef",moduleName:CORE};static#_144=this.ɵɵdefineInjectable={name:"ɵɵdefineInjectable",moduleName:CORE};static#_145=this.declareInjectable={name:"ɵɵngDeclareInjectable",moduleName:CORE};static#_146=this.InjectableDeclaration={name:"ɵɵInjectableDeclaration",moduleName:CORE};static#_147=this.resolveWindow={name:"ɵɵresolveWindow",moduleName:CORE};static#_148=this.resolveDocument={name:"ɵɵresolveDocument",moduleName:CORE};static#_149=this.resolveBody={name:"ɵɵresolveBody",moduleName:CORE};static#_150=this.getComponentDepsFactory={name:"ɵɵgetComponentDepsFactory",moduleName:CORE};static#_151=this.defineComponent={name:"ɵɵdefineComponent",moduleName:CORE};static#_152=this.declareComponent={name:"ɵɵngDeclareComponent",moduleName:CORE};static#_153=this.setComponentScope={name:"ɵɵsetComponentScope",moduleName:CORE};static#_154=this.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleName:CORE};static#_155=this.ViewEncapsulation={name:"ViewEncapsulation",moduleName:CORE};static#_156=this.ComponentDeclaration={name:"ɵɵComponentDeclaration",moduleName:CORE};static#_157=this.FactoryDeclaration={name:"ɵɵFactoryDeclaration",moduleName:CORE};static#_158=this.declareFactory={name:"ɵɵngDeclareFactory",moduleName:CORE};static#_159=this.FactoryTarget={name:"ɵɵFactoryTarget",moduleName:CORE};static#_160=this.defineDirective={name:"ɵɵdefineDirective",moduleName:CORE};static#_161=this.declareDirective={name:"ɵɵngDeclareDirective",moduleName:CORE};static#_162=this.DirectiveDeclaration={name:"ɵɵDirectiveDeclaration",moduleName:CORE};static#_163=this.InjectorDef={name:"ɵɵInjectorDef",moduleName:CORE};static#_164=this.InjectorDeclaration={name:"ɵɵInjectorDeclaration",moduleName:CORE};static#_165=this.defineInjector={name:"ɵɵdefineInjector",moduleName:CORE};static#_166=this.declareInjector={name:"ɵɵngDeclareInjector",moduleName:CORE};static#_167=this.NgModuleDeclaration={name:"ɵɵNgModuleDeclaration",moduleName:CORE};static#_168=this.ModuleWithProviders={name:"ModuleWithProviders",moduleName:CORE};static#_169=this.defineNgModule={name:"ɵɵdefineNgModule",moduleName:CORE};static#_170=this.declareNgModule={name:"ɵɵngDeclareNgModule",moduleName:CORE};static#_171=this.setNgModuleScope={name:"ɵɵsetNgModuleScope",moduleName:CORE};static#_172=this.registerNgModuleType={name:"ɵɵregisterNgModuleType",moduleName:CORE};static#_173=this.PipeDeclaration={name:"ɵɵPipeDeclaration",moduleName:CORE};static#_174=this.definePipe={name:"ɵɵdefinePipe",moduleName:CORE};static#_175=this.declarePipe={name:"ɵɵngDeclarePipe",moduleName:CORE};static#_176=this.declareClassMetadata={name:"ɵɵngDeclareClassMetadata",moduleName:CORE};static#_177=this.declareClassMetadataAsync={name:"ɵɵngDeclareClassMetadataAsync",moduleName:CORE};static#_178=this.setClassMetadata={name:"ɵsetClassMetadata",moduleName:CORE};static#_179=this.setClassMetadataAsync={name:"ɵsetClassMetadataAsync",moduleName:CORE};static#_180=this.setClassDebugInfo={name:"ɵsetClassDebugInfo",moduleName:CORE};static#_181=this.queryRefresh={name:"ɵɵqueryRefresh",moduleName:CORE};static#_182=this.viewQuery={name:"ɵɵviewQuery",moduleName:CORE};static#_183=this.loadQuery={name:"ɵɵloadQuery",moduleName:CORE};static#_184=this.contentQuery={name:"ɵɵcontentQuery",moduleName:CORE};static#_185=this.viewQuerySignal={name:"ɵɵviewQuerySignal",moduleName:CORE};static#_186=this.contentQuerySignal={name:"ɵɵcontentQuerySignal",moduleName:CORE};static#_187=this.queryAdvance={name:"ɵɵqueryAdvance",moduleName:CORE};static#_188=this.twoWayProperty={name:"ɵɵtwoWayProperty",moduleName:CORE};static#_189=this.twoWayBindingSet={name:"ɵɵtwoWayBindingSet",moduleName:CORE};static#_190=this.twoWayListener={name:"ɵɵtwoWayListener",moduleName:CORE};static#_191=this.declareLet={name:"ɵɵdeclareLet",moduleName:CORE};static#_192=this.storeLet={name:"ɵɵstoreLet",moduleName:CORE};static#_193=this.readContextLet={name:"ɵɵreadContextLet",moduleName:CORE};static#_194=this.NgOnChangesFeature={name:"ɵɵNgOnChangesFeature",moduleName:CORE};static#_195=this.InheritDefinitionFeature={name:"ɵɵInheritDefinitionFeature",moduleName:CORE};static#_196=this.CopyDefinitionFeature={name:"ɵɵCopyDefinitionFeature",moduleName:CORE};static#_197=this.StandaloneFeature={name:"ɵɵStandaloneFeature",moduleName:CORE};static#_198=this.ProvidersFeature={name:"ɵɵProvidersFeature",moduleName:CORE};static#_199=this.HostDirectivesFeature={name:"ɵɵHostDirectivesFeature",moduleName:CORE};static#_200=this.InputTransformsFeatureFeature={name:"ɵɵInputTransformsFeature",moduleName:CORE};static#_201=this.listener={name:"ɵɵlistener",moduleName:CORE};static#_202=this.getInheritedFactory={name:"ɵɵgetInheritedFactory",moduleName:CORE};static#_203=this.sanitizeHtml={name:"ɵɵsanitizeHtml",moduleName:CORE};static#_204=this.sanitizeStyle={name:"ɵɵsanitizeStyle",moduleName:CORE};static#_205=this.sanitizeResourceUrl={name:"ɵɵsanitizeResourceUrl",moduleName:CORE};static#_206=this.sanitizeScript={name:"ɵɵsanitizeScript",moduleName:CORE};static#_207=this.sanitizeUrl={name:"ɵɵsanitizeUrl",moduleName:CORE};static#_208=this.sanitizeUrlOrResourceUrl={name:"ɵɵsanitizeUrlOrResourceUrl",moduleName:CORE};static#_209=this.trustConstantHtml={name:"ɵɵtrustConstantHtml",moduleName:CORE};static#_210=this.trustConstantResourceUrl={name:"ɵɵtrustConstantResourceUrl",moduleName:CORE};static#_211=this.validateIframeAttribute={name:"ɵɵvalidateIframeAttribute",moduleName:CORE};static#_212=this.InputSignalBrandWriteType={name:"ɵINPUT_SIGNAL_BRAND_WRITE_TYPE",moduleName:CORE};static#_213=this.UnwrapDirectiveSignalInputs={name:"ɵUnwrapDirectiveSignalInputs",moduleName:CORE};static#_214=this.unwrapWritableSignal={name:"ɵunwrapWritableSignal",moduleName:CORE}}const DASH_CASE_REGEXP=/-+([a-z0-9])/g;function _splitAt(input,character,defaultValues){const characterIndex=input.indexOf(character);return-1==characterIndex?defaultValues:[input.slice(0,characterIndex).trim(),input.slice(characterIndex+1).trim()]}function stringify(token){if("string"==typeof token)return token;if(Array.isArray(token))return"["+token.map(stringify).join(", ")+"]";if(null==token)return""+token;if(token.overriddenName)return`${token.overriddenName}`;if(token.name)return`${token.name}`;if(!token.toString)return"object";const res=token.toString();if(null==res)return""+res;const newLineIndex=res.indexOf("\n");return-1===newLineIndex?res:res.substring(0,newLineIndex)}class Version{constructor(full){this.full=full;const splits=full.split(".");this.major=splits[0],this.minor=splits[1],this.patch=splits.slice(2).join(".")}}const _global=globalThis;class SourceMapGenerator{constructor(file=null){this.file=file,this.sourcesContent=new Map,this.lines=[],this.lastCol0=0,this.hasMappings=!1}addSource(url,content=null){return this.sourcesContent.has(url)||this.sourcesContent.set(url,content),this}addLine(){return this.lines.push([]),this.lastCol0=0,this}addMapping(col0,sourceUrl,sourceLine0,sourceCol0){if(!this.currentLine)throw new Error("A line must be added before mappings can be added");if(null!=sourceUrl&&!this.sourcesContent.has(sourceUrl))throw new Error(`Unknown source file "${sourceUrl}"`);if(null==col0)throw new Error("The column in the generated code must be provided");if(col0{sourcesIndex.set(url,i),sources.push(url),sourcesContent.push(this.sourcesContent.get(url)||null)}));let mappings="",lastCol0=0,lastSourceIndex=0,lastSourceLine0=0,lastSourceCol0=0;return this.lines.forEach((segments=>{lastCol0=0,mappings+=segments.map((segment=>{let segAsStr=toBase64VLQ(segment.col0-lastCol0);return lastCol0=segment.col0,null!=segment.sourceUrl&&(segAsStr+=toBase64VLQ(sourcesIndex.get(segment.sourceUrl)-lastSourceIndex),lastSourceIndex=sourcesIndex.get(segment.sourceUrl),segAsStr+=toBase64VLQ(segment.sourceLine0-lastSourceLine0),lastSourceLine0=segment.sourceLine0,segAsStr+=toBase64VLQ(segment.sourceCol0-lastSourceCol0),lastSourceCol0=segment.sourceCol0),segAsStr})).join(","),mappings+=";"})),mappings=mappings.slice(0,-1),{file:this.file||"",version:3,sourceRoot:"",sources,sourcesContent,mappings}}toJsComment(){return this.hasMappings?"//# sourceMappingURL=data:application/json;base64,"+function toBase64String(value){let b64="";const encoded=function utf8Encode(str){let encoded=[];for(let index=0;index=55296&&codePoint<=56319&&str.length>index+1){const low=str.charCodeAt(index+1);low>=56320&&low<=57343&&(index++,codePoint=(codePoint-55296<<10)+low-56320+65536)}codePoint<=127?encoded.push(codePoint):codePoint<=2047?encoded.push(codePoint>>6&31|192,63&codePoint|128):codePoint<=65535?encoded.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128):codePoint<=2097151&&encoded.push(codePoint>>18&7|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}return encoded}(value);for(let i=0;i>2),b64+=toBase64Digit((3&i1)<<4|(null===i2?0:i2>>4)),b64+=null===i2?"=":toBase64Digit((15&i2)<<2|(null===i3?0:i3>>6)),b64+=null===i2||null===i3?"=":toBase64Digit(63&i3)}return b64}(JSON.stringify(this,null,0)):""}}function toBase64VLQ(value){value=value<0?1+(-value<<1):value<<1;let out="";do{let digit=31&value;(value>>=5)>0&&(digit|=32),out+=toBase64Digit(digit)}while(value>0);return out}const B64_DIGITS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function toBase64Digit(value){if(value<0||value>=64)throw new Error("Can only encode value in the range [0, 63]");return B64_DIGITS[value]}const _SINGLE_QUOTE_ESCAPE_STRING_RE=/'|\\|\n|\r|\$/g,_LEGAL_IDENTIFIER_RE=/^[$A-Z_][0-9A-Z_$]*$/i;class _EmittedLine{constructor(indent){this.indent=indent,this.partsLength=0,this.parts=[],this.srcSpans=[]}}class EmitterVisitorContext{static createRoot(){return new EmitterVisitorContext(0)}constructor(_indent){this._indent=_indent,this._lines=[new _EmittedLine(_indent)]}get _currentLine(){return this._lines[this._lines.length-1]}println(from,lastPart=""){this.print(from||null,lastPart,!0)}lineIsEmpty(){return 0===this._currentLine.parts.length}lineLength(){return 2*this._currentLine.indent+this._currentLine.partsLength}print(from,part,newLine=!1){part.length>0&&(this._currentLine.parts.push(part),this._currentLine.partsLength+=part.length,this._currentLine.srcSpans.push(from&&from.sourceSpan||null)),newLine&&this._lines.push(new _EmittedLine(this._indent))}removeEmptyLastLine(){this.lineIsEmpty()&&this._lines.pop()}incIndent(){this._indent++,this.lineIsEmpty()&&(this._currentLine.indent=this._indent)}decIndent(){this._indent--,this.lineIsEmpty()&&(this._currentLine.indent=this._indent)}toSource(){return this.sourceLines.map((l=>l.parts.length>0?_createIndent(l.indent)+l.parts.join(""):"")).join("\n")}toSourceMapGenerator(genFilePath,startsAtLine=0){const map=new SourceMapGenerator(genFilePath);let firstOffsetMapped=!1;const mapFirstOffsetIfNeeded=()=>{firstOffsetMapped||(map.addSource(genFilePath," ").addMapping(0,genFilePath,0,0),firstOffsetMapped=!0)};for(let i=0;i{map.addLine();const spans=line.srcSpans,parts=line.parts;let col0=2*line.indent,spanIdx=0;for(;spanIdxcolumnsLeft)return emittedLine.srcSpans[partIndex];columnsLeft-=part.length}}return null}get sourceLines(){return this._lines.length&&0===this._lines[this._lines.length-1].parts.length?this._lines.slice(0,-1):this._lines}}class AbstractEmitterVisitor{constructor(_escapeDollarInStrings){this._escapeDollarInStrings=_escapeDollarInStrings}printLeadingComments(stmt,ctx){if(void 0!==stmt.leadingComments)for(const comment of stmt.leadingComments)comment instanceof JSDocComment?ctx.print(stmt,`/*${comment.toString()}*/`,comment.trailingNewline):comment.multiline?ctx.print(stmt,`/* ${comment.text} */`,comment.trailingNewline):comment.text.split("\n").forEach((line=>{ctx.println(stmt,`// ${line}`)}))}visitExpressionStmt(stmt,ctx){return this.printLeadingComments(stmt,ctx),stmt.expr.visitExpression(this,ctx),ctx.println(stmt,";"),null}visitReturnStmt(stmt,ctx){return this.printLeadingComments(stmt,ctx),ctx.print(stmt,"return "),stmt.value.visitExpression(this,ctx),ctx.println(stmt,";"),null}visitIfStmt(stmt,ctx){this.printLeadingComments(stmt,ctx),ctx.print(stmt,"if ("),stmt.condition.visitExpression(this,ctx),ctx.print(stmt,") {");const hasElseCase=null!=stmt.falseCase&&stmt.falseCase.length>0;return stmt.trueCase.length<=1&&!hasElseCase?(ctx.print(stmt," "),this.visitAllStatements(stmt.trueCase,ctx),ctx.removeEmptyLastLine(),ctx.print(stmt," ")):(ctx.println(),ctx.incIndent(),this.visitAllStatements(stmt.trueCase,ctx),ctx.decIndent(),hasElseCase&&(ctx.println(stmt,"} else {"),ctx.incIndent(),this.visitAllStatements(stmt.falseCase,ctx),ctx.decIndent())),ctx.println(stmt,"}"),null}visitWriteVarExpr(expr,ctx){const lineWasEmpty=ctx.lineIsEmpty();return lineWasEmpty||ctx.print(expr,"("),ctx.print(expr,`${expr.name} = `),expr.value.visitExpression(this,ctx),lineWasEmpty||ctx.print(expr,")"),null}visitWriteKeyExpr(expr,ctx){const lineWasEmpty=ctx.lineIsEmpty();return lineWasEmpty||ctx.print(expr,"("),expr.receiver.visitExpression(this,ctx),ctx.print(expr,"["),expr.index.visitExpression(this,ctx),ctx.print(expr,"] = "),expr.value.visitExpression(this,ctx),lineWasEmpty||ctx.print(expr,")"),null}visitWritePropExpr(expr,ctx){const lineWasEmpty=ctx.lineIsEmpty();return lineWasEmpty||ctx.print(expr,"("),expr.receiver.visitExpression(this,ctx),ctx.print(expr,`.${expr.name} = `),expr.value.visitExpression(this,ctx),lineWasEmpty||ctx.print(expr,")"),null}visitInvokeFunctionExpr(expr,ctx){const shouldParenthesize=expr.fn instanceof ArrowFunctionExpr;return shouldParenthesize&&ctx.print(expr.fn,"("),expr.fn.visitExpression(this,ctx),shouldParenthesize&&ctx.print(expr.fn,")"),ctx.print(expr,"("),this.visitAllExpressions(expr.args,ctx,","),ctx.print(expr,")"),null}visitTaggedTemplateExpr(expr,ctx){expr.tag.visitExpression(this,ctx),ctx.print(expr,"`"+expr.template.elements[0].rawText);for(let i=1;i{ctx.print(ast,`${escapeIdentifier(entry.key,this._escapeDollarInStrings,entry.quoted)}:`),entry.value.visitExpression(this,ctx)}),ast.entries,ctx,","),ctx.print(ast,"}"),null}visitCommaExpr(ast,ctx){return ctx.print(ast,"("),this.visitAllExpressions(ast.parts,ctx,","),ctx.print(ast,")"),null}visitAllExpressions(expressions,ctx,separator){this.visitAllObjects((expr=>expr.visitExpression(this,ctx)),expressions,ctx,separator)}visitAllObjects(handler,expressions,ctx,separator){let incrementedIndent=!1;for(let i=0;i0&&(ctx.lineLength()>80?(ctx.print(null,separator,!0),incrementedIndent||(ctx.incIndent(),ctx.incIndent(),incrementedIndent=!0)):ctx.print(null,separator,!1)),handler(expressions[i]);incrementedIndent&&(ctx.decIndent(),ctx.decIndent())}visitAllStatements(statements,ctx){statements.forEach((stmt=>stmt.visitStatement(this,ctx)))}}function escapeIdentifier(input,escapeDollar,alwaysQuote=!0){if(null==input)return null;const body=input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE,((...match)=>"$"==match[0]?escapeDollar?"\\$":"$":"\n"==match[0]?"\\n":"\r"==match[0]?"\\r":`\\${match[0]}`));return alwaysQuote||!_LEGAL_IDENTIFIER_RE.test(body)?`'${body}'`:body}function _createIndent(count){let res="";for(let i=0;iref.value)));return shouldForwardDeclare?arrowFn([],values):values}function createMayBeForwardRefExpression(expression,forwardRef){return{expression,forwardRef}}function convertFromMaybeForwardRefExpression({expression,forwardRef}){switch(forwardRef){case 0:case 1:return expression;case 2:return generateForwardRef(expression)}}function generateForwardRef(expr){return importExpr(Identifiers.forwardRef).callFn([arrowFn([],expr)])}var R3FactoryDelegateType,FactoryTarget$1,ParsedPropertyType,ParsedEventType,BindingType,TagContentType;function compileFactoryFunction(meta){const t=variable("__ngFactoryType__");let baseFactoryVar=null;const typeForCtor=isDelegatedFactoryMetadata(meta)?t:new BinaryOperatorExpr(BinaryOperator.Or,t,meta.type.value);let ctorExpr=null;null!==meta.deps?"invalid"!==meta.deps&&(ctorExpr=new InstantiateExpr(typeForCtor,injectDependencies(meta.deps,meta.target))):(baseFactoryVar=variable(`ɵ${meta.name}_BaseFactory`),ctorExpr=baseFactoryVar.callFn([typeForCtor]));const body=[];let retExpr=null;function makeConditionalFactory(nonCtorExpr){const r=variable("__ngConditionalFactory__");body.push(r.set(NULL_EXPR).toDeclStmt());const ctorStmt=null!==ctorExpr?r.set(ctorExpr).toStmt():importExpr(Identifiers.invalidFactory).callFn([]).toStmt();return body.push(ifStmt(t,[ctorStmt],[r.set(nonCtorExpr).toStmt()])),r}if(isDelegatedFactoryMetadata(meta)){const delegateArgs=injectDependencies(meta.delegateDeps,meta.target);retExpr=makeConditionalFactory(new(meta.delegateType===R3FactoryDelegateType.Class?InstantiateExpr:InvokeFunctionExpr)(meta.delegate,delegateArgs))}else retExpr=function isExpressionFactoryMetadata(meta){return void 0!==meta.expression}(meta)?makeConditionalFactory(meta.expression):ctorExpr;if(null===retExpr)body.push(importExpr(Identifiers.invalidFactory).callFn([]).toStmt());else if(null!==baseFactoryVar){const getInheritedFactoryCall=importExpr(Identifiers.getInheritedFactory).callFn([meta.type.value]),baseFactory=new BinaryOperatorExpr(BinaryOperator.Or,baseFactoryVar,baseFactoryVar.set(getInheritedFactoryCall));body.push(new ReturnStatement(baseFactory.callFn([typeForCtor])))}else body.push(new ReturnStatement(retExpr));let factoryFn=fn([new FnParam(t.name,DYNAMIC_TYPE)],body,INFERRED_TYPE,void 0,`${meta.name}_Factory`);return null!==baseFactoryVar&&(factoryFn=arrowFn([],[new DeclareVarStmt(baseFactoryVar.name),new ReturnStatement(factoryFn)]).callFn([],void 0,!0)),{expression:factoryFn,statements:[],type:createFactoryType(meta)}}function createFactoryType(meta){const ctorDepsType=null!==meta.deps&&"invalid"!==meta.deps?function createCtorDepsType(deps){let hasTypes=!1;const attributeTypes=deps.map((dep=>{const type=function createCtorDepType(dep){const entries=[];null!==dep.attributeNameType&&entries.push({key:"attribute",value:dep.attributeNameType,quoted:!1});dep.optional&&entries.push({key:"optional",value:literal(!0),quoted:!1});dep.host&&entries.push({key:"host",value:literal(!0),quoted:!1});dep.self&&entries.push({key:"self",value:literal(!0),quoted:!1});dep.skipSelf&&entries.push({key:"skipSelf",value:literal(!0),quoted:!1});return entries.length>0?literalMap(entries):null}(dep);return null!==type?(hasTypes=!0,type):literal(null)}));return hasTypes?expressionType(literalArr(attributeTypes)):NONE_TYPE}(meta.deps):NONE_TYPE;return expressionType(importExpr(Identifiers.FactoryDeclaration,[typeWithParameters(meta.type.type,meta.typeArgumentCount),ctorDepsType]))}function injectDependencies(deps,target){return deps.map(((dep,index)=>function compileInjectDependency(dep,target,index){if(null===dep.token)return importExpr(Identifiers.invalidFactoryDep).callFn([literal(index)]);if(null===dep.attributeNameType){const flags=(dep.self?2:0)|(dep.skipSelf?4:0)|(dep.host?1:0)|(dep.optional?8:0)|(target===FactoryTarget$1.Pipe?16:0);let flagsParam=0!==flags||dep.optional?literal(flags):null;const injectArgs=[dep.token];flagsParam&&injectArgs.push(flagsParam);const injectFn=function getInjectFn(target){switch(target){case FactoryTarget$1.Component:case FactoryTarget$1.Directive:case FactoryTarget$1.Pipe:return Identifiers.directiveInject;case FactoryTarget$1.NgModule:case FactoryTarget$1.Injectable:default:return Identifiers.inject}}(target);return importExpr(injectFn).callFn(injectArgs)}return importExpr(Identifiers.injectAttribute).callFn([dep.token])}(dep,target,index)))}function isDelegatedFactoryMetadata(meta){return void 0!==meta.delegateType}!function(R3FactoryDelegateType){R3FactoryDelegateType[R3FactoryDelegateType.Class=0]="Class",R3FactoryDelegateType[R3FactoryDelegateType.Function=1]="Function"}(R3FactoryDelegateType||(R3FactoryDelegateType={})),function(FactoryTarget){FactoryTarget[FactoryTarget.Directive=0]="Directive",FactoryTarget[FactoryTarget.Component=1]="Component",FactoryTarget[FactoryTarget.Injectable=2]="Injectable",FactoryTarget[FactoryTarget.Pipe=3]="Pipe",FactoryTarget[FactoryTarget.NgModule=4]="NgModule"}(FactoryTarget$1||(FactoryTarget$1={}));class ParserError{constructor(message,input,errLocation,ctxLocation){this.input=input,this.errLocation=errLocation,this.ctxLocation=ctxLocation,this.message=`Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`}}class ParseSpan{constructor(start,end){this.start=start,this.end=end}toAbsolute(absoluteOffset){return new AbsoluteSourceSpan(absoluteOffset+this.start,absoluteOffset+this.end)}}class AST{constructor(span,sourceSpan){this.span=span,this.sourceSpan=sourceSpan}toString(){return"AST"}}class ASTWithName extends AST{constructor(span,sourceSpan,nameSpan){super(span,sourceSpan),this.nameSpan=nameSpan}}class EmptyExpr$1 extends AST{visit(visitor,context=null){}}class ImplicitReceiver extends AST{visit(visitor,context=null){return visitor.visitImplicitReceiver(this,context)}}class ThisReceiver extends ImplicitReceiver{visit(visitor,context=null){return visitor.visitThisReceiver?.(this,context)}}class Chain extends AST{constructor(span,sourceSpan,expressions){super(span,sourceSpan),this.expressions=expressions}visit(visitor,context=null){return visitor.visitChain(this,context)}}class Conditional extends AST{constructor(span,sourceSpan,condition,trueExp,falseExp){super(span,sourceSpan),this.condition=condition,this.trueExp=trueExp,this.falseExp=falseExp}visit(visitor,context=null){return visitor.visitConditional(this,context)}}class PropertyRead extends ASTWithName{constructor(span,sourceSpan,nameSpan,receiver,name){super(span,sourceSpan,nameSpan),this.receiver=receiver,this.name=name}visit(visitor,context=null){return visitor.visitPropertyRead(this,context)}}class PropertyWrite extends ASTWithName{constructor(span,sourceSpan,nameSpan,receiver,name,value){super(span,sourceSpan,nameSpan),this.receiver=receiver,this.name=name,this.value=value}visit(visitor,context=null){return visitor.visitPropertyWrite(this,context)}}class SafePropertyRead extends ASTWithName{constructor(span,sourceSpan,nameSpan,receiver,name){super(span,sourceSpan,nameSpan),this.receiver=receiver,this.name=name}visit(visitor,context=null){return visitor.visitSafePropertyRead(this,context)}}class KeyedRead extends AST{constructor(span,sourceSpan,receiver,key){super(span,sourceSpan),this.receiver=receiver,this.key=key}visit(visitor,context=null){return visitor.visitKeyedRead(this,context)}}class SafeKeyedRead extends AST{constructor(span,sourceSpan,receiver,key){super(span,sourceSpan),this.receiver=receiver,this.key=key}visit(visitor,context=null){return visitor.visitSafeKeyedRead(this,context)}}class KeyedWrite extends AST{constructor(span,sourceSpan,receiver,key,value){super(span,sourceSpan),this.receiver=receiver,this.key=key,this.value=value}visit(visitor,context=null){return visitor.visitKeyedWrite(this,context)}}class BindingPipe extends ASTWithName{constructor(span,sourceSpan,exp,name,args,nameSpan){super(span,sourceSpan,nameSpan),this.exp=exp,this.name=name,this.args=args}visit(visitor,context=null){return visitor.visitPipe(this,context)}}class LiteralPrimitive extends AST{constructor(span,sourceSpan,value){super(span,sourceSpan),this.value=value}visit(visitor,context=null){return visitor.visitLiteralPrimitive(this,context)}}class LiteralArray extends AST{constructor(span,sourceSpan,expressions){super(span,sourceSpan),this.expressions=expressions}visit(visitor,context=null){return visitor.visitLiteralArray(this,context)}}class LiteralMap extends AST{constructor(span,sourceSpan,keys,values){super(span,sourceSpan),this.keys=keys,this.values=values}visit(visitor,context=null){return visitor.visitLiteralMap(this,context)}}class Interpolation$1 extends AST{constructor(span,sourceSpan,strings,expressions){super(span,sourceSpan),this.strings=strings,this.expressions=expressions}visit(visitor,context=null){return visitor.visitInterpolation(this,context)}}class Binary extends AST{constructor(span,sourceSpan,operation,left,right){super(span,sourceSpan),this.operation=operation,this.left=left,this.right=right}visit(visitor,context=null){return visitor.visitBinary(this,context)}}class Unary extends Binary{static createMinus(span,sourceSpan,expr){return new Unary(span,sourceSpan,"-",expr,"-",new LiteralPrimitive(span,sourceSpan,0),expr)}static createPlus(span,sourceSpan,expr){return new Unary(span,sourceSpan,"+",expr,"-",expr,new LiteralPrimitive(span,sourceSpan,0))}constructor(span,sourceSpan,operator,expr,binaryOp,binaryLeft,binaryRight){super(span,sourceSpan,binaryOp,binaryLeft,binaryRight),this.operator=operator,this.expr=expr,this.left=null,this.right=null,this.operation=null}visit(visitor,context=null){return void 0!==visitor.visitUnary?visitor.visitUnary(this,context):visitor.visitBinary(this,context)}}class PrefixNot extends AST{constructor(span,sourceSpan,expression){super(span,sourceSpan),this.expression=expression}visit(visitor,context=null){return visitor.visitPrefixNot(this,context)}}class NonNullAssert extends AST{constructor(span,sourceSpan,expression){super(span,sourceSpan),this.expression=expression}visit(visitor,context=null){return visitor.visitNonNullAssert(this,context)}}class Call extends AST{constructor(span,sourceSpan,receiver,args,argumentSpan){super(span,sourceSpan),this.receiver=receiver,this.args=args,this.argumentSpan=argumentSpan}visit(visitor,context=null){return visitor.visitCall(this,context)}}class SafeCall extends AST{constructor(span,sourceSpan,receiver,args,argumentSpan){super(span,sourceSpan),this.receiver=receiver,this.args=args,this.argumentSpan=argumentSpan}visit(visitor,context=null){return visitor.visitSafeCall(this,context)}}class AbsoluteSourceSpan{constructor(start,end){this.start=start,this.end=end}}class ASTWithSource extends AST{constructor(ast,source,location,absoluteOffset,errors){super(new ParseSpan(0,null===source?0:source.length),new AbsoluteSourceSpan(absoluteOffset,null===source?absoluteOffset:absoluteOffset+source.length)),this.ast=ast,this.source=source,this.location=location,this.errors=errors}visit(visitor,context=null){return visitor.visitASTWithSource?visitor.visitASTWithSource(this,context):this.ast.visit(visitor,context)}toString(){return`${this.source} in ${this.location}`}}class VariableBinding{constructor(sourceSpan,key,value){this.sourceSpan=sourceSpan,this.key=key,this.value=value}}class ExpressionBinding{constructor(sourceSpan,key,value){this.sourceSpan=sourceSpan,this.key=key,this.value=value}}class RecursiveAstVisitor{visit(ast,context){ast.visit(this,context)}visitUnary(ast,context){this.visit(ast.expr,context)}visitBinary(ast,context){this.visit(ast.left,context),this.visit(ast.right,context)}visitChain(ast,context){this.visitAll(ast.expressions,context)}visitConditional(ast,context){this.visit(ast.condition,context),this.visit(ast.trueExp,context),this.visit(ast.falseExp,context)}visitPipe(ast,context){this.visit(ast.exp,context),this.visitAll(ast.args,context)}visitImplicitReceiver(ast,context){}visitThisReceiver(ast,context){}visitInterpolation(ast,context){this.visitAll(ast.expressions,context)}visitKeyedRead(ast,context){this.visit(ast.receiver,context),this.visit(ast.key,context)}visitKeyedWrite(ast,context){this.visit(ast.receiver,context),this.visit(ast.key,context),this.visit(ast.value,context)}visitLiteralArray(ast,context){this.visitAll(ast.expressions,context)}visitLiteralMap(ast,context){this.visitAll(ast.values,context)}visitLiteralPrimitive(ast,context){}visitPrefixNot(ast,context){this.visit(ast.expression,context)}visitNonNullAssert(ast,context){this.visit(ast.expression,context)}visitPropertyRead(ast,context){this.visit(ast.receiver,context)}visitPropertyWrite(ast,context){this.visit(ast.receiver,context),this.visit(ast.value,context)}visitSafePropertyRead(ast,context){this.visit(ast.receiver,context)}visitSafeKeyedRead(ast,context){this.visit(ast.receiver,context),this.visit(ast.key,context)}visitCall(ast,context){this.visit(ast.receiver,context),this.visitAll(ast.args,context)}visitSafeCall(ast,context){this.visit(ast.receiver,context),this.visitAll(ast.args,context)}visitAll(asts,context){for(const ast of asts)this.visit(ast,context)}}class AstTransformer{visitImplicitReceiver(ast,context){return ast}visitThisReceiver(ast,context){return ast}visitInterpolation(ast,context){return new Interpolation$1(ast.span,ast.sourceSpan,ast.strings,this.visitAll(ast.expressions))}visitLiteralPrimitive(ast,context){return new LiteralPrimitive(ast.span,ast.sourceSpan,ast.value)}visitPropertyRead(ast,context){return new PropertyRead(ast.span,ast.sourceSpan,ast.nameSpan,ast.receiver.visit(this),ast.name)}visitPropertyWrite(ast,context){return new PropertyWrite(ast.span,ast.sourceSpan,ast.nameSpan,ast.receiver.visit(this),ast.name,ast.value.visit(this))}visitSafePropertyRead(ast,context){return new SafePropertyRead(ast.span,ast.sourceSpan,ast.nameSpan,ast.receiver.visit(this),ast.name)}visitLiteralArray(ast,context){return new LiteralArray(ast.span,ast.sourceSpan,this.visitAll(ast.expressions))}visitLiteralMap(ast,context){return new LiteralMap(ast.span,ast.sourceSpan,ast.keys,this.visitAll(ast.values))}visitUnary(ast,context){switch(ast.operator){case"+":return Unary.createPlus(ast.span,ast.sourceSpan,ast.expr.visit(this));case"-":return Unary.createMinus(ast.span,ast.sourceSpan,ast.expr.visit(this));default:throw new Error(`Unknown unary operator ${ast.operator}`)}}visitBinary(ast,context){return new Binary(ast.span,ast.sourceSpan,ast.operation,ast.left.visit(this),ast.right.visit(this))}visitPrefixNot(ast,context){return new PrefixNot(ast.span,ast.sourceSpan,ast.expression.visit(this))}visitNonNullAssert(ast,context){return new NonNullAssert(ast.span,ast.sourceSpan,ast.expression.visit(this))}visitConditional(ast,context){return new Conditional(ast.span,ast.sourceSpan,ast.condition.visit(this),ast.trueExp.visit(this),ast.falseExp.visit(this))}visitPipe(ast,context){return new BindingPipe(ast.span,ast.sourceSpan,ast.exp.visit(this),ast.name,this.visitAll(ast.args),ast.nameSpan)}visitKeyedRead(ast,context){return new KeyedRead(ast.span,ast.sourceSpan,ast.receiver.visit(this),ast.key.visit(this))}visitKeyedWrite(ast,context){return new KeyedWrite(ast.span,ast.sourceSpan,ast.receiver.visit(this),ast.key.visit(this),ast.value.visit(this))}visitCall(ast,context){return new Call(ast.span,ast.sourceSpan,ast.receiver.visit(this),this.visitAll(ast.args),ast.argumentSpan)}visitSafeCall(ast,context){return new SafeCall(ast.span,ast.sourceSpan,ast.receiver.visit(this),this.visitAll(ast.args),ast.argumentSpan)}visitAll(asts){const res=[];for(let i=0;inull!==x)))}visitTriggers(keys,triggers,visitor){visitAll$1(visitor,keys.map((k=>triggers[k])))}}class SwitchBlock extends BlockNode{constructor(expression,cases,unknownBlocks,sourceSpan,startSourceSpan,endSourceSpan,nameSpan){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.expression=expression,this.cases=cases,this.unknownBlocks=unknownBlocks}visit(visitor){return visitor.visitSwitchBlock(this)}}class SwitchBlockCase extends BlockNode{constructor(expression,children,sourceSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.expression=expression,this.children=children,this.i18n=i18n}visit(visitor){return visitor.visitSwitchBlockCase(this)}}class ForLoopBlock extends BlockNode{constructor(item,expression,trackBy,trackKeywordSpan,contextVariables,children,empty,sourceSpan,mainBlockSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.item=item,this.expression=expression,this.trackBy=trackBy,this.trackKeywordSpan=trackKeywordSpan,this.contextVariables=contextVariables,this.children=children,this.empty=empty,this.mainBlockSpan=mainBlockSpan,this.i18n=i18n}visit(visitor){return visitor.visitForLoopBlock(this)}}class ForLoopBlockEmpty extends BlockNode{constructor(children,sourceSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.children=children,this.i18n=i18n}visit(visitor){return visitor.visitForLoopBlockEmpty(this)}}class IfBlock extends BlockNode{constructor(branches,sourceSpan,startSourceSpan,endSourceSpan,nameSpan){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.branches=branches}visit(visitor){return visitor.visitIfBlock(this)}}class IfBlockBranch extends BlockNode{constructor(expression,children,expressionAlias,sourceSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.expression=expression,this.children=children,this.expressionAlias=expressionAlias,this.i18n=i18n}visit(visitor){return visitor.visitIfBlockBranch(this)}}class UnknownBlock{constructor(name,sourceSpan,nameSpan){this.name=name,this.sourceSpan=sourceSpan,this.nameSpan=nameSpan}visit(visitor){return visitor.visitUnknownBlock(this)}}class LetDeclaration$1{constructor(name,value,sourceSpan,nameSpan,valueSpan){this.name=name,this.value=value,this.sourceSpan=sourceSpan,this.nameSpan=nameSpan,this.valueSpan=valueSpan}visit(visitor){return visitor.visitLetDeclaration(this)}}class Template{constructor(tagName,attributes,inputs,outputs,templateAttrs,children,references,variables,sourceSpan,startSourceSpan,endSourceSpan,i18n){this.tagName=tagName,this.attributes=attributes,this.inputs=inputs,this.outputs=outputs,this.templateAttrs=templateAttrs,this.children=children,this.references=references,this.variables=variables,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan,this.i18n=i18n}visit(visitor){return visitor.visitTemplate(this)}}class Content{constructor(selector,attributes,children,sourceSpan,i18n){this.selector=selector,this.attributes=attributes,this.children=children,this.sourceSpan=sourceSpan,this.i18n=i18n,this.name="ng-content"}visit(visitor){return visitor.visitContent(this)}}class Variable{constructor(name,value,sourceSpan,keySpan,valueSpan){this.name=name,this.value=value,this.sourceSpan=sourceSpan,this.keySpan=keySpan,this.valueSpan=valueSpan}visit(visitor){return visitor.visitVariable(this)}}class Reference{constructor(name,value,sourceSpan,keySpan,valueSpan){this.name=name,this.value=value,this.sourceSpan=sourceSpan,this.keySpan=keySpan,this.valueSpan=valueSpan}visit(visitor){return visitor.visitReference(this)}}class Icu$1{constructor(vars,placeholders,sourceSpan,i18n){this.vars=vars,this.placeholders=placeholders,this.sourceSpan=sourceSpan,this.i18n=i18n}visit(visitor){return visitor.visitIcu(this)}}class RecursiveVisitor$1{visitElement(element){visitAll$1(this,element.attributes),visitAll$1(this,element.inputs),visitAll$1(this,element.outputs),visitAll$1(this,element.children),visitAll$1(this,element.references)}visitTemplate(template){visitAll$1(this,template.attributes),visitAll$1(this,template.inputs),visitAll$1(this,template.outputs),visitAll$1(this,template.children),visitAll$1(this,template.references),visitAll$1(this,template.variables)}visitDeferredBlock(deferred){deferred.visitAll(this)}visitDeferredBlockPlaceholder(block){visitAll$1(this,block.children)}visitDeferredBlockError(block){visitAll$1(this,block.children)}visitDeferredBlockLoading(block){visitAll$1(this,block.children)}visitSwitchBlock(block){visitAll$1(this,block.cases)}visitSwitchBlockCase(block){visitAll$1(this,block.children)}visitForLoopBlock(block){const blockItems=[block.item,...block.contextVariables,...block.children];block.empty&&blockItems.push(block.empty),visitAll$1(this,blockItems)}visitForLoopBlockEmpty(block){visitAll$1(this,block.children)}visitIfBlock(block){visitAll$1(this,block.branches)}visitIfBlockBranch(block){const blockItems=block.children;block.expressionAlias&&blockItems.push(block.expressionAlias),visitAll$1(this,blockItems)}visitContent(content){visitAll$1(this,content.children)}visitVariable(variable){}visitReference(reference){}visitTextAttribute(attribute){}visitBoundAttribute(attribute){}visitBoundEvent(attribute){}visitText(text){}visitBoundText(text){}visitIcu(icu){}visitDeferredTrigger(trigger){}visitUnknownBlock(block){}visitLetDeclaration(decl){}}function visitAll$1(visitor,nodes){const result=[];if(visitor.visit)for(const node of nodes)visitor.visit(node)||node.visit(visitor);else for(const node of nodes){const newNode=node.visit(visitor);newNode&&result.push(newNode)}return result}class Message{constructor(nodes,placeholders,placeholderToMessage,meaning,description,customId){this.nodes=nodes,this.placeholders=placeholders,this.placeholderToMessage=placeholderToMessage,this.meaning=meaning,this.description=description,this.customId=customId,this.legacyIds=[],this.id=this.customId,this.messageString=function serializeMessage(messageNodes){const visitor=new LocalizeMessageStringVisitor;return messageNodes.map((n=>n.visit(visitor))).join("")}(this.nodes),nodes.length?this.sources=[{filePath:nodes[0].sourceSpan.start.file.url,startLine:nodes[0].sourceSpan.start.line+1,startCol:nodes[0].sourceSpan.start.col+1,endLine:nodes[nodes.length-1].sourceSpan.end.line+1,endCol:nodes[0].sourceSpan.start.col+1}]:this.sources=[]}}class Text$2{constructor(value,sourceSpan){this.value=value,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitText(this,context)}}class Container{constructor(children,sourceSpan){this.children=children,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitContainer(this,context)}}class Icu{constructor(expression,type,cases,sourceSpan,expressionPlaceholder){this.expression=expression,this.type=type,this.cases=cases,this.sourceSpan=sourceSpan,this.expressionPlaceholder=expressionPlaceholder}visit(visitor,context){return visitor.visitIcu(this,context)}}class TagPlaceholder{constructor(tag,attrs,startName,closeName,children,isVoid,sourceSpan,startSourceSpan,endSourceSpan){this.tag=tag,this.attrs=attrs,this.startName=startName,this.closeName=closeName,this.children=children,this.isVoid=isVoid,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan}visit(visitor,context){return visitor.visitTagPlaceholder(this,context)}}class Placeholder{constructor(value,name,sourceSpan){this.value=value,this.name=name,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitPlaceholder(this,context)}}class IcuPlaceholder{constructor(value,name,sourceSpan){this.value=value,this.name=name,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitIcuPlaceholder(this,context)}}class BlockPlaceholder{constructor(name,parameters,startName,closeName,children,sourceSpan,startSourceSpan,endSourceSpan){this.name=name,this.parameters=parameters,this.startName=startName,this.closeName=closeName,this.children=children,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan}visit(visitor,context){return visitor.visitBlockPlaceholder(this,context)}}class CloneVisitor{visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitContainer(container,context){const children=container.children.map((n=>n.visit(this,context)));return new Container(children,container.sourceSpan)}visitIcu(icu,context){const cases={};Object.keys(icu.cases).forEach((key=>cases[key]=icu.cases[key].visit(this,context)));return new Icu(icu.expression,icu.type,cases,icu.sourceSpan,icu.expressionPlaceholder)}visitTagPlaceholder(ph,context){const children=ph.children.map((n=>n.visit(this,context)));return new TagPlaceholder(ph.tag,ph.attrs,ph.startName,ph.closeName,children,ph.isVoid,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}visitPlaceholder(ph,context){return new Placeholder(ph.value,ph.name,ph.sourceSpan)}visitIcuPlaceholder(ph,context){return new IcuPlaceholder(ph.value,ph.name,ph.sourceSpan)}visitBlockPlaceholder(ph,context){const children=ph.children.map((n=>n.visit(this,context)));return new BlockPlaceholder(ph.name,ph.parameters,ph.startName,ph.closeName,children,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}}class RecurseVisitor{visitText(text,context){}visitContainer(container,context){container.children.forEach((child=>child.visit(this)))}visitIcu(icu,context){Object.keys(icu.cases).forEach((k=>{icu.cases[k].visit(this)}))}visitTagPlaceholder(ph,context){ph.children.forEach((child=>child.visit(this)))}visitPlaceholder(ph,context){}visitIcuPlaceholder(ph,context){}visitBlockPlaceholder(ph,context){ph.children.forEach((child=>child.visit(this)))}}class LocalizeMessageStringVisitor{visitText(text){return text.value}visitContainer(container){return container.children.map((child=>child.visit(this))).join("")}visitIcu(icu){const strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(" ")}}`}visitTagPlaceholder(ph){const children=ph.children.map((child=>child.visit(this))).join("");return`{$${ph.startName}}${children}{$${ph.closeName}}`}visitPlaceholder(ph){return`{$${ph.name}}`}visitIcuPlaceholder(ph){return`{$${ph.name}}`}visitBlockPlaceholder(ph){const children=ph.children.map((child=>child.visit(this))).join("");return`{$${ph.startName}}${children}{$${ph.closeName}}`}}class Serializer{createNameMapper(message){return null}}class SimplePlaceholderMapper extends RecurseVisitor{constructor(message,mapName){super(),this.mapName=mapName,this.internalToPublic={},this.publicToNextId={},this.publicToInternal={},message.nodes.forEach((node=>node.visit(this)))}toPublicName(internalName){return this.internalToPublic.hasOwnProperty(internalName)?this.internalToPublic[internalName]:null}toInternalName(publicName){return this.publicToInternal.hasOwnProperty(publicName)?this.publicToInternal[publicName]:null}visitText(text,context){return null}visitTagPlaceholder(ph,context){this.visitPlaceholderName(ph.startName),super.visitTagPlaceholder(ph,context),this.visitPlaceholderName(ph.closeName)}visitPlaceholder(ph,context){this.visitPlaceholderName(ph.name)}visitBlockPlaceholder(ph,context){this.visitPlaceholderName(ph.startName),super.visitBlockPlaceholder(ph,context),this.visitPlaceholderName(ph.closeName)}visitIcuPlaceholder(ph,context){this.visitPlaceholderName(ph.name)}visitPlaceholderName(internalName){if(!internalName||this.internalToPublic.hasOwnProperty(internalName))return;let publicName=this.mapName(internalName);if(this.publicToInternal.hasOwnProperty(publicName)){const nextId=this.publicToNextId[publicName];this.publicToNextId[publicName]=nextId+1,publicName=`${publicName}_${nextId}`}else this.publicToNextId[publicName]=1;this.internalToPublic[internalName]=publicName,this.publicToInternal[publicName]=internalName}}const _visitor=new class _Visitor$2{visitTag(tag){const strAttrs=this._serializeAttributes(tag.attrs);if(0==tag.children.length)return`<${tag.name}${strAttrs}/>`;const strChildren=tag.children.map((node=>node.visit(this)));return`<${tag.name}${strAttrs}>${strChildren.join("")}`}visitText(text){return text.value}visitDeclaration(decl){return``}_serializeAttributes(attrs){const strAttrs=Object.keys(attrs).map((name=>`${name}="${attrs[name]}"`)).join(" ");return strAttrs.length>0?" "+strAttrs:""}visitDoctype(doctype){return``}};function serialize(nodes){return nodes.map((node=>node.visit(_visitor))).join("")}class Declaration{constructor(unescapedAttrs){this.attrs={},Object.keys(unescapedAttrs).forEach((k=>{this.attrs[k]=escapeXml(unescapedAttrs[k])}))}visit(visitor){return visitor.visitDeclaration(this)}}class Doctype{constructor(rootTag,dtd){this.rootTag=rootTag,this.dtd=dtd}visit(visitor){return visitor.visitDoctype(this)}}class Tag{constructor(name,unescapedAttrs={},children=[]){this.name=name,this.children=children,this.attrs={},Object.keys(unescapedAttrs).forEach((k=>{this.attrs[k]=escapeXml(unescapedAttrs[k])}))}visit(visitor){return visitor.visitTag(this)}}class Text$1{constructor(unescapedValue){this.value=escapeXml(unescapedValue)}visit(visitor){return visitor.visitText(this)}}class CR extends Text$1{constructor(ws=0){super(`\n${new Array(ws+1).join(" ")}`)}}const _ESCAPED_CHARS=[[/&/g,"&"],[/"/g,"""],[/'/g,"'"],[//g,">"]];function escapeXml(text){return _ESCAPED_CHARS.reduce(((text,entry)=>text.replace(entry[0],entry[1])),text)}class Xmb extends Serializer{constructor(preservePlaceholders=!0){super(),this.preservePlaceholders=preservePlaceholders}write(messages,locale){const exampleVisitor=new ExampleVisitor,visitor=new _Visitor$1,rootNode=new Tag("messagebundle");return rootNode.attrs.handler="angular",messages.forEach((message=>{const attrs={id:message.id};message.description&&(attrs.desc=message.description),message.meaning&&(attrs.meaning=message.meaning);let sourceTags=[];message.sources.forEach((source=>{sourceTags.push(new Tag("source",{},[new Text$1(`${source.filePath}:${source.startLine}${source.endLine!==source.startLine?","+source.endLine:""}`)]))})),rootNode.children.push(new CR(2),new Tag("msg",attrs,[...sourceTags,...visitor.serialize(message.nodes)]))})),rootNode.children.push(new CR),serialize([new Declaration({version:"1.0",encoding:"UTF-8"}),new CR,new Doctype("messagebundle",'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'),new CR,exampleVisitor.addDefaultExamples(rootNode),new CR])}load(content,url){throw new Error("Unsupported")}digest(message){return digest(message,this.preservePlaceholders)}createNameMapper(message){return new SimplePlaceholderMapper(message,toPublicName)}}class _Visitor$1{visitText(text,context){return[new Text$1(text.value)]}visitContainer(container,context){const nodes=[];return container.children.forEach((node=>nodes.push(...node.visit(this)))),nodes}visitIcu(icu,context){const nodes=[new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];return Object.keys(icu.cases).forEach((c=>{nodes.push(new Text$1(`${c} {`),...icu.cases[c].visit(this),new Text$1("} "))})),nodes.push(new Text$1("}")),nodes}visitTagPlaceholder(ph,context){const startTagAsText=new Text$1(`<${ph.tag}>`),startEx=new Tag("ex",{},[startTagAsText]),startTagPh=new Tag("ph",{name:ph.startName},[startEx,startTagAsText]);if(ph.isVoid)return[startTagPh];const closeTagAsText=new Text$1(``),closeEx=new Tag("ex",{},[closeTagAsText]),closeTagPh=new Tag("ph",{name:ph.closeName},[closeEx,closeTagAsText]);return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitPlaceholder(ph,context){const interpolationAsText=new Text$1(`{{${ph.value}}}`),exTag=new Tag("ex",{},[interpolationAsText]);return[new Tag("ph",{name:ph.name},[exTag,interpolationAsText])]}visitBlockPlaceholder(ph,context){const startAsText=new Text$1(`@${ph.name}`),startEx=new Tag("ex",{},[startAsText]),startTagPh=new Tag("ph",{name:ph.startName},[startEx,startAsText]),closeAsText=new Text$1("}"),closeEx=new Tag("ex",{},[closeAsText]),closeTagPh=new Tag("ph",{name:ph.closeName},[closeEx,closeAsText]);return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitIcuPlaceholder(ph,context){const icuExpression=ph.value.expression,icuType=ph.value.type,icuCases=Object.keys(ph.value.cases).map((value=>value+" {...}")).join(" "),icuAsText=new Text$1(`{${icuExpression}, ${icuType}, ${icuCases}}`),exTag=new Tag("ex",{},[icuAsText]);return[new Tag("ph",{name:ph.name},[exTag,icuAsText])]}serialize(nodes){return[].concat(...nodes.map((node=>node.visit(this))))}}function digest(message,preservePlaceholders){return decimalDigest(message,preservePlaceholders)}class ExampleVisitor{addDefaultExamples(node){return node.visit(this),node}visitTag(tag){if("ph"===tag.name){if(!tag.children||0==tag.children.length){const exText=new Text$1(tag.attrs.name||"...");tag.children=[new Tag("ex",{},[exText])]}}else tag.children&&tag.children.forEach((node=>node.visit(this)))}visitText(text){}visitDeclaration(decl){}visitDoctype(doctype){}}function toPublicName(internalName){return internalName.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}const I18N_ATTR="i18n",I18N_ATTR_PREFIX="i18n-";function isI18nAttribute(name){return name===I18N_ATTR||name.startsWith(I18N_ATTR_PREFIX)}function icuFromI18nMessage(message){return message.nodes[0]}function formatI18nPlaceholderNamesInMap(params={},useCamelCase){const _params={};return params&&Object.keys(params).length&&Object.keys(params).forEach((key=>_params[formatI18nPlaceholderName(key,useCamelCase)]=params[key])),_params}function formatI18nPlaceholderName(name,useCamelCase=!0){const publicName=toPublicName(name);if(!useCamelCase)return publicName;const chunks=publicName.split("_");if(1===chunks.length)return name.toLowerCase();let postfix;/^\d+$/.test(chunks[chunks.length-1])&&(postfix=chunks.pop());let raw=chunks.shift().toLowerCase();return chunks.length&&(raw+=chunks.map((c=>c.charAt(0).toUpperCase()+c.slice(1).toLowerCase())).join("")),postfix?`${raw}_${postfix}`:raw}const UNSAFE_OBJECT_KEY_NAME_REGEXP=/[-.]/,TEMPORARY_NAME="_t",CONTEXT_NAME="ctx",RENDER_FLAGS="rf";function temporaryAllocator(pushStatement,name){let temp=null;return()=>(temp||(pushStatement(new DeclareVarStmt(TEMPORARY_NAME,void 0,DYNAMIC_TYPE)),temp=variable(name)),temp)}function asLiteral(value){return Array.isArray(value)?literalArr(value.map(asLiteral)):literal(value,INFERRED_TYPE)}function conditionallyCreateDirectiveBindingLiteral(map,forInputs){const keys=Object.getOwnPropertyNames(map);return 0===keys.length?null:literalMap(keys.map((key=>{const value=map[key];let declaredName,publicName,minifiedName,expressionValue;if("string"==typeof value)declaredName=key,minifiedName=key,publicName=value,expressionValue=asLiteral(publicName);else{minifiedName=key,declaredName=value.classPropertyName,publicName=value.bindingPropertyName;const differentDeclaringName=publicName!==declaredName,hasDecoratorInputTransform=null!==value.transformFunction;let flags=InputFlags.None;if(value.isSignal&&(flags|=InputFlags.SignalBased),hasDecoratorInputTransform&&(flags|=InputFlags.HasDecoratorInputTransform),forInputs&&(differentDeclaringName||hasDecoratorInputTransform||flags!==InputFlags.None)){const result=[literal(flags),asLiteral(publicName)];(differentDeclaringName||hasDecoratorInputTransform)&&(result.push(asLiteral(declaredName)),hasDecoratorInputTransform&&result.push(value.transformFunction)),expressionValue=literalArr(result)}else expressionValue=asLiteral(publicName)}return{key:minifiedName,quoted:UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),value:expressionValue}})))}class DefinitionMap{constructor(){this.values=[]}set(key,value){if(value){const existing=this.values.find((value=>value.key===key));existing?existing.value=value:this.values.push({key,value,quoted:!1})}}toLiteralMap(){return literalMap(this.values)}}function createCssSelectorFromNode(node){const elementName=node instanceof Element$1?node.name:"ng-template",attributes=function getAttrsForDirectiveMatching(elOrTpl){const attributesMap={};elOrTpl instanceof Template&&"ng-template"!==elOrTpl.tagName?elOrTpl.templateAttrs.forEach((a=>attributesMap[a.name]="")):(elOrTpl.attributes.forEach((a=>{isI18nAttribute(a.name)||(attributesMap[a.name]=a.value)})),elOrTpl.inputs.forEach((i=>{i.type!==BindingType.Property&&i.type!==BindingType.TwoWay||(attributesMap[i.name]="")})),elOrTpl.outputs.forEach((o=>{attributesMap[o.name]=""})));return attributesMap}(node),cssSelector=new CssSelector,elementNameNoNs=splitNsName(elementName)[1];return cssSelector.setElement(elementNameNoNs),Object.getOwnPropertyNames(attributes).forEach((name=>{const nameNoNs=splitNsName(name)[1],value=attributes[name];if(cssSelector.addAttribute(nameNoNs,value),"class"===name.toLowerCase()){value.trim().split(/\s+/).forEach((className=>cssSelector.addClassName(className)))}})),cssSelector}function compileInjectable(meta,resolveForwardRefs){let result=null;const factoryMeta={name:meta.name,type:meta.type,typeArgumentCount:meta.typeArgumentCount,deps:[],target:FactoryTarget$1.Injectable};if(void 0!==meta.useClass){const useClassOnSelf=meta.useClass.expression.isEquivalent(meta.type.value);let deps;void 0!==meta.deps&&(deps=meta.deps),result=void 0!==deps?compileFactoryFunction({...factoryMeta,delegate:meta.useClass.expression,delegateDeps:deps,delegateType:R3FactoryDelegateType.Class}):useClassOnSelf?compileFactoryFunction(factoryMeta):{statements:[],expression:delegateToFactory(meta.type.value,meta.useClass.expression,resolveForwardRefs)}}else result=void 0!==meta.useFactory?void 0!==meta.deps?compileFactoryFunction({...factoryMeta,delegate:meta.useFactory,delegateDeps:meta.deps||[],delegateType:R3FactoryDelegateType.Function}):{statements:[],expression:arrowFn([],meta.useFactory.callFn([]))}:void 0!==meta.useValue?compileFactoryFunction({...factoryMeta,expression:meta.useValue.expression}):void 0!==meta.useExisting?compileFactoryFunction({...factoryMeta,expression:importExpr(Identifiers.inject).callFn([meta.useExisting.expression])}):{statements:[],expression:delegateToFactory(meta.type.value,meta.type.value,resolveForwardRefs)};const token=meta.type.value,injectableProps=new DefinitionMap;injectableProps.set("token",token),injectableProps.set("factory",result.expression),null!==meta.providedIn.expression.value&&injectableProps.set("providedIn",convertFromMaybeForwardRefExpression(meta.providedIn));return{expression:importExpr(Identifiers.ɵɵdefineInjectable).callFn([injectableProps.toLiteralMap()],void 0,!0),type:createInjectableType(meta),statements:result.statements}}function createInjectableType(meta){return new ExpressionType(importExpr(Identifiers.InjectableDeclaration,[typeWithParameters(meta.type.type,meta.typeArgumentCount)]))}function delegateToFactory(type,useType,unwrapForwardRefs){if(type.node===useType.node)return useType.prop("ɵfac");if(!unwrapForwardRefs)return createFactoryFunction(useType);return createFactoryFunction(importExpr(Identifiers.resolveForwardRef).callFn([useType]))}function createFactoryFunction(type){const t=new FnParam("__ngFactoryType__",DYNAMIC_TYPE);return arrowFn([t],type.prop("ɵfac").callFn([variable(t.name)]))}const UNUSABLE_INTERPOLATION_REGEXPS=[/@/,/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];class InterpolationConfig{static fromArray(markers){return markers?(function assertInterpolationSymbols(identifier,value){if(!(null==value||Array.isArray(value)&&2==value.length))throw new Error(`Expected '${identifier}' to be an array, [start, end].`);if(null!=value){const start=value[0],end=value[1];UNUSABLE_INTERPOLATION_REGEXPS.forEach((regexp=>{if(regexp.test(start)||regexp.test(end))throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`)}))}}("interpolation",markers),new InterpolationConfig(markers[0],markers[1])):DEFAULT_INTERPOLATION_CONFIG}constructor(start,end){this.start=start,this.end=end}}const DEFAULT_INTERPOLATION_CONFIG=new InterpolationConfig("{{","}}"),DEFAULT_CONTAINER_BLOCKS=new Set(["switch"]),$EOF=0,$TAB=9,$SPACE=32,$$=36,$0=48,$9=57,$A=65,$F=70,$Z=90,$_=95,$a=97,$f=102,$z=122,$NBSP=160;function isWhitespace(code){return code>=$TAB&&code<=$SPACE||code==$NBSP}function isDigit(code){return $0<=code&&code<=$9}function isAsciiLetter(code){return code>=$a&&code<=$z||code>=$A&&code<=$Z}function isNewLine(code){return 10===code||13===code}function isOctalDigit(code){return $0<=code&&code<=55}function isQuote(code){return 39===code||34===code||96===code}class ParseLocation{constructor(file,offset,line,col){this.file=file,this.offset=offset,this.line=line,this.col=col}toString(){return null!=this.offset?`${this.file.url}@${this.line}:${this.col}`:this.file.url}moveBy(delta){const source=this.file.content,len=source.length;let offset=this.offset,line=this.line,col=this.col;for(;offset>0&&delta<0;){offset--,delta++;if(10==source.charCodeAt(offset)){line--;const priorLine=source.substring(0,offset-1).lastIndexOf(String.fromCharCode(10));col=priorLine>0?offset-priorLine:offset}else col--}for(;offset0;){const ch=source.charCodeAt(offset);offset++,delta--,10==ch?(line++,col=0):col++}return new ParseLocation(this.file,offset,line,col)}getContext(maxChars,maxLines){const content=this.file.content;let startOffset=this.offset;if(null!=startOffset){startOffset>content.length-1&&(startOffset=content.length-1);let endOffset=startOffset,ctxChars=0,ctxLines=0;for(;ctxChars0&&(startOffset--,ctxChars++,"\n"!=content[startOffset]||++ctxLines!=maxLines););for(ctxChars=0,ctxLines=0;ctxChars]${ctx.after}")`:this.msg}toString(){const details=this.span.details?`, ${this.span.details}`:"";return`${this.contextualMessage()}: ${this.span.start}${details}`}}function r3JitTypeSourceSpan(kind,typeName,sourceUrl){const sourceFile=new ParseSourceFile("",`in ${kind} ${typeName} in ${sourceUrl}`);return new ParseSourceSpan(new ParseLocation(sourceFile,-1,-1,-1),new ParseLocation(sourceFile,-1,-1,-1))}let _anonymousTypeIndex=0;function identifierName(compileIdentifier){if(!compileIdentifier||!compileIdentifier.reference)return null;const ref=compileIdentifier.reference;if(ref.__anonymousType)return ref.__anonymousType;if(ref.__forward_ref__)return"__forward_ref__";let identifier=stringify(ref);return identifier.indexOf("(")>=0?(identifier="anonymous_"+_anonymousTypeIndex++,ref.__anonymousType=identifier):identifier=sanitizeIdentifier(identifier),identifier}function sanitizeIdentifier(name){return name.replace(/\W/g,"_")}const makeTemplateObjectPolyfill='(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})';class AbstractJsEmitterVisitor extends AbstractEmitterVisitor{constructor(){super(!1)}visitWrappedNodeExpr(ast,ctx){throw new Error("Cannot emit a WrappedNodeExpr in Javascript.")}visitDeclareVarStmt(stmt,ctx){return ctx.print(stmt,`var ${stmt.name}`),stmt.value&&(ctx.print(stmt," = "),stmt.value.visitExpression(this,ctx)),ctx.println(stmt,";"),null}visitTaggedTemplateExpr(ast,ctx){const elements=ast.template.elements;return ast.tag.visitExpression(this,ctx),ctx.print(ast,`(${makeTemplateObjectPolyfill}(`),ctx.print(ast,`[${elements.map((part=>escapeIdentifier(part.text,!1))).join(", ")}], `),ctx.print(ast,`[${elements.map((part=>escapeIdentifier(part.rawText,!1))).join(", ")}])`),ast.template.expressions.forEach((expression=>{ctx.print(ast,", "),expression.visitExpression(this,ctx)})),ctx.print(ast,")"),null}visitFunctionExpr(ast,ctx){return ctx.print(ast,`function${ast.name?" "+ast.name:""}(`),this._visitParams(ast.params,ctx),ctx.println(ast,") {"),ctx.incIndent(),this.visitAllStatements(ast.statements,ctx),ctx.decIndent(),ctx.print(ast,"}"),null}visitArrowFunctionExpr(ast,ctx){if(ctx.print(ast,"("),this._visitParams(ast.params,ctx),ctx.print(ast,") =>"),Array.isArray(ast.body))ctx.println(ast,"{"),ctx.incIndent(),this.visitAllStatements(ast.body,ctx),ctx.decIndent(),ctx.print(ast,"}");else{const isObjectLiteral=ast.body instanceof LiteralMapExpr;isObjectLiteral&&ctx.print(ast,"("),ast.body.visitExpression(this,ctx),isObjectLiteral&&ctx.print(ast,")")}return null}visitDeclareFunctionStmt(stmt,ctx){return ctx.print(stmt,`function ${stmt.name}(`),this._visitParams(stmt.params,ctx),ctx.println(stmt,") {"),ctx.incIndent(),this.visitAllStatements(stmt.statements,ctx),ctx.decIndent(),ctx.println(stmt,"}"),null}visitLocalizedString(ast,ctx){ctx.print(ast,`$localize(${makeTemplateObjectPolyfill}(`);const parts=[ast.serializeI18nHead()];for(let i=1;iescapeIdentifier(part.cooked,!1))).join(", ")}], `),ctx.print(ast,`[${parts.map((part=>escapeIdentifier(part.raw,!1))).join(", ")}])`),ast.expressions.forEach((expression=>{ctx.print(ast,", "),expression.visitExpression(this,ctx)})),ctx.print(ast,")"),null}_visitParams(params,ctx){this.visitAllObjects((param=>ctx.print(null,param.name)),params,ctx,",")}}let policy;function trustedScriptFromString(script){return function getPolicy(){if(void 0===policy){const trustedTypes=_global.trustedTypes;if(policy=null,trustedTypes)try{policy=trustedTypes.createPolicy("angular#unsafe-jit",{createScript:s=>s})}catch{}}return policy}()?.createScript(script)||script}function newTrustedFunctionForJIT(...args){if(!_global.trustedTypes)return new Function(...args);const body=`(function anonymous(${args.slice(0,-1).join(",")}\n) { ${args[args.length-1]}\n})`,fn=_global.eval(trustedScriptFromString(body));return void 0===fn.bind?new Function(...args):(fn.toString=()=>body,fn.bind(_global))}class JitEvaluator{evaluateStatements(sourceUrl,statements,refResolver,createSourceMaps){const converter=new JitEmitterVisitor(refResolver),ctx=EmitterVisitorContext.createRoot();return statements.length>0&&!function isUseStrictStatement(statement){return statement.isEquivalent(literal("use strict").toStmt())}(statements[0])&&(statements=[literal("use strict").toStmt(),...statements]),converter.visitAllStatements(statements,ctx),converter.createReturnStmt(ctx),this.evaluateCode(sourceUrl,ctx,converter.getArgs(),createSourceMaps)}evaluateCode(sourceUrl,ctx,vars,createSourceMap){let fnBody=`"use strict";${ctx.toSource()}\n//# sourceURL=${sourceUrl}`;const fnArgNames=[],fnArgValues=[];for(const argName in vars)fnArgValues.push(vars[argName]),fnArgNames.push(argName);if(createSourceMap){const emptyFn=newTrustedFunctionForJIT(...fnArgNames.concat("return null;")).toString(),headerLines=emptyFn.slice(0,emptyFn.indexOf("return null;")).split("\n").length-1;fnBody+=`\n${ctx.toSourceMapGenerator(sourceUrl,headerLines).toJsComment()}`}const fn=newTrustedFunctionForJIT(...fnArgNames.concat(fnBody));return this.executeFunction(fn,fnArgValues)}executeFunction(fn,args){return fn(...args)}}class JitEmitterVisitor extends AbstractJsEmitterVisitor{constructor(refResolver){super(),this.refResolver=refResolver,this._evalArgNames=[],this._evalArgValues=[],this._evalExportedVars=[]}createReturnStmt(ctx){new ReturnStatement(new LiteralMapExpr(this._evalExportedVars.map((resultVar=>new LiteralMapEntry(resultVar,variable(resultVar),!1))))).visitStatement(this,ctx)}getArgs(){const result={};for(let i=0;i0&&definitionMap.set("imports",literalArr(meta.imports));return{expression:importExpr(Identifiers.defineInjector).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createInjectorType(meta),statements:[]}}function createInjectorType(meta){return new ExpressionType(importExpr(Identifiers.InjectorDeclaration,[new ExpressionType(meta.type.type)]))}class R3JitReflector{constructor(context){this.context=context}resolveExternalReference(ref){if("@angular/core"!==ref.moduleName)throw new Error(`Cannot resolve external reference to ${ref.moduleName}, only references to @angular/core are supported.`);if(!this.context.hasOwnProperty(ref.name))throw new Error(`No value provided for @angular/core symbol '${ref.name}'.`);return this.context[ref.name]}}var R3SelectorScopeMode,R3NgModuleMetadataKind,R3TemplateDependencyKind;function compileNgModule(meta){const statements=[],definitionMap=new DefinitionMap;if(definitionMap.set("type",meta.type.value),meta.kind===R3NgModuleMetadataKind.Global&&meta.bootstrap.length>0&&definitionMap.set("bootstrap",refsToArray(meta.bootstrap,meta.containsForwardDecls)),meta.selectorScopeMode===R3SelectorScopeMode.Inline)meta.declarations.length>0&&definitionMap.set("declarations",refsToArray(meta.declarations,meta.containsForwardDecls)),meta.imports.length>0&&definitionMap.set("imports",refsToArray(meta.imports,meta.containsForwardDecls)),meta.exports.length>0&&definitionMap.set("exports",refsToArray(meta.exports,meta.containsForwardDecls));else if(meta.selectorScopeMode===R3SelectorScopeMode.SideEffect){const setNgModuleScopeCall=function generateSetNgModuleScopeCall(meta){const scopeMap=new DefinitionMap;meta.kind===R3NgModuleMetadataKind.Global?meta.declarations.length>0&&scopeMap.set("declarations",refsToArray(meta.declarations,meta.containsForwardDecls)):meta.declarationsExpression&&scopeMap.set("declarations",meta.declarationsExpression);meta.kind===R3NgModuleMetadataKind.Global?meta.imports.length>0&&scopeMap.set("imports",refsToArray(meta.imports,meta.containsForwardDecls)):meta.importsExpression&&scopeMap.set("imports",meta.importsExpression);meta.kind===R3NgModuleMetadataKind.Global?meta.exports.length>0&&scopeMap.set("exports",refsToArray(meta.exports,meta.containsForwardDecls)):meta.exportsExpression&&scopeMap.set("exports",meta.exportsExpression);meta.kind===R3NgModuleMetadataKind.Local&&meta.bootstrapExpression&&scopeMap.set("bootstrap",meta.bootstrapExpression);if(0===Object.keys(scopeMap.values).length)return null;const fnCall=new InvokeFunctionExpr(importExpr(Identifiers.setNgModuleScope),[meta.type.value,scopeMap.toLiteralMap()]),guardedCall=function jitOnlyGuardedExpression(expr){return guardedExpression("ngJitMode",expr)}(fnCall),iife=new FunctionExpr([],[guardedCall.toStmt()]);return new InvokeFunctionExpr(iife,[]).toStmt()}(meta);null!==setNgModuleScopeCall&&statements.push(setNgModuleScopeCall)}null!==meta.schemas&&meta.schemas.length>0&&definitionMap.set("schemas",literalArr(meta.schemas.map((ref=>ref.value)))),null!==meta.id&&(definitionMap.set("id",meta.id),statements.push(importExpr(Identifiers.registerNgModuleType).callFn([meta.type.value,meta.id]).toStmt()));return{expression:importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createNgModuleType(meta),statements}}function createNgModuleType(meta){if(meta.kind===R3NgModuleMetadataKind.Local)return new ExpressionType(meta.type.value);const{type:moduleType,declarations,exports,imports,includeImportTypes,publicDeclarationTypes}=meta;return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration,[new ExpressionType(moduleType.type),null===publicDeclarationTypes?tupleTypeOf(declarations):tupleOfTypes(publicDeclarationTypes),includeImportTypes?tupleTypeOf(imports):NONE_TYPE,tupleTypeOf(exports)]))}function tupleTypeOf(exp){const types=exp.map((ref=>typeofExpr(ref.type)));return exp.length>0?expressionType(literalArr(types)):NONE_TYPE}function tupleOfTypes(types){const typeofTypes=types.map((type=>typeofExpr(type)));return types.length>0?expressionType(literalArr(typeofTypes)):NONE_TYPE}function compilePipeFromMetadata(metadata){const definitionMapValues=[];definitionMapValues.push({key:"name",value:literal(metadata.pipeName),quoted:!1}),definitionMapValues.push({key:"type",value:metadata.type.value,quoted:!1}),definitionMapValues.push({key:"pure",value:literal(metadata.pure),quoted:!1}),metadata.isStandalone&&definitionMapValues.push({key:"standalone",value:literal(!0),quoted:!1});return{expression:importExpr(Identifiers.definePipe).callFn([literalMap(definitionMapValues)],void 0,!0),type:createPipeType(metadata),statements:[]}}function createPipeType(metadata){return new ExpressionType(importExpr(Identifiers.PipeDeclaration,[typeWithParameters(metadata.type.type,metadata.typeArgumentCount),new ExpressionType(new LiteralExpr(metadata.pipeName)),new ExpressionType(new LiteralExpr(metadata.isStandalone))]))}!function(R3SelectorScopeMode){R3SelectorScopeMode[R3SelectorScopeMode.Inline=0]="Inline",R3SelectorScopeMode[R3SelectorScopeMode.SideEffect=1]="SideEffect",R3SelectorScopeMode[R3SelectorScopeMode.Omit=2]="Omit"}(R3SelectorScopeMode||(R3SelectorScopeMode={})),function(R3NgModuleMetadataKind){R3NgModuleMetadataKind[R3NgModuleMetadataKind.Global=0]="Global",R3NgModuleMetadataKind[R3NgModuleMetadataKind.Local=1]="Local"}(R3NgModuleMetadataKind||(R3NgModuleMetadataKind={})),function(R3TemplateDependencyKind){R3TemplateDependencyKind[R3TemplateDependencyKind.Directive=0]="Directive",R3TemplateDependencyKind[R3TemplateDependencyKind.Pipe=1]="Pipe",R3TemplateDependencyKind[R3TemplateDependencyKind.NgModule=2]="NgModule"}(R3TemplateDependencyKind||(R3TemplateDependencyKind={}));const animationKeywords=new Set(["inherit","initial","revert","unset","alternate","alternate-reverse","normal","reverse","backwards","both","forwards","none","paused","running","ease","ease-in","ease-in-out","ease-out","linear","step-start","step-end","end","jump-both","jump-end","jump-none","jump-start","start"]),scopedAtRuleIdentifiers=["@media","@supports","@document","@layer","@container","@scope","@starting-style"];class ShadowCss{constructor(){this._animationDeclarationKeyframesRe=/(^|\s+|,)(?:(?:(['"])((?:\\\\|\\\2|(?!\2).)+)\2)|(-?[A-Za-z][\w\-]*))(?=[,\s]|$)/g}shimCssText(cssText,selector,hostSelector=""){const comments=[];cssText=cssText.replace(_commentRe,(m=>{if(m.match(_commentWithHashRe))comments.push(m);else{const newLinesMatches=m.match(_newLinesRe);comments.push((newLinesMatches?.join("")??"")+"\n")}return COMMENT_PLACEHOLDER})),cssText=this._insertDirectives(cssText);const scopedCssText=this._scopeCssText(cssText,selector,hostSelector);let commentIdx=0;return scopedCssText.replace(_commentWithHashPlaceHolderRe,(()=>comments[commentIdx++]))}_insertDirectives(cssText){return cssText=this._insertPolyfillDirectivesInCssText(cssText),this._insertPolyfillRulesInCssText(cssText)}_scopeKeyframesRelatedCss(cssText,scopeSelector){const unscopedKeyframesSet=new Set,scopedKeyframesCssText=processRules(cssText,(rule=>this._scopeLocalKeyframeDeclarations(rule,scopeSelector,unscopedKeyframesSet)));return processRules(scopedKeyframesCssText,(rule=>this._scopeAnimationRule(rule,scopeSelector,unscopedKeyframesSet)))}_scopeLocalKeyframeDeclarations(rule,scopeSelector,unscopedKeyframesSet){return{...rule,selector:rule.selector.replace(/(^@(?:-webkit-)?keyframes(?:\s+))(['"]?)(.+)\2(\s*)$/,((_,start,quote,keyframeName,endSpaces)=>(unscopedKeyframesSet.add(unescapeQuotes(keyframeName,quote)),`${start}${quote}${scopeSelector}_${keyframeName}${quote}${endSpaces}`)))}}_scopeAnimationKeyframe(keyframe,scopeSelector,unscopedKeyframesSet){return keyframe.replace(/^(\s*)(['"]?)(.+?)\2(\s*)$/,((_,spaces1,quote,name,spaces2)=>`${spaces1}${quote}${name=`${unscopedKeyframesSet.has(unescapeQuotes(name,quote))?scopeSelector+"_":""}${name}`}${quote}${spaces2}`))}_scopeAnimationRule(rule,scopeSelector,unscopedKeyframesSet){let content=rule.content.replace(/((?:^|\s+|;)(?:-webkit-)?animation\s*:\s*),*([^;]+)/g,((_,start,animationDeclarations)=>start+animationDeclarations.replace(this._animationDeclarationKeyframesRe,((original,leadingSpaces,quote="",quotedName,nonQuotedName)=>quotedName?`${leadingSpaces}${this._scopeAnimationKeyframe(`${quote}${quotedName}${quote}`,scopeSelector,unscopedKeyframesSet)}`:animationKeywords.has(nonQuotedName)?original:`${leadingSpaces}${this._scopeAnimationKeyframe(nonQuotedName,scopeSelector,unscopedKeyframesSet)}`))));return content=content.replace(/((?:^|\s+|;)(?:-webkit-)?animation-name(?:\s*):(?:\s*))([^;]+)/g,((_match,start,commaSeparatedKeyframes)=>`${start}${commaSeparatedKeyframes.split(",").map((keyframe=>this._scopeAnimationKeyframe(keyframe,scopeSelector,unscopedKeyframesSet))).join(",")}`)),{...rule,content}}_insertPolyfillDirectivesInCssText(cssText){return cssText.replace(_cssContentNextSelectorRe,(function(...m){return m[2]+"{"}))}_insertPolyfillRulesInCssText(cssText){return cssText.replace(_cssContentRuleRe,((...m)=>{const rule=m[0].replace(m[1],"").replace(m[2],"");return m[4]+rule}))}_scopeCssText(cssText,scopeSelector,hostSelector){const unscopedRules=this._extractUnscopedRulesFromCssText(cssText);return cssText=this._insertPolyfillHostInCssText(cssText),cssText=this._convertColonHost(cssText),cssText=this._convertColonHostContext(cssText),cssText=this._convertShadowDOMSelectors(cssText),scopeSelector&&(cssText=this._scopeKeyframesRelatedCss(cssText,scopeSelector),cssText=this._scopeSelectors(cssText,scopeSelector,hostSelector)),(cssText=cssText+"\n"+unscopedRules).trim()}_extractUnscopedRulesFromCssText(cssText){let m,r="";for(_cssContentUnscopedRuleRe.lastIndex=0;null!==(m=_cssContentUnscopedRuleRe.exec(cssText));){r+=m[0].replace(m[2],"").replace(m[1],m[4])+"\n\n"}return r}_convertColonHost(cssText){return cssText.replace(_cssColonHostRe,((_,hostSelectors,otherSelectors)=>{if(hostSelectors){const convertedSelectors=[],hostSelectorArray=hostSelectors.split(",").map((p=>p.trim()));for(const hostSelector of hostSelectorArray){if(!hostSelector)break;const convertedSelector=_polyfillHostNoCombinator+hostSelector.replace(_polyfillHost,"")+otherSelectors;convertedSelectors.push(convertedSelector)}return convertedSelectors.join(",")}return _polyfillHostNoCombinator+otherSelectors}))}_convertColonHostContext(cssText){return cssText.replace(_cssColonHostContextReGlobal,(selectorText=>{const contextSelectorGroups=[[]];let match;for(;match=_cssColonHostContextRe.exec(selectorText);){const newContextSelectors=(match[1]??"").trim().split(",").map((m=>m.trim())).filter((m=>""!==m)),contextSelectorGroupsLength=contextSelectorGroups.length;repeatGroups(contextSelectorGroups,newContextSelectors.length);for(let i=0;ifunction combineHostContextSelectors(contextSelectors,otherSelectors){const hostMarker=_polyfillHostNoCombinator;_polyfillHostRe.lastIndex=0;const otherSelectorsHasHost=_polyfillHostRe.test(otherSelectors);if(0===contextSelectors.length)return hostMarker+otherSelectors;const combined=[contextSelectors.pop()||""];for(;contextSelectors.length>0;){const length=combined.length,contextSelector=contextSelectors.pop();for(let i=0;iotherSelectorsHasHost?`${s}${otherSelectors}`:`${s}${hostMarker}${otherSelectors}, ${s} ${hostMarker}${otherSelectors}`)).join(",")}(contextSelectors,selectorText))).join(", ")}))}_convertShadowDOMSelectors(cssText){return _shadowDOMSelectorsRe.reduce(((result,pattern)=>result.replace(pattern," ")),cssText)}_scopeSelectors(cssText,scopeSelector,hostSelector){return processRules(cssText,(rule=>{let selector=rule.selector,content=rule.content;return"@"!==rule.selector[0]?selector=this._scopeSelector(rule.selector,scopeSelector,hostSelector):scopedAtRuleIdentifiers.some((atRule=>rule.selector.startsWith(atRule)))?content=this._scopeSelectors(rule.content,scopeSelector,hostSelector):(rule.selector.startsWith("@font-face")||rule.selector.startsWith("@page"))&&(content=this._stripScopingSelectors(rule.content)),new CssRule(selector,content)}))}_stripScopingSelectors(cssText){return processRules(cssText,(rule=>{const selector=rule.selector.replace(_shadowDeepSelectors," ").replace(_polyfillHostNoCombinatorRe," ");return new CssRule(selector,rule.content)}))}_scopeSelector(selector,scopeSelector,hostSelector){return selector.split(/ ?, ?/).map((part=>part.split(_shadowDeepSelectors))).map((deepParts=>{const[shallowPart,...otherParts]=deepParts;return[(shallowPart=>this._selectorNeedsScoping(shallowPart,scopeSelector)?this._applySelectorScope(shallowPart,scopeSelector,hostSelector):shallowPart)(shallowPart),...otherParts].join(" ")})).join(", ")}_selectorNeedsScoping(selector,scopeSelector){return!this._makeScopeMatcher(scopeSelector).test(selector)}_makeScopeMatcher(scopeSelector){return scopeSelector=scopeSelector.replace(/\[/g,"\\[").replace(/\]/g,"\\]"),new RegExp("^("+scopeSelector+")"+_selectorReSuffix,"m")}_applySimpleSelectorScope(selector,scopeSelector,hostSelector){if(_polyfillHostRe.lastIndex=0,_polyfillHostRe.test(selector)){const replaceBy=`[${hostSelector}]`;return selector.replace(_polyfillHostNoCombinatorRe,((hnc,selector)=>selector.replace(/([^:]*)(:*)(.*)/,((_,before,colon,after)=>before+replaceBy+colon+after)))).replace(_polyfillHostRe,replaceBy+" ")}return scopeSelector+" "+selector}_applySelectorScope(selector,scopeSelector,hostSelector){const attrName="["+(scopeSelector=scopeSelector.replace(/\[is=([^\]]*)\]/g,((_,...parts)=>parts[0])))+"]",_scopeSelectorPart=p=>{let scopedP=p.trim();if(!scopedP)return p;if(p.includes(_polyfillHostNoCombinator))scopedP=this._applySimpleSelectorScope(p,scopeSelector,hostSelector);else{const t=p.replace(_polyfillHostRe,"");if(t.length>0){const matches=t.match(/([^:]*)(:*)(.*)/);matches&&(scopedP=matches[1]+attrName+matches[2]+matches[3])}}return scopedP},safeContent=new SafeSelector(selector);let res,scopedSelector="",startIndex=0;const sep=/( |>|\+|~(?!=))\s*/g;let shouldScope=!(selector=safeContent.content()).includes(_polyfillHostNoCombinator);for(;null!==(res=sep.exec(selector));){const separator=res[1],part=selector.slice(startIndex,res.index);if(part.match(/__esc-ph-(\d+)__/)&&selector[res.index+1]?.match(/[a-fA-F\d]/))continue;shouldScope=shouldScope||part.includes(_polyfillHostNoCombinator);scopedSelector+=`${shouldScope?_scopeSelectorPart(part):part} ${separator} `,startIndex=sep.lastIndex}const part=selector.substring(startIndex);return shouldScope=shouldScope||part.includes(_polyfillHostNoCombinator),scopedSelector+=shouldScope?_scopeSelectorPart(part):part,safeContent.restore(scopedSelector)}_insertPolyfillHostInCssText(selector){return selector.replace(_colonHostContextRe,_polyfillHostContext).replace(_colonHostRe,_polyfillHost)}}class SafeSelector{constructor(selector){this.placeholders=[],this.index=0,selector=(selector=this._escapeRegexMatches(selector,/(\[[^\]]*\])/g)).replace(/(\\.)/g,((_,keep)=>{const replaceBy=`__esc-ph-${this.index}__`;return this.placeholders.push(keep),this.index++,replaceBy})),this._content=selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g,((_,pseudo,exp)=>{const replaceBy=`__ph-${this.index}__`;return this.placeholders.push(exp),this.index++,pseudo+replaceBy}))}restore(content){return content.replace(/__(?:ph|esc-ph)-(\d+)__/g,((_ph,index)=>this.placeholders[+index]))}content(){return this._content}_escapeRegexMatches(content,pattern){return content.replace(pattern,((_,keep)=>{const replaceBy=`__ph-${this.index}__`;return this.placeholders.push(keep),this.index++,replaceBy}))}}const _cssContentNextSelectorRe=/polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim,_cssContentRuleRe=/(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,_cssContentUnscopedRuleRe=/(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,_polyfillHost="-shadowcsshost",_polyfillHostContext="-shadowcsscontext",_parenSuffix="(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",_cssColonHostRe=new RegExp(_polyfillHost+_parenSuffix,"gim"),_cssColonHostContextReGlobal=new RegExp(_polyfillHostContext+_parenSuffix,"gim"),_cssColonHostContextRe=new RegExp(_polyfillHostContext+_parenSuffix,"im"),_polyfillHostNoCombinator=_polyfillHost+"-no-combinator",_polyfillHostNoCombinatorRe=/-shadowcsshost-no-combinator([^\s]*)/,_shadowDOMSelectorsRe=[/::shadow/g,/::content/g,/\/shadow-deep\//g,/\/shadow\//g],_shadowDeepSelectors=/(?:>>>)|(?:\/deep\/)|(?:::ng-deep)/g,_selectorReSuffix="([>\\s~+[.,{:][\\s\\S]*)?$",_polyfillHostRe=/-shadowcsshost/gim,_colonHostRe=/:host/gim,_colonHostContextRe=/:host-context/gim,_newLinesRe=/\r?\n/g,_commentRe=/\/\*[\s\S]*?\*\//g,_commentWithHashRe=/\/\*\s*#\s*source(Mapping)?URL=/g,COMMENT_PLACEHOLDER="%COMMENT%",_commentWithHashPlaceHolderRe=new RegExp(COMMENT_PLACEHOLDER,"g"),BLOCK_PLACEHOLDER="%BLOCK%",_ruleRe=new RegExp(`(\\s*(?:${COMMENT_PLACEHOLDER}\\s*)*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))`,"g"),CONTENT_PAIRS=new Map([["{","}"]]),_cssCommaInPlaceholderReGlobal=new RegExp("%COMMA_IN_PLACEHOLDER%","g"),_cssSemiInPlaceholderReGlobal=new RegExp("%SEMI_IN_PLACEHOLDER%","g"),_cssColonInPlaceholderReGlobal=new RegExp("%COLON_IN_PLACEHOLDER%","g");class CssRule{constructor(selector,content){this.selector=selector,this.content=content}}function processRules(input,ruleCallback){const escaped=function escapeInStrings(input){let result=input,currentQuoteChar=null;for(let i=0;i{const selector=m[2];let content="",suffix=m[4],contentPrefix="";suffix&&suffix.startsWith("{"+BLOCK_PLACEHOLDER)&&(content=inputWithEscapedBlocks.blocks[nextBlockIndex++],suffix=suffix.substring(BLOCK_PLACEHOLDER.length+1),contentPrefix="{");const rule=ruleCallback(new CssRule(selector,content));return`${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`})))}class StringWithEscapedBlocks{constructor(escapedString,blocks){this.escapedString=escapedString,this.blocks=blocks}}const ESCAPE_IN_STRING_MAP={";":"%SEMI_IN_PLACEHOLDER%",",":"%COMMA_IN_PLACEHOLDER%",":":"%COLON_IN_PLACEHOLDER%"};function unescapeQuotes(str,isQuoted){return isQuoted?str.replace(/((?:^|[^\\])(?:\\\\)*)\\(?=['"])/g,"$1"):str}function repeatGroups(groups,multiples){const length=groups.length;for(let i=1;iarg.isEquivalent(this.args[idx]))))}isConstant(){return!1}transformInternalExpressions(transform,flags){null!==this.body?this.body=transformExpressionsInExpression(this.body,transform,flags|VisitorContextFlag.InChildOperation):null!==this.fn&&(this.fn=transformExpressionsInExpression(this.fn,transform,flags));for(let i=0;iarg.clone())));return expr.fn=this.fn?.clone()??null,expr.varOffset=this.varOffset,expr}}class PureFunctionParameterExpr extends ExpressionBase{constructor(index){super(),this.index=index,this.kind=ExpressionKind.PureFunctionParameterExpr}visitExpression(){}isEquivalent(other){return other instanceof PureFunctionParameterExpr&&other.index===this.index}isConstant(){return!0}transformInternalExpressions(){}clone(){return new PureFunctionParameterExpr(this.index)}}class PipeBindingExpr extends ExpressionBase{static#_=(_e=ConsumesVarsTrait,_f=UsesVarOffset);constructor(target,targetSlot,name,args){super(),this.target=target,this.targetSlot=targetSlot,this.name=name,this.args=args,this.kind=ExpressionKind.PipeBinding,this[_e]=!0,this[_f]=!0,this.varOffset=null}visitExpression(visitor,context){for(const arg of this.args)arg.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){for(let idx=0;idxa.clone())));return r.varOffset=this.varOffset,r}}class PipeBindingVariadicExpr extends ExpressionBase{static#_=(_g=ConsumesVarsTrait,_h=UsesVarOffset);constructor(target,targetSlot,name,args,numArgs){super(),this.target=target,this.targetSlot=targetSlot,this.name=name,this.args=args,this.numArgs=numArgs,this.kind=ExpressionKind.PipeBindingVariadic,this[_g]=!0,this[_h]=!0,this.varOffset=null}visitExpression(visitor,context){this.args.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.args=transformExpressionsInExpression(this.args,transform,flags)}clone(){const r=new PipeBindingVariadicExpr(this.target,this.targetSlot,this.name,this.args.clone(),this.numArgs);return r.varOffset=this.varOffset,r}}class SafePropertyReadExpr extends ExpressionBase{constructor(receiver,name){super(),this.receiver=receiver,this.name=name,this.kind=ExpressionKind.SafePropertyRead}get index(){return this.name}visitExpression(visitor,context){this.receiver.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.receiver=transformExpressionsInExpression(this.receiver,transform,flags)}clone(){return new SafePropertyReadExpr(this.receiver.clone(),this.name)}}class SafeKeyedReadExpr extends ExpressionBase{constructor(receiver,index,sourceSpan){super(sourceSpan),this.receiver=receiver,this.index=index,this.kind=ExpressionKind.SafeKeyedRead}visitExpression(visitor,context){this.receiver.visitExpression(visitor,context),this.index.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.receiver=transformExpressionsInExpression(this.receiver,transform,flags),this.index=transformExpressionsInExpression(this.index,transform,flags)}clone(){return new SafeKeyedReadExpr(this.receiver.clone(),this.index.clone(),this.sourceSpan)}}class SafeInvokeFunctionExpr extends ExpressionBase{constructor(receiver,args){super(),this.receiver=receiver,this.args=args,this.kind=ExpressionKind.SafeInvokeFunction}visitExpression(visitor,context){this.receiver.visitExpression(visitor,context);for(const a of this.args)a.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.receiver=transformExpressionsInExpression(this.receiver,transform,flags);for(let i=0;ia.clone())))}}class SafeTernaryExpr extends ExpressionBase{constructor(guard,expr){super(),this.guard=guard,this.expr=expr,this.kind=ExpressionKind.SafeTernaryExpr}visitExpression(visitor,context){this.guard.visitExpression(visitor,context),this.expr.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.guard=transformExpressionsInExpression(this.guard,transform,flags),this.expr=transformExpressionsInExpression(this.expr,transform,flags)}clone(){return new SafeTernaryExpr(this.guard.clone(),this.expr.clone())}}class EmptyExpr extends ExpressionBase{constructor(){super(...arguments),this.kind=ExpressionKind.EmptyExpr}visitExpression(visitor,context){}isEquivalent(e){return e instanceof EmptyExpr}isConstant(){return!0}clone(){return new EmptyExpr}transformInternalExpressions(){}}class AssignTemporaryExpr extends ExpressionBase{constructor(expr,xref){super(),this.expr=expr,this.xref=xref,this.kind=ExpressionKind.AssignTemporaryExpr,this.name=null}visitExpression(visitor,context){this.expr.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.expr=transformExpressionsInExpression(this.expr,transform,flags)}clone(){const a=new AssignTemporaryExpr(this.expr.clone(),this.xref);return a.name=this.name,a}}class ReadTemporaryExpr extends ExpressionBase{constructor(xref){super(),this.xref=xref,this.kind=ExpressionKind.ReadTemporaryExpr,this.name=null}visitExpression(visitor,context){}isEquivalent(){return this.xref==this.xref}isConstant(){return!1}transformInternalExpressions(transform,flags){}clone(){const r=new ReadTemporaryExpr(this.xref);return r.name=this.name,r}}class SlotLiteralExpr extends ExpressionBase{constructor(slot){super(),this.slot=slot,this.kind=ExpressionKind.SlotLiteralExpr}visitExpression(visitor,context){}isEquivalent(e){return e instanceof SlotLiteralExpr&&e.slot===this.slot}isConstant(){return!0}clone(){return new SlotLiteralExpr(this.slot)}transformInternalExpressions(){}}class ConditionalCaseExpr extends ExpressionBase{constructor(expr,target,targetSlot,alias=null){super(),this.expr=expr,this.target=target,this.targetSlot=targetSlot,this.alias=alias,this.kind=ExpressionKind.ConditionalCase}visitExpression(visitor,context){null!==this.expr&&this.expr.visitExpression(visitor,context)}isEquivalent(e){return e instanceof ConditionalCaseExpr&&e.expr===this.expr}isConstant(){return!0}clone(){return new ConditionalCaseExpr(this.expr,this.target,this.targetSlot)}transformInternalExpressions(transform,flags){null!==this.expr&&(this.expr=transformExpressionsInExpression(this.expr,transform,flags))}}class ConstCollectedExpr extends ExpressionBase{constructor(expr){super(),this.expr=expr,this.kind=ExpressionKind.ConstCollected}transformInternalExpressions(transform,flags){this.expr=transform(this.expr,flags)}visitExpression(visitor,context){this.expr.visitExpression(visitor,context)}isEquivalent(e){return e instanceof ConstCollectedExpr&&this.expr.isEquivalent(e.expr)}isConstant(){return this.expr.isConstant()}clone(){return new ConstCollectedExpr(this.expr)}}function visitExpressionsInOp(op,visitor){transformExpressionsInOp(op,((expr,flags)=>(visitor(expr,flags),expr)),VisitorContextFlag.None)}function transformExpressionsInInterpolation(interpolation,transform,flags){for(let i=0;itransformExpressionsInExpression(e,transform,flags)));else if(expr instanceof ArrowFunctionExpr)if(Array.isArray(expr.body))for(let i=0;i",BinaryOperator.Bigger],[">=",BinaryOperator.BiggerEquals],["|",BinaryOperator.BitwiseOr],["&",BinaryOperator.BitwiseAnd],["/",BinaryOperator.Divide],["==",BinaryOperator.Equals],["===",BinaryOperator.Identical],["<",BinaryOperator.Lower],["<=",BinaryOperator.LowerEquals],["-",BinaryOperator.Minus],["%",BinaryOperator.Modulo],["*",BinaryOperator.Multiply],["!=",BinaryOperator.NotEquals],["!==",BinaryOperator.NotIdentical],["??",BinaryOperator.NullishCoalesce],["||",BinaryOperator.Or],["+",BinaryOperator.Plus]]);function namespaceForKey(namespacePrefixKey){const NAMESPACES=new Map([["svg",Namespace.SVG],["math",Namespace.Math]]);return null===namespacePrefixKey?Namespace.HTML:NAMESPACES.get(namespacePrefixKey)??Namespace.HTML}function prefixWithNamespace(strippedTag,namespace){return namespace===Namespace.HTML?strippedTag:`:${function keyForNamespace(namespace){const NAMESPACES=new Map([["svg",Namespace.SVG],["math",Namespace.Math]]);for(const[k,n]of NAMESPACES.entries())if(n===namespace)return k;return null}(namespace)}:${strippedTag}`}function literalOrArrayLiteral(value){return Array.isArray(value)?literalArr(value.map(literalOrArrayLiteral)):literal(value)}function getConstIndex(job,allElementAttributes,xref){const attributes=allElementAttributes.get(xref);if(void 0!==attributes){const attrArray=serializeAttributes(attributes);if(attrArray.entries.length>0)return job.addConst(attrArray)}return null}const FLYWEIGHT_ARRAY=Object.freeze([]);class ElementAttributes{get attributes(){return this.byKind.get(BindingKind.Attribute)??FLYWEIGHT_ARRAY}get classes(){return this.byKind.get(BindingKind.ClassName)??FLYWEIGHT_ARRAY}get styles(){return this.byKind.get(BindingKind.StyleProperty)??FLYWEIGHT_ARRAY}get bindings(){return this.propertyBindings??FLYWEIGHT_ARRAY}get template(){return this.byKind.get(BindingKind.Template)??FLYWEIGHT_ARRAY}get i18n(){return this.byKind.get(BindingKind.I18n)??FLYWEIGHT_ARRAY}constructor(compatibility){this.compatibility=compatibility,this.known=new Map,this.byKind=new Map,this.propertyBindings=null,this.projectAs=null}isKnown(kind,name){const nameToValue=this.known.get(kind)??new Set;return this.known.set(kind,nameToValue),!!nameToValue.has(name)||(nameToValue.add(name),!1)}add(kind,name,value,namespace,trustedValueFn){if(!(this.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&(kind===BindingKind.Attribute||kind===BindingKind.ClassName||kind===BindingKind.StyleProperty))&&this.isKnown(kind,name))return;if("ngProjectAs"===name){if(null===value||!(value instanceof LiteralExpr)||null==value.value||"string"!=typeof value.value?.toString())throw Error("ngProjectAs must have a string literal value");this.projectAs=value.value.toString()}const array=this.arrayFor(kind);if(array.push(...function getAttributeNameLiterals(namespace,name){const nameLiteral=literal(name);if(namespace)return[literal(0),literal(namespace),nameLiteral];return[nameLiteral]}(namespace,name)),kind===BindingKind.Attribute||kind===BindingKind.StyleProperty){if(null===value)throw Error("Attribute, i18n attribute, & style element attributes must have a value");if(null!==trustedValueFn){if(!isStringLiteral(value))throw Error("AssertionError: extracted attribute value should be string literal");array.push(taggedTemplate(trustedValueFn,new TemplateLiteral([new TemplateLiteralElement(value.value)],[]),void 0,value.sourceSpan))}else array.push(value)}}arrayFor(kind){return kind===BindingKind.Property||kind===BindingKind.TwoWayProperty?(this.propertyBindings??=[],this.propertyBindings):(this.byKind.has(kind)||this.byKind.set(kind,[]),this.byKind.get(kind))}}function serializeAttributes({attributes,bindings,classes,i18n,projectAs,styles,template}){const attrArray=[...attributes];if(null!==projectAs){const parsedR3Selector=parseSelectorToR3Selector(projectAs)[0];attrArray.push(literal(5),literalOrArrayLiteral(parsedR3Selector))}return classes.length>0&&attrArray.push(literal(1),...classes),styles.length>0&&attrArray.push(literal(2),...styles),bindings.length>0&&attrArray.push(literal(3),...bindings),template.length>0&&attrArray.push(literal(4),...template),i18n.length>0&&attrArray.push(literal(6),...i18n),literalArr(attrArray)}class Scope$1{constructor(){this.targets=new Map}}const REPLACEMENTS=new Map([[OpKind.ElementEnd,[OpKind.ElementStart,OpKind.Element]],[OpKind.ContainerEnd,[OpKind.ContainerStart,OpKind.Container]],[OpKind.I18nEnd,[OpKind.I18nStart,OpKind.I18n]]]),IGNORED_OP_KINDS=new Set([OpKind.Pipe]);[InvokeFunctionExpr,LiteralArrayExpr,LiteralMapExpr,SafeInvokeFunctionExpr,PipeBindingExpr].map((e=>e.constructor.name));function needsTemporaryInSafeAccess(e){return e instanceof UnaryOperatorExpr?needsTemporaryInSafeAccess(e.expr):e instanceof BinaryOperatorExpr?needsTemporaryInSafeAccess(e.lhs)||needsTemporaryInSafeAccess(e.rhs):e instanceof ConditionalExpr?!(!e.falseCase||!needsTemporaryInSafeAccess(e.falseCase))||(needsTemporaryInSafeAccess(e.condition)||needsTemporaryInSafeAccess(e.trueCase)):e instanceof NotExpr?needsTemporaryInSafeAccess(e.condition):e instanceof AssignTemporaryExpr?needsTemporaryInSafeAccess(e.expr):e instanceof ReadPropExpr?needsTemporaryInSafeAccess(e.receiver):e instanceof ReadKeyExpr?needsTemporaryInSafeAccess(e.receiver)||needsTemporaryInSafeAccess(e.index):e instanceof InvokeFunctionExpr||e instanceof LiteralArrayExpr||e instanceof LiteralMapExpr||e instanceof SafeInvokeFunctionExpr||e instanceof PipeBindingExpr}function safeTernaryWithTemporary(guard,body,ctx){let result;if(needsTemporaryInSafeAccess(guard)){const xref=ctx.job.allocateXrefId();result=[new AssignTemporaryExpr(guard,xref),new ReadTemporaryExpr(xref)]}else result=[guard,guard.clone()],function eliminateTemporaryAssignments(e,tmps,ctx){return transformExpressionsInExpression(e,(e=>{if(e instanceof AssignTemporaryExpr&&tmps.has(e.xref)){const read=new ReadTemporaryExpr(e.xref);return ctx.job.compatibility===CompatibilityMode.TemplateDefinitionBuilder?new AssignTemporaryExpr(read,read.xref):read}return e}),VisitorContextFlag.None),e}(result[1],function temporariesIn(e){const temporaries=new Set;return transformExpressionsInExpression(e,(e=>(e instanceof AssignTemporaryExpr&&temporaries.add(e.xref),e)),VisitorContextFlag.None),temporaries}(result[0]),ctx);return new SafeTernaryExpr(result[0],body(result[1]))}function isAccessExpression(e){return function isSafeAccessExpression(e){return e instanceof SafePropertyReadExpr||e instanceof SafeKeyedReadExpr||e instanceof SafeInvokeFunctionExpr}(e)||function isUnsafeAccessExpression(e){return e instanceof ReadPropExpr||e instanceof ReadKeyExpr||e instanceof InvokeFunctionExpr}(e)}function safeTransform(e,ctx){if(!isAccessExpression(e))return e;const dst=function deepestSafeTernary(e){if(isAccessExpression(e)&&e.receiver instanceof SafeTernaryExpr){let st=e.receiver;for(;st.expr instanceof SafeTernaryExpr;)st=st.expr;return st}return null}(e);if(dst){if(e instanceof InvokeFunctionExpr)return dst.expr=dst.expr.callFn(e.args),e.receiver;if(e instanceof ReadPropExpr)return dst.expr=dst.expr.prop(e.name),e.receiver;if(e instanceof ReadKeyExpr)return dst.expr=dst.expr.key(e.index),e.receiver;if(e instanceof SafeInvokeFunctionExpr)return dst.expr=safeTernaryWithTemporary(dst.expr,(r=>r.callFn(e.args)),ctx),e.receiver;if(e instanceof SafePropertyReadExpr)return dst.expr=safeTernaryWithTemporary(dst.expr,(r=>r.prop(e.name)),ctx),e.receiver;if(e instanceof SafeKeyedReadExpr)return dst.expr=safeTernaryWithTemporary(dst.expr,(r=>r.key(e.index)),ctx),e.receiver}else{if(e instanceof SafeInvokeFunctionExpr)return safeTernaryWithTemporary(e.receiver,(r=>r.callFn(e.args)),ctx);if(e instanceof SafePropertyReadExpr)return safeTernaryWithTemporary(e.receiver,(r=>r.prop(e.name)),ctx);if(e instanceof SafeKeyedReadExpr)return safeTernaryWithTemporary(e.receiver,(r=>r.key(e.index)),ctx)}return e}function ternaryTransform(e){return e instanceof SafeTernaryExpr?new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.Equals,e.guard,NULL_EXPR),NULL_EXPR,e.expr):e}const ESCAPE$1="�",ELEMENT_MARKER="#",TEMPLATE_MARKER="*",TAG_CLOSE_MARKER="/",CONTEXT_MARKER=":",LIST_START_MARKER="[",LIST_END_MARKER="]",LIST_DELIMITER="|";function createI18nMessage(job,context,messagePlaceholder){let formattedParams=formatParams(context.params);const formattedPostprocessingParams=formatParams(context.postprocessingParams);let needsPostprocessing=[...context.params.values()].some((v=>v.length>1));return function createI18nMessageOp(xref,i18nContext,i18nBlock,message,messagePlaceholder,params,postprocessingParams,needsPostprocessing){return{kind:OpKind.I18nMessage,xref,i18nContext,i18nBlock,message,messagePlaceholder,params,postprocessingParams,needsPostprocessing,subMessages:[],...NEW_OP}}(job.allocateXrefId(),context.xref,context.i18nBlock,context.message,messagePlaceholder??null,formattedParams,formattedPostprocessingParams,needsPostprocessing)}function formatIcuPlaceholder(op){if(op.strings.length!==op.expressionPlaceholders.length+1)throw Error(`AssertionError: Invalid ICU placeholder with ${op.strings.length} strings and ${op.expressionPlaceholders.length} expressions`);const values=op.expressionPlaceholders.map(formatValue);return op.strings.flatMap(((str,i)=>[str,values[i]||""])).join("")}function formatParams(params){const formattedParams=new Map;for(const[placeholder,placeholderValues]of params){const serializedValues=formatParamValues(placeholderValues);null!==serializedValues&&formattedParams.set(placeholder,literal(serializedValues))}return formattedParams}function formatParamValues(values){if(0===values.length)return null;const serializedValues=values.map((value=>formatValue(value)));return 1===serializedValues.length?serializedValues[0]:`${LIST_START_MARKER}${serializedValues.join(LIST_DELIMITER)}${LIST_END_MARKER}`}function formatValue(value){if(value.flags&I18nParamValueFlags.ElementTag&&value.flags&I18nParamValueFlags.TemplateTag){if("object"!=typeof value.value)throw Error("AssertionError: Expected i18n param value to have an element and template slot");const elementValue=formatValue({...value,value:value.value.element,flags:value.flags&~I18nParamValueFlags.TemplateTag}),templateValue=formatValue({...value,value:value.value.template,flags:value.flags&~I18nParamValueFlags.ElementTag});return value.flags&I18nParamValueFlags.OpenTag&&value.flags&I18nParamValueFlags.CloseTag?`${templateValue}${elementValue}${templateValue}`:value.flags&I18nParamValueFlags.CloseTag?`${elementValue}${templateValue}`:`${templateValue}${elementValue}`}if(value.flags&I18nParamValueFlags.OpenTag&&value.flags&I18nParamValueFlags.CloseTag)return`${formatValue({...value,flags:value.flags&~I18nParamValueFlags.CloseTag})}${formatValue({...value,flags:value.flags&~I18nParamValueFlags.OpenTag})}`;if(value.flags===I18nParamValueFlags.None)return`${value.value}`;let tagMarker="",closeMarker="";value.flags&I18nParamValueFlags.ElementTag?tagMarker=ELEMENT_MARKER:value.flags&I18nParamValueFlags.TemplateTag&&(tagMarker=TEMPLATE_MARKER),""!==tagMarker&&(closeMarker=value.flags&I18nParamValueFlags.CloseTag?TAG_CLOSE_MARKER:"");const context=null===value.subTemplateIndex?"":`${CONTEXT_MARKER}${value.subTemplateIndex}`;return`${ESCAPE$1}${closeMarker}${tagMarker}${value.value}${context}${ESCAPE$1}`}function recursivelyProcessView(view,parentScope){const scope=function getScopeForView(view,parent){const scope={view:view.xref,viewContextVariable:{kind:SemanticVariableKind.Context,name:null,view:view.xref},contextVariables:new Map,aliases:view.aliases,references:[],letDeclarations:[],parent};for(const identifier of view.contextVariables.keys())scope.contextVariables.set(identifier,{kind:SemanticVariableKind.Identifier,name:null,identifier,local:!1});for(const op of view.create)switch(op.kind){case OpKind.ElementStart:case OpKind.Template:if(!Array.isArray(op.localRefs))throw new Error("AssertionError: expected localRefs to be an array");for(let offset=0;offset0?name.substring(0,overrideIndex):"");let suffix=null,property=name;const unitIndex=name.lastIndexOf(".");return unitIndex>0&&(suffix=name.slice(unitIndex+1),property=name.substring(0,unitIndex)),{property,suffix}}function mapLiteral(obj,quoted=!1){return literalMap(Object.keys(obj).map((key=>({key,quoted,value:obj[key]}))))}const serializer=new class IcuSerializerVisitor{visitText(text){return text.value}visitContainer(container){return container.children.map((child=>child.visit(this))).join("")}visitIcu(icu){const strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(" ")}}`}visitTagPlaceholder(ph){return ph.isVoid?this.formatPh(ph.startName):`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitPlaceholder(ph){return this.formatPh(ph.name)}visitBlockPlaceholder(ph){return`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitIcuPlaceholder(ph,context){return this.formatPh(ph.name)}formatPh(value){return`{${formatI18nPlaceholderName(value,!1)}}`}};function serializeIcuNode(icu){return icu.visit(serializer)}class NodeWithI18n{constructor(sourceSpan,i18n){this.sourceSpan=sourceSpan,this.i18n=i18n}}class Text extends NodeWithI18n{constructor(value,sourceSpan,tokens,i18n){super(sourceSpan,i18n),this.value=value,this.tokens=tokens}visit(visitor,context){return visitor.visitText(this,context)}}class Expansion extends NodeWithI18n{constructor(switchValue,type,cases,sourceSpan,switchValueSourceSpan,i18n){super(sourceSpan,i18n),this.switchValue=switchValue,this.type=type,this.cases=cases,this.switchValueSourceSpan=switchValueSourceSpan}visit(visitor,context){return visitor.visitExpansion(this,context)}}class ExpansionCase{constructor(value,expression,sourceSpan,valueSourceSpan,expSourceSpan){this.value=value,this.expression=expression,this.sourceSpan=sourceSpan,this.valueSourceSpan=valueSourceSpan,this.expSourceSpan=expSourceSpan}visit(visitor,context){return visitor.visitExpansionCase(this,context)}}class Attribute extends NodeWithI18n{constructor(name,value,sourceSpan,keySpan,valueSpan,valueTokens,i18n){super(sourceSpan,i18n),this.name=name,this.value=value,this.keySpan=keySpan,this.valueSpan=valueSpan,this.valueTokens=valueTokens}visit(visitor,context){return visitor.visitAttribute(this,context)}}class Element extends NodeWithI18n{constructor(name,attrs,children,sourceSpan,startSourceSpan,endSourceSpan=null,i18n){super(sourceSpan,i18n),this.name=name,this.attrs=attrs,this.children=children,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan}visit(visitor,context){return visitor.visitElement(this,context)}}class Comment{constructor(value,sourceSpan){this.value=value,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitComment(this,context)}}class Block extends NodeWithI18n{constructor(name,parameters,children,sourceSpan,nameSpan,startSourceSpan,endSourceSpan=null,i18n){super(sourceSpan,i18n),this.name=name,this.parameters=parameters,this.children=children,this.nameSpan=nameSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan}visit(visitor,context){return visitor.visitBlock(this,context)}}class BlockParameter{constructor(expression,sourceSpan){this.expression=expression,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitBlockParameter(this,context)}}class LetDeclaration{constructor(name,value,sourceSpan,nameSpan,valueSpan){this.name=name,this.value=value,this.sourceSpan=sourceSpan,this.nameSpan=nameSpan,this.valueSpan=valueSpan}visit(visitor,context){return visitor.visitLetDeclaration(this,context)}}function visitAll(visitor,nodes,context=null){const result=[],visit=visitor.visit?ast=>visitor.visit(ast,context)||ast.visit(visitor,context):ast=>ast.visit(visitor,context);return nodes.forEach((ast=>{const astResult=visit(ast);astResult&&result.push(astResult)})),result}class RecursiveVisitor{constructor(){}visitElement(ast,context){this.visitChildren(context,(visit=>{visit(ast.attrs),visit(ast.children)}))}visitAttribute(ast,context){}visitText(ast,context){}visitComment(ast,context){}visitExpansion(ast,context){return this.visitChildren(context,(visit=>{visit(ast.cases)}))}visitExpansionCase(ast,context){}visitBlock(block,context){this.visitChildren(context,(visit=>{visit(block.parameters),visit(block.children)}))}visitBlockParameter(ast,context){}visitLetDeclaration(decl,context){}visitChildren(context,cb){let results=[],t=this;return cb((function visit(children){children&&results.push(visitAll(t,children,context))})),Array.prototype.concat.apply([],results)}}const NAMED_ENTITIES={AElig:"Æ",AMP:"&",amp:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",af:"⁡",Aring:"Å",angst:"Å",Ascr:"𝒜",Assign:"≔",colone:"≔",coloneq:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",setminus:"∖",setmn:"∖",smallsetminus:"∖",ssetmn:"∖",Barv:"⫧",Barwed:"⌆",doublebarwedge:"⌆",Bcy:"Б",Because:"∵",becaus:"∵",because:"∵",Bernoullis:"ℬ",Bscr:"ℬ",bernou:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",breve:"˘",Bumpeq:"≎",HumpDownHump:"≎",bump:"≎",CHcy:"Ч",COPY:"©",copy:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",DD:"ⅅ",Cayleys:"ℭ",Cfr:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",cedil:"¸",CenterDot:"·",centerdot:"·",middot:"·",Chi:"Χ",CircleDot:"⊙",odot:"⊙",CircleMinus:"⊖",ominus:"⊖",CirclePlus:"⊕",oplus:"⊕",CircleTimes:"⊗",otimes:"⊗",ClockwiseContourIntegral:"∲",cwconint:"∲",CloseCurlyDoubleQuote:"”",rdquo:"”",rdquor:"”",CloseCurlyQuote:"’",rsquo:"’",rsquor:"’",Colon:"∷",Proportion:"∷",Colone:"⩴",Congruent:"≡",equiv:"≡",Conint:"∯",DoubleContourIntegral:"∯",ContourIntegral:"∮",conint:"∮",oint:"∮",Copf:"ℂ",complexes:"ℂ",Coproduct:"∐",coprod:"∐",CounterClockwiseContourIntegral:"∳",awconint:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",asympeq:"≍",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",ddagger:"‡",Darr:"↡",Dashv:"⫤",DoubleLeftTee:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",nabla:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",acute:"´",DiacriticalDot:"˙",dot:"˙",DiacriticalDoubleAcute:"˝",dblac:"˝",DiacriticalGrave:"`",grave:"`",DiacriticalTilde:"˜",tilde:"˜",Diamond:"⋄",diam:"⋄",diamond:"⋄",DifferentialD:"ⅆ",dd:"ⅆ",Dopf:"𝔻",Dot:"¨",DoubleDot:"¨",die:"¨",uml:"¨",DotDot:"⃜",DotEqual:"≐",doteq:"≐",esdot:"≐",DoubleDownArrow:"⇓",Downarrow:"⇓",dArr:"⇓",DoubleLeftArrow:"⇐",Leftarrow:"⇐",lArr:"⇐",DoubleLeftRightArrow:"⇔",Leftrightarrow:"⇔",hArr:"⇔",iff:"⇔",DoubleLongLeftArrow:"⟸",Longleftarrow:"⟸",xlArr:"⟸",DoubleLongLeftRightArrow:"⟺",Longleftrightarrow:"⟺",xhArr:"⟺",DoubleLongRightArrow:"⟹",Longrightarrow:"⟹",xrArr:"⟹",DoubleRightArrow:"⇒",Implies:"⇒",Rightarrow:"⇒",rArr:"⇒",DoubleRightTee:"⊨",vDash:"⊨",DoubleUpArrow:"⇑",Uparrow:"⇑",uArr:"⇑",DoubleUpDownArrow:"⇕",Updownarrow:"⇕",vArr:"⇕",DoubleVerticalBar:"∥",par:"∥",parallel:"∥",shortparallel:"∥",spar:"∥",DownArrow:"↓",ShortDownArrow:"↓",darr:"↓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",duarr:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",leftharpoondown:"↽",lhard:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",rhard:"⇁",rightharpoondown:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",top:"⊤",DownTeeArrow:"↧",mapstodown:"↧",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",in:"∈",isin:"∈",isinv:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",eqsim:"≂",esim:"≂",Equilibrium:"⇌",rightleftharpoons:"⇌",rlhar:"⇌",Escr:"ℰ",expectation:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",exist:"∃",ExponentialE:"ⅇ",ee:"ⅇ",exponentiale:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",blacksquare:"▪",squarf:"▪",squf:"▪",Fopf:"𝔽",ForAll:"∀",forall:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",gt:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",ggg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",ge:"≥",geq:"≥",GreaterEqualLess:"⋛",gel:"⋛",gtreqless:"⋛",GreaterFullEqual:"≧",gE:"≧",geqq:"≧",GreaterGreater:"⪢",GreaterLess:"≷",gl:"≷",gtrless:"≷",GreaterSlantEqual:"⩾",geqslant:"⩾",ges:"⩾",GreaterTilde:"≳",gsim:"≳",gtrsim:"≳",Gscr:"𝒢",Gt:"≫",NestedGreaterGreater:"≫",gg:"≫",HARDcy:"Ъ",Hacek:"ˇ",caron:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",Poincareplane:"ℌ",HilbertSpace:"ℋ",Hscr:"ℋ",hamilt:"ℋ",Hopf:"ℍ",quaternions:"ℍ",HorizontalLine:"─",boxh:"─",Hstrok:"Ħ",HumpEqual:"≏",bumpe:"≏",bumpeq:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Im:"ℑ",image:"ℑ",imagpart:"ℑ",Igrave:"Ì",Imacr:"Ī",ImaginaryI:"ⅈ",ii:"ⅈ",Int:"∬",Integral:"∫",int:"∫",Intersection:"⋂",bigcap:"⋂",xcap:"⋂",InvisibleComma:"⁣",ic:"⁣",InvisibleTimes:"⁢",it:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",imagline:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",lt:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Lscr:"ℒ",lagran:"ℒ",Larr:"↞",twoheadleftarrow:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",lang:"⟨",langle:"⟨",LeftArrow:"←",ShortLeftArrow:"←",larr:"←",leftarrow:"←",slarr:"←",LeftArrowBar:"⇤",larrb:"⇤",LeftArrowRightArrow:"⇆",leftrightarrows:"⇆",lrarr:"⇆",LeftCeiling:"⌈",lceil:"⌈",LeftDoubleBracket:"⟦",lobrk:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",dharl:"⇃",downharpoonleft:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",lfloor:"⌊",LeftRightArrow:"↔",harr:"↔",leftrightarrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",dashv:"⊣",LeftTeeArrow:"↤",mapstoleft:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",vartriangleleft:"⊲",vltri:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",ltrie:"⊴",trianglelefteq:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",uharl:"↿",upharpoonleft:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",leftharpoonup:"↼",lharu:"↼",LeftVectorBar:"⥒",LessEqualGreater:"⋚",leg:"⋚",lesseqgtr:"⋚",LessFullEqual:"≦",lE:"≦",leqq:"≦",LessGreater:"≶",lessgtr:"≶",lg:"≶",LessLess:"⪡",LessSlantEqual:"⩽",leqslant:"⩽",les:"⩽",LessTilde:"≲",lesssim:"≲",lsim:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",lAarr:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",longleftarrow:"⟵",xlarr:"⟵",LongLeftRightArrow:"⟷",longleftrightarrow:"⟷",xharr:"⟷",LongRightArrow:"⟶",longrightarrow:"⟶",xrarr:"⟶",Lopf:"𝕃",LowerLeftArrow:"↙",swarr:"↙",swarrow:"↙",LowerRightArrow:"↘",searr:"↘",searrow:"↘",Lsh:"↰",lsh:"↰",Lstrok:"Ł",Lt:"≪",NestedLessLess:"≪",ll:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mscr:"ℳ",phmmat:"ℳ",Mfr:"𝔐",MinusPlus:"∓",mnplus:"∓",mp:"∓",Mopf:"𝕄",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",ZeroWidthSpace:"​",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",nbsp:" ",Nopf:"ℕ",naturals:"ℕ",Not:"⫬",NotCongruent:"≢",nequiv:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",npar:"∦",nparallel:"∦",nshortparallel:"∦",nspar:"∦",NotElement:"∉",notin:"∉",notinva:"∉",NotEqual:"≠",ne:"≠",NotEqualTilde:"≂̸",nesim:"≂̸",NotExists:"∄",nexist:"∄",nexists:"∄",NotGreater:"≯",ngt:"≯",ngtr:"≯",NotGreaterEqual:"≱",nge:"≱",ngeq:"≱",NotGreaterFullEqual:"≧̸",ngE:"≧̸",ngeqq:"≧̸",NotGreaterGreater:"≫̸",nGtv:"≫̸",NotGreaterLess:"≹",ntgl:"≹",NotGreaterSlantEqual:"⩾̸",ngeqslant:"⩾̸",nges:"⩾̸",NotGreaterTilde:"≵",ngsim:"≵",NotHumpDownHump:"≎̸",nbump:"≎̸",NotHumpEqual:"≏̸",nbumpe:"≏̸",NotLeftTriangle:"⋪",nltri:"⋪",ntriangleleft:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",nltrie:"⋬",ntrianglelefteq:"⋬",NotLess:"≮",nless:"≮",nlt:"≮",NotLessEqual:"≰",nle:"≰",nleq:"≰",NotLessGreater:"≸",ntlg:"≸",NotLessLess:"≪̸",nLtv:"≪̸",NotLessSlantEqual:"⩽̸",nleqslant:"⩽̸",nles:"⩽̸",NotLessTilde:"≴",nlsim:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",npr:"⊀",nprec:"⊀",NotPrecedesEqual:"⪯̸",npre:"⪯̸",npreceq:"⪯̸",NotPrecedesSlantEqual:"⋠",nprcue:"⋠",NotReverseElement:"∌",notni:"∌",notniva:"∌",NotRightTriangle:"⋫",nrtri:"⋫",ntriangleright:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",nrtrie:"⋭",ntrianglerighteq:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",nsqsube:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",nsqsupe:"⋣",NotSubset:"⊂⃒",nsubset:"⊂⃒",vnsub:"⊂⃒",NotSubsetEqual:"⊈",nsube:"⊈",nsubseteq:"⊈",NotSucceeds:"⊁",nsc:"⊁",nsucc:"⊁",NotSucceedsEqual:"⪰̸",nsce:"⪰̸",nsucceq:"⪰̸",NotSucceedsSlantEqual:"⋡",nsccue:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",nsupset:"⊃⃒",vnsup:"⊃⃒",NotSupersetEqual:"⊉",nsupe:"⊉",nsupseteq:"⊉",NotTilde:"≁",nsim:"≁",NotTildeEqual:"≄",nsime:"≄",nsimeq:"≄",NotTildeFullEqual:"≇",ncong:"≇",NotTildeTilde:"≉",nap:"≉",napprox:"≉",NotVerticalBar:"∤",nmid:"∤",nshortmid:"∤",nsmid:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",ohm:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",ldquo:"“",OpenCurlyQuote:"‘",lsquo:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",oline:"‾",OverBrace:"⏞",OverBracket:"⎴",tbrk:"⎴",OverParenthesis:"⏜",PartialD:"∂",part:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",plusmn:"±",pm:"±",Popf:"ℙ",primes:"ℙ",Pr:"⪻",Precedes:"≺",pr:"≺",prec:"≺",PrecedesEqual:"⪯",pre:"⪯",preceq:"⪯",PrecedesSlantEqual:"≼",prcue:"≼",preccurlyeq:"≼",PrecedesTilde:"≾",precsim:"≾",prsim:"≾",Prime:"″",Product:"∏",prod:"∏",Proportional:"∝",prop:"∝",propto:"∝",varpropto:"∝",vprop:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',quot:'"',Qfr:"𝔔",Qopf:"ℚ",rationals:"ℚ",Qscr:"𝒬",RBarr:"⤐",drbkarow:"⤐",REG:"®",circledR:"®",reg:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",twoheadrightarrow:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",Rfr:"ℜ",real:"ℜ",realpart:"ℜ",ReverseElement:"∋",SuchThat:"∋",ni:"∋",niv:"∋",ReverseEquilibrium:"⇋",leftrightharpoons:"⇋",lrhar:"⇋",ReverseUpEquilibrium:"⥯",duhar:"⥯",Rho:"Ρ",RightAngleBracket:"⟩",rang:"⟩",rangle:"⟩",RightArrow:"→",ShortRightArrow:"→",rarr:"→",rightarrow:"→",srarr:"→",RightArrowBar:"⇥",rarrb:"⇥",RightArrowLeftArrow:"⇄",rightleftarrows:"⇄",rlarr:"⇄",RightCeiling:"⌉",rceil:"⌉",RightDoubleBracket:"⟧",robrk:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",dharr:"⇂",downharpoonright:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rfloor:"⌋",RightTee:"⊢",vdash:"⊢",RightTeeArrow:"↦",map:"↦",mapsto:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",vartriangleright:"⊳",vrtri:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",rtrie:"⊵",trianglerighteq:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",uharr:"↾",upharpoonright:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",rharu:"⇀",rightharpoonup:"⇀",RightVectorBar:"⥓",Ropf:"ℝ",reals:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",rAarr:"⇛",Rscr:"ℛ",realine:"ℛ",Rsh:"↱",rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortUpArrow:"↑",UpArrow:"↑",uarr:"↑",uparrow:"↑",Sigma:"Σ",SmallCircle:"∘",compfn:"∘",Sopf:"𝕊",Sqrt:"√",radic:"√",Square:"□",squ:"□",square:"□",SquareIntersection:"⊓",sqcap:"⊓",SquareSubset:"⊏",sqsub:"⊏",sqsubset:"⊏",SquareSubsetEqual:"⊑",sqsube:"⊑",sqsubseteq:"⊑",SquareSuperset:"⊐",sqsup:"⊐",sqsupset:"⊐",SquareSupersetEqual:"⊒",sqsupe:"⊒",sqsupseteq:"⊒",SquareUnion:"⊔",sqcup:"⊔",Sscr:"𝒮",Star:"⋆",sstarf:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",sube:"⊆",subseteq:"⊆",Succeeds:"≻",sc:"≻",succ:"≻",SucceedsEqual:"⪰",sce:"⪰",succeq:"⪰",SucceedsSlantEqual:"≽",sccue:"≽",succcurlyeq:"≽",SucceedsTilde:"≿",scsim:"≿",succsim:"≿",Sum:"∑",sum:"∑",Sup:"⋑",Supset:"⋑",Superset:"⊃",sup:"⊃",supset:"⊃",SupersetEqual:"⊇",supe:"⊇",supseteq:"⊇",THORN:"Þ",TRADE:"™",trade:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",there4:"∴",therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",Tilde:"∼",sim:"∼",thicksim:"∼",thksim:"∼",TildeEqual:"≃",sime:"≃",simeq:"≃",TildeFullEqual:"≅",cong:"≅",TildeTilde:"≈",ap:"≈",approx:"≈",asymp:"≈",thickapprox:"≈",thkap:"≈",Topf:"𝕋",TripleDot:"⃛",tdot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",lowbar:"_",UnderBrace:"⏟",UnderBracket:"⎵",bbrk:"⎵",UnderParenthesis:"⏝",Union:"⋃",bigcup:"⋃",xcup:"⋃",UnionPlus:"⊎",uplus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",udarr:"⇅",UpDownArrow:"↕",updownarrow:"↕",varr:"↕",UpEquilibrium:"⥮",udhar:"⥮",UpTee:"⊥",bot:"⊥",bottom:"⊥",perp:"⊥",UpTeeArrow:"↥",mapstoup:"↥",UpperLeftArrow:"↖",nwarr:"↖",nwarrow:"↖",UpperRightArrow:"↗",nearr:"↗",nearrow:"↗",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",bigvee:"⋁",xvee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",mid:"∣",shortmid:"∣",smid:"∣",VerticalLine:"|",verbar:"|",vert:"|",VerticalSeparator:"❘",VerticalTilde:"≀",wr:"≀",wreath:"≀",VeryThinSpace:" ",hairsp:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",bigwedge:"⋀",xwedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",Zeta:"Ζ",Zfr:"ℨ",zeetrf:"ℨ",Zopf:"ℤ",integers:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",mstpos:"∾",acE:"∾̳",acd:"∿",acirc:"â",acy:"а",aelig:"æ",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",and:"∧",wedge:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",angle:"∠",ange:"⦤",angmsd:"∡",measuredangle:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angzarr:"⍼",aogon:"ą",aopf:"𝕒",apE:"⩰",apacir:"⩯",ape:"≊",approxeq:"≊",apid:"≋",apos:"'",aring:"å",ascr:"𝒶",ast:"*",midast:"*",atilde:"ã",auml:"ä",awint:"⨑",bNot:"⫭",backcong:"≌",bcong:"≌",backepsilon:"϶",bepsi:"϶",backprime:"‵",bprime:"‵",backsim:"∽",bsim:"∽",backsimeq:"⋍",bsime:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrktbrk:"⎶",bcy:"б",bdquo:"„",ldquor:"„",bemptyv:"⦰",beta:"β",beth:"ℶ",between:"≬",twixt:"≬",bfr:"𝔟",bigcirc:"◯",xcirc:"◯",bigodot:"⨀",xodot:"⨀",bigoplus:"⨁",xoplus:"⨁",bigotimes:"⨂",xotime:"⨂",bigsqcup:"⨆",xsqcup:"⨆",bigstar:"★",starf:"★",bigtriangledown:"▽",xdtri:"▽",bigtriangleup:"△",xutri:"△",biguplus:"⨄",xuplus:"⨄",bkarow:"⤍",rbarr:"⤍",blacklozenge:"⧫",lozf:"⧫",blacktriangle:"▴",utrif:"▴",blacktriangledown:"▾",dtrif:"▾",blacktriangleleft:"◂",ltrif:"◂",blacktriangleright:"▸",rtrif:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",minusb:"⊟",boxplus:"⊞",plusb:"⊞",boxtimes:"⊠",timesb:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bumpE:"⪮",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cemptyv:"⦲",cent:"¢",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",cire:"≗",circlearrowleft:"↺",olarr:"↺",circlearrowright:"↻",orarr:"↻",circledS:"Ⓢ",oS:"Ⓢ",circledast:"⊛",oast:"⊛",circledcirc:"⊚",ocir:"⊚",circleddash:"⊝",odash:"⊝",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",comma:",",commat:"@",comp:"∁",complement:"∁",congdot:"⩭",copf:"𝕔",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",curlyeqprec:"⋞",cuesc:"⋟",curlyeqsucc:"⋟",cularr:"↶",curvearrowleft:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curvearrowright:"↷",curarrm:"⤼",curlyvee:"⋎",cuvee:"⋎",curlywedge:"⋏",cuwed:"⋏",curren:"¤",cwint:"∱",cylcty:"⌭",dHar:"⥥",dagger:"†",daleth:"ℸ",dash:"‐",hyphen:"‐",dbkarow:"⤏",rBarr:"⤏",dcaron:"ď",dcy:"д",ddarr:"⇊",downdownarrows:"⇊",ddotseq:"⩷",eDDot:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",diamondsuit:"♦",diams:"♦",digamma:"ϝ",gammad:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",llcorner:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",doteqdot:"≑",eDot:"≑",dotminus:"∸",minusd:"∸",dotplus:"∔",plusdo:"∔",dotsquare:"⊡",sdotb:"⊡",drcorn:"⌟",lrcorner:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",triangledown:"▿",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",eqcirc:"≖",ecirc:"ê",ecolon:"≕",eqcolon:"≕",ecy:"э",edot:"ė",efDot:"≒",fallingdotseq:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",eqslantgtr:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",eqslantless:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",varnothing:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",straightepsilon:"ϵ",varepsilon:"ϵ",equals:"=",equest:"≟",questeq:"≟",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",risingdotseq:"≓",erarr:"⥱",escr:"ℯ",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",fork:"⋔",pitchfork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",half:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",sfrown:"⌢",fscr:"𝒻",gEl:"⪌",gtreqqless:"⪌",gacute:"ǵ",gamma:"γ",gap:"⪆",gtrapprox:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gimel:"ℷ",gjcy:"ѓ",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gneqq:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gnsim:"⋧",gopf:"𝕘",gscr:"ℊ",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtrdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrarr:"⥸",gvertneqq:"≩︀",gvnE:"≩︀",hardcy:"ъ",harrcir:"⥈",harrw:"↭",leftrightsquigarrow:"↭",hbar:"ℏ",hslash:"ℏ",planck:"ℏ",plankv:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",mldr:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",searhk:"⤥",hkswarow:"⤦",swarhk:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",larrhk:"↩",hookrightarrow:"↪",rarrhk:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hstrok:"ħ",hybull:"⁃",iacute:"í",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",ifr:"𝔦",igrave:"ì",iiiint:"⨌",qint:"⨌",iiint:"∭",tint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",imath:"ı",inodot:"ı",imof:"⊷",imped:"Ƶ",incare:"℅",infin:"∞",infintie:"⧝",intcal:"⊺",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iquest:"¿",iscr:"𝒾",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",varkappa:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAtail:"⤛",lBarr:"⤎",lEg:"⪋",lesseqqgtr:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lambda:"λ",langd:"⦑",lap:"⪅",lessapprox:"⪅",laquo:"«",larrbfs:"⤟",larrfs:"⤝",larrlp:"↫",looparrowleft:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",leftarrowtail:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lcub:"{",lbrack:"[",lsqb:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lcy:"л",ldca:"⤶",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leq:"≤",leftleftarrows:"⇇",llarr:"⇇",leftthreetimes:"⋋",lthree:"⋋",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessdot:"⋖",ltdot:"⋖",lfisht:"⥼",lfr:"𝔩",lgE:"⪑",lharul:"⥪",lhblk:"▄",ljcy:"љ",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lneqq:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lnsim:"⋦",loang:"⟬",loarr:"⇽",longmapsto:"⟼",xmap:"⟼",looparrowright:"↬",rarrlp:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",loz:"◊",lozenge:"◊",lpar:"(",lparlt:"⦓",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsime:"⪍",lsimg:"⪏",lsquor:"‚",sbquo:"‚",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",triangleleft:"◃",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",strns:"¯",male:"♂",malt:"✠",maltese:"✠",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",mfr:"𝔪",mho:"℧",micro:"µ",midcir:"⫰",minus:"−",minusdu:"⨪",mlcp:"⫛",models:"⊧",mopf:"𝕞",mscr:"𝓂",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nLeftarrow:"⇍",nlArr:"⇍",nLeftrightarrow:"⇎",nhArr:"⇎",nLl:"⋘̸",nLt:"≪⃒",nRightarrow:"⇏",nrArr:"⇏",nVDash:"⊯",nVdash:"⊮",nacute:"ń",nang:"∠⃒",napE:"⩰̸",napid:"≋̸",napos:"ʼn",natur:"♮",natural:"♮",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",neArr:"⇗",nearhk:"⤤",nedot:"≐̸",nesear:"⤨",toea:"⤨",nfr:"𝔫",nharr:"↮",nleftrightarrow:"↮",nhpar:"⫲",nis:"⋼",nisd:"⋺",njcy:"њ",nlE:"≦̸",nleqq:"≦̸",nlarr:"↚",nleftarrow:"↚",nldr:"‥",nopf:"𝕟",not:"¬",notinE:"⋹̸",notindot:"⋵̸",notinvb:"⋷",notinvc:"⋶",notnivb:"⋾",notnivc:"⋽",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",nrarr:"↛",nrightarrow:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nscr:"𝓃",nsub:"⊄",nsubE:"⫅̸",nsubseteqq:"⫅̸",nsup:"⊅",nsupE:"⫆̸",nsupseteqq:"⫆̸",ntilde:"ñ",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwnear:"⤧",oacute:"ó",ocirc:"ô",ocy:"о",odblac:"ő",odiv:"⨸",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",olcir:"⦾",olcross:"⦻",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",oopf:"𝕠",opar:"⦷",operp:"⦹",or:"∨",vee:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",oscr:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oslash:"ø",osol:"⊘",otilde:"õ",otimesas:"⨶",ouml:"ö",ovbar:"⌽",para:"¶",parsim:"⫳",parsl:"⫽",pcy:"п",percnt:"%",period:".",permil:"‰",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",straightphi:"ϕ",varphi:"ϕ",phone:"☎",pi:"π",piv:"ϖ",varpi:"ϖ",planckh:"ℎ",plus:"+",plusacir:"⨣",pluscir:"⨢",plusdu:"⨥",pluse:"⩲",plussim:"⨦",plustwo:"⨧",pointint:"⨕",popf:"𝕡",pound:"£",prE:"⪳",prap:"⪷",precapprox:"⪷",precnapprox:"⪹",prnap:"⪹",precneqq:"⪵",prnE:"⪵",precnsim:"⋨",prnsim:"⋨",prime:"′",profalar:"⌮",profline:"⌒",profsurf:"⌓",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quatint:"⨖",quest:"?",rAtail:"⤜",rHar:"⥤",race:"∽̱",racute:"ŕ",raemptyv:"⦳",rangd:"⦒",range:"⦥",raquo:"»",rarrap:"⥵",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rightarrowtail:"↣",rarrw:"↝",rightsquigarrow:"↝",ratail:"⤚",ratio:"∶",rbbrk:"❳",rbrace:"}",rcub:"}",rbrack:"]",rsqb:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdsh:"↳",rect:"▭",rfisht:"⥽",rfr:"𝔯",rharul:"⥬",rho:"ρ",rhov:"ϱ",varrho:"ϱ",rightrightarrows:"⇉",rrarr:"⇉",rightthreetimes:"⋌",rthree:"⋌",ring:"˚",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rsaquo:"›",rscr:"𝓇",rtimes:"⋊",rtri:"▹",triangleright:"▹",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",scE:"⪴",scap:"⪸",succapprox:"⪸",scaron:"š",scedil:"ş",scirc:"ŝ",scnE:"⪶",succneqq:"⪶",scnap:"⪺",succnapprox:"⪺",scnsim:"⋩",succnsim:"⋩",scpolint:"⨓",scy:"с",sdot:"⋅",sdote:"⩦",seArr:"⇘",sect:"§",semi:";",seswar:"⤩",tosa:"⤩",sext:"✶",sfr:"𝔰",sharp:"♯",shchcy:"щ",shcy:"ш",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",varsigma:"ς",simdot:"⩪",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",smashp:"⨳",smeparsl:"⧤",smile:"⌣",ssmile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",sqcaps:"⊓︀",sqcups:"⊔︀",sscr:"𝓈",star:"☆",sub:"⊂",subset:"⊂",subE:"⫅",subseteqq:"⫅",subdot:"⪽",subedot:"⫃",submult:"⫁",subnE:"⫋",subsetneqq:"⫋",subne:"⊊",subsetneq:"⊊",subplus:"⪿",subrarr:"⥹",subsim:"⫇",subsub:"⫕",subsup:"⫓",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supseteqq:"⫆",supdot:"⪾",supdsub:"⫘",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supsetneqq:"⫌",supne:"⊋",supsetneq:"⊋",supplus:"⫀",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tcaron:"ť",tcedil:"ţ",tcy:"т",telrec:"⌕",tfr:"𝔱",theta:"θ",thetasym:"ϑ",thetav:"ϑ",vartheta:"ϑ",thorn:"þ",times:"×",timesbar:"⨱",timesd:"⨰",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tprime:"‴",triangle:"▵",utri:"▵",triangleq:"≜",trie:"≜",tridot:"◬",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",uHar:"⥣",uacute:"ú",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udblac:"ű",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uogon:"ų",uopf:"𝕦",upsi:"υ",upsilon:"υ",upuparrows:"⇈",uuarr:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",uuml:"ü",uwangle:"⦧",vBar:"⫨",vBarv:"⫩",vangrt:"⦜",varsubsetneq:"⊊︀",vsubne:"⊊︀",varsubsetneqq:"⫋︀",vsubnE:"⫋︀",varsupsetneq:"⊋︀",vsupne:"⊋︀",varsupsetneqq:"⫌︀",vsupnE:"⫌︀",vcy:"в",veebar:"⊻",veeeq:"≚",vellip:"⋮",vfr:"𝔳",vopf:"𝕧",vscr:"𝓋",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedgeq:"≙",weierp:"℘",wp:"℘",wfr:"𝔴",wopf:"𝕨",wscr:"𝓌",xfr:"𝔵",xi:"ξ",xnis:"⋻",xopf:"𝕩",xscr:"𝓍",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},NGSP_UNICODE="";NAMED_ENTITIES.ngsp=NGSP_UNICODE;class TokenError extends ParseError{constructor(errorMsg,tokenType,span){super(span,errorMsg),this.tokenType=tokenType}}class TokenizeResult{constructor(tokens,errors,nonNormalizedIcuExpressions){this.tokens=tokens,this.errors=errors,this.nonNormalizedIcuExpressions=nonNormalizedIcuExpressions}}function tokenize(source,url,getTagDefinition,options={}){const tokenizer=new _Tokenizer(new ParseSourceFile(source,url),getTagDefinition,options);return tokenizer.tokenize(),new TokenizeResult(function mergeTextTokens(srcTokens){const dstTokens=[];let lastDstToken;for(let i=0;i;" or "&#x;" syntax`}var CharacterReferenceType;!function(CharacterReferenceType){CharacterReferenceType.HEX="hexadecimal",CharacterReferenceType.DEC="decimal"}(CharacterReferenceType||(CharacterReferenceType={}));class _ControlFlowError{constructor(error){this.error=error}}class _Tokenizer{constructor(_file,_getTagDefinition,options){this._getTagDefinition=_getTagDefinition,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this.nonNormalizedIcuExpressions=[],this._tokenizeIcu=options.tokenizeExpansionForms||!1,this._interpolationConfig=options.interpolationConfig||DEFAULT_INTERPOLATION_CONFIG,this._leadingTriviaCodePoints=options.leadingTriviaChars&&options.leadingTriviaChars.map((c=>c.codePointAt(0)||0));const range=options.range||{endPos:_file.content.length,startPos:0,startLine:0,startCol:0};this._cursor=options.escapedString?new EscapedCharacterCursor(_file,range):new PlainCharacterCursor(_file,range),this._preserveLineEndings=options.preserveLineEndings||!1,this._i18nNormalizeLineEndingsInICUs=options.i18nNormalizeLineEndingsInICUs||!1,this._tokenizeBlocks=options.tokenizeBlocks??!0,this._tokenizeLet=options.tokenizeLet??!0;try{this._cursor.init()}catch(e){this.handleError(e)}}_processCarriageReturns(content){return this._preserveLineEndings?content:content.replace(_CR_OR_CRLF_REGEXP,"\n")}tokenize(){for(;this._cursor.peek()!==$EOF;){const start=this._cursor.clone();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(start):this._attemptCharCode(45)?this._consumeComment(start):this._consumeDocType(start):this._attemptCharCode(47)?this._consumeTagClose(start):this._consumeTagOpen(start):this._tokenizeLet&&64===this._cursor.peek()&&!this._inInterpolation&&this._attemptStr("@let")?this._consumeLetDeclaration(start):this._tokenizeBlocks&&this._attemptCharCode(64)?this._consumeBlockStart(start):!this._tokenizeBlocks||this._inInterpolation||this._isInExpansionCase()||this._isInExpansionForm()||!this._attemptCharCode(125)?this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeWithInterpolation(5,8,(()=>this._isTextEnd()),(()=>this._isTagStart())):this._consumeBlockEnd(start)}catch(e){this.handleError(e)}}this._beginToken(33),this._endToken([])}_getBlockName(){let spacesInNameAllowed=!1;const nameCursor=this._cursor.clone();return this._attemptCharCodeUntilFn((code=>isWhitespace(code)?!spacesInNameAllowed:!function isBlockNameChar(code){return isAsciiLetter(code)||isDigit(code)||code===$_}(code)||(spacesInNameAllowed=!0,!1))),this._cursor.getChars(nameCursor).trim()}_consumeBlockStart(start){this._beginToken(24,start);const startToken=this._endToken([this._getBlockName()]);if(40===this._cursor.peek()){if(this._cursor.advance(),this._consumeBlockParameters(),this._attemptCharCodeUntilFn(isNotWhitespace),!this._attemptCharCode(41))return void(startToken.type=28);this._attemptCharCodeUntilFn(isNotWhitespace)}this._attemptCharCode(123)?(this._beginToken(25),this._endToken([])):startToken.type=28}_consumeBlockEnd(start){this._beginToken(26,start),this._endToken([])}_consumeBlockParameters(){for(this._attemptCharCodeUntilFn(isBlockParameterChar);41!==this._cursor.peek()&&this._cursor.peek()!==$EOF;){this._beginToken(27);const start=this._cursor.clone();let inQuote=null,openParens=0;for(;59!==this._cursor.peek()&&this._cursor.peek()!==$EOF||null!==inQuote;){const char=this._cursor.peek();if(92===char)this._cursor.advance();else if(char===inQuote)inQuote=null;else if(null===inQuote&&isQuote(char))inQuote=char;else if(40===char&&null===inQuote)openParens++;else if(41===char&&null===inQuote){if(0===openParens)break;openParens>0&&openParens--}this._cursor.advance()}this._endToken([this._cursor.getChars(start)]),this._attemptCharCodeUntilFn(isBlockParameterChar)}}_consumeLetDeclaration(start){if(this._beginToken(29,start),!isWhitespace(this._cursor.peek())){return void(this._endToken([this._cursor.getChars(start)]).type=32)}this._attemptCharCodeUntilFn(isNotWhitespace);const startToken=this._endToken([this._getLetDeclarationName()]);if(this._attemptCharCodeUntilFn(isNotWhitespace),!this._attemptCharCode(61))return void(startToken.type=32);this._attemptCharCodeUntilFn((code=>isNotWhitespace(code)&&!isNewLine(code))),this._consumeLetDeclarationValue();59===this._cursor.peek()?(this._beginToken(31),this._endToken([]),this._cursor.advance()):(startToken.type=32,startToken.sourceSpan=this._cursor.getSpan(start))}_getLetDeclarationName(){const nameCursor=this._cursor.clone();let allowDigit=!1;return this._attemptCharCodeUntilFn((code=>!(isAsciiLetter(code)||code===$$||code===$_||allowDigit&&isDigit(code))||(allowDigit=!0,!1))),this._cursor.getChars(nameCursor).trim()}_consumeLetDeclarationValue(){const start=this._cursor.clone();for(this._beginToken(30,start);this._cursor.peek()!==$EOF;){const char=this._cursor.peek();if(59===char)break;isQuote(char)&&(this._cursor.advance(),this._attemptCharCodeUntilFn((inner=>92===inner?(this._cursor.advance(),!1):inner===char))),this._cursor.advance()}this._endToken([this._cursor.getChars(start)])}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(function isExpansionCaseStart(peek){return 125!==peek}(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(125===this._cursor.peek()){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(type,start=this._cursor.clone()){this._currentTokenStart=start,this._currentTokenType=type}_endToken(parts,end){if(null===this._currentTokenStart)throw new TokenError("Programming error - attempted to end a token when there was no start to the token",this._currentTokenType,this._cursor.getSpan(end));if(null===this._currentTokenType)throw new TokenError("Programming error - attempted to end a token which has no token type",null,this._cursor.getSpan(this._currentTokenStart));const token={type:this._currentTokenType,parts,sourceSpan:(end??this._cursor).getSpan(this._currentTokenStart,this._leadingTriviaCodePoints)};return this.tokens.push(token),this._currentTokenStart=null,this._currentTokenType=null,token}_createError(msg,span){this._isInExpansionForm()&&(msg+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');const error=new TokenError(msg,this._currentTokenType,span);return this._currentTokenStart=null,this._currentTokenType=null,new _ControlFlowError(error)}handleError(e){if(e instanceof CursorError&&(e=this._createError(e.msg,this._cursor.getSpan(e.cursor))),!(e instanceof _ControlFlowError))throw e;this.errors.push(e.error)}_attemptCharCode(charCode){return this._cursor.peek()===charCode&&(this._cursor.advance(),!0)}_attemptCharCodeCaseInsensitive(charCode){return!!function compareCharCodeCaseInsensitive(code1,code2){return toUpperCaseCharCode(code1)===toUpperCaseCharCode(code2)}(this._cursor.peek(),charCode)&&(this._cursor.advance(),!0)}_requireCharCode(charCode){const location=this._cursor.clone();if(!this._attemptCharCode(charCode))throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()),this._cursor.getSpan(location))}_attemptStr(chars){const len=chars.length;if(this._cursor.charsLeft()this._attemptStr("--\x3e"))),this._beginToken(11),this._requireStr("--\x3e"),this._endToken([])}_consumeCdata(start){this._beginToken(12,start),this._requireStr("CDATA["),this._endToken([]),this._consumeRawText(!1,(()=>this._attemptStr("]]>"))),this._beginToken(13),this._requireStr("]]>"),this._endToken([])}_consumeDocType(start){this._beginToken(18,start);const contentStart=this._cursor.clone();this._attemptUntilChar(62);const content=this._cursor.getChars(contentStart);this._cursor.advance(),this._endToken([content])}_consumePrefixAndName(){const nameOrPrefixStart=this._cursor.clone();let prefix="";for(;58!==this._cursor.peek()&&!(((code=this._cursor.peek())<$a||$z$9));)this._cursor.advance();var code;let nameStart;58===this._cursor.peek()?(prefix=this._cursor.getChars(nameOrPrefixStart),this._cursor.advance(),nameStart=this._cursor.clone()):nameStart=nameOrPrefixStart,this._requireCharCodeUntilFn(isNameEnd,""===prefix?0:1);return[prefix,this._cursor.getChars(nameStart)]}_consumeTagOpen(start){let tagName,prefix,openTagToken;try{if(!isAsciiLetter(this._cursor.peek()))throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()),this._cursor.getSpan(start));for(openTagToken=this._consumeTagOpenStart(start),prefix=openTagToken.parts[0],tagName=openTagToken.parts[1],this._attemptCharCodeUntilFn(isNotWhitespace);47!==this._cursor.peek()&&62!==this._cursor.peek()&&60!==this._cursor.peek()&&this._cursor.peek()!==$EOF;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(isNotWhitespace),this._attemptCharCode(61)&&(this._attemptCharCodeUntilFn(isNotWhitespace),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(isNotWhitespace);this._consumeTagOpenEnd()}catch(e){if(e instanceof _ControlFlowError)return void(openTagToken?openTagToken.type=4:(this._beginToken(5,start),this._endToken(["<"])));throw e}const contentTokenType=this._getTagDefinition(tagName).getContentType(prefix);contentTokenType===TagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(prefix,tagName,!1):contentTokenType===TagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(prefix,tagName,!0)}_consumeRawTextWithTagClose(prefix,tagName,consumeEntities){this._consumeRawText(consumeEntities,(()=>!!this._attemptCharCode(60)&&(!!this._attemptCharCode(47)&&(this._attemptCharCodeUntilFn(isNotWhitespace),!!this._attemptStrCaseInsensitive(tagName)&&(this._attemptCharCodeUntilFn(isNotWhitespace),this._attemptCharCode(62)))))),this._beginToken(3),this._requireCharCodeUntilFn((code=>62===code),3),this._cursor.advance(),this._endToken([prefix,tagName])}_consumeTagOpenStart(start){this._beginToken(0,start);const parts=this._consumePrefixAndName();return this._endToken(parts)}_consumeAttributeName(){const attrNameStart=this._cursor.peek();if(39===attrNameStart||34===attrNameStart)throw this._createError(_unexpectedCharacterErrorMsg(attrNameStart),this._cursor.getSpan());this._beginToken(14);const prefixAndName=this._consumePrefixAndName();this._endToken(prefixAndName)}_consumeAttributeValue(){if(39===this._cursor.peek()||34===this._cursor.peek()){const quoteChar=this._cursor.peek();this._consumeQuote(quoteChar);const endPredicate=()=>this._cursor.peek()===quoteChar;this._consumeWithInterpolation(16,17,endPredicate,endPredicate),this._consumeQuote(quoteChar)}else{const endPredicate=()=>isNameEnd(this._cursor.peek());this._consumeWithInterpolation(16,17,endPredicate,endPredicate)}}_consumeQuote(quoteChar){this._beginToken(15),this._requireCharCode(quoteChar),this._endToken([String.fromCodePoint(quoteChar)])}_consumeTagOpenEnd(){const tokenType=this._attemptCharCode(47)?2:1;this._beginToken(tokenType),this._requireCharCode(62),this._endToken([])}_consumeTagClose(start){this._beginToken(3,start),this._attemptCharCodeUntilFn(isNotWhitespace);const prefixAndName=this._consumePrefixAndName();this._attemptCharCodeUntilFn(isNotWhitespace),this._requireCharCode(62),this._endToken(prefixAndName)}_consumeExpansionFormStart(){this._beginToken(19),this._requireCharCode(123),this._endToken([]),this._expansionCaseStack.push(19),this._beginToken(7);const condition=this._readUntil(44),normalizedCondition=this._processCarriageReturns(condition);if(this._i18nNormalizeLineEndingsInICUs)this._endToken([normalizedCondition]);else{const conditionToken=this._endToken([condition]);normalizedCondition!==condition&&this.nonNormalizedIcuExpressions.push(conditionToken)}this._requireCharCode(44),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(7);const type=this._readUntil(44);this._endToken([type]),this._requireCharCode(44),this._attemptCharCodeUntilFn(isNotWhitespace)}_consumeExpansionCaseStart(){this._beginToken(20);const value=this._readUntil(123).trim();this._endToken([value]),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(21),this._requireCharCode(123),this._endToken([]),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.push(21)}_consumeExpansionCaseEnd(){this._beginToken(22),this._requireCharCode(125),this._endToken([]),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(23),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()}_consumeWithInterpolation(textTokenType,interpolationTokenType,endPredicate,endInterpolation){this._beginToken(textTokenType);const parts=[];for(;!endPredicate();){const current=this._cursor.clone();this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(this._endToken([this._processCarriageReturns(parts.join(""))],current),parts.length=0,this._consumeInterpolation(interpolationTokenType,current,endInterpolation),this._beginToken(textTokenType)):38===this._cursor.peek()?(this._endToken([this._processCarriageReturns(parts.join(""))]),parts.length=0,this._consumeEntity(textTokenType),this._beginToken(textTokenType)):parts.push(this._readChar())}this._inInterpolation=!1,this._endToken([this._processCarriageReturns(parts.join(""))])}_consumeInterpolation(interpolationTokenType,interpolationStart,prematureEndPredicate){const parts=[];this._beginToken(interpolationTokenType,interpolationStart),parts.push(this._interpolationConfig.start);const expressionStart=this._cursor.clone();let inQuote=null,inComment=!1;for(;this._cursor.peek()!==$EOF&&(null===prematureEndPredicate||!prematureEndPredicate());){const current=this._cursor.clone();if(this._isTagStart())return this._cursor=current,parts.push(this._getProcessedChars(expressionStart,current)),void this._endToken(parts);if(null===inQuote){if(this._attemptStr(this._interpolationConfig.end))return parts.push(this._getProcessedChars(expressionStart,current)),parts.push(this._interpolationConfig.end),void this._endToken(parts);this._attemptStr("//")&&(inComment=!0)}const char=this._cursor.peek();this._cursor.advance(),92===char?this._cursor.advance():char===inQuote?inQuote=null:!inComment&&null===inQuote&&isQuote(char)&&(inQuote=char)}parts.push(this._getProcessedChars(expressionStart,this._cursor)),this._endToken(parts)}_getProcessedChars(start,end){return this._processCarriageReturns(end.getChars(start))}_isTextEnd(){if(this._isTagStart()||this._cursor.peek()===$EOF)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(this.isExpansionFormStart())return!0;if(125===this._cursor.peek()&&this._isInExpansionCase())return!0}return!(!this._tokenizeBlocks||this._inInterpolation||this._isInExpansion()||64!==this._cursor.peek()&&125!==this._cursor.peek())}_isTagStart(){if(60===this._cursor.peek()){const tmp=this._cursor.clone();tmp.advance();const code=tmp.peek();if($a<=code&&code<=$z||$A<=code&&code<=$Z||47===code||33===code)return!0}return!1}_readUntil(char){const start=this._cursor.clone();return this._attemptUntilChar(char),this._cursor.getChars(start)}_isInExpansion(){return this._isInExpansionCase()||this._isInExpansionForm()}_isInExpansionCase(){return this._expansionCaseStack.length>0&&21===this._expansionCaseStack[this._expansionCaseStack.length-1]}_isInExpansionForm(){return this._expansionCaseStack.length>0&&19===this._expansionCaseStack[this._expansionCaseStack.length-1]}isExpansionFormStart(){if(123!==this._cursor.peek())return!1;if(this._interpolationConfig){const start=this._cursor.clone(),isInterpolation=this._attemptStr(this._interpolationConfig.start);return this._cursor=start,!isInterpolation}return!0}}function isNotWhitespace(code){return!isWhitespace(code)||code===$EOF}function isNameEnd(code){return isWhitespace(code)||62===code||60===code||47===code||39===code||34===code||61===code||code===$EOF}function isDigitEntityEnd(code){return 59===code||code===$EOF||!function isAsciiHexDigit(code){return code>=$a&&code<=$f||code>=$A&&code<=$F||isDigit(code)}(code)}function isNamedEntityEnd(code){return 59===code||code===$EOF||!isAsciiLetter(code)}function toUpperCaseCharCode(code){return code>=$a&&code<=$z?code-$a+$A:code}function isBlockParameterChar(code){return 59!==code&&isNotWhitespace(code)}class PlainCharacterCursor{constructor(fileOrCursor,range){if(fileOrCursor instanceof PlainCharacterCursor){this.file=fileOrCursor.file,this.input=fileOrCursor.input,this.end=fileOrCursor.end;const state=fileOrCursor.state;this.state={peek:state.peek,offset:state.offset,line:state.line,column:state.column}}else{if(!range)throw new Error("Programming error: the range argument must be provided with a file argument.");this.file=fileOrCursor,this.input=fileOrCursor.content,this.end=range.endPos,this.state={peek:-1,offset:range.startPos,line:range.startLine,column:range.startCol}}}clone(){return new PlainCharacterCursor(this)}peek(){return this.state.peek}charsLeft(){return this.end-this.state.offset}diff(other){return this.state.offset-other.state.offset}advance(){this.advanceState(this.state)}init(){this.updatePeek(this.state)}getSpan(start,leadingTriviaCodePoints){let fullStart=start=start||this;if(leadingTriviaCodePoints)for(;this.diff(start)>0&&-1!==leadingTriviaCodePoints.indexOf(start.peek());)fullStart===start&&(start=start.clone()),start.advance();const startLocation=this.locationFromCursor(start),endLocation=this.locationFromCursor(this),fullStartLocation=fullStart!==start?this.locationFromCursor(fullStart):startLocation;return new ParseSourceSpan(startLocation,endLocation,fullStartLocation)}getChars(start){return this.input.substring(start.state.offset,this.state.offset)}charAt(pos){return this.input.charCodeAt(pos)}advanceState(state){if(state.offset>=this.end)throw this.state=state,new CursorError('Unexpected character "EOF"',this);const currentChar=this.charAt(state.offset);10===currentChar?(state.line++,state.column=0):isNewLine(currentChar)||state.column++,state.offset++,this.updatePeek(state)}updatePeek(state){state.peek=state.offset>=this.end?$EOF:this.charAt(state.offset)}locationFromCursor(cursor){return new ParseLocation(cursor.file,cursor.state.offset,cursor.state.line,cursor.state.column)}}class EscapedCharacterCursor extends PlainCharacterCursor{constructor(fileOrCursor,range){fileOrCursor instanceof EscapedCharacterCursor?(super(fileOrCursor),this.internalState={...fileOrCursor.internalState}):(super(fileOrCursor,range),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new EscapedCharacterCursor(this)}getChars(start){const cursor=start.clone();let chars="";for(;cursor.internalState.offsetthis.internalState.peek;if(92===peek())if(this.internalState={...this.state},this.advanceState(this.internalState),110===peek())this.state.peek=10;else if(114===peek())this.state.peek=13;else if(118===peek())this.state.peek=11;else if(116===peek())this.state.peek=$TAB;else if(98===peek())this.state.peek=8;else if(peek()===$f)this.state.peek=12;else if(117===peek())if(this.advanceState(this.internalState),123===peek()){this.advanceState(this.internalState);const digitStart=this.clone();let length=0;for(;125!==peek();)this.advanceState(this.internalState),length++;this.state.peek=this.decodeHexDigits(digitStart,length)}else{const digitStart=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(digitStart,4)}else if(120===peek()){this.advanceState(this.internalState);const digitStart=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(digitStart,2)}else if(isOctalDigit(peek())){let octal="",length=0,previous=this.clone();for(;isOctalDigit(peek())&&length<3;)previous=this.clone(),octal+=String.fromCodePoint(peek()),this.advanceState(this.internalState),length++;this.state.peek=parseInt(octal,8),this.internalState=previous.internalState}else isNewLine(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(start,length){const hex=this.input.slice(start.internalState.offset,start.internalState.offset+length),charCode=parseInt(hex,16);if(isNaN(charCode))throw start.state=start.internalState,new CursorError("Invalid hexadecimal escape sequence",start);return charCode}}class CursorError{constructor(msg,cursor){this.msg=msg,this.cursor=cursor}}class TreeError extends ParseError{static create(elementName,span,msg){return new TreeError(elementName,span,msg)}constructor(elementName,span,msg){super(span,msg),this.elementName=elementName}}class ParseTreeResult{constructor(rootNodes,errors){this.rootNodes=rootNodes,this.errors=errors}}class Parser$1{constructor(getTagDefinition){this.getTagDefinition=getTagDefinition}parse(source,url,options){const tokenizeResult=tokenize(source,url,this.getTagDefinition,options),parser=new _TreeBuilder(tokenizeResult.tokens,this.getTagDefinition);return parser.build(),new ParseTreeResult(parser.rootNodes,tokenizeResult.errors.concat(parser.errors))}}class _TreeBuilder{constructor(tokens,getTagDefinition){this.tokens=tokens,this.getTagDefinition=getTagDefinition,this._index=-1,this._containerStack=[],this.rootNodes=[],this.errors=[],this._advance()}build(){for(;33!==this._peek.type;)0===this._peek.type||4===this._peek.type?this._consumeStartTag(this._advance()):3===this._peek.type?this._consumeEndTag(this._advance()):12===this._peek.type?(this._closeVoidElement(),this._consumeCdata(this._advance())):10===this._peek.type?(this._closeVoidElement(),this._consumeComment(this._advance())):5===this._peek.type||7===this._peek.type||6===this._peek.type?(this._closeVoidElement(),this._consumeText(this._advance())):19===this._peek.type?this._consumeExpansion(this._advance()):24===this._peek.type?(this._closeVoidElement(),this._consumeBlockOpen(this._advance())):26===this._peek.type?(this._closeVoidElement(),this._consumeBlockClose(this._advance())):28===this._peek.type?(this._closeVoidElement(),this._consumeIncompleteBlock(this._advance())):29===this._peek.type?(this._closeVoidElement(),this._consumeLet(this._advance())):32===this._peek.type?(this._closeVoidElement(),this._consumeIncompleteLet(this._advance())):this._advance();for(const leftoverContainer of this._containerStack)leftoverContainer instanceof Block&&this.errors.push(TreeError.create(leftoverContainer.name,leftoverContainer.sourceSpan,`Unclosed block "${leftoverContainer.name}"`))}_advance(){const prev=this._peek;return this._index0)return this.errors=this.errors.concat(expansionCaseParser.errors),null;const sourceSpan=new ParseSourceSpan(value.sourceSpan.start,end.sourceSpan.end,value.sourceSpan.fullStart),expSourceSpan=new ParseSourceSpan(start.sourceSpan.start,end.sourceSpan.end,start.sourceSpan.fullStart);return new ExpansionCase(value.parts[0],expansionCaseParser.rootNodes,sourceSpan,value.sourceSpan,expSourceSpan)}_collectExpansionExpTokens(start){const exp=[],expansionFormStack=[21];for(;;){if(19!==this._peek.type&&21!==this._peek.type||expansionFormStack.push(this._peek.type),22===this._peek.type){if(!lastOnStack(expansionFormStack,21))return this.errors.push(TreeError.create(null,start.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(expansionFormStack.pop(),0===expansionFormStack.length)return exp}if(23===this._peek.type){if(!lastOnStack(expansionFormStack,19))return this.errors.push(TreeError.create(null,start.sourceSpan,"Invalid ICU message. Missing '}'.")),null;expansionFormStack.pop()}if(33===this._peek.type)return this.errors.push(TreeError.create(null,start.sourceSpan,"Invalid ICU message. Missing '}'.")),null;exp.push(this._advance())}}_consumeText(token){const tokens=[token],startSpan=token.sourceSpan;let text=token.parts[0];if(text.length>0&&"\n"===text[0]){const parent=this._getContainer();null!=parent&&0===parent.children.length&&this.getTagDefinition(parent.name).ignoreFirstLf&&(text=text.substring(1),tokens[0]={type:token.type,sourceSpan:token.sourceSpan,parts:[text]})}for(;8===this._peek.type||5===this._peek.type||9===this._peek.type;)token=this._advance(),tokens.push(token),8===token.type?text+=token.parts.join("").replace(/&([^;]+);/g,decodeEntity):9===token.type?text+=token.parts[0]:text+=token.parts.join("");if(text.length>0){const endSpan=token.sourceSpan;this._addToParent(new Text(text,new ParseSourceSpan(startSpan.start,endSpan.end,startSpan.fullStart,startSpan.details),tokens))}}_closeVoidElement(){const el=this._getContainer();el instanceof Element&&this.getTagDefinition(el.name).isVoid&&this._containerStack.pop()}_consumeStartTag(startTagToken){const[prefix,name]=startTagToken.parts,attrs=[];for(;14===this._peek.type;)attrs.push(this._consumeAttr(this._advance()));const fullName=this._getElementFullName(prefix,name,this._getClosestParentElement());let selfClosing=!1;if(2===this._peek.type){this._advance(),selfClosing=!0;const tagDef=this.getTagDefinition(fullName);tagDef.canSelfClose||null!==getNsPrefix(fullName)||tagDef.isVoid||this.errors.push(TreeError.create(fullName,startTagToken.sourceSpan,`Only void, custom and foreign elements can be self closed "${startTagToken.parts[1]}"`))}else 1===this._peek.type&&(this._advance(),selfClosing=!1);const end=this._peek.sourceSpan.fullStart,span=new ParseSourceSpan(startTagToken.sourceSpan.start,end,startTagToken.sourceSpan.fullStart),startSpan=new ParseSourceSpan(startTagToken.sourceSpan.start,end,startTagToken.sourceSpan.fullStart),el=new Element(fullName,attrs,[],span,startSpan,void 0),parentEl=this._getContainer();this._pushContainer(el,parentEl instanceof Element&&this.getTagDefinition(parentEl.name).isClosedByChild(el.name)),selfClosing?this._popContainer(fullName,Element,span):4===startTagToken.type&&(this._popContainer(fullName,Element,null),this.errors.push(TreeError.create(fullName,span,`Opening tag "${fullName}" not terminated.`)))}_pushContainer(node,isClosedByChild){isClosedByChild&&this._containerStack.pop(),this._addToParent(node),this._containerStack.push(node)}_consumeEndTag(endTagToken){const fullName=this._getElementFullName(endTagToken.parts[0],endTagToken.parts[1],this._getClosestParentElement());if(this.getTagDefinition(fullName).isVoid)this.errors.push(TreeError.create(fullName,endTagToken.sourceSpan,`Void elements do not have end tags "${endTagToken.parts[1]}"`));else if(!this._popContainer(fullName,Element,endTagToken.sourceSpan)){const errMsg=`Unexpected closing tag "${fullName}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;this.errors.push(TreeError.create(fullName,endTagToken.sourceSpan,errMsg))}}_popContainer(expectedName,expectedType,endSourceSpan){let unexpectedCloseTagDetected=!1;for(let stackIndex=this._containerStack.length-1;stackIndex>=0;stackIndex--){const node=this._containerStack[stackIndex];if((node.name===expectedName||null===expectedName)&&node instanceof expectedType)return node.endSourceSpan=endSourceSpan,node.sourceSpan.end=null!==endSourceSpan?endSourceSpan.end:node.sourceSpan.end,this._containerStack.splice(stackIndex,this._containerStack.length-stackIndex),!unexpectedCloseTagDetected;(node instanceof Block||node instanceof Element&&!this.getTagDefinition(node.name).closedByParent)&&(unexpectedCloseTagDetected=!0)}return!1}_consumeAttr(attrName){const fullName=mergeNsAndName(attrName.parts[0],attrName.parts[1]);let attrEnd=attrName.sourceSpan.end;15===this._peek.type&&this._advance();let value="";const valueTokens=[];let valueStartSpan,valueEnd;if(16===this._peek.type)for(valueStartSpan=this._peek.sourceSpan,valueEnd=this._peek.sourceSpan.end;16===this._peek.type||17===this._peek.type||9===this._peek.type;){const valueToken=this._advance();valueTokens.push(valueToken),17===valueToken.type?value+=valueToken.parts.join("").replace(/&([^;]+);/g,decodeEntity):9===valueToken.type?value+=valueToken.parts[0]:value+=valueToken.parts.join(""),valueEnd=attrEnd=valueToken.sourceSpan.end}if(15===this._peek.type){attrEnd=this._advance().sourceSpan.end}const valueSpan=valueStartSpan&&valueEnd&&new ParseSourceSpan(valueStartSpan.start,valueEnd,valueStartSpan.fullStart);return new Attribute(fullName,value,new ParseSourceSpan(attrName.sourceSpan.start,attrEnd,attrName.sourceSpan.fullStart),attrName.sourceSpan,valueSpan,valueTokens.length>0?valueTokens:void 0,void 0)}_consumeBlockOpen(token){const parameters=[];for(;27===this._peek.type;){const paramToken=this._advance();parameters.push(new BlockParameter(paramToken.parts[0],paramToken.sourceSpan))}25===this._peek.type&&this._advance();const end=this._peek.sourceSpan.fullStart,span=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),startSpan=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),block=new Block(token.parts[0],parameters,[],span,token.sourceSpan,startSpan);this._pushContainer(block,!1)}_consumeBlockClose(token){this._popContainer(null,Block,token.sourceSpan)||this.errors.push(TreeError.create(null,token.sourceSpan,'Unexpected closing block. The block may have been closed earlier. If you meant to write the } character, you should use the "}" HTML entity instead.'))}_consumeIncompleteBlock(token){const parameters=[];for(;27===this._peek.type;){const paramToken=this._advance();parameters.push(new BlockParameter(paramToken.parts[0],paramToken.sourceSpan))}const end=this._peek.sourceSpan.fullStart,span=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),startSpan=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),block=new Block(token.parts[0],parameters,[],span,token.sourceSpan,startSpan);this._pushContainer(block,!1),this._popContainer(null,Block,null),this.errors.push(TreeError.create(token.parts[0],span,`Incomplete block "${token.parts[0]}". If you meant to write the @ character, you should use the "@" HTML entity instead.`))}_consumeLet(startToken){const name=startToken.parts[0];let valueToken,endToken;if(30!==this._peek.type)return void this.errors.push(TreeError.create(startToken.parts[0],startToken.sourceSpan,`Invalid @let declaration "${name}". Declaration must have a value.`));if(valueToken=this._advance(),31!==this._peek.type)return void this.errors.push(TreeError.create(startToken.parts[0],startToken.sourceSpan,`Unterminated @let declaration "${name}". Declaration must be terminated with a semicolon.`));endToken=this._advance();const end=endToken.sourceSpan.fullStart,span=new ParseSourceSpan(startToken.sourceSpan.start,end,startToken.sourceSpan.fullStart),startOffset=startToken.sourceSpan.toString().lastIndexOf(name),nameStart=startToken.sourceSpan.start.moveBy(startOffset),nameSpan=new ParseSourceSpan(nameStart,startToken.sourceSpan.end),node=new LetDeclaration(name,valueToken.parts[0],span,nameSpan,valueToken.sourceSpan);this._addToParent(node)}_consumeIncompleteLet(token){const name=token.parts[0]??"",nameString=name?` "${name}"`:"";if(name.length>0){const startOffset=token.sourceSpan.toString().lastIndexOf(name),nameStart=token.sourceSpan.start.moveBy(startOffset),nameSpan=new ParseSourceSpan(nameStart,token.sourceSpan.end),valueSpan=new ParseSourceSpan(token.sourceSpan.start,token.sourceSpan.start.moveBy(0)),node=new LetDeclaration(name,"",token.sourceSpan,nameSpan,valueSpan);this._addToParent(node)}this.errors.push(TreeError.create(token.parts[0],token.sourceSpan,`Incomplete @let declaration${nameString}. @let declarations must be written as \`@let = ;\``))}_getContainer(){return this._containerStack.length>0?this._containerStack[this._containerStack.length-1]:null}_getClosestParentElement(){for(let i=this._containerStack.length-1;i>-1;i--)if(this._containerStack[i]instanceof Element)return this._containerStack[i];return null}_addToParent(node){const parent=this._getContainer();null===parent?this.rootNodes.push(node):parent.children.push(node)}_getElementFullName(prefix,localName,parentElement){if(""===prefix&&""===(prefix=this.getTagDefinition(localName).implicitNamespacePrefix||"")&&null!=parentElement){const parentTagName=splitNsName(parentElement.name)[1];this.getTagDefinition(parentTagName).preventNamespaceInheritance||(prefix=getNsPrefix(parentElement.name))}return mergeNsAndName(prefix,localName)}}function lastOnStack(stack,element){return stack.length>0&&stack[stack.length-1]===element}function decodeEntity(match,entity){return void 0!==NAMED_ENTITIES[entity]?NAMED_ENTITIES[entity]||match:/^#x[a-f0-9]+$/i.test(entity)?String.fromCodePoint(parseInt(entity.slice(2),16)):/^#\d+$/.test(entity)?String.fromCodePoint(parseInt(entity.slice(1),10)):match}const SKIP_WS_TRIM_TAGS=new Set(["pre","template","textarea","script","style"]),NO_WS_REGEXP=new RegExp("[^ \f\n\r\t\v ᠎ - \u2028\u2029   \ufeff]"),WS_REPLACE_REGEXP=new RegExp("[ \f\n\r\t\v ᠎ - \u2028\u2029   \ufeff]{2,}","g");function replaceNgsp(value){return value.replace(new RegExp(NGSP_UNICODE,"g")," ")}class WhitespaceVisitor{constructor(preserveSignificantWhitespace,originalNodeMap,requireContext=!0){this.preserveSignificantWhitespace=preserveSignificantWhitespace,this.originalNodeMap=originalNodeMap,this.requireContext=requireContext,this.icuExpansionDepth=0}visitElement(element,context){if(SKIP_WS_TRIM_TAGS.has(element.name)||function hasPreserveWhitespacesAttr(attrs){return attrs.some((attr=>"ngPreserveWhitespaces"===attr.name))}(element.attrs)){const newElement=new Element(element.name,visitAllWithSiblings(this,element.attrs),element.children,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n);return this.originalNodeMap?.set(newElement,element),newElement}const newElement=new Element(element.name,element.attrs,visitAllWithSiblings(this,element.children),element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n);return this.originalNodeMap?.set(newElement,element),newElement}visitAttribute(attribute,context){return"ngPreserveWhitespaces"!==attribute.name?attribute:null}visitText(text,context){const isNotBlank=text.value.match(NO_WS_REGEXP),hasExpansionSibling=context&&(context.prev instanceof Expansion||context.next instanceof Expansion);if(this.icuExpansionDepth>0&&this.preserveSignificantWhitespace)return text;if(isNotBlank||hasExpansionSibling){const tokens=text.tokens.map((token=>5===token.type?function createWhitespaceProcessedTextToken({type,parts,sourceSpan}){return{type,parts:[processWhitespace(parts[0])],sourceSpan}}(token):token));if(!this.preserveSignificantWhitespace&&tokens.length>0){const firstToken=tokens[0];tokens.splice(0,1,function trimLeadingWhitespace(token,context){if(5!==token.type)return token;const isFirstTokenInTag=!context?.prev;return isFirstTokenInTag?transformTextToken(token,(text=>text.trimStart())):token}(firstToken,context));const lastToken=tokens[tokens.length-1];tokens.splice(tokens.length-1,1,function trimTrailingWhitespace(token,context){if(5!==token.type)return token;const isLastTokenInTag=!context?.next;return isLastTokenInTag?transformTextToken(token,(text=>text.trimEnd())):token}(lastToken,context))}const processed=processWhitespace(text.value),value=this.preserveSignificantWhitespace?processed:function trimLeadingAndTrailingWhitespace(text,context){const isFirstTokenInTag=!context?.prev,isLastTokenInTag=!context?.next,maybeTrimmedStart=isFirstTokenInTag?text.trimStart():text;return isLastTokenInTag?maybeTrimmedStart.trimEnd():maybeTrimmedStart}(processed,context),result=new Text(value,text.sourceSpan,tokens,text.i18n);return this.originalNodeMap?.set(result,text),result}return null}visitComment(comment,context){return comment}visitExpansion(expansion,context){let newExpansion;this.icuExpansionDepth++;try{newExpansion=new Expansion(expansion.switchValue,expansion.type,visitAllWithSiblings(this,expansion.cases),expansion.sourceSpan,expansion.switchValueSourceSpan,expansion.i18n)}finally{this.icuExpansionDepth--}return this.originalNodeMap?.set(newExpansion,expansion),newExpansion}visitExpansionCase(expansionCase,context){const newExpansionCase=new ExpansionCase(expansionCase.value,visitAllWithSiblings(this,expansionCase.expression),expansionCase.sourceSpan,expansionCase.valueSourceSpan,expansionCase.expSourceSpan);return this.originalNodeMap?.set(newExpansionCase,expansionCase),newExpansionCase}visitBlock(block,context){const newBlock=new Block(block.name,block.parameters,visitAllWithSiblings(this,block.children),block.sourceSpan,block.nameSpan,block.startSourceSpan,block.endSourceSpan);return this.originalNodeMap?.set(newBlock,block),newBlock}visitBlockParameter(parameter,context){return parameter}visitLetDeclaration(decl,context){return decl}visit(_node,context){if(this.requireContext&&!context)throw new Error("WhitespaceVisitor requires context. Visit via `visitAllWithSiblings` to get this context.");return!1}}function transformTextToken({type,parts,sourceSpan},transform){return{type,parts:[transform(parts[0])],sourceSpan}}function processWhitespace(text){return replaceNgsp(text).replace(WS_REPLACE_REGEXP," ")}function visitAllWithSiblings(visitor,nodes){const result=[];return nodes.forEach(((ast,i)=>{const context={prev:nodes[i-1],next:nodes[i+1]},astResult=ast.visit(visitor,context);astResult&&result.push(astResult)})),result}var TokenType;!function(TokenType){TokenType[TokenType.Character=0]="Character",TokenType[TokenType.Identifier=1]="Identifier",TokenType[TokenType.PrivateIdentifier=2]="PrivateIdentifier",TokenType[TokenType.Keyword=3]="Keyword",TokenType[TokenType.String=4]="String",TokenType[TokenType.Operator=5]="Operator",TokenType[TokenType.Number=6]="Number",TokenType[TokenType.Error=7]="Error"}(TokenType||(TokenType={}));const KEYWORDS=["var","let","as","null","undefined","true","false","if","else","this"];class Lexer{tokenize(text){const scanner=new _Scanner(text),tokens=[];let token=scanner.scanToken();for(;null!=token;)tokens.push(token),token=scanner.scanToken();return tokens}}class Token{constructor(index,end,type,numValue,strValue){this.index=index,this.end=end,this.type=type,this.numValue=numValue,this.strValue=strValue}isCharacter(code){return this.type==TokenType.Character&&this.numValue==code}isNumber(){return this.type==TokenType.Number}isString(){return this.type==TokenType.String}isOperator(operator){return this.type==TokenType.Operator&&this.strValue==operator}isIdentifier(){return this.type==TokenType.Identifier}isPrivateIdentifier(){return this.type==TokenType.PrivateIdentifier}isKeyword(){return this.type==TokenType.Keyword}isKeywordLet(){return this.type==TokenType.Keyword&&"let"==this.strValue}isKeywordAs(){return this.type==TokenType.Keyword&&"as"==this.strValue}isKeywordNull(){return this.type==TokenType.Keyword&&"null"==this.strValue}isKeywordUndefined(){return this.type==TokenType.Keyword&&"undefined"==this.strValue}isKeywordTrue(){return this.type==TokenType.Keyword&&"true"==this.strValue}isKeywordFalse(){return this.type==TokenType.Keyword&&"false"==this.strValue}isKeywordThis(){return this.type==TokenType.Keyword&&"this"==this.strValue}isError(){return this.type==TokenType.Error}toNumber(){return this.type==TokenType.Number?this.numValue:-1}toString(){switch(this.type){case TokenType.Character:case TokenType.Identifier:case TokenType.Keyword:case TokenType.Operator:case TokenType.PrivateIdentifier:case TokenType.String:case TokenType.Error:return this.strValue;case TokenType.Number:return this.numValue.toString();default:return null}}}function newCharacterToken(index,end,code){return new Token(index,end,TokenType.Character,code,String.fromCharCode(code))}function newOperatorToken(index,end,text){return new Token(index,end,TokenType.Operator,0,text)}const EOF=new Token(-1,-1,TokenType.Character,0,"");class _Scanner{constructor(input){this.input=input,this.peek=0,this.index=-1,this.length=input.length,this.advance()}advance(){this.peek=++this.index>=this.length?$EOF:this.input.charCodeAt(this.index)}scanToken(){const input=this.input,length=this.length;let peek=this.peek,index=this.index;for(;peek<=$SPACE;){if(++index>=length){peek=$EOF;break}peek=input.charCodeAt(index)}if(this.peek=peek,this.index=index,index>=length)return null;if(isIdentifierStart(peek))return this.scanIdentifier();if(isDigit(peek))return this.scanNumber(index);const start=index;switch(peek){case 46:return this.advance(),isDigit(this.peek)?this.scanNumber(start):newCharacterToken(start,this.index,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(start,peek);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(start,String.fromCharCode(peek));case 63:return this.scanQuestion(start);case 60:case 62:return this.scanComplexOperator(start,String.fromCharCode(peek),61,"=");case 33:case 61:return this.scanComplexOperator(start,String.fromCharCode(peek),61,"=",61,"=");case 38:return this.scanComplexOperator(start,"&",38,"&");case 124:return this.scanComplexOperator(start,"|",124,"|");case $NBSP:for(;isWhitespace(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(peek)}]`,0)}scanCharacter(start,code){return this.advance(),newCharacterToken(start,this.index,code)}scanOperator(start,str){return this.advance(),newOperatorToken(start,this.index,str)}scanComplexOperator(start,one,twoCode,two,threeCode,three){this.advance();let str=one;return this.peek==twoCode&&(this.advance(),str+=two),null!=threeCode&&this.peek==threeCode&&(this.advance(),str+=three),newOperatorToken(start,this.index,str)}scanIdentifier(){const start=this.index;for(this.advance();isIdentifierPart(this.peek);)this.advance();const str=this.input.substring(start,this.index);return KEYWORDS.indexOf(str)>-1?function newKeywordToken(index,end,text){return new Token(index,end,TokenType.Keyword,0,text)}(start,this.index,str):function newIdentifierToken(index,end,text){return new Token(index,end,TokenType.Identifier,0,text)}(start,this.index,str)}scanPrivateIdentifier(){const start=this.index;if(this.advance(),!isIdentifierStart(this.peek))return this.error("Invalid character [#]",-1);for(;isIdentifierPart(this.peek);)this.advance();const identifierName=this.input.substring(start,this.index);return function newPrivateIdentifierToken(index,end,text){return new Token(index,end,TokenType.PrivateIdentifier,0,text)}(start,this.index,identifierName)}scanNumber(start){let simple=this.index===start,hasSeparators=!1;for(this.advance();;){if(isDigit(this.peek));else if(this.peek===$_){if(!isDigit(this.input.charCodeAt(this.index-1))||!isDigit(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);hasSeparators=!0}else if(46===this.peek)simple=!1;else{if(101!=(code=this.peek)&&69!=code)break;if(this.advance(),isExponentSign(this.peek)&&this.advance(),!isDigit(this.peek))return this.error("Invalid exponent",-1);simple=!1}this.advance()}var code;let str=this.input.substring(start,this.index);hasSeparators&&(str=str.replace(/_/g,""));const value=simple?function parseIntAutoRadix(text){const result=parseInt(text);if(isNaN(result))throw new Error("Invalid integer literal when parsing "+text);return result}(str):parseFloat(str);return function newNumberToken(index,end,n){return new Token(index,end,TokenType.Number,n,"")}(start,this.index,value)}scanString(){const start=this.index,quote=this.peek;this.advance();let buffer="",marker=this.index;const input=this.input;for(;this.peek!=quote;)if(92==this.peek){let unescapedCode;if(buffer+=input.substring(marker,this.index),this.advance(),117==this.peek){const hex=input.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(hex))return this.error(`Invalid unicode escape [\\u${hex}]`,0);unescapedCode=parseInt(hex,16);for(let i=0;i<5;i++)this.advance()}else unescapedCode=unescape(this.peek),this.advance();buffer+=String.fromCharCode(unescapedCode),marker=this.index}else{if(this.peek==$EOF)return this.error("Unterminated quote",0);this.advance()}const last=input.substring(marker,this.index);return this.advance(),function newStringToken(index,end,text){return new Token(index,end,TokenType.String,0,text)}(start,this.index,buffer+last)}scanQuestion(start){this.advance();let str="?";return 63!==this.peek&&46!==this.peek||(str+=46===this.peek?".":"?",this.advance()),newOperatorToken(start,this.index,str)}error(message,offset){const position=this.index+offset;return function newErrorToken(index,end,message){return new Token(index,end,TokenType.Error,0,message)}(position,this.index,`Lexer Error: ${message} at column ${position} in expression [${this.input}]`)}}function isIdentifierStart(code){return $a<=code&&code<=$z||$A<=code&&code<=$Z||code==$_||code==$$}function isIdentifier(input){if(0==input.length)return!1;const scanner=new _Scanner(input);if(!isIdentifierStart(scanner.peek))return!1;for(scanner.advance();scanner.peek!==$EOF;){if(!isIdentifierPart(scanner.peek))return!1;scanner.advance()}return!0}function isIdentifierPart(code){return isAsciiLetter(code)||isDigit(code)||code==$_||code==$$}function isExponentSign(code){return 45==code||43==code}function unescape(code){switch(code){case 110:return 10;case $f:return 12;case 114:return 13;case 116:return $TAB;case 118:return 11;default:return code}}class SplitInterpolation{constructor(strings,expressions,offsets){this.strings=strings,this.expressions=expressions,this.offsets=offsets}}class TemplateBindingParseResult{constructor(templateBindings,warnings,errors){this.templateBindings=templateBindings,this.warnings=warnings,this.errors=errors}}class Parser{constructor(_lexer){this._lexer=_lexer,this.errors=[]}parseAction(input,location,absoluteOffset,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){this._checkNoInterpolation(input,location,interpolationConfig);const sourceToLex=this._stripComments(input),tokens=this._lexer.tokenize(sourceToLex),ast=new _ParseAST(input,location,absoluteOffset,tokens,1,this.errors,0).parseChain();return new ASTWithSource(ast,input,location,absoluteOffset,this.errors)}parseBinding(input,location,absoluteOffset,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const ast=this._parseBindingAst(input,location,absoluteOffset,interpolationConfig);return new ASTWithSource(ast,input,location,absoluteOffset,this.errors)}checkSimpleExpression(ast){const checker=new SimpleExpressionChecker;return ast.visit(checker),checker.errors}parseSimpleBinding(input,location,absoluteOffset,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const ast=this._parseBindingAst(input,location,absoluteOffset,interpolationConfig),errors=this.checkSimpleExpression(ast);return errors.length>0&&this._reportError(`Host binding expression cannot contain ${errors.join(" ")}`,input,location),new ASTWithSource(ast,input,location,absoluteOffset,this.errors)}_reportError(message,input,errLocation,ctxLocation){this.errors.push(new ParserError(message,input,errLocation,ctxLocation))}_parseBindingAst(input,location,absoluteOffset,interpolationConfig){this._checkNoInterpolation(input,location,interpolationConfig);const sourceToLex=this._stripComments(input),tokens=this._lexer.tokenize(sourceToLex);return new _ParseAST(input,location,absoluteOffset,tokens,0,this.errors,0).parseChain()}parseTemplateBindings(templateKey,templateValue,templateUrl,absoluteKeyOffset,absoluteValueOffset){const tokens=this._lexer.tokenize(templateValue);return new _ParseAST(templateValue,templateUrl,absoluteValueOffset,tokens,0,this.errors,0).parseTemplateBindings({source:templateKey,span:new AbsoluteSourceSpan(absoluteKeyOffset,absoluteKeyOffset+templateKey.length)})}parseInterpolation(input,location,absoluteOffset,interpolatedTokens,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const{strings,expressions,offsets}=this.splitInterpolation(input,location,interpolatedTokens,interpolationConfig);if(0===expressions.length)return null;const expressionNodes=[];for(let i=0;is.text)),expressionNodes,input,location,absoluteOffset)}parseInterpolationExpression(expression,location,absoluteOffset){const sourceToLex=this._stripComments(expression),tokens=this._lexer.tokenize(sourceToLex),ast=new _ParseAST(expression,location,absoluteOffset,tokens,0,this.errors,0).parseChain();return this.createInterpolationAst(["",""],[ast],expression,location,absoluteOffset)}createInterpolationAst(strings,expressions,input,location,absoluteOffset){const span=new ParseSpan(0,input.length),interpolation=new Interpolation$1(span,span.toAbsolute(absoluteOffset),strings,expressions);return new ASTWithSource(interpolation,input,location,absoluteOffset,this.errors)}splitInterpolation(input,location,interpolatedTokens,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const strings=[],expressions=[],offsets=[],inputToTemplateIndexMap=interpolatedTokens?function getIndexMapForOriginalTemplate(interpolatedTokens){let offsetMap=new Map,consumedInOriginalTemplate=0,consumedInInput=0,tokenIndex=0;for(;tokenIndexsum+current.length),0);consumedInInput+=lengthOfParts,consumedInOriginalTemplate+=lengthOfParts}offsetMap.set(consumedInInput,consumedInOriginalTemplate),tokenIndex++}return offsetMap}(interpolatedTokens):null;let i=0,atInterpolation=!1,extendLastString=!1,{start:interpStart,end:interpEnd}=interpolationConfig;for(;i-1)break;startIndex>-1&&endIndex>-1&&this._reportError(`Got interpolation (${start}${end}) where expression was expected`,input,`at column ${startIndex} in`,location)}_getInterpolationEndIndex(input,expressionEnd,start){for(const charIndex of this._forEachUnquotedChar(input,start)){if(input.startsWith(expressionEnd,charIndex))return charIndex;if(input.startsWith("//",charIndex))return input.indexOf(expressionEnd,charIndex)}return-1}*_forEachUnquotedChar(input,start){let currentQuote=null,escapeCount=0;for(let i=start;i=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){if(this.index>0){return this.peek(-1).end+this.offset}return 0===this.tokens.length?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(start,artificialEndIndex){let endIndex=this.currentEndIndex;if(void 0!==artificialEndIndex&&artificialEndIndex>this.currentEndIndex&&(endIndex=artificialEndIndex),start>endIndex){const tmp=endIndex;endIndex=start,start=tmp}return new ParseSpan(start,endIndex)}sourceSpan(start,artificialEndIndex){const serial=`${start}@${this.inputIndex}:${artificialEndIndex}`;return this.sourceSpanCache.has(serial)||this.sourceSpanCache.set(serial,this.span(start,artificialEndIndex).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(serial)}advance(){this.index++}withContext(context,cb){this.context|=context;const ret=cb();return this.context^=context,ret}consumeOptionalCharacter(code){return!!this.next.isCharacter(code)&&(this.advance(),!0)}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(code){this.consumeOptionalCharacter(code)||this.error(`Missing expected ${String.fromCharCode(code)}`)}consumeOptionalOperator(op){return!!this.next.isOperator(op)&&(this.advance(),!0)}expectOperator(operator){this.consumeOptionalOperator(operator)||this.error(`Missing expected operator ${operator}`)}prettyPrintToken(tok){return tok===EOF?"end of input":`token ${tok}`}expectIdentifierOrKeyword(){const n=this.next;return n.isIdentifier()||n.isKeyword()?(this.advance(),n.toString()):(n.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(n,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier or keyword`),null)}expectIdentifierOrKeywordOrString(){const n=this.next;return n.isIdentifier()||n.isKeyword()||n.isString()?(this.advance(),n.toString()):(n.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(n,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier, keyword, or string`),"")}parseChain(){const exprs=[],start=this.inputIndex;for(;this.index":case"<=":case">=":this.advance();const right=this.parseAdditive();result=new Binary(this.span(start),this.sourceSpan(start),operator,result,right);continue}break}return result}parseAdditive(){const start=this.inputIndex;let result=this.parseMultiplicative();for(;this.next.type==TokenType.Operator;){const operator=this.next.strValue;switch(operator){case"+":case"-":this.advance();let right=this.parseMultiplicative();result=new Binary(this.span(start),this.sourceSpan(start),operator,result,right);continue}break}return result}parseMultiplicative(){const start=this.inputIndex;let result=this.parsePrefix();for(;this.next.type==TokenType.Operator;){const operator=this.next.strValue;switch(operator){case"*":case"%":case"/":this.advance();let right=this.parsePrefix();result=new Binary(this.span(start),this.sourceSpan(start),operator,result,right);continue}break}return result}parsePrefix(){if(this.next.type==TokenType.Operator){const start=this.inputIndex;let result;switch(this.next.strValue){case"+":return this.advance(),result=this.parsePrefix(),Unary.createPlus(this.span(start),this.sourceSpan(start),result);case"-":return this.advance(),result=this.parsePrefix(),Unary.createMinus(this.span(start),this.sourceSpan(start),result);case"!":return this.advance(),result=this.parsePrefix(),new PrefixNot(this.span(start),this.sourceSpan(start),result)}}return this.parseCallChain()}parseCallChain(){const start=this.inputIndex;let result=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(46))result=this.parseAccessMember(result,start,!1);else if(this.consumeOptionalOperator("?."))result=this.consumeOptionalCharacter(40)?this.parseCall(result,start,!0):this.consumeOptionalCharacter(91)?this.parseKeyedReadOrWrite(result,start,!0):this.parseAccessMember(result,start,!0);else if(this.consumeOptionalCharacter(91))result=this.parseKeyedReadOrWrite(result,start,!1);else if(this.consumeOptionalCharacter(40))result=this.parseCall(result,start,!1);else{if(!this.consumeOptionalOperator("!"))return result;result=new NonNullAssert(this.span(start),this.sourceSpan(start),result)}}parsePrimary(){const start=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;const result=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),result}if(this.next.isKeywordNull())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),null);if(this.next.isKeywordUndefined())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),void 0);if(this.next.isKeywordTrue())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),!0);if(this.next.isKeywordFalse())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),!1);if(this.next.isKeywordThis())return this.advance(),new ThisReceiver(this.span(start),this.sourceSpan(start));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;const elements=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new LiteralArray(this.span(start),this.sourceSpan(start),elements)}if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new ImplicitReceiver(this.span(start),this.sourceSpan(start)),start,!1);if(this.next.isNumber()){const value=this.next.toNumber();return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),value)}if(this.next.isString()){const literalValue=this.next.toString();return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),literalValue)}return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new EmptyExpr$1(this.span(start),this.sourceSpan(start))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new EmptyExpr$1(this.span(start),this.sourceSpan(start))):(this.error(`Unexpected token ${this.next}`),new EmptyExpr$1(this.span(start),this.sourceSpan(start)))}parseExpressionList(terminator){const result=[];do{if(this.next.isCharacter(terminator))break;result.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return result}parseLiteralMap(){const keys=[],values=[],start=this.inputIndex;if(this.expectCharacter(123),!this.consumeOptionalCharacter(125)){this.rbracesExpected++;do{const keyStart=this.inputIndex,quoted=this.next.isString(),key=this.expectIdentifierOrKeywordOrString(),literalMapKey={key,quoted};if(keys.push(literalMapKey),quoted)this.expectCharacter(58),values.push(this.parsePipe());else if(this.consumeOptionalCharacter(58))values.push(this.parsePipe());else{literalMapKey.isShorthandInitialized=!0;const span=this.span(keyStart),sourceSpan=this.sourceSpan(keyStart);values.push(new PropertyRead(span,sourceSpan,sourceSpan,new ImplicitReceiver(span,sourceSpan),key))}}while(this.consumeOptionalCharacter(44)&&!this.next.isCharacter(125));this.rbracesExpected--,this.expectCharacter(125)}return new LiteralMap(this.span(start),this.sourceSpan(start),keys,values)}parseAccessMember(readReceiver,start,isSafe){const nameStart=this.inputIndex,id=this.withContext(ParseContextFlags.Writable,(()=>{const id=this.expectIdentifierOrKeyword()??"";return 0===id.length&&this.error("Expected identifier for property access",readReceiver.span.end),id})),nameSpan=this.sourceSpan(nameStart);let receiver;if(isSafe)this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),receiver=new EmptyExpr$1(this.span(start),this.sourceSpan(start))):receiver=new SafePropertyRead(this.span(start),this.sourceSpan(start),nameSpan,readReceiver,id);else if(this.consumeOptionalOperator("=")){if(!(1&this.parseFlags))return this.error("Bindings cannot contain assignments"),new EmptyExpr$1(this.span(start),this.sourceSpan(start));const value=this.parseConditional();receiver=new PropertyWrite(this.span(start),this.sourceSpan(start),nameSpan,readReceiver,id,value)}else receiver=new PropertyRead(this.span(start),this.sourceSpan(start),nameSpan,readReceiver,id);return receiver}parseCall(receiver,start,isSafe){const argumentStart=this.inputIndex;this.rparensExpected++;const args=this.parseCallArguments(),argumentSpan=this.span(argumentStart,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;const span=this.span(start),sourceSpan=this.sourceSpan(start);return isSafe?new SafeCall(span,sourceSpan,receiver,args,argumentSpan):new Call(span,sourceSpan,receiver,args,argumentSpan)}parseCallArguments(){if(this.next.isCharacter(41))return[];const positionals=[];do{positionals.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return positionals}expectTemplateBindingKey(){let result="",operatorFound=!1;const start=this.currentAbsoluteOffset;do{result+=this.expectIdentifierOrKeywordOrString(),operatorFound=this.consumeOptionalOperator("-"),operatorFound&&(result+="-")}while(operatorFound);return{source:result,span:new AbsoluteSourceSpan(start,start+result.length)}}parseTemplateBindings(templateKey){const bindings=[];for(bindings.push(...this.parseDirectiveKeywordBindings(templateKey));this.index{this.rbracketsExpected++;const key=this.parsePipe();if(key instanceof EmptyExpr$1&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(93),!this.consumeOptionalOperator("="))return isSafe?new SafeKeyedRead(this.span(start),this.sourceSpan(start),receiver,key):new KeyedRead(this.span(start),this.sourceSpan(start),receiver,key);if(!isSafe){const value=this.parseConditional();return new KeyedWrite(this.span(start),this.sourceSpan(start),receiver,key,value)}return this.error("The '?.' operator cannot be used in the assignment"),new EmptyExpr$1(this.span(start),this.sourceSpan(start))}))}parseDirectiveKeywordBindings(key){const bindings=[];this.consumeOptionalCharacter(58);const value=this.getDirectiveBoundTarget();let spanEnd=this.currentAbsoluteOffset;const asBinding=this.parseAsBinding(key);asBinding||(this.consumeStatementTerminator(),spanEnd=this.currentAbsoluteOffset);const sourceSpan=new AbsoluteSourceSpan(key.span.start,spanEnd);return bindings.push(new ExpressionBinding(sourceSpan,key,value)),asBinding&&bindings.push(asBinding),bindings}getDirectiveBoundTarget(){if(this.next===EOF||this.peekKeywordAs()||this.peekKeywordLet())return null;const ast=this.parsePipe(),{start,end}=ast.span,value=this.input.substring(start,end);return new ASTWithSource(ast,value,this.location,this.absoluteOffset+start,this.errors)}parseAsBinding(value){if(!this.peekKeywordAs())return null;this.advance();const key=this.expectTemplateBindingKey();this.consumeStatementTerminator();const sourceSpan=new AbsoluteSourceSpan(value.span.start,this.currentAbsoluteOffset);return new VariableBinding(sourceSpan,key,value)}parseLetBinding(){if(!this.peekKeywordLet())return null;const spanStart=this.currentAbsoluteOffset;this.advance();const key=this.expectTemplateBindingKey();let value=null;this.consumeOptionalOperator("=")&&(value=this.expectTemplateBindingKey()),this.consumeStatementTerminator();const sourceSpan=new AbsoluteSourceSpan(spanStart,this.currentAbsoluteOffset);return new VariableBinding(sourceSpan,key,value)}consumeStatementTerminator(){this.consumeOptionalCharacter(59)||this.consumeOptionalCharacter(44)}error(message,index=null){this.errors.push(new ParserError(message,this.input,this.locationText(index),this.location)),this.skip()}locationText(index=null){return null==index&&(index=this.index),index(inverted.set(propertyName,attributeName),inverted)),new Map);class DomElementSchemaRegistry extends ElementSchemaRegistry{constructor(){super(),this._schema=new Map,this._eventSchema=new Map,SCHEMA.forEach((encodedType=>{const type=new Map,events=new Set,[strType,strProperties]=encodedType.split("|"),properties=strProperties.split(","),[typeNames,superName]=strType.split("^");typeNames.split(",").forEach((tag=>{this._schema.set(tag.toLowerCase(),type),this._eventSchema.set(tag.toLowerCase(),events)}));const superType=superName&&this._schema.get(superName.toLowerCase());if(superType){for(const[prop,value]of superType)type.set(prop,value);for(const superEvent of this._eventSchema.get(superName.toLowerCase()))events.add(superEvent)}properties.forEach((property=>{if(property.length>0)switch(property[0]){case"*":events.add(property.substring(1));break;case"!":type.set(property.substring(1),"boolean");break;case"#":type.set(property.substring(1),"number");break;case"%":type.set(property.substring(1),"object");break;default:type.set(property,"string")}}))}))}hasProperty(tagName,propName,schemaMetas){if(schemaMetas.some((schema=>schema.name===NO_ERRORS_SCHEMA.name)))return!0;if(tagName.indexOf("-")>-1){if(isNgContainer(tagName)||isNgContent(tagName))return!1;if(schemaMetas.some((schema=>schema.name===CUSTOM_ELEMENTS_SCHEMA.name)))return!0}return(this._schema.get(tagName.toLowerCase())||this._schema.get("unknown")).has(propName)}hasElement(tagName,schemaMetas){if(schemaMetas.some((schema=>schema.name===NO_ERRORS_SCHEMA.name)))return!0;if(tagName.indexOf("-")>-1){if(isNgContainer(tagName)||isNgContent(tagName))return!0;if(schemaMetas.some((schema=>schema.name===CUSTOM_ELEMENTS_SCHEMA.name)))return!0}return this._schema.has(tagName.toLowerCase())}securityContext(tagName,propName,isAttribute){isAttribute&&(propName=this.getMappedPropName(propName)),tagName=tagName.toLowerCase(),propName=propName.toLowerCase();let ctx=SECURITY_SCHEMA()[tagName+"|"+propName];return ctx||(ctx=SECURITY_SCHEMA()["*|"+propName],ctx||SecurityContext.NONE)}getMappedPropName(propName){return _ATTR_TO_PROP.get(propName)??propName}getDefaultComponentElementName(){return"ng-component"}validateProperty(name){if(name.toLowerCase().startsWith("on")){return{error:!0,msg:`Binding to event property '${name}' is disallowed for security reasons, please use (${name.slice(2)})=...\nIf '${name}' is a directive input, make sure the directive is imported by the current module.`}}return{error:!1}}validateAttribute(name){if(name.toLowerCase().startsWith("on")){return{error:!0,msg:`Binding to event attribute '${name}' is disallowed for security reasons, please use (${name.slice(2)})=...`}}return{error:!1}}allKnownElementNames(){return Array.from(this._schema.keys())}allKnownAttributesOfElement(tagName){const elementProperties=this._schema.get(tagName.toLowerCase())||this._schema.get("unknown");return Array.from(elementProperties.keys()).map((prop=>_PROP_TO_ATTR.get(prop)??prop))}allKnownEventsOfElement(tagName){return Array.from(this._eventSchema.get(tagName.toLowerCase())??[])}normalizeAnimationStyleProperty(propName){return function dashCaseToCamelCase(input){return input.replace(DASH_CASE_REGEXP,((...m)=>m[1].toUpperCase()))}(propName)}normalizeAnimationStyleValue(camelCaseProp,userProvidedProp,val){let unit="";const strVal=val.toString().trim();let errorMsg=null;if(function _isPixelDimensionStyle(prop){switch(prop){case"width":case"height":case"minWidth":case"minHeight":case"maxWidth":case"maxHeight":case"left":case"top":case"bottom":case"right":case"fontSize":case"outlineWidth":case"outlineOffset":case"paddingTop":case"paddingLeft":case"paddingBottom":case"paddingRight":case"marginTop":case"marginLeft":case"marginBottom":case"marginRight":case"borderRadius":case"borderWidth":case"borderTopWidth":case"borderLeftWidth":case"borderRightWidth":case"borderBottomWidth":case"textIndent":return!0;default:return!1}}(camelCaseProp)&&0!==val&&"0"!==val)if("number"==typeof val)unit="px";else{const valAndSuffixMatch=val.match(/^[+-]?[\d\.]+([a-z]*)$/);valAndSuffixMatch&&0==valAndSuffixMatch[1].length&&(errorMsg=`Please provide a CSS unit value for ${userProvidedProp}:${val}`)}return{error:errorMsg,value:strVal+unit}}}class HtmlTagDefinition{constructor({closedByChildren,implicitNamespacePrefix,contentType=TagContentType.PARSABLE_DATA,closedByParent=!1,isVoid=!1,ignoreFirstLf=!1,preventNamespaceInheritance=!1,canSelfClose=!1}={}){this.closedByChildren={},this.closedByParent=!1,closedByChildren&&closedByChildren.length>0&&closedByChildren.forEach((tagName=>this.closedByChildren[tagName]=!0)),this.isVoid=isVoid,this.closedByParent=closedByParent||isVoid,this.implicitNamespacePrefix=implicitNamespacePrefix||null,this.contentType=contentType,this.ignoreFirstLf=ignoreFirstLf,this.preventNamespaceInheritance=preventNamespaceInheritance,this.canSelfClose=canSelfClose??isVoid}isClosedByChild(name){return this.isVoid||name.toLowerCase()in this.closedByChildren}getContentType(prefix){if("object"==typeof this.contentType){return(void 0===prefix?void 0:this.contentType[prefix])??this.contentType.default}return this.contentType}}let DEFAULT_TAG_DEFINITION,TAG_DEFINITIONS;function getHtmlTagDefinition(tagName){return TAG_DEFINITIONS||(DEFAULT_TAG_DEFINITION=new HtmlTagDefinition({canSelfClose:!0}),TAG_DEFINITIONS=Object.assign(Object.create(null),{base:new HtmlTagDefinition({isVoid:!0}),meta:new HtmlTagDefinition({isVoid:!0}),area:new HtmlTagDefinition({isVoid:!0}),embed:new HtmlTagDefinition({isVoid:!0}),link:new HtmlTagDefinition({isVoid:!0}),img:new HtmlTagDefinition({isVoid:!0}),input:new HtmlTagDefinition({isVoid:!0}),param:new HtmlTagDefinition({isVoid:!0}),hr:new HtmlTagDefinition({isVoid:!0}),br:new HtmlTagDefinition({isVoid:!0}),source:new HtmlTagDefinition({isVoid:!0}),track:new HtmlTagDefinition({isVoid:!0}),wbr:new HtmlTagDefinition({isVoid:!0}),p:new HtmlTagDefinition({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new HtmlTagDefinition({closedByChildren:["tbody","tfoot"]}),tbody:new HtmlTagDefinition({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new HtmlTagDefinition({closedByChildren:["tbody"],closedByParent:!0}),tr:new HtmlTagDefinition({closedByChildren:["tr"],closedByParent:!0}),td:new HtmlTagDefinition({closedByChildren:["td","th"],closedByParent:!0}),th:new HtmlTagDefinition({closedByChildren:["td","th"],closedByParent:!0}),col:new HtmlTagDefinition({isVoid:!0}),svg:new HtmlTagDefinition({implicitNamespacePrefix:"svg"}),foreignObject:new HtmlTagDefinition({implicitNamespacePrefix:"svg",preventNamespaceInheritance:!0}),math:new HtmlTagDefinition({implicitNamespacePrefix:"math"}),li:new HtmlTagDefinition({closedByChildren:["li"],closedByParent:!0}),dt:new HtmlTagDefinition({closedByChildren:["dt","dd"]}),dd:new HtmlTagDefinition({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new HtmlTagDefinition({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new HtmlTagDefinition({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new HtmlTagDefinition({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new HtmlTagDefinition({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new HtmlTagDefinition({closedByChildren:["optgroup"],closedByParent:!0}),option:new HtmlTagDefinition({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new HtmlTagDefinition({ignoreFirstLf:!0}),listing:new HtmlTagDefinition({ignoreFirstLf:!0}),style:new HtmlTagDefinition({contentType:TagContentType.RAW_TEXT}),script:new HtmlTagDefinition({contentType:TagContentType.RAW_TEXT}),title:new HtmlTagDefinition({contentType:{default:TagContentType.ESCAPABLE_RAW_TEXT,svg:TagContentType.PARSABLE_DATA}}),textarea:new HtmlTagDefinition({contentType:TagContentType.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),(new DomElementSchemaRegistry).allKnownElementNames().forEach((knownTagName=>{TAG_DEFINITIONS[knownTagName]||null!==getNsPrefix(knownTagName)||(TAG_DEFINITIONS[knownTagName]=new HtmlTagDefinition({canSelfClose:!1}))}))),TAG_DEFINITIONS[tagName]??TAG_DEFINITIONS[tagName.toLowerCase()]??DEFAULT_TAG_DEFINITION}const TAG_TO_PLACEHOLDER_NAMES={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"};class PlaceholderRegistry{constructor(){this._placeHolderNameCounts={},this._signatureToName={}}getStartTagPlaceholderName(tag,attrs,isVoid){const signature=this._hashTag(tag,attrs,isVoid);if(this._signatureToName[signature])return this._signatureToName[signature];const upperTag=tag.toUpperCase(),baseName=TAG_TO_PLACEHOLDER_NAMES[upperTag]||`TAG_${upperTag}`,name=this._generateUniqueName(isVoid?baseName:`START_${baseName}`);return this._signatureToName[signature]=name,name}getCloseTagPlaceholderName(tag){const signature=this._hashClosingTag(tag);if(this._signatureToName[signature])return this._signatureToName[signature];const upperTag=tag.toUpperCase(),baseName=TAG_TO_PLACEHOLDER_NAMES[upperTag]||`TAG_${upperTag}`,name=this._generateUniqueName(`CLOSE_${baseName}`);return this._signatureToName[signature]=name,name}getPlaceholderName(name,content){const upperName=name.toUpperCase(),signature=`PH: ${upperName}=${content}`;if(this._signatureToName[signature])return this._signatureToName[signature];const uniqueName=this._generateUniqueName(upperName);return this._signatureToName[signature]=uniqueName,uniqueName}getUniquePlaceholder(name){return this._generateUniqueName(name.toUpperCase())}getStartBlockPlaceholderName(name,parameters){const signature=this._hashBlock(name,parameters);if(this._signatureToName[signature])return this._signatureToName[signature];const placeholder=this._generateUniqueName(`START_BLOCK_${this._toSnakeCase(name)}`);return this._signatureToName[signature]=placeholder,placeholder}getCloseBlockPlaceholderName(name){const signature=this._hashClosingBlock(name);if(this._signatureToName[signature])return this._signatureToName[signature];const placeholder=this._generateUniqueName(`CLOSE_BLOCK_${this._toSnakeCase(name)}`);return this._signatureToName[signature]=placeholder,placeholder}_hashTag(tag,attrs,isVoid){return`<${tag}`+Object.keys(attrs).sort().map((name=>` ${name}=${attrs[name]}`)).join("")+(isVoid?"/>":`>`)}_hashClosingTag(tag){return this._hashTag(`/${tag}`,{},!1)}_hashBlock(name,parameters){return`@${name}${0===parameters.length?"":` (${parameters.sort().join("; ")})`} {}`}_hashClosingBlock(name){return this._hashBlock(`close_${name}`,[])}_toSnakeCase(name){return name.toUpperCase().replace(/[^A-Z0-9]/g,"_")}_generateUniqueName(base){if(!this._placeHolderNameCounts.hasOwnProperty(base))return this._placeHolderNameCounts[base]=1,base;const id=this._placeHolderNameCounts[base];return this._placeHolderNameCounts[base]=id+1,`${base}_${id}`}}const _expParser=new Parser(new Lexer);function createI18nMessageFactory(interpolationConfig,containerBlocks,retainEmptyTokens){const visitor=new _I18nVisitor(_expParser,interpolationConfig,containerBlocks,retainEmptyTokens);return(nodes,meaning,description,customId,visitNodeFn)=>visitor.toI18nMessage(nodes,meaning,description,customId,visitNodeFn)}function noopVisitNodeFn(_html,i18n){return i18n}class _I18nVisitor{constructor(_expressionParser,_interpolationConfig,_containerBlocks,_retainEmptyTokens){this._expressionParser=_expressionParser,this._interpolationConfig=_interpolationConfig,this._containerBlocks=_containerBlocks,this._retainEmptyTokens=_retainEmptyTokens}toI18nMessage(nodes,meaning="",description="",customId="",visitNodeFn){const context={isIcu:1==nodes.length&&nodes[0]instanceof Expansion,icuDepth:0,placeholderRegistry:new PlaceholderRegistry,placeholderToContent:{},placeholderToMessage:{},visitNodeFn:visitNodeFn||noopVisitNodeFn},i18nodes=visitAll(this,nodes,context);return new Message(i18nodes,context.placeholderToContent,context.placeholderToMessage,meaning,description,customId)}visitElement(el,context){const children=visitAll(this,el.children,context),attrs={};el.attrs.forEach((attr=>{attrs[attr.name]=attr.value}));const isVoid=getHtmlTagDefinition(el.name).isVoid,startPhName=context.placeholderRegistry.getStartTagPlaceholderName(el.name,attrs,isVoid);context.placeholderToContent[startPhName]={text:el.startSourceSpan.toString(),sourceSpan:el.startSourceSpan};let closePhName="";isVoid||(closePhName=context.placeholderRegistry.getCloseTagPlaceholderName(el.name),context.placeholderToContent[closePhName]={text:``,sourceSpan:el.endSourceSpan??el.sourceSpan});const node=new TagPlaceholder(el.name,attrs,startPhName,closePhName,children,isVoid,el.sourceSpan,el.startSourceSpan,el.endSourceSpan);return context.visitNodeFn(el,node)}visitAttribute(attribute,context){const node=void 0===attribute.valueTokens||1===attribute.valueTokens.length?new Text$2(attribute.value,attribute.valueSpan||attribute.sourceSpan):this._visitTextWithInterpolation(attribute.valueTokens,attribute.valueSpan||attribute.sourceSpan,context,attribute.i18n);return context.visitNodeFn(attribute,node)}visitText(text,context){const node=1===text.tokens.length?new Text$2(text.value,text.sourceSpan):this._visitTextWithInterpolation(text.tokens,text.sourceSpan,context,text.i18n);return context.visitNodeFn(text,node)}visitComment(comment,context){return null}visitExpansion(icu,context){context.icuDepth++;const i18nIcuCases={},i18nIcu=new Icu(icu.switchValue,icu.type,i18nIcuCases,icu.sourceSpan);if(icu.cases.forEach((caze=>{i18nIcuCases[caze.value]=new Container(caze.expression.map((node=>node.visit(this,context))),caze.expSourceSpan)})),context.icuDepth--,context.isIcu||context.icuDepth>0){const expPh=context.placeholderRegistry.getUniquePlaceholder(`VAR_${icu.type}`);return i18nIcu.expressionPlaceholder=expPh,context.placeholderToContent[expPh]={text:icu.switchValue,sourceSpan:icu.switchValueSourceSpan},context.visitNodeFn(icu,i18nIcu)}const phName=context.placeholderRegistry.getPlaceholderName("ICU",icu.sourceSpan.toString());context.placeholderToMessage[phName]=this.toI18nMessage([icu],"","","",void 0);const node=new IcuPlaceholder(i18nIcu,phName,icu.sourceSpan);return context.visitNodeFn(icu,node)}visitExpansionCase(_icuCase,_context){throw new Error("Unreachable code")}visitBlock(block,context){const children=visitAll(this,block.children,context);if(this._containerBlocks.has(block.name))return new Container(children,block.sourceSpan);const parameters=block.parameters.map((param=>param.expression)),startPhName=context.placeholderRegistry.getStartBlockPlaceholderName(block.name,parameters),closePhName=context.placeholderRegistry.getCloseBlockPlaceholderName(block.name);context.placeholderToContent[startPhName]={text:block.startSourceSpan.toString(),sourceSpan:block.startSourceSpan},context.placeholderToContent[closePhName]={text:block.endSourceSpan?block.endSourceSpan.toString():"}",sourceSpan:block.endSourceSpan??block.sourceSpan};const node=new BlockPlaceholder(block.name,parameters,startPhName,closePhName,children,block.sourceSpan,block.startSourceSpan,block.endSourceSpan);return context.visitNodeFn(block,node)}visitBlockParameter(_parameter,_context){throw new Error("Unreachable code")}visitLetDeclaration(decl,context){return null}_visitTextWithInterpolation(tokens,sourceSpan,context,previousI18n){const nodes=[];let hasInterpolation=!1;for(const token of tokens)switch(token.type){case 8:case 17:hasInterpolation=!0;const expression=token.parts[1],baseName=expression.split(_CUSTOM_PH_EXP)[2]||"INTERPOLATION",phName=context.placeholderRegistry.getPlaceholderName(baseName,expression);context.placeholderToContent[phName]={text:token.parts.join(""),sourceSpan:token.sourceSpan},nodes.push(new Placeholder(expression,phName,token.sourceSpan));break;default:if(token.parts[0].length>0||this._retainEmptyTokens){const previous=nodes[nodes.length-1];previous instanceof Text$2?(previous.value+=token.parts[0],previous.sourceSpan=new ParseSourceSpan(previous.sourceSpan.start,token.sourceSpan.end,previous.sourceSpan.fullStart,previous.sourceSpan.details)):nodes.push(new Text$2(token.parts[0],token.sourceSpan))}else this._retainEmptyTokens&&nodes.push(new Text$2(token.parts[0],token.sourceSpan))}return hasInterpolation?(function reusePreviousSourceSpans(nodes,previousI18n){previousI18n instanceof Message&&(!function assertSingleContainerMessage(message){const nodes=message.nodes;if(1!==nodes.length||!(nodes[0]instanceof Container))throw new Error("Unexpected previous i18n message - expected it to consist of only a single `Container` node.")}(previousI18n),previousI18n=previousI18n.nodes[0]);if(previousI18n instanceof Container){!function assertEquivalentNodes(previousNodes,nodes){if(previousNodes.length!==nodes.length)throw new Error(`\nThe number of i18n message children changed between first and second pass.\n\nFirst pass (${previousNodes.length} tokens):\n${previousNodes.map((node=>`"${node.sourceSpan.toString()}"`)).join("\n")}\n\nSecond pass (${nodes.length} tokens):\n${nodes.map((node=>`"${node.sourceSpan.toString()}"`)).join("\n")}\n `.trim());if(previousNodes.some(((node,i)=>nodes[i].constructor!==node.constructor)))throw new Error("The types of the i18n message children changed between first and second pass.")}(previousI18n.children,nodes);for(let i=0;i(trimmedNode,i18nNode)=>{const originalNode=originalNodeMap.get(trimmedNode)??trimmedNode;return originalNode instanceof NodeWithI18n&&(i18nNode instanceof IcuPlaceholder&&originalNode.i18n instanceof Message&&(i18nNode.previousMessage=originalNode.i18n),originalNode.i18n=i18nNode),i18nNode};class I18nMetaVisitor{constructor(interpolationConfig=DEFAULT_INTERPOLATION_CONFIG,keepI18nAttrs=!1,enableI18nLegacyMessageIdFormat=!1,containerBlocks=DEFAULT_CONTAINER_BLOCKS,preserveSignificantWhitespace=!0,retainEmptyTokens=!preserveSignificantWhitespace){this.interpolationConfig=interpolationConfig,this.keepI18nAttrs=keepI18nAttrs,this.enableI18nLegacyMessageIdFormat=enableI18nLegacyMessageIdFormat,this.containerBlocks=containerBlocks,this.preserveSignificantWhitespace=preserveSignificantWhitespace,this.retainEmptyTokens=retainEmptyTokens,this.hasI18nMeta=!1,this._errors=[]}_generateI18nMessage(nodes,meta="",visitNodeFn){const{meaning,description,customId}=this._parseMetadata(meta),message=createI18nMessageFactory(this.interpolationConfig,this.containerBlocks,this.retainEmptyTokens)(nodes,meaning,description,customId,visitNodeFn);return this._setMessageId(message,meta),this._setLegacyIds(message,meta),message}visitAllWithErrors(nodes){const result=nodes.map((node=>node.visit(this,null)));return new ParseTreeResult(result,this._errors)}visitElement(element){let message;if(function hasI18nAttrs(element){return element.attrs.some((attr=>isI18nAttribute(attr.name)))}(element)){this.hasI18nMeta=!0;const attrs=[],attrsMeta={};for(const attr of element.attrs)if(attr.name===I18N_ATTR){const i18n=element.i18n||attr.value,originalNodeMap=new Map,trimmedNodes=this.preserveSignificantWhitespace?element.children:visitAllWithSiblings(new WhitespaceVisitor(!1,originalNodeMap),element.children);message=this._generateI18nMessage(trimmedNodes,i18n,setI18nRefs(originalNodeMap)),0===message.nodes.length&&(message=void 0),element.i18n=message}else if(attr.name.startsWith(I18N_ATTR_PREFIX)){const name=attr.name.slice(I18N_ATTR_PREFIX.length);tagName=element.name,propName=name,tagName=tagName.toLowerCase(),propName=propName.toLowerCase(),TRUSTED_TYPES_SINKS.has(tagName+"|"+propName)||TRUSTED_TYPES_SINKS.has("*|"+propName)?this._reportError(attr,`Translating attribute '${name}' is disallowed for security reasons.`):attrsMeta[name]=attr.value}else attrs.push(attr);if(Object.keys(attrsMeta).length)for(const attr of attrs){const meta=attrsMeta[attr.name];void 0!==meta&&attr.value&&(attr.i18n=this._generateI18nMessage([attr],attr.i18n||meta))}this.keepI18nAttrs||(element.attrs=attrs)}var tagName,propName;return visitAll(this,element.children,message),element}visitExpansion(expansion,currentMessage){let message;const meta=expansion.i18n;if(this.hasI18nMeta=!0,meta instanceof IcuPlaceholder){const name=meta.name;message=this._generateI18nMessage([expansion],meta);icuFromI18nMessage(message).name=name,null!==currentMessage&&(currentMessage.placeholderToMessage[name]=message)}else message=this._generateI18nMessage([expansion],currentMessage||meta);return expansion.i18n=message,expansion}visitText(text){return text}visitAttribute(attribute){return attribute}visitComment(comment){return comment}visitExpansionCase(expansionCase){return expansionCase}visitBlock(block,context){return visitAll(this,block.children,context),block}visitBlockParameter(parameter,context){return parameter}visitLetDeclaration(decl,context){return decl}_parseMetadata(meta){return"string"==typeof meta?function parseI18nMeta(meta=""){let customId,meaning,description;if(meta=meta.trim(),meta){const idIndex=meta.indexOf(I18N_ID_SEPARATOR),descIndex=meta.indexOf(I18N_MEANING_SEPARATOR);let meaningAndDesc;[meaningAndDesc,customId]=idIndex>-1?[meta.slice(0,idIndex),meta.slice(idIndex+2)]:[meta,""],[meaning,description]=descIndex>-1?[meaningAndDesc.slice(0,descIndex),meaningAndDesc.slice(descIndex+1)]:["",meaningAndDesc]}return{customId,meaning,description}}(meta):meta instanceof Message?meta:{}}_setMessageId(message,meta){message.id||(message.id=meta instanceof Message&&meta.id||decimalDigest(message,this.preserveSignificantWhitespace))}_setLegacyIds(message,meta){if(this.enableI18nLegacyMessageIdFormat)message.legacyIds=[computeDigest(message),computeDecimalDigest(message,this.preserveSignificantWhitespace)];else if("string"!=typeof meta){const previousMessage=meta instanceof Message?meta:meta instanceof IcuPlaceholder?meta.previousMessage:void 0;message.legacyIds=previousMessage?previousMessage.legacyIds:[]}}_reportError(node,msg){this._errors.push(new I18nError(node.sourceSpan,msg))}}const I18N_MEANING_SEPARATOR="|",I18N_ID_SEPARATOR="@@";const GOOG_GET_MSG="goog.getMsg";function createGoogleGetMsgStatements(variable$1,message,closureVar,placeholderValues){const messageString=function serializeI18nMessageForGetMsg(message){return message.nodes.map((node=>node.visit(serializerVisitor,null))).join("")}(message),args=[literal(messageString)];Object.keys(placeholderValues).length&&(args.push(mapLiteral(formatI18nPlaceholderNamesInMap(placeholderValues,!0),!0)),args.push(mapLiteral({original_code:literalMap(Object.keys(placeholderValues).map((param=>({key:formatI18nPlaceholderName(param),quoted:!0,value:message.placeholders[param]?literal(message.placeholders[param].sourceSpan.toString()):literal(message.placeholderToMessage[param].nodes.map((node=>node.sourceSpan.toString())).join(""))}))))})));const googGetMsgStmt=closureVar.set(variable(GOOG_GET_MSG).callFn(args)).toConstDecl();googGetMsgStmt.addLeadingComment(function i18nMetaToJSDoc(meta){const tags=[];return meta.description?tags.push({tagName:"desc",text:meta.description}):tags.push({tagName:"suppress",text:"{msgDescriptions}"}),meta.meaning&&tags.push({tagName:"meaning",text:meta.meaning}),jsDocComment(tags)}(message));return[googGetMsgStmt,new ExpressionStatement(variable$1.set(closureVar))]}const serializerVisitor=new class GetMsgSerializerVisitor{formatPh(value){return`{$${formatI18nPlaceholderName(value)}}`}visitText(text){return text.value}visitContainer(container){return container.children.map((child=>child.visit(this))).join("")}visitIcu(icu){return serializeIcuNode(icu)}visitTagPlaceholder(ph){return ph.isVoid?this.formatPh(ph.startName):`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitPlaceholder(ph){return this.formatPh(ph.name)}visitBlockPlaceholder(ph){return`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitIcuPlaceholder(ph,context){return this.formatPh(ph.name)}};function createLocalizeStatements(variable,message,params){const{messageParts,placeHolders}=function serializeI18nMessageForLocalize(message){const pieces=[],serializerVisitor=new LocalizeSerializerVisitor(message.placeholderToMessage,pieces);return message.nodes.forEach((node=>node.visit(serializerVisitor))),function processMessagePieces(pieces){const messageParts=[],placeHolders=[];pieces[0]instanceof PlaceholderPiece&&messageParts.push(createEmptyMessagePart(pieces[0].sourceSpan.start));for(let i=0;iparams[ph.text])),localizedString$1=localizedString(message,messageParts,placeHolders,expressions,sourceSpan),variableInitialization=variable.set(localizedString$1);return[new ExpressionStatement(variableInitialization)]}class LocalizeSerializerVisitor{constructor(placeholderToMessage,pieces){this.placeholderToMessage=placeholderToMessage,this.pieces=pieces}visitText(text){if(this.pieces[this.pieces.length-1]instanceof LiteralPiece)this.pieces[this.pieces.length-1].text+=text.value;else{const sourceSpan=new ParseSourceSpan(text.sourceSpan.fullStart,text.sourceSpan.end,text.sourceSpan.fullStart,text.sourceSpan.details);this.pieces.push(new LiteralPiece(text.value,sourceSpan))}}visitContainer(container){container.children.forEach((child=>child.visit(this)))}visitIcu(icu){this.pieces.push(new LiteralPiece(serializeIcuNode(icu),icu.sourceSpan))}visitTagPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.startName,ph.startSourceSpan??ph.sourceSpan)),ph.isVoid||(ph.children.forEach((child=>child.visit(this))),this.pieces.push(this.createPlaceholderPiece(ph.closeName,ph.endSourceSpan??ph.sourceSpan)))}visitPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.name,ph.sourceSpan))}visitBlockPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.startName,ph.startSourceSpan??ph.sourceSpan)),ph.children.forEach((child=>child.visit(this))),this.pieces.push(this.createPlaceholderPiece(ph.closeName,ph.endSourceSpan??ph.sourceSpan))}visitIcuPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.name,ph.sourceSpan,this.placeholderToMessage[ph.name]))}createPlaceholderPiece(name,sourceSpan,associatedMessage){return new PlaceholderPiece(formatI18nPlaceholderName(name,!1),sourceSpan,associatedMessage)}}function createEmptyMessagePart(location){return new LiteralPiece("",new ParseSourceSpan(location,location))}const NG_I18N_CLOSURE_MODE="ngI18nClosureMode",TRANSLATION_VAR_PREFIX="i18n_",I18N_ICU_MAPPING_PREFIX="I18N_EXP_",ESCAPE="�",CLOSURE_TRANSLATION_VAR_PREFIX="MSG_";function getTranslationConstPrefix(extra){return`${CLOSURE_TRANSLATION_VAR_PREFIX}${extra}`.toUpperCase()}function declareI18nVariable(variable){return new DeclareVarStmt(variable.name,void 0,INFERRED_TYPE,void 0,variable.sourceSpan)}function collectMessage(job,fileBasedI18nSuffix,messages,messageOp){const statements=[],subMessagePlaceholders=new Map;for(const subMessageId of messageOp.subMessages){const subMessage=messages.get(subMessageId),{mainVar:subMessageVar,statements:subMessageStatements}=collectMessage(job,fileBasedI18nSuffix,messages,subMessage);statements.push(...subMessageStatements);const subMessages=subMessagePlaceholders.get(subMessage.messagePlaceholder)??[];subMessages.push(subMessageVar),subMessagePlaceholders.set(subMessage.messagePlaceholder,subMessages)}!function addSubMessageParams(messageOp,subMessagePlaceholders){for(const[placeholder,subMessages]of subMessagePlaceholders)1===subMessages.length?messageOp.params.set(placeholder,subMessages[0]):(messageOp.params.set(placeholder,literal(`${ESCAPE}${I18N_ICU_MAPPING_PREFIX}${placeholder}${ESCAPE}`)),messageOp.postprocessingParams.set(placeholder,literalArr(subMessages)))}(messageOp,subMessagePlaceholders),messageOp.params=new Map([...messageOp.params.entries()].sort());const mainVar=variable(job.pool.uniqueName(TRANSLATION_VAR_PREFIX)),closureVar=function i18nGenerateClosureVar(pool,messageId,fileBasedI18nSuffix,useExternalIds){let name;const suffix=fileBasedI18nSuffix;if(useExternalIds){const prefix=getTranslationConstPrefix("EXTERNAL_"),uniqueSuffix=pool.uniqueName(suffix);name=`${prefix}${sanitizeIdentifier(messageId)}$$${uniqueSuffix}`}else{const prefix=getTranslationConstPrefix(suffix);name=pool.uniqueName(prefix)}return variable(name)}(job.pool,messageOp.message.id,fileBasedI18nSuffix,job.i18nUseExternalIds);let transformFn;if(messageOp.needsPostprocessing||messageOp.postprocessingParams.size>0){const formattedPostprocessingParams=formatI18nPlaceholderNamesInMap(Object.fromEntries([...messageOp.postprocessingParams.entries()].sort()),!1),extraTransformFnParams=[];messageOp.postprocessingParams.size>0&&extraTransformFnParams.push(mapLiteral(formattedPostprocessingParams,!0)),transformFn=expr=>importExpr(Identifiers.i18nPostprocess).callFn([expr,...extraTransformFnParams])}return statements.push(...function getTranslationDeclStmts(message,variable,closureVar,params,transformFn){const paramsObject=Object.fromEntries(params),statements=[declareI18nVariable(variable),ifStmt(createClosureModeGuard(),createGoogleGetMsgStatements(variable,message,closureVar,paramsObject),createLocalizeStatements(variable,message,formatI18nPlaceholderNamesInMap(paramsObject,!1)))];transformFn&&statements.push(new ExpressionStatement(variable.set(transformFn(variable))));return statements}(messageOp.message,mainVar,closureVar,messageOp.params,transformFn)),{mainVar,statements}}function createClosureModeGuard(){return typeofExpr(variable(NG_I18N_CLOSURE_MODE)).notIdentical(literal("undefined",STRING_TYPE)).and(variable(NG_I18N_CLOSURE_MODE))}function serializeLocalRefs(refs){const constRefs=[];for(const ref of refs)constRefs.push(literal(ref.name),literal(ref.target));return literalArr(constRefs)}function parse(value){const styles=[];let i=0,parenDepth=0,quote=0,valueStart=0,propStart=0,currentProp=null;for(;i0&&0===parenDepth&&0===quote){const styleVal=value.substring(valueStart,i-1).trim();styles.push(currentProp,styleVal),propStart=i,valueStart=0,currentProp=null}}}if(currentProp&&valueStart){const styleVal=value.slice(valueStart).trim();styles.push(currentProp,styleVal)}return styles}function hyphenate(value){return value.replace(/[a-z][A-Z]/g,(v=>v.charAt(0)+"-"+v.charAt(1))).toLowerCase()}function addNamesToView(unit,baseName,state,compatibility){null===unit.fnName&&(unit.fnName=unit.job.pool.uniqueName(sanitizeIdentifier(`${baseName}_${unit.job.fnSuffix}`),!1));const varNames=new Map;for(const op of unit.ops())switch(op.kind){case OpKind.Property:case OpKind.HostProperty:op.isAnimationTrigger&&(op.name="@"+op.name);break;case OpKind.Listener:if(null!==op.handlerFnName)break;if(!op.hostListener&&null===op.targetSlot.slot)throw new Error("Expected a slot to be assigned");let animation="";op.isAnimationListener&&(op.name=`@${op.name}.${op.animationPhase}`,animation="animation"),op.hostListener?op.handlerFnName=`${baseName}_${animation}${op.name}_HostBindingHandler`:op.handlerFnName=`${unit.fnName}_${op.tag.replace("-","_")}_${animation}${op.name}_${op.targetSlot.slot}_listener`,op.handlerFnName=sanitizeIdentifier(op.handlerFnName);break;case OpKind.TwoWayListener:if(null!==op.handlerFnName)break;if(null===op.targetSlot.slot)throw new Error("Expected a slot to be assigned");op.handlerFnName=sanitizeIdentifier(`${unit.fnName}_${op.tag.replace("-","_")}_${op.name}_${op.targetSlot.slot}_listener`);break;case OpKind.Variable:varNames.set(op.xref,getVariableName(unit,op.variable,state));break;case OpKind.RepeaterCreate:if(!(unit instanceof ViewCompilationUnit))throw new Error("AssertionError: must be compiling a component");if(null===op.handle.slot)throw new Error("Expected slot to be assigned");if(null!==op.emptyView){addNamesToView(unit.job.views.get(op.emptyView),`${baseName}_${op.functionNameSuffix}Empty_${op.handle.slot+2}`,state,compatibility)}addNamesToView(unit.job.views.get(op.xref),`${baseName}_${op.functionNameSuffix}_${op.handle.slot+1}`,state,compatibility);break;case OpKind.Projection:if(!(unit instanceof ViewCompilationUnit))throw new Error("AssertionError: must be compiling a component");if(null===op.handle.slot)throw new Error("Expected slot to be assigned");if(null!==op.fallbackView){addNamesToView(unit.job.views.get(op.fallbackView),`${baseName}_ProjectionFallback_${op.handle.slot}`,state,compatibility)}break;case OpKind.Template:if(!(unit instanceof ViewCompilationUnit))throw new Error("AssertionError: must be compiling a component");const childView=unit.job.views.get(op.xref);if(null===op.handle.slot)throw new Error("Expected slot to be assigned");addNamesToView(childView,`${baseName}${0===op.functionNameSuffix.length?"":`_${op.functionNameSuffix}`}_${op.handle.slot}`,state,compatibility);break;case OpKind.StyleProp:op.name=(name=op.name).startsWith("--")?name:hyphenate(name),compatibility&&(op.name=stripImportant(op.name));break;case OpKind.ClassProp:compatibility&&(op.name=stripImportant(op.name))}var name;for(const op of unit.ops())visitExpressionsInOp(op,(expr=>{if(expr instanceof ReadVariableExpr&&null===expr.name){if(!varNames.has(expr.xref))throw new Error(`Variable ${expr.xref} not yet named`);expr.name=varNames.get(expr.xref)}}))}function getVariableName(unit,variable,state){if(null===variable.name)switch(variable.kind){case SemanticVariableKind.Context:variable.name="ctx_r"+state.index++;break;case SemanticVariableKind.Identifier:if(unit.job.compatibility===CompatibilityMode.TemplateDefinitionBuilder){const compatPrefix="ctx"===variable.identifier?"i":"";variable.name=`${variable.identifier}_${compatPrefix}r${++state.index}`}else variable.name=`${variable.identifier}_i${state.index++}`;break;default:variable.name="_r"+ ++state.index}return variable.name}function stripImportant(name){const importantIndex=name.indexOf("!important");return importantIndex>-1?name.substring(0,importantIndex):name}function mergeNextContextsInOps(ops){for(const op of ops){if(!(op.kind===OpKind.Statement&&op.statement instanceof ExpressionStatement&&op.statement.expr instanceof NextContextExpr))continue;const mergeSteps=op.statement.expr.steps;let tryToMerge=!0;for(let candidate=op.next;candidate.kind!==OpKind.ListEnd&&tryToMerge;candidate=candidate.next)visitExpressionsInOp(candidate,((expr,flags)=>{if(!isIrExpression(expr))return expr;if(tryToMerge&&!(flags&VisitorContextFlag.InChildOperation))switch(expr.kind){case ExpressionKind.NextContext:expr.steps+=mergeSteps,OpList.remove(op),tryToMerge=!1;break;case ExpressionKind.GetCurrentView:case ExpressionKind.Reference:case ExpressionKind.ContextLetReference:tryToMerge=!1}}))}}function lookupElement(elements,xref){const el=elements.get(xref);if(void 0===el)throw new Error("All attributes should have an element-like target.");return el}function kindTest(kind){return op=>op.kind===kind}function kindWithInterpolationTest(kind,interpolation){return op=>op.kind===kind&&interpolation===op.expression instanceof Interpolation}const CREATE_ORDERING=[{test:op=>op.kind===OpKind.Listener&&op.hostListener&&op.isAnimationListener},{test:function basicListenerKindTest(op){return op.kind===OpKind.Listener&&!(op.hostListener&&op.isAnimationListener)||op.kind===OpKind.TwoWayListener}}],UPDATE_ORDERING=[{test:kindTest(OpKind.StyleMap),transform:keepLast},{test:kindTest(OpKind.ClassMap),transform:keepLast},{test:kindTest(OpKind.StyleProp)},{test:kindTest(OpKind.ClassProp)},{test:kindWithInterpolationTest(OpKind.Attribute,!0)},{test:kindWithInterpolationTest(OpKind.Property,!0)},{test:function nonInterpolationPropertyKindTest(op){return!(op.kind!==OpKind.Property&&op.kind!==OpKind.TwoWayProperty||op.expression instanceof Interpolation)}},{test:kindWithInterpolationTest(OpKind.Attribute,!1)}],UPDATE_HOST_ORDERING=[{test:kindWithInterpolationTest(OpKind.HostProperty,!0)},{test:kindWithInterpolationTest(OpKind.HostProperty,!1)},{test:kindTest(OpKind.Attribute)},{test:kindTest(OpKind.StyleMap),transform:keepLast},{test:kindTest(OpKind.ClassMap),transform:keepLast},{test:kindTest(OpKind.StyleProp)},{test:kindTest(OpKind.ClassProp)}],handledOpKinds=new Set([OpKind.Listener,OpKind.TwoWayListener,OpKind.StyleMap,OpKind.ClassMap,OpKind.StyleProp,OpKind.ClassProp,OpKind.Property,OpKind.TwoWayProperty,OpKind.HostProperty,OpKind.Attribute]);function orderWithin(opList,ordering){let opsToOrder=[],firstTargetInGroup=null;for(const op of opList){const currentTarget=hasDependsOnSlotContextTrait(op)?op.target:null;(!handledOpKinds.has(op.kind)||currentTarget!==firstTargetInGroup&&null!==firstTargetInGroup&&null!==currentTarget)&&(OpList.insertBefore(reorder(opsToOrder,ordering),op),opsToOrder=[],firstTargetInGroup=null),handledOpKinds.has(op.kind)&&(opsToOrder.push(op),OpList.remove(op),firstTargetInGroup=currentTarget??firstTargetInGroup)}opList.push(reorder(opsToOrder,ordering))}function reorder(ops,ordering){const groups=Array.from(ordering,(()=>new Array));for(const op of ops){groups[ordering.findIndex((o=>o.test(op)))].push(op)}return groups.flatMap(((group,i)=>{const transform=ordering[i].transform;return transform?transform(group):group}))}function keepLast(ops){return ops.slice(ops.length-1)}function lookupInXrefMap(map,xref){const el=map.get(xref);if(void 0===el)throw new Error("All attributes should have an slottable target.");return el}function processPipeBindingsInView(unit){for(const updateOp of unit.update)visitExpressionsInOp(updateOp,((expr,flags)=>{if(isIrExpression(expr)&&expr.kind===ExpressionKind.PipeBinding){if(flags&VisitorContextFlag.InChildOperation)throw new Error("AssertionError: pipe bindings should not appear in child expressions");if(unit.job.compatibility){if(null==updateOp.target)throw new Error("AssertionError: expected slot handle to be assigned for pipe creation");addPipeToCreationBlock(unit,updateOp.target,expr)}else unit.create.push(createPipeOp(expr.target,expr.targetSlot,expr.name))}}))}function addPipeToCreationBlock(unit,afterTargetXref,binding){for(let op=unit.create.head.next;op.kind!==OpKind.ListEnd;op=op.next){if(!hasConsumesSlotTrait(op))continue;if(op.xref!==afterTargetXref)continue;for(;op.next.kind===OpKind.Pipe;)op=op.next;const pipe=createPipeOp(binding.target,binding.targetSlot,binding.name);return void OpList.insertBefore(pipe,op.next)}throw new Error(`AssertionError: unable to find insertion point for pipe ${binding.name}`)}function propagateI18nBlocksToTemplates(unit,subTemplateIndex){let i18nBlock=null;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:op.subTemplateIndex=0===subTemplateIndex?null:subTemplateIndex,i18nBlock=op;break;case OpKind.I18nEnd:null===i18nBlock.subTemplateIndex&&(subTemplateIndex=0),i18nBlock=null;break;case OpKind.Template:subTemplateIndex=propagateI18nBlocksForView(unit.job.views.get(op.xref),i18nBlock,op.i18nPlaceholder,subTemplateIndex);break;case OpKind.RepeaterCreate:subTemplateIndex=propagateI18nBlocksForView(unit.job.views.get(op.xref),i18nBlock,op.i18nPlaceholder,subTemplateIndex),null!==op.emptyView&&(subTemplateIndex=propagateI18nBlocksForView(unit.job.views.get(op.emptyView),i18nBlock,op.emptyI18nPlaceholder,subTemplateIndex))}return subTemplateIndex}function propagateI18nBlocksForView(view,i18nBlock,i18nPlaceholder,subTemplateIndex){if(void 0!==i18nPlaceholder){if(null===i18nBlock)throw Error("Expected template with i18n placeholder to be in an i18n block.");subTemplateIndex++,function wrapTemplateWithI18n(unit,parentI18n){if(unit.create.head.next?.kind!==OpKind.I18nStart){const id=unit.job.allocateXrefId();OpList.insertAfter(createI18nStartOp(id,parentI18n.message,parentI18n.root,null),unit.create.head),OpList.insertBefore(createI18nEndOp(id,null),unit.create.tail)}}(view,i18nBlock)}return propagateI18nBlocksToTemplates(view,subTemplateIndex)}class PureFunctionConstant extends GenericKeyFn{constructor(numArgs){super(),this.numArgs=numArgs}keyOf(expr){return expr instanceof PureFunctionParameterExpr?`param(${expr.index})`:super.keyOf(expr)}toSharedConstantDeclaration(declName,keyExpr){const fnParams=[];for(let idx=0;idxexpr instanceof PureFunctionParameterExpr?variable("a"+expr.index):expr),VisitorContextFlag.None);return new DeclareVarStmt(declName,new ArrowFunctionExpr(fnParams,returnExpr),void 0,StmtModifier.Final)}}function transformLiteralArray(expr){const derivedEntries=[],nonConstantArgs=[];for(const entry of expr.entries)if(entry.isConstant())derivedEntries.push(entry);else{const idx=nonConstantArgs.length;nonConstantArgs.push(entry),derivedEntries.push(new PureFunctionParameterExpr(idx))}return new PureFunctionExpr(literalArr(derivedEntries),nonConstantArgs)}function transformLiteralMap(expr){let derivedEntries=[];const nonConstantArgs=[];for(const entry of expr.entries)if(entry.value.isConstant())derivedEntries.push(entry);else{const idx=nonConstantArgs.length;nonConstantArgs.push(entry.value),derivedEntries.push(new LiteralMapEntry(entry.key,new PureFunctionParameterExpr(idx),entry.quoted))}return new PureFunctionExpr(literalMap(derivedEntries),nonConstantArgs)}function element(slot,tag,constIndex,localRefIndex,sourceSpan){return elementOrContainerBase(Identifiers.element,slot,tag,constIndex,localRefIndex,sourceSpan)}function elementOrContainerBase(instruction,slot,tag,constIndex,localRefIndex,sourceSpan){const args=[literal(slot)];return null!==tag&&args.push(literal(tag)),null!==localRefIndex?args.push(literal(constIndex),literal(localRefIndex)):null!==constIndex&&args.push(literal(constIndex)),call(instruction,args,sourceSpan)}function elementEnd(sourceSpan){return call(Identifiers.elementEnd,[],sourceSpan)}function elementContainerStart(slot,constIndex,localRefIndex,sourceSpan){return elementOrContainerBase(Identifiers.elementContainerStart,slot,null,constIndex,localRefIndex,sourceSpan)}function elementContainer(slot,constIndex,localRefIndex,sourceSpan){return elementOrContainerBase(Identifiers.elementContainer,slot,null,constIndex,localRefIndex,sourceSpan)}function template(slot,templateFnRef,decls,vars,tag,constIndex,localRefs,sourceSpan){const args=[literal(slot),templateFnRef,literal(decls),literal(vars),literal(tag),literal(constIndex)];for(null!==localRefs&&(args.push(literal(localRefs)),args.push(importExpr(Identifiers.templateRefExtractor)));args[args.length-1].isEquivalent(NULL_EXPR);)args.pop();return call(Identifiers.templateCreate,args,sourceSpan)}function listener(name,handlerFn,eventTargetResolver,syntheticHost,sourceSpan){const args=[literal(name),handlerFn];return null!==eventTargetResolver&&(args.push(literal(!1)),args.push(importExpr(eventTargetResolver))),call(syntheticHost?Identifiers.syntheticHostListener:Identifiers.listener,args,sourceSpan)}function twoWayBindingSet(target,value){return importExpr(Identifiers.twoWayBindingSet).callFn([target,value])}function twoWayListener(name,handlerFn,sourceSpan){return call(Identifiers.twoWayListener,[literal(name),handlerFn],sourceSpan)}function pipe(slot,name){return call(Identifiers.pipe,[literal(slot),literal(name)],null)}function text(slot,initialValue,sourceSpan){const args=[literal(slot,null)];return""!==initialValue&&args.push(literal(initialValue)),call(Identifiers.text,args,sourceSpan)}function defer(selfSlot,primarySlot,dependencyResolverFn,loadingSlot,placeholderSlot,errorSlot,loadingConfig,placeholderConfig,enableTimerScheduling,sourceSpan){const args=[literal(selfSlot),literal(primarySlot),dependencyResolverFn??literal(null),literal(loadingSlot),literal(placeholderSlot),literal(errorSlot),loadingConfig??literal(null),placeholderConfig??literal(null),enableTimerScheduling?importExpr(Identifiers.deferEnableTimerScheduling):literal(null)];let expr;for(;null!==(expr=args[args.length-1])&&expr instanceof LiteralExpr&&null===expr.value;)args.pop();return call(Identifiers.defer,args,sourceSpan)}const deferTriggerToR3TriggerInstructionsMap=new Map([[DeferTriggerKind.Idle,[Identifiers.deferOnIdle,Identifiers.deferPrefetchOnIdle]],[DeferTriggerKind.Immediate,[Identifiers.deferOnImmediate,Identifiers.deferPrefetchOnImmediate]],[DeferTriggerKind.Timer,[Identifiers.deferOnTimer,Identifiers.deferPrefetchOnTimer]],[DeferTriggerKind.Hover,[Identifiers.deferOnHover,Identifiers.deferPrefetchOnHover]],[DeferTriggerKind.Interaction,[Identifiers.deferOnInteraction,Identifiers.deferPrefetchOnInteraction]],[DeferTriggerKind.Viewport,[Identifiers.deferOnViewport,Identifiers.deferPrefetchOnViewport]]]);function deferOn(trigger,args,prefetch,sourceSpan){const instructions=deferTriggerToR3TriggerInstructionsMap.get(trigger);if(void 0===instructions)throw new Error(`Unable to determine instruction for trigger ${trigger}`);return call(prefetch?instructions[1]:instructions[0],args.map((a=>literal(a))),sourceSpan)}function projection(slot,projectionSlotIndex,attributes,fallbackFnName,fallbackDecls,fallbackVars,sourceSpan){const args=[literal(slot)];return 0===projectionSlotIndex&&null===attributes&&null===fallbackFnName||(args.push(literal(projectionSlotIndex)),null!==attributes&&args.push(attributes),null!==fallbackFnName&&(null===attributes&&args.push(literal(null)),args.push(variable(fallbackFnName),literal(fallbackDecls),literal(fallbackVars)))),call(Identifiers.projection,args,sourceSpan)}function i18nStart(slot,constIndex,subTemplateIndex,sourceSpan){const args=[literal(slot),literal(constIndex)];return null!==subTemplateIndex&&args.push(literal(subTemplateIndex)),call(Identifiers.i18nStart,args,sourceSpan)}function repeaterCreate(slot,viewFnName,decls,vars,tag,constIndex,trackByFn,trackByUsesComponentInstance,emptyViewFnName,emptyDecls,emptyVars,emptyTag,emptyConstIndex,sourceSpan){const args=[literal(slot),variable(viewFnName),literal(decls),literal(vars),literal(tag),literal(constIndex),trackByFn];return(trackByUsesComponentInstance||null!==emptyViewFnName)&&(args.push(literal(trackByUsesComponentInstance)),null!==emptyViewFnName&&(args.push(variable(emptyViewFnName),literal(emptyDecls),literal(emptyVars)),null===emptyTag&&null===emptyConstIndex||args.push(literal(emptyTag)),null!==emptyConstIndex&&args.push(literal(emptyConstIndex)))),call(Identifiers.repeaterCreate,args,sourceSpan)}function repeater(collection,sourceSpan){return call(Identifiers.repeater,[collection],sourceSpan)}function deferWhen(prefetch,expr,sourceSpan){return call(prefetch?Identifiers.deferPrefetchWhen:Identifiers.deferWhen,[expr],sourceSpan)}function declareLet(slot,sourceSpan){return call(Identifiers.declareLet,[literal(slot)],sourceSpan)}function i18n(slot,constIndex,subTemplateIndex,sourceSpan){const args=[literal(slot),literal(constIndex)];return subTemplateIndex&&args.push(literal(subTemplateIndex)),call(Identifiers.i18n,args,sourceSpan)}function i18nAttributes(slot,i18nAttributesConfig){const args=[literal(slot),literal(i18nAttributesConfig)];return call(Identifiers.i18nAttributes,args,null)}function property(name,expression,sanitizer,sourceSpan){const args=[literal(name),expression];return null!==sanitizer&&args.push(sanitizer),call(Identifiers.property,args,sourceSpan)}function twoWayProperty(name,expression,sanitizer,sourceSpan){const args=[literal(name),expression];return null!==sanitizer&&args.push(sanitizer),call(Identifiers.twoWayProperty,args,sourceSpan)}function attribute(name,expression,sanitizer,namespace){const args=[literal(name),expression];return null===sanitizer&&null===namespace||args.push(sanitizer??literal(null)),null!==namespace&&args.push(literal(namespace)),call(Identifiers.attribute,args,null)}function styleProp(name,expression,unit,sourceSpan){const args=[literal(name),expression];return null!==unit&&args.push(literal(unit)),call(Identifiers.styleProp,args,sourceSpan)}function classProp(name,expression,sourceSpan){return call(Identifiers.classProp,[literal(name),expression],sourceSpan)}function styleMap(expression,sourceSpan){return call(Identifiers.styleMap,[expression],sourceSpan)}function classMap(expression,sourceSpan){return call(Identifiers.classMap,[expression],sourceSpan)}const PIPE_BINDINGS=[Identifiers.pipeBind1,Identifiers.pipeBind2,Identifiers.pipeBind3,Identifiers.pipeBind4];function textInterpolate(strings,expressions,sourceSpan){const interpolationArgs=collateInterpolationArgs(strings,expressions);return callVariadicInstruction(TEXT_INTERPOLATE_CONFIG,[],interpolationArgs,[],sourceSpan)}function i18nExp(expr,sourceSpan){return call(Identifiers.i18nExp,[expr],sourceSpan)}function i18nApply(slot,sourceSpan){return call(Identifiers.i18nApply,[literal(slot)],sourceSpan)}function propertyInterpolate(name,strings,expressions,sanitizer,sourceSpan){const interpolationArgs=collateInterpolationArgs(strings,expressions),extraArgs=[];return null!==sanitizer&&extraArgs.push(sanitizer),callVariadicInstruction(PROPERTY_INTERPOLATE_CONFIG,[literal(name)],interpolationArgs,extraArgs,sourceSpan)}function attributeInterpolate(name,strings,expressions,sanitizer,sourceSpan){const interpolationArgs=collateInterpolationArgs(strings,expressions),extraArgs=[];return null!==sanitizer&&extraArgs.push(sanitizer),callVariadicInstruction(ATTRIBUTE_INTERPOLATE_CONFIG,[literal(name)],interpolationArgs,extraArgs,sourceSpan)}function stylePropInterpolate(name,strings,expressions,unit,sourceSpan){const interpolationArgs=collateInterpolationArgs(strings,expressions),extraArgs=[];return null!==unit&&extraArgs.push(literal(unit)),callVariadicInstruction(STYLE_PROP_INTERPOLATE_CONFIG,[literal(name)],interpolationArgs,extraArgs,sourceSpan)}function styleMapInterpolate(strings,expressions,sourceSpan){const interpolationArgs=collateInterpolationArgs(strings,expressions);return callVariadicInstruction(STYLE_MAP_INTERPOLATE_CONFIG,[],interpolationArgs,[],sourceSpan)}function classMapInterpolate(strings,expressions,sourceSpan){const interpolationArgs=collateInterpolationArgs(strings,expressions);return callVariadicInstruction(CLASS_MAP_INTERPOLATE_CONFIG,[],interpolationArgs,[],sourceSpan)}function hostProperty(name,expression,sanitizer,sourceSpan){const args=[literal(name),expression];return null!==sanitizer&&args.push(sanitizer),call(Identifiers.hostProperty,args,sourceSpan)}function syntheticHostProperty(name,expression,sourceSpan){return call(Identifiers.syntheticHostProperty,[literal(name),expression],sourceSpan)}function collateInterpolationArgs(strings,expressions){if(strings.length<1||expressions.length!==strings.length-1)throw new Error("AssertionError: expected specific shape of args for strings/expressions in interpolation");const interpolationArgs=[];if(1===expressions.length&&""===strings[0]&&""===strings[1])interpolationArgs.push(expressions[0]);else{let idx;for(idx=0;idx{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},PROPERTY_INTERPOLATE_CONFIG={constant:[Identifiers.propertyInterpolate,Identifiers.propertyInterpolate1,Identifiers.propertyInterpolate2,Identifiers.propertyInterpolate3,Identifiers.propertyInterpolate4,Identifiers.propertyInterpolate5,Identifiers.propertyInterpolate6,Identifiers.propertyInterpolate7,Identifiers.propertyInterpolate8],variable:Identifiers.propertyInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},STYLE_PROP_INTERPOLATE_CONFIG={constant:[Identifiers.styleProp,Identifiers.stylePropInterpolate1,Identifiers.stylePropInterpolate2,Identifiers.stylePropInterpolate3,Identifiers.stylePropInterpolate4,Identifiers.stylePropInterpolate5,Identifiers.stylePropInterpolate6,Identifiers.stylePropInterpolate7,Identifiers.stylePropInterpolate8],variable:Identifiers.stylePropInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},ATTRIBUTE_INTERPOLATE_CONFIG={constant:[Identifiers.attribute,Identifiers.attributeInterpolate1,Identifiers.attributeInterpolate2,Identifiers.attributeInterpolate3,Identifiers.attributeInterpolate4,Identifiers.attributeInterpolate5,Identifiers.attributeInterpolate6,Identifiers.attributeInterpolate7,Identifiers.attributeInterpolate8],variable:Identifiers.attributeInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},STYLE_MAP_INTERPOLATE_CONFIG={constant:[Identifiers.styleMap,Identifiers.styleMapInterpolate1,Identifiers.styleMapInterpolate2,Identifiers.styleMapInterpolate3,Identifiers.styleMapInterpolate4,Identifiers.styleMapInterpolate5,Identifiers.styleMapInterpolate6,Identifiers.styleMapInterpolate7,Identifiers.styleMapInterpolate8],variable:Identifiers.styleMapInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},CLASS_MAP_INTERPOLATE_CONFIG={constant:[Identifiers.classMap,Identifiers.classMapInterpolate1,Identifiers.classMapInterpolate2,Identifiers.classMapInterpolate3,Identifiers.classMapInterpolate4,Identifiers.classMapInterpolate5,Identifiers.classMapInterpolate6,Identifiers.classMapInterpolate7,Identifiers.classMapInterpolate8],variable:Identifiers.classMapInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},PURE_FUNCTION_CONFIG={constant:[Identifiers.pureFunction0,Identifiers.pureFunction1,Identifiers.pureFunction2,Identifiers.pureFunction3,Identifiers.pureFunction4,Identifiers.pureFunction5,Identifiers.pureFunction6,Identifiers.pureFunction7,Identifiers.pureFunction8],variable:Identifiers.pureFunctionV,mapping:n=>n};function callVariadicInstructionExpr(config,baseArgs,interpolationArgs,extraArgs,sourceSpan){const n=config.mapping(interpolationArgs.length);if(n1?[literal(delta)]:[],sourceSpan)));break;case OpKind.Property:op.expression instanceof Interpolation?OpList.replace(op,propertyInterpolate(op.name,op.expression.strings,op.expression.expressions,op.sanitizer,op.sourceSpan)):OpList.replace(op,property(op.name,op.expression,op.sanitizer,op.sourceSpan));break;case OpKind.TwoWayProperty:OpList.replace(op,twoWayProperty(op.name,op.expression,op.sanitizer,op.sourceSpan));break;case OpKind.StyleProp:op.expression instanceof Interpolation?OpList.replace(op,stylePropInterpolate(op.name,op.expression.strings,op.expression.expressions,op.unit,op.sourceSpan)):OpList.replace(op,styleProp(op.name,op.expression,op.unit,op.sourceSpan));break;case OpKind.ClassProp:OpList.replace(op,classProp(op.name,op.expression,op.sourceSpan));break;case OpKind.StyleMap:op.expression instanceof Interpolation?OpList.replace(op,styleMapInterpolate(op.expression.strings,op.expression.expressions,op.sourceSpan)):OpList.replace(op,styleMap(op.expression,op.sourceSpan));break;case OpKind.ClassMap:op.expression instanceof Interpolation?OpList.replace(op,classMapInterpolate(op.expression.strings,op.expression.expressions,op.sourceSpan)):OpList.replace(op,classMap(op.expression,op.sourceSpan));break;case OpKind.I18nExpression:OpList.replace(op,i18nExp(op.expression,op.sourceSpan));break;case OpKind.I18nApply:OpList.replace(op,i18nApply(op.handle.slot,op.sourceSpan));break;case OpKind.InterpolateText:OpList.replace(op,textInterpolate(op.interpolation.strings,op.interpolation.expressions,op.sourceSpan));break;case OpKind.Attribute:op.expression instanceof Interpolation?OpList.replace(op,attributeInterpolate(op.name,op.expression.strings,op.expression.expressions,op.sanitizer,op.sourceSpan)):OpList.replace(op,attribute(op.name,op.expression,op.sanitizer,op.namespace));break;case OpKind.HostProperty:if(op.expression instanceof Interpolation)throw new Error("not yet handled");op.isAnimationTrigger?OpList.replace(op,syntheticHostProperty(op.name,op.expression,op.sourceSpan)):OpList.replace(op,hostProperty(op.name,op.expression,op.sanitizer,op.sourceSpan));break;case OpKind.Variable:if(null===op.variable.name)throw new Error(`AssertionError: unnamed variable ${op.xref}`);OpList.replace(op,createStatementOp(new DeclareVarStmt(op.variable.name,op.initializer,void 0,StmtModifier.Final)));break;case OpKind.Conditional:if(null===op.processed)throw new Error("Conditional test was not set.");OpList.replace(op,conditional(op.processed,op.contextValue,op.sourceSpan));break;case OpKind.Repeater:OpList.replace(op,repeater(op.collection,op.sourceSpan));break;case OpKind.DeferWhen:OpList.replace(op,deferWhen(op.prefetch,op.expr,op.sourceSpan));break;case OpKind.StoreLet:throw new Error(`AssertionError: unexpected storeLet ${op.declaredName}`);case OpKind.Statement:break;default:throw new Error(`AssertionError: Unsupported reification of update op ${OpKind[op.kind]}`)}var delta,sourceSpan}function reifyIrExpression(expr){if(!isIrExpression(expr))return expr;switch(expr.kind){case ExpressionKind.NextContext:return function nextContext(steps){return importExpr(Identifiers.nextContext).callFn(1===steps?[]:[literal(steps)])}(expr.steps);case ExpressionKind.Reference:return function reference(slot){return importExpr(Identifiers.reference).callFn([literal(slot)])}(expr.targetSlot.slot+1+expr.offset);case ExpressionKind.LexicalRead:throw new Error(`AssertionError: unresolved LexicalRead of ${expr.name}`);case ExpressionKind.TwoWayBindingSet:throw new Error("AssertionError: unresolved TwoWayBindingSet");case ExpressionKind.RestoreView:if("number"==typeof expr.view)throw new Error("AssertionError: unresolved RestoreView");return function restoreView(savedView){return importExpr(Identifiers.restoreView).callFn([savedView])}(expr.view);case ExpressionKind.ResetView:return function resetView(returnValue){return importExpr(Identifiers.resetView).callFn([returnValue])}(expr.expr);case ExpressionKind.GetCurrentView:return function getCurrentView(){return importExpr(Identifiers.getCurrentView).callFn([])}();case ExpressionKind.ReadVariable:if(null===expr.name)throw new Error(`Read of unnamed variable ${expr.xref}`);return variable(expr.name);case ExpressionKind.ReadTemporaryExpr:if(null===expr.name)throw new Error(`Read of unnamed temporary ${expr.xref}`);return variable(expr.name);case ExpressionKind.AssignTemporaryExpr:if(null===expr.name)throw new Error(`Assign of unnamed temporary ${expr.xref}`);return variable(expr.name).set(expr.expr);case ExpressionKind.PureFunctionExpr:if(null===expr.fn)throw new Error("AssertionError: expected PureFunctions to have been extracted");return function pureFunction(varOffset,fn,args){return callVariadicInstructionExpr(PURE_FUNCTION_CONFIG,[literal(varOffset),fn],args,[],null)}(expr.varOffset,expr.fn,expr.args);case ExpressionKind.PureFunctionParameterExpr:throw new Error("AssertionError: expected PureFunctionParameterExpr to have been extracted");case ExpressionKind.PipeBinding:return function pipeBind(slot,varOffset,args){if(args.length<1||args.length>PIPE_BINDINGS.length)throw new Error("pipeBind() argument count out of bounds");return importExpr(PIPE_BINDINGS[args.length-1]).callFn([literal(slot),literal(varOffset),...args])}(expr.targetSlot.slot,expr.varOffset,expr.args);case ExpressionKind.PipeBindingVariadic:return function pipeBindV(slot,varOffset,args){return importExpr(Identifiers.pipeBindV).callFn([literal(slot),literal(varOffset),args])}(expr.targetSlot.slot,expr.varOffset,expr.args);case ExpressionKind.SlotLiteralExpr:return literal(expr.slot.slot);case ExpressionKind.ContextLetReference:return function readContextLet(slot){return importExpr(Identifiers.readContextLet).callFn([literal(slot)])}(expr.targetSlot.slot);case ExpressionKind.StoreLet:return function storeLet(value,sourceSpan){return importExpr(Identifiers.storeLet).callFn([value],sourceSpan)}(expr.value,expr.sourceSpan);default:throw new Error(`AssertionError: Unsupported reification of ir.Expression kind: ${ExpressionKind[expr.kind]}`)}}function reifyListenerHandler(unit,name,handlerOps,consumesDollarEvent){reifyUpdateOperations(0,handlerOps);const handlerStmts=[];for(const op of handlerOps){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected reified statements, but found op ${OpKind[op.kind]}`);handlerStmts.push(op.statement)}const params=[];return consumesDollarEvent&¶ms.push(new FnParam("$event")),fn(params,handlerStmts,void 0,void 0,name)}function processLexicalScope$1(view,ops){const scope=new Map;scope.set(view.xref,variable("ctx"));for(const op of ops)switch(op.kind){case OpKind.Variable:if(op.variable.kind===SemanticVariableKind.Context)scope.set(op.variable.view,new ReadVariableExpr(op.xref));break;case OpKind.Listener:case OpKind.TwoWayListener:processLexicalScope$1(view,op.handlerOps)}view===view.job.root&&scope.set(view.xref,variable("ctx"));for(const op of ops)transformExpressionsInOp(op,(expr=>{if(expr instanceof ContextExpr){if(!scope.has(expr.view))throw new Error(`No context found for reference to view ${expr.view} from view ${view.xref}`);return scope.get(expr.view)}return expr}),VisitorContextFlag.None)}function transformDollarEvent(ops){for(const op of ops)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||transformExpressionsInOp(op,(expr=>expr instanceof LexicalReadExpr&&"$event"===expr.name?(op.kind===OpKind.Listener&&(op.consumesDollarEvent=!0),new ReadVarExpr(expr.name)):expr),VisitorContextFlag.InChildOperation)}function resolvePlaceholdersForView(job,unit,i18nContexts,elements,pendingStructuralDirective){let currentOps=null,pendingStructuralDirectiveCloses=new Map;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:if(!op.context)throw Error("Could not find i18n context for i18n op");currentOps={i18nBlock:op,i18nContext:i18nContexts.get(op.context)};break;case OpKind.I18nEnd:currentOps=null;break;case OpKind.ElementStart:if(void 0!==op.i18nPlaceholder){if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordElementStart(op,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective&&op.i18nPlaceholder.closeName&&pendingStructuralDirectiveCloses.set(op.xref,pendingStructuralDirective),pendingStructuralDirective=void 0}break;case OpKind.ElementEnd:const startOp=elements.get(op.xref);if(startOp&&void 0!==startOp.i18nPlaceholder){if(null===currentOps)throw Error("AssertionError: i18n tag placeholder should only occur inside an i18n block");recordElementClose(startOp,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirectiveCloses.get(op.xref)),pendingStructuralDirectiveCloses.delete(op.xref)}break;case OpKind.Projection:if(void 0!==op.i18nPlaceholder){if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordElementStart(op,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),recordElementClose(op,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0}break;case OpKind.Template:const view=job.views.get(op.xref);if(void 0===op.i18nPlaceholder)resolvePlaceholdersForView(job,view,i18nContexts,elements);else{if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");op.templateKind===TemplateKind.Structural?resolvePlaceholdersForView(job,view,i18nContexts,elements,op):(recordTemplateStart(job,view,op.handle.slot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),resolvePlaceholdersForView(job,view,i18nContexts,elements),recordTemplateClose(job,view,op.handle.slot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0)}break;case OpKind.RepeaterCreate:if(void 0!==pendingStructuralDirective)throw Error("AssertionError: Unexpected structural directive associated with @for block");const forSlot=op.handle.slot+1,forView=job.views.get(op.xref);if(void 0===op.i18nPlaceholder)resolvePlaceholdersForView(job,forView,i18nContexts,elements);else{if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordTemplateStart(job,forView,forSlot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),resolvePlaceholdersForView(job,forView,i18nContexts,elements),recordTemplateClose(job,forView,forSlot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0}if(null!==op.emptyView){const emptySlot=op.handle.slot+2,emptyView=job.views.get(op.emptyView);if(void 0===op.emptyI18nPlaceholder)resolvePlaceholdersForView(job,emptyView,i18nContexts,elements);else{if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordTemplateStart(job,emptyView,emptySlot,op.emptyI18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),resolvePlaceholdersForView(job,emptyView,i18nContexts,elements),recordTemplateClose(job,emptyView,emptySlot,op.emptyI18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0}}}}function recordElementStart(op,i18nContext,i18nBlock,structuralDirective){const{startName,closeName}=op.i18nPlaceholder;let flags=I18nParamValueFlags.ElementTag|I18nParamValueFlags.OpenTag,value=op.handle.slot;void 0!==structuralDirective&&(flags|=I18nParamValueFlags.TemplateTag,value={element:value,template:structuralDirective.handle.slot}),closeName||(flags|=I18nParamValueFlags.CloseTag),addParam(i18nContext.params,startName,value,i18nBlock.subTemplateIndex,flags)}function recordElementClose(op,i18nContext,i18nBlock,structuralDirective){const{closeName}=op.i18nPlaceholder;if(closeName){let flags=I18nParamValueFlags.ElementTag|I18nParamValueFlags.CloseTag,value=op.handle.slot;void 0!==structuralDirective&&(flags|=I18nParamValueFlags.TemplateTag,value={element:value,template:structuralDirective.handle.slot}),addParam(i18nContext.params,closeName,value,i18nBlock.subTemplateIndex,flags)}}function recordTemplateStart(job,view,slot,i18nPlaceholder,i18nContext,i18nBlock,structuralDirective){let{startName,closeName}=i18nPlaceholder,flags=I18nParamValueFlags.TemplateTag|I18nParamValueFlags.OpenTag;closeName||(flags|=I18nParamValueFlags.CloseTag),void 0!==structuralDirective&&addParam(i18nContext.params,startName,structuralDirective.handle.slot,i18nBlock.subTemplateIndex,flags),addParam(i18nContext.params,startName,slot,getSubTemplateIndexForTemplateTag(job,i18nBlock,view),flags)}function recordTemplateClose(job,view,slot,i18nPlaceholder,i18nContext,i18nBlock,structuralDirective){const{closeName}=i18nPlaceholder,flags=I18nParamValueFlags.TemplateTag|I18nParamValueFlags.CloseTag;closeName&&(addParam(i18nContext.params,closeName,slot,getSubTemplateIndexForTemplateTag(job,i18nBlock,view),flags),void 0!==structuralDirective&&addParam(i18nContext.params,closeName,structuralDirective.handle.slot,i18nBlock.subTemplateIndex,flags))}function getSubTemplateIndexForTemplateTag(job,i18nOp,view){for(const childOp of view.create)if(childOp.kind===OpKind.I18nStart)return childOp.subTemplateIndex;return i18nOp.subTemplateIndex}function addParam(params,placeholder,value,subTemplateIndex,flags){const values=params.get(placeholder)??[];values.push({value,subTemplateIndex,flags}),params.set(placeholder,values)}function updatePlaceholder(op,value,i18nContexts,icuPlaceholders){if(null!==op.i18nPlaceholder){const i18nContext=i18nContexts.get(op.context),params=op.resolutionTime===I18nParamResolutionTime.Creation?i18nContext.params:i18nContext.postprocessingParams,values=params.get(op.i18nPlaceholder)||[];values.push(value),params.set(op.i18nPlaceholder,values)}if(null!==op.icuPlaceholder){const icuPlaceholderOp=icuPlaceholders.get(op.icuPlaceholder);icuPlaceholderOp?.expressionPlaceholders.push(value)}}function processLexicalScope(unit,ops,savedView){const scope=new Map,localDefinitions=new Map;for(const op of ops)switch(op.kind){case OpKind.Variable:switch(op.variable.kind){case SemanticVariableKind.Identifier:if(op.variable.local){if(localDefinitions.has(op.variable.identifier))continue;localDefinitions.set(op.variable.identifier,op.xref)}else if(scope.has(op.variable.identifier))continue;scope.set(op.variable.identifier,op.xref);break;case SemanticVariableKind.Alias:if(scope.has(op.variable.identifier))continue;scope.set(op.variable.identifier,op.xref);break;case SemanticVariableKind.SavedView:savedView={view:op.variable.view,variable:op.xref}}break;case OpKind.Listener:case OpKind.TwoWayListener:processLexicalScope(unit,op.handlerOps,savedView)}for(const op of ops)op.kind!=OpKind.Listener&&op.kind!==OpKind.TwoWayListener&&transformExpressionsInOp(op,(expr=>{if(expr instanceof LexicalReadExpr)return localDefinitions.has(expr.name)?new ReadVariableExpr(localDefinitions.get(expr.name)):scope.has(expr.name)?new ReadVariableExpr(scope.get(expr.name)):new ReadPropExpr(new ContextExpr(unit.job.root.xref),expr.name);if(expr instanceof RestoreViewExpr&&"number"==typeof expr.view){if(null===savedView||savedView.view!==expr.view)throw new Error(`AssertionError: no saved view ${expr.view} from view ${unit.xref}`);return expr.view=new ReadVariableExpr(savedView.variable),expr}return expr}),VisitorContextFlag.None);for(const op of ops)visitExpressionsInOp(op,(expr=>{if(expr instanceof LexicalReadExpr)throw new Error(`AssertionError: no lexical reads should remain, but found read of ${expr.name}`)}))}const sanitizerFns=new Map([[SecurityContext.HTML,Identifiers.sanitizeHtml],[SecurityContext.RESOURCE_URL,Identifiers.sanitizeResourceUrl],[SecurityContext.SCRIPT,Identifiers.sanitizeScript],[SecurityContext.STYLE,Identifiers.sanitizeStyle],[SecurityContext.URL,Identifiers.sanitizeUrl]]),trustedValueFns=new Map([[SecurityContext.HTML,Identifiers.trustConstantHtml],[SecurityContext.RESOURCE_URL,Identifiers.trustConstantResourceUrl]]);function isIframeElement(op){return op.kind===OpKind.ElementStart&&"iframe"===op.tag?.toLowerCase()}function getOnlySecurityContext(securityContext){if(Array.isArray(securityContext)){if(securityContext.length>1)throw Error("AssertionError: Ambiguous security context");return securityContext[0]||SecurityContext.NONE}return securityContext}function addSaveRestoreViewOperationToListener(unit,op){op.handlerOps.prepend([createVariableOp(unit.job.allocateXrefId(),{kind:SemanticVariableKind.Context,name:null,view:unit.xref},new RestoreViewExpr(unit.xref),VariableFlags.None)]);for(const handlerOp of op.handlerOps)handlerOp.kind===OpKind.Statement&&handlerOp.statement instanceof ReturnStatement&&(handlerOp.statement.value=new ResetViewExpr(handlerOp.statement.value))}function generateTemporaries(ops){let opCount=0,generatedStatements=[];for(const op of ops){const finalReads=new Map;visitExpressionsInOp(op,((expr,flag)=>{flag&VisitorContextFlag.InChildOperation||expr instanceof ReadTemporaryExpr&&finalReads.set(expr.xref,expr)}));let count=0;const assigned=new Set,released=new Set,defs=new Map;visitExpressionsInOp(op,((expr,flag)=>{flag&VisitorContextFlag.InChildOperation||(expr instanceof AssignTemporaryExpr?(assigned.has(expr.xref)||(assigned.add(expr.xref),defs.set(expr.xref,`tmp_${opCount}_${count++}`)),assignName(defs,expr)):expr instanceof ReadTemporaryExpr&&(finalReads.get(expr.xref)===expr&&(released.add(expr.xref),count--),assignName(defs,expr)))})),generatedStatements.push(...Array.from(new Set(defs.values())).map((name=>createStatementOp(new DeclareVarStmt(name))))),opCount++,op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||op.handlerOps.prepend(generateTemporaries(op.handlerOps))}return generatedStatements}function assignName(names,expr){const name=names.get(expr.xref);if(void 0===name)throw new Error(`Found xref with unassigned name: ${expr.xref}`);expr.name=name}function isTrackByFunctionCall(rootView,expr){if(!(expr instanceof InvokeFunctionExpr)||0===expr.args.length||expr.args.length>2)return!1;if(!(expr.receiver instanceof ReadPropExpr&&expr.receiver.receiver instanceof ContextExpr)||expr.receiver.receiver.view!==rootView)return!1;const[arg0,arg1]=expr.args;return arg0 instanceof ReadVarExpr&&"$index"===arg0.name&&(1===expr.args.length||arg1 instanceof ReadVarExpr&&"$item"===arg1.name)}function varsUsedByOp(op){let slots;switch(op.kind){case OpKind.Property:case OpKind.HostProperty:case OpKind.Attribute:return slots=1,op.expression instanceof Interpolation&&!function isSingletonInterpolation(expr){if(1!==expr.expressions.length||2!==expr.strings.length)return!1;if(""!==expr.strings[0]||""!==expr.strings[1])return!1;return!0}(op.expression)&&(slots+=op.expression.expressions.length),slots;case OpKind.TwoWayProperty:return 1;case OpKind.StyleProp:case OpKind.ClassProp:case OpKind.StyleMap:case OpKind.ClassMap:return slots=2,op.expression instanceof Interpolation&&(slots+=op.expression.expressions.length),slots;case OpKind.InterpolateText:return op.interpolation.expressions.length;case OpKind.I18nExpression:case OpKind.Conditional:case OpKind.DeferWhen:case OpKind.StoreLet:return 1;case OpKind.RepeaterCreate:return op.emptyView?1:0;default:throw new Error(`Unhandled op: ${OpKind[op.kind]}`)}}function varsUsedByIrExpression(expr){switch(expr.kind){case ExpressionKind.PureFunctionExpr:case ExpressionKind.PipeBinding:return 1+expr.args.length;case ExpressionKind.PipeBindingVariadic:return 1+expr.numArgs;case ExpressionKind.StoreLet:return 1;default:throw new Error(`AssertionError: unhandled ConsumesVarsTrait expression ${expr.constructor.name}`)}}var Fence;function inlineAlwaysInlineVariables(ops){const vars=new Map;for(const op of ops)op.kind===OpKind.Variable&&op.flags&VariableFlags.AlwaysInline&&(visitExpressionsInOp(op,(expr=>{if(isIrExpression(expr)&&fencesForIrExpression(expr)!==Fence.None)throw new Error("AssertionError: A context-sensitive variable was marked AlwaysInline")})),vars.set(op.xref,op)),transformExpressionsInOp(op,(expr=>{if(expr instanceof ReadVariableExpr&&vars.has(expr.xref)){return vars.get(expr.xref).initializer.clone()}return expr}),VisitorContextFlag.None);for(const op of vars.values())OpList.remove(op)}function optimizeVariablesInOpList(ops,compatibility){const varDecls=new Map,varUsages=new Map,varRemoteUsages=new Set,opMap=new Map;for(const op of ops){if(op.kind===OpKind.Variable){if(varDecls.has(op.xref)||varUsages.has(op.xref))throw new Error(`Should not see two declarations of the same variable: ${op.xref}`);varDecls.set(op.xref,op),varUsages.set(op.xref,0)}opMap.set(op,collectOpInfo(op)),countVariableUsages(op,varUsages,varRemoteUsages)}let contextIsUsed=!1;for(const op of ops.reversed()){const opInfo=opMap.get(op);if(op.kind!==OpKind.Variable||0!==varUsages.get(op.xref))opInfo.fences&Fence.ViewContextRead&&(contextIsUsed=!0);else{if(contextIsUsed&&opInfo.fences&Fence.ViewContextWrite||opInfo.fences&Fence.SideEffectful){const stmtOp=createStatementOp(op.initializer.toStmt());opMap.set(stmtOp,opInfo),OpList.replace(op,stmtOp)}else uncountVariableUsages(op,varUsages),OpList.remove(op);opMap.delete(op),varDecls.delete(op.xref),varUsages.delete(op.xref)}}const toInline=[];for(const[id,count]of varUsages){const isAlwaysInline=!!(varDecls.get(id).flags&VariableFlags.AlwaysInline);1!==count||isAlwaysInline||(varRemoteUsages.has(id)||toInline.push(id))}let candidate;for(;candidate=toInline.pop();){const decl=varDecls.get(candidate),varInfo=opMap.get(decl);if(!!(decl.flags&VariableFlags.AlwaysInline))throw new Error("AssertionError: Found an 'AlwaysInline' variable after the always inlining pass.");for(let targetOp=decl.next;targetOp.kind!==OpKind.ListEnd;targetOp=targetOp.next){const opInfo=opMap.get(targetOp);if(opInfo.variablesUsed.has(candidate)){if(compatibility===CompatibilityMode.TemplateDefinitionBuilder&&!allowConservativeInlining(decl,targetOp))break;if(tryInlineVariableInitializer(candidate,decl.initializer,targetOp,varInfo.fences)){opInfo.variablesUsed.delete(candidate);for(const id of varInfo.variablesUsed)opInfo.variablesUsed.add(id);opInfo.fences|=varInfo.fences,varDecls.delete(candidate),varUsages.delete(candidate),opMap.delete(decl),OpList.remove(decl)}break}if(!safeToInlinePastFences(opInfo.fences,varInfo.fences))break}}}function fencesForIrExpression(expr){switch(expr.kind){case ExpressionKind.NextContext:return Fence.ViewContextRead|Fence.ViewContextWrite;case ExpressionKind.RestoreView:return Fence.ViewContextRead|Fence.ViewContextWrite|Fence.SideEffectful;case ExpressionKind.StoreLet:return Fence.SideEffectful;case ExpressionKind.Reference:case ExpressionKind.ContextLetReference:return Fence.ViewContextRead;default:return Fence.None}}function collectOpInfo(op){let fences=Fence.None;const variablesUsed=new Set;return visitExpressionsInOp(op,(expr=>{if(isIrExpression(expr))if(expr.kind===ExpressionKind.ReadVariable)variablesUsed.add(expr.xref);else fences|=fencesForIrExpression(expr)})),{fences,variablesUsed}}function countVariableUsages(op,varUsages,varRemoteUsage){visitExpressionsInOp(op,((expr,flags)=>{if(!isIrExpression(expr))return;if(expr.kind!==ExpressionKind.ReadVariable)return;const count=varUsages.get(expr.xref);void 0!==count&&(varUsages.set(expr.xref,count+1),flags&VisitorContextFlag.InChildOperation&&varRemoteUsage.add(expr.xref))}))}function uncountVariableUsages(op,varUsages){visitExpressionsInOp(op,(expr=>{if(!isIrExpression(expr))return;if(expr.kind!==ExpressionKind.ReadVariable)return;const count=varUsages.get(expr.xref);if(void 0!==count){if(0===count)throw new Error(`Inaccurate variable count: ${expr.xref} - found another read but count is already 0`);varUsages.set(expr.xref,count-1)}}))}function safeToInlinePastFences(fences,declFences){if(fences&Fence.ViewContextWrite){if(declFences&Fence.ViewContextRead)return!1}else if(fences&Fence.ViewContextRead&&declFences&Fence.ViewContextWrite)return!1;return!0}function tryInlineVariableInitializer(id,initializer,target,declFences){let inlined=!1,inliningAllowed=!0;return transformExpressionsInOp(target,((expr,flags)=>{if(!isIrExpression(expr))return expr;if(inlined||!inliningAllowed)return expr;if(flags&VisitorContextFlag.InChildOperation&&declFences&Fence.ViewContextRead)return expr;if(expr.kind===ExpressionKind.ReadVariable){if(expr.xref===id)return inlined=!0,initializer}else{const exprFences=fencesForIrExpression(expr);inliningAllowed=inliningAllowed&&safeToInlinePastFences(exprFences,declFences)}return expr}),VisitorContextFlag.None),inlined}function allowConservativeInlining(decl,target){switch(decl.variable.kind){case SemanticVariableKind.Identifier:return decl.initializer instanceof ReadVarExpr&&"ctx"===decl.initializer.name;case SemanticVariableKind.Context:return target.kind===OpKind.Variable;default:return!0}}!function(Fence){Fence[Fence.None=0]="None",Fence[Fence.ViewContextRead=1]="ViewContextRead",Fence[Fence.ViewContextWrite=2]="ViewContextWrite",Fence[Fence.SideEffectful=4]="SideEffectful"}(Fence||(Fence={}));const phases=[{kind:CompilationJobKind.Tmpl,fn:function removeContentSelectors(job){for(const unit of job.units){const elements=createOpXrefMap(unit);for(const op of unit.ops())if(op.kind===OpKind.Binding){const target=lookupInXrefMap(elements,op.target);"select"===op.name.toLowerCase()&&target.kind===OpKind.Projection&&OpList.remove(op)}}}},{kind:CompilationJobKind.Host,fn:function parseHostStyleProperties(job){for(const op of job.root.update)if(op.kind===OpKind.Binding&&op.bindingKind===BindingKind.Property)if(op.name.endsWith("!important")&&(op.name=op.name.substring(0,op.name.length-10)),op.name.startsWith("style.")){op.bindingKind=BindingKind.StyleProperty,op.name=op.name.substring(6),op.name.startsWith("--")||(op.name=op.name.replace(/[a-z][A-Z]/g,(v=>v.charAt(0)+"-"+v.charAt(1))).toLowerCase());const{property,suffix}=parseProperty(op.name);op.name=property,op.unit=suffix}else op.name.startsWith("style!")?(op.bindingKind=BindingKind.StyleProperty,op.name="style"):(op.name.startsWith("class.")||op.name.startsWith("class!"))&&(op.bindingKind=BindingKind.ClassName,op.name=parseProperty(op.name.substring(6)).property)}},{kind:CompilationJobKind.Tmpl,fn:function emitNamespaceChanges(job){for(const unit of job.units){let activeNamespace=Namespace.HTML;for(const op of unit.create)op.kind===OpKind.ElementStart&&op.namespace!==activeNamespace&&(OpList.insertBefore((namespace=op.namespace,{kind:OpKind.Namespace,active:namespace,...NEW_OP}),op),activeNamespace=op.namespace)}var namespace}},{kind:CompilationJobKind.Tmpl,fn:function propagateI18nBlocks(job){propagateI18nBlocksToTemplates(job.root,0)}},{kind:CompilationJobKind.Tmpl,fn:function wrapI18nIcus(job){for(const unit of job.units){let currentI18nOp=null,addedI18nId=null;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:currentI18nOp=op;break;case OpKind.I18nEnd:currentI18nOp=null;break;case OpKind.IcuStart:null===currentI18nOp&&(addedI18nId=job.allocateXrefId(),OpList.insertBefore(createI18nStartOp(addedI18nId,op.message,void 0,null),op));break;case OpKind.IcuEnd:null!==addedI18nId&&(OpList.insertAfter(createI18nEndOp(addedI18nId,null),op),addedI18nId=null)}}}},{kind:CompilationJobKind.Both,fn:function deduplicateTextBindings(job){const seen=new Map;for(const unit of job.units)for(const op of unit.update.reversed())if(op.kind===OpKind.Binding&&op.isTextAttribute){const seenForElement=seen.get(op.target)||new Set;seenForElement.has(op.name)&&job.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&("style"!==op.name&&"class"!==op.name||OpList.remove(op)),seenForElement.add(op.name),seen.set(op.target,seenForElement)}}},{kind:CompilationJobKind.Both,fn:function specializeStyleBindings(job){for(const unit of job.units)for(const op of unit.update)if(op.kind===OpKind.Binding)switch(op.bindingKind){case BindingKind.ClassName:if(op.expression instanceof Interpolation)throw new Error("Unexpected interpolation in ClassName binding");OpList.replace(op,(xref=op.target,name=op.name,expression=op.expression,sourceSpan=op.sourceSpan,{kind:OpKind.ClassProp,target:xref,name,expression,sourceSpan,...TRAIT_DEPENDS_ON_SLOT_CONTEXT,...TRAIT_CONSUMES_VARS,...NEW_OP}));break;case BindingKind.StyleProperty:OpList.replace(op,createStylePropOp(op.target,op.name,op.expression,op.unit,op.sourceSpan));break;case BindingKind.Property:case BindingKind.Template:"style"===op.name?OpList.replace(op,createStyleMapOp(op.target,op.expression,op.sourceSpan)):"class"===op.name&&OpList.replace(op,createClassMapOp(op.target,op.expression,op.sourceSpan))}var xref,name,expression,sourceSpan}},{kind:CompilationJobKind.Both,fn:function specializeBindings(job){const elements=new Map;for(const unit of job.units)for(const op of unit.create)isElementOrContainerOp(op)&&elements.set(op.xref,op);for(const unit of job.units)for(const op of unit.ops())if(op.kind===OpKind.Binding)switch(op.bindingKind){case BindingKind.Attribute:if("ngNonBindable"===op.name){OpList.remove(op);lookupElement$1(elements,op.target).nonBindable=!0}else{const[namespace,name]=splitNsName(op.name);OpList.replace(op,createAttributeOp(op.target,namespace,name,op.expression,op.securityContext,op.isTextAttribute,op.isStructuralTemplateAttribute,op.templateKind,op.i18nMessage,op.sourceSpan))}break;case BindingKind.Property:case BindingKind.Animation:job.kind===CompilationJobKind.Host?OpList.replace(op,(name=op.name,expression=op.expression,isAnimationTrigger=op.bindingKind===BindingKind.Animation,i18nContext=op.i18nContext,securityContext=op.securityContext,sourceSpan=op.sourceSpan,{kind:OpKind.HostProperty,name,expression,isAnimationTrigger,i18nContext,securityContext,sanitizer:null,sourceSpan,...TRAIT_CONSUMES_VARS,...NEW_OP})):OpList.replace(op,createPropertyOp(op.target,op.name,op.expression,op.bindingKind===BindingKind.Animation,op.securityContext,op.isStructuralTemplateAttribute,op.templateKind,op.i18nContext,op.i18nMessage,op.sourceSpan));break;case BindingKind.TwoWayProperty:if(!(op.expression instanceof Expression))throw new Error(`Expected value of two-way property binding "${op.name}" to be an expression`);OpList.replace(op,createTwoWayPropertyOp(op.target,op.name,op.expression,op.securityContext,op.isStructuralTemplateAttribute,op.templateKind,op.i18nContext,op.i18nMessage,op.sourceSpan));break;case BindingKind.I18n:case BindingKind.ClassName:case BindingKind.StyleProperty:throw new Error(`Unhandled binding of kind ${BindingKind[op.bindingKind]}`)}var name,expression,isAnimationTrigger,i18nContext,securityContext,sourceSpan}},{kind:CompilationJobKind.Both,fn:function extractAttributes(job){for(const unit of job.units){const elements=createOpXrefMap(unit);for(const op of unit.ops())switch(op.kind){case OpKind.Attribute:extractAttributeOp(unit,op,elements);break;case OpKind.Property:if(!op.isAnimationTrigger){let bindingKind;bindingKind=null!==op.i18nMessage&&null===op.templateKind?BindingKind.I18n:op.isStructuralTemplateAttribute?BindingKind.Template:BindingKind.Property,OpList.insertBefore(createExtractedAttributeOp(op.target,bindingKind,null,op.name,null,null,null,op.securityContext),lookupElement$2(elements,op.target))}break;case OpKind.TwoWayProperty:OpList.insertBefore(createExtractedAttributeOp(op.target,BindingKind.TwoWayProperty,null,op.name,null,null,null,op.securityContext),lookupElement$2(elements,op.target));break;case OpKind.StyleProp:case OpKind.ClassProp:unit.job.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&op.expression instanceof EmptyExpr&&OpList.insertBefore(createExtractedAttributeOp(op.target,BindingKind.Property,null,op.name,null,null,null,SecurityContext.STYLE),lookupElement$2(elements,op.target));break;case OpKind.Listener:if(!op.isAnimationListener){const extractedAttributeOp=createExtractedAttributeOp(op.target,BindingKind.Property,null,op.name,null,null,null,SecurityContext.NONE);if(job.kind===CompilationJobKind.Host){if(job.compatibility)break;unit.create.push(extractedAttributeOp)}else OpList.insertBefore(extractedAttributeOp,lookupElement$2(elements,op.target))}break;case OpKind.TwoWayListener:if(job.kind!==CompilationJobKind.Host){const extractedAttributeOp=createExtractedAttributeOp(op.target,BindingKind.Property,null,op.name,null,null,null,SecurityContext.NONE);OpList.insertBefore(extractedAttributeOp,lookupElement$2(elements,op.target))}}}}},{kind:CompilationJobKind.Tmpl,fn:function createI18nContexts(job){const attrContextByMessage=new Map;for(const unit of job.units)for(const op of unit.ops())switch(op.kind){case OpKind.Binding:case OpKind.Property:case OpKind.Attribute:case OpKind.ExtractedAttribute:if(null===op.i18nMessage)continue;if(!attrContextByMessage.has(op.i18nMessage)){const i18nContext=createI18nContextOp(I18nContextKind.Attr,job.allocateXrefId(),null,op.i18nMessage,null);unit.create.push(i18nContext),attrContextByMessage.set(op.i18nMessage,i18nContext.xref)}op.i18nContext=attrContextByMessage.get(op.i18nMessage)}const blockContextByI18nBlock=new Map;for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nStart)if(op.xref===op.root){const contextOp=createI18nContextOp(I18nContextKind.RootI18n,job.allocateXrefId(),op.xref,op.message,null);unit.create.push(contextOp),op.context=contextOp.xref,blockContextByI18nBlock.set(op.xref,contextOp)}for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nStart&&op.xref!==op.root){const rootContext=blockContextByI18nBlock.get(op.root);if(void 0===rootContext)throw Error("AssertionError: Root i18n block i18n context should have been created.");op.context=rootContext.xref,blockContextByI18nBlock.set(op.xref,rootContext)}let currentI18nOp=null;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:currentI18nOp=op;break;case OpKind.I18nEnd:currentI18nOp=null;break;case OpKind.IcuStart:if(null===currentI18nOp)throw Error("AssertionError: Unexpected ICU outside of an i18n block.");if(op.message.id!==currentI18nOp.message.id){const contextOp=createI18nContextOp(I18nContextKind.Icu,job.allocateXrefId(),currentI18nOp.root,op.message,null);unit.create.push(contextOp),op.context=contextOp.xref}else op.context=currentI18nOp.context,blockContextByI18nBlock.get(currentI18nOp.xref).contextKind=I18nContextKind.Icu}}},{kind:CompilationJobKind.Both,fn:function parseExtractedStyles(job){const elements=new Map;for(const unit of job.units)for(const op of unit.create)isElementOrContainerOp(op)&&elements.set(op.xref,op);for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.ExtractedAttribute&&op.bindingKind===BindingKind.Attribute&&isStringLiteral(op.expression)){const target=elements.get(op.target);if(void 0!==target&&target.kind===OpKind.Template&&target.templateKind===TemplateKind.Structural)continue;if("style"===op.name){const parsedStyles=parse(op.expression.value);for(let i=0;i""===s))&&(op.expression=op.expression.expressions[0])}}},{kind:CompilationJobKind.Both,fn:function orderOps(job){for(const unit of job.units){orderWithin(unit.create,CREATE_ORDERING);const ordering=unit.job.kind===CompilationJobKind.Host?UPDATE_HOST_ORDERING:UPDATE_ORDERING;orderWithin(unit.update,ordering)}}},{kind:CompilationJobKind.Tmpl,fn:function generateConditionalExpressions(job){for(const unit of job.units)for(const op of unit.ops()){if(op.kind!==OpKind.Conditional)continue;let test;const defaultCase=op.conditions.findIndex((cond=>null===cond.expr));if(defaultCase>=0){const slot=op.conditions.splice(defaultCase,1)[0].targetSlot;test=new SlotLiteralExpr(slot)}else test=literal(-1);let tmp=null==op.test?null:new AssignTemporaryExpr(op.test,job.allocateXrefId());for(let i=op.conditions.length-1;i>=0;i--){let conditionalCase=op.conditions[i];if(null!==conditionalCase.expr){if(null!==tmp){const useTmp=0===i?tmp:new ReadTemporaryExpr(tmp.xref);conditionalCase.expr=new BinaryOperatorExpr(BinaryOperator.Identical,useTmp,conditionalCase.expr)}else if(null!==conditionalCase.alias){const caseExpressionTemporaryXref=job.allocateXrefId();conditionalCase.expr=new AssignTemporaryExpr(conditionalCase.expr,caseExpressionTemporaryXref),op.contextValue=new ReadTemporaryExpr(caseExpressionTemporaryXref)}test=new ConditionalExpr(conditionalCase.expr,new SlotLiteralExpr(conditionalCase.targetSlot),test)}}op.processed=test,op.conditions=[]}}},{kind:CompilationJobKind.Tmpl,fn:function createPipes(job){for(const unit of job.units)processPipeBindingsInView(unit)}},{kind:CompilationJobKind.Tmpl,fn:function configureDeferInstructions(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.Defer&&(null!==op.placeholderMinimumTime&&(op.placeholderConfig=new ConstCollectedExpr(literalOrArrayLiteral([op.placeholderMinimumTime]))),null===op.loadingMinimumTime&&null===op.loadingAfterTime||(op.loadingConfig=new ConstCollectedExpr(literalOrArrayLiteral([op.loadingMinimumTime,op.loadingAfterTime]))))}},{kind:CompilationJobKind.Tmpl,fn:function convertI18nText(job){for(const unit of job.units){let currentI18n=null,currentIcu=null;const textNodeI18nBlocks=new Map,textNodeIcus=new Map,icuPlaceholderByText=new Map;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:if(null===op.context)throw Error("I18n op should have its context set.");currentI18n=op;break;case OpKind.I18nEnd:currentI18n=null;break;case OpKind.IcuStart:if(null===op.context)throw Error("Icu op should have its context set.");currentIcu=op;break;case OpKind.IcuEnd:currentIcu=null;break;case OpKind.Text:if(null!==currentI18n)if(textNodeI18nBlocks.set(op.xref,currentI18n),textNodeIcus.set(op.xref,currentIcu),null!==op.icuPlaceholder){const icuPlaceholderOp=(xref=job.allocateXrefId(),name=op.icuPlaceholder,strings=[op.initialValue],{kind:OpKind.IcuPlaceholder,xref,name,strings,expressionPlaceholders:[],...NEW_OP});OpList.replace(op,icuPlaceholderOp),icuPlaceholderByText.set(op.xref,icuPlaceholderOp)}else OpList.remove(op)}for(const op of unit.update)if(op.kind===OpKind.InterpolateText){if(!textNodeI18nBlocks.has(op.target))continue;const i18nOp=textNodeI18nBlocks.get(op.target),icuOp=textNodeIcus.get(op.target),icuPlaceholder=icuPlaceholderByText.get(op.target),contextId=icuOp?icuOp.context:i18nOp.context,resolutionTime=icuOp?I18nParamResolutionTime.Postproccessing:I18nParamResolutionTime.Creation,ops=[];for(let i=0;iexpr instanceof PipeBindingExpr?expr.args.length<=4?expr:new PipeBindingVariadicExpr(expr.target,expr.targetSlot,expr.name,literalArr(expr.args),expr.args.length):expr),VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function generatePureLiteralStructures(job){for(const unit of job.units)for(const op of unit.update)transformExpressionsInOp(op,((expr,flags)=>flags&VisitorContextFlag.InChildOperation?expr:expr instanceof LiteralArrayExpr?transformLiteralArray(expr):expr instanceof LiteralMapExpr?transformLiteralMap(expr):expr),VisitorContextFlag.None)}},{kind:CompilationJobKind.Tmpl,fn:function generateProjectionDefs(job){const share=job.compatibility===CompatibilityMode.TemplateDefinitionBuilder,selectors=[];let projectionSlotIndex=0;for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.Projection&&(selectors.push(op.selector),op.projectionSlotIndex=projectionSlotIndex++);if(selectors.length>0){let defExpr=null;if(selectors.length>1||"*"!==selectors[0]){const def=selectors.map((s=>"*"===s?s:parseSelectorToR3Selector(s)));defExpr=job.pool.getConstLiteral(literalOrArrayLiteral(def),share)}job.contentSelectors=job.pool.getConstLiteral(literalOrArrayLiteral(selectors),share),job.root.create.prepend([(def=defExpr,{kind:OpKind.ProjectionDef,def,...NEW_OP})])}var def}},{kind:CompilationJobKind.Tmpl,fn:function generateLocalLetReferences(job){for(const unit of job.units)for(const op of unit.update){if(op.kind!==OpKind.StoreLet)continue;const variable={kind:SemanticVariableKind.Identifier,name:null,identifier:op.declaredName,local:!0};OpList.replace(op,createVariableOp(job.allocateXrefId(),variable,new StoreLetExpr(op.target,op.value,op.sourceSpan),VariableFlags.None))}}},{kind:CompilationJobKind.Tmpl,fn:function generateVariables(job){recursivelyProcessView(job.root,null)}},{kind:CompilationJobKind.Tmpl,fn:function saveAndRestoreView(job){for(const unit of job.units){unit.create.prepend([createVariableOp(unit.job.allocateXrefId(),{kind:SemanticVariableKind.SavedView,name:null,view:unit.xref},new GetCurrentViewExpr,VariableFlags.None)]);for(const op of unit.create){if(op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener)continue;let needsRestoreView=unit!==job.root;if(!needsRestoreView)for(const handlerOp of op.handlerOps)visitExpressionsInOp(handlerOp,(expr=>{(expr instanceof ReferenceExpr||expr instanceof ContextLetReferenceExpr)&&(needsRestoreView=!0)}));needsRestoreView&&addSaveRestoreViewOperationToListener(unit,op)}}}},{kind:CompilationJobKind.Both,fn:function deleteAnyCasts(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,removeAnys,VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function resolveDollarEvent(job){for(const unit of job.units)transformDollarEvent(unit.create),transformDollarEvent(unit.update)}},{kind:CompilationJobKind.Tmpl,fn:function generateTrackVariables(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.RepeaterCreate&&(op.track=transformExpressionsInExpression(op.track,(expr=>{if(expr instanceof LexicalReadExpr){if(op.varNames.$index.has(expr.name))return variable("$index");if(expr.name===op.varNames.$implicit)return variable("$item")}return expr}),VisitorContextFlag.None))}},{kind:CompilationJobKind.Tmpl,fn:function removeIllegalLetReferences(job){for(const unit of job.units)for(const op of unit.update){if(op.kind!==OpKind.Variable||op.variable.kind!==SemanticVariableKind.Identifier||!(op.initializer instanceof StoreLetExpr))continue;const name=op.variable.identifier;let current=op;for(;current&¤t.kind!==OpKind.ListEnd;)transformExpressionsInOp(current,(expr=>expr instanceof LexicalReadExpr&&expr.name===name?literal(void 0):expr),VisitorContextFlag.None),current=current.prev}}},{kind:CompilationJobKind.Both,fn:function resolveNames(job){for(const unit of job.units)processLexicalScope(unit,unit.create,null),processLexicalScope(unit,unit.update,null)}},{kind:CompilationJobKind.Tmpl,fn:function resolveDeferTargetNames(job){const scopes=new Map;function getScopeForView(view){if(scopes.has(view.xref))return scopes.get(view.xref);const scope=new Scope$1;for(const op of view.create)if(isElementOrContainerOp(op)&&null!==op.localRefs){if(!Array.isArray(op.localRefs))throw new Error("LocalRefs were already processed, but were needed to resolve defer targets.");for(const ref of op.localRefs)""===ref.target&&scope.targets.set(ref.name,{xref:op.xref,slot:op.handle})}return scopes.set(view.xref,scope),scope}function resolveTrigger(deferOwnerView,op,placeholderView){switch(op.trigger.kind){case DeferTriggerKind.Idle:case DeferTriggerKind.Immediate:case DeferTriggerKind.Timer:return;case DeferTriggerKind.Hover:case DeferTriggerKind.Interaction:case DeferTriggerKind.Viewport:if(null===op.trigger.targetName){if(null===placeholderView)throw new Error("defer on trigger with no target name must have a placeholder block");const placeholder=job.views.get(placeholderView);if(null==placeholder)throw new Error("AssertionError: could not find placeholder view for defer on trigger");for(const placeholderOp of placeholder.create)if(hasConsumesSlotTrait(placeholderOp)&&(isElementOrContainerOp(placeholderOp)||placeholderOp.kind===OpKind.Projection))return op.trigger.targetXref=placeholderOp.xref,op.trigger.targetView=placeholderView,op.trigger.targetSlotViewSteps=-1,void(op.trigger.targetSlot=placeholderOp.handle);return}let view=null!==placeholderView?job.views.get(placeholderView):deferOwnerView,step=null!==placeholderView?-1:0;for(;null!==view;){const scope=getScopeForView(view);if(scope.targets.has(op.trigger.targetName)){const{xref,slot}=scope.targets.get(op.trigger.targetName);return op.trigger.targetXref=xref,op.trigger.targetView=view.xref,op.trigger.targetSlotViewSteps=step,void(op.trigger.targetSlot=slot)}view=null!==view.parent?job.views.get(view.parent):null,step++}break;default:throw new Error(`Trigger kind ${op.trigger.kind} not handled`)}}for(const unit of job.units){const defers=new Map;for(const op of unit.create)switch(op.kind){case OpKind.Defer:defers.set(op.xref,op);break;case OpKind.DeferOn:resolveTrigger(unit,op,defers.get(op.defer).placeholderView)}}}},{kind:CompilationJobKind.Tmpl,fn:function transformTwoWayBindingSet(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.TwoWayListener&&transformExpressionsInOp(op,(expr=>{if(!(expr instanceof TwoWayBindingSetExpr))return expr;const{target,value}=expr;if(target instanceof ReadPropExpr||target instanceof ReadKeyExpr)return twoWayBindingSet(target,value).or(target.set(value));if(target instanceof ReadVariableExpr)return twoWayBindingSet(target,value);throw new Error("Unsupported expression in two-way action binding.")}),VisitorContextFlag.InChildOperation)}},{kind:CompilationJobKind.Tmpl,fn:function optimizeTrackFns(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.RepeaterCreate&&(op.track instanceof ReadVarExpr&&"$index"===op.track.name?op.trackByFn=importExpr(Identifiers.repeaterTrackByIndex):op.track instanceof ReadVarExpr&&"$item"===op.track.name?op.trackByFn=importExpr(Identifiers.repeaterTrackByIdentity):isTrackByFunctionCall(job.root.xref,op.track)?(op.usesComponentInstance=!0,op.track.receiver.receiver.view===unit.xref?op.trackByFn=op.track.receiver:(op.trackByFn=importExpr(Identifiers.componentInstance).callFn([]).prop(op.track.receiver.name),op.track=op.trackByFn)):op.track=transformExpressionsInExpression(op.track,(expr=>expr instanceof ContextExpr?(op.usesComponentInstance=!0,new TrackContextExpr(expr.view)):expr),VisitorContextFlag.None))}},{kind:CompilationJobKind.Both,fn:function resolveContexts(job){for(const unit of job.units)processLexicalScope$1(unit,unit.create),processLexicalScope$1(unit,unit.update)}},{kind:CompilationJobKind.Both,fn:function resolveSanitizers(job){for(const unit of job.units){const elements=createOpXrefMap(unit);if(job.kind!==CompilationJobKind.Host)for(const op of unit.create)if(op.kind===OpKind.ExtractedAttribute){const trustedValueFn=trustedValueFns.get(getOnlySecurityContext(op.securityContext))??null;op.trustedValueFn=null!==trustedValueFn?importExpr(trustedValueFn):null}for(const op of unit.update)switch(op.kind){case OpKind.Property:case OpKind.Attribute:case OpKind.HostProperty:let sanitizerFn=null;if(sanitizerFn=Array.isArray(op.securityContext)&&2===op.securityContext.length&&op.securityContext.indexOf(SecurityContext.URL)>-1&&op.securityContext.indexOf(SecurityContext.RESOURCE_URL)>-1?Identifiers.sanitizeUrlOrResourceUrl:sanitizerFns.get(getOnlySecurityContext(op.securityContext))??null,op.sanitizer=null!==sanitizerFn?importExpr(sanitizerFn):null,null===op.sanitizer){let isIframe=!1;if(job.kind===CompilationJobKind.Host||op.kind===OpKind.HostProperty)isIframe=!0;else{const ownerOp=elements.get(op.target);if(void 0===ownerOp||!isElementOrContainerOp(ownerOp))throw Error("Property should have an element-like owner");isIframe=isIframeElement(ownerOp)}isIframe&&(attrName=op.name,IFRAME_SECURITY_SENSITIVE_ATTRS.has(attrName.toLowerCase()))&&(op.sanitizer=importExpr(Identifiers.validateIframeAttribute))}}}var attrName}},{kind:CompilationJobKind.Tmpl,fn:function liftLocalRefs(job){for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.ElementStart:case OpKind.Template:if(!Array.isArray(op.localRefs))throw new Error("AssertionError: expected localRefs to be an array still");if(op.numSlotsUsed+=op.localRefs.length,op.localRefs.length>0){const localRefs=serializeLocalRefs(op.localRefs);op.localRefs=job.addConst(localRefs)}else op.localRefs=null}}},{kind:CompilationJobKind.Both,fn:function generateNullishCoalesceExpressions(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,(expr=>{if(!(expr instanceof BinaryOperatorExpr)||expr.operator!==BinaryOperator.NullishCoalesce)return expr;const assignment=new AssignTemporaryExpr(expr.lhs.clone(),job.allocateXrefId()),read=new ReadTemporaryExpr(assignment.xref);return new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.And,new BinaryOperatorExpr(BinaryOperator.NotIdentical,assignment,NULL_EXPR),new BinaryOperatorExpr(BinaryOperator.NotIdentical,read,new LiteralExpr(void 0))),read.clone(),expr.rhs)}),VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function expandSafeReads(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,(e=>safeTransform(e,{job})),VisitorContextFlag.None),transformExpressionsInOp(op,ternaryTransform,VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function generateTemporaryVariables(job){for(const unit of job.units)unit.create.prepend(generateTemporaries(unit.create)),unit.update.prepend(generateTemporaries(unit.update))}},{kind:CompilationJobKind.Both,fn:function optimizeVariables(job){for(const unit of job.units){inlineAlwaysInlineVariables(unit.create),inlineAlwaysInlineVariables(unit.update);for(const op of unit.create)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||inlineAlwaysInlineVariables(op.handlerOps);optimizeVariablesInOpList(unit.create,job.compatibility),optimizeVariablesInOpList(unit.update,job.compatibility);for(const op of unit.create)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||optimizeVariablesInOpList(op.handlerOps,job.compatibility)}}},{kind:CompilationJobKind.Both,fn:function optimizeStoreLet(job){const letUsedExternally=new Set;for(const unit of job.units)for(const op of unit.ops())visitExpressionsInOp(op,(expr=>{expr instanceof ContextLetReferenceExpr&&letUsedExternally.add(expr.target)}));for(const unit of job.units)for(const op of unit.update)transformExpressionsInOp(op,(expression=>expression instanceof StoreLetExpr&&!letUsedExternally.has(expression.target)?expression.value:expression),VisitorContextFlag.None)}},{kind:CompilationJobKind.Tmpl,fn:function allocateSlots(job){const slotMap=new Map;for(const unit of job.units){let slotCount=0;for(const op of unit.create)hasConsumesSlotTrait(op)&&(op.handle.slot=slotCount,slotMap.set(op.xref,op.handle.slot),slotCount+=op.numSlotsUsed);unit.decls=slotCount}for(const unit of job.units)for(const op of unit.ops())if(op.kind===OpKind.Template||op.kind===OpKind.RepeaterCreate){const childView=job.views.get(op.xref);op.decls=childView.decls}}},{kind:CompilationJobKind.Tmpl,fn:function resolveI18nElementPlaceholders(job){const i18nContexts=new Map,elements=new Map;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nContext:i18nContexts.set(op.xref,op);break;case OpKind.ElementStart:elements.set(op.xref,op)}resolvePlaceholdersForView(job,job.root,i18nContexts,elements)}},{kind:CompilationJobKind.Tmpl,fn:function resolveI18nExpressionPlaceholders(job){const subTemplateIndices=new Map,i18nContexts=new Map,icuPlaceholders=new Map;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:subTemplateIndices.set(op.xref,op.subTemplateIndex);break;case OpKind.I18nContext:i18nContexts.set(op.xref,op);break;case OpKind.IcuPlaceholder:icuPlaceholders.set(op.xref,op)}const expressionIndices=new Map,referenceIndex=op=>op.usage===I18nExpressionFor.I18nText?op.i18nOwner:op.context;for(const unit of job.units)for(const op of unit.update)if(op.kind===OpKind.I18nExpression){const index=expressionIndices.get(referenceIndex(op))||0;updatePlaceholder(op,{value:index,subTemplateIndex:subTemplateIndices.get(op.i18nOwner)??null,flags:I18nParamValueFlags.ExpressionIndex},i18nContexts,icuPlaceholders),expressionIndices.set(referenceIndex(op),index+1)}}},{kind:CompilationJobKind.Tmpl,fn:function extractI18nMessages(job){const i18nMessagesByContext=new Map,i18nBlocks=new Map,i18nContexts=new Map;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nContext:const i18nMessageOp=createI18nMessage(job,op);unit.create.push(i18nMessageOp),i18nMessagesByContext.set(op.xref,i18nMessageOp),i18nContexts.set(op.xref,op);break;case OpKind.I18nStart:i18nBlocks.set(op.xref,op)}let currentIcu=null;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.IcuStart:currentIcu=op,OpList.remove(op);const icuContext=i18nContexts.get(op.context);if(icuContext.contextKind!==I18nContextKind.Icu)continue;const i18nBlock=i18nBlocks.get(icuContext.i18nBlock);if(i18nBlock.context===icuContext.xref)continue;const rootI18nBlock=i18nBlocks.get(i18nBlock.root),rootMessage=i18nMessagesByContext.get(rootI18nBlock.context);if(void 0===rootMessage)throw Error("AssertionError: ICU sub-message should belong to a root message.");const subMessage=i18nMessagesByContext.get(icuContext.xref);subMessage.messagePlaceholder=op.messagePlaceholder,rootMessage.subMessages.push(subMessage.xref);break;case OpKind.IcuEnd:currentIcu=null,OpList.remove(op);break;case OpKind.IcuPlaceholder:if(null===currentIcu||null==currentIcu.context)throw Error("AssertionError: Unexpected ICU placeholder outside of i18n context");i18nMessagesByContext.get(currentIcu.context).postprocessingParams.set(op.name,literal(formatIcuPlaceholder(op))),OpList.remove(op)}}},{kind:CompilationJobKind.Tmpl,fn:function generateTrackFns(job){for(const unit of job.units)for(const op of unit.create){if(op.kind!==OpKind.RepeaterCreate)continue;if(null!==op.trackByFn)continue;let fn,usesComponentContext=!1;op.track=transformExpressionsInExpression(op.track,(expr=>{if(expr instanceof PipeBindingExpr||expr instanceof PipeBindingVariadicExpr)throw new Error("Illegal State: Pipes are not allowed in this context");return expr instanceof TrackContextExpr?(usesComponentContext=!0,variable("this")):expr}),VisitorContextFlag.None);const fnParams=[new FnParam("$index"),new FnParam("$item")];fn=usesComponentContext?new FunctionExpr(fnParams,[new ReturnStatement(op.track)]):arrowFn(fnParams,op.track),op.trackByFn=job.pool.getSharedFunctionReference(fn,"_forTrack")}}},{kind:CompilationJobKind.Tmpl,fn:function collectI18nConsts(job){const fileBasedI18nSuffix=job.relativeContextFilePath.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()+"_",extractedAttributesByI18nContext=new Map,i18nAttributesByElement=new Map,i18nExpressionsByElement=new Map,messages=new Map;for(const unit of job.units)for(const op of unit.ops())if(op.kind===OpKind.ExtractedAttribute&&null!==op.i18nContext){const attributes=extractedAttributesByI18nContext.get(op.i18nContext)??[];attributes.push(op),extractedAttributesByI18nContext.set(op.i18nContext,attributes)}else if(op.kind===OpKind.I18nAttributes)i18nAttributesByElement.set(op.target,op);else if(op.kind===OpKind.I18nExpression&&op.usage===I18nExpressionFor.I18nAttribute){const expressions=i18nExpressionsByElement.get(op.target)??[];expressions.push(op),i18nExpressionsByElement.set(op.target,expressions)}else op.kind===OpKind.I18nMessage&&messages.set(op.xref,op);const i18nValuesByContext=new Map,messageConstIndices=new Map;for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nMessage){if(null===op.messagePlaceholder){const{mainVar,statements}=collectMessage(job,fileBasedI18nSuffix,messages,op);if(null!==op.i18nBlock){const i18nConst=job.addConst(mainVar,statements);messageConstIndices.set(op.i18nBlock,i18nConst)}else{job.constsInitializers.push(...statements),i18nValuesByContext.set(op.i18nContext,mainVar);const attributesForMessage=extractedAttributesByI18nContext.get(op.i18nContext);if(void 0!==attributesForMessage)for(const attr of attributesForMessage)attr.expression=mainVar.clone()}}OpList.remove(op)}for(const unit of job.units)for(const elem of unit.create)if(isElementOrContainerOp(elem)){const i18nAttributes=i18nAttributesByElement.get(elem.xref);if(void 0===i18nAttributes)continue;let i18nExpressions=i18nExpressionsByElement.get(elem.xref);if(void 0===i18nExpressions)throw new Error("AssertionError: Could not find any i18n expressions associated with an I18nAttributes instruction");const seenPropertyNames=new Set;i18nExpressions=i18nExpressions.filter((i18nExpr=>{const seen=seenPropertyNames.has(i18nExpr.name);return seenPropertyNames.add(i18nExpr.name),!seen}));const i18nAttributeConfig=i18nExpressions.flatMap((i18nExpr=>{const i18nExprValue=i18nValuesByContext.get(i18nExpr.context);if(void 0===i18nExprValue)throw new Error("AssertionError: Could not find i18n expression's value");return[literal(i18nExpr.name),i18nExprValue]}));i18nAttributes.i18nAttributesConfig=job.addConst(new LiteralArrayExpr(i18nAttributeConfig))}for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nStart){const msgIndex=messageConstIndices.get(op.root);if(void 0===msgIndex)throw new Error("AssertionError: Could not find corresponding i18n block index for an i18n message op; was an i18n message incorrectly assumed to correspond to an attribute?");op.messageIndex=msgIndex}}},{kind:CompilationJobKind.Tmpl,fn:function collectConstExpressions(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,(expr=>expr instanceof ConstCollectedExpr?literal(job.addConst(expr.expr)):expr),VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function collectElementConsts(job){const allElementAttributes=new Map;for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.ExtractedAttribute){const attributes=allElementAttributes.get(op.target)||new ElementAttributes(job.compatibility);allElementAttributes.set(op.target,attributes),attributes.add(op.bindingKind,op.name,op.expression,op.namespace,op.trustedValueFn),OpList.remove(op)}if(job instanceof ComponentCompilationJob)for(const unit of job.units)for(const op of unit.create)if(op.kind==OpKind.Projection){const attributes=allElementAttributes.get(op.xref);if(void 0!==attributes){const attrArray=serializeAttributes(attributes);attrArray.entries.length>0&&(op.attributes=attrArray)}}else isElementOrContainerOp(op)&&(op.attributes=getConstIndex(job,allElementAttributes,op.xref),op.kind===OpKind.RepeaterCreate&&null!==op.emptyView&&(op.emptyAttributes=getConstIndex(job,allElementAttributes,op.emptyView)));else if(job instanceof HostBindingCompilationJob)for(const[xref,attributes]of allElementAttributes.entries()){if(xref!==job.root.xref)throw new Error("An attribute would be const collected into the host binding's template function, but is not associated with the root xref.");const attrArray=serializeAttributes(attributes);attrArray.entries.length>0&&(job.root.attributes=attrArray)}}},{kind:CompilationJobKind.Tmpl,fn:function removeI18nContexts(job){for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nContext:OpList.remove(op);break;case OpKind.I18nStart:op.context=null}}},{kind:CompilationJobKind.Both,fn:function countVariables(job){for(const unit of job.units){let varCount=0;for(const op of unit.ops())hasConsumesVarsTrait(op)&&(varCount+=varsUsedByOp(op));for(const op of unit.ops())visitExpressionsInOp(op,(expr=>{isIrExpression(expr)&&(job.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&expr instanceof PureFunctionExpr||(hasUsesVarOffsetTrait(expr)&&(expr.varOffset=varCount),hasConsumesVarsTrait(expr)&&(varCount+=varsUsedByIrExpression(expr))))}));if(job.compatibility===CompatibilityMode.TemplateDefinitionBuilder)for(const op of unit.ops())visitExpressionsInOp(op,(expr=>{isIrExpression(expr)&&expr instanceof PureFunctionExpr&&(hasUsesVarOffsetTrait(expr)&&(expr.varOffset=varCount),hasConsumesVarsTrait(expr)&&(varCount+=varsUsedByIrExpression(expr)))}));unit.vars=varCount}if(job instanceof ComponentCompilationJob)for(const unit of job.units)for(const op of unit.create){if(op.kind!==OpKind.Template&&op.kind!==OpKind.RepeaterCreate)continue;const childView=job.views.get(op.xref);op.vars=childView.vars}}},{kind:CompilationJobKind.Tmpl,fn:function generateAdvance(job){for(const unit of job.units){const slotMap=new Map;for(const op of unit.create)if(hasConsumesSlotTrait(op)){if(null===op.handle.slot)throw new Error("AssertionError: expected slots to have been allocated before generating advance() calls");slotMap.set(op.xref,op.handle.slot)}let slotContext=0;for(const op of unit.update){let consumer=null;if(hasDependsOnSlotContextTrait(op)?consumer=op:visitExpressionsInOp(op,(expr=>{null===consumer&&hasDependsOnSlotContextTrait(expr)&&(consumer=expr)})),null===consumer)continue;if(!slotMap.has(consumer.target))throw new Error(`AssertionError: reference to unknown slot for target ${consumer.target}`);const slot=slotMap.get(consumer.target);if(slotContext!==slot){const delta=slot-slotContext;if(delta<0)throw new Error("AssertionError: slot counter should never need to move backwards");OpList.insertBefore(createAdvanceOp(delta,consumer.sourceSpan),op),slotContext=slot}}}}},{kind:CompilationJobKind.Both,fn:function nameFunctionsAndVariables(job){addNamesToView(job.root,job.componentName,{index:0},job.compatibility===CompatibilityMode.TemplateDefinitionBuilder)}},{kind:CompilationJobKind.Tmpl,fn:function resolveDeferDepsFns(job){for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.Defer){if(null!==op.resolverFn)continue;if(null!==op.ownResolverFn){if(null===op.handle.slot)throw new Error("AssertionError: slot must be assigned before extracting defer deps functions");const fullPathName=unit.fnName?.replace("_Template","");op.resolverFn=job.pool.getSharedFunctionReference(op.ownResolverFn,`${fullPathName}_Defer_${op.handle.slot}_DepsFn`,!1)}}}},{kind:CompilationJobKind.Tmpl,fn:function mergeNextContextExpressions(job){for(const unit of job.units){for(const op of unit.create)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||mergeNextContextsInOps(op.handlerOps);mergeNextContextsInOps(unit.update)}}},{kind:CompilationJobKind.Tmpl,fn:function generateNgContainerOps(job){for(const unit of job.units){const updatedElementXrefs=new Set;for(const op of unit.create)op.kind===OpKind.ElementStart&&"ng-container"===op.tag&&(op.kind=OpKind.ContainerStart,updatedElementXrefs.add(op.xref)),op.kind===OpKind.ElementEnd&&updatedElementXrefs.has(op.xref)&&(op.kind=OpKind.ContainerEnd)}}},{kind:CompilationJobKind.Tmpl,fn:function collapseEmptyInstructions(job){for(const unit of job.units)for(const op of unit.create){const opReplacements=REPLACEMENTS.get(op.kind);if(void 0===opReplacements)continue;const[startKind,mergedKind]=opReplacements;let prevOp=op.prev;for(;null!==prevOp&&IGNORED_OP_KINDS.has(prevOp.kind);)prevOp=prevOp.prev;null!==prevOp&&prevOp.kind===startKind&&(prevOp.kind=mergedKind,OpList.remove(op))}}},{kind:CompilationJobKind.Tmpl,fn:function disableBindings$1(job){const elements=new Map;for(const view of job.units)for(const op of view.create)isElementOrContainerOp(op)&&elements.set(op.xref,op);for(const unit of job.units)for(const op of unit.create)op.kind!==OpKind.ElementStart&&op.kind!==OpKind.ContainerStart||!op.nonBindable||OpList.insertAfter((xref=op.xref,{kind:OpKind.DisableBindings,xref,...NEW_OP}),op),op.kind!==OpKind.ElementEnd&&op.kind!==OpKind.ContainerEnd||!lookupElement(elements,op.xref).nonBindable||OpList.insertBefore(createEnableBindingsOp(op.xref),op);var xref}},{kind:CompilationJobKind.Both,fn:function extractPureFunctions(job){for(const view of job.units)for(const op of view.ops())visitExpressionsInOp(op,(expr=>{if(!(expr instanceof PureFunctionExpr)||null===expr.body)return;const constantDef=new PureFunctionConstant(expr.args.length);expr.fn=job.pool.getSharedConstant(constantDef,expr.body),expr.body=null}))}},{kind:CompilationJobKind.Both,fn:function reify(job){for(const unit of job.units)reifyCreateOperations(unit,unit.create),reifyUpdateOperations(unit,unit.update)}},{kind:CompilationJobKind.Both,fn:function chain(job){for(const unit of job.units)chainOperationsInList(unit.create),chainOperationsInList(unit.update)}}];function transform(job,kind){for(const phase of phases)phase.kind!==kind&&phase.kind!==CompilationJobKind.Both||phase.fn(job)}function emitTemplateFn(tpl,pool){const rootFn=emitView(tpl.root);return emitChildViews(tpl.root,pool),rootFn}function emitChildViews(parent,pool){for(const unit of parent.job.units){if(unit.parent!==parent.xref)continue;emitChildViews(unit,pool);const viewFn=emitView(unit);pool.statements.push(viewFn.toDeclStmt(viewFn.name))}}function emitView(view){if(null===view.fnName)throw new Error(`AssertionError: view ${view.xref} is unnamed`);const createStatements=[];for(const op of view.create){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all create ops to have been compiled, but got ${OpKind[op.kind]}`);createStatements.push(op.statement)}const updateStatements=[];for(const op of view.update){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all update ops to have been compiled, but got ${OpKind[op.kind]}`);updateStatements.push(op.statement)}const createCond=maybeGenerateRfBlock(1,createStatements),updateCond=maybeGenerateRfBlock(2,updateStatements);return fn([new FnParam("rf"),new FnParam("ctx")],[...createCond,...updateCond],void 0,void 0,view.fnName)}function maybeGenerateRfBlock(flag,statements){return 0===statements.length?[]:[ifStmt(new BinaryOperatorExpr(BinaryOperator.BitwiseAnd,variable("rf"),literal(flag)),statements)]}const compatibilityMode=CompatibilityMode.TemplateDefinitionBuilder,domSchema=new DomElementSchemaRegistry,NG_TEMPLATE_TAG_NAME="ng-template";function isI18nRootNode(meta){return meta instanceof Message}function ingestHostProperty(job,property,bindingKind,securityContexts){let expression;const ast=property.expression.ast;expression=ast instanceof Interpolation$1?new Interpolation(ast.strings,ast.expressions.map((expr=>convertAst(expr,job,property.sourceSpan))),[]):convertAst(ast,job,property.sourceSpan),job.root.update.push(createBindingOp(job.root.xref,bindingKind,property.name,expression,null,securityContexts,!1,!1,null,null,property.sourceSpan))}function ingestHostAttribute(job,name,value,securityContexts){const attrBinding=createBindingOp(job.root.xref,BindingKind.Attribute,name,value,null,securityContexts,!0,!1,null,null,value.sourceSpan);job.root.update.push(attrBinding)}function ingestHostEvent(job,event){const[phase,target]=event.type!==ParsedEventType.Animation?[null,event.targetOrPhase]:[event.targetOrPhase,null],eventBinding=createListenerOp(job.root.xref,new SlotHandle,event.name,null,makeListenerHandlerOps(job.root,event.handler,event.handlerSpan),phase,target,!0,event.sourceSpan);job.root.create.push(eventBinding)}function ingestNodes(unit,template){for(const node of template)if(node instanceof Element$1)ingestElement(unit,node);else if(node instanceof Template)ingestTemplate(unit,node);else if(node instanceof Content)ingestContent(unit,node);else if(node instanceof Text$3)ingestText(unit,node,null);else if(node instanceof BoundText)ingestBoundText(unit,node,null);else if(node instanceof IfBlock)ingestIfBlock(unit,node);else if(node instanceof SwitchBlock)ingestSwitchBlock(unit,node);else if(node instanceof DeferredBlock)ingestDeferBlock(unit,node);else if(node instanceof Icu$1)ingestIcu(unit,node);else if(node instanceof ForLoopBlock)ingestForBlock(unit,node);else{if(!(node instanceof LetDeclaration$1))throw new Error(`Unsupported template node: ${node.constructor.name}`);ingestLetDeclaration(unit,node)}}function ingestElement(unit,element){if(void 0!==element.i18n&&!(element.i18n instanceof Message||element.i18n instanceof TagPlaceholder))throw Error(`Unhandled i18n metadata type for element: ${element.i18n.constructor.name}`);const id=unit.job.allocateXrefId(),[namespaceKey,elementName]=splitNsName(element.name),startOp=function createElementStartOp(tag,xref,namespace,i18nPlaceholder,startSourceSpan,wholeSourceSpan){return{kind:OpKind.ElementStart,xref,tag,handle:new SlotHandle,attributes:null,localRefs:[],nonBindable:!1,namespace,i18nPlaceholder,startSourceSpan,wholeSourceSpan,...TRAIT_CONSUMES_SLOT,...NEW_OP}}(elementName,id,namespaceForKey(namespaceKey),element.i18n instanceof TagPlaceholder?element.i18n:void 0,element.startSourceSpan,element.sourceSpan);unit.create.push(startOp),function ingestElementBindings(unit,op,element){let bindings=new Array,i18nAttributeBindingNames=new Set;for(const attr of element.attributes){const securityContext=domSchema.securityContext(element.name,attr.name,!0);bindings.push(createBindingOp(op.xref,BindingKind.Attribute,attr.name,convertAstWithInterpolation(unit.job,attr.value,attr.i18n),null,securityContext,!0,!1,null,asMessage(attr.i18n),attr.sourceSpan)),attr.i18n&&i18nAttributeBindingNames.add(attr.name)}for(const input of element.inputs)i18nAttributeBindingNames.has(input.name)&&console.error(`On component ${unit.job.componentName}, the binding ${input.name} is both an i18n attribute and a property. You may want to remove the property binding. This will become a compilation error in future versions of Angular.`),bindings.push(createBindingOp(op.xref,BINDING_KINDS.get(input.type),input.name,convertAstWithInterpolation(unit.job,astOf(input.value),input.i18n),input.unit,input.securityContext,!1,!1,null,asMessage(input.i18n)??null,input.sourceSpan));unit.create.push(bindings.filter((b=>b?.kind===OpKind.ExtractedAttribute))),unit.update.push(bindings.filter((b=>b?.kind===OpKind.Binding)));for(const output of element.outputs){if(output.type===ParsedEventType.Animation&&null===output.phase)throw Error("Animation listener should have a phase");output.type===ParsedEventType.TwoWay?unit.create.push(createTwoWayListenerOp(op.xref,op.handle,output.name,op.tag,makeTwoWayListenerHandlerOps(unit,output.handler,output.handlerSpan),output.sourceSpan)):unit.create.push(createListenerOp(op.xref,op.handle,output.name,op.tag,makeListenerHandlerOps(unit,output.handler,output.handlerSpan),output.phase,output.target,!1,output.sourceSpan))}null!==bindings.some((b=>b?.i18nMessage))&&unit.create.push(createI18nAttributesOp(unit.job.allocateXrefId(),new SlotHandle,op.xref))}(unit,startOp,element),ingestReferences(startOp,element);let i18nBlockId=null;element.i18n instanceof Message&&(i18nBlockId=unit.job.allocateXrefId(),unit.create.push(createI18nStartOp(i18nBlockId,element.i18n,void 0,element.startSourceSpan))),ingestNodes(unit,element.children);const endOp=function createElementEndOp(xref,sourceSpan){return{kind:OpKind.ElementEnd,xref,sourceSpan,...NEW_OP}}(id,element.endSourceSpan??element.startSourceSpan);unit.create.push(endOp),null!==i18nBlockId&&OpList.insertBefore(createI18nEndOp(i18nBlockId,element.endSourceSpan??element.startSourceSpan),endOp)}function ingestTemplate(unit,tmpl){if(void 0!==tmpl.i18n&&!(tmpl.i18n instanceof Message||tmpl.i18n instanceof TagPlaceholder))throw Error(`Unhandled i18n metadata type for template: ${tmpl.i18n.constructor.name}`);const childView=unit.job.allocateView(unit.xref);let tagNameWithoutNamespace=tmpl.tagName,namespacePrefix="";tmpl.tagName&&([namespacePrefix,tagNameWithoutNamespace]=splitNsName(tmpl.tagName));const i18nPlaceholder=tmpl.i18n instanceof TagPlaceholder?tmpl.i18n:void 0,namespace=namespaceForKey(namespacePrefix),functionNameSuffix=null===tagNameWithoutNamespace?"":prefixWithNamespace(tagNameWithoutNamespace,namespace),templateKind=function isPlainTemplate(tmpl){return splitNsName(tmpl.tagName??"")[1]===NG_TEMPLATE_TAG_NAME}(tmpl)?TemplateKind.NgTemplate:TemplateKind.Structural,templateOp=createTemplateOp(childView.xref,templateKind,tagNameWithoutNamespace,functionNameSuffix,namespace,i18nPlaceholder,tmpl.startSourceSpan,tmpl.sourceSpan);unit.create.push(templateOp),function ingestTemplateBindings(unit,op,template,templateKind){let bindings=new Array;for(const attr of template.templateAttrs)if(attr instanceof TextAttribute){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME,attr.name,!0);bindings.push(createTemplateBinding(unit,op.xref,BindingType.Attribute,attr.name,attr.value,null,securityContext,!0,templateKind,asMessage(attr.i18n),attr.sourceSpan))}else bindings.push(createTemplateBinding(unit,op.xref,attr.type,attr.name,astOf(attr.value),attr.unit,attr.securityContext,!0,templateKind,asMessage(attr.i18n),attr.sourceSpan));for(const attr of template.attributes){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME,attr.name,!0);bindings.push(createTemplateBinding(unit,op.xref,BindingType.Attribute,attr.name,attr.value,null,securityContext,!1,templateKind,asMessage(attr.i18n),attr.sourceSpan))}for(const input of template.inputs)bindings.push(createTemplateBinding(unit,op.xref,input.type,input.name,astOf(input.value),input.unit,input.securityContext,!1,templateKind,asMessage(input.i18n),input.sourceSpan));unit.create.push(bindings.filter((b=>b?.kind===OpKind.ExtractedAttribute))),unit.update.push(bindings.filter((b=>b?.kind===OpKind.Binding)));for(const output of template.outputs){if(output.type===ParsedEventType.Animation&&null===output.phase)throw Error("Animation listener should have a phase");if(templateKind===TemplateKind.NgTemplate&&(output.type===ParsedEventType.TwoWay?unit.create.push(createTwoWayListenerOp(op.xref,op.handle,output.name,op.tag,makeTwoWayListenerHandlerOps(unit,output.handler,output.handlerSpan),output.sourceSpan)):unit.create.push(createListenerOp(op.xref,op.handle,output.name,op.tag,makeListenerHandlerOps(unit,output.handler,output.handlerSpan),output.phase,output.target,!1,output.sourceSpan))),templateKind===TemplateKind.Structural&&output.type!==ParsedEventType.Animation){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME,output.name,!1);unit.create.push(createExtractedAttributeOp(op.xref,BindingKind.Property,null,output.name,null,null,null,securityContext))}}null!==bindings.some((b=>b?.i18nMessage))&&unit.create.push(createI18nAttributesOp(unit.job.allocateXrefId(),new SlotHandle,op.xref))}(unit,templateOp,tmpl,templateKind),ingestReferences(templateOp,tmpl),ingestNodes(childView,tmpl.children);for(const{name,value}of tmpl.variables)childView.contextVariables.set(name,""!==value?value:"$implicit");if(templateKind===TemplateKind.NgTemplate&&tmpl.i18n instanceof Message){const id=unit.job.allocateXrefId();OpList.insertAfter(createI18nStartOp(id,tmpl.i18n,void 0,tmpl.startSourceSpan),childView.create.head),OpList.insertBefore(createI18nEndOp(id,tmpl.endSourceSpan??tmpl.startSourceSpan),childView.create.tail)}}function ingestContent(unit,content){if(void 0!==content.i18n&&!(content.i18n instanceof TagPlaceholder))throw Error(`Unhandled i18n metadata type for element: ${content.i18n.constructor.name}`);let fallbackView=null;content.children.some((child=>!(child instanceof Comment$1||child instanceof Text$3&&!(child.value.trim().length>0))))&&(fallbackView=unit.job.allocateView(unit.xref),ingestNodes(fallbackView,content.children));const op=function createProjectionOp(xref,selector,i18nPlaceholder,fallbackView,sourceSpan){return{kind:OpKind.Projection,xref,handle:new SlotHandle,selector,i18nPlaceholder,fallbackView,projectionSlotIndex:0,attributes:null,localRefs:[],sourceSpan,...NEW_OP,...TRAIT_CONSUMES_SLOT,numSlotsUsed:null===fallbackView?1:2}}(unit.job.allocateXrefId(),content.selector,content.i18n,fallbackView?.xref??null,content.sourceSpan);for(const attr of content.attributes){const securityContext=domSchema.securityContext(content.name,attr.name,!0);unit.update.push(createBindingOp(op.xref,BindingKind.Attribute,attr.name,literal(attr.value),null,securityContext,!0,!1,null,asMessage(attr.i18n),attr.sourceSpan))}unit.create.push(op)}function ingestText(unit,text,icuPlaceholder){unit.create.push(createTextOp(unit.job.allocateXrefId(),text.value,icuPlaceholder,text.sourceSpan))}function ingestBoundText(unit,text,icuPlaceholder){let value=text.value;if(value instanceof ASTWithSource&&(value=value.ast),!(value instanceof Interpolation$1))throw new Error(`AssertionError: expected Interpolation for BoundText node, got ${value.constructor.name}`);if(void 0!==text.i18n&&!(text.i18n instanceof Container))throw Error(`Unhandled i18n metadata type for text interpolation: ${text.i18n?.constructor.name}`);const i18nPlaceholders=text.i18n instanceof Container?text.i18n.children.filter((node=>node instanceof Placeholder)).map((placeholder=>placeholder.name)):[];if(i18nPlaceholders.length>0&&i18nPlaceholders.length!==value.expressions.length)throw Error(`Unexpected number of i18n placeholders (${value.expressions.length}) for BoundText with ${value.expressions.length} expressions`);const textXref=unit.job.allocateXrefId();unit.create.push(createTextOp(textXref,"",icuPlaceholder,text.sourceSpan));const baseSourceSpan=unit.job.compatibility?null:text.sourceSpan;unit.update.push(function createInterpolateTextOp(xref,interpolation,sourceSpan){return{kind:OpKind.InterpolateText,target:xref,interpolation,sourceSpan,...TRAIT_DEPENDS_ON_SLOT_CONTEXT,...TRAIT_CONSUMES_VARS,...NEW_OP}}(textXref,new Interpolation(value.strings,value.expressions.map((expr=>convertAst(expr,unit.job,baseSourceSpan))),i18nPlaceholders),text.sourceSpan))}function ingestIfBlock(unit,ifBlock){let firstXref=null,conditions=[];for(let i=0;iconvertAst(arg,job,baseSourceSpan))),void 0,convertSourceSpan(ast.span,baseSourceSpan))}if(ast instanceof LiteralPrimitive)return literal(ast.value,void 0,convertSourceSpan(ast.span,baseSourceSpan));if(!(ast instanceof Unary)){if(ast instanceof Binary){const operator=BINARY_OPERATORS.get(ast.operation);if(void 0===operator)throw new Error(`AssertionError: unknown binary operator ${ast.operation}`);return new BinaryOperatorExpr(operator,convertAst(ast.left,job,baseSourceSpan),convertAst(ast.right,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan))}if(ast instanceof ThisReceiver)return new ContextExpr(job.root.xref);if(ast instanceof KeyedRead)return new ReadKeyExpr(convertAst(ast.receiver,job,baseSourceSpan),convertAst(ast.key,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof Chain)throw new Error("AssertionError: Chain in unknown context");if(ast instanceof LiteralMap){const entries=ast.keys.map(((key,idx)=>{const value=ast.values[idx];return new LiteralMapEntry(key.key,convertAst(value,job,baseSourceSpan),key.quoted)}));return new LiteralMapExpr(entries,void 0,convertSourceSpan(ast.span,baseSourceSpan))}if(ast instanceof LiteralArray)return new LiteralArrayExpr(ast.expressions.map((expr=>convertAst(expr,job,baseSourceSpan))));if(ast instanceof Conditional)return new ConditionalExpr(convertAst(ast.condition,job,baseSourceSpan),convertAst(ast.trueExp,job,baseSourceSpan),convertAst(ast.falseExp,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof NonNullAssert)return convertAst(ast.expression,job,baseSourceSpan);if(ast instanceof BindingPipe)return new PipeBindingExpr(job.allocateXrefId(),new SlotHandle,ast.name,[convertAst(ast.exp,job,baseSourceSpan),...ast.args.map((arg=>convertAst(arg,job,baseSourceSpan)))]);if(ast instanceof SafeKeyedRead)return new SafeKeyedReadExpr(convertAst(ast.receiver,job,baseSourceSpan),convertAst(ast.key,job,baseSourceSpan),convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof SafePropertyRead)return new SafePropertyReadExpr(convertAst(ast.receiver,job,baseSourceSpan),ast.name);if(ast instanceof SafeCall)return new SafeInvokeFunctionExpr(convertAst(ast.receiver,job,baseSourceSpan),ast.args.map((a=>convertAst(a,job,baseSourceSpan))));if(ast instanceof EmptyExpr$1)return new EmptyExpr(convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof PrefixNot)return not(convertAst(ast.expression,job,baseSourceSpan),convertSourceSpan(ast.span,baseSourceSpan));throw new Error(`Unhandled expression type "${ast.constructor.name}" in file "${baseSourceSpan?.start.file.url}"`)}switch(ast.operator){case"+":return new UnaryOperatorExpr(UnaryOperator.Plus,convertAst(ast.expr,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));case"-":return new UnaryOperatorExpr(UnaryOperator.Minus,convertAst(ast.expr,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));default:throw new Error(`AssertionError: unknown unary operator ${ast.operator}`)}}function convertAstWithInterpolation(job,value,i18nMeta,sourceSpan){let expression;return expression=value instanceof Interpolation$1?new Interpolation(value.strings,value.expressions.map((e=>convertAst(e,job,sourceSpan??null))),Object.keys(asMessage(i18nMeta)?.placeholders??{})):value instanceof AST?convertAst(value,job,sourceSpan??null):literal(value),expression}const BINDING_KINDS=new Map([[BindingType.Property,BindingKind.Property],[BindingType.TwoWay,BindingKind.TwoWayProperty],[BindingType.Attribute,BindingKind.Attribute],[BindingType.Class,BindingKind.ClassName],[BindingType.Style,BindingKind.StyleProperty],[BindingType.Animation,BindingKind.Animation]]);function asMessage(i18nMeta){if(null==i18nMeta)return null;if(!(i18nMeta instanceof Message))throw Error(`Expected i18n meta to be a Message, but got: ${i18nMeta.constructor.name}`);return i18nMeta}function createTemplateBinding(view,xref,type,name,value,unit,securityContext,isStructuralTemplateAttribute,templateKind,i18nMessage,sourceSpan){const isTextBinding="string"==typeof value;if(templateKind===TemplateKind.Structural){if(!isStructuralTemplateAttribute)switch(type){case BindingType.Property:case BindingType.Class:case BindingType.Style:return createExtractedAttributeOp(xref,BindingKind.Property,null,name,null,null,i18nMessage,securityContext);case BindingType.TwoWay:return createExtractedAttributeOp(xref,BindingKind.TwoWayProperty,null,name,null,null,i18nMessage,securityContext)}if(!isTextBinding&&(type===BindingType.Attribute||type===BindingType.Animation))return null}let bindingType=BINDING_KINDS.get(type);return templateKind===TemplateKind.NgTemplate&&(type===BindingType.Class||type===BindingType.Style||type===BindingType.Attribute&&!isTextBinding)&&(bindingType=BindingKind.Property),createBindingOp(xref,bindingType,name,convertAstWithInterpolation(view.job,value,i18nMessage),unit,securityContext,isTextBinding,isStructuralTemplateAttribute,templateKind,i18nMessage,sourceSpan)}function makeListenerHandlerOps(unit,handler,handlerSpan){handler=astOf(handler);const handlerOps=new Array;let handlerExprs=handler instanceof Chain?handler.expressions:[handler];if(0===handlerExprs.length)throw new Error("Expected listener to have non-empty expression list.");const expressions=handlerExprs.map((expr=>convertAst(expr,unit.job,handlerSpan))),returnExpr=expressions.pop();return handlerOps.push(...expressions.map((e=>createStatementOp(new ExpressionStatement(e,e.sourceSpan))))),handlerOps.push(createStatementOp(new ReturnStatement(returnExpr,returnExpr.sourceSpan))),handlerOps}function makeTwoWayListenerHandlerOps(unit,handler,handlerSpan){handler=astOf(handler);const handlerOps=new Array;if(handler instanceof Chain){if(1!==handler.expressions.length)throw new Error("Expected two-way listener to have a single expression.");handler=handler.expressions[0]}const handlerExpr=convertAst(handler,unit.job,handlerSpan),eventReference=new LexicalReadExpr("$event"),twoWaySetExpr=new TwoWayBindingSetExpr(handlerExpr,eventReference);return handlerOps.push(createStatementOp(new ExpressionStatement(twoWaySetExpr))),handlerOps.push(createStatementOp(new ReturnStatement(eventReference))),handlerOps}function astOf(ast){return ast instanceof ASTWithSource?ast.ast:ast}function ingestReferences(op,element){!function assertIsArray(value){if(!Array.isArray(value))throw new Error("AssertionError: expected an array")}(op.localRefs);for(const{name,value}of element.references)op.localRefs.push({name,target:value})}function convertSourceSpan(span,baseSourceSpan){if(null===baseSourceSpan)return null;const start=baseSourceSpan.start.moveBy(span.start),end=baseSourceSpan.start.moveBy(span.end),fullStart=baseSourceSpan.fullStart.moveBy(span.start);return new ParseSourceSpan(start,end,fullStart)}function ingestControlFlowInsertionPoint(unit,xref,node){let root=null;for(const child of node.children)if(!(child instanceof Comment$1)){if(null!==root)return null;(child instanceof Element$1||child instanceof Template&&null!==child.tagName)&&(root=child)}if(null!==root){for(const attr of root.attributes){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME,attr.name,!0);unit.update.push(createBindingOp(xref,BindingKind.Attribute,attr.name,literal(attr.value),null,securityContext,!0,!1,null,asMessage(attr.i18n),attr.sourceSpan))}for(const attr of root.inputs)if(attr.type!==BindingType.Animation&&attr.type!==BindingType.Attribute){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME,attr.name,!0);unit.create.push(createExtractedAttributeOp(xref,BindingKind.Property,null,attr.name,null,null,null,securityContext))}const tagName=root instanceof Element$1?root.name:root.tagName;return tagName===NG_TEMPLATE_TAG_NAME?null:tagName}return null}function renderFlagCheckIfStmt(flags,statements){return ifStmt(variable(RENDER_FLAGS).bitwiseAnd(literal(flags),null,!1),statements)}function createQueryCreateCall(query,constantPool,queryTypeFns,prependParams){const parameters=[];void 0!==prependParams&¶meters.push(...prependParams),query.isSignal&¶meters.push(new ReadPropExpr(variable(CONTEXT_NAME),query.propertyName)),parameters.push(function getQueryPredicate(query,constantPool){if(Array.isArray(query.predicate)){let predicate=[];return query.predicate.forEach((selector=>{const selectors=selector.split(",").map((token=>literal(token.trim())));predicate.push(...selectors)})),constantPool.getConstLiteral(literalArr(predicate),!0)}switch(query.predicate.forwardRef){case 0:case 2:return query.predicate.expression;case 1:return importExpr(Identifiers.resolveForwardRef).callFn([query.predicate.expression])}}(query,constantPool),literal(function toQueryFlags(query){return(query.descendants?1:0)|(query.static?2:0)|(query.emitDistinctChangesOnly?4:0)}(query))),query.read&¶meters.push(query.read);return importExpr(query.isSignal?queryTypeFns.signalBased:queryTypeFns.nonSignal).callFn(parameters)}const queryAdvancePlaceholder=Symbol("queryAdvancePlaceholder");function collapseAdvanceStatements(statements){const result=[];let advanceCollapseCount=0;const flushAdvanceCount=()=>{advanceCollapseCount>0&&(result.unshift(importExpr(Identifiers.queryAdvance).callFn(1===advanceCollapseCount?[]:[literal(advanceCollapseCount)]).toStmt()),advanceCollapseCount=0)};for(let i=statements.length-1;i>=0;i--){const st=statements[i];st===queryAdvancePlaceholder?advanceCollapseCount++:(flushAdvanceCount(),result.unshift(st))}return flushAdvanceCount(),result}class HtmlParser extends Parser$1{constructor(){super(getHtmlTagDefinition)}parse(source,url,options){return super.parse(source,url,options)}}class BindingParser{constructor(_exprParser,_interpolationConfig,_schemaRegistry,errors,_allowInvalidAssignmentEvents=!1){this._exprParser=_exprParser,this._interpolationConfig=_interpolationConfig,this._schemaRegistry=_schemaRegistry,this.errors=errors,this._allowInvalidAssignmentEvents=_allowInvalidAssignmentEvents}get interpolationConfig(){return this._interpolationConfig}createBoundHostProperties(properties,sourceSpan){const boundProps=[];for(const propName of Object.keys(properties)){const expression=properties[propName];"string"==typeof expression?this.parsePropertyBinding(propName,expression,!0,!1,sourceSpan,sourceSpan.start.offset,void 0,[],boundProps,sourceSpan):this._reportError(`Value of the host property binding "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`,sourceSpan)}return boundProps}createDirectiveHostEventAsts(hostListeners,sourceSpan){const targetEvents=[];for(const propName of Object.keys(hostListeners)){const expression=hostListeners[propName];"string"==typeof expression?this.parseEvent(propName,expression,!1,sourceSpan,sourceSpan,[],targetEvents,sourceSpan):this._reportError(`Value of the host listener "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`,sourceSpan)}return targetEvents}parseInterpolation(value,sourceSpan,interpolatedTokens){const sourceInfo=sourceSpan.start.toString(),absoluteOffset=sourceSpan.fullStart.offset;try{const ast=this._exprParser.parseInterpolation(value,sourceInfo,absoluteOffset,interpolatedTokens,this._interpolationConfig);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}parseInterpolationExpression(expression,sourceSpan){const sourceInfo=sourceSpan.start.toString(),absoluteOffset=sourceSpan.start.offset;try{const ast=this._exprParser.parseInterpolationExpression(expression,sourceInfo,absoluteOffset);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}parseInlineTemplateBinding(tplKey,tplValue,sourceSpan,absoluteValueOffset,targetMatchableAttrs,targetProps,targetVars,isIvyAst){const absoluteKeyOffset=sourceSpan.start.offset+1,bindings=this._parseTemplateBindings(tplKey,tplValue,sourceSpan,absoluteKeyOffset,absoluteValueOffset);for(const binding of bindings){const bindingSpan=moveParseSourceSpan(sourceSpan,binding.sourceSpan),key=binding.key.source,keySpan=moveParseSourceSpan(sourceSpan,binding.key.span);if(binding instanceof VariableBinding){const value=binding.value?binding.value.source:"$implicit",valueSpan=binding.value?moveParseSourceSpan(sourceSpan,binding.value.span):void 0;targetVars.push(new ParsedVariable(key,value,bindingSpan,keySpan,valueSpan))}else if(binding.value){const srcSpan=isIvyAst?bindingSpan:sourceSpan,valueSpan=moveParseSourceSpan(sourceSpan,binding.value.ast.sourceSpan);this._parsePropertyAst(key,binding.value,!1,srcSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps)}else targetMatchableAttrs.push([key,""]),this.parseLiteralAttr(key,null,keySpan,absoluteValueOffset,void 0,targetMatchableAttrs,targetProps,keySpan)}}_parseTemplateBindings(tplKey,tplValue,sourceSpan,absoluteKeyOffset,absoluteValueOffset){const sourceInfo=sourceSpan.start.toString();try{const bindingsResult=this._exprParser.parseTemplateBindings(tplKey,tplValue,sourceInfo,absoluteKeyOffset,absoluteValueOffset);return this._reportExpressionParserErrors(bindingsResult.errors,sourceSpan),bindingsResult.warnings.forEach((warning=>{this._reportError(warning,sourceSpan,ParseErrorLevel.WARNING)})),bindingsResult.templateBindings}catch(e){return this._reportError(`${e}`,sourceSpan),[]}}parseLiteralAttr(name,value,sourceSpan,absoluteOffset,valueSpan,targetMatchableAttrs,targetProps,keySpan){isAnimationLabel(name)?(name=name.substring(1),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+1,keySpan.end.offset))),value&&this._reportError('Assigning animation triggers via @prop="exp" attributes with an expression is invalid. Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.',sourceSpan,ParseErrorLevel.ERROR),this._parseAnimation(name,value,sourceSpan,absoluteOffset,keySpan,valueSpan,targetMatchableAttrs,targetProps)):targetProps.push(new ParsedProperty(name,this._exprParser.wrapLiteralPrimitive(value,"",absoluteOffset),ParsedPropertyType.LITERAL_ATTR,sourceSpan,keySpan,valueSpan))}parsePropertyBinding(name,expression,isHost,isPartOfAssignmentBinding,sourceSpan,absoluteOffset,valueSpan,targetMatchableAttrs,targetProps,keySpan){0===name.length&&this._reportError("Property name is missing in binding",sourceSpan);let isAnimationProp=!1;name.startsWith("animate-")?(isAnimationProp=!0,name=name.substring(8),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+8,keySpan.end.offset)))):isAnimationLabel(name)&&(isAnimationProp=!0,name=name.substring(1),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+1,keySpan.end.offset)))),isAnimationProp?this._parseAnimation(name,expression,sourceSpan,absoluteOffset,keySpan,valueSpan,targetMatchableAttrs,targetProps):this._parsePropertyAst(name,this.parseBinding(expression,isHost,valueSpan||sourceSpan,absoluteOffset),isPartOfAssignmentBinding,sourceSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps)}parsePropertyInterpolation(name,value,sourceSpan,valueSpan,targetMatchableAttrs,targetProps,keySpan,interpolatedTokens){const expr=this.parseInterpolation(value,valueSpan||sourceSpan,interpolatedTokens);return!!expr&&(this._parsePropertyAst(name,expr,!1,sourceSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps),!0)}_parsePropertyAst(name,ast,isPartOfAssignmentBinding,sourceSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps){targetMatchableAttrs.push([name,ast.source]),targetProps.push(new ParsedProperty(name,ast,isPartOfAssignmentBinding?ParsedPropertyType.TWO_WAY:ParsedPropertyType.DEFAULT,sourceSpan,keySpan,valueSpan))}_parseAnimation(name,expression,sourceSpan,absoluteOffset,keySpan,valueSpan,targetMatchableAttrs,targetProps){0===name.length&&this._reportError("Animation trigger is missing",sourceSpan);const ast=this.parseBinding(expression||"undefined",!1,valueSpan||sourceSpan,absoluteOffset);targetMatchableAttrs.push([name,ast.source]),targetProps.push(new ParsedProperty(name,ast,ParsedPropertyType.ANIMATION,sourceSpan,keySpan,valueSpan))}parseBinding(value,isHostBinding,sourceSpan,absoluteOffset){const sourceInfo=(sourceSpan&&sourceSpan.start||"(unknown)").toString();try{const ast=isHostBinding?this._exprParser.parseSimpleBinding(value,sourceInfo,absoluteOffset,this._interpolationConfig):this._exprParser.parseBinding(value,sourceInfo,absoluteOffset,this._interpolationConfig);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}createBoundElementProperty(elementSelector,boundProp,skipValidation=!1,mapPropertyName=!0){if(boundProp.isAnimation)return new BoundElementProperty(boundProp.name,BindingType.Animation,SecurityContext.NONE,boundProp.expression,null,boundProp.sourceSpan,boundProp.keySpan,boundProp.valueSpan);let bindingType,unit=null,boundPropertyName=null;const parts=boundProp.name.split(".");let securityContexts;if(parts.length>1)if("attr"==parts[0]){boundPropertyName=parts.slice(1).join("."),skipValidation||this._validatePropertyOrAttributeName(boundPropertyName,boundProp.sourceSpan,!0),securityContexts=calcPossibleSecurityContexts(this._schemaRegistry,elementSelector,boundPropertyName,!0);const nsSeparatorIdx=boundPropertyName.indexOf(":");if(nsSeparatorIdx>-1){const ns=boundPropertyName.substring(0,nsSeparatorIdx),name=boundPropertyName.substring(nsSeparatorIdx+1);boundPropertyName=mergeNsAndName(ns,name)}bindingType=BindingType.Attribute}else"class"==parts[0]?(boundPropertyName=parts[1],bindingType=BindingType.Class,securityContexts=[SecurityContext.NONE]):"style"==parts[0]&&(unit=parts.length>2?parts[2]:null,boundPropertyName=parts[1],bindingType=BindingType.Style,securityContexts=[SecurityContext.STYLE]);if(null===boundPropertyName){const mappedPropName=this._schemaRegistry.getMappedPropName(boundProp.name);boundPropertyName=mapPropertyName?mappedPropName:boundProp.name,securityContexts=calcPossibleSecurityContexts(this._schemaRegistry,elementSelector,mappedPropName,!1),bindingType=boundProp.type===ParsedPropertyType.TWO_WAY?BindingType.TwoWay:BindingType.Property,skipValidation||this._validatePropertyOrAttributeName(mappedPropName,boundProp.sourceSpan,!1)}return new BoundElementProperty(boundPropertyName,bindingType,securityContexts[0],boundProp.expression,unit,boundProp.sourceSpan,boundProp.keySpan,boundProp.valueSpan)}parseEvent(name,expression,isAssignmentEvent,sourceSpan,handlerSpan,targetMatchableAttrs,targetEvents,keySpan){0===name.length&&this._reportError("Event name is missing in binding",sourceSpan),isAnimationLabel(name)?(name=name.slice(1),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+1,keySpan.end.offset))),this._parseAnimationEvent(name,expression,sourceSpan,handlerSpan,targetEvents,keySpan)):this._parseRegularEvent(name,expression,isAssignmentEvent,sourceSpan,handlerSpan,targetMatchableAttrs,targetEvents,keySpan)}calcPossibleSecurityContexts(selector,propName,isAttribute){const prop=this._schemaRegistry.getMappedPropName(propName);return calcPossibleSecurityContexts(this._schemaRegistry,selector,prop,isAttribute)}_parseAnimationEvent(name,expression,sourceSpan,handlerSpan,targetEvents,keySpan){const matches=function splitAtPeriod(input,defaultValues){return _splitAt(input,".",defaultValues)}(name,[name,""]),eventName=matches[0],phase=matches[1].toLowerCase(),ast=this._parseAction(expression,handlerSpan);targetEvents.push(new ParsedEvent(eventName,phase,ParsedEventType.Animation,ast,sourceSpan,handlerSpan,keySpan)),0===eventName.length&&this._reportError("Animation event name is missing in binding",sourceSpan),phase?"start"!==phase&&"done"!==phase&&this._reportError(`The provided animation output phase value "${phase}" for "@${eventName}" is not supported (use start or done)`,sourceSpan):this._reportError(`The animation trigger output event (@${eventName}) is missing its phase value name (start or done are currently supported)`,sourceSpan)}_parseRegularEvent(name,expression,isAssignmentEvent,sourceSpan,handlerSpan,targetMatchableAttrs,targetEvents,keySpan){const[target,eventName]=function splitAtColon(input,defaultValues){return _splitAt(input,":",defaultValues)}(name,[null,name]),prevErrorCount=this.errors.length,ast=this._parseAction(expression,handlerSpan),isValid=this.errors.length===prevErrorCount;targetMatchableAttrs.push([name,ast.source]),isAssignmentEvent&&isValid&&!this._isAllowedAssignmentEvent(ast)&&this._reportError("Unsupported expression in a two-way binding",sourceSpan),targetEvents.push(new ParsedEvent(eventName,target,isAssignmentEvent?ParsedEventType.TwoWay:ParsedEventType.Regular,ast,sourceSpan,handlerSpan,keySpan))}_parseAction(value,sourceSpan){const sourceInfo=(sourceSpan&&sourceSpan.start||"(unknown").toString(),absoluteOffset=sourceSpan&&sourceSpan.start?sourceSpan.start.offset:0;try{const ast=this._exprParser.parseAction(value,sourceInfo,absoluteOffset,this._interpolationConfig);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),!ast||ast.ast instanceof EmptyExpr$1?(this._reportError("Empty expressions are not allowed",sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)):ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}_reportError(message,sourceSpan,level=ParseErrorLevel.ERROR){this.errors.push(new ParseError(sourceSpan,message,level))}_reportExpressionParserErrors(errors,sourceSpan){for(const error of errors)this._reportError(error.message,sourceSpan)}_validatePropertyOrAttributeName(propName,sourceSpan,isAttr){const report=isAttr?this._schemaRegistry.validateAttribute(propName):this._schemaRegistry.validateProperty(propName);report.error&&this._reportError(report.msg,sourceSpan,ParseErrorLevel.ERROR)}_isAllowedAssignmentEvent(ast){return ast instanceof ASTWithSource?this._isAllowedAssignmentEvent(ast.ast):ast instanceof NonNullAssert?this._isAllowedAssignmentEvent(ast.expression):ast instanceof PropertyRead||ast instanceof KeyedRead||!!this._allowInvalidAssignmentEvents&&(ast instanceof Binary?("&&"===ast.operation||"||"===ast.operation||"??"===ast.operation)&&(ast.right instanceof PropertyRead||ast.right instanceof KeyedRead):ast instanceof Conditional||ast instanceof PrefixNot)}}function isAnimationLabel(name){return"@"==name[0]}function calcPossibleSecurityContexts(registry,selector,propName,isAttribute){const ctxs=[];return CssSelector.parse(selector).forEach((selector=>{const elementNames=selector.element?[selector.element]:registry.allKnownElementNames(),notElementNames=new Set(selector.notSelectors.filter((selector=>selector.isElementSelector())).map((selector=>selector.element))),possibleElementNames=elementNames.filter((elementName=>!notElementNames.has(elementName)));ctxs.push(...possibleElementNames.map((elementName=>registry.securityContext(elementName,propName,isAttribute))))})),0===ctxs.length?[SecurityContext.NONE]:Array.from(new Set(ctxs)).sort()}function moveParseSourceSpan(sourceSpan,absoluteSpan){const startDiff=absoluteSpan.start-sourceSpan.start.offset,endDiff=absoluteSpan.end-sourceSpan.end.offset;return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff),sourceSpan.end.moveBy(endDiff),sourceSpan.fullStart.moveBy(startDiff),sourceSpan.details)}const URL_WITH_SCHEMA_REGEXP=/^([^:/?#]+):/;function preparseElement(ast){let selectAttr=null,hrefAttr=null,relAttr=null,nonBindable=!1,projectAs="";ast.attrs.forEach((attr=>{const lcAttrName=attr.name.toLowerCase();"select"==lcAttrName?selectAttr=attr.value:"href"==lcAttrName?hrefAttr=attr.value:"rel"==lcAttrName?relAttr=attr.value:"ngNonBindable"==attr.name?nonBindable=!0:"ngProjectAs"==attr.name&&attr.value.length>0&&(projectAs=attr.value)})),selectAttr=function normalizeNgContentSelect(selectAttr){if(null===selectAttr||0===selectAttr.length)return"*";return selectAttr}(selectAttr);const nodeName=ast.name.toLowerCase();let type=PreparsedElementType.OTHER;return isNgContent(nodeName)?type=PreparsedElementType.NG_CONTENT:"style"==nodeName?type=PreparsedElementType.STYLE:"script"==nodeName?type=PreparsedElementType.SCRIPT:"link"==nodeName&&"stylesheet"==relAttr&&(type=PreparsedElementType.STYLESHEET),new PreparsedElement(type,selectAttr,hrefAttr,nonBindable,projectAs)}var PreparsedElementType;!function(PreparsedElementType){PreparsedElementType[PreparsedElementType.NG_CONTENT=0]="NG_CONTENT",PreparsedElementType[PreparsedElementType.STYLE=1]="STYLE",PreparsedElementType[PreparsedElementType.STYLESHEET=2]="STYLESHEET",PreparsedElementType[PreparsedElementType.SCRIPT=3]="SCRIPT",PreparsedElementType[PreparsedElementType.OTHER=4]="OTHER"}(PreparsedElementType||(PreparsedElementType={}));class PreparsedElement{constructor(type,selectAttr,hrefAttr,nonBindable,projectAs){this.type=type,this.selectAttr=selectAttr,this.hrefAttr=hrefAttr,this.nonBindable=nonBindable,this.projectAs=projectAs}}const FOR_LOOP_EXPRESSION_PATTERN=/^\s*([0-9A-Za-z_$]*)\s+of\s+([\S\s]*)/,FOR_LOOP_TRACK_PATTERN=/^track\s+([\S\s]*)/,CONDITIONAL_ALIAS_PATTERN=/^(as\s)+(.*)/,ELSE_IF_PATTERN=/^else[^\S\r\n]+if/,FOR_LOOP_LET_PATTERN=/^let\s+([\S\s]*)/,CHARACTERS_IN_SURROUNDING_WHITESPACE_PATTERN=/(\s*)(\S+)(\s*)/,ALLOWED_FOR_LOOP_LET_VARIABLES=new Set(["$index","$first","$last","$even","$odd","$count"]);function isConnectedForLoopBlock(name){return"empty"===name}function isConnectedIfLoopBlock(name){return"else"===name||ELSE_IF_PATTERN.test(name)}function createIfBlock(ast,connectedBlocks,visitor,bindingParser){const errors=function validateIfConnectedBlocks(connectedBlocks){const errors=[];let hasElse=!1;for(let i=0;i1&&i0&&errors.push(new ParseError(block.sourceSpan,"@else block cannot have parameters")),hasElse=!0):ELSE_IF_PATTERN.test(block.name)||errors.push(new ParseError(block.sourceSpan,`Unrecognized conditional block @${block.name}`))}return errors}(connectedBlocks),branches=[],mainBlockParams=parseConditionalBlockParameters(ast,errors,bindingParser);null!==mainBlockParams&&branches.push(new IfBlockBranch(mainBlockParams.expression,visitAll(visitor,ast.children,ast.children),mainBlockParams.expressionAlias,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.nameSpan,ast.i18n));for(const block of connectedBlocks)if(ELSE_IF_PATTERN.test(block.name)){const params=parseConditionalBlockParameters(block,errors,bindingParser);if(null!==params){const children=visitAll(visitor,block.children,block.children);branches.push(new IfBlockBranch(params.expression,children,params.expressionAlias,block.sourceSpan,block.startSourceSpan,block.endSourceSpan,block.nameSpan,block.i18n))}}else if("else"===block.name){const children=visitAll(visitor,block.children,block.children);branches.push(new IfBlockBranch(null,children,null,block.sourceSpan,block.startSourceSpan,block.endSourceSpan,block.nameSpan,block.i18n))}const ifBlockStartSourceSpan=branches.length>0?branches[0].startSourceSpan:ast.startSourceSpan,ifBlockEndSourceSpan=branches.length>0?branches[branches.length-1].endSourceSpan:ast.endSourceSpan;let wholeSourceSpan=ast.sourceSpan;const lastBranch=branches[branches.length-1];return void 0!==lastBranch&&(wholeSourceSpan=new ParseSourceSpan(ifBlockStartSourceSpan.start,lastBranch.sourceSpan.end)),{node:new IfBlock(branches,wholeSourceSpan,ast.startSourceSpan,ifBlockEndSourceSpan,ast.nameSpan),errors}}function createForLoop(ast,connectedBlocks,visitor,bindingParser){const errors=[],params=function parseForLoopParameters(block,errors,bindingParser){if(0===block.parameters.length)return errors.push(new ParseError(block.sourceSpan,"@for loop does not have an expression")),null;const[expressionParam,...secondaryParams]=block.parameters,match=function stripOptionalParentheses(param,errors){const expression=param.expression,spaceRegex=/^\s$/;let openParens=0,start=0,end=expression.length-1;for(let i=0;i-1;i--){const char=expression[i];if(")"!==char){if(spaceRegex.test(char))continue;break}if(end=i,openParens--,0===openParens)break}if(0!==openParens)return errors.push(new ParseError(param.sourceSpan,"Unclosed parentheses in expression")),null;return expression.slice(start,end)}(expressionParam,errors)?.match(FOR_LOOP_EXPRESSION_PATTERN);if(!match||0===match[2].trim().length)return errors.push(new ParseError(expressionParam.sourceSpan,'Cannot parse expression. @for loop expression must match the pattern " of "')),null;const[,itemName,rawExpression]=match;ALLOWED_FOR_LOOP_LET_VARIABLES.has(itemName)&&errors.push(new ParseError(expressionParam.sourceSpan,`@for loop item name cannot be one of ${Array.from(ALLOWED_FOR_LOOP_LET_VARIABLES).join(", ")}.`));const variableName=expressionParam.expression.split(" ")[0],variableSpan=new ParseSourceSpan(expressionParam.sourceSpan.start,expressionParam.sourceSpan.start.moveBy(variableName.length)),result={itemName:new Variable(itemName,"$implicit",variableSpan,variableSpan),trackBy:null,expression:parseBlockParameterToBinding(expressionParam,bindingParser,rawExpression),context:Array.from(ALLOWED_FOR_LOOP_LET_VARIABLES,(variableName=>{const emptySpanAfterForBlockStart=new ParseSourceSpan(block.startSourceSpan.end,block.startSourceSpan.end);return new Variable(variableName,variableName,emptySpanAfterForBlockStart,emptySpanAfterForBlockStart)}))};for(const param of secondaryParams){const letMatch=param.expression.match(FOR_LOOP_LET_PATTERN);if(null!==letMatch){const variablesSpan=new ParseSourceSpan(param.sourceSpan.start.moveBy(letMatch[0].length-letMatch[1].length),param.sourceSpan.end);parseLetParameter(param.sourceSpan,letMatch[1],variablesSpan,itemName,result.context,errors);continue}const trackMatch=param.expression.match(FOR_LOOP_TRACK_PATTERN);if(null===trackMatch)errors.push(new ParseError(param.sourceSpan,`Unrecognized @for loop paramater "${param.expression}"`));else if(null!==result.trackBy)errors.push(new ParseError(param.sourceSpan,'@for loop can only have one "track" expression'));else{const expression=parseBlockParameterToBinding(param,bindingParser,trackMatch[1]);expression.ast instanceof EmptyExpr$1&&errors.push(new ParseError(param.sourceSpan,'@for loop must have a "track" expression'));const keywordSpan=new ParseSourceSpan(param.sourceSpan.start,param.sourceSpan.start.moveBy(5));result.trackBy={expression,keywordSpan}}}return result}(ast,errors,bindingParser);let node=null,empty=null;for(const block of connectedBlocks)"empty"===block.name?null!==empty?errors.push(new ParseError(block.sourceSpan,"@for loop can only have one @empty block")):block.parameters.length>0?errors.push(new ParseError(block.sourceSpan,"@empty block cannot have parameters")):empty=new ForLoopBlockEmpty(visitAll(visitor,block.children,block.children),block.sourceSpan,block.startSourceSpan,block.endSourceSpan,block.nameSpan,block.i18n):errors.push(new ParseError(block.sourceSpan,`Unrecognized @for loop block "${block.name}"`));if(null!==params)if(null===params.trackBy)errors.push(new ParseError(ast.sourceSpan,'@for loop must have a "track" expression'));else{const endSpan=empty?.endSourceSpan??ast.endSourceSpan,sourceSpan=new ParseSourceSpan(ast.sourceSpan.start,endSpan?.end??ast.sourceSpan.end);node=new ForLoopBlock(params.itemName,params.expression,params.trackBy.expression,params.trackBy.keywordSpan,params.context,visitAll(visitor,ast.children,ast.children),empty,sourceSpan,ast.sourceSpan,ast.startSourceSpan,endSpan,ast.nameSpan,ast.i18n)}return{node,errors}}function createSwitchBlock(ast,visitor,bindingParser){const errors=function validateSwitchBlock(ast){const errors=[];let hasDefault=!1;if(1!==ast.parameters.length)return errors.push(new ParseError(ast.sourceSpan,"@switch block must have exactly one parameter")),errors;for(const node of ast.children)node instanceof Comment||node instanceof Text&&0===node.value.trim().length||(node instanceof Block&&("case"===node.name||"default"===node.name)?"default"===node.name?(hasDefault?errors.push(new ParseError(node.sourceSpan,"@switch block can only have one @default block")):node.parameters.length>0&&errors.push(new ParseError(node.sourceSpan,"@default block cannot have parameters")),hasDefault=!0):"case"===node.name&&1!==node.parameters.length&&errors.push(new ParseError(node.sourceSpan,"@case block must have exactly one parameter")):errors.push(new ParseError(node.sourceSpan,"@switch block can only contain @case and @default blocks")));return errors}(ast),primaryExpression=ast.parameters.length>0?parseBlockParameterToBinding(ast.parameters[0],bindingParser):bindingParser.parseBinding("",!1,ast.sourceSpan,0),cases=[],unknownBlocks=[];let defaultCase=null;for(const node of ast.children){if(!(node instanceof Block))continue;if(("case"!==node.name||0===node.parameters.length)&&"default"!==node.name){unknownBlocks.push(new UnknownBlock(node.name,node.sourceSpan,node.nameSpan));continue}const expression="case"===node.name?parseBlockParameterToBinding(node.parameters[0],bindingParser):null,ast=new SwitchBlockCase(expression,visitAll(visitor,node.children,node.children),node.sourceSpan,node.startSourceSpan,node.endSourceSpan,node.nameSpan,node.i18n);null===expression?defaultCase=ast:cases.push(ast)}return null!==defaultCase&&cases.push(defaultCase),{node:new SwitchBlock(primaryExpression,cases,unknownBlocks,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.nameSpan),errors}}function parseLetParameter(sourceSpan,expression,span,loopItemName,context,errors){const parts=expression.split(",");let startSpan=span.start;for(const part of parts){const expressionParts=part.split("="),name=2===expressionParts.length?expressionParts[0].trim():"",variableName=2===expressionParts.length?expressionParts[1].trim():"";if(0===name.length||0===variableName.length)errors.push(new ParseError(sourceSpan,'Invalid @for loop "let" parameter. Parameter should match the pattern " = "'));else if(ALLOWED_FOR_LOOP_LET_VARIABLES.has(variableName))if(name===loopItemName)errors.push(new ParseError(sourceSpan,`Invalid @for loop "let" parameter. Variable cannot be called "${loopItemName}"`));else if(context.some((v=>v.name===name)))errors.push(new ParseError(sourceSpan,`Duplicate "let" parameter variable "${variableName}"`));else{const[,keyLeadingWhitespace,keyName]=expressionParts[0].match(CHARACTERS_IN_SURROUNDING_WHITESPACE_PATTERN)??[],keySpan=void 0!==keyLeadingWhitespace&&2===expressionParts.length?new ParseSourceSpan(startSpan.moveBy(keyLeadingWhitespace.length),startSpan.moveBy(keyLeadingWhitespace.length+keyName.length)):span;let valueSpan;if(2===expressionParts.length){const[,valueLeadingWhitespace,implicit]=expressionParts[1].match(CHARACTERS_IN_SURROUNDING_WHITESPACE_PATTERN)??[];valueSpan=void 0!==valueLeadingWhitespace?new ParseSourceSpan(startSpan.moveBy(expressionParts[0].length+1+valueLeadingWhitespace.length),startSpan.moveBy(expressionParts[0].length+1+valueLeadingWhitespace.length+implicit.length)):void 0}const sourceSpan=new ParseSourceSpan(keySpan.start,valueSpan?.end??keySpan.end);context.push(new Variable(name,variableName,sourceSpan,keySpan,valueSpan))}else errors.push(new ParseError(sourceSpan,`Unknown "let" parameter variable "${variableName}". The allowed variables are: ${Array.from(ALLOWED_FOR_LOOP_LET_VARIABLES).join(", ")}`));startSpan=startSpan.moveBy(part.length+1)}}function parseBlockParameterToBinding(ast,bindingParser,part){let start,end;return"string"==typeof part?(start=Math.max(0,ast.expression.lastIndexOf(part)),end=start+part.length):(start=0,end=ast.expression.length),bindingParser.parseBinding(ast.expression.slice(start,end),!1,ast.sourceSpan,ast.sourceSpan.start.offset+start)}function parseConditionalBlockParameters(block,errors,bindingParser){if(0===block.parameters.length)return errors.push(new ParseError(block.sourceSpan,"Conditional block does not have an expression")),null;const expression=parseBlockParameterToBinding(block.parameters[0],bindingParser);let expressionAlias=null;for(let i=1;i0&&this.index0)throw new Error(`"${OnTriggerType.IDLE}" trigger cannot have parameters`);return new IdleDeferredTrigger(nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,prefetchSourceSpan,onSourceSpan));break;case OnTriggerType.TIMER:this.trackTrigger("timer",function createTimerTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){if(1!==parameters.length)throw new Error(`"${OnTriggerType.TIMER}" trigger must have exactly one parameter`);const delay=parseDeferredTime(parameters[0]);if(null===delay)throw new Error(`Could not parse time value of trigger "${OnTriggerType.TIMER}"`);return new TimerDeferredTrigger(delay,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan));break;case OnTriggerType.INTERACTION:this.trackTrigger("interaction",function createInteractionTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan,placeholder){return validateReferenceBasedTrigger(OnTriggerType.INTERACTION,parameters,placeholder),new InteractionDeferredTrigger(parameters[0]??null,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan,this.placeholder));break;case OnTriggerType.IMMEDIATE:this.trackTrigger("immediate",function createImmediateTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){if(parameters.length>0)throw new Error(`"${OnTriggerType.IMMEDIATE}" trigger cannot have parameters`);return new ImmediateDeferredTrigger(nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan));break;case OnTriggerType.HOVER:this.trackTrigger("hover",function createHoverTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan,placeholder){return validateReferenceBasedTrigger(OnTriggerType.HOVER,parameters,placeholder),new HoverDeferredTrigger(parameters[0]??null,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan,this.placeholder));break;case OnTriggerType.VIEWPORT:this.trackTrigger("viewport",function createViewportTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan,placeholder){return validateReferenceBasedTrigger(OnTriggerType.VIEWPORT,parameters,placeholder),new ViewportDeferredTrigger(parameters[0]??null,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan,this.placeholder));break;default:throw new Error(`Unrecognized trigger type "${identifier}"`)}}catch(e){this.error(identifier,e.message)}}consumeParameters(){const parameters=[];if(!this.token().isCharacter(40))return this.unexpectedToken(this.token()),parameters;this.advance();const commaDelimStack=[];let current="";for(;this.index0&&token.isCharacter(commaDelimStack[commaDelimStack.length-1])&&commaDelimStack.pop(),0===commaDelimStack.length&&token.isCharacter(44)&¤t.length>0?(parameters.push(current),current="",this.advance()):(current+=this.tokenText(),this.advance())}return(!this.token().isCharacter(41)||commaDelimStack.length>0)&&this.error(this.token(),"Unexpected end of expression"),this.index1)throw new Error(`"${type}" trigger can only have zero or one parameters`);if(0===parameters.length){if(null===placeholder)throw new Error(`"${type}" trigger with no parameters can only be placed on an @defer that has a @placeholder block`);if(1!==placeholder.children.length||!(placeholder.children[0]instanceof Element$1))throw new Error(`"${type}" trigger with no parameters can only be placed on an @defer that has a @placeholder block with exactly one root element node`)}}function getTriggerParametersStart(value,startPosition=0){let hasFoundSeparator=!1;for(let i=startPosition;i0){const lastConnectedBlock=connectedBlocks[connectedBlocks.length-1];lastEndSourceSpan=lastConnectedBlock.endSourceSpan,endOfLastSourceSpan=lastConnectedBlock.sourceSpan.end}const sourceSpanWithConnectedBlocks=new ParseSourceSpan(ast.sourceSpan.start,endOfLastSourceSpan);return{node:new DeferredBlock(visitAll(visitor,ast.children,ast.children),triggers,prefetchTriggers,placeholder,loading,error,ast.nameSpan,sourceSpanWithConnectedBlocks,ast.sourceSpan,ast.startSourceSpan,lastEndSourceSpan,ast.i18n),errors}}function parsePlaceholderBlock(ast,visitor){let minimumTime=null;for(const param of ast.parameters){if(!MINIMUM_PARAMETER_PATTERN.test(param.expression))throw new Error(`Unrecognized parameter in @placeholder block: "${param.expression}"`);{if(null!=minimumTime)throw new Error('@placeholder block can only have one "minimum" parameter');const parsedTime=parseDeferredTime(param.expression.slice(getTriggerParametersStart(param.expression)));if(null===parsedTime)throw new Error('Could not parse time value of parameter "minimum"');minimumTime=parsedTime}}return new DeferredBlockPlaceholder(visitAll(visitor,ast.children,ast.children),minimumTime,ast.nameSpan,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.i18n)}function parseLoadingBlock(ast,visitor){let afterTime=null,minimumTime=null;for(const param of ast.parameters)if(AFTER_PARAMETER_PATTERN.test(param.expression)){if(null!=afterTime)throw new Error('@loading block can only have one "after" parameter');const parsedTime=parseDeferredTime(param.expression.slice(getTriggerParametersStart(param.expression)));if(null===parsedTime)throw new Error('Could not parse time value of parameter "after"');afterTime=parsedTime}else{if(!MINIMUM_PARAMETER_PATTERN.test(param.expression))throw new Error(`Unrecognized parameter in @loading block: "${param.expression}"`);{if(null!=minimumTime)throw new Error('@loading block can only have one "minimum" parameter');const parsedTime=parseDeferredTime(param.expression.slice(getTriggerParametersStart(param.expression)));if(null===parsedTime)throw new Error('Could not parse time value of parameter "minimum"');minimumTime=parsedTime}}return new DeferredBlockLoading(visitAll(visitor,ast.children,ast.children),afterTime,minimumTime,ast.nameSpan,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.i18n)}function parseErrorBlock(ast,visitor){if(ast.parameters.length>0)throw new Error("@error block cannot have parameters");return new DeferredBlockError(visitAll(visitor,ast.children,ast.children),ast.nameSpan,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.i18n)}const BIND_NAME_REGEXP=/^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/,BINDING_DELIMS_BANANA_BOX={start:"[(",end:")]"},BINDING_DELIMS_PROPERTY={start:"[",end:"]"},BINDING_DELIMS_EVENT={start:"(",end:")"};class HtmlAstToIvyAst{constructor(bindingParser,options){this.bindingParser=bindingParser,this.options=options,this.errors=[],this.styles=[],this.styleUrls=[],this.ngContentSelectors=[],this.commentNodes=[],this.inI18nBlock=!1,this.processedNodes=new Set}visitElement(element){const isI18nRootElement=isI18nRootNode(element.i18n);isI18nRootElement&&(this.inI18nBlock&&this.reportError("Cannot mark an element as translatable inside of a translatable section. Please remove the nested i18n marker.",element.sourceSpan),this.inI18nBlock=!0);const preparsedElement=preparseElement(element);if(preparsedElement.type===PreparsedElementType.SCRIPT)return null;if(preparsedElement.type===PreparsedElementType.STYLE){const contents=function textContents(node){return 1===node.children.length&&node.children[0]instanceof Text?node.children[0].value:null}(element);return null!==contents&&this.styles.push(contents),null}if(preparsedElement.type===PreparsedElementType.STYLESHEET&&function isStyleUrlResolvable(url){if(null==url||0===url.length||"/"==url[0])return!1;const schemeMatch=url.match(URL_WITH_SCHEMA_REGEXP);return null===schemeMatch||"package"==schemeMatch[1]||"asset"==schemeMatch[1]}(preparsedElement.hrefAttr))return this.styleUrls.push(preparsedElement.hrefAttr),null;const isTemplateElement=isNgTemplate(element.name),parsedProperties=[],boundEvents=[],variables=[],references=[],attributes=[],i18nAttrsMeta={},templateParsedProperties=[],templateVariables=[];let children,parsedElement,elementHasInlineTemplate=!1;for(const attribute of element.attrs){let hasBinding=!1;const normalizedName=normalizeAttributeName(attribute.name);let isTemplateBinding=!1;if(attribute.i18n&&(i18nAttrsMeta[attribute.name]=attribute.i18n),normalizedName.startsWith("*")){elementHasInlineTemplate&&this.reportError("Can't have multiple template bindings on one element. Use only one attribute prefixed with *",attribute.sourceSpan),isTemplateBinding=!0,elementHasInlineTemplate=!0;const templateValue=attribute.value,templateKey=normalizedName.substring(1),parsedVariables=[],absoluteValueOffset=attribute.valueSpan?attribute.valueSpan.start.offset:attribute.sourceSpan.start.offset+attribute.name.length;this.bindingParser.parseInlineTemplateBinding(templateKey,templateValue,attribute.sourceSpan,absoluteValueOffset,[],templateParsedProperties,parsedVariables,!0),templateVariables.push(...parsedVariables.map((v=>new Variable(v.name,v.value,v.sourceSpan,v.keySpan,v.valueSpan))))}else hasBinding=this.parseAttribute(isTemplateElement,attribute,[],parsedProperties,boundEvents,variables,references);hasBinding||isTemplateBinding||attributes.push(this.visitAttribute(attribute))}if(children=preparsedElement.nonBindable?visitAll(NON_BINDABLE_VISITOR,element.children).flat(1/0):visitAll(this,element.children,element.children),preparsedElement.type===PreparsedElementType.NG_CONTENT){const selector=preparsedElement.selectAttr,attrs=element.attrs.map((attr=>this.visitAttribute(attr)));parsedElement=new Content(selector,attrs,children,element.sourceSpan,element.i18n),this.ngContentSelectors.push(selector)}else if(isTemplateElement){const attrs=this.extractAttributes(element.name,parsedProperties,i18nAttrsMeta);parsedElement=new Template(element.name,attributes,attrs.bound,boundEvents,[],children,references,variables,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n)}else{const attrs=this.extractAttributes(element.name,parsedProperties,i18nAttrsMeta);parsedElement=new Element$1(element.name,attributes,attrs.bound,boundEvents,children,references,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n)}if(elementHasInlineTemplate){const attrs=this.extractAttributes("ng-template",templateParsedProperties,i18nAttrsMeta),templateAttrs=[];attrs.literal.forEach((attr=>templateAttrs.push(attr))),attrs.bound.forEach((attr=>templateAttrs.push(attr)));const hoistedAttrs=parsedElement instanceof Element$1?{attributes:parsedElement.attributes,inputs:parsedElement.inputs,outputs:parsedElement.outputs}:{attributes:[],inputs:[],outputs:[]},i18n=isTemplateElement&&isI18nRootElement?void 0:element.i18n,name=parsedElement instanceof Template?null:parsedElement.name;parsedElement=new Template(name,hoistedAttrs.attributes,hoistedAttrs.inputs,hoistedAttrs.outputs,templateAttrs,[parsedElement],[],templateVariables,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,i18n)}return isI18nRootElement&&(this.inI18nBlock=!1),parsedElement}visitAttribute(attribute){return new TextAttribute(attribute.name,attribute.value,attribute.sourceSpan,attribute.keySpan,attribute.valueSpan,attribute.i18n)}visitText(text){return this.processedNodes.has(text)?null:this._visitTextWithInterpolation(text.value,text.sourceSpan,text.tokens,text.i18n)}visitExpansion(expansion){if(!expansion.i18n)return null;if(!isI18nRootNode(expansion.i18n))throw new Error(`Invalid type "${expansion.i18n.constructor}" for "i18n" property of ${expansion.sourceSpan.toString()}. Expected a "Message"`);const message=expansion.i18n,vars={},placeholders={};return Object.keys(message.placeholders).forEach((key=>{const value=message.placeholders[key];if(key.startsWith("VAR_")){const formattedKey=key.trim(),ast=this.bindingParser.parseInterpolationExpression(value.text,value.sourceSpan);vars[formattedKey]=new BoundText(ast,value.sourceSpan)}else placeholders[key]=this._visitTextWithInterpolation(value.text,value.sourceSpan,null)})),new Icu$1(vars,placeholders,expansion.sourceSpan,message)}visitExpansionCase(expansionCase){return null}visitComment(comment){return this.options.collectCommentNodes&&this.commentNodes.push(new Comment$1(comment.value||"",comment.sourceSpan)),null}visitLetDeclaration(decl,context){const value=this.bindingParser.parseBinding(decl.value,!1,decl.valueSpan,decl.valueSpan.start.offset);return 0===value.errors.length&&value.ast instanceof EmptyExpr$1&&this.reportError("@let declaration value cannot be empty",decl.valueSpan),new LetDeclaration$1(decl.name,value,decl.sourceSpan,decl.nameSpan,decl.valueSpan)}visitBlockParameter(){return null}visitBlock(block,context){const index=Array.isArray(context)?context.indexOf(block):-1;if(-1===index)throw new Error("Visitor invoked incorrectly. Expecting visitBlock to be invoked siblings array as its context");if(this.processedNodes.has(block))return null;let result=null;switch(block.name){case"defer":result=createDeferredBlock(block,this.findConnectedBlocks(index,context,isConnectedDeferLoopBlock),this,this.bindingParser);break;case"switch":result=createSwitchBlock(block,this,this.bindingParser);break;case"for":result=createForLoop(block,this.findConnectedBlocks(index,context,isConnectedForLoopBlock),this,this.bindingParser);break;case"if":result=createIfBlock(block,this.findConnectedBlocks(index,context,isConnectedIfLoopBlock),this,this.bindingParser);break;default:let errorMessage;isConnectedDeferLoopBlock(block.name)?(errorMessage=`@${block.name} block can only be used after an @defer block.`,this.processedNodes.add(block)):isConnectedForLoopBlock(block.name)?(errorMessage=`@${block.name} block can only be used after an @for block.`,this.processedNodes.add(block)):isConnectedIfLoopBlock(block.name)?(errorMessage=`@${block.name} block can only be used after an @if or @else if block.`,this.processedNodes.add(block)):errorMessage=`Unrecognized block @${block.name}.`,result={node:new UnknownBlock(block.name,block.sourceSpan,block.nameSpan),errors:[new ParseError(block.sourceSpan,errorMessage)]}}return this.errors.push(...result.errors),result.node}findConnectedBlocks(primaryBlockIndex,siblings,predicate){const relatedBlocks=[];for(let i=primaryBlockIndex+1;i{const i18n=i18nPropsMeta[prop.name];if(prop.isLiteral)literal.push(new TextAttribute(prop.name,prop.expression.source||"",prop.sourceSpan,prop.keySpan,prop.valueSpan,i18n));else{const bep=this.bindingParser.createBoundElementProperty(elementName,prop,!0,!1);bound.push(BoundAttribute.fromBoundElementProperty(bep,i18n))}})),{bound,literal}}parseAttribute(isTemplateElement,attribute,matchableAttributes,parsedProperties,boundEvents,variables,references){const name=normalizeAttributeName(attribute.name),value=attribute.value,srcSpan=attribute.sourceSpan,absoluteOffset=attribute.valueSpan?attribute.valueSpan.start.offset:srcSpan.start.offset;function createKeySpan(srcSpan,prefix,identifier){const normalizationAdjustment=attribute.name.length-name.length,keySpanStart=srcSpan.start.moveBy(prefix.length+normalizationAdjustment),keySpanEnd=keySpanStart.moveBy(identifier.length);return new ParseSourceSpan(keySpanStart,keySpanEnd,keySpanStart,identifier)}const bindParts=name.match(BIND_NAME_REGEXP);if(bindParts){if(null!=bindParts[1]){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[1],identifier);this.bindingParser.parsePropertyBinding(identifier,value,!1,!1,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan)}else if(bindParts[2])if(isTemplateElement){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[2],identifier);this.parseVariable(identifier,value,srcSpan,keySpan,attribute.valueSpan,variables)}else this.reportError('"let-" is only supported on ng-template elements.',srcSpan);else if(bindParts[3]){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[3],identifier);this.parseReference(identifier,value,srcSpan,keySpan,attribute.valueSpan,references)}else if(bindParts[4]){const events=[],identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[4],identifier);this.bindingParser.parseEvent(identifier,value,!1,srcSpan,attribute.valueSpan||srcSpan,matchableAttributes,events,keySpan),addEvents(events,boundEvents)}else if(bindParts[5]){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[5],identifier);this.bindingParser.parsePropertyBinding(identifier,value,!1,!0,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan),this.parseAssignmentEvent(identifier,value,srcSpan,attribute.valueSpan,matchableAttributes,boundEvents,keySpan)}else if(bindParts[6]){const keySpan=createKeySpan(srcSpan,"",name);this.bindingParser.parseLiteralAttr(name,value,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan)}return!0}let delims=null;if(name.startsWith(BINDING_DELIMS_BANANA_BOX.start)?delims=BINDING_DELIMS_BANANA_BOX:name.startsWith(BINDING_DELIMS_PROPERTY.start)?delims=BINDING_DELIMS_PROPERTY:name.startsWith(BINDING_DELIMS_EVENT.start)&&(delims=BINDING_DELIMS_EVENT),null!==delims&&name.endsWith(delims.end)&&name.length>delims.start.length+delims.end.length){const identifier=name.substring(delims.start.length,name.length-delims.end.length),keySpan=createKeySpan(srcSpan,delims.start,identifier);if(delims.start===BINDING_DELIMS_BANANA_BOX.start)this.bindingParser.parsePropertyBinding(identifier,value,!1,!0,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan),this.parseAssignmentEvent(identifier,value,srcSpan,attribute.valueSpan,matchableAttributes,boundEvents,keySpan);else if(delims.start===BINDING_DELIMS_PROPERTY.start)this.bindingParser.parsePropertyBinding(identifier,value,!1,!1,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan);else{const events=[];this.bindingParser.parseEvent(identifier,value,!1,srcSpan,attribute.valueSpan||srcSpan,matchableAttributes,events,keySpan),addEvents(events,boundEvents)}return!0}const keySpan=createKeySpan(srcSpan,"",name);return this.bindingParser.parsePropertyInterpolation(name,value,srcSpan,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan,attribute.valueTokens??null)}_visitTextWithInterpolation(value,sourceSpan,interpolatedTokens,i18n){const valueNoNgsp=replaceNgsp(value),expr=this.bindingParser.parseInterpolation(valueNoNgsp,sourceSpan,interpolatedTokens);return expr?new BoundText(expr,sourceSpan,i18n):new Text$3(valueNoNgsp,sourceSpan)}parseVariable(identifier,value,sourceSpan,keySpan,valueSpan,variables){identifier.indexOf("-")>-1?this.reportError('"-" is not allowed in variable names',sourceSpan):0===identifier.length&&this.reportError("Variable does not have a name",sourceSpan),variables.push(new Variable(identifier,value,sourceSpan,keySpan,valueSpan))}parseReference(identifier,value,sourceSpan,keySpan,valueSpan,references){identifier.indexOf("-")>-1?this.reportError('"-" is not allowed in reference names',sourceSpan):0===identifier.length?this.reportError("Reference does not have a name",sourceSpan):references.some((reference=>reference.name===identifier))&&this.reportError(`Reference "#${identifier}" is defined more than once`,sourceSpan),references.push(new Reference(identifier,value,sourceSpan,keySpan,valueSpan))}parseAssignmentEvent(name,expression,sourceSpan,valueSpan,targetMatchableAttrs,boundEvents,keySpan){const events=[];this.bindingParser.parseEvent(`${name}Change`,expression,!0,sourceSpan,valueSpan||sourceSpan,targetMatchableAttrs,events,keySpan),addEvents(events,boundEvents)}reportError(message,sourceSpan,level=ParseErrorLevel.ERROR){this.errors.push(new ParseError(sourceSpan,message,level))}}const NON_BINDABLE_VISITOR=new class NonBindableVisitor{visitElement(ast){const preparsedElement=preparseElement(ast);if(preparsedElement.type===PreparsedElementType.SCRIPT||preparsedElement.type===PreparsedElementType.STYLE||preparsedElement.type===PreparsedElementType.STYLESHEET)return null;const children=visitAll(this,ast.children,null);return new Element$1(ast.name,visitAll(this,ast.attrs),[],[],children,[],ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan)}visitComment(comment){return null}visitAttribute(attribute){return new TextAttribute(attribute.name,attribute.value,attribute.sourceSpan,attribute.keySpan,attribute.valueSpan,attribute.i18n)}visitText(text){return new Text$3(text.value,text.sourceSpan)}visitExpansion(expansion){return null}visitExpansionCase(expansionCase){return null}visitBlock(block,context){const nodes=[new Text$3(block.startSourceSpan.toString(),block.startSourceSpan),...visitAll(this,block.children)];return null!==block.endSourceSpan&&nodes.push(new Text$3(block.endSourceSpan.toString(),block.endSourceSpan)),nodes}visitBlockParameter(parameter,context){return null}visitLetDeclaration(decl,context){return new Text$3(`@let ${decl.name} = ${decl.value};`,decl.sourceSpan)}};function normalizeAttributeName(attrName){return/^data-/i.test(attrName)?attrName.substring(5):attrName}function addEvents(events,boundEvents){boundEvents.push(...events.map((e=>BoundEvent.fromParsedEvent(e))))}const LEADING_TRIVIA_CHARS=[" ","\n","\r","\t"];function parseTemplate(template,templateUrl,options={}){const{interpolationConfig,preserveWhitespaces,enableI18nLegacyMessageIdFormat,allowInvalidAssignmentEvents}=options,bindingParser=makeBindingParser(interpolationConfig,allowInvalidAssignmentEvents),parseResult=(new HtmlParser).parse(template,templateUrl,{leadingTriviaChars:LEADING_TRIVIA_CHARS,...options,tokenizeExpansionForms:!0,tokenizeBlocks:options.enableBlockSyntax??!0,tokenizeLet:options.enableLetSyntax??!0});if(!options.alwaysAttemptHtmlToR3AstConversion&&parseResult.errors&&parseResult.errors.length>0){const parsedTemplate={interpolationConfig,preserveWhitespaces,errors:parseResult.errors,nodes:[],styleUrls:[],styles:[],ngContentSelectors:[]};return options.collectCommentNodes&&(parsedTemplate.commentNodes=[]),parsedTemplate}let rootNodes=parseResult.rootNodes;const retainEmptyTokens=!(options.preserveSignificantWhitespace??1),i18nMetaVisitor=new I18nMetaVisitor(interpolationConfig,!preserveWhitespaces,enableI18nLegacyMessageIdFormat,void 0,options.preserveSignificantWhitespace,retainEmptyTokens),i18nMetaResult=i18nMetaVisitor.visitAllWithErrors(rootNodes);if(!options.alwaysAttemptHtmlToR3AstConversion&&i18nMetaResult.errors&&i18nMetaResult.errors.length>0){const parsedTemplate={interpolationConfig,preserveWhitespaces,errors:i18nMetaResult.errors,nodes:[],styleUrls:[],styles:[],ngContentSelectors:[]};return options.collectCommentNodes&&(parsedTemplate.commentNodes=[]),parsedTemplate}rootNodes=i18nMetaResult.rootNodes,preserveWhitespaces||(rootNodes=visitAll(new WhitespaceVisitor(!0,void 0,!1),rootNodes),i18nMetaVisitor.hasI18nMeta&&(rootNodes=visitAll(new I18nMetaVisitor(interpolationConfig,!1,void 0,void 0,!0,retainEmptyTokens),rootNodes)));const{nodes,errors,styleUrls,styles,ngContentSelectors,commentNodes}=function htmlAstToRender3Ast(htmlNodes,bindingParser,options){const transformer=new HtmlAstToIvyAst(bindingParser,options),result={nodes:visitAll(transformer,htmlNodes,htmlNodes),errors:bindingParser.errors.concat(transformer.errors),styleUrls:transformer.styleUrls,styles:transformer.styles,ngContentSelectors:transformer.ngContentSelectors};return options.collectCommentNodes&&(result.commentNodes=transformer.commentNodes),result}(rootNodes,bindingParser,{collectCommentNodes:!!options.collectCommentNodes});errors.push(...parseResult.errors,...i18nMetaResult.errors);const parsedTemplate={interpolationConfig,preserveWhitespaces,errors:errors.length>0?errors:null,nodes,styleUrls,styles,ngContentSelectors};return options.collectCommentNodes&&(parsedTemplate.commentNodes=commentNodes),parsedTemplate}const elementRegistry=new DomElementSchemaRegistry;function makeBindingParser(interpolationConfig=DEFAULT_INTERPOLATION_CONFIG,allowInvalidAssignmentEvents=!1){return new BindingParser(new Parser(new Lexer),interpolationConfig,elementRegistry,[],allowInvalidAssignmentEvents)}const HOST_ATTR="_nghost-%COMP%",CONTENT_ATTR="_ngcontent-%COMP%";function baseDirectiveFields(meta,constantPool,bindingParser){const definitionMap=new DefinitionMap,selectors=parseSelectorToR3Selector(meta.selector);return definitionMap.set("type",meta.type.value),selectors.length>0&&definitionMap.set("selectors",asLiteral(selectors)),meta.queries.length>0&&definitionMap.set("contentQueries",function createContentQueriesFunction(queries,constantPool,name){const createStatements=[],updateStatements=[],tempAllocator=temporaryAllocator((st=>updateStatements.push(st)),TEMPORARY_NAME);for(const query of queries){if(createStatements.push(createQueryCreateCall(query,constantPool,{nonSignal:Identifiers.contentQuery,signalBased:Identifiers.contentQuerySignal},[variable("dirIndex")]).toStmt()),query.isSignal){updateStatements.push(queryAdvancePlaceholder);continue}const temporary=tempAllocator(),getQueryList=importExpr(Identifiers.loadQuery).callFn([]),refresh=importExpr(Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]),updateDirective=variable(CONTEXT_NAME).prop(query.propertyName).set(query.first?temporary.prop("first"):temporary);updateStatements.push(refresh.and(updateDirective).toStmt())}const contentQueriesFnName=name?`${name}_ContentQueries`:null;return fn([new FnParam(RENDER_FLAGS,NUMBER_TYPE),new FnParam(CONTEXT_NAME,null),new FnParam("dirIndex",null)],[renderFlagCheckIfStmt(1,createStatements),renderFlagCheckIfStmt(2,collapseAdvanceStatements(updateStatements))],INFERRED_TYPE,null,contentQueriesFnName)}(meta.queries,constantPool,meta.name)),meta.viewQueries.length&&definitionMap.set("viewQuery",function createViewQueriesFunction(viewQueries,constantPool,name){const createStatements=[],updateStatements=[],tempAllocator=temporaryAllocator((st=>updateStatements.push(st)),TEMPORARY_NAME);viewQueries.forEach((query=>{const queryDefinitionCall=createQueryCreateCall(query,constantPool,{signalBased:Identifiers.viewQuerySignal,nonSignal:Identifiers.viewQuery});if(createStatements.push(queryDefinitionCall.toStmt()),query.isSignal)return void updateStatements.push(queryAdvancePlaceholder);const temporary=tempAllocator(),getQueryList=importExpr(Identifiers.loadQuery).callFn([]),refresh=importExpr(Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]),updateDirective=variable(CONTEXT_NAME).prop(query.propertyName).set(query.first?temporary.prop("first"):temporary);updateStatements.push(refresh.and(updateDirective).toStmt())}));const viewQueryFnName=name?`${name}_Query`:null;return fn([new FnParam(RENDER_FLAGS,NUMBER_TYPE),new FnParam(CONTEXT_NAME,null)],[renderFlagCheckIfStmt(1,createStatements),renderFlagCheckIfStmt(2,collapseAdvanceStatements(updateStatements))],INFERRED_TYPE,null,viewQueryFnName)}(meta.viewQueries,constantPool,meta.name)),definitionMap.set("hostBindings",function createHostBindingsFunction(hostBindingsMetadata,typeSourceSpan,bindingParser,constantPool,selector,name,definitionMap){const bindings=bindingParser.createBoundHostProperties(hostBindingsMetadata.properties,typeSourceSpan),eventBindings=bindingParser.createDirectiveHostEventAsts(hostBindingsMetadata.listeners,typeSourceSpan);hostBindingsMetadata.specialAttributes.styleAttr&&(hostBindingsMetadata.attributes.style=literal(hostBindingsMetadata.specialAttributes.styleAttr));hostBindingsMetadata.specialAttributes.classAttr&&(hostBindingsMetadata.attributes.class=literal(hostBindingsMetadata.specialAttributes.classAttr));const hostJob=function ingestHostBinding(input,bindingParser,constantPool){const job=new HostBindingCompilationJob(input.componentName,constantPool,compatibilityMode);for(const property of input.properties??[]){let bindingKind=BindingKind.Property;property.name.startsWith("attr.")&&(property.name=property.name.substring(5),bindingKind=BindingKind.Attribute),property.isAnimation&&(bindingKind=BindingKind.Animation),ingestHostProperty(job,property,bindingKind,bindingParser.calcPossibleSecurityContexts(input.componentSelector,property.name,bindingKind===BindingKind.Attribute).filter((context=>context!==SecurityContext.NONE)))}for(const[name,expr]of Object.entries(input.attributes)??[])ingestHostAttribute(job,name,expr,bindingParser.calcPossibleSecurityContexts(input.componentSelector,name,!0).filter((context=>context!==SecurityContext.NONE)));for(const event of input.events??[])ingestHostEvent(job,event);return job}({componentName:name,componentSelector:selector,properties:bindings,events:eventBindings,attributes:hostBindingsMetadata.attributes},bindingParser,constantPool);transform(hostJob,CompilationJobKind.Host),definitionMap.set("hostAttrs",hostJob.root.attributes);const varCount=hostJob.root.vars;null!==varCount&&varCount>0&&definitionMap.set("hostVars",literal(varCount));return function emitHostBindingFunction(job){if(null===job.root.fnName)throw new Error("AssertionError: host binding function is unnamed");const createStatements=[];for(const op of job.root.create){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all create ops to have been compiled, but got ${OpKind[op.kind]}`);createStatements.push(op.statement)}const updateStatements=[];for(const op of job.root.update){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all update ops to have been compiled, but got ${OpKind[op.kind]}`);updateStatements.push(op.statement)}if(0===createStatements.length&&0===updateStatements.length)return null;const createCond=maybeGenerateRfBlock(1,createStatements),updateCond=maybeGenerateRfBlock(2,updateStatements);return fn([new FnParam("rf"),new FnParam("ctx")],[...createCond,...updateCond],void 0,void 0,job.root.fnName)}(hostJob)}(meta.host,meta.typeSourceSpan,bindingParser,constantPool,meta.selector||"",meta.name,definitionMap)),definitionMap.set("inputs",conditionallyCreateDirectiveBindingLiteral(meta.inputs,!0)),definitionMap.set("outputs",conditionallyCreateDirectiveBindingLiteral(meta.outputs)),null!==meta.exportAs&&definitionMap.set("exportAs",literalArr(meta.exportAs.map((e=>literal(e))))),meta.isStandalone&&definitionMap.set("standalone",literal(!0)),meta.isSignal&&definitionMap.set("signals",literal(!0)),definitionMap}function addFeatures(definitionMap,meta){const features=[],providers=meta.providers,viewProviders=meta.viewProviders,inputKeys=Object.keys(meta.inputs);if(providers||viewProviders){const args=[providers||new LiteralArrayExpr([])];viewProviders&&args.push(viewProviders),features.push(importExpr(Identifiers.ProvidersFeature).callFn(args))}for(const key of inputKeys)if(null!==meta.inputs[key].transformFunction){features.push(importExpr(Identifiers.InputTransformsFeatureFeature));break}meta.hostDirectives?.length&&features.push(importExpr(Identifiers.HostDirectivesFeature).callFn([createHostDirectivesFeatureArg(meta.hostDirectives)])),meta.usesInheritance&&features.push(importExpr(Identifiers.InheritDefinitionFeature)),meta.fullInheritance&&features.push(importExpr(Identifiers.CopyDefinitionFeature)),meta.lifecycle.usesOnChanges&&features.push(importExpr(Identifiers.NgOnChangesFeature)),meta.hasOwnProperty("template")&&meta.isStandalone&&features.push(importExpr(Identifiers.StandaloneFeature)),features.length&&definitionMap.set("features",literalArr(features))}function compileDirectiveFromMetadata(meta,constantPool,bindingParser){const definitionMap=baseDirectiveFields(meta,constantPool,bindingParser);addFeatures(definitionMap,meta);return{expression:importExpr(Identifiers.defineDirective).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createDirectiveType(meta),statements:[]}}function compileComponentFromMetadata(meta,constantPool,bindingParser){const definitionMap=baseDirectiveFields(meta,constantPool,bindingParser);addFeatures(definitionMap,meta);const selector=meta.selector&&CssSelector.parse(meta.selector),firstSelector=selector&&selector[0];if(firstSelector){const selectorAttributes=firstSelector.getAttrs();selectorAttributes.length&&definitionMap.set("attrs",constantPool.getConstLiteral(literalArr(selectorAttributes.map((value=>literal(null!=value?value:void 0)))),!0))}const templateTypeName=meta.name;let allDeferrableDepsFn=null;if(1===meta.defer.mode&&null!==meta.defer.dependenciesFn){const fnName=`${templateTypeName}_DeferFn`;constantPool.statements.push(new DeclareVarStmt(fnName,meta.defer.dependenciesFn,void 0,StmtModifier.Final)),allDeferrableDepsFn=variable(fnName)}const tpl=function ingestComponent(componentName,template,constantPool,relativeContextFilePath,i18nUseExternalIds,deferMeta,allDeferrableDepsFn){const job=new ComponentCompilationJob(componentName,constantPool,compatibilityMode,relativeContextFilePath,i18nUseExternalIds,deferMeta,allDeferrableDepsFn);return ingestNodes(job.root,template),job}(meta.name,meta.template.nodes,constantPool,meta.relativeContextFilePath,meta.i18nUseExternalIds,meta.defer,allDeferrableDepsFn);transform(tpl,CompilationJobKind.Tmpl);const templateFn=emitTemplateFn(tpl,constantPool);if(null!==tpl.contentSelectors&&definitionMap.set("ngContentSelectors",tpl.contentSelectors),definitionMap.set("decls",literal(tpl.root.decls)),definitionMap.set("vars",literal(tpl.root.vars)),tpl.consts.length>0&&(tpl.constsInitializers.length>0?definitionMap.set("consts",arrowFn([],[...tpl.constsInitializers,new ReturnStatement(literalArr(tpl.consts))])):definitionMap.set("consts",literalArr(tpl.consts))),definitionMap.set("template",templateFn),3!==meta.declarationListEmitMode&&meta.declarations.length>0)definitionMap.set("dependencies",function compileDeclarationList(list,mode){switch(mode){case 0:return list;case 1:return arrowFn([],list);case 2:return arrowFn([],list.prop("map").callFn([importExpr(Identifiers.resolveForwardRef)]));case 3:throw new Error("Unsupported with an array of pre-resolved dependencies")}}(literalArr(meta.declarations.map((decl=>decl.type))),meta.declarationListEmitMode));else if(3===meta.declarationListEmitMode){const args=[meta.type.value];meta.rawImports&&args.push(meta.rawImports),definitionMap.set("dependencies",importExpr(Identifiers.getComponentDepsFactory).callFn(args))}if(null===meta.encapsulation&&(meta.encapsulation=ViewEncapsulation.Emulated),meta.styles&&meta.styles.length){const styleValues=meta.encapsulation==ViewEncapsulation.Emulated?function compileStyles(styles,selector,hostSelector){const shadowCss=new ShadowCss;return styles.map((style=>shadowCss.shimCssText(style,selector,hostSelector)))}(meta.styles,CONTENT_ATTR,HOST_ATTR):meta.styles,styleNodes=styleValues.reduce(((result,style)=>(style.trim().length>0&&result.push(constantPool.getConstLiteral(literal(style))),result)),[]);styleNodes.length>0&&definitionMap.set("styles",literalArr(styleNodes))}else meta.encapsulation===ViewEncapsulation.Emulated&&(meta.encapsulation=ViewEncapsulation.None);meta.encapsulation!==ViewEncapsulation.Emulated&&definitionMap.set("encapsulation",literal(meta.encapsulation)),null!==meta.animations&&definitionMap.set("data",literalMap([{key:"animation",value:meta.animations,quoted:!1}])),null!==meta.changeDetection&&("number"==typeof meta.changeDetection&&meta.changeDetection!==ChangeDetectionStrategy.Default?definitionMap.set("changeDetection",literal(meta.changeDetection)):"object"==typeof meta.changeDetection&&definitionMap.set("changeDetection",meta.changeDetection));return{expression:importExpr(Identifiers.defineComponent).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createComponentType(meta),statements:[]}}function createComponentType(meta){const typeParams=createBaseDirectiveTypeParams(meta);return typeParams.push(stringArrayAsType(meta.template.ngContentSelectors)),typeParams.push(expressionType(literal(meta.isStandalone))),typeParams.push(createHostDirectivesType(meta)),meta.isSignal&&typeParams.push(expressionType(literal(meta.isSignal))),expressionType(importExpr(Identifiers.ComponentDeclaration,typeParams))}function stringMapAsLiteralExpression(map){return literalMap(Object.keys(map).map((key=>({key,value:literal(Array.isArray(map[key])?map[key][0]:map[key]),quoted:!0}))))}function stringArrayAsType(arr){return arr.length>0?expressionType(literalArr(arr.map((value=>literal(value))))):NONE_TYPE}function createBaseDirectiveTypeParams(meta){const selectorForType=null!==meta.selector?meta.selector.replace(/\n/g,""):null;return[typeWithParameters(meta.type.type,meta.typeArgumentCount),null!==selectorForType?(str=selectorForType,expressionType(literal(str))):NONE_TYPE,null!==meta.exportAs?stringArrayAsType(meta.exportAs):NONE_TYPE,expressionType(getInputsTypeExpression(meta)),expressionType(stringMapAsLiteralExpression(meta.outputs)),stringArrayAsType(meta.queries.map((q=>q.propertyName)))];var str}function getInputsTypeExpression(meta){return literalMap(Object.keys(meta.inputs).map((key=>{const value=meta.inputs[key],values=[{key:"alias",value:literal(value.bindingPropertyName),quoted:!0},{key:"required",value:literal(value.required),quoted:!0}];return value.isSignal&&values.push({key:"isSignal",value:literal(value.isSignal),quoted:!0}),{key,value:literalMap(values),quoted:!0}})))}function createDirectiveType(meta){const typeParams=createBaseDirectiveTypeParams(meta);return typeParams.push(NONE_TYPE),typeParams.push(expressionType(literal(meta.isStandalone))),typeParams.push(createHostDirectivesType(meta)),meta.isSignal&&typeParams.push(expressionType(literal(meta.isSignal))),expressionType(importExpr(Identifiers.DirectiveDeclaration,typeParams))}const HOST_REG_EXP=/^(?:\[([^\]]+)\])|(?:\(([^\)]+)\))$/;function parseHostBindings(host){const attributes={},listeners={},properties={},specialAttributes={};for(const key of Object.keys(host)){const value=host[key],matches=key.match(HOST_REG_EXP);if(null===matches)switch(key){case"class":if("string"!=typeof value)throw new Error("Class binding must be string");specialAttributes.classAttr=value;break;case"style":if("string"!=typeof value)throw new Error("Style binding must be string");specialAttributes.styleAttr=value;break;default:attributes[key]="string"==typeof value?literal(value):value}else if(null!=matches[1]){if("string"!=typeof value)throw new Error("Property binding must be string");properties[matches[1]]=value}else if(null!=matches[2]){if("string"!=typeof value)throw new Error("Event binding must be string");listeners[matches[2]]=value}}return{attributes,listeners,properties,specialAttributes}}function verifyHostBindings(bindings,sourceSpan){const bindingParser=makeBindingParser();return bindingParser.createDirectiveHostEventAsts(bindings.listeners,sourceSpan),bindingParser.createBoundHostProperties(bindings.properties,sourceSpan),bindingParser.errors}function encapsulateStyle(style){return(new ShadowCss).shimCssText(style,CONTENT_ATTR,HOST_ATTR)}function createHostDirectivesType(meta){return meta.hostDirectives?.length?expressionType(literalArr(meta.hostDirectives.map((hostMeta=>literalMap([{key:"directive",value:typeofExpr(hostMeta.directive.type),quoted:!1},{key:"inputs",value:stringMapAsLiteralExpression(hostMeta.inputs||{}),quoted:!1},{key:"outputs",value:stringMapAsLiteralExpression(hostMeta.outputs||{}),quoted:!1}]))))):NONE_TYPE}function createHostDirectivesFeatureArg(hostDirectives){const expressions=[];let hasForwardRef=!1;for(const current of hostDirectives){if(current.inputs||current.outputs){const keys=[{key:"directive",value:current.directive.type,quoted:!1}];if(current.inputs){const inputsLiteral=createHostDirectivesMappingArray(current.inputs);inputsLiteral&&keys.push({key:"inputs",value:inputsLiteral,quoted:!1})}if(current.outputs){const outputsLiteral=createHostDirectivesMappingArray(current.outputs);outputsLiteral&&keys.push({key:"outputs",value:outputsLiteral,quoted:!1})}expressions.push(literalMap(keys))}else expressions.push(current.directive.type);current.isForwardReference&&(hasForwardRef=!0)}return hasForwardRef?new FunctionExpr([],[new ReturnStatement(literalArr(expressions))]):literalArr(expressions)}function createHostDirectivesMappingArray(mapping){const elements=[];for(const publicName in mapping)mapping.hasOwnProperty(publicName)&&elements.push(literal(publicName),literal(mapping[publicName]));return elements.length>0?literalArr(elements):null}function compileDeferResolverFunction(meta){const depExpressions=[];if(0===meta.mode)for(const dep of meta.dependencies)if(dep.isDeferrable){const innerFn=arrowFn([new FnParam("m",DYNAMIC_TYPE)],variable("m").prop(dep.isDefaultImport?"default":dep.symbolName)),importExpr=new DynamicImportExpr(dep.importPath).prop("then").callFn([innerFn]);depExpressions.push(importExpr)}else depExpressions.push(dep.typeReference);else for(const{symbolName,importPath,isDefaultImport}of meta.dependencies){const innerFn=arrowFn([new FnParam("m",DYNAMIC_TYPE)],variable("m").prop(isDefaultImport?"default":symbolName)),importExpr=new DynamicImportExpr(importPath).prop("then").callFn([innerFn]);depExpressions.push(importExpr)}return arrowFn([],literalArr(depExpressions))}function diff(fullList,itemsToExclude){const exclude=new Set(itemsToExclude);return fullList.filter((item=>!exclude.has(item)))}function findMatchingDirectivesAndPipes(template,directiveSelectors){const matcher=new SelectorMatcher;for(const selector of directiveSelectors){const fakeDirective={selector,exportAs:null,inputs:{hasBindingPropertyName:()=>!1},outputs:{hasBindingPropertyName:()=>!1}};matcher.addSelectables(CssSelector.parse(selector),[fakeDirective])}const parsedTemplate=parseTemplate(template,""),bound=new R3TargetBinder(matcher).bind({template:parsedTemplate.nodes}),eagerDirectiveSelectors=bound.getEagerlyUsedDirectives().map((dir=>dir.selector)),allMatchedDirectiveSelectors=bound.getUsedDirectives().map((dir=>dir.selector)),eagerPipes=bound.getEagerlyUsedPipes();return{directives:{regular:eagerDirectiveSelectors,deferCandidates:diff(allMatchedDirectiveSelectors,eagerDirectiveSelectors)},pipes:{regular:eagerPipes,deferCandidates:diff(bound.getUsedPipes(),eagerPipes)}}}class R3TargetBinder{constructor(directiveMatcher){this.directiveMatcher=directiveMatcher}bind(target){if(!target.template)throw new Error("Binding without a template not yet supported");const scope=Scope.apply(target.template),scopedNodeEntities=function extractScopedNodeEntities(rootScope){const entityMap=new Map;function extractScopeEntities(scope){if(entityMap.has(scope.rootNode))return entityMap.get(scope.rootNode);const currentEntities=scope.namedEntities;let entities;return entities=null!==scope.parentScope?new Map([...extractScopeEntities(scope.parentScope),...currentEntities]):new Map(currentEntities),entityMap.set(scope.rootNode,entities),entities}const scopesToProcess=[rootScope];for(;scopesToProcess.length>0;){const scope=scopesToProcess.pop();for(const childScope of scope.childScopes.values())scopesToProcess.push(childScope);extractScopeEntities(scope)}const templateEntities=new Map;for(const[template,entities]of entityMap)templateEntities.set(template,new Set(entities.values()));return templateEntities}(scope),{directives,eagerDirectives,bindings,references}=DirectiveBinder.apply(target.template,this.directiveMatcher),{expressions,symbols,nestingLevel,usedPipes,eagerPipes,deferBlocks}=TemplateBinder.applyWithScope(target.template,scope);return new R3BoundTarget(target,directives,eagerDirectives,bindings,references,expressions,symbols,nestingLevel,scopedNodeEntities,usedPipes,eagerPipes,deferBlocks)}}class Scope{constructor(parentScope,rootNode){this.parentScope=parentScope,this.rootNode=rootNode,this.namedEntities=new Map,this.elementsInScope=new Set,this.childScopes=new Map,this.isDeferred=!(null===parentScope||!parentScope.isDeferred)||rootNode instanceof DeferredBlock}static newRootScope(){return new Scope(null,null)}static apply(template){const scope=Scope.newRootScope();return scope.ingest(template),scope}ingest(nodeOrNodes){nodeOrNodes instanceof Template?(nodeOrNodes.variables.forEach((node=>this.visitVariable(node))),nodeOrNodes.children.forEach((node=>node.visit(this)))):nodeOrNodes instanceof IfBlockBranch?(null!==nodeOrNodes.expressionAlias&&this.visitVariable(nodeOrNodes.expressionAlias),nodeOrNodes.children.forEach((node=>node.visit(this)))):nodeOrNodes instanceof ForLoopBlock?(this.visitVariable(nodeOrNodes.item),nodeOrNodes.contextVariables.forEach((v=>this.visitVariable(v))),nodeOrNodes.children.forEach((node=>node.visit(this)))):nodeOrNodes instanceof SwitchBlockCase||nodeOrNodes instanceof ForLoopBlockEmpty||nodeOrNodes instanceof DeferredBlock||nodeOrNodes instanceof DeferredBlockError||nodeOrNodes instanceof DeferredBlockPlaceholder||nodeOrNodes instanceof DeferredBlockLoading||nodeOrNodes instanceof Content?nodeOrNodes.children.forEach((node=>node.visit(this))):nodeOrNodes.forEach((node=>node.visit(this)))}visitElement(element){element.references.forEach((node=>this.visitReference(node))),element.children.forEach((node=>node.visit(this))),this.elementsInScope.add(element)}visitTemplate(template){template.references.forEach((node=>this.visitReference(node))),this.ingestScopedNode(template)}visitVariable(variable){this.maybeDeclare(variable)}visitReference(reference){this.maybeDeclare(reference)}visitDeferredBlock(deferred){this.ingestScopedNode(deferred),deferred.placeholder?.visit(this),deferred.loading?.visit(this),deferred.error?.visit(this)}visitDeferredBlockPlaceholder(block){this.ingestScopedNode(block)}visitDeferredBlockError(block){this.ingestScopedNode(block)}visitDeferredBlockLoading(block){this.ingestScopedNode(block)}visitSwitchBlock(block){block.cases.forEach((node=>node.visit(this)))}visitSwitchBlockCase(block){this.ingestScopedNode(block)}visitForLoopBlock(block){this.ingestScopedNode(block),block.empty?.visit(this)}visitForLoopBlockEmpty(block){this.ingestScopedNode(block)}visitIfBlock(block){block.branches.forEach((node=>node.visit(this)))}visitIfBlockBranch(block){this.ingestScopedNode(block)}visitContent(content){this.ingestScopedNode(content)}visitLetDeclaration(decl){this.maybeDeclare(decl)}visitBoundAttribute(attr){}visitBoundEvent(event){}visitBoundText(text){}visitText(text){}visitTextAttribute(attr){}visitIcu(icu){}visitDeferredTrigger(trigger){}visitUnknownBlock(block){}maybeDeclare(thing){this.namedEntities.has(thing.name)||this.namedEntities.set(thing.name,thing)}lookup(name){return this.namedEntities.has(name)?this.namedEntities.get(name):null!==this.parentScope?this.parentScope.lookup(name):null}getChildScope(node){const res=this.childScopes.get(node);if(void 0===res)throw new Error(`Assertion error: child scope for ${node} not found`);return res}ingestScopedNode(node){const scope=new Scope(this,node);scope.ingest(node),this.childScopes.set(node,scope)}}class DirectiveBinder{constructor(matcher,directives,eagerDirectives,bindings,references){this.matcher=matcher,this.directives=directives,this.eagerDirectives=eagerDirectives,this.bindings=bindings,this.references=references,this.isInDeferBlock=!1}static apply(template,selectorMatcher){const directives=new Map,bindings=new Map,references=new Map,eagerDirectives=[];return new DirectiveBinder(selectorMatcher,directives,eagerDirectives,bindings,references).ingest(template),{directives,eagerDirectives,bindings,references}}ingest(template){template.forEach((node=>node.visit(this)))}visitElement(element){this.visitElementOrTemplate(element)}visitTemplate(template){this.visitElementOrTemplate(template)}visitElementOrTemplate(node){const cssSelector=createCssSelectorFromNode(node),directives=[];this.matcher.match(cssSelector,((_selector,results)=>directives.push(...results))),directives.length>0&&(this.directives.set(node,directives),this.isInDeferBlock||this.eagerDirectives.push(...directives)),node.references.forEach((ref=>{let dirTarget=null;if(""===ref.value.trim())dirTarget=directives.find((dir=>dir.isComponent))||null;else if(dirTarget=directives.find((dir=>null!==dir.exportAs&&dir.exportAs.some((value=>value===ref.value))))||null,null===dirTarget)return;null!==dirTarget?this.references.set(ref,{directive:dirTarget,node}):this.references.set(ref,node)}));const setAttributeBinding=(attribute,ioType)=>{const dir=directives.find((dir=>dir[ioType].hasBindingPropertyName(attribute.name))),binding=void 0!==dir?dir:node;this.bindings.set(attribute,binding)};node.inputs.forEach((input=>setAttributeBinding(input,"inputs"))),node.attributes.forEach((attr=>setAttributeBinding(attr,"inputs"))),node instanceof Template&&node.templateAttrs.forEach((attr=>setAttributeBinding(attr,"inputs"))),node.outputs.forEach((output=>setAttributeBinding(output,"outputs"))),node.children.forEach((child=>child.visit(this)))}visitDeferredBlock(deferred){const wasInDeferBlock=this.isInDeferBlock;this.isInDeferBlock=!0,deferred.children.forEach((child=>child.visit(this))),this.isInDeferBlock=wasInDeferBlock,deferred.placeholder?.visit(this),deferred.loading?.visit(this),deferred.error?.visit(this)}visitDeferredBlockPlaceholder(block){block.children.forEach((child=>child.visit(this)))}visitDeferredBlockError(block){block.children.forEach((child=>child.visit(this)))}visitDeferredBlockLoading(block){block.children.forEach((child=>child.visit(this)))}visitSwitchBlock(block){block.cases.forEach((node=>node.visit(this)))}visitSwitchBlockCase(block){block.children.forEach((node=>node.visit(this)))}visitForLoopBlock(block){block.item.visit(this),block.contextVariables.forEach((v=>v.visit(this))),block.children.forEach((node=>node.visit(this))),block.empty?.visit(this)}visitForLoopBlockEmpty(block){block.children.forEach((node=>node.visit(this)))}visitIfBlock(block){block.branches.forEach((node=>node.visit(this)))}visitIfBlockBranch(block){block.expressionAlias?.visit(this),block.children.forEach((node=>node.visit(this)))}visitContent(content){content.children.forEach((child=>child.visit(this)))}visitVariable(variable){}visitReference(reference){}visitTextAttribute(attribute){}visitBoundAttribute(attribute){}visitBoundEvent(attribute){}visitBoundAttributeOrEvent(node){}visitText(text){}visitBoundText(text){}visitIcu(icu){}visitDeferredTrigger(trigger){}visitUnknownBlock(block){}visitLetDeclaration(decl){}}class TemplateBinder extends RecursiveAstVisitor{constructor(bindings,symbols,usedPipes,eagerPipes,deferBlocks,nestingLevel,scope,rootNode,level){super(),this.bindings=bindings,this.symbols=symbols,this.usedPipes=usedPipes,this.eagerPipes=eagerPipes,this.deferBlocks=deferBlocks,this.nestingLevel=nestingLevel,this.scope=scope,this.rootNode=rootNode,this.level=level,this.visitNode=node=>node.visit(this)}visit(node,context){node instanceof AST?node.visit(this,context):node.visit(this)}static applyWithScope(nodes,scope){const expressions=new Map,symbols=new Map,nestingLevel=new Map,usedPipes=new Set,eagerPipes=new Set,deferBlocks=[];return new TemplateBinder(expressions,symbols,usedPipes,eagerPipes,deferBlocks,nestingLevel,scope,nodes instanceof Template?nodes:null,0).ingest(nodes),{expressions,symbols,nestingLevel,usedPipes,eagerPipes,deferBlocks}}ingest(nodeOrNodes){if(nodeOrNodes instanceof Template)nodeOrNodes.variables.forEach(this.visitNode),nodeOrNodes.children.forEach(this.visitNode),this.nestingLevel.set(nodeOrNodes,this.level);else if(nodeOrNodes instanceof IfBlockBranch)null!==nodeOrNodes.expressionAlias&&this.visitNode(nodeOrNodes.expressionAlias),nodeOrNodes.children.forEach(this.visitNode),this.nestingLevel.set(nodeOrNodes,this.level);else if(nodeOrNodes instanceof ForLoopBlock)this.visitNode(nodeOrNodes.item),nodeOrNodes.contextVariables.forEach((v=>this.visitNode(v))),nodeOrNodes.trackBy.visit(this),nodeOrNodes.children.forEach(this.visitNode),this.nestingLevel.set(nodeOrNodes,this.level);else if(nodeOrNodes instanceof DeferredBlock){if(this.scope.rootNode!==nodeOrNodes)throw new Error(`Assertion error: resolved incorrect scope for deferred block ${nodeOrNodes}`);this.deferBlocks.push([nodeOrNodes,this.scope]),nodeOrNodes.children.forEach((node=>node.visit(this))),this.nestingLevel.set(nodeOrNodes,this.level)}else nodeOrNodes instanceof SwitchBlockCase||nodeOrNodes instanceof ForLoopBlockEmpty||nodeOrNodes instanceof DeferredBlockError||nodeOrNodes instanceof DeferredBlockPlaceholder||nodeOrNodes instanceof DeferredBlockLoading||nodeOrNodes instanceof Content?(nodeOrNodes.children.forEach((node=>node.visit(this))),this.nestingLevel.set(nodeOrNodes,this.level)):nodeOrNodes.forEach(this.visitNode)}visitElement(element){element.inputs.forEach(this.visitNode),element.outputs.forEach(this.visitNode),element.children.forEach(this.visitNode),element.references.forEach(this.visitNode)}visitTemplate(template){template.inputs.forEach(this.visitNode),template.outputs.forEach(this.visitNode),template.templateAttrs.forEach(this.visitNode),template.references.forEach(this.visitNode),this.ingestScopedNode(template)}visitVariable(variable){null!==this.rootNode&&this.symbols.set(variable,this.rootNode)}visitReference(reference){null!==this.rootNode&&this.symbols.set(reference,this.rootNode)}visitText(text){}visitTextAttribute(attribute){}visitUnknownBlock(block){}visitDeferredTrigger(){}visitIcu(icu){Object.keys(icu.vars).forEach((key=>icu.vars[key].visit(this))),Object.keys(icu.placeholders).forEach((key=>icu.placeholders[key].visit(this)))}visitBoundAttribute(attribute){attribute.value.visit(this)}visitBoundEvent(event){event.handler.visit(this)}visitDeferredBlock(deferred){this.ingestScopedNode(deferred),deferred.triggers.when?.value.visit(this),deferred.prefetchTriggers.when?.value.visit(this),deferred.placeholder&&this.visitNode(deferred.placeholder),deferred.loading&&this.visitNode(deferred.loading),deferred.error&&this.visitNode(deferred.error)}visitDeferredBlockPlaceholder(block){this.ingestScopedNode(block)}visitDeferredBlockError(block){this.ingestScopedNode(block)}visitDeferredBlockLoading(block){this.ingestScopedNode(block)}visitSwitchBlock(block){block.expression.visit(this),block.cases.forEach(this.visitNode)}visitSwitchBlockCase(block){block.expression?.visit(this),this.ingestScopedNode(block)}visitForLoopBlock(block){block.expression.visit(this),this.ingestScopedNode(block),block.empty?.visit(this)}visitForLoopBlockEmpty(block){this.ingestScopedNode(block)}visitIfBlock(block){block.branches.forEach((node=>node.visit(this)))}visitIfBlockBranch(block){block.expression?.visit(this),this.ingestScopedNode(block)}visitContent(content){this.ingestScopedNode(content)}visitBoundText(text){text.value.visit(this)}visitLetDeclaration(decl){decl.value.visit(this),null!==this.rootNode&&this.symbols.set(decl,this.rootNode)}visitPipe(ast,context){return this.usedPipes.add(ast.name),this.scope.isDeferred||this.eagerPipes.add(ast.name),super.visitPipe(ast,context)}visitPropertyRead(ast,context){return this.maybeMap(ast,ast.name),super.visitPropertyRead(ast,context)}visitSafePropertyRead(ast,context){return this.maybeMap(ast,ast.name),super.visitSafePropertyRead(ast,context)}visitPropertyWrite(ast,context){return this.maybeMap(ast,ast.name),super.visitPropertyWrite(ast,context)}ingestScopedNode(node){const childScope=this.scope.getChildScope(node);new TemplateBinder(this.bindings,this.symbols,this.usedPipes,this.eagerPipes,this.deferBlocks,this.nestingLevel,childScope,node,this.level+1).ingest(node)}maybeMap(ast,name){if(!(ast.receiver instanceof ImplicitReceiver))return;const target=this.scope.lookup(name);target instanceof LetDeclaration$1&&ast.receiver instanceof ThisReceiver||null!==target&&this.bindings.set(ast,target)}}class R3BoundTarget{constructor(target,directives,eagerDirectives,bindings,references,exprTargets,symbols,nestingLevel,scopedNodeEntities,usedPipes,eagerPipes,rawDeferred){this.target=target,this.directives=directives,this.eagerDirectives=eagerDirectives,this.bindings=bindings,this.references=references,this.exprTargets=exprTargets,this.symbols=symbols,this.nestingLevel=nestingLevel,this.scopedNodeEntities=scopedNodeEntities,this.usedPipes=usedPipes,this.eagerPipes=eagerPipes,this.deferredBlocks=rawDeferred.map((current=>current[0])),this.deferredScopes=new Map(rawDeferred)}getEntitiesInScope(node){return this.scopedNodeEntities.get(node)??new Set}getDirectivesOfNode(node){return this.directives.get(node)||null}getReferenceTarget(ref){return this.references.get(ref)||null}getConsumerOfBinding(binding){return this.bindings.get(binding)||null}getExpressionTarget(expr){return this.exprTargets.get(expr)||null}getDefinitionNodeOfSymbol(symbol){return this.symbols.get(symbol)||null}getNestingLevel(node){return this.nestingLevel.get(node)||0}getUsedDirectives(){const set=new Set;return this.directives.forEach((dirs=>dirs.forEach((dir=>set.add(dir))))),Array.from(set.values())}getEagerlyUsedDirectives(){const set=new Set(this.eagerDirectives);return Array.from(set.values())}getUsedPipes(){return Array.from(this.usedPipes)}getEagerlyUsedPipes(){return Array.from(this.eagerPipes)}getDeferBlocks(){return this.deferredBlocks}getDeferredTriggerTarget(block,trigger){if(!(trigger instanceof InteractionDeferredTrigger||trigger instanceof ViewportDeferredTrigger||trigger instanceof HoverDeferredTrigger))return null;const name=trigger.reference;if(null===name){let trigger=null;if(null!==block.placeholder)for(const child of block.placeholder.children)if(!(child instanceof Comment$1)){if(null!==trigger)return null;child instanceof Element$1&&(trigger=child)}return trigger}const outsideRef=this.findEntityInScope(block,name);if(outsideRef instanceof Reference&&this.getDefinitionNodeOfSymbol(outsideRef)!==block){const target=this.getReferenceTarget(outsideRef);if(null!==target)return this.referenceTargetToElement(target)}if(null!==block.placeholder){const refInPlaceholder=this.findEntityInScope(block.placeholder,name),targetInPlaceholder=refInPlaceholder instanceof Reference?this.getReferenceTarget(refInPlaceholder):null;if(null!==targetInPlaceholder)return this.referenceTargetToElement(targetInPlaceholder)}return null}isDeferred(element){for(const block of this.deferredBlocks){if(!this.deferredScopes.has(block))continue;const stack=[this.deferredScopes.get(block)];for(;stack.length>0;){const current=stack.pop();if(current.elementsInScope.has(element))return!0;stack.push(...current.childScopes.values())}}return!1}findEntityInScope(rootNode,name){const entities=this.getEntitiesInScope(rootNode);for(const entity of entities)if(entity.name===name)return entity;return null}referenceTargetToElement(target){return target instanceof Element$1?target:target instanceof Template?null:this.referenceTargetToElement(target.node)}}class ResourceLoader{}class CompilerFacadeImpl{constructor(jitEvaluator=new JitEvaluator){this.jitEvaluator=jitEvaluator,this.FactoryTarget=FactoryTarget$1,this.ResourceLoader=ResourceLoader,this.elementSchemaRegistry=new DomElementSchemaRegistry}compilePipe(angularCoreEnv,sourceMapUrl,facade){const res=compilePipeFromMetadata({name:facade.name,type:wrapReference(facade.type),typeArgumentCount:0,deps:null,pipeName:facade.pipeName,pure:facade.pure,isStandalone:facade.isStandalone});return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compilePipeDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=function convertDeclarePipeFacadeToMetadata(declaration){return{name:declaration.type.name,type:wrapReference(declaration.type),typeArgumentCount:0,pipeName:declaration.name,deps:null,pure:declaration.pure??!0,isStandalone:declaration.isStandalone??!1}}(declaration),res=compilePipeFromMetadata(meta);return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileInjectable(angularCoreEnv,sourceMapUrl,facade){const{expression,statements}=compileInjectable({name:facade.name,type:wrapReference(facade.type),typeArgumentCount:facade.typeArgumentCount,providedIn:computeProvidedIn(facade.providedIn),useClass:convertToProviderExpression(facade,"useClass"),useFactory:wrapExpression(facade,"useFactory"),useValue:convertToProviderExpression(facade,"useValue"),useExisting:convertToProviderExpression(facade,"useExisting"),deps:facade.deps?.map(convertR3DependencyMetadata)},!0);return this.jitExpression(expression,angularCoreEnv,sourceMapUrl,statements)}compileInjectableDeclaration(angularCoreEnv,sourceMapUrl,facade){const{expression,statements}=compileInjectable({name:facade.type.name,type:wrapReference(facade.type),typeArgumentCount:0,providedIn:computeProvidedIn(facade.providedIn),useClass:convertToProviderExpression(facade,"useClass"),useFactory:wrapExpression(facade,"useFactory"),useValue:convertToProviderExpression(facade,"useValue"),useExisting:convertToProviderExpression(facade,"useExisting"),deps:facade.deps?.map(convertR3DeclareDependencyMetadata)},!0);return this.jitExpression(expression,angularCoreEnv,sourceMapUrl,statements)}compileInjector(angularCoreEnv,sourceMapUrl,facade){const res=compileInjector({name:facade.name,type:wrapReference(facade.type),providers:facade.providers&&facade.providers.length>0?new WrappedNodeExpr(facade.providers):null,imports:facade.imports.map((i=>new WrappedNodeExpr(i)))});return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileInjectorDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=function convertDeclareInjectorFacadeToMetadata(declaration){return{name:declaration.type.name,type:wrapReference(declaration.type),providers:void 0!==declaration.providers&&declaration.providers.length>0?new WrappedNodeExpr(declaration.providers):null,imports:void 0!==declaration.imports?declaration.imports.map((i=>new WrappedNodeExpr(i))):[]}}(declaration),res=compileInjector(meta);return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileNgModule(angularCoreEnv,sourceMapUrl,facade){const res=compileNgModule({kind:R3NgModuleMetadataKind.Global,type:wrapReference(facade.type),bootstrap:facade.bootstrap.map(wrapReference),declarations:facade.declarations.map(wrapReference),publicDeclarationTypes:null,imports:facade.imports.map(wrapReference),includeImportTypes:!0,exports:facade.exports.map(wrapReference),selectorScopeMode:R3SelectorScopeMode.Inline,containsForwardDecls:!1,schemas:facade.schemas?facade.schemas.map(wrapReference):null,id:facade.id?new WrappedNodeExpr(facade.id):null});return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileNgModuleDeclaration(angularCoreEnv,sourceMapUrl,declaration){const expression=function compileNgModuleDeclarationExpression(meta){const definitionMap=new DefinitionMap;return definitionMap.set("type",new WrappedNodeExpr(meta.type)),void 0!==meta.bootstrap&&definitionMap.set("bootstrap",new WrappedNodeExpr(meta.bootstrap)),void 0!==meta.declarations&&definitionMap.set("declarations",new WrappedNodeExpr(meta.declarations)),void 0!==meta.imports&&definitionMap.set("imports",new WrappedNodeExpr(meta.imports)),void 0!==meta.exports&&definitionMap.set("exports",new WrappedNodeExpr(meta.exports)),void 0!==meta.schemas&&definitionMap.set("schemas",new WrappedNodeExpr(meta.schemas)),void 0!==meta.id&&definitionMap.set("id",new WrappedNodeExpr(meta.id)),importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()])}(declaration);return this.jitExpression(expression,angularCoreEnv,sourceMapUrl,[])}compileDirective(angularCoreEnv,sourceMapUrl,facade){const meta=convertDirectiveFacadeToMetadata(facade);return this.compileDirectiveFromMeta(angularCoreEnv,sourceMapUrl,meta)}compileDirectiveDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=convertDeclareDirectiveFacadeToMetadata(declaration,this.createParseSourceSpan("Directive",declaration.type.name,sourceMapUrl));return this.compileDirectiveFromMeta(angularCoreEnv,sourceMapUrl,meta)}compileDirectiveFromMeta(angularCoreEnv,sourceMapUrl,meta){const constantPool=new ConstantPool,res=compileDirectiveFromMetadata(meta,constantPool,makeBindingParser());return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,constantPool.statements)}compileComponent(angularCoreEnv,sourceMapUrl,facade){const{template,interpolation,defer}=parseJitTemplate(facade.template,facade.name,sourceMapUrl,facade.preserveWhitespaces,facade.interpolation,void 0),meta={...facade,...convertDirectiveFacadeToMetadata(facade),selector:facade.selector||this.elementSchemaRegistry.getDefaultComponentElementName(),template,declarations:facade.declarations.map(convertDeclarationFacadeToMetadata),declarationListEmitMode:0,defer,styles:[...facade.styles,...template.styles],encapsulation:facade.encapsulation,interpolation,changeDetection:facade.changeDetection??null,animations:null!=facade.animations?new WrappedNodeExpr(facade.animations):null,viewProviders:null!=facade.viewProviders?new WrappedNodeExpr(facade.viewProviders):null,relativeContextFilePath:"",i18nUseExternalIds:!0},jitExpressionSourceMap=`ng:///${facade.name}.js`;return this.compileComponentFromMeta(angularCoreEnv,jitExpressionSourceMap,meta)}compileComponentDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=function convertDeclareComponentFacadeToMetadata(decl,typeSourceSpan,sourceMapUrl){const{template,interpolation,defer}=parseJitTemplate(decl.template,decl.type.name,sourceMapUrl,decl.preserveWhitespaces??!1,decl.interpolation,decl.deferBlockDependencies),declarations=[];if(decl.dependencies)for(const innerDep of decl.dependencies)switch(innerDep.kind){case"directive":case"component":declarations.push(convertDirectiveDeclarationToMetadata(innerDep));break;case"pipe":declarations.push(convertPipeDeclarationToMetadata(innerDep))}else(decl.components||decl.directives||decl.pipes)&&(decl.components&&declarations.push(...decl.components.map((dir=>convertDirectiveDeclarationToMetadata(dir,!0)))),decl.directives&&declarations.push(...decl.directives.map((dir=>convertDirectiveDeclarationToMetadata(dir)))),decl.pipes&&declarations.push(...function convertPipeMapToMetadata(pipes){if(!pipes)return[];return Object.keys(pipes).map((name=>({kind:R3TemplateDependencyKind.Pipe,name,type:new WrappedNodeExpr(pipes[name])})))}(decl.pipes)));return{...convertDeclareDirectiveFacadeToMetadata(decl,typeSourceSpan),template,styles:decl.styles??[],declarations,viewProviders:void 0!==decl.viewProviders?new WrappedNodeExpr(decl.viewProviders):null,animations:void 0!==decl.animations?new WrappedNodeExpr(decl.animations):null,defer,changeDetection:decl.changeDetection??ChangeDetectionStrategy.Default,encapsulation:decl.encapsulation??ViewEncapsulation.Emulated,interpolation,declarationListEmitMode:2,relativeContextFilePath:"",i18nUseExternalIds:!0}}(declaration,this.createParseSourceSpan("Component",declaration.type.name,sourceMapUrl),sourceMapUrl);return this.compileComponentFromMeta(angularCoreEnv,sourceMapUrl,meta)}compileComponentFromMeta(angularCoreEnv,sourceMapUrl,meta){const constantPool=new ConstantPool,res=compileComponentFromMetadata(meta,constantPool,makeBindingParser(meta.interpolation));return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,constantPool.statements)}compileFactory(angularCoreEnv,sourceMapUrl,meta){const factoryRes=compileFactoryFunction({name:meta.name,type:wrapReference(meta.type),typeArgumentCount:meta.typeArgumentCount,deps:(facades=meta.deps,null==facades?null:facades.map(convertR3DependencyMetadata)),target:meta.target});var facades;return this.jitExpression(factoryRes.expression,angularCoreEnv,sourceMapUrl,factoryRes.statements)}compileFactoryDeclaration(angularCoreEnv,sourceMapUrl,meta){const factoryRes=compileFactoryFunction({name:meta.type.name,type:wrapReference(meta.type),typeArgumentCount:0,deps:Array.isArray(meta.deps)?meta.deps.map(convertR3DeclareDependencyMetadata):meta.deps,target:meta.target});return this.jitExpression(factoryRes.expression,angularCoreEnv,sourceMapUrl,factoryRes.statements)}createParseSourceSpan(kind,typeName,sourceUrl){return r3JitTypeSourceSpan(kind,typeName,sourceUrl)}jitExpression(def,context,sourceUrl,preStatements){const statements=[...preStatements,new DeclareVarStmt("$def",def,void 0,StmtModifier.Exported)];return this.jitEvaluator.evaluateStatements(sourceUrl,statements,new R3JitReflector(context),!0).$def}}function convertToR3QueryMetadata(facade){return{...facade,isSignal:facade.isSignal,predicate:convertQueryPredicate(facade.predicate),read:facade.read?new WrappedNodeExpr(facade.read):null,static:facade.static,emitDistinctChangesOnly:facade.emitDistinctChangesOnly}}function convertQueryDeclarationToMetadata(declaration){return{propertyName:declaration.propertyName,first:declaration.first??!1,predicate:convertQueryPredicate(declaration.predicate),descendants:declaration.descendants??!1,read:declaration.read?new WrappedNodeExpr(declaration.read):null,static:declaration.static??!1,emitDistinctChangesOnly:declaration.emitDistinctChangesOnly??!0,isSignal:!!declaration.isSignal}}function convertQueryPredicate(predicate){return Array.isArray(predicate)?predicate:createMayBeForwardRefExpression(new WrappedNodeExpr(predicate),1)}function convertDirectiveFacadeToMetadata(facade){const inputsFromMetadata=function parseInputsArray(values){return values.reduce(((results,value)=>{if("string"==typeof value){const[bindingPropertyName,classPropertyName]=parseMappingString(value);results[classPropertyName]={bindingPropertyName,classPropertyName,required:!1,isSignal:!1,transformFunction:null}}else results[value.name]={bindingPropertyName:value.alias||value.name,classPropertyName:value.name,required:value.required||!1,isSignal:!1,transformFunction:null!=value.transform?new WrappedNodeExpr(value.transform):null};return results}),{})}(facade.inputs||[]),outputsFromMetadata=parseMappingStringArray(facade.outputs||[]),propMetadata=facade.propMetadata,inputsFromType={},outputsFromType={};for(const field in propMetadata)propMetadata.hasOwnProperty(field)&&propMetadata[field].forEach((ann=>{"Input"===ann.ngMetadataName?inputsFromType[field]={bindingPropertyName:ann.alias||field,classPropertyName:field,required:ann.required||!1,isSignal:!!ann.isSignal,transformFunction:null!=ann.transform?new WrappedNodeExpr(ann.transform):null}:isOutput(ann)&&(outputsFromType[field]=ann.alias||field)}));const hostDirectives=facade.hostDirectives?.length?facade.hostDirectives.map((hostDirective=>"function"==typeof hostDirective?{directive:wrapReference(hostDirective),inputs:null,outputs:null,isForwardReference:!1}:{directive:wrapReference(hostDirective.directive),isForwardReference:!1,inputs:hostDirective.inputs?parseMappingStringArray(hostDirective.inputs):null,outputs:hostDirective.outputs?parseMappingStringArray(hostDirective.outputs):null})):null;return{...facade,typeArgumentCount:0,typeSourceSpan:facade.typeSourceSpan,type:wrapReference(facade.type),deps:null,host:{...extractHostBindings(facade.propMetadata,facade.typeSourceSpan,facade.host)},inputs:{...inputsFromMetadata,...inputsFromType},outputs:{...outputsFromMetadata,...outputsFromType},queries:facade.queries.map(convertToR3QueryMetadata),providers:null!=facade.providers?new WrappedNodeExpr(facade.providers):null,viewQueries:facade.viewQueries.map(convertToR3QueryMetadata),fullInheritance:!1,hostDirectives}}function convertDeclareDirectiveFacadeToMetadata(declaration,typeSourceSpan){const hostDirectives=declaration.hostDirectives?.length?declaration.hostDirectives.map((dir=>({directive:wrapReference(dir.directive),isForwardReference:!1,inputs:dir.inputs?getHostDirectiveBindingMapping(dir.inputs):null,outputs:dir.outputs?getHostDirectiveBindingMapping(dir.outputs):null}))):null;return{name:declaration.type.name,type:wrapReference(declaration.type),typeSourceSpan,selector:declaration.selector??null,inputs:declaration.inputs?(inputs=declaration.inputs,Object.keys(inputs).reduce(((result,minifiedClassName)=>{const value=inputs[minifiedClassName];return"string"==typeof value||Array.isArray(value)?result[minifiedClassName]=function parseLegacyInputPartialOutput(value){if("string"==typeof value)return{bindingPropertyName:value,classPropertyName:value,transformFunction:null,required:!1,isSignal:!1};return{bindingPropertyName:value[0],classPropertyName:value[1],transformFunction:value[2]?new WrappedNodeExpr(value[2]):null,required:!1,isSignal:!1}}(value):result[minifiedClassName]={bindingPropertyName:value.publicName,classPropertyName:minifiedClassName,transformFunction:null!==value.transformFunction?new WrappedNodeExpr(value.transformFunction):null,required:value.isRequired,isSignal:value.isSignal},result}),{})):{},outputs:declaration.outputs??{},host:convertHostDeclarationToMetadata(declaration.host),queries:(declaration.queries??[]).map(convertQueryDeclarationToMetadata),viewQueries:(declaration.viewQueries??[]).map(convertQueryDeclarationToMetadata),providers:void 0!==declaration.providers?new WrappedNodeExpr(declaration.providers):null,exportAs:declaration.exportAs??null,usesInheritance:declaration.usesInheritance??!1,lifecycle:{usesOnChanges:declaration.usesOnChanges??!1},deps:null,typeArgumentCount:0,fullInheritance:!1,isStandalone:declaration.isStandalone??!1,isSignal:declaration.isSignal??!1,hostDirectives};var inputs}function convertHostDeclarationToMetadata(host={}){return{attributes:convertOpaqueValuesToExpressions(host.attributes??{}),listeners:host.listeners??{},properties:host.properties??{},specialAttributes:{classAttr:host.classAttribute,styleAttr:host.styleAttribute}}}function getHostDirectiveBindingMapping(array){let result=null;for(let i=1;ierr.toString())).join(", ");throw new Error(`Errors during JIT compilation of template for ${typeName}: ${errors}`)}return{template:parsed,interpolation:interpolationConfig,defer:createR3ComponentDeferMetadata(new R3TargetBinder(new SelectorMatcher).bind({template:parsed.nodes}),deferBlockDependencies)}}function convertToProviderExpression(obj,property){return obj.hasOwnProperty(property)?createMayBeForwardRefExpression(new WrappedNodeExpr(obj[property]),0):void 0}function wrapExpression(obj,property){return obj.hasOwnProperty(property)?new WrappedNodeExpr(obj[property]):void 0}function computeProvidedIn(providedIn){return createMayBeForwardRefExpression("function"==typeof providedIn?new WrappedNodeExpr(providedIn):new LiteralExpr(providedIn??null),0)}function convertR3DependencyMetadata(facade){const isAttributeDep=null!=facade.attribute,rawToken=null===facade.token?null:new WrappedNodeExpr(facade.token);return createR3DependencyMetadata(isAttributeDep?new WrappedNodeExpr(facade.attribute):rawToken,isAttributeDep,facade.host,facade.optional,facade.self,facade.skipSelf)}function convertR3DeclareDependencyMetadata(facade){const isAttributeDep=facade.attribute??!1;return createR3DependencyMetadata(null===facade.token?null:new WrappedNodeExpr(facade.token),isAttributeDep,facade.host??!1,facade.optional??!1,facade.self??!1,facade.skipSelf??!1)}function createR3DependencyMetadata(token,isAttributeDep,host,optional,self,skipSelf){return{token,attributeNameType:isAttributeDep?literal("unknown"):null,host,optional,self,skipSelf}}function createR3ComponentDeferMetadata(boundTarget,deferBlockDependencies){const deferredBlocks=boundTarget.getDeferBlocks(),blocks=new Map;for(let i=0;ierror.msg)).join("\n"));for(const field in propMetadata)propMetadata.hasOwnProperty(field)&&propMetadata[field].forEach((ann=>{"HostBinding"===ann.ngMetadataName?bindings.properties[ann.hostPropertyName||field]=getSafePropertyAccessString("this",field):isHostListener(ann)&&(bindings.listeners[ann.eventName||field]=`${field}(${(ann.args||[]).join(",")})`)}));return bindings}function isHostListener(value){return"HostListener"===value.ngMetadataName}function isOutput(value){return"Output"===value.ngMetadataName}function parseMappingStringArray(values){return values.reduce(((results,value)=>{const[alias,fieldName]=parseMappingString(value);return results[fieldName]=alias,results}),{})}function parseMappingString(value){const[fieldName,bindingPropertyName]=value.split(":",2).map((str=>str.trim()));return[bindingPropertyName??fieldName,fieldName]}function publishFacade(global){(global.ng||(global.ng={})).ɵcompilerFacade=new CompilerFacadeImpl}const VERSION=new Version("18.2.3");class CompilerConfig{constructor({defaultEncapsulation=ViewEncapsulation.Emulated,preserveWhitespaces,strictInjectionParameters}={}){this.defaultEncapsulation=defaultEncapsulation,this.preserveWhitespaces=preserveWhitespacesDefault(function noUndefined(val){return void 0===val?null:val}(preserveWhitespaces)),this.strictInjectionParameters=!0===strictInjectionParameters}}function preserveWhitespacesDefault(preserveWhitespacesOption,defaultSetting=!1){return null===preserveWhitespacesOption?defaultSetting:preserveWhitespacesOption}const _I18N_COMMENT_PREFIX_REGEXP=/^i18n:?/;let i18nCommentsWarned=!1;class ExtractionResult{constructor(messages,errors){this.messages=messages,this.errors=errors}}var _VisitorMode;!function(_VisitorMode){_VisitorMode[_VisitorMode.Extract=0]="Extract",_VisitorMode[_VisitorMode.Merge=1]="Merge"}(_VisitorMode||(_VisitorMode={}));class _Visitor{constructor(_implicitTags,_implicitAttrs,_preserveSignificantWhitespace=!0){this._implicitTags=_implicitTags,this._implicitAttrs=_implicitAttrs,this._preserveSignificantWhitespace=_preserveSignificantWhitespace}extract(nodes,interpolationConfig){return this._init(_VisitorMode.Extract,interpolationConfig),nodes.forEach((node=>node.visit(this,null))),this._inI18nBlock&&this._reportError(nodes[nodes.length-1],"Unclosed block"),new ExtractionResult(this._messages,this._errors)}merge(nodes,translations,interpolationConfig){this._init(_VisitorMode.Merge,interpolationConfig),this._translations=translations;const translatedNode=new Element("wrapper",[],nodes,void 0,void 0,void 0).visit(this,null);return this._inI18nBlock&&this._reportError(nodes[nodes.length-1],"Unclosed block"),new ParseTreeResult(translatedNode.children,this._errors)}visitExpansionCase(icuCase,context){const expression=visitAll(this,icuCase.expression,context);if(this._mode===_VisitorMode.Merge)return new ExpansionCase(icuCase.value,expression,icuCase.sourceSpan,icuCase.valueSourceSpan,icuCase.expSourceSpan)}visitExpansion(icu,context){this._mayBeAddBlockChildren(icu);const wasInIcu=this._inIcu;this._inIcu||(this._isInTranslatableSection&&this._addMessage([icu]),this._inIcu=!0);const cases=visitAll(this,icu.cases,context);return this._mode===_VisitorMode.Merge&&(icu=new Expansion(icu.switchValue,icu.type,cases,icu.sourceSpan,icu.switchValueSourceSpan)),this._inIcu=wasInIcu,icu}visitComment(comment,context){const isOpening=function _isOpeningComment(n){return!!(n instanceof Comment&&n.value&&n.value.startsWith("i18n"))}(comment);if(isOpening&&this._isInTranslatableSection)return void this._reportError(comment,"Could not start a block inside a translatable section");const isClosing=function _isClosingComment(n){return!!(n instanceof Comment&&n.value&&"/i18n"===n.value)}(comment);if(!isClosing||this._inI18nBlock){if(!this._inI18nNode&&!this._inIcu)if(this._inI18nBlock){if(isClosing){if(this._depth==this._blockStartDepth){this._closeTranslatableSection(comment,this._blockChildren),this._inI18nBlock=!1;const message=this._addMessage(this._blockChildren,this._blockMeaningAndDesc);return visitAll(this,this._translateMessage(comment,message))}return void this._reportError(comment,"I18N blocks should not cross element boundaries")}}else if(isOpening){if(!i18nCommentsWarned&&console&&console.warn){i18nCommentsWarned=!0;const details=comment.sourceSpan.details?`, ${comment.sourceSpan.details}`:"";console.warn(`I18n comments are deprecated, use an element instead (${comment.sourceSpan.start}${details})`)}this._inI18nBlock=!0,this._blockStartDepth=this._depth,this._blockChildren=[],this._blockMeaningAndDesc=comment.value.replace(_I18N_COMMENT_PREFIX_REGEXP,"").trim(),this._openTranslatableSection(comment)}}else this._reportError(comment,"Trying to close an unopened block")}visitText(text,context){return this._isInTranslatableSection&&this._mayBeAddBlockChildren(text),text}visitElement(el,context){this._mayBeAddBlockChildren(el),this._depth++;const wasInI18nNode=this._inI18nNode,wasInImplicitNode=this._inImplicitNode;let translatedChildNodes,childNodes=[];const i18nAttr=function _getI18nAttr(p){return p.attrs.find((attr=>"i18n"===attr.name))||null}(el),i18nMeta=i18nAttr?i18nAttr.value:"",isImplicit=this._implicitTags.some((tag=>el.name===tag))&&!this._inIcu&&!this._isInTranslatableSection,isTopLevelImplicit=!wasInImplicitNode&&isImplicit;if(this._inImplicitNode=wasInImplicitNode||isImplicit,this._isInTranslatableSection||this._inIcu)(i18nAttr||isTopLevelImplicit)&&this._reportError(el,"Could not mark an element as translatable inside a translatable section"),this._mode==_VisitorMode.Extract&&visitAll(this,el.children);else{if(i18nAttr||isTopLevelImplicit){this._inI18nNode=!0;const message=this._addMessage(el.children,i18nMeta);translatedChildNodes=this._translateMessage(el,message)}if(this._mode==_VisitorMode.Extract){const isTranslatable=i18nAttr||isTopLevelImplicit;isTranslatable&&this._openTranslatableSection(el),visitAll(this,el.children),isTranslatable&&this._closeTranslatableSection(el,el.children)}}if(this._mode===_VisitorMode.Merge){(translatedChildNodes||el.children).forEach((child=>{const visited=child.visit(this,context);visited&&!this._isInTranslatableSection&&(childNodes=childNodes.concat(visited))}))}if(this._visitAttributesOf(el),this._depth--,this._inI18nNode=wasInI18nNode,this._inImplicitNode=wasInImplicitNode,this._mode===_VisitorMode.Merge){const translatedAttrs=this._translateAttributes(el);return new Element(el.name,translatedAttrs,childNodes,el.sourceSpan,el.startSourceSpan,el.endSourceSpan)}return null}visitAttribute(attribute,context){throw new Error("unreachable code")}visitBlock(block,context){visitAll(this,block.children,context)}visitBlockParameter(parameter,context){}visitLetDeclaration(decl,context){}_init(mode,interpolationConfig){this._mode=mode,this._inI18nBlock=!1,this._inI18nNode=!1,this._depth=0,this._inIcu=!1,this._msgCountAtSectionStart=void 0,this._errors=[],this._messages=[],this._inImplicitNode=!1,this._createI18nMessage=createI18nMessageFactory(interpolationConfig,DEFAULT_CONTAINER_BLOCKS,!this._preserveSignificantWhitespace)}_visitAttributesOf(el){const explicitAttrNameToValue={},implicitAttrNames=this._implicitAttrs[el.name]||[];el.attrs.filter((attr=>attr.name.startsWith("i18n-"))).forEach((attr=>explicitAttrNameToValue[attr.name.slice(5)]=attr.value)),el.attrs.forEach((attr=>{attr.name in explicitAttrNameToValue?this._addMessage([attr],explicitAttrNameToValue[attr.name]):implicitAttrNames.some((name=>attr.name===name))&&this._addMessage([attr])}))}_addMessage(ast,msgMeta){if(0==ast.length||1==ast.length&&ast[0]instanceof Attribute&&!ast[0].value)return null;const{meaning,description,id}=_parseMessageMeta(msgMeta),message=this._createI18nMessage(ast,meaning,description,id);return this._messages.push(message),message}_translateMessage(el,message){if(message&&this._mode===_VisitorMode.Merge){const nodes=this._translations.get(message);if(nodes)return nodes;this._reportError(el,`Translation unavailable for message id="${this._translations.digest(message)}"`)}return[]}_translateAttributes(el){const attributes=el.attrs,i18nParsedMessageMeta={};attributes.forEach((attr=>{attr.name.startsWith("i18n-")&&(i18nParsedMessageMeta[attr.name.slice(5)]=_parseMessageMeta(attr.value))}));const translatedAttributes=[];return attributes.forEach((attr=>{if("i18n"!==attr.name&&!attr.name.startsWith("i18n-"))if(attr.value&&""!=attr.value&&i18nParsedMessageMeta.hasOwnProperty(attr.name)){const{meaning,description,id}=i18nParsedMessageMeta[attr.name],message=this._createI18nMessage([attr],meaning,description,id),nodes=this._translations.get(message);if(nodes)if(0==nodes.length)translatedAttributes.push(new Attribute(attr.name,"",attr.sourceSpan,void 0,void 0,void 0,void 0));else if(nodes[0]instanceof Text){const value=nodes[0].value;translatedAttributes.push(new Attribute(attr.name,value,attr.sourceSpan,void 0,void 0,void 0,void 0))}else this._reportError(el,`Unexpected translation for attribute "${attr.name}" (id="${id||this._translations.digest(message)}")`);else this._reportError(el,`Translation unavailable for attribute "${attr.name}" (id="${id||this._translations.digest(message)}")`)}else translatedAttributes.push(attr)})),translatedAttributes}_mayBeAddBlockChildren(node){this._inI18nBlock&&!this._inIcu&&this._depth==this._blockStartDepth&&this._blockChildren.push(node)}_openTranslatableSection(node){this._isInTranslatableSection?this._reportError(node,"Unexpected section start"):this._msgCountAtSectionStart=this._messages.length}get _isInTranslatableSection(){return void 0!==this._msgCountAtSectionStart}_closeTranslatableSection(node,directChildren){if(!this._isInTranslatableSection)return void this._reportError(node,"Unexpected section end");const startIndex=this._msgCountAtSectionStart,significantChildren=directChildren.reduce(((count,node)=>count+(node instanceof Comment?0:1)),0);if(1==significantChildren)for(let i=this._messages.length-1;i>=startIndex;i--){const ast=this._messages[i].nodes;if(!(1==ast.length&&ast[0]instanceof Text$2)){this._messages.splice(i,1);break}}this._msgCountAtSectionStart=void 0}_reportError(node,msg){this._errors.push(new I18nError(node.sourceSpan,msg))}}function _parseMessageMeta(i18n){if(!i18n)return{meaning:"",description:"",id:""};const idIndex=i18n.indexOf("@@"),descIndex=i18n.indexOf("|"),[meaningAndDesc,id]=idIndex>-1?[i18n.slice(0,idIndex),i18n.slice(idIndex+2)]:[i18n,""],[meaning,description]=descIndex>-1?[meaningAndDesc.slice(0,descIndex),meaningAndDesc.slice(descIndex+1)]:["",meaningAndDesc];return{meaning,description,id:id.trim()}}const _TAG_DEFINITION=new class XmlTagDefinition{constructor(){this.closedByParent=!1,this.implicitNamespacePrefix=null,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0,this.preventNamespaceInheritance=!1}requireExtraParent(currentParent){return!1}isClosedByChild(name){return!1}getContentType(){return TagContentType.PARSABLE_DATA}};function getXmlTagDefinition(tagName){return _TAG_DEFINITION}class XmlParser extends Parser$1{constructor(){super(getXmlTagDefinition)}parse(source,url,options={}){return super.parse(source,url,{...options,tokenizeBlocks:!1,tokenizeLet:!1})}}class Xliff extends Serializer{write(messages,locale){const visitor=new _WriteVisitor$1,transUnits=[];messages.forEach((message=>{let contextTags=[];message.sources.forEach((source=>{let contextGroupTag=new Tag("context-group",{purpose:"location"});contextGroupTag.children.push(new CR(10),new Tag("context",{"context-type":"sourcefile"},[new Text$1(source.filePath)]),new CR(10),new Tag("context",{"context-type":"linenumber"},[new Text$1(`${source.startLine}`)]),new CR(8)),contextTags.push(new CR(8),contextGroupTag)}));const transUnit=new Tag("trans-unit",{id:message.id,datatype:"html"});transUnit.children.push(new CR(8),new Tag("source",{},visitor.serialize(message.nodes)),...contextTags),message.description&&transUnit.children.push(new CR(8),new Tag("note",{priority:"1",from:"description"},[new Text$1(message.description)])),message.meaning&&transUnit.children.push(new CR(8),new Tag("note",{priority:"1",from:"meaning"},[new Text$1(message.meaning)])),transUnit.children.push(new CR(6)),transUnits.push(new CR(6),transUnit)}));const body=new Tag("body",{},[...transUnits,new CR(4)]),file=new Tag("file",{"source-language":locale||"en",datatype:"plaintext",original:"ng2.template"},[new CR(4),body,new CR(2)]),xliff=new Tag("xliff",{version:"1.2",xmlns:"urn:oasis:names:tc:xliff:document:1.2"},[new CR(2),file,new CR]);return serialize([new Declaration({version:"1.0",encoding:"UTF-8"}),new CR,xliff,new CR])}load(content,url){const xliffParser=new XliffParser,{locale,msgIdToHtml,errors}=xliffParser.parse(content,url),i18nNodesByMsgId={},converter=new XmlToI18n$2;if(Object.keys(msgIdToHtml).forEach((msgId=>{const{i18nNodes,errors:e}=converter.convert(msgIdToHtml[msgId],url);errors.push(...e),i18nNodesByMsgId[msgId]=i18nNodes})),errors.length)throw new Error(`xliff parse errors:\n${errors.join("\n")}`);return{locale,i18nNodesByMsgId}}digest(message){return digest$1(message)}}class _WriteVisitor$1{visitText(text,context){return[new Text$1(text.value)]}visitContainer(container,context){const nodes=[];return container.children.forEach((node=>nodes.push(...node.visit(this)))),nodes}visitIcu(icu,context){const nodes=[new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];return Object.keys(icu.cases).forEach((c=>{nodes.push(new Text$1(`${c} {`),...icu.cases[c].visit(this),new Text$1("} "))})),nodes.push(new Text$1("}")),nodes}visitTagPlaceholder(ph,context){const ctype=function getCtypeForTag(tag){switch(tag.toLowerCase()){case"br":return"lb";case"img":return"image";default:return`x-${tag}`}}(ph.tag);if(ph.isVoid)return[new Tag("x",{id:ph.startName,ctype,"equiv-text":`<${ph.tag}/>`})];const startTagPh=new Tag("x",{id:ph.startName,ctype,"equiv-text":`<${ph.tag}>`}),closeTagPh=new Tag("x",{id:ph.closeName,ctype,"equiv-text":``});return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitPlaceholder(ph,context){return[new Tag("x",{id:ph.name,"equiv-text":`{{${ph.value}}}`})]}visitBlockPlaceholder(ph,context){const ctype=`x-${ph.name.toLowerCase().replace(/[^a-z0-9]/g,"-")}`,startTagPh=new Tag("x",{id:ph.startName,ctype,"equiv-text":`@${ph.name}`}),closeTagPh=new Tag("x",{id:ph.closeName,ctype,"equiv-text":"}"});return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitIcuPlaceholder(ph,context){const equivText=`{${ph.value.expression}, ${ph.value.type}, ${Object.keys(ph.value.cases).map((value=>value+" {...}")).join(" ")}}`;return[new Tag("x",{id:ph.name,"equiv-text":equivText})]}serialize(nodes){return[].concat(...nodes.map((node=>node.visit(this))))}}class XliffParser{constructor(){this._locale=null}parse(xliff,url){this._unitMlString=null,this._msgIdToHtml={};const xml=(new XmlParser).parse(xliff,url);return this._errors=xml.errors,visitAll(this,xml.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}}visitElement(element,context){switch(element.name){case"trans-unit":this._unitMlString=null;const idAttr=element.attrs.find((attr=>"id"===attr.name));if(idAttr){const id=idAttr.value;this._msgIdToHtml.hasOwnProperty(id)?this._addError(element,`Duplicated translations for msg ${id}`):(visitAll(this,element.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[id]=this._unitMlString:this._addError(element,`Message ${id} misses a translation`))}else this._addError(element,' misses the "id" attribute');break;case"source":case"seg-source":case"alt-trans":break;case"target":const innerTextStart=element.startSourceSpan.end.offset,innerTextEnd=element.endSourceSpan.start.offset,innerText=element.startSourceSpan.start.file.content.slice(innerTextStart,innerTextEnd);this._unitMlString=innerText;break;case"file":const localeAttr=element.attrs.find((attr=>"target-language"===attr.name));localeAttr&&(this._locale=localeAttr.value),visitAll(this,element.children,null);break;default:visitAll(this,element.children,null)}}visitAttribute(attribute,context){}visitText(text,context){}visitComment(comment,context){}visitExpansion(expansion,context){}visitExpansionCase(expansionCase,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}visitLetDeclaration(decl,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class XmlToI18n$2{convert(message,url){const xmlIcu=(new XmlParser).parse(message,url,{tokenizeExpansionForms:!0});this._errors=xmlIcu.errors;return{i18nNodes:this._errors.length>0||0==xmlIcu.rootNodes.length?[]:[].concat(...visitAll(this,xmlIcu.rootNodes)),errors:this._errors}}visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitElement(el,context){if("x"===el.name){const nameAttr=el.attrs.find((attr=>"id"===attr.name));return nameAttr?new Placeholder("",nameAttr.value,el.sourceSpan):(this._addError(el,' misses the "id" attribute'),null)}return"mrk"===el.name?[].concat(...visitAll(this,el.children)):(this._addError(el,"Unexpected tag"),null)}visitExpansion(icu,context){const caseMap={};return visitAll(this,icu.cases).forEach((c=>{caseMap[c.value]=new Container(c.nodes,icu.sourceSpan)})),new Icu(icu.switchValue,icu.type,caseMap,icu.sourceSpan)}visitExpansionCase(icuCase,context){return{value:icuCase.value,nodes:visitAll(this,icuCase.expression)}}visitComment(comment,context){}visitAttribute(attribute,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}visitLetDeclaration(decl,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class Xliff2 extends Serializer{write(messages,locale){const visitor=new _WriteVisitor,units=[];messages.forEach((message=>{const unit=new Tag("unit",{id:message.id}),notes=new Tag("notes");(message.description||message.meaning)&&(message.description&¬es.children.push(new CR(8),new Tag("note",{category:"description"},[new Text$1(message.description)])),message.meaning&¬es.children.push(new CR(8),new Tag("note",{category:"meaning"},[new Text$1(message.meaning)]))),message.sources.forEach((source=>{notes.children.push(new CR(8),new Tag("note",{category:"location"},[new Text$1(`${source.filePath}:${source.startLine}${source.endLine!==source.startLine?","+source.endLine:""}`)]))})),notes.children.push(new CR(6)),unit.children.push(new CR(6),notes);const segment=new Tag("segment");segment.children.push(new CR(8),new Tag("source",{},visitor.serialize(message.nodes)),new CR(6)),unit.children.push(new CR(6),segment,new CR(4)),units.push(new CR(4),unit)}));const file=new Tag("file",{original:"ng.template",id:"ngi18n"},[...units,new CR(2)]),xliff=new Tag("xliff",{version:"2.0",xmlns:"urn:oasis:names:tc:xliff:document:2.0",srcLang:locale||"en"},[new CR(2),file,new CR]);return serialize([new Declaration({version:"1.0",encoding:"UTF-8"}),new CR,xliff,new CR])}load(content,url){const xliff2Parser=new Xliff2Parser,{locale,msgIdToHtml,errors}=xliff2Parser.parse(content,url),i18nNodesByMsgId={},converter=new XmlToI18n$1;if(Object.keys(msgIdToHtml).forEach((msgId=>{const{i18nNodes,errors:e}=converter.convert(msgIdToHtml[msgId],url);errors.push(...e),i18nNodesByMsgId[msgId]=i18nNodes})),errors.length)throw new Error(`xliff2 parse errors:\n${errors.join("\n")}`);return{locale,i18nNodesByMsgId}}digest(message){return decimalDigest(message,!0)}}class _WriteVisitor{constructor(){this._nextPlaceholderId=0}visitText(text,context){return[new Text$1(text.value)]}visitContainer(container,context){const nodes=[];return container.children.forEach((node=>nodes.push(...node.visit(this)))),nodes}visitIcu(icu,context){const nodes=[new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];return Object.keys(icu.cases).forEach((c=>{nodes.push(new Text$1(`${c} {`),...icu.cases[c].visit(this),new Text$1("} "))})),nodes.push(new Text$1("}")),nodes}visitTagPlaceholder(ph,context){const type=function getTypeForTag(tag){switch(tag.toLowerCase()){case"br":case"b":case"i":case"u":return"fmt";case"img":return"image";case"a":return"link";default:return"other"}}(ph.tag);if(ph.isVoid){return[new Tag("ph",{id:(this._nextPlaceholderId++).toString(),equiv:ph.startName,type,disp:`<${ph.tag}/>`})]}const tagPc=new Tag("pc",{id:(this._nextPlaceholderId++).toString(),equivStart:ph.startName,equivEnd:ph.closeName,type,dispStart:`<${ph.tag}>`,dispEnd:``}),nodes=[].concat(...ph.children.map((node=>node.visit(this))));return nodes.length?nodes.forEach((node=>tagPc.children.push(node))):tagPc.children.push(new Text$1("")),[tagPc]}visitPlaceholder(ph,context){const idStr=(this._nextPlaceholderId++).toString();return[new Tag("ph",{id:idStr,equiv:ph.name,disp:`{{${ph.value}}}`})]}visitBlockPlaceholder(ph,context){const tagPc=new Tag("pc",{id:(this._nextPlaceholderId++).toString(),equivStart:ph.startName,equivEnd:ph.closeName,type:"other",dispStart:`@${ph.name}`,dispEnd:"}"}),nodes=[].concat(...ph.children.map((node=>node.visit(this))));return nodes.length?nodes.forEach((node=>tagPc.children.push(node))):tagPc.children.push(new Text$1("")),[tagPc]}visitIcuPlaceholder(ph,context){const cases=Object.keys(ph.value.cases).map((value=>value+" {...}")).join(" "),idStr=(this._nextPlaceholderId++).toString();return[new Tag("ph",{id:idStr,equiv:ph.name,disp:`{${ph.value.expression}, ${ph.value.type}, ${cases}}`})]}serialize(nodes){return this._nextPlaceholderId=0,[].concat(...nodes.map((node=>node.visit(this))))}}class Xliff2Parser{constructor(){this._locale=null}parse(xliff,url){this._unitMlString=null,this._msgIdToHtml={};const xml=(new XmlParser).parse(xliff,url);return this._errors=xml.errors,visitAll(this,xml.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}}visitElement(element,context){switch(element.name){case"unit":this._unitMlString=null;const idAttr=element.attrs.find((attr=>"id"===attr.name));if(idAttr){const id=idAttr.value;this._msgIdToHtml.hasOwnProperty(id)?this._addError(element,`Duplicated translations for msg ${id}`):(visitAll(this,element.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[id]=this._unitMlString:this._addError(element,`Message ${id} misses a translation`))}else this._addError(element,' misses the "id" attribute');break;case"source":break;case"target":const innerTextStart=element.startSourceSpan.end.offset,innerTextEnd=element.endSourceSpan.start.offset,innerText=element.startSourceSpan.start.file.content.slice(innerTextStart,innerTextEnd);this._unitMlString=innerText;break;case"xliff":const localeAttr=element.attrs.find((attr=>"trgLang"===attr.name));localeAttr&&(this._locale=localeAttr.value);const versionAttr=element.attrs.find((attr=>"version"===attr.name));if(versionAttr){const version=versionAttr.value;"2.0"!==version?this._addError(element,`The XLIFF file version ${version} is not compatible with XLIFF 2.0 serializer`):visitAll(this,element.children,null)}break;default:visitAll(this,element.children,null)}}visitAttribute(attribute,context){}visitText(text,context){}visitComment(comment,context){}visitExpansion(expansion,context){}visitExpansionCase(expansionCase,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}visitLetDeclaration(decl,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class XmlToI18n$1{convert(message,url){const xmlIcu=(new XmlParser).parse(message,url,{tokenizeExpansionForms:!0});this._errors=xmlIcu.errors;return{i18nNodes:this._errors.length>0||0==xmlIcu.rootNodes.length?[]:[].concat(...visitAll(this,xmlIcu.rootNodes)),errors:this._errors}}visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitElement(el,context){switch(el.name){case"ph":const nameAttr=el.attrs.find((attr=>"equiv"===attr.name));if(nameAttr)return[new Placeholder("",nameAttr.value,el.sourceSpan)];this._addError(el,' misses the "equiv" attribute');break;case"pc":const startAttr=el.attrs.find((attr=>"equivStart"===attr.name)),endAttr=el.attrs.find((attr=>"equivEnd"===attr.name));if(startAttr){if(endAttr){const startId=startAttr.value,endId=endAttr.value;return[].concat(new Placeholder("",startId,el.sourceSpan),...el.children.map((node=>node.visit(this,null))),new Placeholder("",endId,el.sourceSpan))}this._addError(el,' misses the "equivEnd" attribute')}else this._addError(el,' misses the "equivStart" attribute');break;case"mrk":return[].concat(...visitAll(this,el.children));default:this._addError(el,"Unexpected tag")}return null}visitExpansion(icu,context){const caseMap={};return visitAll(this,icu.cases).forEach((c=>{caseMap[c.value]=new Container(c.nodes,icu.sourceSpan)})),new Icu(icu.switchValue,icu.type,caseMap,icu.sourceSpan)}visitExpansionCase(icuCase,context){return{value:icuCase.value,nodes:[].concat(...visitAll(this,icuCase.expression))}}visitComment(comment,context){}visitAttribute(attribute,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}visitLetDeclaration(decl,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class Xtb extends Serializer{write(messages,locale){throw new Error("Unsupported")}load(content,url){const xtbParser=new XtbParser,{locale,msgIdToHtml,errors}=xtbParser.parse(content,url),i18nNodesByMsgId={},converter=new XmlToI18n;if(Object.keys(msgIdToHtml).forEach((msgId=>{!function createLazyProperty(messages,id,valueFn){Object.defineProperty(messages,id,{configurable:!0,enumerable:!0,get:function(){const value=valueFn();return Object.defineProperty(messages,id,{enumerable:!0,value}),value},set:_=>{throw new Error("Could not overwrite an XTB translation")}})}(i18nNodesByMsgId,msgId,(function(){const{i18nNodes,errors}=converter.convert(msgIdToHtml[msgId],url);if(errors.length)throw new Error(`xtb parse errors:\n${errors.join("\n")}`);return i18nNodes}))})),errors.length)throw new Error(`xtb parse errors:\n${errors.join("\n")}`);return{locale,i18nNodesByMsgId}}digest(message){return digest(message,!0)}createNameMapper(message){return new SimplePlaceholderMapper(message,toPublicName)}}class XtbParser{constructor(){this._locale=null}parse(xtb,url){this._bundleDepth=0,this._msgIdToHtml={};const xml=(new XmlParser).parse(xtb,url);return this._errors=xml.errors,visitAll(this,xml.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}}visitElement(element,context){switch(element.name){case"translationbundle":this._bundleDepth++,this._bundleDepth>1&&this._addError(element," elements can not be nested");const langAttr=element.attrs.find((attr=>"lang"===attr.name));langAttr&&(this._locale=langAttr.value),visitAll(this,element.children,null),this._bundleDepth--;break;case"translation":const idAttr=element.attrs.find((attr=>"id"===attr.name));if(idAttr){const id=idAttr.value;if(this._msgIdToHtml.hasOwnProperty(id))this._addError(element,`Duplicated translations for msg ${id}`);else{const innerTextStart=element.startSourceSpan.end.offset,innerTextEnd=element.endSourceSpan.start.offset,innerText=element.startSourceSpan.start.file.content.slice(innerTextStart,innerTextEnd);this._msgIdToHtml[id]=innerText}}else this._addError(element,' misses the "id" attribute');break;default:this._addError(element,"Unexpected tag")}}visitAttribute(attribute,context){}visitText(text,context){}visitComment(comment,context){}visitExpansion(expansion,context){}visitExpansionCase(expansionCase,context){}visitBlock(block,context){}visitBlockParameter(block,context){}visitLetDeclaration(decl,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class XmlToI18n{convert(message,url){const xmlIcu=(new XmlParser).parse(message,url,{tokenizeExpansionForms:!0});this._errors=xmlIcu.errors;return{i18nNodes:this._errors.length>0||0==xmlIcu.rootNodes.length?[]:visitAll(this,xmlIcu.rootNodes),errors:this._errors}}visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitExpansion(icu,context){const caseMap={};return visitAll(this,icu.cases).forEach((c=>{caseMap[c.value]=new Container(c.nodes,icu.sourceSpan)})),new Icu(icu.switchValue,icu.type,caseMap,icu.sourceSpan)}visitExpansionCase(icuCase,context){return{value:icuCase.value,nodes:visitAll(this,icuCase.expression)}}visitElement(el,context){if("ph"===el.name){const nameAttr=el.attrs.find((attr=>"name"===attr.name));if(nameAttr)return new Placeholder("",nameAttr.value,el.sourceSpan);this._addError(el,' misses the "name" attribute')}else this._addError(el,"Unexpected tag");return null}visitComment(comment,context){}visitAttribute(attribute,context){}visitBlock(block,context){}visitBlockParameter(block,context){}visitLetDeclaration(decl,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class TranslationBundle{constructor(_i18nNodesByMsgId={},locale,digest,mapperFactory,missingTranslationStrategy=MissingTranslationStrategy.Warning,console){this._i18nNodesByMsgId=_i18nNodesByMsgId,this.digest=digest,this.mapperFactory=mapperFactory,this._i18nToHtml=new I18nToHtmlVisitor(_i18nNodesByMsgId,locale,digest,mapperFactory,missingTranslationStrategy,console)}static load(content,url,serializer,missingTranslationStrategy,console){const{locale,i18nNodesByMsgId}=serializer.load(content,url);return new TranslationBundle(i18nNodesByMsgId,locale,(m=>serializer.digest(m)),(m=>serializer.createNameMapper(m)),missingTranslationStrategy,console)}get(srcMsg){const html=this._i18nToHtml.convert(srcMsg);if(html.errors.length)throw new Error(html.errors.join("\n"));return html.nodes}has(srcMsg){return this.digest(srcMsg)in this._i18nNodesByMsgId}}class I18nToHtmlVisitor{constructor(_i18nNodesByMsgId={},_locale,_digest,_mapperFactory,_missingTranslationStrategy,_console){this._i18nNodesByMsgId=_i18nNodesByMsgId,this._locale=_locale,this._digest=_digest,this._mapperFactory=_mapperFactory,this._missingTranslationStrategy=_missingTranslationStrategy,this._console=_console,this._errors=[],this._contextStack=[]}convert(srcMsg){this._contextStack.length=0,this._errors.length=0;const text=this._convertToText(srcMsg),url=srcMsg.nodes[0].sourceSpan.start.file.url,html=(new HtmlParser).parse(text,url,{tokenizeExpansionForms:!0});return{nodes:html.rootNodes,errors:[...this._errors,...html.errors]}}visitText(text,context){return escapeXml(text.value)}visitContainer(container,context){return container.children.map((n=>n.visit(this))).join("")}visitIcu(icu,context){const cases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${this._srcMsg.placeholders.hasOwnProperty(icu.expression)?this._srcMsg.placeholders[icu.expression].text:icu.expression}, ${icu.type}, ${cases.join(" ")}}`}visitPlaceholder(ph,context){const phName=this._mapper(ph.name);return this._srcMsg.placeholders.hasOwnProperty(phName)?this._srcMsg.placeholders[phName].text:this._srcMsg.placeholderToMessage.hasOwnProperty(phName)?this._convertToText(this._srcMsg.placeholderToMessage[phName]):(this._addError(ph,`Unknown placeholder "${ph.name}"`),"")}visitTagPlaceholder(ph,context){const tag=`${ph.tag}`,attrs=Object.keys(ph.attrs).map((name=>`${name}="${ph.attrs[name]}"`)).join(" ");if(ph.isVoid)return`<${tag} ${attrs}/>`;return`<${tag} ${attrs}>${ph.children.map((c=>c.visit(this))).join("")}`}visitIcuPlaceholder(ph,context){return this._convertToText(this._srcMsg.placeholderToMessage[ph.name])}visitBlockPlaceholder(ph,context){const params=0===ph.parameters.length?"":` (${ph.parameters.join("; ")})`,children=ph.children.map((c=>c.visit(this))).join("");return`@${ph.name}${params} {${children}}`}_convertToText(srcMsg){const id=this._digest(srcMsg),mapper=this._mapperFactory?this._mapperFactory(srcMsg):null;let nodes;if(this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=srcMsg,this._i18nNodesByMsgId.hasOwnProperty(id))nodes=this._i18nNodesByMsgId[id],this._mapper=name=>mapper?mapper.toInternalName(name):name;else{if(this._missingTranslationStrategy===MissingTranslationStrategy.Error){const ctx=this._locale?` for locale "${this._locale}"`:"";this._addError(srcMsg.nodes[0],`Missing translation for message "${id}"${ctx}`)}else if(this._console&&this._missingTranslationStrategy===MissingTranslationStrategy.Warning){const ctx=this._locale?` for locale "${this._locale}"`:"";this._console.warn(`Missing translation for message "${id}"${ctx}`)}nodes=srcMsg.nodes,this._mapper=name=>name}const text=nodes.map((node=>node.visit(this))).join(""),context=this._contextStack.pop();return this._srcMsg=context.msg,this._mapper=context.mapper,text}_addError(el,msg){this._errors.push(new I18nError(el.sourceSpan,msg))}}class I18NHtmlParser{constructor(_htmlParser,translations,translationsFormat,missingTranslation=MissingTranslationStrategy.Warning,console){if(this._htmlParser=_htmlParser,translations){const serializer=function createSerializer(format){switch(format=(format||"xlf").toLowerCase()){case"xmb":return new Xmb(!0);case"xtb":return new Xtb;case"xliff2":case"xlf2":return new Xliff2;default:return new Xliff}}(translationsFormat);this._translationBundle=TranslationBundle.load(translations,"i18n",serializer,missingTranslation,console)}else this._translationBundle=new TranslationBundle({},null,digest$1,void 0,missingTranslation,console)}parse(source,url,options={}){const interpolationConfig=options.interpolationConfig||DEFAULT_INTERPOLATION_CONFIG,parseResult=this._htmlParser.parse(source,url,{interpolationConfig,...options});return parseResult.errors.length?new ParseTreeResult(parseResult.rootNodes,parseResult.errors):function mergeTranslations(nodes,translations,interpolationConfig,implicitTags,implicitAttrs){return new _Visitor(implicitTags,implicitAttrs).merge(nodes,translations,interpolationConfig)}(parseResult.rootNodes,this._translationBundle,interpolationConfig,[],{})}}class MessageBundle{constructor(_htmlParser,_implicitTags,_implicitAttrs,_locale=null,_preserveWhitespace=!0){this._htmlParser=_htmlParser,this._implicitTags=_implicitTags,this._implicitAttrs=_implicitAttrs,this._locale=_locale,this._preserveWhitespace=_preserveWhitespace,this._messages=[]}updateFromTemplate(source,url,interpolationConfig){const htmlParserResult=this._htmlParser.parse(source,url,{tokenizeExpansionForms:!0,interpolationConfig});if(htmlParserResult.errors.length)return htmlParserResult.errors;const i18nParserResult=function extractMessages(nodes,interpolationConfig,implicitTags,implicitAttrs,preserveSignificantWhitespace){return new _Visitor(implicitTags,implicitAttrs,preserveSignificantWhitespace).extract(nodes,interpolationConfig)}(this._preserveWhitespace?htmlParserResult.rootNodes:visitAllWithSiblings(new WhitespaceVisitor(!1),htmlParserResult.rootNodes),interpolationConfig,this._implicitTags,this._implicitAttrs,this._preserveWhitespace);return i18nParserResult.errors.length?i18nParserResult.errors:(this._messages.push(...i18nParserResult.messages),[])}getMessages(){return this._messages}write(serializer,filterSources){const messages={},mapperVisitor=new MapPlaceholderNames;this._messages.forEach((message=>{const id=serializer.digest(message);messages.hasOwnProperty(id)?messages[id].sources.push(...message.sources):messages[id]=message}));const msgList=Object.keys(messages).map((id=>{const mapper=serializer.createNameMapper(messages[id]),src=messages[id],nodes=mapper?mapperVisitor.convert(src.nodes,mapper):src.nodes;let transformedMessage=new Message(nodes,{},{},src.meaning,src.description,id);return transformedMessage.sources=src.sources,filterSources&&transformedMessage.sources.forEach((source=>source.filePath=filterSources(source.filePath))),transformedMessage}));return serializer.write(msgList,this._locale)}}class MapPlaceholderNames extends CloneVisitor{convert(nodes,mapper){return mapper?nodes.map((n=>n.visit(this,mapper))):nodes}visitTagPlaceholder(ph,mapper){const startName=mapper.toPublicName(ph.startName),closeName=ph.closeName?mapper.toPublicName(ph.closeName):ph.closeName,children=ph.children.map((n=>n.visit(this,mapper)));return new TagPlaceholder(ph.tag,ph.attrs,startName,closeName,children,ph.isVoid,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}visitBlockPlaceholder(ph,mapper){const startName=mapper.toPublicName(ph.startName),closeName=ph.closeName?mapper.toPublicName(ph.closeName):ph.closeName,children=ph.children.map((n=>n.visit(this,mapper)));return new BlockPlaceholder(ph.name,ph.parameters,startName,closeName,children,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}visitPlaceholder(ph,mapper){return new Placeholder(ph.value,mapper.toPublicName(ph.name),ph.sourceSpan)}visitIcuPlaceholder(ph,mapper){return new IcuPlaceholder(ph.value,mapper.toPublicName(ph.name),ph.sourceSpan)}}var FactoryTarget;function compileClassMetadata(metadata){return arrowFn([],[devOnlyGuardedExpression(internalCompileClassMetadata(metadata)).toStmt()]).callFn([])}function internalCompileClassMetadata(metadata){return importExpr(Identifiers.setClassMetadata).callFn([metadata.type,metadata.decorators,metadata.ctorParameters??literal(null),metadata.propDecorators??literal(null)])}function compileComponentClassMetadata(metadata,dependencies){return null===dependencies||0===dependencies.length?compileClassMetadata(metadata):internalCompileSetClassMetadataAsync(metadata,dependencies.map((dep=>new FnParam(dep.symbolName,DYNAMIC_TYPE))),compileComponentMetadataAsyncResolver(dependencies))}function compileOpaqueAsyncClassMetadata(metadata,deferResolver,deferredDependencyNames){return internalCompileSetClassMetadataAsync(metadata,deferredDependencyNames.map((name=>new FnParam(name,DYNAMIC_TYPE))),deferResolver)}function internalCompileSetClassMetadataAsync(metadata,wrapperParams,dependencyResolverFn){const setClassMetaWrapper=arrowFn(wrapperParams,[internalCompileClassMetadata(metadata).toStmt()]);return arrowFn([],[devOnlyGuardedExpression(importExpr(Identifiers.setClassMetadataAsync).callFn([metadata.type,dependencyResolverFn,setClassMetaWrapper])).toStmt()]).callFn([])}function compileComponentMetadataAsyncResolver(dependencies){const dynamicImports=dependencies.map((({symbolName,importPath,isDefaultImport})=>{const innerFn=arrowFn([new FnParam("m",DYNAMIC_TYPE)],variable("m").prop(isDefaultImport?"default":symbolName));return new DynamicImportExpr(importPath).prop("then").callFn([innerFn])}));return arrowFn([],literalArr(dynamicImports))}function compileClassDebugInfo(debugInfo){const debugInfoObject={className:debugInfo.className};debugInfo.filePath&&(debugInfoObject.filePath=debugInfo.filePath,debugInfoObject.lineNumber=debugInfo.lineNumber),debugInfo.forbidOrphanRendering&&(debugInfoObject.forbidOrphanRendering=literal(!0));return arrowFn([],[devOnlyGuardedExpression(importExpr(Identifiers.setClassDebugInfo).callFn([debugInfo.type,mapLiteral(debugInfoObject)])).toStmt()]).callFn([])}!function(FactoryTarget){FactoryTarget[FactoryTarget.Directive=0]="Directive",FactoryTarget[FactoryTarget.Component=1]="Component",FactoryTarget[FactoryTarget.Injectable=2]="Injectable",FactoryTarget[FactoryTarget.Pipe=3]="Pipe",FactoryTarget[FactoryTarget.NgModule=4]="NgModule"}(FactoryTarget||(FactoryTarget={}));const MINIMUM_PARTIAL_LINKER_VERSION$5="12.0.0",MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION="18.0.0";function compileDeclareClassMetadata(metadata){const definitionMap=new DefinitionMap;return definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$5)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",metadata.type),definitionMap.set("decorators",metadata.decorators),definitionMap.set("ctorParameters",metadata.ctorParameters),definitionMap.set("propDecorators",metadata.propDecorators),importExpr(Identifiers.declareClassMetadata).callFn([definitionMap.toLiteralMap()])}function compileComponentDeclareClassMetadata(metadata,dependencies){if(null===dependencies||0===dependencies.length)return compileDeclareClassMetadata(metadata);const definitionMap=new DefinitionMap,callbackReturnDefinitionMap=new DefinitionMap;return callbackReturnDefinitionMap.set("decorators",metadata.decorators),callbackReturnDefinitionMap.set("ctorParameters",metadata.ctorParameters??literal(null)),callbackReturnDefinitionMap.set("propDecorators",metadata.propDecorators??literal(null)),definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",metadata.type),definitionMap.set("resolveDeferredDeps",compileComponentMetadataAsyncResolver(dependencies)),definitionMap.set("resolveMetadata",arrowFn(dependencies.map((dep=>new FnParam(dep.symbolName,DYNAMIC_TYPE))),callbackReturnDefinitionMap.toLiteralMap())),importExpr(Identifiers.declareClassMetadataAsync).callFn([definitionMap.toLiteralMap()])}function toOptionalLiteralArray(values,mapper){return null===values||0===values.length?null:literalArr(values.map((value=>mapper(value))))}function toOptionalLiteralMap(object,mapper){const entries=Object.keys(object).map((key=>{const value=object[key];return{key,value:mapper(value),quoted:!0}}));return entries.length>0?literalMap(entries):null}function compileDependency(dep){const depMeta=new DefinitionMap;return depMeta.set("token",dep.token),null!==dep.attributeNameType&&depMeta.set("attribute",literal(!0)),dep.host&&depMeta.set("host",literal(!0)),dep.optional&&depMeta.set("optional",literal(!0)),dep.self&&depMeta.set("self",literal(!0)),dep.skipSelf&&depMeta.set("skipSelf",literal(!0)),depMeta.toLiteralMap()}function compileDeclareDirectiveFromMetadata(meta){const definitionMap=createDirectiveDefinitionMap(meta);return{expression:importExpr(Identifiers.declareDirective).callFn([definitionMap.toLiteralMap()]),type:createDirectiveType(meta),statements:[]}}function createDirectiveDefinitionMap(meta){const definitionMap=new DefinitionMap,minVersion=function getMinimumVersionForPartialOutput(meta){let minVersion="14.0.0";const hasDecoratorTransformFunctions=Object.values(meta.inputs).some((input=>null!==input.transformFunction));hasDecoratorTransformFunctions&&(minVersion="16.1.0");needsNewInputPartialOutput(meta)&&(minVersion="17.1.0");(meta.queries.some((q=>q.isSignal))||meta.viewQueries.some((q=>q.isSignal)))&&(minVersion="17.2.0");return minVersion}(meta);return definitionMap.set("minVersion",literal(minVersion)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("type",meta.type.value),meta.isStandalone&&definitionMap.set("isStandalone",literal(meta.isStandalone)),meta.isSignal&&definitionMap.set("isSignal",literal(meta.isSignal)),null!==meta.selector&&definitionMap.set("selector",literal(meta.selector)),definitionMap.set("inputs",needsNewInputPartialOutput(meta)?function createInputsPartialMetadata(inputs){const keys=Object.getOwnPropertyNames(inputs);if(0===keys.length)return null;return literalMap(keys.map((declaredName=>{const value=inputs[declaredName];return{key:declaredName,quoted:UNSAFE_OBJECT_KEY_NAME_REGEXP.test(declaredName),value:literalMap([{key:"classPropertyName",quoted:!1,value:asLiteral(value.classPropertyName)},{key:"publicName",quoted:!1,value:asLiteral(value.bindingPropertyName)},{key:"isSignal",quoted:!1,value:asLiteral(value.isSignal)},{key:"isRequired",quoted:!1,value:asLiteral(value.required)},{key:"transformFunction",quoted:!1,value:value.transformFunction??NULL_EXPR}])}})))}(meta.inputs):function legacyInputsPartialMetadata(inputs){const keys=Object.getOwnPropertyNames(inputs);if(0===keys.length)return null;return literalMap(keys.map((declaredName=>{const value=inputs[declaredName],publicName=value.bindingPropertyName;let result;if(publicName!==declaredName||null!==value.transformFunction){const values=[asLiteral(publicName),asLiteral(declaredName)];null!==value.transformFunction&&values.push(value.transformFunction),result=literalArr(values)}else result=asLiteral(publicName);return{key:declaredName,quoted:UNSAFE_OBJECT_KEY_NAME_REGEXP.test(declaredName),value:result}})))}(meta.inputs)),definitionMap.set("outputs",conditionallyCreateDirectiveBindingLiteral(meta.outputs)),definitionMap.set("host",function compileHostMetadata(meta){const hostMetadata=new DefinitionMap;hostMetadata.set("attributes",toOptionalLiteralMap(meta.attributes,(expression=>expression))),hostMetadata.set("listeners",toOptionalLiteralMap(meta.listeners,literal)),hostMetadata.set("properties",toOptionalLiteralMap(meta.properties,literal)),meta.specialAttributes.styleAttr&&hostMetadata.set("styleAttribute",literal(meta.specialAttributes.styleAttr));meta.specialAttributes.classAttr&&hostMetadata.set("classAttribute",literal(meta.specialAttributes.classAttr));return hostMetadata.values.length>0?hostMetadata.toLiteralMap():null}(meta.host)),definitionMap.set("providers",meta.providers),meta.queries.length>0&&definitionMap.set("queries",literalArr(meta.queries.map(compileQuery))),meta.viewQueries.length>0&&definitionMap.set("viewQueries",literalArr(meta.viewQueries.map(compileQuery))),null!==meta.exportAs&&definitionMap.set("exportAs",asLiteral(meta.exportAs)),meta.usesInheritance&&definitionMap.set("usesInheritance",literal(!0)),meta.lifecycle.usesOnChanges&&definitionMap.set("usesOnChanges",literal(!0)),meta.hostDirectives?.length&&definitionMap.set("hostDirectives",function createHostDirectives(hostDirectives){return literalArr(hostDirectives.map((current=>{const keys=[{key:"directive",value:current.isForwardReference?generateForwardRef(current.directive.type):current.directive.type,quoted:!1}],inputsLiteral=current.inputs?createHostDirectivesMappingArray(current.inputs):null,outputsLiteral=current.outputs?createHostDirectivesMappingArray(current.outputs):null;return inputsLiteral&&keys.push({key:"inputs",value:inputsLiteral,quoted:!1}),outputsLiteral&&keys.push({key:"outputs",value:outputsLiteral,quoted:!1}),literalMap(keys)})))}(meta.hostDirectives)),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap}function needsNewInputPartialOutput(meta){return Object.values(meta.inputs).some((input=>input.isSignal))}function compileQuery(query){const meta=new DefinitionMap;return meta.set("propertyName",literal(query.propertyName)),query.first&&meta.set("first",literal(!0)),meta.set("predicate",Array.isArray(query.predicate)?asLiteral(query.predicate):convertFromMaybeForwardRefExpression(query.predicate)),query.emitDistinctChangesOnly||meta.set("emitDistinctChangesOnly",literal(!1)),query.descendants&&meta.set("descendants",literal(!0)),meta.set("read",query.read),query.static&&meta.set("static",literal(!0)),query.isSignal&&meta.set("isSignal",literal(!0)),meta.toLiteralMap()}function compileDeclareComponentFromMetadata(meta,template,additionalTemplateInfo){const definitionMap=function createComponentDefinitionMap(meta,template,templateInfo){const definitionMap=createDirectiveDefinitionMap(meta),blockVisitor=new BlockPresenceVisitor;visitAll$1(blockVisitor,template.nodes),definitionMap.set("template",function getTemplateExpression(template,templateInfo){if(null!==templateInfo.inlineTemplateLiteralExpression)return templateInfo.inlineTemplateLiteralExpression;if(templateInfo.isInline)return literal(templateInfo.content,null,null);const contents=templateInfo.content,file=new ParseSourceFile(contents,templateInfo.sourceUrl),start=new ParseLocation(file,0,0,0),end=function computeEndLocation(file,contents){const length=contents.length;let lineStart=0,lastLineStart=0,line=0;do{lineStart=contents.indexOf("\n",lastLineStart),-1!==lineStart&&(lastLineStart=lineStart+1,line++)}while(-1!==lineStart);return new ParseLocation(file,length,line,length-lastLineStart)}(file,contents),span=new ParseSourceSpan(start,end);return literal(contents,null,span)}(0,templateInfo)),templateInfo.isInline&&definitionMap.set("isInline",literal(!0));blockVisitor.hasBlocks&&definitionMap.set("minVersion",literal("17.0.0"));if(definitionMap.set("styles",toOptionalLiteralArray(meta.styles,literal)),definitionMap.set("dependencies",function compileUsedDependenciesMetadata(meta){const wrapType=0!==meta.declarationListEmitMode?generateForwardRef:expr=>expr;if(3===meta.declarationListEmitMode)throw new Error("Unsupported emit mode");return toOptionalLiteralArray(meta.declarations,(decl=>{switch(decl.kind){case R3TemplateDependencyKind.Directive:const dirMeta=new DefinitionMap;return dirMeta.set("kind",literal(decl.isComponent?"component":"directive")),dirMeta.set("type",wrapType(decl.type)),dirMeta.set("selector",literal(decl.selector)),dirMeta.set("inputs",toOptionalLiteralArray(decl.inputs,literal)),dirMeta.set("outputs",toOptionalLiteralArray(decl.outputs,literal)),dirMeta.set("exportAs",toOptionalLiteralArray(decl.exportAs,literal)),dirMeta.toLiteralMap();case R3TemplateDependencyKind.Pipe:const pipeMeta=new DefinitionMap;return pipeMeta.set("kind",literal("pipe")),pipeMeta.set("type",wrapType(decl.type)),pipeMeta.set("name",literal(decl.name)),pipeMeta.toLiteralMap();case R3TemplateDependencyKind.NgModule:const ngModuleMeta=new DefinitionMap;return ngModuleMeta.set("kind",literal("ngmodule")),ngModuleMeta.set("type",wrapType(decl.type)),ngModuleMeta.toLiteralMap()}}))}(meta)),definitionMap.set("viewProviders",meta.viewProviders),definitionMap.set("animations",meta.animations),null!==meta.changeDetection){if("object"==typeof meta.changeDetection)throw new Error("Impossible state! Change detection flag is not resolved!");definitionMap.set("changeDetection",importExpr(Identifiers.ChangeDetectionStrategy).prop(ChangeDetectionStrategy[meta.changeDetection]))}meta.encapsulation!==ViewEncapsulation.Emulated&&definitionMap.set("encapsulation",importExpr(Identifiers.ViewEncapsulation).prop(ViewEncapsulation[meta.encapsulation]));meta.interpolation!==DEFAULT_INTERPOLATION_CONFIG&&definitionMap.set("interpolation",literalArr([literal(meta.interpolation.start),literal(meta.interpolation.end)]));!0===template.preserveWhitespaces&&definitionMap.set("preserveWhitespaces",literal(!0));if(0!==meta.defer.mode)throw new Error("Unsupported defer function emit mode in partial compilation");{const resolvers=[];let hasResolvers=!1;for(const deps of meta.defer.blocks.values())null===deps?resolvers.push(literal(null)):(resolvers.push(deps),hasResolvers=!0);hasResolvers&&definitionMap.set("deferBlockDependencies",literalArr(resolvers))}return definitionMap}(meta,template,additionalTemplateInfo);return{expression:importExpr(Identifiers.declareComponent).callFn([definitionMap.toLiteralMap()]),type:createComponentType(meta),statements:[]}}class BlockPresenceVisitor extends RecursiveVisitor$1{constructor(){super(...arguments),this.hasBlocks=!1}visitDeferredBlock(){this.hasBlocks=!0}visitDeferredBlockPlaceholder(){this.hasBlocks=!0}visitDeferredBlockLoading(){this.hasBlocks=!0}visitDeferredBlockError(){this.hasBlocks=!0}visitIfBlock(){this.hasBlocks=!0}visitIfBlockBranch(){this.hasBlocks=!0}visitForLoopBlock(){this.hasBlocks=!0}visitForLoopBlockEmpty(){this.hasBlocks=!0}visitSwitchBlock(){this.hasBlocks=!0}visitSwitchBlockCase(){this.hasBlocks=!0}}const MINIMUM_PARTIAL_LINKER_VERSION$4="12.0.0";function compileDeclareFactoryFunction(meta){const definitionMap=new DefinitionMap;return definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$4)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),definitionMap.set("deps",function compileDependencies(deps){return"invalid"===deps?literal("invalid"):null===deps?literal(null):literalArr(deps.map(compileDependency))}(meta.deps)),definitionMap.set("target",importExpr(Identifiers.FactoryTarget).prop(FactoryTarget$1[meta.target])),{expression:importExpr(Identifiers.declareFactory).callFn([definitionMap.toLiteralMap()]),statements:[],type:createFactoryType(meta)}}const MINIMUM_PARTIAL_LINKER_VERSION$3="12.0.0";function compileDeclareInjectableFromMetadata(meta){const definitionMap=function createInjectableDefinitionMap(meta){const definitionMap=new DefinitionMap;if(definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$3)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),void 0!==meta.providedIn){const providedIn=convertFromMaybeForwardRefExpression(meta.providedIn);null!==providedIn.value&&definitionMap.set("providedIn",providedIn)}void 0!==meta.useClass&&definitionMap.set("useClass",convertFromMaybeForwardRefExpression(meta.useClass));void 0!==meta.useExisting&&definitionMap.set("useExisting",convertFromMaybeForwardRefExpression(meta.useExisting));void 0!==meta.useValue&&definitionMap.set("useValue",convertFromMaybeForwardRefExpression(meta.useValue));void 0!==meta.useFactory&&definitionMap.set("useFactory",meta.useFactory);void 0!==meta.deps&&definitionMap.set("deps",literalArr(meta.deps.map(compileDependency)));return definitionMap}(meta);return{expression:importExpr(Identifiers.declareInjectable).callFn([definitionMap.toLiteralMap()]),type:createInjectableType(meta),statements:[]}}const MINIMUM_PARTIAL_LINKER_VERSION$2="12.0.0";function compileDeclareInjectorFromMetadata(meta){const definitionMap=function createInjectorDefinitionMap(meta){const definitionMap=new DefinitionMap;definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$2)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),definitionMap.set("providers",meta.providers),meta.imports.length>0&&definitionMap.set("imports",literalArr(meta.imports));return definitionMap}(meta);return{expression:importExpr(Identifiers.declareInjector).callFn([definitionMap.toLiteralMap()]),type:createInjectorType(meta),statements:[]}}const MINIMUM_PARTIAL_LINKER_VERSION$1="14.0.0";function compileDeclareNgModuleFromMetadata(meta){const definitionMap=function createNgModuleDefinitionMap(meta){const definitionMap=new DefinitionMap;if(meta.kind===R3NgModuleMetadataKind.Local)throw new Error("Invalid path! Local compilation mode should not get into the partial compilation path");definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$1)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),meta.bootstrap.length>0&&definitionMap.set("bootstrap",refsToArray(meta.bootstrap,meta.containsForwardDecls));meta.declarations.length>0&&definitionMap.set("declarations",refsToArray(meta.declarations,meta.containsForwardDecls));meta.imports.length>0&&definitionMap.set("imports",refsToArray(meta.imports,meta.containsForwardDecls));meta.exports.length>0&&definitionMap.set("exports",refsToArray(meta.exports,meta.containsForwardDecls));null!==meta.schemas&&meta.schemas.length>0&&definitionMap.set("schemas",literalArr(meta.schemas.map((ref=>ref.value))));null!==meta.id&&definitionMap.set("id",meta.id);return definitionMap}(meta);return{expression:importExpr(Identifiers.declareNgModule).callFn([definitionMap.toLiteralMap()]),type:createNgModuleType(meta),statements:[]}}const MINIMUM_PARTIAL_LINKER_VERSION="14.0.0";function compileDeclarePipeFromMetadata(meta){const definitionMap=function createPipeDefinitionMap(meta){const definitionMap=new DefinitionMap;definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION)),definitionMap.set("version",literal("18.2.3")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),meta.isStandalone&&definitionMap.set("isStandalone",literal(meta.isStandalone));definitionMap.set("name",literal(meta.pipeName)),!1===meta.pure&&definitionMap.set("pure",literal(meta.pure));return definitionMap}(meta);return{expression:importExpr(Identifiers.declarePipe).callFn([definitionMap.toLiteralMap()]),type:createPipeType(meta),statements:[]}}publishFacade(_global)},"./node_modules/@angular/core/fesm2022/core.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function defaultEquals(a,b){return Object.is(a,b)}__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ANIMATION_MODULE_TYPE:()=>ANIMATION_MODULE_TYPE,APP_BOOTSTRAP_LISTENER:()=>APP_BOOTSTRAP_LISTENER,APP_ID:()=>APP_ID,APP_INITIALIZER:()=>APP_INITIALIZER,AfterRenderPhase:()=>AfterRenderPhase,ApplicationInitStatus:()=>ApplicationInitStatus,ApplicationModule:()=>ApplicationModule,ApplicationRef:()=>ApplicationRef,Attribute:()=>core_Attribute,COMPILER_OPTIONS:()=>COMPILER_OPTIONS,CSP_NONCE:()=>CSP_NONCE,CUSTOM_ELEMENTS_SCHEMA:()=>CUSTOM_ELEMENTS_SCHEMA,ChangeDetectionStrategy:()=>ChangeDetectionStrategy,ChangeDetectorRef:()=>ChangeDetectorRef,Compiler:()=>Compiler,CompilerFactory:()=>CompilerFactory,Component:()=>Component,ComponentFactory:()=>ComponentFactory$1,ComponentFactoryResolver:()=>ComponentFactoryResolver$1,ComponentRef:()=>ComponentRef$1,ContentChild:()=>ContentChild,ContentChildren:()=>ContentChildren,DEFAULT_CURRENCY_CODE:()=>DEFAULT_CURRENCY_CODE,DebugElement:()=>DebugElement,DebugEventListener:()=>DebugEventListener,DebugNode:()=>DebugNode,DefaultIterableDiffer:()=>DefaultIterableDiffer,DestroyRef:()=>DestroyRef,Directive:()=>Directive,ENVIRONMENT_INITIALIZER:()=>ENVIRONMENT_INITIALIZER,ElementRef:()=>ElementRef,EmbeddedViewRef:()=>EmbeddedViewRef,EnvironmentInjector:()=>EnvironmentInjector,ErrorHandler:()=>ErrorHandler,EventEmitter:()=>EventEmitter,ExperimentalPendingTasks:()=>ExperimentalPendingTasks,HOST_TAG_NAME:()=>HOST_TAG_NAME,Host:()=>Host,HostAttributeToken:()=>HostAttributeToken,HostBinding:()=>HostBinding,HostListener:()=>HostListener,INJECTOR:()=>INJECTOR$1,Inject:()=>Inject,InjectFlags:()=>InjectFlags,Injectable:()=>Injectable,InjectionToken:()=>InjectionToken,Injector:()=>Injector,Input:()=>Input,IterableDiffers:()=>IterableDiffers,KeyValueDiffers:()=>KeyValueDiffers,LOCALE_ID:()=>LOCALE_ID,MissingTranslationStrategy:()=>MissingTranslationStrategy,ModuleWithComponentFactories:()=>ModuleWithComponentFactories,NO_ERRORS_SCHEMA:()=>NO_ERRORS_SCHEMA,NgModule:()=>NgModule,NgModuleFactory:()=>NgModuleFactory$1,NgModuleRef:()=>NgModuleRef$1,NgProbeToken:()=>NgProbeToken,NgZone:()=>NgZone,Optional:()=>Optional,Output:()=>Output,OutputEmitterRef:()=>OutputEmitterRef,PACKAGE_ROOT_URL:()=>PACKAGE_ROOT_URL,PLATFORM_ID:()=>PLATFORM_ID,PLATFORM_INITIALIZER:()=>PLATFORM_INITIALIZER,Pipe:()=>Pipe,PlatformRef:()=>PlatformRef,Query:()=>Query,QueryList:()=>QueryList,Renderer2:()=>Renderer2,RendererFactory2:()=>RendererFactory2,RendererStyleFlags2:()=>RendererStyleFlags2,Sanitizer:()=>Sanitizer,SecurityContext:()=>SecurityContext,Self:()=>Self,SimpleChange:()=>SimpleChange,SkipSelf:()=>SkipSelf,TRANSLATIONS:()=>TRANSLATIONS,TRANSLATIONS_FORMAT:()=>TRANSLATIONS_FORMAT,TemplateRef:()=>TemplateRef,Testability:()=>Testability,TestabilityRegistry:()=>TestabilityRegistry,TransferState:()=>TransferState,Type:()=>Type,VERSION:()=>VERSION,Version:()=>Version,ViewChild:()=>ViewChild,ViewChildren:()=>ViewChildren,ViewContainerRef:()=>ViewContainerRef,ViewEncapsulation:()=>ViewEncapsulation$1,ViewRef:()=>ViewRef,afterNextRender:()=>afterNextRender,afterRender:()=>afterRender,asNativeElements:()=>asNativeElements,assertInInjectionContext:()=>assertInInjectionContext,assertNotInReactiveContext:()=>assertNotInReactiveContext,assertPlatform:()=>assertPlatform,booleanAttribute:()=>booleanAttribute,computed:()=>computed,contentChild:()=>contentChild,contentChildren:()=>contentChildren,createComponent:()=>createComponent,createEnvironmentInjector:()=>createEnvironmentInjector,createNgModule:()=>createNgModule,createNgModuleRef:()=>createNgModuleRef,createPlatform:()=>createPlatform,createPlatformFactory:()=>createPlatformFactory,defineInjectable:()=>defineInjectable,destroyPlatform:()=>destroyPlatform,effect:()=>effect,enableProdMode:()=>enableProdMode,forwardRef:()=>forwardRef,getDebugNode:()=>getDebugNode,getModuleFactory:()=>getModuleFactory,getNgModuleById:()=>getNgModuleById,getPlatform:()=>getPlatform,importProvidersFrom:()=>importProvidersFrom,inject:()=>inject,input:()=>input,isDevMode:()=>isDevMode,isSignal:()=>isSignal,isStandalone:()=>isStandalone,makeEnvironmentProviders:()=>makeEnvironmentProviders,makeStateKey:()=>makeStateKey,mergeApplicationConfig:()=>mergeApplicationConfig,model:()=>model,numberAttribute:()=>numberAttribute,output:()=>output,platformCore:()=>platformCore,provideExperimentalCheckNoChangesForDebug:()=>provideExperimentalCheckNoChangesForDebug,provideExperimentalZonelessChangeDetection:()=>provideExperimentalZonelessChangeDetection,provideZoneChangeDetection:()=>provideZoneChangeDetection,reflectComponentType:()=>reflectComponentType,resolveForwardRef:()=>resolveForwardRef,runInInjectionContext:()=>runInInjectionContext,setTestabilityGetter:()=>setTestabilityGetter,signal:()=>signal,untracked:()=>untracked,viewChild:()=>viewChild,viewChildren:()=>viewChildren,ɵALLOW_MULTIPLE_PLATFORMS:()=>ALLOW_MULTIPLE_PLATFORMS,ɵAfterRenderManager:()=>AfterRenderManager,ɵCONTAINER_HEADER_OFFSET:()=>CONTAINER_HEADER_OFFSET,ɵChangeDetectionScheduler:()=>ChangeDetectionScheduler,ɵChangeDetectionSchedulerImpl:()=>ChangeDetectionSchedulerImpl,ɵComponentFactory:()=>ComponentFactory$1,ɵConsole:()=>Console,ɵDEFAULT_LOCALE_ID:()=>DEFAULT_LOCALE_ID,ɵDEFER_BLOCK_CONFIG:()=>DEFER_BLOCK_CONFIG,ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR:()=>DEFER_BLOCK_DEPENDENCY_INTERCEPTOR,ɵDeferBlockBehavior:()=>DeferBlockBehavior,ɵDeferBlockState:()=>DeferBlockState,ɵEffectScheduler:()=>EffectScheduler,ɵGLOBAL_EVENT_DELEGATION:()=>GLOBAL_EVENT_DELEGATION,ɵIMAGE_CONFIG:()=>IMAGE_CONFIG,ɵIMAGE_CONFIG_DEFAULTS:()=>IMAGE_CONFIG_DEFAULTS,ɵINJECTOR_SCOPE:()=>INJECTOR_SCOPE,ɵINPUT_SIGNAL_BRAND_WRITE_TYPE:()=>ɵINPUT_SIGNAL_BRAND_WRITE_TYPE,ɵINTERNAL_APPLICATION_ERROR_HANDLER:()=>INTERNAL_APPLICATION_ERROR_HANDLER,ɵIS_HYDRATION_DOM_REUSE_ENABLED:()=>IS_HYDRATION_DOM_REUSE_ENABLED,ɵJSACTION_EVENT_CONTRACT:()=>JSACTION_EVENT_CONTRACT,ɵLContext:()=>LContext,ɵLifecycleHooksFeature:()=>LifecycleHooksFeature,ɵLocaleDataIndex:()=>LocaleDataIndex,ɵNG_COMP_DEF:()=>NG_COMP_DEF,ɵNG_DIR_DEF:()=>NG_DIR_DEF,ɵNG_ELEMENT_ID:()=>NG_ELEMENT_ID,ɵNG_INJ_DEF:()=>NG_INJ_DEF,ɵNG_MOD_DEF:()=>NG_MOD_DEF,ɵNG_PIPE_DEF:()=>NG_PIPE_DEF,ɵNG_PROV_DEF:()=>NG_PROV_DEF,ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR:()=>NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR,ɵNO_CHANGE:()=>NO_CHANGE,ɵNgModuleFactory:()=>NgModuleFactory,ɵNoopNgZone:()=>NoopNgZone,ɵPROVIDED_NG_ZONE:()=>PROVIDED_NG_ZONE,ɵPendingTasks:()=>PendingTasks,ɵReflectionCapabilities:()=>ReflectionCapabilities,ɵRender3ComponentFactory:()=>ComponentFactory,ɵRender3ComponentRef:()=>ComponentRef,ɵRender3NgModuleRef:()=>NgModuleRef,ɵRuntimeError:()=>RuntimeError,ɵSSR_CONTENT_INTEGRITY_MARKER:()=>SSR_CONTENT_INTEGRITY_MARKER,ɵTESTABILITY:()=>TESTABILITY,ɵTESTABILITY_GETTER:()=>TESTABILITY_GETTER,ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT:()=>USE_RUNTIME_DEPS_TRACKER_FOR_JIT,ɵViewRef:()=>ViewRef$1,ɵXSS_SECURITY_URL:()=>XSS_SECURITY_URL,ɵZONELESS_ENABLED:()=>ZONELESS_ENABLED,ɵ_sanitizeHtml:()=>_sanitizeHtml,ɵ_sanitizeUrl:()=>_sanitizeUrl,ɵallowSanitizationBypassAndThrow:()=>allowSanitizationBypassAndThrow,ɵannotateForHydration:()=>annotateForHydration,ɵbypassSanitizationTrustHtml:()=>bypassSanitizationTrustHtml,ɵbypassSanitizationTrustResourceUrl:()=>bypassSanitizationTrustResourceUrl,ɵbypassSanitizationTrustScript:()=>bypassSanitizationTrustScript,ɵbypassSanitizationTrustStyle:()=>bypassSanitizationTrustStyle,ɵbypassSanitizationTrustUrl:()=>bypassSanitizationTrustUrl,ɵclearResolutionOfComponentResourcesQueue:()=>clearResolutionOfComponentResourcesQueue,ɵcompileComponent:()=>compileComponent,ɵcompileDirective:()=>compileDirective,ɵcompileNgModule:()=>compileNgModule,ɵcompileNgModuleDefs:()=>compileNgModuleDefs,ɵcompileNgModuleFactory:()=>compileNgModuleFactory,ɵcompilePipe:()=>compilePipe,ɵconvertToBitFlags:()=>convertToBitFlags,ɵcreateInjector:()=>createInjector,ɵdefaultIterableDiffers:()=>defaultIterableDiffers,ɵdefaultKeyValueDiffers:()=>defaultKeyValueDiffers,ɵdepsTracker:()=>depsTracker,ɵdetectChangesInViewIfRequired:()=>detectChangesInViewIfRequired,ɵdevModeEqual:()=>devModeEqual,ɵfindLocaleData:()=>findLocaleData,ɵflushModuleScopingQueueAsMuchAsPossible:()=>flushModuleScopingQueueAsMuchAsPossible,ɵformatRuntimeError:()=>formatRuntimeError,ɵgenerateStandaloneInDeclarationsError:()=>generateStandaloneInDeclarationsError,ɵgetAsyncClassMetadataFn:()=>getAsyncClassMetadataFn,ɵgetDebugNode:()=>getDebugNode,ɵgetDeferBlocks:()=>getDeferBlocks,ɵgetDirectives:()=>getDirectives,ɵgetHostElement:()=>getHostElement,ɵgetInjectableDef:()=>getInjectableDef,ɵgetLContext:()=>getLContext,ɵgetLocaleCurrencyCode:()=>getLocaleCurrencyCode,ɵgetLocalePluralCase:()=>getLocalePluralCase,ɵgetOutputDestroyRef:()=>getOutputDestroyRef,ɵgetSanitizationBypassType:()=>getSanitizationBypassType,ɵgetUnknownElementStrictMode:()=>ɵgetUnknownElementStrictMode,ɵgetUnknownPropertyStrictMode:()=>ɵgetUnknownPropertyStrictMode,ɵglobal:()=>_global,ɵinjectChangeDetectorRef:()=>injectChangeDetectorRef,ɵinternalCreateApplication:()=>internalCreateApplication,ɵinternalProvideZoneChangeDetection:()=>internalProvideZoneChangeDetection,ɵisBoundToModule:()=>isBoundToModule,ɵisComponentDefPendingResolution:()=>isComponentDefPendingResolution,ɵisEnvironmentProviders:()=>isEnvironmentProviders,ɵisInjectable:()=>isInjectable,ɵisNgModule:()=>isNgModule,ɵisPromise:()=>isPromise,ɵisSubscribable:()=>isSubscribable,ɵnoSideEffects:()=>noSideEffects,ɵpatchComponentDefWithScope:()=>patchComponentDefWithScope,ɵperformanceMarkFeature:()=>performanceMarkFeature,ɵprovideGlobalEventDelegation:()=>provideGlobalEventDelegation,ɵreadHydrationInfo:()=>readHydrationInfo,ɵregisterLocaleData:()=>registerLocaleData,ɵrenderDeferBlockState:()=>renderDeferBlockState,ɵresetCompiledComponents:()=>resetCompiledComponents,ɵresetJitOptions:()=>resetJitOptions,ɵresolveComponentResources:()=>resolveComponentResources,ɵrestoreComponentResolutionQueue:()=>restoreComponentResolutionQueue,ɵsetAllowDuplicateNgModuleIdsForTest:()=>setAllowDuplicateNgModuleIdsForTest,ɵsetAlternateWeakRefImpl:()=>core_setAlternateWeakRefImpl,ɵsetClassDebugInfo:()=>ɵsetClassDebugInfo,ɵsetClassMetadata:()=>setClassMetadata,ɵsetClassMetadataAsync:()=>setClassMetadataAsync,ɵsetCurrentInjector:()=>setCurrentInjector,ɵsetDocument:()=>setDocument,ɵsetInjectorProfilerContext:()=>setInjectorProfilerContext,ɵsetLocaleId:()=>setLocaleId,ɵsetUnknownElementStrictMode:()=>ɵsetUnknownElementStrictMode,ɵsetUnknownPropertyStrictMode:()=>ɵsetUnknownPropertyStrictMode,ɵstore:()=>store,ɵstringify:()=>stringify,ɵtransitiveScopesFor:()=>transitiveScopesFor,ɵtriggerResourceLoading:()=>triggerResourceLoading,ɵtruncateMiddle:()=>truncateMiddle,ɵunregisterLocaleData:()=>unregisterAllLocaleData,ɵunwrapSafeValue:()=>unwrapSafeValue,ɵunwrapWritableSignal:()=>ɵunwrapWritableSignal,ɵwhenStable:()=>whenStable,ɵwithDomHydration:()=>withDomHydration,ɵwithEventReplay:()=>withEventReplay,ɵwithI18nSupport:()=>withI18nSupport,ɵɵCopyDefinitionFeature:()=>ɵɵCopyDefinitionFeature,ɵɵFactoryTarget:()=>FactoryTarget,ɵɵHostDirectivesFeature:()=>ɵɵHostDirectivesFeature,ɵɵInheritDefinitionFeature:()=>ɵɵInheritDefinitionFeature,ɵɵInputTransformsFeature:()=>ɵɵInputTransformsFeature,ɵɵNgOnChangesFeature:()=>ɵɵNgOnChangesFeature,ɵɵProvidersFeature:()=>ɵɵProvidersFeature,ɵɵStandaloneFeature:()=>ɵɵStandaloneFeature,ɵɵadvance:()=>ɵɵadvance,ɵɵattribute:()=>ɵɵattribute,ɵɵattributeInterpolate1:()=>ɵɵattributeInterpolate1,ɵɵattributeInterpolate2:()=>ɵɵattributeInterpolate2,ɵɵattributeInterpolate3:()=>ɵɵattributeInterpolate3,ɵɵattributeInterpolate4:()=>ɵɵattributeInterpolate4,ɵɵattributeInterpolate5:()=>ɵɵattributeInterpolate5,ɵɵattributeInterpolate6:()=>ɵɵattributeInterpolate6,ɵɵattributeInterpolate7:()=>ɵɵattributeInterpolate7,ɵɵattributeInterpolate8:()=>ɵɵattributeInterpolate8,ɵɵattributeInterpolateV:()=>ɵɵattributeInterpolateV,ɵɵclassMap:()=>ɵɵclassMap,ɵɵclassMapInterpolate1:()=>ɵɵclassMapInterpolate1,ɵɵclassMapInterpolate2:()=>ɵɵclassMapInterpolate2,ɵɵclassMapInterpolate3:()=>ɵɵclassMapInterpolate3,ɵɵclassMapInterpolate4:()=>ɵɵclassMapInterpolate4,ɵɵclassMapInterpolate5:()=>ɵɵclassMapInterpolate5,ɵɵclassMapInterpolate6:()=>ɵɵclassMapInterpolate6,ɵɵclassMapInterpolate7:()=>ɵɵclassMapInterpolate7,ɵɵclassMapInterpolate8:()=>ɵɵclassMapInterpolate8,ɵɵclassMapInterpolateV:()=>ɵɵclassMapInterpolateV,ɵɵclassProp:()=>ɵɵclassProp,ɵɵcomponentInstance:()=>ɵɵcomponentInstance,ɵɵconditional:()=>ɵɵconditional,ɵɵcontentQuery:()=>ɵɵcontentQuery,ɵɵcontentQuerySignal:()=>ɵɵcontentQuerySignal,ɵɵdeclareLet:()=>ɵɵdeclareLet,ɵɵdefer:()=>ɵɵdefer,ɵɵdeferEnableTimerScheduling:()=>ɵɵdeferEnableTimerScheduling,ɵɵdeferOnHover:()=>ɵɵdeferOnHover,ɵɵdeferOnIdle:()=>ɵɵdeferOnIdle,ɵɵdeferOnImmediate:()=>ɵɵdeferOnImmediate,ɵɵdeferOnInteraction:()=>ɵɵdeferOnInteraction,ɵɵdeferOnTimer:()=>ɵɵdeferOnTimer,ɵɵdeferOnViewport:()=>ɵɵdeferOnViewport,ɵɵdeferPrefetchOnHover:()=>ɵɵdeferPrefetchOnHover,ɵɵdeferPrefetchOnIdle:()=>ɵɵdeferPrefetchOnIdle,ɵɵdeferPrefetchOnImmediate:()=>ɵɵdeferPrefetchOnImmediate,ɵɵdeferPrefetchOnInteraction:()=>ɵɵdeferPrefetchOnInteraction,ɵɵdeferPrefetchOnTimer:()=>ɵɵdeferPrefetchOnTimer,ɵɵdeferPrefetchOnViewport:()=>ɵɵdeferPrefetchOnViewport,ɵɵdeferPrefetchWhen:()=>ɵɵdeferPrefetchWhen,ɵɵdeferWhen:()=>ɵɵdeferWhen,ɵɵdefineComponent:()=>ɵɵdefineComponent,ɵɵdefineDirective:()=>ɵɵdefineDirective,ɵɵdefineInjectable:()=>ɵɵdefineInjectable,ɵɵdefineInjector:()=>ɵɵdefineInjector,ɵɵdefineNgModule:()=>ɵɵdefineNgModule,ɵɵdefinePipe:()=>ɵɵdefinePipe,ɵɵdirectiveInject:()=>ɵɵdirectiveInject,ɵɵdisableBindings:()=>ɵɵdisableBindings,ɵɵelement:()=>ɵɵelement,ɵɵelementContainer:()=>ɵɵelementContainer,ɵɵelementContainerEnd:()=>ɵɵelementContainerEnd,ɵɵelementContainerStart:()=>ɵɵelementContainerStart,ɵɵelementEnd:()=>ɵɵelementEnd,ɵɵelementStart:()=>ɵɵelementStart,ɵɵenableBindings:()=>ɵɵenableBindings,ɵɵgetComponentDepsFactory:()=>ɵɵgetComponentDepsFactory,ɵɵgetCurrentView:()=>ɵɵgetCurrentView,ɵɵgetInheritedFactory:()=>ɵɵgetInheritedFactory,ɵɵhostProperty:()=>ɵɵhostProperty,ɵɵi18n:()=>ɵɵi18n,ɵɵi18nApply:()=>ɵɵi18nApply,ɵɵi18nAttributes:()=>ɵɵi18nAttributes,ɵɵi18nEnd:()=>ɵɵi18nEnd,ɵɵi18nExp:()=>ɵɵi18nExp,ɵɵi18nPostprocess:()=>ɵɵi18nPostprocess,ɵɵi18nStart:()=>ɵɵi18nStart,ɵɵinject:()=>ɵɵinject,ɵɵinjectAttribute:()=>ɵɵinjectAttribute,ɵɵinvalidFactory:()=>ɵɵinvalidFactory,ɵɵinvalidFactoryDep:()=>ɵɵinvalidFactoryDep,ɵɵlistener:()=>ɵɵlistener,ɵɵloadQuery:()=>ɵɵloadQuery,ɵɵnamespaceHTML:()=>ɵɵnamespaceHTML,ɵɵnamespaceMathML:()=>ɵɵnamespaceMathML,ɵɵnamespaceSVG:()=>ɵɵnamespaceSVG,ɵɵnextContext:()=>ɵɵnextContext,ɵɵngDeclareClassMetadata:()=>ɵɵngDeclareClassMetadata,ɵɵngDeclareClassMetadataAsync:()=>ɵɵngDeclareClassMetadataAsync,ɵɵngDeclareComponent:()=>ɵɵngDeclareComponent,ɵɵngDeclareDirective:()=>ɵɵngDeclareDirective,ɵɵngDeclareFactory:()=>ɵɵngDeclareFactory,ɵɵngDeclareInjectable:()=>ɵɵngDeclareInjectable,ɵɵngDeclareInjector:()=>ɵɵngDeclareInjector,ɵɵngDeclareNgModule:()=>ɵɵngDeclareNgModule,ɵɵngDeclarePipe:()=>ɵɵngDeclarePipe,ɵɵpipe:()=>ɵɵpipe,ɵɵpipeBind1:()=>ɵɵpipeBind1,ɵɵpipeBind2:()=>ɵɵpipeBind2,ɵɵpipeBind3:()=>ɵɵpipeBind3,ɵɵpipeBind4:()=>ɵɵpipeBind4,ɵɵpipeBindV:()=>ɵɵpipeBindV,ɵɵprojection:()=>ɵɵprojection,ɵɵprojectionDef:()=>ɵɵprojectionDef,ɵɵproperty:()=>ɵɵproperty,ɵɵpropertyInterpolate:()=>ɵɵpropertyInterpolate,ɵɵpropertyInterpolate1:()=>ɵɵpropertyInterpolate1,ɵɵpropertyInterpolate2:()=>ɵɵpropertyInterpolate2,ɵɵpropertyInterpolate3:()=>ɵɵpropertyInterpolate3,ɵɵpropertyInterpolate4:()=>ɵɵpropertyInterpolate4,ɵɵpropertyInterpolate5:()=>ɵɵpropertyInterpolate5,ɵɵpropertyInterpolate6:()=>ɵɵpropertyInterpolate6,ɵɵpropertyInterpolate7:()=>ɵɵpropertyInterpolate7,ɵɵpropertyInterpolate8:()=>ɵɵpropertyInterpolate8,ɵɵpropertyInterpolateV:()=>ɵɵpropertyInterpolateV,ɵɵpureFunction0:()=>ɵɵpureFunction0,ɵɵpureFunction1:()=>ɵɵpureFunction1,ɵɵpureFunction2:()=>ɵɵpureFunction2,ɵɵpureFunction3:()=>ɵɵpureFunction3,ɵɵpureFunction4:()=>ɵɵpureFunction4,ɵɵpureFunction5:()=>ɵɵpureFunction5,ɵɵpureFunction6:()=>ɵɵpureFunction6,ɵɵpureFunction7:()=>ɵɵpureFunction7,ɵɵpureFunction8:()=>ɵɵpureFunction8,ɵɵpureFunctionV:()=>ɵɵpureFunctionV,ɵɵqueryAdvance:()=>ɵɵqueryAdvance,ɵɵqueryRefresh:()=>ɵɵqueryRefresh,ɵɵreadContextLet:()=>ɵɵreadContextLet,ɵɵreference:()=>ɵɵreference,ɵɵregisterNgModuleType:()=>registerNgModuleType,ɵɵrepeater:()=>ɵɵrepeater,ɵɵrepeaterCreate:()=>ɵɵrepeaterCreate,ɵɵrepeaterTrackByIdentity:()=>ɵɵrepeaterTrackByIdentity,ɵɵrepeaterTrackByIndex:()=>ɵɵrepeaterTrackByIndex,ɵɵresetView:()=>ɵɵresetView,ɵɵresolveBody:()=>ɵɵresolveBody,ɵɵresolveDocument:()=>ɵɵresolveDocument,ɵɵresolveWindow:()=>ɵɵresolveWindow,ɵɵrestoreView:()=>ɵɵrestoreView,ɵɵsanitizeHtml:()=>ɵɵsanitizeHtml,ɵɵsanitizeResourceUrl:()=>ɵɵsanitizeResourceUrl,ɵɵsanitizeScript:()=>ɵɵsanitizeScript,ɵɵsanitizeStyle:()=>ɵɵsanitizeStyle,ɵɵsanitizeUrl:()=>ɵɵsanitizeUrl,ɵɵsanitizeUrlOrResourceUrl:()=>ɵɵsanitizeUrlOrResourceUrl,ɵɵsetComponentScope:()=>ɵɵsetComponentScope,ɵɵsetNgModuleScope:()=>ɵɵsetNgModuleScope,ɵɵstoreLet:()=>ɵɵstoreLet,ɵɵstyleMap:()=>ɵɵstyleMap,ɵɵstyleMapInterpolate1:()=>ɵɵstyleMapInterpolate1,ɵɵstyleMapInterpolate2:()=>ɵɵstyleMapInterpolate2,ɵɵstyleMapInterpolate3:()=>ɵɵstyleMapInterpolate3,ɵɵstyleMapInterpolate4:()=>ɵɵstyleMapInterpolate4,ɵɵstyleMapInterpolate5:()=>ɵɵstyleMapInterpolate5,ɵɵstyleMapInterpolate6:()=>ɵɵstyleMapInterpolate6,ɵɵstyleMapInterpolate7:()=>ɵɵstyleMapInterpolate7,ɵɵstyleMapInterpolate8:()=>ɵɵstyleMapInterpolate8,ɵɵstyleMapInterpolateV:()=>ɵɵstyleMapInterpolateV,ɵɵstyleProp:()=>ɵɵstyleProp,ɵɵstylePropInterpolate1:()=>ɵɵstylePropInterpolate1,ɵɵstylePropInterpolate2:()=>ɵɵstylePropInterpolate2,ɵɵstylePropInterpolate3:()=>ɵɵstylePropInterpolate3,ɵɵstylePropInterpolate4:()=>ɵɵstylePropInterpolate4,ɵɵstylePropInterpolate5:()=>ɵɵstylePropInterpolate5,ɵɵstylePropInterpolate6:()=>ɵɵstylePropInterpolate6,ɵɵstylePropInterpolate7:()=>ɵɵstylePropInterpolate7,ɵɵstylePropInterpolate8:()=>ɵɵstylePropInterpolate8,ɵɵstylePropInterpolateV:()=>ɵɵstylePropInterpolateV,ɵɵsyntheticHostListener:()=>ɵɵsyntheticHostListener,ɵɵsyntheticHostProperty:()=>ɵɵsyntheticHostProperty,ɵɵtemplate:()=>ɵɵtemplate,ɵɵtemplateRefExtractor:()=>ɵɵtemplateRefExtractor,ɵɵtext:()=>ɵɵtext,ɵɵtextInterpolate:()=>ɵɵtextInterpolate,ɵɵtextInterpolate1:()=>ɵɵtextInterpolate1,ɵɵtextInterpolate2:()=>ɵɵtextInterpolate2,ɵɵtextInterpolate3:()=>ɵɵtextInterpolate3,ɵɵtextInterpolate4:()=>ɵɵtextInterpolate4,ɵɵtextInterpolate5:()=>ɵɵtextInterpolate5,ɵɵtextInterpolate6:()=>ɵɵtextInterpolate6,ɵɵtextInterpolate7:()=>ɵɵtextInterpolate7,ɵɵtextInterpolate8:()=>ɵɵtextInterpolate8,ɵɵtextInterpolateV:()=>ɵɵtextInterpolateV,ɵɵtrustConstantHtml:()=>ɵɵtrustConstantHtml,ɵɵtrustConstantResourceUrl:()=>ɵɵtrustConstantResourceUrl,ɵɵtwoWayBindingSet:()=>ɵɵtwoWayBindingSet,ɵɵtwoWayListener:()=>ɵɵtwoWayListener,ɵɵtwoWayProperty:()=>ɵɵtwoWayProperty,ɵɵvalidateIframeAttribute:()=>ɵɵvalidateIframeAttribute,ɵɵviewQuery:()=>ɵɵviewQuery,ɵɵviewQuerySignal:()=>ɵɵviewQuerySignal});let activeConsumer=null,inNotificationPhase=!1,epoch=1;const SIGNAL=Symbol("SIGNAL");function setActiveConsumer(consumer){const prev=activeConsumer;return activeConsumer=consumer,prev}function getActiveConsumer(){return activeConsumer}const REACTIVE_NODE={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function producerAccessed(node){if(inNotificationPhase)throw new Error("undefined"!=typeof ngDevMode&&ngDevMode?"Assertion error: signal read during notification phase":"");if(null===activeConsumer)return;activeConsumer.consumerOnSignalRead(node);const idx=activeConsumer.nextProducerIndex++;if(assertConsumerNode(activeConsumer),idxnode.nextProducerIndex;)node.producerNode.pop(),node.producerLastReadVersion.pop(),node.producerIndexOfThis.pop()}}function consumerPollProducersForChange(node){assertConsumerNode(node);for(let i=0;i=node.liveConsumerNode.length)throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);if(1===node.liveConsumerNode.length&&isConsumerNode(node))for(let i=0;i0}function assertConsumerNode(node){node.producerNode??=[],node.producerIndexOfThis??=[],node.producerLastReadVersion??=[]}function assertProducerNode(node){node.liveConsumerNode??=[],node.liveConsumerIndexOfThis??=[]}function isConsumerNode(node){return void 0!==node.producerNode}function createComputed(computation){const node=Object.create(COMPUTED_NODE);node.computation=computation;const computed=()=>{if(producerUpdateValueVersion(node),producerAccessed(node),node.value===ERRORED)throw node.error;return node.value};return computed[SIGNAL]=node,computed}const UNSET=Symbol("UNSET"),COMPUTING=Symbol("COMPUTING"),ERRORED=Symbol("ERRORED"),COMPUTED_NODE=(()=>({...REACTIVE_NODE,value:UNSET,dirty:!0,error:null,equal:defaultEquals,producerMustRecompute:node=>node.value===UNSET||node.value===COMPUTING,producerRecomputeValue(node){if(node.value===COMPUTING)throw new Error("Detected cycle in computations.");const oldValue=node.value;node.value=COMPUTING;const prevConsumer=consumerBeforeComputation(node);let newValue;try{newValue=node.computation()}catch(err){newValue=ERRORED,node.error=err}finally{consumerAfterComputation(node,prevConsumer)}oldValue!==UNSET&&oldValue!==ERRORED&&newValue!==ERRORED&&node.equal(oldValue,newValue)?node.value=oldValue:(node.value=newValue,node.version++)}}))();let throwInvalidWriteToSignalErrorFn=function defaultThrowError(){throw new Error};function throwInvalidWriteToSignalError(){throwInvalidWriteToSignalErrorFn()}let postSignalSetFn=null;function signalSetFn(node,newValue){producerUpdatesAllowed()||throwInvalidWriteToSignalError(),node.equal(node.value,newValue)||(node.value=newValue,function signalValueChanged(node){node.version++,function producerIncrementEpoch(){epoch++}(),producerNotifyConsumers(node),postSignalSetFn?.()}(node))}const SIGNAL_NODE=(()=>({...REACTIVE_NODE,equal:defaultEquals,value:void 0}))();function createWatch(fn,schedule,allowSignalWrites){const node=Object.create(WATCH_NODE);allowSignalWrites&&(node.consumerAllowSignalWrites=!0),node.fn=fn,node.schedule=schedule;const registerOnCleanup=cleanupFn=>{node.cleanupFn=cleanupFn};return node.ref={notify:()=>consumerMarkDirty(node),run:()=>{if(null===node.fn)return;if(function isInNotificationPhase(){return inNotificationPhase}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(node.dirty=!1,node.hasRun&&!consumerPollProducersForChange(node))return;node.hasRun=!0;const prevConsumer=consumerBeforeComputation(node);try{node.cleanupFn(),node.cleanupFn=NOOP_CLEANUP_FN,node.fn(registerOnCleanup)}finally{consumerAfterComputation(node,prevConsumer)}},cleanup:()=>node.cleanupFn(),destroy:()=>function destroyWatchNode(node){(function isWatchNodeDestroyed(node){return null===node.fn&&null===node.schedule})(node)||(consumerDestroy(node),node.cleanupFn(),node.fn=null,node.schedule=null,node.cleanupFn=NOOP_CLEANUP_FN)}(node),[SIGNAL]:node},node.ref}const NOOP_CLEANUP_FN=()=>{},WATCH_NODE=(()=>({...REACTIVE_NODE,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:node=>{null!==node.schedule&&node.schedule(node.ref)},hasRun:!1,cleanupFn:NOOP_CLEANUP_FN}))();var BehaviorSubject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),Subscription=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subscription.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),first=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/first.js");const Attribute={JSACTION:"jsaction"},Property={JSACTION:"__jsaction",OWNER:"__owner"},parseCache={};function get(element){return element[Property.JSACTION]}function getDefaulted(element){const cache=get(element)??{};return set(element,cache),cache}function set(element,actionMap){element[Property.JSACTION]=actionMap}const EventType_CLICK="click",EventType_CLICKMOD="clickmod",EventType_KEYDOWN="keydown",EventType_MOUSEOVER="mouseover",EventType_MOUSEOUT="mouseout",EventType_MOUSEENTER="mouseenter",EventType_MOUSELEAVE="mouseleave",EventType_POINTEROVER="pointerover",EventType_POINTEROUT="pointerout",EventType_POINTERENTER="pointerenter",EventType_POINTERLEAVE="pointerleave",MOUSE_SPECIAL_EVENT_TYPES=[EventType_MOUSEENTER,EventType_MOUSELEAVE,"pointerenter","pointerleave"],CAPTURE_EVENT_TYPES=["focus","blur","error","load","toggle"],isCaptureEventType=eventType=>CAPTURE_EVENT_TYPES.indexOf(eventType)>=0,EARLY_EVENT_TYPES=[EventType_CLICK,"dblclick","focusin","focusout",EventType_KEYDOWN,"keyup","keypress",EventType_MOUSEOVER,EventType_MOUSEOUT,"submit","touchstart","touchend","touchmove","touchcancel","auxclick","change","compositionstart","compositionupdate","compositionend","beforeinput","input","select","copy","cut","paste","mousedown","mouseup","wheel","contextmenu","dragover","dragenter","dragleave","drop","dragstart","dragend","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","gotpointercapture","lostpointercapture","ended","loadedmetadata","pagehide","pageshow","visibilitychange","beforematch"].concat(CAPTURE_EVENT_TYPES),isEarlyEventType=eventType=>EARLY_EVENT_TYPES.indexOf(eventType)>=0;let isMac="undefined"!=typeof navigator&&/Macintosh/.test(navigator.userAgent);"undefined"!=typeof navigator&&!/Opera/.test(navigator.userAgent)&&/WebKit/.test(navigator.userAgent),"undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident/.test(navigator.userAgent)),"undefined"!=typeof navigator&&!/Opera|WebKit/.test(navigator.userAgent)&&/Gecko/.test(navigator.product);const isIos="undefined"!=typeof navigator&&/iPhone|iPad|iPod/.test(navigator.userAgent);class EventContractContainer{constructor(element){this.element=element,this.handlerInfos=[]}addEventListener(eventType,getHandler){isIos&&(this.element.style.cursor="pointer"),this.handlerInfos.push(function addEventListener(element,eventType,handler){let capture=!1;return isCaptureEventType(eventType)&&(capture=!0),element.addEventListener(eventType,handler,capture),{eventType,handler,capture}}(this.element,eventType,getHandler(this.element)))}cleanUp(){for(let i=0;i{this.eventReplayScheduled=!1,this.eventReplayer(this.replayEventInfoWrappers)})))}}const PROPAGATION_STOPPED_SYMBOL=Symbol.for("propagationStopped"),EventPhase_REPLAY=101,PREVENT_DEFAULT_ERROR_MESSAGE_DETAILS=" Because event replay occurs after browser dispatch, `preventDefault` would have no effect. You can check whether an event is being replayed by accessing the event phase: `event.eventPhase === EventPhase.REPLAY`.",COMPOSED_PATH_ERROR_MESSAGE_DETAILS=" Because event replay occurs after browser dispatch, `composedPath()` will be empty. Iterate parent nodes from `event.target` or `event.currentTarget` if you need to check elements in the event path.";class EventDispatcher{constructor(dispatchDelegate,clickModSupport=!0){this.dispatchDelegate=dispatchDelegate,this.clickModSupport=clickModSupport,this.actionResolver=new ActionResolver({clickModSupport}),this.dispatcher=new Dispatcher((eventInfoWrapper=>{this.dispatchToDelegate(eventInfoWrapper)}),{actionResolver:this.actionResolver})}dispatch(eventInfo){this.dispatcher.dispatch(eventInfo)}dispatchToDelegate(eventInfoWrapper){for(eventInfoWrapper.getIsReplay()&&function prepareEventForReplay(eventInfoWrapper){const event=eventInfoWrapper.getEvent(),target=eventInfoWrapper.getTargetElement(),originalPreventDefault=event.preventDefault.bind(event);patchEventInstance(event,"target",target),patchEventInstance(event,"eventPhase",EventPhase_REPLAY),patchEventInstance(event,"preventDefault",(()=>{throw originalPreventDefault(),new Error("`preventDefault` called during event replay."+(ngDevMode?PREVENT_DEFAULT_ERROR_MESSAGE_DETAILS:""))})),patchEventInstance(event,"composedPath",(()=>{throw new Error("`composedPath` called during event replay."+(ngDevMode?COMPOSED_PATH_ERROR_MESSAGE_DETAILS:""))}))}(eventInfoWrapper),function prepareEventForBubbling(eventInfoWrapper){const event=eventInfoWrapper.getEvent(),originalStopPropagation=eventInfoWrapper.getEvent().stopPropagation.bind(event),stopPropagation=()=>{event[PROPAGATION_STOPPED_SYMBOL]=!0,originalStopPropagation()};patchEventInstance(event,"stopPropagation",stopPropagation),patchEventInstance(event,"stopImmediatePropagation",stopPropagation)}(eventInfoWrapper);eventInfoWrapper.getAction();){if(prepareEventForDispatch(eventInfoWrapper),isCaptureEventType(eventInfoWrapper.getEventType())&&eventInfoWrapper.getAction().element!==eventInfoWrapper.getTargetElement())return;if(this.dispatchDelegate(eventInfoWrapper.getEvent(),eventInfoWrapper.getAction().name),propagationStopped(eventInfoWrapper))return;this.actionResolver.resolveParentAction(eventInfoWrapper.eventInfo)}}}function propagationStopped(eventInfoWrapper){return!!eventInfoWrapper.getEvent()[PROPAGATION_STOPPED_SYMBOL]}function prepareEventForDispatch(eventInfoWrapper){const event=eventInfoWrapper.getEvent(),currentTarget=eventInfoWrapper.getAction()?.element;currentTarget&&patchEventInstance(event,"currentTarget",currentTarget,{configurable:!0})}function patchEventInstance(event,property,value,{configurable=!1}={}){Object.defineProperty(event,property,{value,configurable})}function registerDispatcher$1(eventContract,dispatcher){eventContract.ecrd((eventInfo=>{dispatcher.dispatch(eventInfo)}),Restriction.I_AM_THE_JSACTION_FRAMEWORK)}function removeAllEventListeners(earlyJsactionData){earlyJsactionData&&(removeEventListeners(earlyJsactionData.c,earlyJsactionData.et,earlyJsactionData.h),removeEventListeners(earlyJsactionData.c,earlyJsactionData.etc,earlyJsactionData.h,!0))}function removeEventListeners(container,eventTypes,earlyEventHandler,capture){for(let i=0;i=0)return;const eventHandler=(eventType,event,container)=>{this.handleEvent(eventType,event,container)};this.eventHandlers[eventType]=eventHandler;const browserEventType=function getBrowserEventType(eventType){return eventType===EventType_MOUSEENTER?EventType_MOUSEOVER:eventType===EventType_MOUSELEAVE?EventType_MOUSEOUT:eventType===EventType_POINTERENTER?EventType_POINTEROVER:eventType===EventType_POINTERLEAVE?EventType_POINTEROUT:eventType}(prefixedEventType||eventType);if(browserEventType!==eventType){const eventTypes=this.browserEventTypeToExtraEventTypes[browserEventType]||[];eventTypes.push(eventType),this.browserEventTypeToExtraEventTypes[browserEventType]=eventTypes}this.containerManager.addEventListener(browserEventType,(element=>event=>{eventHandler(eventType,event,element)}))}replayEarlyEvents(earlyJsactionData=window._ejsa){earlyJsactionData&&(this.replayEarlyEventInfos(earlyJsactionData.q),removeAllEventListeners(earlyJsactionData),delete window._ejsa)}replayEarlyEventInfos(earlyEventInfos){for(let i=0;i({...SIGNAL_NODE,transformFn:void 0,applyValueToInputSignal(node,value){signalSetFn(node,value)}}))(),ɵINPUT_SIGNAL_BRAND_WRITE_TYPE=Symbol();function createInputSignal(initialValue,options){const node=Object.create(INPUT_SIGNAL_NODE);function inputValueFn(){if(producerAccessed(node),node.value===REQUIRED_UNSET_VALUE)throw new RuntimeError(-950,ngDevMode&&"Input is required but no value is available yet.");return node.value}return node.value=initialValue,node.transformFn=options?.transform,inputValueFn[SIGNAL]=node,ngDevMode&&(inputValueFn.toString=()=>`[Input Signal: ${inputValueFn()}]`),inputValueFn}function noSideEffects(fn){return{toString:fn}.toString()}const ANNOTATIONS="__annotations__",PARAMETERS="__parameters__",PROP_METADATA="__prop__metadata__";function makeDecorator(name,props,parentClass,additionalProcessing,typeFn){return noSideEffects((()=>{const metaCtor=makeMetadataCtor(props);function DecoratorFactory(...args){if(this instanceof DecoratorFactory)return metaCtor.call(this,...args),this;const annotationInstance=new DecoratorFactory(...args);return function TypeDecorator(cls){typeFn&&typeFn(cls,...args);return(cls.hasOwnProperty(ANNOTATIONS)?cls[ANNOTATIONS]:Object.defineProperty(cls,ANNOTATIONS,{value:[]})[ANNOTATIONS]).push(annotationInstance),additionalProcessing&&additionalProcessing(cls),cls}}return parentClass&&(DecoratorFactory.prototype=Object.create(parentClass.prototype)),DecoratorFactory.prototype.ngMetadataName=name,DecoratorFactory.annotationCls=DecoratorFactory,DecoratorFactory}))}function makeMetadataCtor(props){return function ctor(...args){if(props){const values=props(...args);for(const propName in values)this[propName]=values[propName]}}}function makeParamDecorator(name,props,parentClass){return noSideEffects((()=>{const metaCtor=makeMetadataCtor(props);function ParamDecoratorFactory(...args){if(this instanceof ParamDecoratorFactory)return metaCtor.apply(this,args),this;const annotationInstance=new ParamDecoratorFactory(...args);return ParamDecorator.annotation=annotationInstance,ParamDecorator;function ParamDecorator(cls,unusedKey,index){const parameters=cls.hasOwnProperty(PARAMETERS)?cls[PARAMETERS]:Object.defineProperty(cls,PARAMETERS,{value:[]})[PARAMETERS];for(;parameters.length<=index;)parameters.push(null);return(parameters[index]=parameters[index]||[]).push(annotationInstance),cls}}return parentClass&&(ParamDecoratorFactory.prototype=Object.create(parentClass.prototype)),ParamDecoratorFactory.prototype.ngMetadataName=name,ParamDecoratorFactory.annotationCls=ParamDecoratorFactory,ParamDecoratorFactory}))}function makePropDecorator(name,props,parentClass,additionalProcessing){return noSideEffects((()=>{const metaCtor=makeMetadataCtor(props);function PropDecoratorFactory(...args){if(this instanceof PropDecoratorFactory)return metaCtor.apply(this,args),this;const decoratorInstance=new PropDecoratorFactory(...args);return function PropDecorator(target,name){if(void 0===target)throw new Error("Standard Angular field decorators are not supported in JIT mode.");const constructor=target.constructor,meta=constructor.hasOwnProperty(PROP_METADATA)?constructor[PROP_METADATA]:Object.defineProperty(constructor,PROP_METADATA,{value:{}})[PROP_METADATA];meta[name]=meta.hasOwnProperty(name)&&meta[name]||[],meta[name].unshift(decoratorInstance),additionalProcessing&&additionalProcessing(target,name,...args)}}return parentClass&&(PropDecoratorFactory.prototype=Object.create(parentClass.prototype)),PropDecoratorFactory.prototype.ngMetadataName=name,PropDecoratorFactory.annotationCls=PropDecoratorFactory,PropDecoratorFactory}))}const _global=globalThis;function initNgDevMode(){return!("undefined"!=typeof ngDevMode&&!ngDevMode)&&("object"==typeof ngDevMode&&0!==Object.keys(ngDevMode).length||function ngDevModeResetPerfCounters(){const locationString="undefined"!=typeof location?location.toString():"",newCounters={namedConstructors:-1!=locationString.indexOf("ngDevMode=namedConstructors"),firstCreatePass:0,tNode:0,tView:0,rendererCreateTextNode:0,rendererSetText:0,rendererCreateElement:0,rendererAddEventListener:0,rendererSetAttribute:0,rendererRemoveAttribute:0,rendererSetProperty:0,rendererSetClassName:0,rendererAddClass:0,rendererRemoveClass:0,rendererSetStyle:0,rendererRemoveStyle:0,rendererDestroy:0,rendererDestroyNode:0,rendererMoveNode:0,rendererRemoveNode:0,rendererAppendChild:0,rendererInsertBefore:0,rendererCreateComment:0,hydratedNodes:0,hydratedComponents:0,dehydratedViewsRemoved:0,dehydratedViewsCleanupRuns:0,componentsSkippedHydration:0};return-1===locationString.indexOf("ngDevMode=false")?("object"!=typeof _global.ngDevMode&&(_global.ngDevMode={}),Object.assign(_global.ngDevMode,newCounters)):_global.ngDevMode=!1,newCounters}(),"undefined"!=typeof ngDevMode&&!!ngDevMode)}function getClosureSafeProperty(objWithPropertyToExtract){for(let key in objWithPropertyToExtract)if(objWithPropertyToExtract[key]===getClosureSafeProperty)return key;throw Error("Could not find renamed property on target object.")}function fillProperties(target,source){for(const key in source)source.hasOwnProperty(key)&&!target.hasOwnProperty(key)&&(target[key]=source[key])}function stringify(token){if("string"==typeof token)return token;if(Array.isArray(token))return"["+token.map(stringify).join(", ")+"]";if(null==token)return""+token;if(token.overriddenName)return`${token.overriddenName}`;if(token.name)return`${token.name}`;const res=token.toString();if(null==res)return""+res;const newLineIndex=res.indexOf("\n");return-1===newLineIndex?res:res.substring(0,newLineIndex)}function concatStringsWithSpace(before,after){return null==before||""===before?null===after?"":after:null==after||""===after?before:before+" "+after}function truncateMiddle(str,maxLength=100){if(!str||maxLength<1||str.length<=maxLength)return str;if(1==maxLength)return str.substring(0,1)+"...";const halfLimit=Math.round(maxLength/2);return str.substring(0,halfLimit)+"..."+str.substring(str.length-halfLimit)}const __forward_ref__=getClosureSafeProperty({__forward_ref__:getClosureSafeProperty});function forwardRef(forwardRefFn){return forwardRefFn.__forward_ref__=forwardRef,forwardRefFn.toString=function(){return stringify(this())},forwardRefFn}function resolveForwardRef(type){return isForwardRef(type)?type():type}function isForwardRef(fn){return"function"==typeof fn&&fn.hasOwnProperty(__forward_ref__)&&fn.__forward_ref__===forwardRef}function assertNumber(actual,msg){"number"!=typeof actual&&throwError(msg,typeof actual,"number","===")}function assertNumberInRange(actual,minInclusive,maxInclusive){assertNumber(actual,"Expected a number"),assertLessThanOrEqual(actual,maxInclusive,"Expected number to be less than or equal to"),assertGreaterThanOrEqual(actual,minInclusive,"Expected number to be greater than or equal to")}function assertString(actual,msg){"string"!=typeof actual&&throwError(msg,null===actual?"null":typeof actual,"string","===")}function assertFunction(actual,msg){"function"!=typeof actual&&throwError(msg,null===actual?"null":typeof actual,"function","===")}function assertEqual(actual,expected,msg){actual!=expected&&throwError(msg,actual,expected,"==")}function assertNotEqual(actual,expected,msg){actual==expected&&throwError(msg,actual,expected,"!=")}function assertSame(actual,expected,msg){actual!==expected&&throwError(msg,actual,expected,"===")}function assertNotSame(actual,expected,msg){actual===expected&&throwError(msg,actual,expected,"!==")}function assertLessThan(actual,expected,msg){actualexpected||throwError(msg,actual,expected,">")}function assertGreaterThanOrEqual(actual,expected,msg){actual>=expected||throwError(msg,actual,expected,">=")}function assertDefined(actual,msg){null==actual&&throwError(msg,actual,null,"!=")}function throwError(msg,actual,expected,comparison){throw new Error(`ASSERTION ERROR: ${msg}`+(null==comparison?"":` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`))}function assertDomNode(node){node instanceof Node||throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`)}function assertIndexInRange(arr,index){assertDefined(arr,"Array must be defined.");const maxLen=arr.length;(index<0||index>=maxLen)&&throwError(`Index expected to be less than ${maxLen} but got ${index}`)}function assertOneOf(value,...validValues){if(-1!==validValues.indexOf(value))return!0;throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`)}function assertNotReactive(fn){null!==getActiveConsumer()&&throwError(`${fn}() should never be called in a reactive context.`)}function ɵɵdefineInjectable(opts){return{token:opts.token,providedIn:opts.providedIn||null,factory:opts.factory,value:void 0}}const defineInjectable=ɵɵdefineInjectable;function ɵɵdefineInjector(options){return{providers:options.providers||[],imports:options.imports||[]}}function getInjectableDef(type){return getOwnDefinition(type,NG_PROV_DEF)||getOwnDefinition(type,NG_INJECTABLE_DEF)}function isInjectable(type){return null!==getInjectableDef(type)}function getOwnDefinition(type,field){return type.hasOwnProperty(field)?type[field]:null}function getInjectorDef(type){return type&&(type.hasOwnProperty(NG_INJ_DEF)||type.hasOwnProperty(NG_INJECTOR_DEF))?type[NG_INJ_DEF]:null}const NG_PROV_DEF=getClosureSafeProperty({ɵprov:getClosureSafeProperty}),NG_INJ_DEF=getClosureSafeProperty({ɵinj:getClosureSafeProperty}),NG_INJECTABLE_DEF=getClosureSafeProperty({ngInjectableDef:getClosureSafeProperty}),NG_INJECTOR_DEF=getClosureSafeProperty({ngInjectorDef:getClosureSafeProperty});class InjectionToken{constructor(_desc,options){this._desc=_desc,this.ngMetadataName="InjectionToken",this.ɵprov=void 0,"number"==typeof options?(("undefined"==typeof ngDevMode||ngDevMode)&&assertLessThan(options,0,"Only negative numbers are supported here"),this.__NG_ELEMENT_ID__=options):void 0!==options&&(this.ɵprov=ɵɵdefineInjectable({token:this,providedIn:options.providedIn||"root",factory:options.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}let _injectorProfilerContext;function getInjectorProfilerContext(){return!ngDevMode&&throwError("getInjectorProfilerContext should never be called in production mode"),_injectorProfilerContext}function setInjectorProfilerContext(context){!ngDevMode&&throwError("setInjectorProfilerContext should never be called in production mode");const previous=_injectorProfilerContext;return _injectorProfilerContext=context,previous}let injectorProfilerCallback=null;const setInjectorProfiler=injectorProfiler=>{!ngDevMode&&throwError("setInjectorProfiler should never be called in production mode"),injectorProfilerCallback=injectorProfiler};function injectorProfiler(event){!ngDevMode&&throwError("Injector profiler should never be called in production mode"),null!=injectorProfilerCallback&&injectorProfilerCallback(event)}function emitProviderConfiguredEvent(eventProvider,isViewProvider=!1){let token;!ngDevMode&&throwError("Injector profiler should never be called in production mode"),token="function"==typeof eventProvider||eventProvider instanceof InjectionToken?eventProvider:resolveForwardRef(eventProvider.provide);let provider=eventProvider;eventProvider instanceof InjectionToken&&(provider=eventProvider.ɵprov||eventProvider),injectorProfiler({type:2,context:getInjectorProfilerContext(),providerRecord:{token,provider,isViewProvider}})}function emitInstanceCreatedByInjectorEvent(instance){!ngDevMode&&throwError("Injector profiler should never be called in production mode"),injectorProfiler({type:1,context:getInjectorProfilerContext(),instance:{value:instance}})}function emitInjectEvent(token,value,flags){!ngDevMode&&throwError("Injector profiler should never be called in production mode"),injectorProfiler({type:0,context:getInjectorProfilerContext(),service:{token,value,flags}})}function runInInjectorProfilerContext(injector,token,callback){!ngDevMode&&throwError("runInInjectorProfilerContext should never be called in production mode");const prevInjectContext=setInjectorProfilerContext({injector,token});try{callback()}finally{setInjectorProfilerContext(prevInjectContext)}}function isEnvironmentProviders(value){return value&&!!value.ɵproviders}const NG_COMP_DEF=getClosureSafeProperty({ɵcmp:getClosureSafeProperty}),NG_DIR_DEF=getClosureSafeProperty({ɵdir:getClosureSafeProperty}),NG_PIPE_DEF=getClosureSafeProperty({ɵpipe:getClosureSafeProperty}),NG_MOD_DEF=getClosureSafeProperty({ɵmod:getClosureSafeProperty}),NG_FACTORY_DEF=getClosureSafeProperty({ɵfac:getClosureSafeProperty}),NG_ELEMENT_ID=getClosureSafeProperty({__NG_ELEMENT_ID__:getClosureSafeProperty}),NG_ENV_ID=getClosureSafeProperty({__NG_ENV_ID__:getClosureSafeProperty});function renderStringify(value){return"string"==typeof value?value:null==value?"":String(value)}function stringifyForError(value){return"function"==typeof value?value.name||value.toString():"object"==typeof value&&null!=value&&"function"==typeof value.type?value.type.name||value.type.toString():renderStringify(value)}function throwCyclicDependencyError(token,path){const depPath=path?`. Dependency path: ${path.join(" > ")} > ${token}`:"";throw new RuntimeError(-200,ngDevMode?`Circular dependency in DI detected for ${token}${depPath}`:token)}function throwMixedMultiProviderError(){throw new Error("Cannot mix multi providers and regular providers")}function throwInvalidProviderError(ngModuleType,providers,provider){if(ngModuleType&&providers){const providerDetail=providers.map((v=>v==provider?"?"+provider+"?":"..."));throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}' - only instances of Provider and Type are allowed, got: [${providerDetail.join(", ")}]`)}throw isEnvironmentProviders(provider)?provider.ɵfromNgModule?new RuntimeError(207,"Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers."):new RuntimeError(207,"Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers."):new Error("Invalid provider")}function throwProviderNotFoundError(token,injectorName){const errorMessage=ngDevMode&&`No provider for ${stringifyForError(token)} found${injectorName?` in ${injectorName}`:""}`;throw new RuntimeError(-201,errorMessage)}var InjectFlags;let _injectImplementation;function getInjectImplementation(){return _injectImplementation}function setInjectImplementation(impl){const previous=_injectImplementation;return _injectImplementation=impl,previous}function injectRootLimpMode(token,notFoundValue,flags){const injectableDef=getInjectableDef(token);return injectableDef&&"root"==injectableDef.providedIn?void 0===injectableDef.value?injectableDef.value=injectableDef.factory():injectableDef.value:flags&InjectFlags.Optional?null:void 0!==notFoundValue?notFoundValue:void throwProviderNotFoundError(token,"Injector")}!function(InjectFlags){InjectFlags[InjectFlags.Default=0]="Default",InjectFlags[InjectFlags.Host=1]="Host",InjectFlags[InjectFlags.Self=2]="Self",InjectFlags[InjectFlags.SkipSelf=4]="SkipSelf",InjectFlags[InjectFlags.Optional=8]="Optional"}(InjectFlags||(InjectFlags={}));const THROW_IF_NOT_FOUND={},DI_DECORATOR_FLAG="__NG_DI_FLAG__",NEW_LINE=/\n/gm,NO_NEW_LINE="ɵ";let _currentInjector;function setCurrentInjector(injector){const former=_currentInjector;return _currentInjector=injector,former}function injectInjectorOnly(token,flags=InjectFlags.Default){if(void 0===_currentInjector)throw new RuntimeError(-203,ngDevMode&&"inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`.");if(null===_currentInjector)return injectRootLimpMode(token,void 0,flags);{const value=_currentInjector.get(token,flags&InjectFlags.Optional?null:void 0,flags);return ngDevMode&&emitInjectEvent(token,value,flags),value}}function ɵɵinject(token,flags=InjectFlags.Default){return(getInjectImplementation()||injectInjectorOnly)(resolveForwardRef(token),flags)}function ɵɵinvalidFactoryDep(index){throw new RuntimeError(202,ngDevMode&&`This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`)}function inject(token,flags=InjectFlags.Default){return ɵɵinject(token,convertToBitFlags(flags))}function convertToBitFlags(flags){return void 0===flags||"number"==typeof flags?flags:(flags.optional&&8)|(flags.host&&1)|(flags.self&&2)|(flags.skipSelf&&4)}function injectArgs(types){const args=[];for(let i=0;i ");else if("object"==typeof obj){let parts=[];for(let key in obj)if(obj.hasOwnProperty(key)){let value=obj[key];parts.push(key+":"+("string"==typeof value?JSON.stringify(value):stringify(value)))}context=`{${parts.join(", ")}}`}return`${injectorErrorName}${source?"("+source+")":""}[${context}]: ${text.replace(NEW_LINE,"\n ")}`}("\n"+e.message,tokenPath,injectorErrorName,source),e.ngTokenPath=tokenPath,e.ngTempTokenPath=null,e}const Inject=attachInjectFlag(makeParamDecorator("Inject",(token=>({token}))),-1),Optional=attachInjectFlag(makeParamDecorator("Optional"),8),Self=attachInjectFlag(makeParamDecorator("Self"),2),SkipSelf=attachInjectFlag(makeParamDecorator("SkipSelf"),4),Host=attachInjectFlag(makeParamDecorator("Host"),1);function getFactoryDef(type,throwNotFound){const hasFactoryDef=type.hasOwnProperty(NG_FACTORY_DEF);if(!hasFactoryDef&&!0===throwNotFound&&ngDevMode)throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);return hasFactoryDef?type[NG_FACTORY_DEF]:null}function flatten(list){return list.flat(Number.POSITIVE_INFINITY)}function deepForEach(input,fn){input.forEach((value=>Array.isArray(value)?deepForEach(value,fn):fn(value)))}function addToArray(arr,index,value){index>=arr.length?arr.push(value):arr.splice(index,0,value)}function removeFromArray(arr,index){return index>=arr.length-1?arr.pop():arr.splice(index,1)[0]}function newArray(size,value){const list=[];for(let i=0;iindex;){const previousEnd=end-2;array[end]=array[previousEnd],end--}array[index]=value1,array[index+1]=value2}}function keyValueArraySet(keyValueArray,key,value){let index=keyValueArrayIndexOf(keyValueArray,key);return index>=0?keyValueArray[1|index]=value:(index=~index,arrayInsert2(keyValueArray,index,key,value)),index}function keyValueArrayGet(keyValueArray,key){const index=keyValueArrayIndexOf(keyValueArray,key);if(index>=0)return keyValueArray[1|index]}function keyValueArrayIndexOf(keyValueArray,key){return _arrayIndexOfSorted(keyValueArray,key,1)}function _arrayIndexOfSorted(array,value,shift){ngDevMode&&assertEqual(Array.isArray(array),!0,"Expecting an array");let start=0,end=array.length>>shift;for(;end!==start;){const middle=start+(end-start>>1),current=array[middle<value?end=middle:start=middle+1}return~(end<marker){markerInsertPosition=i-1;break}}}for(;i-1){let item;for(;++inameOnlyMarkerIdx?nodeAttrValue="":(ngDevMode&&assertNotEqual(nodeAttrs[attrIndexInNode],0,"We do not match directives on namespaced attributes"),nodeAttrValue=nodeAttrs[attrIndexInNode+1].toLowerCase()),2&mode&&selectorAttrValue!==nodeAttrValue){if(isPositive(mode))return!1;skipToNextSelector=!0}}}}else{if(!skipToNextSelector&&!isPositive(mode)&&!isPositive(current))return!1;if(skipToNextSelector&&isPositive(current))continue;skipToNextSelector=!1,mode=current|1&mode}}return isPositive(mode)||skipToNextSelector}function isPositive(mode){return!(1&mode)}function findAttrIndexInNode(name,attrs,isInlineTemplate,isProjectionMode){if(null===attrs)return-1;let i=0;if(isProjectionMode||!isInlineTemplate){let bindingsMode=!1;for(;i-1)for(i++;i0?'="'+attrValue+'"':"")+"]"}else 8&mode?currentChunk+="."+valueOrMarker:4&mode&&(currentChunk+=" "+valueOrMarker);else""===currentChunk||isPositive(valueOrMarker)||(result+=maybeWrapInNotSelector(isNegativeMode,currentChunk),currentChunk=""),mode=valueOrMarker,isNegativeMode=isNegativeMode||!isPositive(mode);i++}return""!==currentChunk&&(result+=maybeWrapInNotSelector(isNegativeMode,currentChunk)),result}function stringifyCSSSelectorList(selectorList){return selectorList.map(stringifyCSSSelector).join(",")}function ɵɵdefineComponent(componentDefinition){return noSideEffects((()=>{("undefined"==typeof ngDevMode||ngDevMode)&&initNgDevMode();const baseDef=getNgDirectiveDef(componentDefinition),def={...baseDef,decls:componentDefinition.decls,vars:componentDefinition.vars,template:componentDefinition.template,consts:componentDefinition.consts||null,ngContentSelectors:componentDefinition.ngContentSelectors,onPush:componentDefinition.changeDetection===ChangeDetectionStrategy.OnPush,directiveDefs:null,pipeDefs:null,dependencies:baseDef.standalone&&componentDefinition.dependencies||null,getStandaloneInjector:null,signals:componentDefinition.signals??!1,data:componentDefinition.data||{},encapsulation:componentDefinition.encapsulation||ViewEncapsulation$1.Emulated,styles:componentDefinition.styles||EMPTY_ARRAY,_:null,schemas:componentDefinition.schemas||null,tView:null,id:""};initFeatures(def);const dependencies=componentDefinition.dependencies;return def.directiveDefs=extractDefListOrFactory(dependencies,!1),def.pipeDefs=extractDefListOrFactory(dependencies,!0),def.id=function getComponentId(componentDef){let hash=0;const hashSelectors=[componentDef.selectors,componentDef.ngContentSelectors,componentDef.hostVars,componentDef.hostAttrs,componentDef.consts,componentDef.vars,componentDef.decls,componentDef.encapsulation,componentDef.standalone,componentDef.signals,componentDef.exportAs,JSON.stringify(componentDef.inputs),JSON.stringify(componentDef.outputs),Object.getOwnPropertyNames(componentDef.type.prototype),!!componentDef.contentQueries,!!componentDef.viewQuery].join("|");for(const char of hashSelectors)hash=Math.imul(31,hash)+char.charCodeAt(0)|0;hash+=2147483648;const compId="c"+hash;if("undefined"==typeof ngDevMode||ngDevMode)if(GENERATED_COMP_IDS.has(compId)){const previousCompDefType=GENERATED_COMP_IDS.get(compId);previousCompDefType!==componentDef.type&&console.warn(formatRuntimeError(-912,`Component ID generation collision detected. Components '${previousCompDefType.name}' and '${componentDef.type.name}' with selector '${stringifyCSSSelectorList(componentDef.selectors)}' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID.`))}else GENERATED_COMP_IDS.set(compId,componentDef.type);return compId}(def),def}))}function extractDirectiveDef(type){return getComponentDef(type)||getDirectiveDef(type)}function nonNull(value){return null!==value}function ɵɵdefineNgModule(def){return noSideEffects((()=>({type:def.type,bootstrap:def.bootstrap||EMPTY_ARRAY,declarations:def.declarations||EMPTY_ARRAY,imports:def.imports||EMPTY_ARRAY,exports:def.exports||EMPTY_ARRAY,transitiveCompileScopes:null,schemas:def.schemas||null,id:def.id||null})))}function parseAndConvertBindingsForDefinition(obj,declaredInputs){if(null==obj)return EMPTY_OBJ;const newLookup={};for(const minifiedKey in obj)if(obj.hasOwnProperty(minifiedKey)){const value=obj[minifiedKey];let publicName,declaredName,inputFlags=InputFlags.None;Array.isArray(value)?(inputFlags=value[0],publicName=value[1],declaredName=value[2]??publicName):(publicName=value,declaredName=value),declaredInputs?(newLookup[publicName]=inputFlags!==InputFlags.None?[minifiedKey,inputFlags]:minifiedKey,declaredInputs[publicName]=declaredName):newLookup[publicName]=minifiedKey}return newLookup}function ɵɵdefineDirective(directiveDefinition){return noSideEffects((()=>{const def=getNgDirectiveDef(directiveDefinition);return initFeatures(def),def}))}function ɵɵdefinePipe(pipeDef){return{type:pipeDef.type,name:pipeDef.name,factory:null,pure:!1!==pipeDef.pure,standalone:!0===pipeDef.standalone,onDestroy:pipeDef.type.prototype.ngOnDestroy||null}}function getComponentDef(type){return type[NG_COMP_DEF]||null}function getDirectiveDef(type){return type[NG_DIR_DEF]||null}function getPipeDef$1(type){return type[NG_PIPE_DEF]||null}function isStandalone(type){const def=getComponentDef(type)||getDirectiveDef(type)||getPipeDef$1(type);return null!==def&&def.standalone}function getNgModuleDef(type,throwNotFound){const ngModuleDef=type[NG_MOD_DEF]||null;if(!ngModuleDef&&!0===throwNotFound)throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);return ngModuleDef}function getNgDirectiveDef(directiveDefinition){const declaredInputs={};return{type:directiveDefinition.type,providersResolver:null,factory:null,hostBindings:directiveDefinition.hostBindings||null,hostVars:directiveDefinition.hostVars||0,hostAttrs:directiveDefinition.hostAttrs||null,contentQueries:directiveDefinition.contentQueries||null,declaredInputs,inputTransforms:null,inputConfig:directiveDefinition.inputs||EMPTY_OBJ,exportAs:directiveDefinition.exportAs||null,standalone:!0===directiveDefinition.standalone,signals:!0===directiveDefinition.signals,selectors:directiveDefinition.selectors||EMPTY_ARRAY,viewQuery:directiveDefinition.viewQuery||null,features:directiveDefinition.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:parseAndConvertBindingsForDefinition(directiveDefinition.inputs,declaredInputs),outputs:parseAndConvertBindingsForDefinition(directiveDefinition.outputs),debugInfo:null}}function initFeatures(definition){definition.features?.forEach((fn=>fn(definition)))}function extractDefListOrFactory(dependencies,pipeDef){if(!dependencies)return null;const defExtractor=pipeDef?getPipeDef$1:extractDirectiveDef;return()=>("function"==typeof dependencies?dependencies():dependencies).map((dep=>defExtractor(dep))).filter(nonNull)}const GENERATED_COMP_IDS=new Map;function makeEnvironmentProviders(providers){return{ɵproviders:providers}}function importProvidersFrom(...sources){return{ɵproviders:internalImportProvidersFrom(!0,sources),ɵfromNgModule:!0}}function internalImportProvidersFrom(checkForStandaloneCmp,...sources){const providersOut=[],dedup=new Set;let injectorTypesWithProviders;const collectProviders=provider=>{providersOut.push(provider)};return deepForEach(sources,(source=>{if(("undefined"==typeof ngDevMode||ngDevMode)&&checkForStandaloneCmp){const cmpDef=getComponentDef(source);if(cmpDef?.standalone)throw new RuntimeError(800,`Importing providers supports NgModule or ModuleWithProviders but got a standalone component "${stringifyForError(source)}"`)}const internalSource=source;walkProviderTree(internalSource,collectProviders,[],dedup)&&(injectorTypesWithProviders||=[],injectorTypesWithProviders.push(internalSource))})),void 0!==injectorTypesWithProviders&&processInjectorTypesWithProviders(injectorTypesWithProviders,collectProviders),providersOut}function processInjectorTypesWithProviders(typesWithProviders,visitor){for(let i=0;i{ngDevMode&&validateProvider(provider,providers||EMPTY_ARRAY,ngModule),visitor(provider,ngModule)}))}}function walkProviderTree(container,visitor,parents,dedup){if(!(container=resolveForwardRef(container)))return!1;let defType=null,injDef=getInjectorDef(container);const cmpDef=!injDef&&getComponentDef(container);if(injDef||cmpDef){if(cmpDef&&!cmpDef.standalone)return!1;defType=container}else{const ngModule=container.ngModule;if(injDef=getInjectorDef(ngModule),!injDef)return!1;defType=ngModule}if(ngDevMode&&-1!==parents.indexOf(defType)){throwCyclicDependencyError(stringify(defType),parents.map(stringify))}const isDuplicate=dedup.has(defType);if(cmpDef){if(isDuplicate)return!1;if(dedup.add(defType),cmpDef.dependencies){const deps="function"==typeof cmpDef.dependencies?cmpDef.dependencies():cmpDef.dependencies;for(const dep of deps)walkProviderTree(dep,visitor,parents,dedup)}}else{if(!injDef)return!1;{if(null!=injDef.imports&&!isDuplicate){let importTypesWithProviders;ngDevMode&&parents.push(defType),dedup.add(defType);try{deepForEach(injDef.imports,(imported=>{walkProviderTree(imported,visitor,parents,dedup)&&(importTypesWithProviders||=[],importTypesWithProviders.push(imported))}))}finally{ngDevMode&&parents.pop()}void 0!==importTypesWithProviders&&processInjectorTypesWithProviders(importTypesWithProviders,visitor)}if(!isDuplicate){const factory=getFactoryDef(defType)||(()=>new defType);visitor({provide:defType,useFactory:factory,deps:EMPTY_ARRAY},defType),visitor({provide:INJECTOR_DEF_TYPES,useValue:defType,multi:!0},defType),visitor({provide:ENVIRONMENT_INITIALIZER,useValue:()=>ɵɵinject(defType),multi:!0},defType)}const defProviders=injDef.providers;if(null!=defProviders&&!isDuplicate){const injectorType=container;deepForEachProvider(defProviders,(provider=>{ngDevMode&&validateProvider(provider,defProviders,injectorType),visitor(provider,injectorType)}))}}}return defType!==container&&void 0!==container.providers}function validateProvider(provider,providers,containerType){if(isTypeProvider(provider)||isValueProvider(provider)||isFactoryProvider(provider)||isExistingProvider(provider))return;resolveForwardRef(provider&&(provider.useClass||provider.provide))||throwInvalidProviderError(containerType,providers,provider)}function deepForEachProvider(providers,fn){for(let provider of providers)isEnvironmentProviders(provider)&&(provider=provider.ɵproviders),Array.isArray(provider)?deepForEachProvider(provider,fn):fn(provider)}const USE_VALUE$1=getClosureSafeProperty({provide:String,useValue:getClosureSafeProperty});function isValueProvider(value){return null!==value&&"object"==typeof value&&USE_VALUE$1 in value}function isExistingProvider(value){return!(!value||!value.useExisting)}function isFactoryProvider(value){return!(!value||!value.useFactory)}function isTypeProvider(value){return"function"==typeof value}const INJECTOR_SCOPE=new InjectionToken(ngDevMode?"Set Injector scope.":""),NOT_YET={},CIRCULAR={};let NULL_INJECTOR;function getNullInjector(){return void 0===NULL_INJECTOR&&(NULL_INJECTOR=new NullInjector),NULL_INJECTOR}class EnvironmentInjector{}class R3Injector extends EnvironmentInjector{get destroyed(){return this._destroyed}constructor(providers,parent,source,scopes){super(),this.parent=parent,this.source=source,this.scopes=scopes,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,forEachSingleProvider(providers,(provider=>this.processProvider(provider))),this.records.set(INJECTOR$1,makeRecord(void 0,this)),scopes.has("environment")&&this.records.set(EnvironmentInjector,makeRecord(void 0,this));const record=this.records.get(INJECTOR_SCOPE);null!=record&&"string"==typeof record.value&&this.scopes.add(record.value),this.injectorDefTypes=new Set(this.get(INJECTOR_DEF_TYPES,EMPTY_ARRAY,InjectFlags.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const prevConsumer=setActiveConsumer(null);try{for(const service of this._ngOnDestroyHooks)service.ngOnDestroy();const onDestroyHooks=this._onDestroyHooks;this._onDestroyHooks=[];for(const hook of onDestroyHooks)hook()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),setActiveConsumer(prevConsumer)}}onDestroy(callback){return this.assertNotDestroyed(),this._onDestroyHooks.push(callback),()=>this.removeOnDestroy(callback)}runInContext(fn){this.assertNotDestroyed();const previousInjector=setCurrentInjector(this),previousInjectImplementation=setInjectImplementation(void 0);let prevInjectContext;ngDevMode&&(prevInjectContext=setInjectorProfilerContext({injector:this,token:null}));try{return fn()}finally{setCurrentInjector(previousInjector),setInjectImplementation(previousInjectImplementation),ngDevMode&&setInjectorProfilerContext(prevInjectContext)}}get(token,notFoundValue=THROW_IF_NOT_FOUND,flags=InjectFlags.Default){if(this.assertNotDestroyed(),token.hasOwnProperty(NG_ENV_ID))return token[NG_ENV_ID](this);let prevInjectContext;flags=convertToBitFlags(flags),ngDevMode&&(prevInjectContext=setInjectorProfilerContext({injector:this,token}));const previousInjector=setCurrentInjector(this),previousInjectImplementation=setInjectImplementation(void 0);try{if(!(flags&InjectFlags.SkipSelf)){let record=this.records.get(token);if(void 0===record){const def=function couldBeInjectableType(value){return"function"==typeof value||"object"==typeof value&&value instanceof InjectionToken}(token)&&getInjectableDef(token);def&&this.injectableDefInScope(def)?(ngDevMode&&runInInjectorProfilerContext(this,token,(()=>{emitProviderConfiguredEvent(token)})),record=makeRecord(injectableDefOrInjectorDefFactory(token),NOT_YET)):record=null,this.records.set(token,record)}if(null!=record)return this.hydrate(token,record)}const nextInjector=flags&InjectFlags.Self?getNullInjector():this.parent;return notFoundValue=flags&InjectFlags.Optional&¬FoundValue===THROW_IF_NOT_FOUND?null:notFoundValue,nextInjector.get(token,notFoundValue)}catch(e){if("NullInjectorError"===e.name){if((e.ngTempTokenPath=e.ngTempTokenPath||[]).unshift(stringify(token)),previousInjector)throw e;return catchInjectorError(e,token,"R3InjectorError",this.source)}throw e}finally{setInjectImplementation(previousInjectImplementation),setCurrentInjector(previousInjector),ngDevMode&&setInjectorProfilerContext(prevInjectContext)}}resolveInjectorInitializers(){const prevConsumer=setActiveConsumer(null),previousInjector=setCurrentInjector(this),previousInjectImplementation=setInjectImplementation(void 0);let prevInjectContext;ngDevMode&&(prevInjectContext=setInjectorProfilerContext({injector:this,token:null}));try{const initializers=this.get(ENVIRONMENT_INITIALIZER,EMPTY_ARRAY,InjectFlags.Self);if(ngDevMode&&!Array.isArray(initializers))throw new RuntimeError(-209,`Unexpected type of the \`ENVIRONMENT_INITIALIZER\` token value (expected an array, but got ${typeof initializers}). Please check that the \`ENVIRONMENT_INITIALIZER\` token is configured as a \`multi: true\` provider.`);for(const initializer of initializers)initializer()}finally{setCurrentInjector(previousInjector),setInjectImplementation(previousInjectImplementation),ngDevMode&&setInjectorProfilerContext(prevInjectContext),setActiveConsumer(prevConsumer)}}toString(){const tokens=[],records=this.records;for(const token of records.keys())tokens.push(stringify(token));return`R3Injector[${tokens.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new RuntimeError(205,ngDevMode&&"Injector has already been destroyed.")}processProvider(provider){let token=isTypeProvider(provider=resolveForwardRef(provider))?provider:resolveForwardRef(provider&&provider.provide);const record=function providerToRecord(provider){if(isValueProvider(provider))return makeRecord(void 0,provider.useValue);return makeRecord(providerToFactory(provider),NOT_YET)}(provider);if(ngDevMode&&runInInjectorProfilerContext(this,token,(()=>{isValueProvider(provider)&&emitInstanceCreatedByInjectorEvent(provider.useValue),emitProviderConfiguredEvent(provider)})),isTypeProvider(provider)||!0!==provider.multi){if(ngDevMode){const existing=this.records.get(token);existing&&void 0!==existing.multi&&throwMixedMultiProviderError()}}else{let multiRecord=this.records.get(token);multiRecord?ngDevMode&&void 0===multiRecord.multi&&throwMixedMultiProviderError():(multiRecord=makeRecord(void 0,NOT_YET,!0),multiRecord.factory=()=>injectArgs(multiRecord.multi),this.records.set(token,multiRecord)),token=provider,multiRecord.multi.push(provider)}this.records.set(token,record)}hydrate(token,record){const prevConsumer=setActiveConsumer(null);try{return ngDevMode&&record.value===CIRCULAR?throwCyclicDependencyError(stringify(token)):record.value===NOT_YET&&(record.value=CIRCULAR,ngDevMode?runInInjectorProfilerContext(this,token,(()=>{record.value=record.factory(),emitInstanceCreatedByInjectorEvent(record.value)})):record.value=record.factory()),"object"==typeof record.value&&record.value&&function hasOnDestroy(value){return null!==value&&"object"==typeof value&&"function"==typeof value.ngOnDestroy}(record.value)&&this._ngOnDestroyHooks.add(record.value),record.value}finally{setActiveConsumer(prevConsumer)}}injectableDefInScope(def){if(!def.providedIn)return!1;const providedIn=resolveForwardRef(def.providedIn);return"string"==typeof providedIn?"any"===providedIn||this.scopes.has(providedIn):this.injectorDefTypes.has(providedIn)}removeOnDestroy(callback){const destroyCBIdx=this._onDestroyHooks.indexOf(callback);-1!==destroyCBIdx&&this._onDestroyHooks.splice(destroyCBIdx,1)}}function injectableDefOrInjectorDefFactory(token){const injectableDef=getInjectableDef(token),factory=null!==injectableDef?injectableDef.factory:getFactoryDef(token);if(null!==factory)return factory;if(token instanceof InjectionToken)throw new RuntimeError(204,ngDevMode&&`Token ${stringify(token)} is missing a ɵprov definition.`);if(token instanceof Function)return function getUndecoratedInjectableFactory(token){const paramLength=token.length;if(paramLength>0)throw new RuntimeError(204,ngDevMode&&`Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength,"?").join(", ")}).`);const inheritedInjectableDef=function getInheritedInjectableDef(type){const def=type&&(type[NG_PROV_DEF]||type[NG_INJECTABLE_DEF]);return def?(ngDevMode&&console.warn(`DEPRECATED: DI is instantiating a token "${type.name}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${type.name}" class.`),def):null}(token);return null!==inheritedInjectableDef?()=>inheritedInjectableDef.factory(token):()=>new token}(token);throw new RuntimeError(204,ngDevMode&&"unreachable")}function providerToFactory(provider,ngModuleType,providers){let factory;if(ngDevMode&&isEnvironmentProviders(provider)&&throwInvalidProviderError(void 0,providers,provider),isTypeProvider(provider)){const unwrappedProvider=resolveForwardRef(provider);return getFactoryDef(unwrappedProvider)||injectableDefOrInjectorDefFactory(unwrappedProvider)}if(isValueProvider(provider))factory=()=>resolveForwardRef(provider.useValue);else if(isFactoryProvider(provider))factory=()=>provider.useFactory(...injectArgs(provider.deps||[]));else if(isExistingProvider(provider))factory=()=>ɵɵinject(resolveForwardRef(provider.useExisting));else{const classRef=resolveForwardRef(provider&&(provider.useClass||provider.provide));if(ngDevMode&&!classRef&&throwInvalidProviderError(ngModuleType,providers,provider),!function hasDeps(value){return!!value.deps}(provider))return getFactoryDef(classRef)||injectableDefOrInjectorDefFactory(classRef);factory=()=>new classRef(...injectArgs(provider.deps))}return factory}function makeRecord(factory,value,multi=!1){return{factory,value,multi:multi?[]:void 0}}function forEachSingleProvider(providers,fn){for(const provider of providers)Array.isArray(provider)?forEachSingleProvider(provider,fn):provider&&isEnvironmentProviders(provider)?forEachSingleProvider(provider.ɵproviders,fn):fn(provider)}function runInInjectionContext(injector,fn){let prevInjectorProfilerContext;injector instanceof R3Injector&&injector.assertNotDestroyed(),ngDevMode&&(prevInjectorProfilerContext=setInjectorProfilerContext({injector,token:null}));const prevInjector=setCurrentInjector(injector),previousInjectImplementation=setInjectImplementation(void 0);try{return fn()}finally{setCurrentInjector(prevInjector),ngDevMode&&setInjectorProfilerContext(prevInjectorProfilerContext),setInjectImplementation(previousInjectImplementation)}}function isInInjectionContext(){return void 0!==getInjectImplementation()||null!=function getCurrentInjector(){return _currentInjector}()}function assertInInjectionContext(debugFn){if(!isInInjectionContext())throw new RuntimeError(-203,ngDevMode&&debugFn.name+"() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`")}var FactoryTarget,R3TemplateDependencyKind,ViewEncapsulation;function getCompilerFacade(request){const globalNg=_global.ng;if(globalNg&&globalNg.ɵcompilerFacade)return globalNg.ɵcompilerFacade;if("undefined"==typeof ngDevMode||ngDevMode){console.error(`JIT compilation failed for ${request.kind}`,request.type);let message=`The ${request.kind} '${request.type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\n\n`;throw 1===request.usage?(message+=`The ${request.kind} is part of a library that has been partially compiled.\n`,message+="However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\n",message+="\n",message+="Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\n"):message+="JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\n",message+="Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\n",message+="or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.",new Error(message)}throw new Error("JIT compiler unavailable")}!function(FactoryTarget){FactoryTarget[FactoryTarget.Directive=0]="Directive",FactoryTarget[FactoryTarget.Component=1]="Component",FactoryTarget[FactoryTarget.Injectable=2]="Injectable",FactoryTarget[FactoryTarget.Pipe=3]="Pipe",FactoryTarget[FactoryTarget.NgModule=4]="NgModule"}(FactoryTarget||(FactoryTarget={})),function(R3TemplateDependencyKind){R3TemplateDependencyKind[R3TemplateDependencyKind.Directive=0]="Directive",R3TemplateDependencyKind[R3TemplateDependencyKind.Pipe=1]="Pipe",R3TemplateDependencyKind[R3TemplateDependencyKind.NgModule=2]="NgModule"}(R3TemplateDependencyKind||(R3TemplateDependencyKind={})),function(ViewEncapsulation){ViewEncapsulation[ViewEncapsulation.Emulated=0]="Emulated",ViewEncapsulation[ViewEncapsulation.None=2]="None",ViewEncapsulation[ViewEncapsulation.ShadowDom=3]="ShadowDom"}(ViewEncapsulation||(ViewEncapsulation={}));const angularCoreDiEnv={ɵɵdefineInjectable,ɵɵdefineInjector,ɵɵinject,ɵɵinvalidFactoryDep,resolveForwardRef},Type=Function;function isType(v){return"function"==typeof v}const ES5_DELEGATE_CTOR=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*(arguments|(?:[^()]+\(\[\],)?[^()]+\(arguments\).*)\)/,ES2015_INHERITED_CLASS=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/,ES2015_INHERITED_CLASS_WITH_CTOR=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/,ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{[^}]*super\(\.\.\.arguments\)/;class ReflectionCapabilities{constructor(reflect){this._reflect=reflect||_global.Reflect}factory(t){return(...args)=>new t(...args)}_zipTypesAndAnnotations(paramTypes,paramAnnotations){let result;result=newArray(void 0===paramTypes?paramAnnotations.length:paramTypes.length);for(let i=0;ictorParam&&ctorParam.type)),paramAnnotations=ctorParameters.map((ctorParam=>ctorParam&&convertTsickleDecoratorIntoMetadata(ctorParam.decorators)));return this._zipTypesAndAnnotations(paramTypes,paramAnnotations)}const paramAnnotations=type.hasOwnProperty(PARAMETERS)&&type[PARAMETERS],paramTypes=this._reflect&&this._reflect.getOwnMetadata&&this._reflect.getOwnMetadata("design:paramtypes",type);return paramTypes||paramAnnotations?this._zipTypesAndAnnotations(paramTypes,paramAnnotations):newArray(type.length)}parameters(type){if(!isType(type))return[];const parentCtor=getParentCtor(type);let parameters=this._ownParameters(type,parentCtor);return parameters||parentCtor===Object||(parameters=this.parameters(parentCtor)),parameters||[]}_ownAnnotations(typeOrFunc,parentCtor){if(typeOrFunc.annotations&&typeOrFunc.annotations!==parentCtor.annotations){let annotations=typeOrFunc.annotations;return"function"==typeof annotations&&annotations.annotations&&(annotations=annotations.annotations),annotations}return typeOrFunc.decorators&&typeOrFunc.decorators!==parentCtor.decorators?convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators):typeOrFunc.hasOwnProperty(ANNOTATIONS)?typeOrFunc[ANNOTATIONS]:null}annotations(typeOrFunc){if(!isType(typeOrFunc))return[];const parentCtor=getParentCtor(typeOrFunc),ownAnnotations=this._ownAnnotations(typeOrFunc,parentCtor)||[];return(parentCtor!==Object?this.annotations(parentCtor):[]).concat(ownAnnotations)}_ownPropMetadata(typeOrFunc,parentCtor){if(typeOrFunc.propMetadata&&typeOrFunc.propMetadata!==parentCtor.propMetadata){let propMetadata=typeOrFunc.propMetadata;return"function"==typeof propMetadata&&propMetadata.propMetadata&&(propMetadata=propMetadata.propMetadata),propMetadata}if(typeOrFunc.propDecorators&&typeOrFunc.propDecorators!==parentCtor.propDecorators){const propDecorators=typeOrFunc.propDecorators,propMetadata={};return Object.keys(propDecorators).forEach((prop=>{propMetadata[prop]=convertTsickleDecoratorIntoMetadata(propDecorators[prop])})),propMetadata}return typeOrFunc.hasOwnProperty(PROP_METADATA)?typeOrFunc[PROP_METADATA]:null}propMetadata(typeOrFunc){if(!isType(typeOrFunc))return{};const parentCtor=getParentCtor(typeOrFunc),propMetadata={};if(parentCtor!==Object){const parentPropMetadata=this.propMetadata(parentCtor);Object.keys(parentPropMetadata).forEach((propName=>{propMetadata[propName]=parentPropMetadata[propName]}))}const ownPropMetadata=this._ownPropMetadata(typeOrFunc,parentCtor);return ownPropMetadata&&Object.keys(ownPropMetadata).forEach((propName=>{const decorators=[];propMetadata.hasOwnProperty(propName)&&decorators.push(...propMetadata[propName]),decorators.push(...ownPropMetadata[propName]),propMetadata[propName]=decorators})),propMetadata}ownPropMetadata(typeOrFunc){return isType(typeOrFunc)&&this._ownPropMetadata(typeOrFunc,getParentCtor(typeOrFunc))||{}}hasLifecycleHook(type,lcProperty){return type instanceof Type&&lcProperty in type.prototype}}function convertTsickleDecoratorIntoMetadata(decoratorInvocations){return decoratorInvocations?decoratorInvocations.map((decoratorInvocation=>new(0,decoratorInvocation.type.annotationCls)(...decoratorInvocation.args?decoratorInvocation.args:[]))):[]}function getParentCtor(ctor){const parentProto=ctor.prototype?Object.getPrototypeOf(ctor.prototype):null;return(parentProto?parentProto.constructor:null)||Object}const HOST=0,TVIEW=1,FLAGS=2,PARENT=3,NEXT=4,T_HOST=5,HYDRATION=6,CLEANUP=7,CONTEXT=8,INJECTOR=9,ENVIRONMENT=10,RENDERER=11,CHILD_HEAD=12,CHILD_TAIL=13,DECLARATION_VIEW=14,DECLARATION_COMPONENT_VIEW=15,DECLARATION_LCONTAINER=16,PREORDER_HOOK_FLAGS=17,QUERIES=18,ID=19,EMBEDDED_VIEW_INJECTOR=20,ON_DESTROY_HOOKS=21,EFFECTS_TO_SCHEDULE=22,REACTIVE_TEMPLATE_CONSUMER=23,HEADER_OFFSET=25,TYPE=1,DEHYDRATED_VIEWS=6,NATIVE=7,MOVED_VIEWS=9,CONTAINER_HEADER_OFFSET=10;var LContainerFlags;function isLView(value){return Array.isArray(value)&&"object"==typeof value[TYPE]}function isLContainer(value){return Array.isArray(value)&&!0===value[TYPE]}function isContentQueryHost(tNode){return!!(4&tNode.flags)}function isComponentHost(tNode){return tNode.componentOffset>-1}function isDirectiveHost(tNode){return!(1&~tNode.flags)}function isComponentDef(def){return!!def.template}function isRootView(target){return!!(512&target[FLAGS])}function isProjectionTNode(tNode){return!(16&~tNode.type)}function isDestroyed(lView){return!(256&~lView[FLAGS])}function assertTNodeForLView(tNode,lView){assertTNodeForTView(tNode,lView[TVIEW])}function assertTNodeForTView(tNode,tView){assertTNode(tNode);const tData=tView.data;for(let i=HEADER_OFFSET;i0;)ngDevMode&&assertDefined(currentView[DECLARATION_VIEW],"Declaration view should be defined if nesting level is greater than 0."),currentView=currentView[DECLARATION_VIEW],nestingLevel--;return currentView}function requiresRefreshOrTraversal(lView){return!!(9216&lView[FLAGS]||lView[REACTIVE_TEMPLATE_CONSUMER]?.dirty)}function updateAncestorTraversalFlagsOnAttach(lView){lView[ENVIRONMENT].changeDetectionScheduler?.notify(8),64&lView[FLAGS]&&(lView[FLAGS]|=1024),requiresRefreshOrTraversal(lView)&&markAncestorsForTraversal(lView)}function markAncestorsForTraversal(lView){lView[ENVIRONMENT].changeDetectionScheduler?.notify(0);let parent=getLViewParent(lView);for(;null!==parent&&!(8192&parent[FLAGS])&&(parent[FLAGS]|=8192,viewAttachedToChangeDetector(parent));)parent=getLViewParent(parent)}function storeLViewOnDestroy(lView,onDestroyCallback){if(!(256&~lView[FLAGS]))throw new RuntimeError(911,ngDevMode&&"View has already been destroyed.");null===lView[ON_DESTROY_HOOKS]&&(lView[ON_DESTROY_HOOKS]=[]),lView[ON_DESTROY_HOOKS].push(onDestroyCallback)}function removeLViewOnDestroy(lView,onDestroyCallback){if(null===lView[ON_DESTROY_HOOKS])return;const destroyCBIdx=lView[ON_DESTROY_HOOKS].indexOf(onDestroyCallback);-1!==destroyCBIdx&&lView[ON_DESTROY_HOOKS].splice(destroyCBIdx,1)}function getLViewParent(lView){ngDevMode&&assertLView(lView);const parent=lView[PARENT];return isLContainer(parent)?parent[PARENT]:parent}const instructionState={lFrame:createLFrame(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var CheckNoChangesMode;!function(CheckNoChangesMode){CheckNoChangesMode[CheckNoChangesMode.Off=0]="Off",CheckNoChangesMode[CheckNoChangesMode.Exhaustive=1]="Exhaustive",CheckNoChangesMode[CheckNoChangesMode.OnlyDirtyViews=2]="OnlyDirtyViews"}(CheckNoChangesMode||(CheckNoChangesMode={}));let _checkNoChangesMode=0,_isRefreshingViews=!1;function getBindingsEnabled(){return instructionState.bindingsEnabled}function isInSkipHydrationBlock$1(){return null!==instructionState.skipHydrationRootTNode}function ɵɵenableBindings(){instructionState.bindingsEnabled=!0}function ɵɵdisableBindings(){instructionState.bindingsEnabled=!1}function getLView(){return instructionState.lFrame.lView}function getTView(){return instructionState.lFrame.tView}function ɵɵrestoreView(viewToRestore){return instructionState.lFrame.contextLView=viewToRestore,viewToRestore[CONTEXT]}function ɵɵresetView(value){return instructionState.lFrame.contextLView=null,value}function getCurrentTNode(){let currentTNode=getCurrentTNodePlaceholderOk();for(;null!==currentTNode&&64===currentTNode.type;)currentTNode=currentTNode.parent;return currentTNode}function getCurrentTNodePlaceholderOk(){return instructionState.lFrame.currentTNode}function getCurrentParentTNode(){const lFrame=instructionState.lFrame,currentTNode=lFrame.currentTNode;return lFrame.isParent?currentTNode:currentTNode.parent}function setCurrentTNode(tNode,isParent){ngDevMode&&tNode&&assertTNodeForTView(tNode,instructionState.lFrame.tView);const lFrame=instructionState.lFrame;lFrame.currentTNode=tNode,lFrame.isParent=isParent}function isCurrentTNodeParent(){return instructionState.lFrame.isParent}function setCurrentTNodeAsNotParent(){instructionState.lFrame.isParent=!1}function getContextLView(){const contextLView=instructionState.lFrame.contextLView;return ngDevMode&&assertDefined(contextLView,"contextLView must be defined."),contextLView}function isInCheckNoChangesMode(){return!ngDevMode&&throwError("Must never be called in production mode"),_checkNoChangesMode!==CheckNoChangesMode.Off}function isExhaustiveCheckNoChanges(){return!ngDevMode&&throwError("Must never be called in production mode"),_checkNoChangesMode===CheckNoChangesMode.Exhaustive}function setIsInCheckNoChangesMode(mode){!ngDevMode&&throwError("Must never be called in production mode"),_checkNoChangesMode=mode}function isRefreshingViews(){return _isRefreshingViews}function setIsRefreshingViews(mode){_isRefreshingViews=mode}function getBindingRoot(){const lFrame=instructionState.lFrame;let index=lFrame.bindingRootIndex;return-1===index&&(index=lFrame.bindingRootIndex=lFrame.tView.bindingStartIndex),index}function getBindingIndex(){return instructionState.lFrame.bindingIndex}function setBindingIndex(value){return instructionState.lFrame.bindingIndex=value}function nextBindingIndex(){return instructionState.lFrame.bindingIndex++}function incrementBindingIndex(count){const lFrame=instructionState.lFrame,index=lFrame.bindingIndex;return lFrame.bindingIndex=lFrame.bindingIndex+count,index}function setInI18nBlock(isInI18nBlock){instructionState.lFrame.inI18n=isInI18nBlock}function setBindingRootForHostBindings(bindingRootIndex,currentDirectiveIndex){const lFrame=instructionState.lFrame;lFrame.bindingIndex=lFrame.bindingRootIndex=bindingRootIndex,setCurrentDirectiveIndex(currentDirectiveIndex)}function setCurrentDirectiveIndex(currentDirectiveIndex){instructionState.lFrame.currentDirectiveIndex=currentDirectiveIndex}function getCurrentDirectiveDef(tData){const currentDirectiveIndex=instructionState.lFrame.currentDirectiveIndex;return-1===currentDirectiveIndex?null:tData[currentDirectiveIndex]}function getCurrentQueryIndex(){return instructionState.lFrame.currentQueryIndex}function setCurrentQueryIndex(value){instructionState.lFrame.currentQueryIndex=value}function getDeclarationTNode(lView){const tView=lView[TVIEW];return 2===tView.type?(ngDevMode&&assertDefined(tView.declTNode,"Embedded TNodes should have declaration parents."),tView.declTNode):1===tView.type?lView[T_HOST]:null}function enterDI(lView,tNode,flags){if(ngDevMode&&assertLViewOrUndefined(lView),flags&InjectFlags.SkipSelf){ngDevMode&&assertTNodeForTView(tNode,lView[TVIEW]);let parentTNode=tNode,parentLView=lView;for(;!(ngDevMode&&assertDefined(parentTNode,"Parent TNode should be defined"),parentTNode=parentTNode.parent,null!==parentTNode||flags&InjectFlags.Host||(parentTNode=getDeclarationTNode(parentLView),null===parentTNode)||(ngDevMode&&assertDefined(parentLView,"Parent LView should be defined"),parentLView=parentLView[DECLARATION_VIEW],10&parentTNode.type)););if(null===parentTNode)return!1;tNode=parentTNode,lView=parentLView}ngDevMode&&assertTNodeForLView(tNode,lView);const lFrame=instructionState.lFrame=allocLFrame();return lFrame.currentTNode=tNode,lFrame.lView=lView,!0}function enterView(newView){ngDevMode&&assertNotEqual(newView[0],newView[1],"????"),ngDevMode&&assertLViewOrUndefined(newView);const newLFrame=allocLFrame();ngDevMode&&(assertEqual(newLFrame.isParent,!0,"Expected clean LFrame"),assertEqual(newLFrame.lView,null,"Expected clean LFrame"),assertEqual(newLFrame.tView,null,"Expected clean LFrame"),assertEqual(newLFrame.selectedIndex,-1,"Expected clean LFrame"),assertEqual(newLFrame.elementDepthCount,0,"Expected clean LFrame"),assertEqual(newLFrame.currentDirectiveIndex,-1,"Expected clean LFrame"),assertEqual(newLFrame.currentNamespace,null,"Expected clean LFrame"),assertEqual(newLFrame.bindingRootIndex,-1,"Expected clean LFrame"),assertEqual(newLFrame.currentQueryIndex,0,"Expected clean LFrame"));const tView=newView[TVIEW];instructionState.lFrame=newLFrame,ngDevMode&&tView.firstChild&&assertTNodeForTView(tView.firstChild,tView),newLFrame.currentTNode=tView.firstChild,newLFrame.lView=newView,newLFrame.tView=tView,newLFrame.contextLView=newView,newLFrame.bindingIndex=tView.bindingStartIndex,newLFrame.inI18n=!1}function allocLFrame(){const currentLFrame=instructionState.lFrame,childLFrame=null===currentLFrame?null:currentLFrame.child;return null===childLFrame?createLFrame(currentLFrame):childLFrame}function createLFrame(parent){const lFrame={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent,child:null,inI18n:!1};return null!==parent&&(parent.child=lFrame),lFrame}function leaveViewLight(){const oldLFrame=instructionState.lFrame;return instructionState.lFrame=oldLFrame.parent,oldLFrame.currentTNode=null,oldLFrame.lView=null,oldLFrame}const leaveDI=leaveViewLight;function leaveView(){const oldLFrame=leaveViewLight();oldLFrame.isParent=!0,oldLFrame.tView=null,oldLFrame.selectedIndex=-1,oldLFrame.contextLView=null,oldLFrame.elementDepthCount=0,oldLFrame.currentDirectiveIndex=-1,oldLFrame.currentNamespace=null,oldLFrame.bindingRootIndex=-1,oldLFrame.bindingIndex=-1,oldLFrame.currentQueryIndex=0}function getSelectedIndex(){return instructionState.lFrame.selectedIndex}function setSelectedIndex(index){ngDevMode&&-1!==index&&assertGreaterThanOrEqual(index,HEADER_OFFSET,"Index must be past HEADER_OFFSET (or -1)."),ngDevMode&&assertLessThan(index,instructionState.lFrame.lView.length,"Can't set index passed end of LView"),instructionState.lFrame.selectedIndex=index}function getSelectedTNode(){const lFrame=instructionState.lFrame;return getTNode(lFrame.tView,lFrame.selectedIndex)}function ɵɵnamespaceSVG(){instructionState.lFrame.currentNamespace=SVG_NAMESPACE}function ɵɵnamespaceMathML(){instructionState.lFrame.currentNamespace=MATH_ML_NAMESPACE}function ɵɵnamespaceHTML(){!function namespaceHTMLInternal(){instructionState.lFrame.currentNamespace=null}()}function getNamespace$1(){return instructionState.lFrame.currentNamespace}let _wasLastNodeCreated=!0;function wasLastNodeCreated(){return _wasLastNodeCreated}function lastNodeWasCreated(flag){_wasLastNodeCreated=flag}function registerPostOrderHooks(tView,tNode){ngDevMode&&assertFirstCreatePass(tView);for(let i=tNode.directiveStart,end=tNode.directiveEnd;i=currentNodeIndex)break}else{arr[i]<0&&(currentView[PREORDER_HOOK_FLAGS]+=65536),(lastNodeIndexFound>14>16&&(3¤tView[FLAGS])===initPhase&&(currentView[FLAGS]+=16384,callHookInternal(directive,hook))}else callHookInternal(directive,hook)}const NO_PARENT_INJECTOR=-1;class NodeInjectorFactory{constructor(factory,isViewProvider,injectImplementation){this.factory=factory,this.resolving=!1,ngDevMode&&assertDefined(factory,"Factory not specified"),ngDevMode&&assertEqual(typeof factory,"function","Expected factory function."),this.canSeeViewProviders=isViewProvider,this.injectImpl=injectImplementation}}function toTNodeTypeAsString(tNodeType){let text="";return 1&tNodeType&&(text+="|Text"),2&tNodeType&&(text+="|Element"),4&tNodeType&&(text+="|Container"),8&tNodeType&&(text+="|ElementContainer"),16&tNodeType&&(text+="|Projection"),32&tNodeType&&(text+="|IcuContainer"),64&tNodeType&&(text+="|Placeholder"),128&tNodeType&&(text+="|LetDeclaration"),text.length>0?text.substring(1):text}function isTNodeShape(value){return null!=value&&"object"==typeof value&&(null===value.insertBeforeIndex||"number"==typeof value.insertBeforeIndex||Array.isArray(value.insertBeforeIndex))}function assertTNodeType(tNode,expectedTypes,message){assertDefined(tNode,"should be called with a TNode"),tNode.type&expectedTypes||throwError(message||`Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`)}const NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR={};class ChainedInjector{constructor(injector,parentInjector){this.injector=injector,this.parentInjector=parentInjector}get(token,notFoundValue,flags){flags=convertToBitFlags(flags);const value=this.injector.get(token,NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR,flags);return value!==NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR||notFoundValue===NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR?value:this.parentInjector.get(token,notFoundValue,flags)}}function hasParentInjector(parentLocation){return parentLocation!==NO_PARENT_INJECTOR}function getParentInjectorIndex(parentLocation){if(ngDevMode){assertNumber(parentLocation,"Number expected"),assertNotEqual(parentLocation,-1,"Not a valid state.");assertGreaterThan(32767&parentLocation,HEADER_OFFSET,"Parent injector must be pointing past HEADER_OFFSET.")}return 32767&parentLocation}function getParentInjectorView(location,startView){let viewOffset=function getParentInjectorViewOffset(parentLocation){return parentLocation>>16}(location),parentView=startView;for(;viewOffset>0;)parentView=parentView[DECLARATION_VIEW],viewOffset--;return parentView}let includeViewProviders=!0;function setIncludeViewProviders(v){const oldValue=includeViewProviders;return includeViewProviders=v,oldValue}const BLOOM_MASK=255,BLOOM_BUCKET_BITS=5;let nextNgElementId=0;const NOT_FOUND={};function getOrCreateNodeInjectorForNode(tNode,lView){const existingInjectorIndex=getInjectorIndex(tNode,lView);if(-1!==existingInjectorIndex)return existingInjectorIndex;const tView=lView[TVIEW];tView.firstCreatePass&&(tNode.injectorIndex=lView.length,insertBloom(tView.data,tNode),insertBloom(lView,null),insertBloom(tView.blueprint,null));const parentLoc=getParentInjectorLocation(tNode,lView),injectorIndex=tNode.injectorIndex;if(hasParentInjector(parentLoc)){const parentIndex=getParentInjectorIndex(parentLoc),parentLView=getParentInjectorView(parentLoc,lView),parentData=parentLView[TVIEW].data;for(let i=0;i<8;i++)lView[injectorIndex+i]=parentLView[parentIndex+i]|parentData[parentIndex+i]}return lView[injectorIndex+8]=parentLoc,injectorIndex}function insertBloom(arr,footer){arr.push(0,0,0,0,0,0,0,0,footer)}function getInjectorIndex(tNode,lView){return-1===tNode.injectorIndex||tNode.parent&&tNode.parent.injectorIndex===tNode.injectorIndex||null===lView[tNode.injectorIndex+8]?-1:(ngDevMode&&assertIndexInRange(lView,tNode.injectorIndex),tNode.injectorIndex)}function getParentInjectorLocation(tNode,lView){if(tNode.parent&&-1!==tNode.parent.injectorIndex)return tNode.parent.injectorIndex;let declarationViewOffset=0,parentTNode=null,lViewCursor=lView;for(;null!==lViewCursor;){if(parentTNode=getTNodeFromLView(lViewCursor),null===parentTNode)return NO_PARENT_INJECTOR;if(ngDevMode&&parentTNode&&assertTNodeForLView(parentTNode,lViewCursor[DECLARATION_VIEW]),declarationViewOffset++,lViewCursor=lViewCursor[DECLARATION_VIEW],-1!==parentTNode.injectorIndex)return parentTNode.injectorIndex|declarationViewOffset<<16}return NO_PARENT_INJECTOR}function diPublicInInjector(injectorIndex,tView,token){!function bloomAdd(injectorIndex,tView,type){let id;ngDevMode&&assertEqual(tView.firstCreatePass,!0,"expected firstCreatePass to be true"),"string"==typeof type?id=type.charCodeAt(0)||0:type.hasOwnProperty(NG_ELEMENT_ID)&&(id=type[NG_ELEMENT_ID]),null==id&&(id=type[NG_ELEMENT_ID]=nextNgElementId++);const bloomHash=id&BLOOM_MASK,mask=1<>BLOOM_BUCKET_BITS)]|=mask}(injectorIndex,tView,token)}function notFoundValueOrThrow(notFoundValue,token,flags){if(flags&InjectFlags.Optional||void 0!==notFoundValue)return notFoundValue;throwProviderNotFoundError(token,"NodeInjector")}function lookupTokenUsingModuleInjector(lView,token,flags,notFoundValue){if(flags&InjectFlags.Optional&&void 0===notFoundValue&&(notFoundValue=null),!(flags&(InjectFlags.Self|InjectFlags.Host))){const moduleInjector=lView[INJECTOR],previousInjectImplementation=setInjectImplementation(void 0);try{return moduleInjector?moduleInjector.get(token,notFoundValue,flags&InjectFlags.Optional):injectRootLimpMode(token,notFoundValue,flags&InjectFlags.Optional)}finally{setInjectImplementation(previousInjectImplementation)}}return notFoundValueOrThrow(notFoundValue,token,flags)}function getOrCreateInjectable(tNode,lView,token,flags=InjectFlags.Default,notFoundValue){if(null!==tNode){if(2048&lView[FLAGS]&&!(flags&InjectFlags.Self)){const embeddedInjectorValue=function lookupTokenUsingEmbeddedInjector(tNode,lView,token,flags,notFoundValue){let currentTNode=tNode,currentLView=lView;for(;null!==currentTNode&&null!==currentLView&&2048¤tLView[FLAGS]&&!(512¤tLView[FLAGS]);){ngDevMode&&assertTNodeForLView(currentTNode,currentLView);const nodeInjectorValue=lookupTokenUsingNodeInjector(currentTNode,currentLView,token,flags|InjectFlags.Self,NOT_FOUND);if(nodeInjectorValue!==NOT_FOUND)return nodeInjectorValue;let parentTNode=currentTNode.parent;if(!parentTNode){const embeddedViewInjector=currentLView[EMBEDDED_VIEW_INJECTOR];if(embeddedViewInjector){const embeddedViewInjectorValue=embeddedViewInjector.get(token,NOT_FOUND,flags);if(embeddedViewInjectorValue!==NOT_FOUND)return embeddedViewInjectorValue}parentTNode=getTNodeFromLView(currentLView),currentLView=currentLView[DECLARATION_VIEW]}currentTNode=parentTNode}return notFoundValue}(tNode,lView,token,flags,NOT_FOUND);if(embeddedInjectorValue!==NOT_FOUND)return embeddedInjectorValue}const value=lookupTokenUsingNodeInjector(tNode,lView,token,flags,NOT_FOUND);if(value!==NOT_FOUND)return value}return lookupTokenUsingModuleInjector(lView,token,flags,notFoundValue)}function lookupTokenUsingNodeInjector(tNode,lView,token,flags,notFoundValue){const bloomHash=function bloomHashBitOrFactory(token){if(ngDevMode&&assertDefined(token,"token must be defined"),"string"==typeof token)return token.charCodeAt(0)||0;const tokenId=token.hasOwnProperty(NG_ELEMENT_ID)?token[NG_ELEMENT_ID]:void 0;return"number"==typeof tokenId?tokenId>=0?tokenId&BLOOM_MASK:(ngDevMode&&assertEqual(tokenId,-1,"Expecting to get Special Injector Id"),createNodeInjector):tokenId}(token);if("function"==typeof bloomHash){if(!enterDI(lView,tNode,flags))return flags&InjectFlags.Host?notFoundValueOrThrow(notFoundValue,token,flags):lookupTokenUsingModuleInjector(lView,token,flags,notFoundValue);try{let value;if(ngDevMode?runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(),getLView()),token,(()=>{value=bloomHash(flags),null!=value&&emitInstanceCreatedByInjectorEvent(value)})):value=bloomHash(flags),null!=value||flags&InjectFlags.Optional)return value;throwProviderNotFoundError(token)}finally{leaveDI()}}else if("number"==typeof bloomHash){let previousTView=null,injectorIndex=getInjectorIndex(tNode,lView),parentLocation=NO_PARENT_INJECTOR,hostTElementNode=flags&InjectFlags.Host?lView[DECLARATION_COMPONENT_VIEW][T_HOST]:null;for((-1===injectorIndex||flags&InjectFlags.SkipSelf)&&(parentLocation=-1===injectorIndex?getParentInjectorLocation(tNode,lView):lView[injectorIndex+8],parentLocation!==NO_PARENT_INJECTOR&&shouldSearchParent(flags,!1)?(previousTView=lView[TVIEW],injectorIndex=getParentInjectorIndex(parentLocation),lView=getParentInjectorView(parentLocation,lView)):injectorIndex=-1);-1!==injectorIndex;){ngDevMode&&assertNodeInjector(lView,injectorIndex);const tView=lView[TVIEW];if(ngDevMode&&assertTNodeForLView(tView.data[injectorIndex+8],lView),bloomHasToken(bloomHash,injectorIndex,tView.data)){const instance=searchTokensOnInjector(injectorIndex,lView,token,previousTView,flags,hostTElementNode);if(instance!==NOT_FOUND)return instance}parentLocation=lView[injectorIndex+8],parentLocation!==NO_PARENT_INJECTOR&&shouldSearchParent(flags,lView[TVIEW].data[injectorIndex+8]===hostTElementNode)&&bloomHasToken(bloomHash,injectorIndex,lView)?(previousTView=tView,injectorIndex=getParentInjectorIndex(parentLocation),lView=getParentInjectorView(parentLocation,lView)):injectorIndex=-1}}return notFoundValue}function searchTokensOnInjector(injectorIndex,lView,token,previousTView,flags,hostTElementNode){const currentTView=lView[TVIEW],tNode=currentTView.data[injectorIndex+8],injectableIdx=locateDirectiveOrProvider(tNode,currentTView,token,null==previousTView?isComponentHost(tNode)&&includeViewProviders:previousTView!=currentTView&&!!(3&tNode.type),flags&InjectFlags.Host&&hostTElementNode===tNode);return null!==injectableIdx?getNodeInjectable(lView,currentTView,injectableIdx,tNode):NOT_FOUND}function locateDirectiveOrProvider(tNode,tView,token,canAccessViewProviders,isHostSpecialCase){const nodeProviderIndexes=tNode.providerIndexes,tInjectables=tView.data,injectablesStart=1048575&nodeProviderIndexes,directivesStart=tNode.directiveStart,directiveEnd=tNode.directiveEnd,cptViewProvidersCount=nodeProviderIndexes>>20,endIndex=isHostSpecialCase?injectablesStart+cptViewProvidersCount:directiveEnd;for(let i=canAccessViewProviders?injectablesStart:injectablesStart+cptViewProvidersCount;i=directivesStart&&providerTokenOrDef.type===token)return i}if(isHostSpecialCase){const dirDef=tInjectables[directivesStart];if(dirDef&&isComponentDef(dirDef)&&dirDef.type===token)return directivesStart}return null}function getNodeInjectable(lView,tView,index,tNode){let value=lView[index];const tData=tView.data;if(function isFactory(obj){return obj instanceof NodeInjectorFactory}(value)){const factory=value;factory.resolving&&throwCyclicDependencyError(stringifyForError(tData[index]));const previousIncludeViewProviders=setIncludeViewProviders(factory.canSeeViewProviders);let prevInjectContext;if(factory.resolving=!0,ngDevMode){const token=tData[index].type||tData[index];prevInjectContext=setInjectorProfilerContext({injector:new NodeInjector(tNode,lView),token})}const previousInjectImplementation=factory.injectImpl?setInjectImplementation(factory.injectImpl):null,success=enterDI(lView,tNode,InjectFlags.Default);ngDevMode&&assertEqual(success,!0,"Because flags do not contain `SkipSelf' we expect this to always succeed.");try{value=lView[index]=factory.factory(void 0,tData,lView,tNode),ngDevMode&&emitInstanceCreatedByInjectorEvent(value),tView.firstCreatePass&&index>=tNode.directiveStart&&(ngDevMode&&function assertDirectiveDef(obj){void 0!==obj.type&&null!=obj.selectors&&void 0!==obj.inputs||throwError("Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.")}(tData[index]),function registerPreOrderHooks(directiveIndex,directiveDef,tView){ngDevMode&&assertFirstCreatePass(tView);const{ngOnChanges,ngOnInit,ngDoCheck}=directiveDef.type.prototype;if(ngOnChanges){const wrappedOnChanges=NgOnChangesFeatureImpl(directiveDef);(tView.preOrderHooks??=[]).push(directiveIndex,wrappedOnChanges),(tView.preOrderCheckHooks??=[]).push(directiveIndex,wrappedOnChanges)}ngOnInit&&(tView.preOrderHooks??=[]).push(0-directiveIndex,ngOnInit),ngDoCheck&&((tView.preOrderHooks??=[]).push(directiveIndex,ngDoCheck),(tView.preOrderCheckHooks??=[]).push(directiveIndex,ngDoCheck))}(index,tData[index],tView))}finally{ngDevMode&&setInjectorProfilerContext(prevInjectContext),null!==previousInjectImplementation&&setInjectImplementation(previousInjectImplementation),setIncludeViewProviders(previousIncludeViewProviders),factory.resolving=!1,leaveDI()}}return value}function bloomHasToken(bloomHash,injectorIndex,injectorView){const mask=1<>BLOOM_BUCKET_BITS)]&mask)}function shouldSearchParent(flags,isFirstHostTNode){return!(flags&InjectFlags.Self||flags&InjectFlags.Host&&isFirstHostTNode)}function getNodeInjectorLView(nodeInjector){return nodeInjector._lView}function getNodeInjectorTNode(nodeInjector){return nodeInjector._tNode}class NodeInjector{constructor(_tNode,_lView){this._tNode=_tNode,this._lView=_lView}get(token,notFoundValue,flags){return getOrCreateInjectable(this._tNode,this._lView,token,convertToBitFlags(flags),notFoundValue)}}function createNodeInjector(){return new NodeInjector(getCurrentTNode(),getLView())}function ɵɵgetInheritedFactory(type){return noSideEffects((()=>{const ownConstructor=type.prototype.constructor,ownFactory=ownConstructor[NG_FACTORY_DEF]||getFactoryOf(ownConstructor),objectPrototype=Object.prototype;let parent=Object.getPrototypeOf(type.prototype).constructor;for(;parent&&parent!==objectPrototype;){const factory=parent[NG_FACTORY_DEF]||getFactoryOf(parent);if(factory&&factory!==ownFactory)return factory;parent=Object.getPrototypeOf(parent)}return t=>new t}))}function getFactoryOf(type){return isForwardRef(type)?()=>{const factory=getFactoryOf(resolveForwardRef(type));return factory&&factory()}:getFactoryDef(type)}function getTNodeFromLView(lView){const tView=lView[TVIEW],tViewType=tView.type;return 2===tViewType?(ngDevMode&&assertDefined(tView.declTNode,"Embedded TNodes should have declaration parents."),tView.declTNode):1===tViewType?lView[T_HOST]:null}function ɵɵinjectAttribute(attrNameToInject){return function injectAttributeImpl(tNode,attrNameToInject){if(ngDevMode&&assertTNodeType(tNode,15),ngDevMode&&assertDefined(tNode,"expecting tNode"),"class"===attrNameToInject)return tNode.classes;if("style"===attrNameToInject)return tNode.styles;const attrs=tNode.attrs;if(attrs){const attrsLength=attrs.length;let i=0;for(;i({attributeName,__NG_ELEMENT_ID__:()=>ɵɵinjectAttribute(attributeName)})));let _reflect=null;function getReflect(){return _reflect=_reflect||new ReflectionCapabilities}function reflectDependencies(type){return convertDependencies(getReflect().parameters(type))}function convertDependencies(deps){return deps.map((dep=>function reflectDependency(dep){const meta={token:null,attribute:null,host:!1,optional:!1,self:!1,skipSelf:!1};if(Array.isArray(dep)&&dep.length>0)for(let j=0;j{if(null===ngInjectableDef){const compiler=getCompilerFacade({usage:0,kind:"injectable",type});ngInjectableDef=compiler.compileInjectable(angularCoreDiEnv,`ng:///${type.name}/ɵprov.js`,function getInjectableMetadata(type,srcMeta){const meta=srcMeta||{providedIn:null},compilerMeta={name:type.name,type,typeArgumentCount:0,providedIn:meta.providedIn};(isUseClassProvider(meta)||isUseFactoryProvider(meta))&&void 0!==meta.deps&&(compilerMeta.deps=convertDependencies(meta.deps));isUseClassProvider(meta)?compilerMeta.useClass=meta.useClass:!function isUseValueProvider(meta){return USE_VALUE in meta}(meta)?isUseFactoryProvider(meta)?compilerMeta.useFactory=meta.useFactory:function isUseExistingProvider(meta){return void 0!==meta.useExisting}(meta)&&(compilerMeta.useExisting=meta.useExisting):compilerMeta.useValue=meta.useValue;return compilerMeta}(type,meta))}return ngInjectableDef}}),type.hasOwnProperty(NG_FACTORY_DEF)||Object.defineProperty(type,NG_FACTORY_DEF,{get:()=>{if(null===ngFactoryDef){const compiler=getCompilerFacade({usage:0,kind:"injectable",type});ngFactoryDef=compiler.compileFactory(angularCoreDiEnv,`ng:///${type.name}/ɵfac.js`,{name:type.name,type,typeArgumentCount:0,deps:reflectDependencies(type),target:compiler.FactoryTarget.Injectable})}return ngFactoryDef},configurable:!0})}const USE_VALUE=getClosureSafeProperty({provide:String,useValue:getClosureSafeProperty});function isUseClassProvider(meta){return void 0!==meta.useClass}function isUseFactoryProvider(meta){return void 0!==meta.useFactory}const Injectable=makeDecorator("Injectable",void 0,void 0,void 0,((type,meta)=>compileInjectable(type,meta)));function createInjector(defType,parent=null,additionalProviders=null,name){const injector=createInjectorWithoutInjectorInstances(defType,parent,additionalProviders,name);return injector.resolveInjectorInitializers(),injector}function createInjectorWithoutInjectorInstances(defType,parent=null,additionalProviders=null,name,scopes=new Set){const providers=[additionalProviders||EMPTY_ARRAY,importProvidersFrom(defType)];return name=name||("object"==typeof defType?void 0:stringify(defType)),new R3Injector(providers,parent||getNullInjector(),name||null,scopes)}class Injector{static#_=this.THROW_IF_NOT_FOUND=THROW_IF_NOT_FOUND;static#_2=this.NULL=new NullInjector;static create(options,parent){if(Array.isArray(options))return createInjector({name:""},parent,options,"");{const name=options.name??"";return createInjector({name},options.parent,options.providers,name)}}static#_3=this.ɵprov=ɵɵdefineInjectable({token:Injector,providedIn:"any",factory:()=>ɵɵinject(INJECTOR$1)});static#_4=this.__NG_ELEMENT_ID__=-1}class HostAttributeToken{constructor(attributeName){this.attributeName=attributeName,this.__NG_ELEMENT_ID__=()=>ɵɵinjectAttribute(this.attributeName)}toString(){return`HostAttributeToken ${this.attributeName}`}}const HOST_TAG_NAME=new InjectionToken(ngDevMode?"HOST_TAG_NAME":"");HOST_TAG_NAME.__NG_ELEMENT_ID__=flags=>{const tNode=getCurrentTNode();if(null===tNode)throw new RuntimeError(204,ngDevMode&&"HOST_TAG_NAME can only be injected in directives and components during construction time (in a class constructor or as a class field initializer)");if(2&tNode.type)return tNode.value;if(flags&InjectFlags.Optional)return null;throw new RuntimeError(204,ngDevMode&&`HOST_TAG_NAME was used on ${function getDevModeNodeName(tNode){return 8&tNode.type?"an ":4&tNode.type?"an ":128&tNode.type?"an @let declaration":"a node"}(tNode)} which doesn't have an underlying element in the DOM. This is invalid, and so the dependency should be marked as optional.`)};function getOriginalError(error){return error.ngOriginalError}const SCHEDULE_IN_ROOT_ZONE_DEFAULT=!0;class DestroyRef{static#_=this.__NG_ELEMENT_ID__=injectDestroyRef;static#_2=this.__NG_ENV_ID__=injector=>injector}class NodeInjectorDestroyRef extends DestroyRef{constructor(_lView){super(),this._lView=_lView}onDestroy(callback){return storeLViewOnDestroy(this._lView,callback),()=>removeLViewOnDestroy(this._lView,callback)}}function injectDestroyRef(){return new NodeInjectorDestroyRef(getLView())}class PendingTasks{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new BehaviorSubject.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const taskId=this.taskId++;return this.pendingTasks.add(taskId),taskId}remove(taskId){this.pendingTasks.delete(taskId),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#_=this.ɵprov=ɵɵdefineInjectable({token:PendingTasks,providedIn:"root",factory:()=>new PendingTasks})}class ExperimentalPendingTasks{constructor(){this.internalPendingTasks=inject(PendingTasks)}add(){const taskId=this.internalPendingTasks.add();return()=>this.internalPendingTasks.remove(taskId)}static#_=this.ɵprov=ɵɵdefineInjectable({token:ExperimentalPendingTasks,providedIn:"root",factory:()=>new ExperimentalPendingTasks})}class EventEmitter_ extends Subject.B{constructor(isAsync=!1){super(),this.destroyRef=void 0,this.pendingTasks=void 0,this.__isAsync=isAsync,isInInjectionContext()&&(this.destroyRef=inject(DestroyRef,{optional:!0})??void 0,this.pendingTasks=inject(PendingTasks,{optional:!0})??void 0)}emit(value){const prevConsumer=setActiveConsumer(null);try{super.next(value)}finally{setActiveConsumer(prevConsumer)}}subscribe(observerOrNext,error,complete){let nextFn=observerOrNext,errorFn=error||(()=>null),completeFn=complete;if(observerOrNext&&"object"==typeof observerOrNext){const observer=observerOrNext;nextFn=observer.next?.bind(observer),errorFn=observer.error?.bind(observer),completeFn=observer.complete?.bind(observer)}this.__isAsync&&(errorFn=this.wrapInTimeout(errorFn),nextFn&&(nextFn=this.wrapInTimeout(nextFn)),completeFn&&(completeFn=this.wrapInTimeout(completeFn)));const sink=super.subscribe({next:nextFn,error:errorFn,complete:completeFn});return observerOrNext instanceof Subscription.yU&&observerOrNext.add(sink),sink}wrapInTimeout(fn){return value=>{const taskId=this.pendingTasks?.add();setTimeout((()=>{fn(value),void 0!==taskId&&this.pendingTasks?.remove(taskId)}))}}}const EventEmitter=EventEmitter_;function noop(...args){}function scheduleCallbackWithRafRace(callback){let timeoutId,animationFrameId;function cleanup(){callback=noop;try{void 0!==animationFrameId&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(animationFrameId),void 0!==timeoutId&&clearTimeout(timeoutId)}catch{}}return timeoutId=setTimeout((()=>{callback(),cleanup()})),"function"==typeof requestAnimationFrame&&(animationFrameId=requestAnimationFrame((()=>{callback(),cleanup()}))),()=>cleanup()}function scheduleCallbackWithMicrotask(callback){return queueMicrotask((()=>callback())),()=>{callback=noop}}class AsyncStackTaggingZoneSpec{constructor(namePrefix,consoleAsyncStackTaggingImpl=console){this.name="asyncStackTagging for "+namePrefix,this.createTask=consoleAsyncStackTaggingImpl?.createTask??(()=>null)}onScheduleTask(delegate,_current,target,task){return task.consoleTask=this.createTask(`Zone - ${task.source||task.type}`),delegate.scheduleTask(target,task)}onInvokeTask(delegate,_currentZone,targetZone,task,applyThis,applyArgs){let ret;return ret=task.consoleTask?task.consoleTask.run((()=>delegate.invokeTask(targetZone,task,applyThis,applyArgs))):delegate.invokeTask(targetZone,task,applyThis,applyArgs),ret}}const isAngularZoneProperty="isAngularZone",angularZoneInstanceIdProperty="isAngularZone_ID";let ngZoneInstanceId=0;class NgZone{constructor(options){this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new EventEmitter(!1),this.onMicrotaskEmpty=new EventEmitter(!1),this.onStable=new EventEmitter(!1),this.onError=new EventEmitter(!1);const{enableLongStackTrace=!1,shouldCoalesceEventChangeDetection=!1,shouldCoalesceRunChangeDetection=!1,scheduleInRootZone=SCHEDULE_IN_ROOT_ZONE_DEFAULT}=options;if("undefined"==typeof Zone)throw new RuntimeError(908,ngDevMode&&"In this configuration Angular requires Zone.js");Zone.assertZonePatched();const self=this;self._nesting=0,self._outer=self._inner=Zone.current,ngDevMode&&(self._inner=self._inner.fork(new AsyncStackTaggingZoneSpec("Angular"))),Zone.TaskTrackingZoneSpec&&(self._inner=self._inner.fork(new Zone.TaskTrackingZoneSpec)),enableLongStackTrace&&Zone.longStackTraceZoneSpec&&(self._inner=self._inner.fork(Zone.longStackTraceZoneSpec)),self.shouldCoalesceEventChangeDetection=!shouldCoalesceRunChangeDetection&&shouldCoalesceEventChangeDetection,self.shouldCoalesceRunChangeDetection=shouldCoalesceRunChangeDetection,self.callbackScheduled=!1,self.scheduleInRootZone=scheduleInRootZone,function forkInnerZoneWithAngularBehavior(zone){const delayChangeDetectionForEventsDelegate=()=>{!function delayChangeDetectionForEvents(zone){if(zone.isCheckStableRunning||zone.callbackScheduled)return;function scheduleCheckStable(){scheduleCallbackWithRafRace((()=>{zone.callbackScheduled=!1,updateMicroTaskStatus(zone),zone.isCheckStableRunning=!0,checkStable(zone),zone.isCheckStableRunning=!1}))}zone.callbackScheduled=!0,zone.scheduleInRootZone?Zone.root.run((()=>{scheduleCheckStable()})):zone._outer.run((()=>{scheduleCheckStable()}));updateMicroTaskStatus(zone)}(zone)},instanceId=ngZoneInstanceId++;zone._inner=zone._inner.fork({name:"angular",properties:{[isAngularZoneProperty]:!0,[angularZoneInstanceIdProperty]:instanceId,["isAngularZone_ID"+instanceId]:!0},onInvokeTask:(delegate,current,target,task,applyThis,applyArgs)=>{if(function shouldBeIgnoredByZone(applyArgs){return hasApplyArgsData(applyArgs,"__ignore_ng_zone__")}(applyArgs))return delegate.invokeTask(target,task,applyThis,applyArgs);try{return onEnter(zone),delegate.invokeTask(target,task,applyThis,applyArgs)}finally{(zone.shouldCoalesceEventChangeDetection&&"eventTask"===task.type||zone.shouldCoalesceRunChangeDetection)&&delayChangeDetectionForEventsDelegate(),onLeave(zone)}},onInvoke:(delegate,current,target,callback,applyThis,applyArgs,source)=>{try{return onEnter(zone),delegate.invoke(target,callback,applyThis,applyArgs,source)}finally{!zone.shouldCoalesceRunChangeDetection||zone.callbackScheduled||function isSchedulerTick(applyArgs){return hasApplyArgsData(applyArgs,"__scheduler_tick__")}(applyArgs)||delayChangeDetectionForEventsDelegate(),onLeave(zone)}},onHasTask:(delegate,current,target,hasTaskState)=>{delegate.hasTask(target,hasTaskState),current===target&&("microTask"==hasTaskState.change?(zone._hasPendingMicrotasks=hasTaskState.microTask,updateMicroTaskStatus(zone),checkStable(zone)):"macroTask"==hasTaskState.change&&(zone.hasPendingMacrotasks=hasTaskState.macroTask))},onHandleError:(delegate,current,target,error)=>(delegate.handleError(target,error),zone.runOutsideAngular((()=>zone.onError.emit(error))),!1)})}(self)}static isInAngularZone(){return"undefined"!=typeof Zone&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!NgZone.isInAngularZone())throw new RuntimeError(909,ngDevMode&&"Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(NgZone.isInAngularZone())throw new RuntimeError(909,ngDevMode&&"Expected to not be in Angular Zone, but it is!")}run(fn,applyThis,applyArgs){return this._inner.run(fn,applyThis,applyArgs)}runTask(fn,applyThis,applyArgs,name){const zone=this._inner,task=zone.scheduleEventTask("NgZoneEvent: "+name,fn,EMPTY_PAYLOAD,noop,noop);try{return zone.runTask(task,applyThis,applyArgs)}finally{zone.cancelTask(task)}}runGuarded(fn,applyThis,applyArgs){return this._inner.runGuarded(fn,applyThis,applyArgs)}runOutsideAngular(fn){return this._outer.run(fn)}}const EMPTY_PAYLOAD={};function checkStable(zone){if(0==zone._nesting&&!zone.hasPendingMicrotasks&&!zone.isStable)try{zone._nesting++,zone.onMicrotaskEmpty.emit(null)}finally{if(zone._nesting--,!zone.hasPendingMicrotasks)try{zone.runOutsideAngular((()=>zone.onStable.emit(null)))}finally{zone.isStable=!0}}}function updateMicroTaskStatus(zone){zone._hasPendingMicrotasks||(zone.shouldCoalesceEventChangeDetection||zone.shouldCoalesceRunChangeDetection)&&!0===zone.callbackScheduled?zone.hasPendingMicrotasks=!0:zone.hasPendingMicrotasks=!1}function onEnter(zone){zone._nesting++,zone.isStable&&(zone.isStable=!1,zone.onUnstable.emit(null))}function onLeave(zone){zone._nesting--,checkStable(zone)}class NoopNgZone{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new EventEmitter,this.onMicrotaskEmpty=new EventEmitter,this.onStable=new EventEmitter,this.onError=new EventEmitter}run(fn,applyThis,applyArgs){return fn.apply(applyThis,applyArgs)}runGuarded(fn,applyThis,applyArgs){return fn.apply(applyThis,applyArgs)}runOutsideAngular(fn){return fn()}runTask(fn,applyThis,applyArgs,name){return fn.apply(applyThis,applyArgs)}}function hasApplyArgsData(applyArgs,key){return!!Array.isArray(applyArgs)&&(1===applyArgs.length&&!0===applyArgs[0]?.data?.[key])}class ErrorHandler{constructor(){this._console=console}handleError(error){const originalError=this._findOriginalError(error);this._console.error("ERROR",error),originalError&&this._console.error("ORIGINAL ERROR",originalError)}_findOriginalError(error){let e=error&&getOriginalError(error);for(;e&&getOriginalError(e);)e=getOriginalError(e);return e||null}}const INTERNAL_APPLICATION_ERROR_HANDLER=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"internal error handler":"",{providedIn:"root",factory:()=>{const zone=inject(NgZone),userErrorHandler=inject(ErrorHandler);return e=>zone.runOutsideAngular((()=>userErrorHandler.handleError(e)))}});class OutputEmitterRef{constructor(){this.destroyed=!1,this.listeners=null,this.errorHandler=inject(ErrorHandler,{optional:!0}),this.destroyRef=inject(DestroyRef),this.destroyRef.onDestroy((()=>{this.destroyed=!0,this.listeners=null}))}subscribe(callback){if(this.destroyed)throw new RuntimeError(953,ngDevMode&&"Unexpected subscription to destroyed `OutputRef`. The owning directive/component is destroyed.");return(this.listeners??=[]).push(callback),{unsubscribe:()=>{const idx=this.listeners?.indexOf(callback);void 0!==idx&&-1!==idx&&this.listeners?.splice(idx,1)}}}emit(value){if(this.destroyed)throw new RuntimeError(953,ngDevMode&&"Unexpected emit for destroyed `OutputRef`. The owning directive/component is destroyed.");if(null===this.listeners)return;const previousConsumer=setActiveConsumer(null);try{for(const listenerFn of this.listeners)try{listenerFn(value)}catch(err){this.errorHandler?.handleError(err)}}finally{setActiveConsumer(previousConsumer)}}}function getOutputDestroyRef(ref){return ref.destroyRef}function output(opts){return ngDevMode&&assertInInjectionContext(output),new OutputEmitterRef}function inputFunction(initialValue,opts){return ngDevMode&&assertInInjectionContext(input),createInputSignal(initialValue,opts)}function inputRequiredFunction(opts){return ngDevMode&&assertInInjectionContext(input),createInputSignal(REQUIRED_UNSET_VALUE,opts)}const input=(inputFunction.required=inputRequiredFunction,inputFunction);function injectElementRef(){return createElementRef(getCurrentTNode(),getLView())}function createElementRef(tNode,lView){return new ElementRef(getNativeByTNode(tNode,lView))}class ElementRef{constructor(nativeElement){this.nativeElement=nativeElement}static#_=this.__NG_ELEMENT_ID__=injectElementRef}function unwrapElementRef(value){return value instanceof ElementRef?value.nativeElement:value}function symbolIterator(){return this._results[Symbol.iterator]()}class QueryList{static#_=Symbol.iterator;get changes(){return this._changes??=new EventEmitter}constructor(_emitDistinctChangesOnly=!1){this._emitDistinctChangesOnly=_emitDistinctChangesOnly,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const proto=QueryList.prototype;proto[Symbol.iterator]||(proto[Symbol.iterator]=symbolIterator)}get(index){return this._results[index]}map(fn){return this._results.map(fn)}filter(fn){return this._results.filter(fn)}find(fn){return this._results.find(fn)}reduce(fn,init){return this._results.reduce(fn,init)}forEach(fn){this._results.forEach(fn)}some(fn){return this._results.some(fn)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(resultsTree,identityAccessor){this.dirty=!1;const newResultFlat=flatten(resultsTree);(this._changesDetected=!function arrayEquals(a,b,identityAccessor){if(a.length!==b.length)return!1;for(let i=0;i=0){const native=unwrapRNode(lView[index]),context=createLContext(lView,index,native);attachPatchData(native,context),mpValue=context;break}}}}return mpValue||null}function createLContext(lView,nodeIndex,native){return new LContext(lView[ID],nodeIndex,native)}function getComponentViewByInstance(componentInstance){let lView,patchedData=readPatchedData(componentInstance);if(isLView(patchedData)){const contextLView=patchedData,nodeIndex=findViaComponent(contextLView,componentInstance);lView=getComponentLViewByIndex(nodeIndex,contextLView);const context=createLContext(contextLView,nodeIndex,lView[HOST]);context.component=componentInstance,attachPatchData(componentInstance,context),attachPatchData(context.native,context)}else{const context=patchedData,contextLView=context.lView;ngDevMode&&assertLView(contextLView),lView=getComponentLViewByIndex(context.nodeIndex,contextLView)}return lView}const MONKEY_PATCH_KEY_NAME="__ngContext__";function attachPatchData(target,data){ngDevMode&&assertDefined(target,"Target expected"),isLView(data)?(target[MONKEY_PATCH_KEY_NAME]=data[ID],function registerLView(lView){ngDevMode&&assertNumber(lView[ID],"LView must have an ID in order to be registered"),TRACKED_LVIEWS.set(lView[ID],lView)}(data)):target[MONKEY_PATCH_KEY_NAME]=data}function readPatchedData(target){ngDevMode&&assertDefined(target,"Target expected");const data=target[MONKEY_PATCH_KEY_NAME];return"number"==typeof data?getLViewById(data):data||null}function readPatchedLView(target){const value=readPatchedData(target);return value?isLView(value)?value:value.lView:null}function isComponentInstance(instance){return instance&&instance.constructor&&instance.constructor.ɵcmp}function findViaNativeElement(lView,target){const tView=lView[TVIEW];for(let i=HEADER_OFFSET;i-1?lView[directiveStart+componentOffset]:null}(context.nodeIndex,lView)}return context.component}function getContext(element){assertDomElement(element);const context=getLContext(element),lView=context?context.lView:null;return null===lView?null:lView[CONTEXT]}function getOwningComponent(elementOrDir){const context=getLContext(elementOrDir);let parent,lView=context?context.lView:null;if(null===lView)return null;for(;2===lView[TVIEW].type&&(parent=getLViewParent(lView));)lView=parent;return 512&lView[FLAGS]?null:lView[CONTEXT]}function getRootComponents(elementOrDir){const lView=readPatchedLView(elementOrDir);return null!==lView?[getRootContext(lView)]:[]}function getInjector(elementOrDir){const context=getLContext(elementOrDir),lView=context?context.lView:null;if(null===lView)return Injector.NULL;const tNode=lView[TVIEW].data[context.nodeIndex];return new NodeInjector(tNode,lView)}function getDirectives(node){if(node instanceof Text)return[];const context=getLContext(node),lView=context?context.lView:null;if(null===lView)return[];const tView=lView[TVIEW],nodeIndex=context.nodeIndex;return tView?.data[nodeIndex]?(void 0===context.directives&&(context.directives=getDirectivesAtNodeIndex(nodeIndex,lView)),null===context.directives?[]:[...context.directives]):[]}function getLocalRefs(target){const context=getLContext(target);if(null===context)return{};if(void 0===context.localRefs){const lView=context.lView;if(null===lView)return{};context.localRefs=function discoverLocalRefs(lView,nodeIndex){const tNode=lView[TVIEW].data[nodeIndex];if(tNode&&tNode.localNames){const result={};let localIndex=tNode.index+1;for(let i=0;i=0?"dom":"output",useCapture="boolean"==typeof useCaptureOrIndx&&useCaptureOrIndx;element==listenerElement&&listeners.push({element,name,callback,useCapture,type})}}return listeners.sort(sortListeners),listeners}function sortListeners(a,b){return a.name==b.name?0:a.nameDEFAULT_APP_ID}),DEFAULT_APP_ID="ng",PLATFORM_INITIALIZER=new InjectionToken(ngDevMode?"Platform Initializer":""),PLATFORM_ID=new InjectionToken(ngDevMode?"Platform ID":"",{providedIn:"platform",factory:()=>"unknown"}),PACKAGE_ROOT_URL=new InjectionToken(ngDevMode?"Application Packages Root URL":""),ANIMATION_MODULE_TYPE=new InjectionToken(ngDevMode?"AnimationModuleType":""),CSP_NONCE=new InjectionToken(ngDevMode?"CSP nonce":"",{providedIn:"root",factory:()=>getDocument().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),IMAGE_CONFIG_DEFAULTS={breakpoints:[16,32,48,64,96,128,256,384,640,750,828,1080,1200,1920,2048,3840],placeholderResolution:30,disableImageSizeWarning:!1,disableImageLazyLoadWarning:!1},IMAGE_CONFIG=new InjectionToken(ngDevMode?"ImageConfig":"",{providedIn:"root",factory:()=>IMAGE_CONFIG_DEFAULTS});function makeStateKey(key){return key}function initTransferState(){const transferState=new TransferState;return"browser"===inject(PLATFORM_ID)&&(transferState.store=function retrieveTransferredState(doc,appId){const script=doc.getElementById(appId+"-state");if(script?.textContent)try{return JSON.parse(script.textContent)}catch(e){console.warn("Exception while restoring TransferState for app "+appId,e)}return{}}(getDocument(),inject(APP_ID))),transferState}class TransferState{constructor(){this.store={},this.onSerializeCallbacks={}}static#_=this.ɵprov=ɵɵdefineInjectable({token:TransferState,providedIn:"root",factory:initTransferState});get(key,defaultValue){return void 0!==this.store[key]?this.store[key]:defaultValue}set(key,value){this.store[key]=value}remove(key){delete this.store[key]}hasKey(key){return this.store.hasOwnProperty(key)}get isEmpty(){return 0===Object.keys(this.store).length}onSerialize(key,callback){this.onSerializeCallbacks[key]=callback}toJson(){for(const key in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(key))try{this.store[key]=this.onSerializeCallbacks[key]()}catch(e){console.warn("Exception in onSerialize callback: ",e)}return JSON.stringify(this.store).replace(/null;function retrieveHydrationInfoImpl(rNode,injector,isRootView=!1){let nghAttrValue=rNode.getAttribute(NGH_ATTR_NAME);if(null==nghAttrValue)return null;const[componentViewNgh,rootViewNgh]=nghAttrValue.split("|");if(nghAttrValue=isRootView?rootViewNgh:componentViewNgh,!nghAttrValue)return null;const remainingNgh=isRootView?componentViewNgh:rootViewNgh?`|${rootViewNgh}`:"";let data={};if(""!==nghAttrValue){const transferState=injector.get(TransferState,null,{optional:!0});if(null!==transferState){data=transferState.get(NGH_DATA_KEY,[])[Number(nghAttrValue)],ngDevMode&&assertDefined(data,"Unable to retrieve hydration info from the TransferState.")}}const dehydratedView={data,firstChild:rNode.firstChild??null};return isRootView&&(dehydratedView.firstChild=rNode,setSegmentHead(dehydratedView,0,rNode.nextSibling)),remainingNgh?rNode.setAttribute(NGH_ATTR_NAME,remainingNgh):rNode.removeAttribute(NGH_ATTR_NAME),ngDevMode&&markRNodeAsClaimedByHydration(rNode,!1),ngDevMode&&ngDevMode.hydratedComponents++,dehydratedView}function retrieveHydrationInfo(rNode,injector,isRootView=!1){return _retrieveHydrationInfoImpl(rNode,injector,isRootView)}function getLNodeForHydration(viewRef){let lView=viewRef._lView;return 2===lView[TVIEW].type?null:(isRootView(lView)&&(lView=lView[HEADER_OFFSET]),lView)}var HydrationStatus;!function(HydrationStatus){HydrationStatus.Hydrated="hydrated",HydrationStatus.Skipped="skipped",HydrationStatus.Mismatched="mismatched"}(HydrationStatus||(HydrationStatus={}));const HYDRATION_INFO_KEY="__ngDebugHydrationInfo__";function patchHydrationInfo(node,info){node[HYDRATION_INFO_KEY]=info}function readHydrationInfo(node){return node[HYDRATION_INFO_KEY]??null}function markRNodeAsClaimedByHydration(node,checkIfAlreadyClaimed=!0){if(!ngDevMode)throw new Error("Calling `markRNodeAsClaimedByHydration` in prod mode is not supported and likely a mistake.");if(checkIfAlreadyClaimed&&function isRNodeClaimedForHydration(node){return readHydrationInfo(node)?.status===HydrationStatus.Hydrated}(node))throw new Error("Trying to claim a node, which was claimed already.");patchHydrationInfo(node,{status:HydrationStatus.Hydrated}),ngDevMode.hydratedNodes++}function markRNodeAsHavingHydrationMismatch(node,expectedNodeDetails=null,actualNodeDetails=null){if(!ngDevMode)throw new Error("Calling `markRNodeAsMismatchedByHydration` in prod mode is not supported and likely a mistake.");for(;node&&!getComponent$1(node);)node=node?.parentNode;node&&patchHydrationInfo(node,{status:HydrationStatus.Mismatched,expectedNodeDetails,actualNodeDetails})}function setSegmentHead(hydrationInfo,index,node){hydrationInfo.segmentHeads??={},hydrationInfo.segmentHeads[index]=node}function getSegmentHead(hydrationInfo,index){return hydrationInfo.segmentHeads?.[index]??null}function getNgContainerSize(hydrationInfo,index){const data=hydrationInfo.data;let size=data[ELEMENT_CONTAINERS]?.[index]??null;return null===size&&data[CONTAINERS]?.[index]&&(size=calcSerializedContainerSize(hydrationInfo,index)),size}function getSerializedContainerViews(hydrationInfo,index){return hydrationInfo.data[CONTAINERS]?.[index]??null}function calcSerializedContainerSize(hydrationInfo,index){const views=getSerializedContainerViews(hydrationInfo,index)??[];let numNodes=0;for(let view of views)numNodes+=view[NUM_ROOT_NODES]*(view[MULTIPLIER]??1);return numNodes}function initDisconnectedNodes(hydrationInfo){if(void 0===hydrationInfo.disconnectedNodes){const nodeIds=hydrationInfo.data[DISCONNECTED_NODES];hydrationInfo.disconnectedNodes=nodeIds?new Set(nodeIds):null}return hydrationInfo.disconnectedNodes}function isDisconnectedNode$1(hydrationInfo,index){if(void 0===hydrationInfo.disconnectedNodes){const nodeIds=hydrationInfo.data[DISCONNECTED_NODES];hydrationInfo.disconnectedNodes=nodeIds?new Set(nodeIds):null}return!!initDisconnectedNodes(hydrationInfo)?.has(index)}function processTextNodeBeforeSerialization(context,node){const el=node,corruptedTextNodes=context.corruptedTextNodes;""===el.textContent?corruptedTextNodes.set(el,"ngetn"):el.nextSibling?.nodeType===Node.TEXT_NODE&&corruptedTextNodes.set(el,"ngtns")}const IS_HYDRATION_DOM_REUSE_ENABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"IS_HYDRATION_DOM_REUSE_ENABLED":""),PRESERVE_HOST_CONTENT=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"PRESERVE_HOST_CONTENT":"",{providedIn:"root",factory:()=>false}),IS_I18N_HYDRATION_ENABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"IS_I18N_HYDRATION_ENABLED":""),IS_EVENT_REPLAY_ENABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"IS_EVENT_REPLAY_ENABLED":""),EVENT_REPLAY_ENABLED_DEFAULT=!1,IS_GLOBAL_EVENT_DELEGATION_ENABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"IS_GLOBAL_EVENT_DELEGATION_ENABLED":"");let policy$1,policy;function getPolicy$1(){if(void 0===policy$1&&(policy$1=null,_global.trustedTypes))try{policy$1=_global.trustedTypes.createPolicy("angular",{createHTML:s=>s,createScript:s=>s,createScriptURL:s=>s})}catch{}return policy$1}function trustedHTMLFromString(html){return getPolicy$1()?.createHTML(html)||html}function getPolicy(){if(void 0===policy&&(policy=null,_global.trustedTypes))try{policy=_global.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:s=>s,createScript:s=>s,createScriptURL:s=>s})}catch{}return policy}function trustedHTMLFromStringBypass(html){return getPolicy()?.createHTML(html)||html}function trustedScriptFromStringBypass(script){return getPolicy()?.createScript(script)||script}function trustedScriptURLFromStringBypass(url){return getPolicy()?.createScriptURL(url)||url}class SafeValueImpl{constructor(changingThisBreaksApplicationSecurity){this.changingThisBreaksApplicationSecurity=changingThisBreaksApplicationSecurity}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${XSS_SECURITY_URL})`}}class SafeHtmlImpl extends SafeValueImpl{getTypeName(){return"HTML"}}class SafeStyleImpl extends SafeValueImpl{getTypeName(){return"Style"}}class SafeScriptImpl extends SafeValueImpl{getTypeName(){return"Script"}}class SafeUrlImpl extends SafeValueImpl{getTypeName(){return"URL"}}class SafeResourceUrlImpl extends SafeValueImpl{getTypeName(){return"ResourceURL"}}function unwrapSafeValue(value){return value instanceof SafeValueImpl?value.changingThisBreaksApplicationSecurity:value}function allowSanitizationBypassAndThrow(value,type){const actualType=getSanitizationBypassType(value);if(null!=actualType&&actualType!==type){if("ResourceURL"===actualType&&"URL"===type)return!0;throw new Error(`Required a safe ${type}, got a ${actualType} (see ${XSS_SECURITY_URL})`)}return actualType===type}function getSanitizationBypassType(value){return value instanceof SafeValueImpl&&value.getTypeName()||null}function bypassSanitizationTrustHtml(trustedHtml){return new SafeHtmlImpl(trustedHtml)}function bypassSanitizationTrustStyle(trustedStyle){return new SafeStyleImpl(trustedStyle)}function bypassSanitizationTrustScript(trustedScript){return new SafeScriptImpl(trustedScript)}function bypassSanitizationTrustUrl(trustedUrl){return new SafeUrlImpl(trustedUrl)}function bypassSanitizationTrustResourceUrl(trustedResourceUrl){return new SafeResourceUrlImpl(trustedResourceUrl)}function getInertBodyHelper(defaultDoc){const inertDocumentHelper=new InertDocumentHelper(defaultDoc);return function isDOMParserAvailable(){try{return!!(new window.DOMParser).parseFromString(trustedHTMLFromString(""),"text/html")}catch{return!1}}()?new DOMParserHelper(inertDocumentHelper):inertDocumentHelper}class DOMParserHelper{constructor(inertDocumentHelper){this.inertDocumentHelper=inertDocumentHelper}getInertBodyElement(html){html=""+html;try{const body=(new window.DOMParser).parseFromString(trustedHTMLFromString(html),"text/html").body;return null===body?this.inertDocumentHelper.getInertBodyElement(html):(body.firstChild?.remove(),body)}catch{return null}}}class InertDocumentHelper{constructor(defaultDoc){this.defaultDoc=defaultDoc,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(html){const templateEl=this.inertDocument.createElement("template");return templateEl.innerHTML=trustedHTMLFromString(html),templateEl}}const SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function _sanitizeUrl(url){return(url=String(url)).match(SAFE_URL_PATTERN)?url:(("undefined"==typeof ngDevMode||ngDevMode)&&console.warn(`WARNING: sanitizing unsafe URL value ${url} (see ${XSS_SECURITY_URL})`),"unsafe:"+url)}function tagSet(tags){const res={};for(const t of tags.split(","))res[t]=!0;return res}function merge(...sets){const res={};for(const s of sets)for(const v in s)s.hasOwnProperty(v)&&(res[v]=!0);return res}const VOID_ELEMENTS=tagSet("area,br,col,hr,img,wbr"),OPTIONAL_END_TAG_BLOCK_ELEMENTS=tagSet("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),OPTIONAL_END_TAG_INLINE_ELEMENTS=tagSet("rp,rt"),OPTIONAL_END_TAG_ELEMENTS=merge(OPTIONAL_END_TAG_INLINE_ELEMENTS,OPTIONAL_END_TAG_BLOCK_ELEMENTS),BLOCK_ELEMENTS=merge(OPTIONAL_END_TAG_BLOCK_ELEMENTS,tagSet("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),INLINE_ELEMENTS=merge(OPTIONAL_END_TAG_INLINE_ELEMENTS,tagSet("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),VALID_ELEMENTS=merge(VOID_ELEMENTS,BLOCK_ELEMENTS,INLINE_ELEMENTS,OPTIONAL_END_TAG_ELEMENTS),URI_ATTRS=tagSet("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),HTML_ATTRS=tagSet("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),ARIA_ATTRS=tagSet("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),VALID_ATTRS=merge(URI_ATTRS,HTML_ATTRS,ARIA_ATTRS),SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS=tagSet("script,style,template");class SanitizingHtmlSerializer{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(el){let current=el.firstChild,traverseContent=!0,parentNodes=[];for(;current;)if(current.nodeType===Node.ELEMENT_NODE?traverseContent=this.startElement(current):current.nodeType===Node.TEXT_NODE?this.chars(current.nodeValue):this.sanitizedSomething=!0,traverseContent&¤t.firstChild)parentNodes.push(current),current=getFirstChild(current);else for(;current;){current.nodeType===Node.ELEMENT_NODE&&this.endElement(current);let next=getNextSibling(current);if(next){current=next;break}current=parentNodes.pop()}return this.buf.join("")}startElement(element){const tagName=getNodeName(element).toLowerCase();if(!VALID_ELEMENTS.hasOwnProperty(tagName))return this.sanitizedSomething=!0,!SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS.hasOwnProperty(tagName);this.buf.push("<"),this.buf.push(tagName);const elAttrs=element.attributes;for(let i=0;i"),!0}endElement(current){const tagName=getNodeName(current).toLowerCase();VALID_ELEMENTS.hasOwnProperty(tagName)&&!VOID_ELEMENTS.hasOwnProperty(tagName)&&(this.buf.push(""))}chars(chars){this.buf.push(encodeEntities(chars))}}function getNextSibling(node){const nextSibling=node.nextSibling;if(nextSibling&&node!==nextSibling.previousSibling)throw clobberedElementError(nextSibling);return nextSibling}function getFirstChild(node){const firstChild=node.firstChild;if(firstChild&&function isClobberedElement(parentNode,childNode){return(parentNode.compareDocumentPosition(childNode)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(node,firstChild))throw clobberedElementError(firstChild);return firstChild}function getNodeName(node){const nodeName=node.nodeName;return"string"==typeof nodeName?nodeName:"FORM"}function clobberedElementError(node){return new Error(`Failed to sanitize html because the element is clobbered: ${node.outerHTML}`)}const SURROGATE_PAIR_REGEXP=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,NON_ALPHANUMERIC_REGEXP=/([^\#-~ |!])/g;function encodeEntities(value){return value.replace(/&/g,"&").replace(SURROGATE_PAIR_REGEXP,(function(match){return"&#"+(1024*(match.charCodeAt(0)-55296)+(match.charCodeAt(1)-56320)+65536)+";"})).replace(NON_ALPHANUMERIC_REGEXP,(function(match){return"&#"+match.charCodeAt(0)+";"})).replace(//g,">")}let inertBodyHelper;function _sanitizeHtml(defaultDoc,unsafeHtmlInput){let inertBodyElement=null;try{inertBodyHelper=inertBodyHelper||getInertBodyHelper(defaultDoc);let unsafeHtml=unsafeHtmlInput?String(unsafeHtmlInput):"";inertBodyElement=inertBodyHelper.getInertBodyElement(unsafeHtml);let mXSSAttempts=5,parsedHtml=unsafeHtml;do{if(0===mXSSAttempts)throw new Error("Failed to sanitize html because the input is unstable");mXSSAttempts--,unsafeHtml=parsedHtml,parsedHtml=inertBodyElement.innerHTML,inertBodyElement=inertBodyHelper.getInertBodyElement(unsafeHtml)}while(unsafeHtml!==parsedHtml);const sanitizer=new SanitizingHtmlSerializer,safeHtml=sanitizer.sanitizeChildren(getTemplateContent(inertBodyElement)||inertBodyElement);return("undefined"==typeof ngDevMode||ngDevMode)&&sanitizer.sanitizedSomething&&console.warn(`WARNING: sanitizing HTML stripped some content, see ${XSS_SECURITY_URL}`),trustedHTMLFromString(safeHtml)}finally{if(inertBodyElement){const parent=getTemplateContent(inertBodyElement)||inertBodyElement;for(;parent.firstChild;)parent.firstChild.remove()}}}function getTemplateContent(el){return"content"in el&&function isTemplateElement(el){return el.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===el.nodeName}(el)?el.content:null}var SecurityContext;function ɵɵsanitizeHtml(unsafeHtml){const sanitizer=getSanitizer();return sanitizer?trustedHTMLFromStringBypass(sanitizer.sanitize(SecurityContext.HTML,unsafeHtml)||""):allowSanitizationBypassAndThrow(unsafeHtml,"HTML")?trustedHTMLFromStringBypass(unwrapSafeValue(unsafeHtml)):_sanitizeHtml(getDocument(),renderStringify(unsafeHtml))}function ɵɵsanitizeStyle(unsafeStyle){const sanitizer=getSanitizer();return sanitizer?sanitizer.sanitize(SecurityContext.STYLE,unsafeStyle)||"":allowSanitizationBypassAndThrow(unsafeStyle,"Style")?unwrapSafeValue(unsafeStyle):renderStringify(unsafeStyle)}function ɵɵsanitizeUrl(unsafeUrl){const sanitizer=getSanitizer();return sanitizer?sanitizer.sanitize(SecurityContext.URL,unsafeUrl)||"":allowSanitizationBypassAndThrow(unsafeUrl,"URL")?unwrapSafeValue(unsafeUrl):_sanitizeUrl(renderStringify(unsafeUrl))}function ɵɵsanitizeResourceUrl(unsafeResourceUrl){const sanitizer=getSanitizer();if(sanitizer)return trustedScriptURLFromStringBypass(sanitizer.sanitize(SecurityContext.RESOURCE_URL,unsafeResourceUrl)||"");if(allowSanitizationBypassAndThrow(unsafeResourceUrl,"ResourceURL"))return trustedScriptURLFromStringBypass(unwrapSafeValue(unsafeResourceUrl));throw new RuntimeError(904,ngDevMode&&`unsafe value used in a resource URL context (see ${XSS_SECURITY_URL})`)}function ɵɵsanitizeScript(unsafeScript){const sanitizer=getSanitizer();if(sanitizer)return trustedScriptFromStringBypass(sanitizer.sanitize(SecurityContext.SCRIPT,unsafeScript)||"");if(allowSanitizationBypassAndThrow(unsafeScript,"Script"))return trustedScriptFromStringBypass(unwrapSafeValue(unsafeScript));throw new RuntimeError(905,ngDevMode&&"unsafe value used in a script context")}function ɵɵtrustConstantHtml(html){if(ngDevMode&&(!Array.isArray(html)||!Array.isArray(html.raw)||1!==html.length))throw new Error(`Unexpected interpolation in trusted HTML constant: ${html.join("?")}`);return trustedHTMLFromString(html[0])}function ɵɵtrustConstantResourceUrl(url){if(ngDevMode&&(!Array.isArray(url)||!Array.isArray(url.raw)||1!==url.length))throw new Error(`Unexpected interpolation in trusted URL constant: ${url.join("?")}`);return function trustedScriptURLFromString(url){return getPolicy$1()?.createScriptURL(url)||url}(url[0])}function ɵɵsanitizeUrlOrResourceUrl(unsafeUrl,tag,prop){return function getUrlSanitizer(tag,prop){return"src"===prop&&("embed"===tag||"frame"===tag||"iframe"===tag||"media"===tag||"script"===tag)||"href"===prop&&("base"===tag||"link"===tag)?ɵɵsanitizeResourceUrl:ɵɵsanitizeUrl}(tag,prop)(unsafeUrl)}function getSanitizer(){const lView=getLView();return lView&&lView[ENVIRONMENT].sanitizer}!function(SecurityContext){SecurityContext[SecurityContext.NONE=0]="NONE",SecurityContext[SecurityContext.HTML=1]="HTML",SecurityContext[SecurityContext.STYLE=2]="STYLE",SecurityContext[SecurityContext.SCRIPT=3]="SCRIPT",SecurityContext[SecurityContext.URL=4]="URL",SecurityContext[SecurityContext.RESOURCE_URL=5]="RESOURCE_URL"}(SecurityContext||(SecurityContext={}));const COMMENT_DISALLOWED=/^>|^->||--!>|)/g,COMMENT_DELIMITER_ESCAPED="​$1​";function escapeCommentText(value){return value.replace(COMMENT_DISALLOWED,(text=>text.replace(COMMENT_DELIMITER,COMMENT_DELIMITER_ESCAPED)))}function normalizeDebugBindingName(name){return name=function camelCaseToDashCase(input){return input.replace(CAMEL_CASE_REGEXP,((...m)=>"-"+m[1].toLowerCase()))}(name.replace(/[$@]/g,"_")),`ng-reflect-${name}`}const CAMEL_CASE_REGEXP=/([A-Z])/g;const CUSTOM_ELEMENTS_SCHEMA={name:"custom-elements"},NO_ERRORS_SCHEMA={name:"no-errors-schema"};let shouldThrowErrorOnUnknownElement=!1;function ɵsetUnknownElementStrictMode(shouldThrow){shouldThrowErrorOnUnknownElement=shouldThrow}function ɵgetUnknownElementStrictMode(){return shouldThrowErrorOnUnknownElement}let shouldThrowErrorOnUnknownProperty=!1;function ɵsetUnknownPropertyStrictMode(shouldThrow){shouldThrowErrorOnUnknownProperty=shouldThrow}function ɵgetUnknownPropertyStrictMode(){return shouldThrowErrorOnUnknownProperty}function handleUnknownPropertyError(propName,tagName,nodeType,lView){tagName||4!==nodeType||(tagName="ng-template");const isHostStandalone=isHostComponentStandalone(lView);let message=`Can't bind to '${propName}' since it isn't a known property of '${tagName}'${getTemplateLocationDetails(lView)}.`;const schemas=`'${isHostStandalone?"@Component":"@NgModule"}.schemas'`,importLocation=isHostStandalone?"included in the '@Component.imports' of this component":"a part of an @NgModule where this component is declared";if(KNOWN_CONTROL_FLOW_DIRECTIVES.has(propName)){message+=`\nIf the '${propName}' is an Angular control flow directive, please make sure that either the '${KNOWN_CONTROL_FLOW_DIRECTIVES.get(propName)}' directive or the 'CommonModule' is ${importLocation}.`}else message+=`\n1. If '${tagName}' is an Angular component and it has the '${propName}' input, then verify that it is ${importLocation}.`,tagName&&tagName.indexOf("-")>-1?(message+=`\n2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas} of this component to suppress this message.`,message+=`\n3. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`):message+=`\n2. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`;reportUnknownPropertyError(message)}function reportUnknownPropertyError(message){if(shouldThrowErrorOnUnknownProperty)throw new RuntimeError(303,message);console.error(formatRuntimeError(303,message))}function getDeclarationComponentDef(lView){!ngDevMode&&throwError("Must never be called in production mode");const context=lView[DECLARATION_COMPONENT_VIEW][CONTEXT];return context&&context.constructor?getComponentDef(context.constructor):null}function isHostComponentStandalone(lView){!ngDevMode&&throwError("Must never be called in production mode");const componentDef=getDeclarationComponentDef(lView);return!!componentDef?.standalone}function getTemplateLocationDetails(lView){!ngDevMode&&throwError("Must never be called in production mode");const hostComponentDef=getDeclarationComponentDef(lView),componentClassName=hostComponentDef?.type?.name;return componentClassName?` (used in the '${componentClassName}' component template)`:""}const KNOWN_CONTROL_FLOW_DIRECTIVES=new Map([["ngIf","NgIf"],["ngFor","NgFor"],["ngSwitchCase","NgSwitchCase"],["ngSwitchDefault","NgSwitchDefault"]]);function matchingSchemas(schemas,tagName){if(null!==schemas)for(let i=0;i-1)return!0}return!1}function ɵɵresolveWindow(element){return element.ownerDocument.defaultView}function ɵɵresolveDocument(element){return element.ownerDocument}function ɵɵresolveBody(element){return element.ownerDocument.body}const INTERPOLATION_DELIMITER="�";function maybeUnwrapFn(value){return value instanceof Function?value():value}function isPlatformBrowser(injector){return"browser"===(injector??inject(Injector)).get(PLATFORM_ID)}const VALUE_STRING_LENGTH_LIMIT=200;function assertComponentDef(type){if(!getComponentDef(type))throw new RuntimeError(906,`The ${stringifyForError(type)} is not an Angular component, make sure it has the \`@Component\` decorator.`)}function throwMultipleComponentError(tNode,first,second){throw new RuntimeError(-300,`Multiple components match node with tagname ${tNode.value}: ${stringifyForError(first)} and ${stringifyForError(second)}`)}function formatValue(value){let strValue=String(value);try{(Array.isArray(value)||"[object Object]"===strValue)&&(strValue=JSON.stringify(value))}catch(error){}return strValue.length>VALUE_STRING_LENGTH_LIMIT?strValue.substring(0,VALUE_STRING_LENGTH_LIMIT)+"…":strValue}function constructDetailsForInterpolation(lView,rootIndex,expressionIndex,meta,changedValue){const[propName,prefix,...chunks]=meta.split(INTERPOLATION_DELIMITER);let oldValue=prefix,newValue=prefix;for(let i=0;i0&&(lContainer[indexInContainer-1][NEXT]=viewToDetach[NEXT]);const removedLView=removeFromArray(lContainer,CONTAINER_HEADER_OFFSET+removeIndex);!function removeViewFromDOM(tView,lView){detachViewFromDOM(tView,lView),lView[HOST]=null,lView[T_HOST]=null}(viewToDetach[TVIEW],viewToDetach);const lQueries=removedLView[QUERIES];null!==lQueries&&lQueries.detachView(removedLView[TVIEW]),viewToDetach[PARENT]=null,viewToDetach[NEXT]=null,viewToDetach[FLAGS]&=-129}return viewToDetach}function destroyLView(tView,lView){if(!(256&lView[FLAGS])){const renderer=lView[RENDERER];renderer.destroyNode&&applyView(tView,lView,renderer,3,null,null),function destroyViewTree(rootView){let lViewOrLContainer=rootView[CHILD_HEAD];if(!lViewOrLContainer)return cleanUpView(rootView[TVIEW],rootView);for(;lViewOrLContainer;){let next=null;if(isLView(lViewOrLContainer))next=lViewOrLContainer[CHILD_HEAD];else{ngDevMode&&assertLContainer(lViewOrLContainer);const firstView=lViewOrLContainer[CONTAINER_HEADER_OFFSET];firstView&&(next=firstView)}if(!next){for(;lViewOrLContainer&&!lViewOrLContainer[NEXT]&&lViewOrLContainer!==rootView;)isLView(lViewOrLContainer)&&cleanUpView(lViewOrLContainer[TVIEW],lViewOrLContainer),lViewOrLContainer=lViewOrLContainer[PARENT];null===lViewOrLContainer&&(lViewOrLContainer=rootView),isLView(lViewOrLContainer)&&cleanUpView(lViewOrLContainer[TVIEW],lViewOrLContainer),next=lViewOrLContainer&&lViewOrLContainer[NEXT]}lViewOrLContainer=next}}(lView)}}function cleanUpView(tView,lView){if(256&lView[FLAGS])return;const prevConsumer=setActiveConsumer(null);try{lView[FLAGS]&=-129,lView[FLAGS]|=256,lView[REACTIVE_TEMPLATE_CONSUMER]&&consumerDestroy(lView[REACTIVE_TEMPLATE_CONSUMER]),executeOnDestroys(tView,lView),processCleanups(tView,lView),1===lView[TVIEW].type&&(ngDevMode&&ngDevMode.rendererDestroy++,lView[RENDERER].destroy());const declarationContainer=lView[DECLARATION_LCONTAINER];if(null!==declarationContainer&&isLContainer(lView[PARENT])){declarationContainer!==lView[PARENT]&&detachMovedView(declarationContainer,lView);const lQueries=lView[QUERIES];null!==lQueries&&lQueries.detachView(tView)}unregisterLView(lView)}finally{setActiveConsumer(prevConsumer)}}function processCleanups(tView,lView){ngDevMode&&assertNotReactive(processCleanups.name);const tCleanup=tView.cleanup,lCleanup=lView[CLEANUP];if(null!==tCleanup)for(let i=0;i=0?lCleanup[targetIdx]():lCleanup[-targetIdx].unsubscribe(),i+=2}else{const context=lCleanup[tCleanup[i+1]];tCleanup[i].call(context)}null!==lCleanup&&(lView[CLEANUP]=null);const destroyHooks=lView[ON_DESTROY_HOOKS];if(null!==destroyHooks){lView[ON_DESTROY_HOOKS]=null;for(let i=0;i-1){ngDevMode&&assertTNodeForLView(parentTNode,lView);const{encapsulation}=tView.data[parentTNode.directiveStart+componentOffset];if(encapsulation===ViewEncapsulation$1.None||encapsulation===ViewEncapsulation$1.Emulated)return null}return getNativeByTNode(parentTNode,lView)}}function nativeInsertBefore(renderer,parent,child,beforeNode,isMove){ngDevMode&&ngDevMode.rendererInsertBefore++,renderer.insertBefore(parent,child,beforeNode,isMove)}function nativeAppendChild(renderer,parent,child){ngDevMode&&ngDevMode.rendererAppendChild++,ngDevMode&&assertDefined(parent,"parent node must be defined"),renderer.appendChild(parent,child)}function nativeAppendOrInsertBefore(renderer,parent,child,beforeNode,isMove){null!==beforeNode?nativeInsertBefore(renderer,parent,child,beforeNode,isMove):nativeAppendChild(renderer,parent,child)}function nativeParentNode(renderer,node){return renderer.parentNode(node)}function getInsertInFrontOfRNode(parentTNode,currentTNode,lView){return _getInsertInFrontOfRNodeWithI18n(parentTNode,currentTNode,lView)}function getInsertInFrontOfRNodeWithNoI18n(parentTNode,currentTNode,lView){return 40&parentTNode.type?getNativeByTNode(parentTNode,lView):null}!function(RendererStyleFlags2){RendererStyleFlags2[RendererStyleFlags2.Important=1]="Important",RendererStyleFlags2[RendererStyleFlags2.DashCase=2]="DashCase"}(RendererStyleFlags2||(RendererStyleFlags2={}));let _processI18nInsertBefore,_getInsertInFrontOfRNodeWithI18n=getInsertInFrontOfRNodeWithNoI18n;function setI18nHandling(getInsertInFrontOfRNodeWithI18n,processI18nInsertBefore){_getInsertInFrontOfRNodeWithI18n=getInsertInFrontOfRNodeWithI18n,_processI18nInsertBefore=processI18nInsertBefore}function appendChild(tView,lView,childRNode,childTNode){const parentRNode=getParentRElement(tView,childTNode,lView),renderer=lView[RENDERER],anchorNode=getInsertInFrontOfRNode(childTNode.parent||lView[T_HOST],childTNode,lView);if(null!=parentRNode)if(Array.isArray(childRNode))for(let i=0;i) must have projection slots defined.")}(lView),componentHost.projection[slotIdx]}return null}function getBeforeNodeForView(viewIndexInContainer,lContainer){const nextViewIndex=CONTAINER_HEADER_OFFSET+viewIndexInContainer+1;if(nextViewIndexHEADER_OFFSET&&selectIndexInternal(tView,lView,HEADER_OFFSET,!!ngDevMode&&isInCheckNoChangesMode());profiler(isUpdatePhase?2:0,context),templateFn(rf,context)}finally{setSelectedIndex(prevSelectedIndex);profiler(isUpdatePhase?3:1,context)}}function executeContentQueries(tView,tNode,lView){if(isContentQueryHost(tNode)){const prevConsumer=setActiveConsumer(null);try{const start=tNode.directiveStart,end=tNode.directiveEnd;for(let directiveIndex=start;directiveIndexnull;function applyRootElementTransformImpl(rootElement){hasSkipHydrationAttrOnRElement(rootElement)?clearElementContents(rootElement):function processTextNodeMarkersBeforeHydration(node){const doc=getDocument(),commentNodesIterator=doc.createNodeIterator(node,NodeFilter.SHOW_COMMENT,{acceptNode(node){const content=function getTextNodeContent(node){return node.textContent?.replace(/\s/gm,"")}(node);return"ngetn"===content||"ngtns"===content?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let currentNode;const nodes=[];for(;currentNode=commentNodesIterator.nextNode();)nodes.push(currentNode);for(const node of nodes)"ngetn"===node.textContent?node.replaceWith(doc.createTextNode("")):node.remove()}(rootElement)}function captureNodeBindings(mode,aliasMap,directiveIndex,bindingsResult,hostDirectiveAliasMap){for(let publicName in aliasMap){if(!aliasMap.hasOwnProperty(publicName))continue;const value=aliasMap[publicName];if(void 0===value)continue;let internalName;bindingsResult??={};let inputFlags=InputFlags.None;Array.isArray(value)?(internalName=value[0],inputFlags=value[1]):internalName=value;let finalPublicName=publicName;if(null!==hostDirectiveAliasMap){if(!hostDirectiveAliasMap.hasOwnProperty(publicName))continue;finalPublicName=hostDirectiveAliasMap[publicName]}0===mode?addPropertyBinding(bindingsResult,directiveIndex,finalPublicName,internalName,inputFlags):addPropertyBinding(bindingsResult,directiveIndex,finalPublicName,internalName)}return bindingsResult}function addPropertyBinding(bindings,directiveIndex,publicName,internalName,inputFlags){let values;bindings.hasOwnProperty(publicName)?(values=bindings[publicName]).push(directiveIndex,internalName):values=bindings[publicName]=[directiveIndex,internalName],void 0!==inputFlags&&values.push(inputFlags)}function elementPropertyInternal(tView,tNode,lView,propName,value,renderer,sanitizer,nativeOnly){ngDevMode&&assertNotSame(value,NO_CHANGE,"Incoming value should never be NO_CHANGE.");const element=getNativeByTNode(tNode,lView);let dataValue,inputData=tNode.inputs;!nativeOnly&&null!=inputData&&(dataValue=inputData[propName])?(setInputsForProperty(tView,lView,dataValue,propName,value),isComponentHost(tNode)&&function markDirtyIfOnPush(lView,viewIndex){ngDevMode&&assertLView(lView);const childComponentLView=getComponentLViewByIndex(viewIndex,lView);16&childComponentLView[FLAGS]||(childComponentLView[FLAGS]|=64)}(lView,tNode.index),ngDevMode&&function setNgReflectProperties(lView,element,type,dataValue,value){if(7&type)for(let i=0;i0;){const value=hostBindingOpCodes[--i];if("number"==typeof value&&value<0)return value}return 0})(hostBindingOpCodes)!=elementIndx&&hostBindingOpCodes.push(elementIndx),hostBindingOpCodes.push(directiveIdx,directiveVarsIdx,hostBindings)}}(tView,tNode,directiveIndex,allocExpando(tView,lView,def.hostVars,NO_CHANGE),def)}function elementAttributeInternal(tNode,lView,name,value,sanitizer,namespace){ngDevMode&&(assertNotSame(value,NO_CHANGE,"Incoming value should never be NO_CHANGE."),function validateAgainstEventAttributes(name){if(name.toLowerCase().startsWith("on")){const errorMessage=`Binding to event attribute '${name}' is disallowed for security reasons, please use (${name.slice(2)})=...`;throw new RuntimeError(306,errorMessage)}}(name),assertTNodeType(tNode,2,`Attempted to set attribute \`${name}\` on a container node. Host bindings are not valid on ng-container or ng-template.`));const element=getNativeByTNode(tNode,lView);setElementAttribute(lView[RENDERER],element,namespace,tNode.value,name,value,sanitizer)}function setElementAttribute(renderer,element,namespace,tagName,name,value,sanitizer){if(null==value)ngDevMode&&ngDevMode.rendererRemoveAttribute++,renderer.removeAttribute(element,name,namespace);else{ngDevMode&&ngDevMode.rendererSetAttribute++;const strValue=null==sanitizer?renderStringify(value):sanitizer(value,tagName||"",name);renderer.setAttribute(element,name,strValue,namespace)}}function setInputsFromAttrs(lView,directiveIndex,instance,def,tNode,initialInputData){const initialInputs=initialInputData[directiveIndex];if(null!==initialInputs)for(let i=0;i0&&(bindingMetadata+=INTERPOLATION_DELIMITER+interpolationParts.join(INTERPOLATION_DELIMITER)),tData[bindingIndex]=bindingMetadata}}function getOrCreateLViewCleanup(view){return view[CLEANUP]??=[]}function getOrCreateTViewCleanup(tView){return tView.cleanup??=[]}function loadComponentRenderer(currentDef,tNode,lView){return(null===currentDef||isComponentDef(currentDef))&&(lView=unwrapLView(lView[tNode.index])),lView[RENDERER]}function handleError(lView,error){const injector=lView[INJECTOR],errorHandler=injector?injector.get(ErrorHandler,null):null;errorHandler&&errorHandler.handleError(error)}function setInputsForProperty(tView,lView,inputs,publicName,value){for(let i=0;i0&&(lContainer[indexInContainer-1][NEXT]=lView),index{markAncestorsForTraversal(node.lView)},consumerOnSignalRead(){this.lView[REACTIVE_TEMPLATE_CONSUMER]=this}};const TEMPORARY_CONSUMER_NODE={...REACTIVE_NODE,consumerIsAlwaysLive:!0,consumerMarkedDirty:node=>{let parent=getLViewParent(node.lView);for(;parent&&!viewShouldHaveReactiveConsumer(parent[TVIEW]);)parent=getLViewParent(parent);parent&&markViewForRefresh(parent)},consumerOnSignalRead(){this.lView[REACTIVE_TEMPLATE_CONSUMER]=this}};function viewShouldHaveReactiveConsumer(tView){return 2!==tView.type}const MAXIMUM_REFRESH_RERUNS$1=100;function detectChangesInternal(lView,notifyErrorHandler=!0,mode=0){const environment=lView[ENVIRONMENT],rendererFactory=environment.rendererFactory,checkNoChangesMode=!!ngDevMode&&isInCheckNoChangesMode();checkNoChangesMode||rendererFactory.begin?.();try{!function detectChangesInViewWhileDirty(lView,mode){const lastIsRefreshingViewsValue=isRefreshingViews();try{if(setIsRefreshingViews(!0),detectChangesInView(lView,mode),ngDevMode&&isExhaustiveCheckNoChanges())return;let retries=0;for(;requiresRefreshOrTraversal(lView);){if(retries===MAXIMUM_REFRESH_RERUNS$1)throw new RuntimeError(103,ngDevMode&&"Infinite change detection while trying to refresh views. There may be components which each cause the other to require a refresh, causing an infinite loop.");retries++,detectChangesInView(lView,1)}}finally{setIsRefreshingViews(lastIsRefreshingViewsValue)}}(lView,mode)}catch(error){throw notifyErrorHandler&&handleError(lView,error),error}finally{checkNoChangesMode||(rendererFactory.end?.(),environment.inlineEffectRunner?.flush())}}function checkNoChangesInternal(lView,mode,notifyErrorHandler=!0){setIsInCheckNoChangesMode(mode);try{detectChangesInternal(lView,notifyErrorHandler)}finally{setIsInCheckNoChangesMode(CheckNoChangesMode.Off)}}function refreshView(tView,lView,templateFn,context){ngDevMode&&assertEqual(isCreationMode(lView),!1,"Should be run in update mode");const flags=lView[FLAGS];if(!(256&~flags))return;const isInCheckNoChangesPass=ngDevMode&&isInCheckNoChangesMode(),isInExhaustiveCheckNoChangesPass=ngDevMode&&isExhaustiveCheckNoChanges();!isInCheckNoChangesPass&&lView[ENVIRONMENT].inlineEffectRunner?.flush(),enterView(lView);let returnConsumerToPool=!0,prevConsumer=null,currentConsumer=null;isInCheckNoChangesPass||(viewShouldHaveReactiveConsumer(tView)?(currentConsumer=getOrBorrowReactiveLViewConsumer(lView),prevConsumer=consumerBeforeComputation(currentConsumer)):null===getActiveConsumer()?(returnConsumerToPool=!1,currentConsumer=function getOrCreateTemporaryConsumer(lView){const consumer=lView[REACTIVE_TEMPLATE_CONSUMER]??Object.create(TEMPORARY_CONSUMER_NODE);return consumer.lView=lView,consumer}(lView),prevConsumer=consumerBeforeComputation(currentConsumer)):lView[REACTIVE_TEMPLATE_CONSUMER]&&(consumerDestroy(lView[REACTIVE_TEMPLATE_CONSUMER]),lView[REACTIVE_TEMPLATE_CONSUMER]=null));try{resetPreOrderHookFlags(lView),setBindingIndex(tView.bindingStartIndex),null!==templateFn&&executeTemplate(tView,lView,templateFn,2,context);const hooksInitPhaseCompleted=!(3&~flags);if(!isInCheckNoChangesPass)if(hooksInitPhaseCompleted){const preOrderCheckHooks=tView.preOrderCheckHooks;null!==preOrderCheckHooks&&executeCheckHooks(lView,preOrderCheckHooks,null)}else{const preOrderHooks=tView.preOrderHooks;null!==preOrderHooks&&executeInitAndCheckHooks(lView,preOrderHooks,0,null),incrementInitPhaseFlags(lView,0)}if(isInExhaustiveCheckNoChangesPass||function markTransplantedViewsForRefresh(lView){for(let lContainer=getFirstLContainer(lView);null!==lContainer;lContainer=getNextLContainer(lContainer)){if(!(lContainer[FLAGS]&LContainerFlags.HasTransplantedViews))continue;const movedViews=lContainer[MOVED_VIEWS];ngDevMode&&assertDefined(movedViews,"Transplanted View flags set but missing MOVED_VIEWS");for(let i=0;i-1&&(ngDevMode&&assertEqual(index,parent.indexOf(this._lView)-CONTAINER_HEADER_OFFSET,"An attached view should be in the same position within its container as its ViewRef in the VIEW_REFS array."),detachView(parent,index),removeFromArray(viewRefs,index))}this._attachedToViewContainer=!1}destroyLView(this._lView[TVIEW],this._lView)}onDestroy(callback){storeLViewOnDestroy(this._lView,callback)}markForCheck(){markViewDirty(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[FLAGS]&=-129}reattach(){updateAncestorTraversalFlagsOnAttach(this._lView),this._lView[FLAGS]|=128}detectChanges(){this._lView[FLAGS]|=1024,detectChangesInternal(this._lView,this.notifyErrorHandler)}checkNoChanges(){ngDevMode&&checkNoChangesInternal(this._lView,CheckNoChangesMode.OnlyDirtyViews,this.notifyErrorHandler)}attachToViewContainerRef(){if(this._appRef)throw new RuntimeError(902,ngDevMode&&"This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const isRoot=isRootView(this._lView),declarationContainer=this._lView[DECLARATION_LCONTAINER];null===declarationContainer||isRoot||detachMovedView(declarationContainer,this._lView),detachViewFromDOM(this._lView[TVIEW],this._lView)}attachToAppRef(appRef){if(this._attachedToViewContainer)throw new RuntimeError(902,ngDevMode&&"This view is already attached to a ViewContainer!");this._appRef=appRef;const isRoot=isRootView(this._lView),declarationContainer=this._lView[DECLARATION_LCONTAINER];null===declarationContainer||isRoot||trackMovedView(declarationContainer,this._lView),updateAncestorTraversalFlagsOnAttach(this._lView)}}class TemplateRef{static#_=this.__NG_ELEMENT_ID__=injectTemplateRef}const ViewEngineTemplateRef=TemplateRef,R3TemplateRef=class TemplateRef extends ViewEngineTemplateRef{constructor(_declarationLView,_declarationTContainer,elementRef){super(),this._declarationLView=_declarationLView,this._declarationTContainer=_declarationTContainer,this.elementRef=elementRef}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(context,injector){return this.createEmbeddedViewImpl(context,injector)}createEmbeddedViewImpl(context,injector,dehydratedView){const embeddedLView=createAndRenderEmbeddedLView(this._declarationLView,this._declarationTContainer,context,{embeddedViewInjector:injector,dehydratedView});return new ViewRef$1(embeddedLView)}};function injectTemplateRef(){return createTemplateRef(getCurrentTNode(),getLView())}function createTemplateRef(hostTNode,hostLView){return 4&hostTNode.type?(ngDevMode&&assertDefined(hostTNode.tView,"TView must be allocated"),new R3TemplateRef(hostLView,hostTNode,createElementRef(hostTNode,hostLView))):null}const AT_THIS_LOCATION="<-- AT THIS LOCATION";function validateMatchingNode(node,nodeType,tagName,lView,tNode,isViewContainerAnchor=!1){if(!node||node.nodeType!==nodeType||node.nodeType===Node.ELEMENT_NODE&&node.tagName.toLowerCase()!==tagName?.toLowerCase()){let header=`During hydration Angular expected ${shortRNodeDescription(nodeType,tagName,null)} but `;const hostComponentDef=getDeclarationComponentDef(lView),componentClassName=hostComponentDef?.type?.name,expectedDom=describeExpectedDom(lView,tNode,isViewContainerAnchor),expected=`Angular expected this DOM:\n\n${expectedDom}\n\n`;let actual="";const componentHostElement=unwrapRNode(lView[HOST]);if(node){header+=`found ${shortRNodeDescription(node.nodeType,node.tagName??null,node.textContent??null)}.\n\n`;const actualDom=describeDomFromNode(node);actual=`Actual DOM is:\n\n${actualDom}\n\n`,markRNodeAsHavingHydrationMismatch(componentHostElement,expectedDom,actualDom)}else header+="the node was not found.\n\n",markRNodeAsHavingHydrationMismatch(componentHostElement,expectedDom);const footer=getHydrationErrorFooter(componentClassName);throw new RuntimeError(-500,header+expected+actual+"Note: attributes are only displayed to better represent the DOM but have no effect on hydration mismatches.\n\n"+footer)}}function validateSiblingNodeExists(node){if(validateNodeExists(node),!node.nextSibling){const header="During hydration Angular expected more sibling nodes to be present.\n\n",actual=`Actual DOM is:\n\n${describeDomFromNode(node)}\n\n`,message=header+actual+getHydrationErrorFooter();throw markRNodeAsHavingHydrationMismatch(node,"",actual),new RuntimeError(-501,message)}}function validateNodeExists(node,lView=null,tNode=null){if(!node){const header="During hydration, Angular expected an element to be present at this location.\n\n";let expected="",footer="";throw null!==lView&&null!==tNode&&(expected=describeExpectedDom(lView,tNode,!1),footer=getHydrationErrorFooter(),markRNodeAsHavingHydrationMismatch(unwrapRNode(lView[HOST]),expected,"")),new RuntimeError(-502,`${header}${expected}\n\n${footer}`)}}function nodeNotFoundAtPathError(host,path){const header=`During hydration Angular was unable to locate a node using the "${path}" path, starting from the ${describeRNode(host)} node.\n\n`,footer=getHydrationErrorFooter();throw markRNodeAsHavingHydrationMismatch(host),new RuntimeError(-502,header+footer)}function unsupportedProjectionOfDomNodes(rNode){const actual=`${describeDomFromNode(rNode)}\n\n`;return new RuntimeError(-503,"During serialization, Angular detected DOM nodes that were created outside of Angular context and provided as projectable nodes (likely via `ViewContainerRef.createComponent` or `createComponent` APIs). Hydration is not supported for such cases, consider refactoring the code to avoid this pattern or using `ngSkipHydration` on the host element of the component.\n\n"+actual+"Note: attributes are only displayed to better represent the DOM but have no effect on hydration mismatches.\n\n")}const internalAttrs=new Set(["ngh","ng-version","ng-server-context"]);function describeTNode(tNode,innerContent="…"){switch(tNode.type){case 1:return`#text${tNode.value?`(${tNode.value})`:""}`;case 2:const attrs=function stringifyTNodeAttrs(tNode){const results=[];if(tNode.attrs)for(let i=0;i${innerContent}`;case 8:return"\x3c!-- ng-container --\x3e";case 4:return"\x3c!-- container --\x3e";default:return`#node(${function getFriendlyStringFromTNodeType(tNodeType){switch(tNodeType){case 4:return"view container";case 2:return"element";case 8:return"ng-container";case 32:return"icu";case 64:return"i18n";case 16:return"projection";case 1:return"text";case 128:return"@let";default:return""}}(tNode.type)})`}}function describeRNode(rNode,innerContent="…"){const node=rNode;switch(node.nodeType){case Node.ELEMENT_NODE:const tag=node.tagName.toLowerCase(),attrs=function stringifyRNodeAttrs(rNode){const results=[];for(let i=0;i${innerContent}`;case Node.TEXT_NODE:const content=node.textContent?shorten(node.textContent):"";return"#text"+(content?`(${content})`:"");case Node.COMMENT_NODE:return`\x3c!-- ${shorten(node.textContent??"")} --\x3e`;default:return`#node(${node.nodeType})`}}function describeExpectedDom(lView,tNode,isViewContainerAnchor){let content="";tNode.prev?(content+=" …\n",content+=" "+describeTNode(tNode.prev)+"\n"):tNode.type&&12&tNode.type&&(content+=" …\n"),isViewContainerAnchor?(content+=" "+describeTNode(tNode)+"\n",content+=` \x3c!-- container --\x3e ${AT_THIS_LOCATION}\n`):content+=" "+describeTNode(tNode)+` ${AT_THIS_LOCATION}\n`,content+=" …\n";const parentRNode=tNode.type?getParentRElement(lView[TVIEW],tNode,lView):null;return parentRNode&&(content=describeRNode(parentRNode,"\n"+content)),content}function describeDomFromNode(node){let content="";const currentNode=node;return currentNode.previousSibling&&(content+=" …\n",content+=" "+describeRNode(currentNode.previousSibling)+"\n"),content+=" "+describeRNode(currentNode)+` ${AT_THIS_LOCATION}\n`,node.nextSibling&&(content+=" …\n"),node.parentNode&&(content=describeRNode(currentNode.parentNode,"\n"+content)),content}function shortRNodeDescription(nodeType,tagName,textContent){switch(nodeType){case Node.ELEMENT_NODE:return`<${tagName.toLowerCase()}>`;case Node.TEXT_NODE:return`a text node${textContent?` (with the "${shorten(textContent)}" content)`:""}`;case Node.COMMENT_NODE:return"a comment node";default:return`#node(nodeType=${nodeType})`}}function getHydrationErrorFooter(componentClassName){return`To fix this problem:\n * check ${componentClassName?`the "${componentClassName}"`:"corresponding"} component for hydration-related issues\n * check to see if your template has valid HTML structure\n * or skip hydration by adding the \`ngSkipHydration\` attribute to its host node in a template\n\n`}function shorten(input,maxLength=50){return input?(input=function stripNewlines(input){return input.replace(/\s+/gm,"")}(input)).length>maxLength?`${input.substring(0,maxLength-1)}…`:input:""}function getInsertInFrontOfRNodeWithI18n(parentTNode,currentTNode,lView){const tNodeInsertBeforeIndex=currentTNode.insertBeforeIndex,insertBeforeIndex=Array.isArray(tNodeInsertBeforeIndex)?tNodeInsertBeforeIndex[0]:tNodeInsertBeforeIndex;return null===insertBeforeIndex?getInsertInFrontOfRNodeWithNoI18n(parentTNode,0,lView):(ngDevMode&&assertIndexInRange(lView,insertBeforeIndex),unwrapRNode(lView[insertBeforeIndex]))}function processI18nInsertBefore(renderer,childTNode,lView,childRNode,parentRElement){const tNodeInsertBeforeIndex=childTNode.insertBeforeIndex;if(Array.isArray(tNodeInsertBeforeIndex)){ngDevMode&&assertDomNode(childRNode);let i18nParent=childRNode,anchorRNode=null;if(3&childTNode.type||(anchorRNode=i18nParent,i18nParent=parentRElement),null!==i18nParent&&-1===childTNode.componentOffset)for(let i=1;i1)for(let i=previousTNodes.length-2;i>=0;i--){const existingTNode=previousTNodes[i];isI18nText(existingTNode)||isNewTNodeCreatedBefore(existingTNode,newTNode)&&null===getInsertBeforeIndex(existingTNode)&&setInsertBeforeIndex(existingTNode,newTNode.index)}}function isI18nText(tNode){return!(64&tNode.type)}function isNewTNodeCreatedBefore(existingTNode,newTNode){return isI18nText(newTNode)||existingTNode.index>newTNode.index}function getInsertBeforeIndex(tNode){const index=tNode.insertBeforeIndex;return Array.isArray(index)?index[0]:index}function setInsertBeforeIndex(tNode,value){const index=tNode.insertBeforeIndex;Array.isArray(index)?index[0]=value:(setI18nHandling(getInsertInFrontOfRNodeWithI18n,processI18nInsertBefore),tNode.insertBeforeIndex=value)}function getTIcu(tView,index){const value=tView.data[index];if(null===value||"string"==typeof value)return null;!ngDevMode||value.hasOwnProperty("tView")||value.hasOwnProperty("currentCaseLViewIndex")||throwError("We expect to get 'null'|'TIcu'|'TIcuContainer', but got: "+value);const tIcu=value.hasOwnProperty("currentCaseLViewIndex")?value:value.value;return ngDevMode&&assertTIcu(tIcu),tIcu}function createTNodePlaceholder(tView,previousTNodes,index){const tNode=createTNodeAtIndex(tView,index,64,null,null);return addTNodeAndUpdateInsertBeforeIndex(previousTNodes,tNode),tNode}function getCurrentICUCaseIndex(tIcu,lView){const currentCase=lView[tIcu.currentCaseLViewIndex];return null===currentCase?currentCase:currentCase<0?~currentCase:currentCase}function getParentFromIcuCreateOpCode(mergedCode){return mergedCode>>>17}function getRefFromIcuCreateOpCode(mergedCode){return(131070&mergedCode)>>>1}function getInstructionFromIcuCreateOpCode(mergedCode){return 1&mergedCode}function isRootTemplateMessage(subTemplateIndex){return-1===subTemplateIndex}function enterIcu(state,tIcu,lView){state.index=0;const currentCase=getCurrentICUCaseIndex(tIcu,lView);null!==currentCase?(ngDevMode&&assertNumberInRange(currentCase,0,tIcu.cases.length-1),state.removes=tIcu.remove[currentCase]):state.removes=EMPTY_ARRAY}function icuContainerIteratorNext(state){if(state.index0){const rNode=state.lView[removeOpCode];return ngDevMode&&assertDomNode(rNode),rNode}{state.stack.push(state.index,state.removes);const tIcuIndex=~removeOpCode,tIcu=state.lView[TVIEW].data[tIcuIndex];return ngDevMode&&assertTIcu(tIcu),enterIcu(state,tIcu,state.lView),icuContainerIteratorNext(state)}}return 0===state.stack.length?null:(state.removes=state.stack.pop(),state.index=state.stack.pop(),icuContainerIteratorNext(state))}function loadIcuContainerVisitor(){const _state={stack:[],index:-1};return function icuContainerIteratorStart(tIcuContainerNode,lView){for(_state.lView=lView;_state.stack.length;)_state.stack.pop();return ngDevMode&&assertTNodeForLView(tIcuContainerNode,lView),enterIcu(_state,tIcuContainerNode.value,lView),icuContainerIteratorNext.bind(null,_state)}}const REF_EXTRACTOR_REGEXP=new RegExp(`^(\\d+)*(${REFERENCE_NODE_BODY}|${REFERENCE_NODE_HOST})*(.*)`);function getNoOffsetIndex(tNode){return tNode.index-HEADER_OFFSET}function isDisconnectedNode(tNode,lView){return!(144&tNode.type)&&!!lView[tNode.index]&&isDisconnectedRNode(unwrapRNode(lView[tNode.index]))}function isDisconnectedRNode(rNode){return!!rNode&&!rNode.isConnected}function locateI18nRNodeByIndex(hydrationInfo,noOffsetIndex){const i18nNodes=hydrationInfo.i18nNodes;if(i18nNodes)return i18nNodes.get(noOffsetIndex)}function tryLocateRNodeByPath(hydrationInfo,lView,noOffsetIndex){const nodes=hydrationInfo.data[NODES],path=nodes?.[noOffsetIndex];return path?locateRNodeByPath(path,lView):null}function locateNextRNode(hydrationInfo,tView,lView,tNode){const noOffsetIndex=getNoOffsetIndex(tNode);let native=locateI18nRNodeByIndex(hydrationInfo,noOffsetIndex);if(void 0===native){const nodes=hydrationInfo.data[NODES];if(nodes?.[noOffsetIndex])native=locateRNodeByPath(nodes[noOffsetIndex],lView);else if(tView.firstChild===tNode)native=hydrationInfo.firstChild;else{const previousTNodeParent=null===tNode.prev,previousTNode=tNode.prev??tNode.parent;if(ngDevMode&&assertDefined(previousTNode,"Unexpected state: current TNode does not have a connection to the previous node or a parent node."),function isFirstElementInNgContainer(tNode){return!tNode.prev&&8===tNode.parent?.type}(tNode)){native=getSegmentHead(hydrationInfo,getNoOffsetIndex(tNode.parent))}else{let previousRElement=getNativeByTNode(previousTNode,lView);if(previousTNodeParent)native=previousRElement.firstChild;else{const noOffsetPrevSiblingIndex=getNoOffsetIndex(previousTNode),segmentHead=getSegmentHead(hydrationInfo,noOffsetPrevSiblingIndex);if(2===previousTNode.type&&segmentHead){native=siblingAfter(calcSerializedContainerSize(hydrationInfo,noOffsetPrevSiblingIndex)+1,segmentHead)}else native=previousRElement.nextSibling}}}}return native}function siblingAfter(skip,from){let currentNode=from;for(let i=0;i0&&result[lastIdx-1]===segment){const value=result[lastIdx]||1;result[lastIdx]=value+1}else result.push(segment,"")}return result.join("")}(fromNodeName,path)}function calcPathForNode(tNode,lView,excludedParentNodes){let parentIndex,parentRNode,referenceNodeName,parentTNode=tNode.parent;for(;null!==parentTNode&&(isDisconnectedNode(parentTNode,lView)||excludedParentNodes?.has(parentTNode.index));)parentTNode=parentTNode.parent;null!==parentTNode&&3&parentTNode.type?(parentIndex=parentTNode.index,parentRNode=unwrapRNode(lView[parentIndex]),referenceNodeName=renderStringify(parentIndex-HEADER_OFFSET)):(parentIndex=referenceNodeName=REFERENCE_NODE_HOST,parentRNode=lView[DECLARATION_COMPONENT_VIEW][HOST]);let rNode=unwrapRNode(lView[tNode.index]);if(44&tNode.type){const firstRNode=getFirstNativeNode(lView,tNode);firstRNode&&(rNode=firstRNode)}let path=calcPathBetween(parentRNode,rNode,referenceNodeName);if(null===path&&parentRNode!==rNode){if(path=calcPathBetween(parentRNode.ownerDocument.body,rNode,REFERENCE_NODE_BODY),null===path)throw function nodeNotFoundError(lView,tNode){const expected=`${describeExpectedDom(lView,tNode,!1)}\n\n`,footer=getHydrationErrorFooter();throw new RuntimeError(-502,"During serialization, Angular was unable to find an element in the DOM:\n\n"+expected+footer)}(lView,tNode)}return path}let _isI18nHydrationSupportEnabled=!1,_prepareI18nBlockForHydrationImpl=()=>{};function setIsI18nHydrationSupportEnabled(enabled){_isI18nHydrationSupportEnabled=enabled}function isI18nHydrationSupportEnabled(){return _isI18nHydrationSupportEnabled}function getOrComputeI18nChildren(tView,context){let i18nChildren=context.i18nChildren.get(tView);return void 0===i18nChildren&&(i18nChildren=function collectI18nChildren(tView){const children=new Set;function collectI18nViews(node){switch(children.add(node.index),node.kind){case 1:case 2:for(const childNode of node.children)collectI18nViews(childNode);break;case 3:for(const caseNodes of node.cases)for(const caseNode of caseNodes)collectI18nViews(caseNode)}}for(let i=HEADER_OFFSET;i{};function claimDehydratedIcuCaseImpl(lView,icuIndex,caseIndex){const dehydratedIcuDataMap=lView[HYDRATION]?.dehydratedIcuData;if(dehydratedIcuDataMap){const dehydratedIcuData=dehydratedIcuDataMap.get(icuIndex);dehydratedIcuData?.case===caseIndex&&dehydratedIcuDataMap.delete(icuIndex)}}function cleanupDehydratedIcuData(renderer,i18nNodes,dehydratedIcuData){for(const node of dehydratedIcuData.node.cases[dehydratedIcuData.case]){const rNode=i18nNodes.get(node.index-HEADER_OFFSET);rNode&&nativeRemoveNode(renderer,rNode,!1)}}function removeDehydratedViews(lContainer){const views=lContainer[DEHYDRATED_VIEWS]??[],renderer=lContainer[PARENT][RENDERER];for(const view of views)removeDehydratedView(view,renderer),ngDevMode&&ngDevMode.dehydratedViewsRemoved++;lContainer[DEHYDRATED_VIEWS]=EMPTY_ARRAY}function removeDehydratedView(dehydratedView,renderer){let nodesRemoved=0,currentRNode=dehydratedView.firstChild;if(currentRNode){const numNodes=dehydratedView.data[NUM_ROOT_NODES];for(;nodesRemovednull;function findMatchingDehydratedViewImpl(lContainer,template){const views=lContainer[DEHYDRATED_VIEWS];if(!template||null===views||0===views.length)return null;return views[0].data[TEMPLATE_ID]===template?views.shift():(removeDehydratedViews(lContainer),null)}function findMatchingDehydratedView(lContainer,template){return _findMatchingDehydratedViewImpl(lContainer,template)}class ChangeDetectionScheduler{}const ZONELESS_ENABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"Zoneless enabled":"",{providedIn:"root",factory:()=>!1}),PROVIDED_ZONELESS=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"Zoneless provided":"",{providedIn:"root",factory:()=>!1}),ZONELESS_SCHEDULER_DISABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"scheduler disabled":""),SCHEDULE_IN_ROOT_ZONE=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"run changes outside zone in root":"");class ComponentRef$1{}class ComponentFactory$1{}const ERROR_COMPONENT="ngComponent";class _NullComponentFactoryResolver{resolveComponentFactory(component){throw function noComponentFactoryError(component){const error=Error(`No component factory found for ${stringify(component)}.`);return error[ERROR_COMPONENT]=component,error}(component)}}class ComponentFactoryResolver$1{static#_=this.NULL=new _NullComponentFactoryResolver}class RendererFactory2{}class Renderer2{constructor(){this.destroyNode=null}static#_=this.__NG_ELEMENT_ID__=()=>function injectRenderer2(){const lView=getLView(),nodeAtIndex=getComponentLViewByIndex(getCurrentTNode().index,lView);return(isLView(nodeAtIndex)?nodeAtIndex:lView)[RENDERER]}()}class Sanitizer{static#_=this.ɵprov=ɵɵdefineInjectable({token:Sanitizer,providedIn:"root",factory:()=>null})}function isModuleWithProviders(value){return void 0!==value.ngModule}function isNgModule(value){return!!getNgModuleDef(value)}function isPipe(value){return!!getPipeDef$1(value)}function isDirective(value){return!!getDirectiveDef(value)}function isComponent(value){return!!getComponentDef(value)}function verifyStandaloneImport(depType,importingType){if(isForwardRef(depType)&&!(depType=resolveForwardRef(depType)))throw new Error(`Expected forwardRef function, imported from "${stringifyForError(importingType)}", to return a standalone entity or NgModule but got "${stringifyForError(depType)||depType}".`);if(null==getNgModuleDef(depType)){const def=getComponentDef(depType)||getDirectiveDef(depType)||getPipeDef$1(depType);if(null==def)throw isModuleWithProviders(depType)?new Error(`A module with providers was imported from "${stringifyForError(importingType)}". Modules with providers are not supported in standalone components imports.`):new Error(`The "${stringifyForError(depType)}" type, imported from "${stringifyForError(importingType)}", must be a standalone component / directive / pipe or an NgModule. Did you forget to add the required @Component / @Directive / @Pipe or @NgModule annotation?`);if(!def.standalone)throw new Error(`The "${stringifyForError(depType)}" ${function getDependencyTypeForError(type){return getComponentDef(type)?"component":getDirectiveDef(type)?"directive":getPipeDef$1(type)?"pipe":"type"}(depType)}, imported from "${stringifyForError(importingType)}", is not standalone. Did you forget to add the standalone: true flag?`)}}const USE_RUNTIME_DEPS_TRACKER_FOR_JIT=!0;class DepsTracker{constructor(){this.ownerNgModule=new Map,this.ngModulesWithSomeUnresolvedDecls=new Set,this.ngModulesScopeCache=new Map,this.standaloneComponentsScopeCache=new Map}resolveNgModulesDecls(){if(0!==this.ngModulesWithSomeUnresolvedDecls.size){for(const moduleType of this.ngModulesWithSomeUnresolvedDecls){const def=getNgModuleDef(moduleType);if(def?.declarations)for(const decl of maybeUnwrapFn(def.declarations))isComponent(decl)&&this.ownerNgModule.set(decl,moduleType)}this.ngModulesWithSomeUnresolvedDecls.clear()}}getComponentDependencies(type,rawImports){this.resolveNgModulesDecls();const def=getComponentDef(type);if(null===def)throw new Error(`Attempting to get component dependencies for a type that is not a component: ${type}`);if(def.standalone){const scope=this.getStandaloneComponentScope(type,rawImports);return scope.compilation.isPoisoned?{dependencies:[]}:{dependencies:[...scope.compilation.directives,...scope.compilation.pipes,...scope.compilation.ngModules]}}{if(!this.ownerNgModule.has(type))return{dependencies:[]};const scope=this.getNgModuleScope(this.ownerNgModule.get(type));return scope.compilation.isPoisoned?{dependencies:[]}:{dependencies:[...scope.compilation.directives,...scope.compilation.pipes]}}}registerNgModule(type,scopeInfo){if(!isNgModule(type))throw new Error(`Attempting to register a Type which is not NgModule as NgModule: ${type}`);this.ngModulesWithSomeUnresolvedDecls.add(type)}clearScopeCacheFor(type){this.ngModulesScopeCache.delete(type),this.standaloneComponentsScopeCache.delete(type)}getNgModuleScope(type){if(this.ngModulesScopeCache.has(type))return this.ngModulesScopeCache.get(type);const scope=this.computeNgModuleScope(type);return this.ngModulesScopeCache.set(type,scope),scope}computeNgModuleScope(type){const def=getNgModuleDef(type,!0),scope={exported:{directives:new Set,pipes:new Set},compilation:{directives:new Set,pipes:new Set}};for(const imported of maybeUnwrapFn(def.imports))if(isNgModule(imported)){const importedScope=this.getNgModuleScope(imported);addSet(importedScope.exported.directives,scope.compilation.directives),addSet(importedScope.exported.pipes,scope.compilation.pipes)}else{if(!isStandalone(imported)){scope.compilation.isPoisoned=!0;break}if(isDirective(imported)||isComponent(imported))scope.compilation.directives.add(imported);else{if(!isPipe(imported))throw new RuntimeError(1e3,"The standalone imported type is neither a component nor a directive nor a pipe");scope.compilation.pipes.add(imported)}}if(!scope.compilation.isPoisoned)for(const decl of maybeUnwrapFn(def.declarations)){if(isNgModule(decl)||isStandalone(decl)){scope.compilation.isPoisoned=!0;break}isPipe(decl)?scope.compilation.pipes.add(decl):scope.compilation.directives.add(decl)}for(const exported of maybeUnwrapFn(def.exports))if(isNgModule(exported)){const exportedScope=this.getNgModuleScope(exported);addSet(exportedScope.exported.directives,scope.exported.directives),addSet(exportedScope.exported.pipes,scope.exported.pipes),addSet(exportedScope.exported.directives,scope.compilation.directives),addSet(exportedScope.exported.pipes,scope.compilation.pipes)}else isPipe(exported)?scope.exported.pipes.add(exported):scope.exported.directives.add(exported);return scope}getStandaloneComponentScope(type,rawImports){if(this.standaloneComponentsScopeCache.has(type))return this.standaloneComponentsScopeCache.get(type);const ans=this.computeStandaloneComponentScope(type,rawImports);return this.standaloneComponentsScopeCache.set(type,ans),ans}computeStandaloneComponentScope(type,rawImports){const ans={compilation:{directives:new Set([type]),pipes:new Set,ngModules:new Set}};for(const rawImport of flatten(rawImports??[])){const imported=resolveForwardRef(rawImport);try{verifyStandaloneImport(imported,type)}catch(e){return ans.compilation.isPoisoned=!0,ans}if(isNgModule(imported)){ans.compilation.ngModules.add(imported);const importedScope=this.getNgModuleScope(imported);if(importedScope.exported.isPoisoned)return ans.compilation.isPoisoned=!0,ans;addSet(importedScope.exported.directives,ans.compilation.directives),addSet(importedScope.exported.pipes,ans.compilation.pipes)}else if(isPipe(imported))ans.compilation.pipes.add(imported);else{if(!isDirective(imported)&&!isComponent(imported))return ans.compilation.isPoisoned=!0,ans;ans.compilation.directives.add(imported)}}return ans}isOrphanComponent(cmp){const def=getComponentDef(cmp);return!(!def||def.standalone)&&(this.resolveNgModulesDecls(),!this.ownerNgModule.has(cmp))}}function addSet(sourceSet,targetSet){for(const m of sourceSet)targetSet.add(m)}const depsTracker=new DepsTracker;function computeStaticStyling(tNode,attrs,writeToHost){ngDevMode&&assertFirstCreatePass(getTView(),"Expecting to be called in first template pass only");let styles=writeToHost?tNode.styles:null,classes=writeToHost?tNode.classes:null,mode=0;if(null!==attrs)for(let i=0;i0&&writeDirectClass(hostRenderer,hostRNode,classes.join(" "))}}(hostRenderer,rootComponentDef,hostRNode,rootSelectorOrNode),void 0!==projectableNodes&&function projectNodes(tNode,ngContentSelectors,projectableNodes){const projection=tNode.projection=[];for(let i=0;i0;)this.remove(this.length-1)}get(index){const viewRefs=getViewRefs(this._lContainer);return null!==viewRefs&&viewRefs[index]||null}get length(){return this._lContainer.length-CONTAINER_HEADER_OFFSET}createEmbeddedView(templateRef,context,indexOrOptions){let index,injector;"number"==typeof indexOrOptions?index=indexOrOptions:null!=indexOrOptions&&(index=indexOrOptions.index,injector=indexOrOptions.injector);const dehydratedView=findMatchingDehydratedView(this._lContainer,templateRef.ssrId),viewRef=templateRef.createEmbeddedViewImpl(context||{},injector,dehydratedView);return this.insertImpl(viewRef,index,shouldAddViewToDom(this._hostTNode,dehydratedView)),viewRef}createComponent(componentFactoryOrType,indexOrOptions,injector,projectableNodes,environmentInjector){const isComponentFactory=componentFactoryOrType&&!isType(componentFactoryOrType);let index;if(isComponentFactory)ngDevMode&&assertEqual("object"!=typeof indexOrOptions,!0,"It looks like Component factory was provided as the first argument and an options object as the second argument. This combination of arguments is incompatible. You can either change the first argument to provide Component type or change the second argument to be a number (representing an index at which to insert the new component's host view into this container)"),index=indexOrOptions;else{ngDevMode&&(assertDefined(getComponentDef(componentFactoryOrType),"Provided Component class doesn't contain Component definition. Please check whether provided class has @Component decorator."),assertEqual("number"!=typeof indexOrOptions,!0,"It looks like Component type was provided as the first argument and a number (representing an index at which to insert the new component's host view into this container as the second argument. This combination of arguments is incompatible. Please use an object as the second argument instead."));const options=indexOrOptions||{};ngDevMode&&options.environmentInjector&&options.ngModuleRef&&throwError("Cannot pass both environmentInjector and ngModuleRef options to createComponent()."),index=options.index,injector=options.injector,projectableNodes=options.projectableNodes,environmentInjector=options.environmentInjector||options.ngModuleRef}const componentFactory=isComponentFactory?componentFactoryOrType:new ComponentFactory(getComponentDef(componentFactoryOrType)),contextInjector=injector||this.parentInjector;if(!environmentInjector&&null==componentFactory.ngModule){const result=(isComponentFactory?contextInjector:this.parentInjector).get(EnvironmentInjector,null);result&&(environmentInjector=result)}const componentDef=getComponentDef(componentFactory.componentType??{}),dehydratedView=findMatchingDehydratedView(this._lContainer,componentDef?.id??null),rNode=dehydratedView?.firstChild??null,componentRef=componentFactory.create(contextInjector,projectableNodes,rNode,environmentInjector);return this.insertImpl(componentRef.hostView,index,shouldAddViewToDom(this._hostTNode,dehydratedView)),componentRef}insert(viewRef,index){return this.insertImpl(viewRef,index,!0)}insertImpl(viewRef,index,addToDOM){const lView=viewRef._lView;if(ngDevMode&&viewRef.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");if(function viewAttachedToContainer(view){return isLContainer(view[PARENT])}(lView)){const prevIdx=this.indexOf(viewRef);if(-1!==prevIdx)this.detach(prevIdx);else{const prevLContainer=lView[PARENT];ngDevMode&&assertEqual(isLContainer(prevLContainer),!0,"An attached view should have its PARENT point to a container.");const prevVCRef=new R3ViewContainerRef(prevLContainer,prevLContainer[T_HOST],prevLContainer[PARENT]);prevVCRef.detach(prevVCRef.indexOf(viewRef))}}const adjustedIdx=this._adjustIndex(index),lContainer=this._lContainer;return addLViewToLContainer(lContainer,lView,adjustedIdx,addToDOM),viewRef.attachToViewContainerRef(),addToArray(getOrCreateViewRefs(lContainer),adjustedIdx,viewRef),viewRef}move(viewRef,newIndex){if(ngDevMode&&viewRef.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");return this.insert(viewRef,newIndex)}indexOf(viewRef){const viewRefsArr=getViewRefs(this._lContainer);return null!==viewRefsArr?viewRefsArr.indexOf(viewRef):-1}remove(index){const adjustedIdx=this._adjustIndex(index,-1),detachedView=detachView(this._lContainer,adjustedIdx);detachedView&&(removeFromArray(getOrCreateViewRefs(this._lContainer),adjustedIdx),destroyLView(detachedView[TVIEW],detachedView))}detach(index){const adjustedIdx=this._adjustIndex(index,-1),view=detachView(this._lContainer,adjustedIdx);return view&&null!=removeFromArray(getOrCreateViewRefs(this._lContainer),adjustedIdx)?new ViewRef$1(view):null}_adjustIndex(index,shift=0){return null==index?this.length+shift:(ngDevMode&&(assertGreaterThan(index,-1,`ViewRef index must be positive, got ${index}`),assertLessThan(index,this.length+1+shift,"index")),index)}};function getViewRefs(lContainer){return lContainer[8]}function getOrCreateViewRefs(lContainer){return lContainer[8]||(lContainer[8]=[])}function createContainerRef(hostTNode,hostLView){let lContainer;ngDevMode&&assertTNodeType(hostTNode,15);const slotValue=hostLView[hostTNode.index];return isLContainer(slotValue)?lContainer=slotValue:(lContainer=createLContainer(slotValue,hostLView,null,hostTNode),hostLView[hostTNode.index]=lContainer,addToViewTree(hostLView,lContainer)),_locateOrCreateAnchorNode(lContainer,hostLView,hostTNode,slotValue),new R3ViewContainerRef(lContainer,hostTNode,hostLView)}let _locateOrCreateAnchorNode=createAnchorNode,_populateDehydratedViewsInLContainer=()=>!1;function populateDehydratedViewsInLContainer(lContainer,tNode,hostLView){return _populateDehydratedViewsInLContainer(lContainer,tNode,hostLView)}function createAnchorNode(lContainer,hostLView,hostTNode,slotValue){if(lContainer[NATIVE])return;let commentNode;commentNode=8&hostTNode.type?unwrapRNode(slotValue):function insertAnchorNode(hostLView,hostTNode){const renderer=hostLView[RENDERER];ngDevMode&&ngDevMode.rendererCreateComment++;const commentNode=renderer.createComment(ngDevMode?"container":""),hostNative=getNativeByTNode(hostTNode,hostLView);return nativeInsertBefore(renderer,nativeParentNode(renderer,hostNative),commentNode,function nativeNextSibling(renderer,node){return renderer.nextSibling(node)}(renderer,hostNative),!1),commentNode}(hostLView,hostTNode),lContainer[NATIVE]=commentNode}function populateDehydratedViewsInLContainerImpl(lContainer,tNode,hostLView){if(lContainer[NATIVE]&&lContainer[DEHYDRATED_VIEWS])return!0;const hydrationInfo=hostLView[HYDRATION],noOffsetIndex=tNode.index-HEADER_OFFSET;if(!hydrationInfo||isInSkipHydrationBlock(tNode)||isDisconnectedNode$1(hydrationInfo,noOffsetIndex))return!1;const currentRNode=getSegmentHead(hydrationInfo,noOffsetIndex),serializedViews=hydrationInfo.data[CONTAINERS]?.[noOffsetIndex];ngDevMode&&assertDefined(serializedViews,"Unexpected state: no hydration info available for a given TNode, which represents a view container.");const[commentNode,dehydratedViews]=function locateDehydratedViewsInContainer(currentRNode,serializedViews){const dehydratedViews=[];for(const serializedView of serializedViews)for(let i=0;i<(serializedView[MULTIPLIER]??1);i++){const view={data:serializedView,firstChild:null};serializedView[NUM_ROOT_NODES]>0&&(view.firstChild=currentRNode,currentRNode=siblingAfter(serializedView[NUM_ROOT_NODES],currentRNode)),dehydratedViews.push(view)}return[currentRNode,dehydratedViews]}(currentRNode,serializedViews);return ngDevMode&&(validateMatchingNode(commentNode,Node.COMMENT_NODE,null,hostLView,tNode,!0),markRNodeAsClaimedByHydration(commentNode,!1)),lContainer[NATIVE]=commentNode,lContainer[DEHYDRATED_VIEWS]=dehydratedViews,!0}function locateOrCreateAnchorNode(lContainer,hostLView,hostTNode,slotValue){_populateDehydratedViewsInLContainer(lContainer,hostTNode,hostLView)||createAnchorNode(lContainer,hostLView,hostTNode,slotValue)}class LQuery_{constructor(queryList){this.queryList=queryList,this.matches=null}clone(){return new LQuery_(this.queryList)}setDirty(){this.queryList.setDirty()}}class LQueries_{constructor(queries=[]){this.queries=queries}createEmbeddedView(tView){const tQueries=tView.queries;if(null!==tQueries){const noOfInheritedQueries=null!==tView.contentQueries?tView.contentQueries[0]:tQueries.length,viewLQueries=[];for(let i=0;is.trim()))}(predicate):predicate}}class TQueries_{constructor(queries=[]){this.queries=queries}elementStart(tView,tNode){ngDevMode&&assertFirstCreatePass(tView,"Queries should collect results on the first template pass only");for(let i=0;i0)result.push(lViewResults[i/2]);else{const childQueryIndex=tQueryMatches[i+1],declarationLContainer=lView[-tNodeIdx];ngDevMode&&assertLContainer(declarationLContainer);for(let i=CONTAINER_HEADER_OFFSET;i(producerAccessed(node),node.value);return getter[SIGNAL]=node,getter}(initialValue),node=signalFn[SIGNAL];return options?.equal&&(node.equal=options.equal),signalFn.set=newValue=>signalSetFn(node,newValue),signalFn.update=updateFn=>function signalUpdateFn(node,updater){producerUpdatesAllowed()||throwInvalidWriteToSignalError(),signalSetFn(node,updater(node.value))}(node,updateFn),signalFn.asReadonly=signalAsReadonlyFn.bind(signalFn),ngDevMode&&(signalFn.toString=()=>`[Signal: ${signalFn()}]`),signalFn}function signalAsReadonlyFn(){const node=this[SIGNAL];if(void 0===node.readonlyFn){const readonlyFn=()=>this();readonlyFn[SIGNAL]=node,node.readonlyFn=readonlyFn}return node.readonlyFn}function isWritableSignal(value){return isSignal(value)&&"function"==typeof value.set}function createQuerySignalFn(firstOnly,required){let node;const signalFn=createComputed((()=>{node._dirtyCounter();const value=function refreshSignalQuery(node,firstOnly){const lView=node._lView,queryIndex=node._queryIndex;if(void 0===lView||void 0===queryIndex||4&lView[FLAGS])return firstOnly?void 0:EMPTY_ARRAY;const queryList=loadQueryInternal(lView,queryIndex),results=getQueryResults(lView,queryIndex);if(queryList.reset(results,unwrapElementRef),firstOnly)return queryList.first;return queryList._changesDetected||void 0===node._flatValue?node._flatValue=queryList.toArray():node._flatValue}(node,firstOnly);if(required&&void 0===value)throw new RuntimeError(-951,ngDevMode&&"Child query result is required but no value is available.");return value}));return node=signalFn[SIGNAL],node._dirtyCounter=signal(0),node._flatValue=void 0,ngDevMode&&(signalFn.toString=()=>"[Query Signal]"),signalFn}function createSingleResultOptionalQuerySignalFn(){return createQuerySignalFn(!0,!1)}function createSingleResultRequiredQuerySignalFn(){return createQuerySignalFn(!0,!0)}function createMultiResultQuerySignalFn(){return createQuerySignalFn(!1,!1)}function bindQueryToSignal(target,queryIndex){const node=target[SIGNAL];node._lView=getLView(),node._queryIndex=queryIndex,node._queryList=loadQueryInternal(node._lView,queryIndex),node._queryList.onDirty((()=>node._dirtyCounter.update((v=>v+1))))}function viewChildFn(locator,opts){return ngDevMode&&assertInInjectionContext(viewChild),createSingleResultOptionalQuerySignalFn()}function viewChildRequiredFn(locator,opts){return ngDevMode&&assertInInjectionContext(viewChild),createSingleResultRequiredQuerySignalFn()}const viewChild=(viewChildFn.required=viewChildRequiredFn,viewChildFn);function viewChildren(locator,opts){return ngDevMode&&assertInInjectionContext(viewChildren),createMultiResultQuerySignalFn()}function contentChildFn(locator,opts){return ngDevMode&&assertInInjectionContext(contentChild),createSingleResultOptionalQuerySignalFn()}function contentChildRequiredFn(locator,opts){return ngDevMode&&assertInInjectionContext(contentChildren),createSingleResultRequiredQuerySignalFn()}const contentChild=(contentChildFn.required=contentChildRequiredFn,contentChildFn);function contentChildren(locator,opts){return createMultiResultQuerySignalFn()}function createModelSignal(initialValue){const node=Object.create(INPUT_SIGNAL_NODE),emitterRef=new OutputEmitterRef;function getter(){return producerAccessed(node),assertModelSet(node.value),node.value}return node.value=initialValue,getter[SIGNAL]=node,getter.asReadonly=signalAsReadonlyFn.bind(getter),getter.set=newValue=>{node.equal(node.value,newValue)||(signalSetFn(node,newValue),emitterRef.emit(newValue))},getter.update=updateFn=>{assertModelSet(node.value),getter.set(updateFn(node.value))},getter.subscribe=emitterRef.subscribe.bind(emitterRef),getter.destroyRef=emitterRef.destroyRef,ngDevMode&&(getter.toString=()=>`[Model Signal: ${getter()}]`),getter}function assertModelSet(value){if(value===REQUIRED_UNSET_VALUE)throw new RuntimeError(952,ngDevMode&&"Model is required but no value is available yet.")}function modelFunction(initialValue){return ngDevMode&&assertInInjectionContext(model),createModelSignal(initialValue)}function modelRequiredFunction(){return ngDevMode&&assertInInjectionContext(model),createModelSignal(REQUIRED_UNSET_VALUE)}const model=(modelFunction.required=modelRequiredFunction,modelFunction);class Query{}const ContentChildren=makePropDecorator("ContentChildren",((selector,opts={})=>({selector,first:!1,isViewQuery:!1,descendants:!1,emitDistinctChangesOnly:true,...opts})),Query),ContentChild=makePropDecorator("ContentChild",((selector,opts={})=>({selector,first:!0,isViewQuery:!1,descendants:!0,...opts})),Query),ViewChildren=makePropDecorator("ViewChildren",((selector,opts={})=>({selector,first:!1,isViewQuery:!0,descendants:!0,emitDistinctChangesOnly:true,...opts})),Query),ViewChild=makePropDecorator("ViewChild",((selector,opts)=>({selector,first:!0,isViewQuery:!0,descendants:!0,...opts})),Query);function resolveComponentResources(resourceResolver){const componentResolved=[],urlMap=new Map;function cachedResourceResolve(url){let promise=urlMap.get(url);if(!promise){const resp=resourceResolver(url);urlMap.set(url,promise=resp.then(unwrapResponse))}return promise}return componentResourceResolutionQueue.forEach(((component,type)=>{const promises=[];component.templateUrl&&promises.push(cachedResourceResolve(component.templateUrl).then((template=>{component.template=template})));const styles="string"==typeof component.styles?[component.styles]:component.styles||[];if(component.styles=styles,component.styleUrl&&component.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(component.styleUrls?.length){const styleOffset=component.styles.length,styleUrls=component.styleUrls;component.styleUrls.forEach(((styleUrl,index)=>{styles.push(""),promises.push(cachedResourceResolve(styleUrl).then((style=>{styles[styleOffset+index]=style,styleUrls.splice(styleUrls.indexOf(styleUrl),1),0==styleUrls.length&&(component.styleUrls=void 0)})))}))}else component.styleUrl&&promises.push(cachedResourceResolve(component.styleUrl).then((style=>{styles.push(style),component.styleUrl=void 0})));const fullyResolved=Promise.all(promises).then((()=>function componentDefResolved(type){componentDefPendingResolution.delete(type)}(type)));componentResolved.push(fullyResolved)})),clearResolutionOfComponentResourcesQueue(),Promise.all(componentResolved).then((()=>{}))}let componentResourceResolutionQueue=new Map;const componentDefPendingResolution=new Set;function isComponentDefPendingResolution(type){return componentDefPendingResolution.has(type)}function componentNeedsResolution(component){return!!(component.templateUrl&&!component.hasOwnProperty("template")||component.styleUrls&&component.styleUrls.length||component.styleUrl)}function clearResolutionOfComponentResourcesQueue(){const old=componentResourceResolutionQueue;return componentResourceResolutionQueue=new Map,old}function restoreComponentResolutionQueue(queue){componentDefPendingResolution.clear(),queue.forEach(((_,type)=>componentDefPendingResolution.add(type))),componentResourceResolutionQueue=queue}function unwrapResponse(response){return"string"==typeof response?response:response.text()}const modules=new Map;let checkForDuplicateNgModules=!0;function registerNgModuleType(ngModuleType,id){!function assertSameOrNotExisting(id,type,incoming){if(type&&type!==incoming&&checkForDuplicateNgModules)throw new Error(`Duplicate module registered for ${id} - ${stringify(type)} vs ${stringify(type.name)}`)}(id,modules.get(id)||null,ngModuleType),modules.set(id,ngModuleType)}function getRegisteredNgModuleType(id){return modules.get(id)}function setAllowDuplicateNgModuleIdsForTest(allowDuplicates){checkForDuplicateNgModules=!allowDuplicates}function ɵɵvalidateIframeAttribute(attrValue,tagName,attrName){const lView=getLView(),tNode=getSelectedTNode(),element=getNativeByTNode(tNode,lView);if(2===tNode.type&&"iframe"===tagName.toLowerCase()){const iframe=element;iframe.src="",iframe.srcdoc=trustedHTMLFromString(""),nativeRemoveNode(lView[RENDERER],iframe);const errorMessage=ngDevMode&&`Angular has detected that the \`${attrName}\` was applied as a binding to an