{"version":3,"sources":["src/app/modules/smrt/components/current-employer/current-employer/actions.ts","src/app/modules/smrt/components/current-employer/current-employer/reducer.ts","src/app/modules/smrt/components/employer-balances/actions.ts","src/app/modules/smrt/components/employer-balances/reducer.ts","src/app/modules/smrt/layout/main/actions.ts","src/app/modules/smrt/layout/main/reducer.ts","src/app/modules/smrt/views/employment-history/actions.ts","src/app/modules/smrt/views/employment-history/reducer.ts","src/app/modules/smrt/views/lodge-claim/state.ts","src/app/modules/smrt/views/lodge-claim/actions.ts","src/app/modules/smrt/views/lodge-claim/reducer.ts","src/app/modules/smrt/views/startup/state.ts","src/app/modules/smrt/views/startup/actions.ts","src/app/modules/smrt/views/startup/reducer.ts","src/app/modules/smrt/store/smrt.reducers.ts","src/app/modules/smrt/layout/main/selectors.ts","node_modules/@angular/cdk/fesm2022/accordion.mjs","node_modules/@angular/material/fesm2022/expansion.mjs","node_modules/@angular/material/fesm2022/menu.mjs","src/app/modules/smrt/layout/footer/footer.master.ts","src/app/modules/smrt/layout/footer/footer.master.html","src/app/modules/smrt/layout/main/main.master.ts","src/app/modules/smrt/layout/main/main.master.html","src/app/modules/smrt/views/employment-history/selectors.ts","src/app/modules/smrt/views/employment-history/employment-history-view.component.ts","src/app/modules/smrt/views/employment-history/employment-history-view.component.html","src/app/modules/smrt/views/lodge-claim/selectors.ts","src/app/modules/smrt/views/lodge-claim/lodge-claim.component.ts","src/app/modules/smrt/views/lodge-claim/lodge-claim.component.html","src/app/route-guard/account-data-guard.service.ts","src/app/modules/smrt/smrt-routing.module.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\r\nimport { props } from '@ngrx/store';\r\nimport { CurrentEmploymentModel } from 'src/app/model/current-employment.model';\r\n\r\nexport const RequestAction = createAction('[Current Employer] get data', props<{ accountId: number }>());\r\nexport const ResponseAction = createAction('[Current Employer] set data', props<{ payload: CurrentEmploymentModel }>());\r\n","\r\nimport { ICurrentEmployerViewState } from './state';\r\nimport { createReducer, on, State, Action } from '@ngrx/store';\r\nimport {\r\n onNgrxForms, onNgrxFormsAction, SetValueAction\r\n} from 'ngrx-forms';\r\nimport { CurrentEmploymentModel } from 'src/app/model/current-employment.model';\r\nimport { ResponseAction } from './actions';\r\n\r\nexport const state: ICurrentEmployerViewState = {\r\n employer: new CurrentEmploymentModel()\r\n};\r\n\r\nconst reducer = createReducer(state,\r\n onNgrxForms(),\r\n onNgrxFormsAction(SetValueAction, (state, action) => {\r\n return state;\r\n }),\r\n on(ResponseAction, (state, { payload }) => {\r\n return {\r\n ...state,\r\n employer: payload\r\n };\r\n })\r\n);\r\n\r\nexport function currentEmployerViewReducer(state: any | undefined, action: Action) {\r\n return reducer(state, action);\r\n}\r\n","import { createAction } from '@ngrx/store';\r\nimport { props } from '@ngrx/store';\r\nimport { EmploymentModel } from 'src/app/model/employer.model';\r\n\r\nexport const RequestAction = createAction('[Employer Balances] get data', props<{ accountId: number }>());\r\nexport const ResponseAction = createAction('[Employer Balances] set data', props<{ payload: EmploymentModel[] }>());\r\n","\r\nimport { IEmployerBalancesState } from './state';\r\nimport { createReducer, on, Action } from '@ngrx/store';\r\nimport {\r\n onNgrxForms, onNgrxFormsAction, SetValueAction\r\n} from 'ngrx-forms';\r\nimport { ResponseAction } from './actions';\r\n\r\nexport const state: IEmployerBalancesState = {\r\n data: []\r\n};\r\n\r\nconst reducer = createReducer(state,\r\n onNgrxForms(),\r\n onNgrxFormsAction(SetValueAction, (state, action) => {\r\n return state;\r\n }),\r\n on(ResponseAction, (state, { payload }) => {\r\n return {\r\n ...state,\r\n data: payload\r\n };\r\n })\r\n);\r\n\r\nexport function employerBalancesReducer(state: any | undefined, action: Action) {\r\n return reducer(state, action);\r\n}\r\n","import { MenuModel } from './../../../../model/menu.model';\r\n// import { MemberModel } from '../../../model/member.model';\r\nimport { createAction } from '@ngrx/store';\r\nimport { props } from '@ngrx/store';\r\n\r\nexport const MainExpandedRequestAction = createAction('[Main View] expand item',\r\n props<{ menuItem: MenuModel }>());\r\n\r\n export const MainSetAnimatedPageAction = createAction('[Main View] animated');\r\n\r\n// export const MainSearchResetPageAction = createAction('[Main View] set 0 to current page');\r\n\r\n","import { IMainLayoutState } from './state';\r\nimport { createReducer, on, Action } from '@ngrx/store';\r\nimport {\r\n onNgrxForms, onNgrxFormsAction, SetValueAction\r\n} from 'ngrx-forms';\r\nimport { MainExpandedRequestAction, MainSetAnimatedPageAction } from './actions';\r\nimport { Helper } from '@ifaa-components/ui-components';\r\n\r\nexport const mainLayoutState: IMainLayoutState = {\r\n page: 0,\r\n expanded: [],\r\n animated: false\r\n};\r\nvar helper = new Helper();\r\n\r\nconst reducer = createReducer(mainLayoutState,\r\n onNgrxForms(),\r\n onNgrxFormsAction(SetValueAction, (state, action) => {\r\n return state;\r\n }),\r\n on(MainSetAnimatedPageAction, (state) => {\r\n return {\r\n ...state,\r\n animated: true\r\n };\r\n }),\r\n on(MainExpandedRequestAction, (state, { menuItem }) => {\r\n var clone = helper.clone(state);\r\n\r\n var expanded = clone.expanded.filter(x => x.id == menuItem.id);\r\n\r\n if (expanded.length == 0) {\r\n clone.expanded = [menuItem];\r\n }\r\n else {\r\n clone.expanded = clone.expanded.filter(x => x.id !== menuItem.id);\r\n }\r\n\r\n return {\r\n ...state,\r\n expanded: clone.expanded\r\n };\r\n })\r\n\r\n);\r\n\r\nexport function mainLayoutReducer(state: any | undefined, action: Action) {\r\n return reducer(state, action);\r\n}\r\n","import { createAction } from '@ngrx/store';\r\nimport { props } from '@ngrx/store';\r\nimport { EmploymentModel } from 'src/app/model/employer.model';\r\n\r\nexport const RequestAction = createAction('[Employment History view] get data', props<{ accountId: number }>());\r\nexport const ResponseAction = createAction('[Employment History view] set data', props<{ payload: EmploymentModel[] }>());\r\n\r\n\r\n\r\n","\r\nimport { IEmployerHistoryViewState } from './state';\r\nimport { createReducer, on, State, Action } from '@ngrx/store';\r\nimport {\r\n onNgrxForms, onNgrxFormsAction, SetValueAction\r\n} from 'ngrx-forms';\r\nimport { ResponseAction } from './actions';\r\n\r\nexport const viewState: IEmployerHistoryViewState = {\r\n list: []\r\n};\r\n\r\nconst reducer = createReducer(viewState,\r\n onNgrxForms(),\r\n onNgrxFormsAction(SetValueAction, (state, action) => {\r\n return state;\r\n }),\r\n on(ResponseAction, (state, { payload }) => {\r\n return {\r\n ...state,\r\n list: payload\r\n };\r\n })\r\n);\r\n\r\nexport function employerHistoryViewReducer(state: any | undefined, action: Action) {\r\n return reducer(state, action);\r\n}\r\n","import { AppFileModel } from \"@ifaa-components/ui-components\";\r\n\r\nimport { FormGroupState } from \"ngrx-forms\";\r\nimport { BankDetailsModel } from '../../../../model/bank-details.model';\r\n\r\nexport interface ILodgeClaimState {\r\n form: FormGroupState;\r\n currentStep: number;\r\n totalSteps: number;\r\n validated: boolean;\r\n lastModifiedTime: Date;\r\n}\r\n\r\nexport class LodgeClaimModel {\r\n employeeId: number = 0;\r\n taxFileNumber: string = '';\r\n hasTFN: boolean = false;\r\n amountType: number = 0;\r\n claimType: number = 0;\r\n attachments: AppFileModel[] = [new AppFileModel()];\r\n bankDetails: BankDetailsModel = new BankDetailsModel();\r\n employers: SMRTEmployerModel[] = [new SMRTEmployerModel()];\r\n waitForFinalContributions: boolean = true;\r\n workingHolidayMakerVisa: boolean = false;\r\n}\r\n\r\nexport class SMRTEmployerModel {\r\n employmentId: number = 0;\r\n employerId: number = 0;\r\n startDate: string = '';\r\n amount: number = 0;\r\n claimAmount: boolean = false;\r\n name:string = '';\r\n}\r\n\r\nexport class MemberTfnResultModel {\r\n hasTfn: boolean = false;\r\n}\r\n","import { createAction } from '@ngrx/store';\r\nimport { props } from '@ngrx/store';\r\nimport { OkModel } from 'src/app/model/ok.model';\r\nimport { SMRTEmployerModel, LodgeClaimModel, MemberTfnResultModel } from './state';\r\n\r\nexport const SubmitRequestAction = createAction('[Lodge Claim] save member details',\r\n props<{ accountId: number, payload: LodgeClaimModel }>());\r\n\r\nexport const SubmitResponseAction = createAction('[Lodge Claim] member update completed',\r\n props<{ payload: OkModel }>());\r\n\r\nexport const RemoveAttachmentByIndexAction = createAction('[Lodge Claim] remove attachment by index',\r\n props<{ index: number }>());\r\n\r\nexport const ResetFormAction = createAction('[Lodge Claim] reset');\r\nexport const NextStepAction = createAction('[Lodge Claim] next');\r\nexport const PreviousStepAction = createAction('[Lodge Claim] previous');\r\n\r\nexport const EmployerListRequestAction = createAction('[Lodge Claim] EmployerList request',\r\n props<{ accountId: number }>());\r\n\r\nexport const EmployerListResponseAction = createAction('[Lodge Claim] EmployerList response',\r\n props<{ payload: SMRTEmployerModel[] }>());\r\n\r\nexport const MemberDataRequestAction = createAction('[Lodge Claim] MemberData request', props<{ accountId: number }>());\r\nexport const MemberDataResponseAction = createAction('[Lodge Claim] MemberData request completed',\r\n props<{ payload: MemberTfnResultModel }>());\r\n\r\nexport const ValidateFormAction = createAction('[Lodge Claim] validate form');\r\n","import { ILodgeClaimState, LodgeClaimModel } from './state';\r\nimport { createReducer, on, Action } from '@ngrx/store';\r\nimport {\r\n createFormGroupState,\r\n disable,\r\n enable,\r\n formGroupReducer,\r\n FormGroupState,\r\n onNgrxForms, onNgrxFormsAction, setErrors, setValue, SetValueAction, updateGroup, validate} from 'ngrx-forms';\r\nimport { Helper } from '@ifaa-components/ui-components';\r\nimport { EmployerListResponseAction, MemberDataResponseAction, NextStepAction, PreviousStepAction, RemoveAttachmentByIndexAction, ResetFormAction, SubmitResponseAction, ValidateFormAction } from './actions';\r\nimport { AppFileModel } from \"@ifaa-components/ui-components\";\r\nimport { required } from 'ngrx-forms/validation';\r\nimport { BankDetailsModel } from 'src/app/model/bank-details.model';\r\n\r\n\r\nexport const formName = 'smrtLodgeClaimForm';\r\nvar helper = new Helper();\r\n\r\nexport const lodgeClaimState: ILodgeClaimState = {\r\n form: createFormGroupState(formName, new LodgeClaimModel()),\r\n currentStep: 0,\r\n totalSteps: 1,\r\n validated: false,\r\n lastModifiedTime: null,\r\n};\r\n\r\nexport const validateEditMemberForm0 = updateGroup({\r\n employeeId: validate(required),\r\n bankDetails: updateGroup({\r\n accountName: validate(required),\r\n bsb: validate(required),\r\n accountNumber: validate(required),\r\n }),\r\n taxFileNumber: (taxFileNumber, myForm) => {\r\n if (!myForm.value.taxFileNumber && !myForm.value.hasTFN) {\r\n return setErrors(taxFileNumber, {\r\n required: {\r\n actual: taxFileNumber,\r\n }\r\n });\r\n }\r\n else {\r\n return setErrors(taxFileNumber, {});\r\n }\r\n },\r\n amountType: (amountType, myForm) => {\r\n if (myForm.value.amountType === 0 && !myForm.value.employers.some(x => x.claimAmount)) {\r\n return setErrors(amountType, {\r\n required: {\r\n actual: amountType,\r\n }\r\n });\r\n }\r\n else {\r\n return setErrors(amountType, {});\r\n }\r\n },\r\n claimType: (claimType, myForm) => {\r\n if (myForm.value.claimType === 0) {\r\n return setErrors(claimType, {\r\n required: {\r\n actual: claimType,\r\n }\r\n });\r\n }\r\n else {\r\n return setErrors(claimType, {});\r\n }\r\n }\r\n});\r\n\r\nfunction validateStep(state: ILodgeClaimState, action) {\r\n let myForm = formGroupReducer(state.form, action);\r\n let validatedForm = null;\r\n\r\n if (state.currentStep === 0) {\r\n validatedForm = validateEditMemberForm0(myForm);\r\n }\r\n\r\n if (validatedForm) {\r\n return {\r\n ...state,\r\n form: validatedForm,\r\n validated: true\r\n };\r\n }\r\n return state;\r\n}\r\nconst reducer = createReducer(lodgeClaimState,\r\n onNgrxForms(),\r\n onNgrxFormsAction(SetValueAction, (state, action) => {\r\n state = validateStep(state, action);\r\n if (action.controlId.indexOf('attachments') > 0 && state.form.value.attachments[state.form.value.attachments.length - 1].base64) {\r\n return {\r\n ...state,\r\n form: updateGroup(state.form, { attachments: setValue([...state.form.value.attachments, new AppFileModel()])})\r\n };\r\n }\r\n\r\n return state;\r\n }),\r\n on(ValidateFormAction, (state) => {\r\n var clone = helper.clone(state)\r\n return validateStep(clone, NextStepAction);\r\n\r\n }),\r\n on(SubmitResponseAction, (state, { payload }) => {\r\n return {\r\n ...state,\r\n lastModifiedTime: new Date(),\r\n form: createFormGroupState(formName, new LodgeClaimModel())\r\n };\r\n }),\r\n on(MemberDataResponseAction, (state, { payload }) => {\r\n return {\r\n ...state,\r\n member: payload,\r\n form: updateGroup(state.form, { hasTFN: setValue(payload.hasTfn)})\r\n };\r\n }),\r\n on(EmployerListResponseAction, (state, { payload }) => {\r\n const form:FormGroupState = updateGroup(state.form, { employers: setValue(payload)})\r\n return {\r\n ...state,\r\n form: form.value.employers.length > 0 ? enable(form) : disable(form)\r\n };\r\n }),\r\n on(ResetFormAction, (state) => {\r\n return {\r\n ...state,\r\n currentStep: 0,\r\n lastModifiedTime: null,\r\n validated: false,\r\n form: createFormGroupState(formName, new LodgeClaimModel())\r\n };\r\n }),\r\n on(NextStepAction, (state) => {\r\n\r\n return {\r\n ...state,\r\n currentStep: state.currentStep + 1,\r\n validated: false\r\n };\r\n }),\r\n on(PreviousStepAction, (state) => {\r\n var clone = helper.clone(state.form.value)\r\n\r\n return {\r\n ...state,\r\n currentStep: state.currentStep - 1,\r\n validated: false,\r\n form: createFormGroupState(formName, clone)\r\n };\r\n }),\r\n on(RemoveAttachmentByIndexAction, (state, { index }) => {\r\n return {\r\n ...state,\r\n form: updateGroup(state.form, { attachments: setValue([...state.form.value.attachments.filter((_o, ind) => ind !== index)])})\r\n };\r\n })\r\n);\r\n\r\nexport function lodgeClaimReducer(state: any | undefined, action: Action) {\r\n return reducer(state, action);\r\n}\r\n","import { FormGroupState } from 'ngrx-forms';\r\nimport { LoginModel } from 'src/app/model/login.model';\r\n\r\n\r\nexport interface IStartupState {\r\n form: FormGroupState;\r\n url: string;\r\n isLoading: boolean;\r\n isUnavailable: boolean;\r\n isUnavailableMessage: string;\r\n}\r\n\r\n\r\nexport class SMRTStartupValidationModel {\r\n email = '';\r\n token = '';\r\n}\r\n\r\n\r\n","\r\nimport { createAction } from '@ngrx/store';\r\nimport { props } from '@ngrx/store';\r\nimport { LoginModel } from 'src/app/model/login.model';\r\nimport { OkModel } from 'src/app/model/ok.model';\r\nimport { SMRTStartupValidationModel } from './state';\r\n\r\nexport const StartupAction = createAction('[Startup View] validate',\r\n props<{ payload: SMRTStartupValidationModel }>());\r\n\r\nexport const StartupCompletedAction = createAction('[Startup Logged In View]validate completed',\r\n props<{ payload: string }>());\r\n\r\nexport const LoggedInAction = createAction('[Startup Logged In View] user is loggedin',\r\n props<{ payload: string }>());\r\n\r\nexport const IsLoggedInAction = createAction('[Startup Is Logged in] check');\r\n\r\nexport const CheckAvailabilityRequestAction = createAction('[Startup View] check availbility');\r\n\r\nexport const CheckAvailabilityResponseAction = createAction('[Startup View] set check availbility',\r\n props<{ payload: OkModel }>());\r\n","\r\nimport { IStartupState, SMRTStartupValidationModel } from './state';\r\n\r\nimport { createReducer, on, State, Action } from '@ngrx/store';\r\nimport {\r\n createFormGroupState, onNgrxForms, updateGroup, validate, wrapReducerWithFormStateUpdate,\r\n onNgrxFormsAction, SetValueAction, setValue\r\n} from 'ngrx-forms';\r\nimport { required, email } from 'ngrx-forms/validation';\r\nimport { CheckAvailabilityResponseAction, StartupAction, StartupCompletedAction } from './actions';\r\nimport { Helper } from '@ifaa-components/ui-components';\r\n\r\nexport const formName = 'StartupForm';\r\n\r\nexport const StartupState: IStartupState = {\r\n form: createFormGroupState(formName, new SMRTStartupValidationModel()),\r\n url: '',\r\n isLoading: false,\r\n isUnavailable: false,\r\n isUnavailableMessage: ''\r\n};\r\nvar helper = new Helper();\r\n\r\nexport const validateStartupForm = updateGroup({\r\n email: validate(required, email),\r\n});\r\n\r\nconst reducer = createReducer(StartupState,\r\n onNgrxForms(),\r\n onNgrxFormsAction(SetValueAction, (state, action) => {\r\n return state;\r\n }),\r\n on(StartupAction, (state) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }),\r\n on(CheckAvailabilityResponseAction, (state, { payload }) => {\r\n return {\r\n ...state,\r\n isUnavailable: payload.data,\r\n isUnavailableMessage: payload.message\r\n };\r\n }),\r\n on(StartupCompletedAction, (state, { payload }) => {\r\n return {\r\n ...state,\r\n url: payload,\r\n // isLoading: false\r\n };\r\n }),\r\n);\r\n\r\nconst startupReducerFormState = wrapReducerWithFormStateUpdate(\r\n reducer,\r\n s => s.form,\r\n validateStartupForm,\r\n);\r\n\r\nexport function startupReducer(state: any | undefined, action: Action) {\r\n return startupReducerFormState(state, action);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ActionReducerMap } from '@ngrx/store';\r\nimport { currentEmployerViewReducer } from '../components/current-employer/current-employer/reducer';\r\nimport { employerBalancesReducer } from '../components/employer-balances/reducer';\r\n\r\nimport { mainLayoutReducer } from '../layout/main/reducer'\r\nimport { employerHistoryViewReducer } from '../views/employment-history/reducer';\r\nimport { lodgeClaimReducer } from '../views/lodge-claim/reducer';\r\nimport { startupReducer } from '../views/startup/reducer';\r\nimport { SMRTState } from './smrt.states';\r\n\r\nexport const featureKey = 'smrt';\r\n\r\nexport const reducers = new InjectionToken>(featureKey, {\r\n factory: () => ({\r\n mainLayout: mainLayoutReducer,\r\n currentEmployer: currentEmployerViewReducer,\r\n employerHistoryViewState: employerHistoryViewReducer,\r\n employerBalancesState: employerBalancesReducer,\r\n lodgeClaim: lodgeClaimReducer,\r\n startupState: startupReducer,\r\n })\r\n});\r\n","import { featureKey } from './../../store/smrt.reducers';\r\nimport { SMRTState } from './../../store/smrt.states';\r\nimport { AppState } from './../../../../store/app.states';\r\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { IMainLayoutState } from './state';\r\n\r\nexport const memberPortalState = createFeatureSelector(featureKey);\r\n\r\nexport const mainLayout = createSelector(memberPortalState, (state) => state.mainLayout);\r\n\r\n\r\nexport const mainLayout_Expanded = createSelector(\r\n mainLayout,\r\n (state: IMainLayoutState) => state.expanded\r\n);\r\n\r\nexport const mainLayout_Animated = createSelector(\r\n mainLayout,\r\n (state: IMainLayoutState) => state.animated\r\n);\r\n\r\n// export const mainSearchMembers_CurrentPage = createSelector(\r\n// mainSearchMembers,\r\n// (state: IMainSearchMemberState) => state.page\r\n// );\r\n\r\n// export const mainSearchMembers_CurrentElevatedAccess = createSelector(\r\n// mainSearchMembers,\r\n// (state: IMainSearchMemberState) => state.currentElevatedAccess\r\n// );\r\n\r\n// export const mainSearchMembers_Form = createSelector(\r\n// mainSearchMembers,\r\n// (state: IMainSearchMemberState) => state.form\r\n// );\r\n\r\n// export const mainSearchMembers_Form_Q = createSelector(\r\n// mainSearchMembers,\r\n// (state: IMainSearchMemberState) => state.form.value.q\r\n// );\r\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, booleanAttribute, Directive, Input, ChangeDetectorRef, EventEmitter, Output, NgModule } from '@angular/core';\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { Subject, Subscription } from 'rxjs';\n\n/**\n * Injection token that can be used to reference instances of `CdkAccordion`. It serves\n * as alternative token to the actual `CdkAccordion` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_ACCORDION = /*#__PURE__*/new InjectionToken('CdkAccordion');\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\nlet CdkAccordion = /*#__PURE__*/(() => {\n class CdkAccordion {\n /** Emits when the state of the accordion changes */\n _stateChanges = new Subject();\n /** Stream that emits true/false when openAll/closeAll is triggered. */\n _openCloseAllActions = new Subject();\n /** A readonly id value to use for unique selection coordination. */\n id = inject(_IdGenerator).getId('cdk-accordion-');\n /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n multi = false;\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n openAll() {\n if (this.multi) {\n this._openCloseAllActions.next(true);\n }\n }\n /** Closes all enabled accordion items. */\n closeAll() {\n this._openCloseAllActions.next(false);\n }\n ngOnChanges(changes) {\n this._stateChanges.next(changes);\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n this._openCloseAllActions.complete();\n }\n static ɵfac = function CdkAccordion_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAccordion)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAccordion,\n selectors: [[\"cdk-accordion\"], [\"\", \"cdkAccordion\", \"\"]],\n inputs: {\n multi: [2, \"multi\", \"multi\", booleanAttribute]\n },\n exportAs: [\"cdkAccordion\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CDK_ACCORDION,\n useExisting: CdkAccordion\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n return CdkAccordion;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A basic directive expected to be extended and decorated as a component. Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\nlet CdkAccordionItem = /*#__PURE__*/(() => {\n class CdkAccordionItem {\n accordion = inject(CDK_ACCORDION, {\n optional: true,\n skipSelf: true\n });\n _changeDetectorRef = inject(ChangeDetectorRef);\n _expansionDispatcher = inject(UniqueSelectionDispatcher);\n /** Subscription to openAll/closeAll events. */\n _openCloseAllSubscription = Subscription.EMPTY;\n /** Event emitted every time the AccordionItem is closed. */\n closed = new EventEmitter();\n /** Event emitted every time the AccordionItem is opened. */\n opened = new EventEmitter();\n /** Event emitted when the AccordionItem is destroyed. */\n destroyed = new EventEmitter();\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n expandedChange = new EventEmitter();\n /** The unique AccordionItem id. */\n id = inject(_IdGenerator).getId('cdk-accordion-child-');\n /** Whether the AccordionItem is expanded. */\n get expanded() {\n return this._expanded;\n }\n set expanded(expanded) {\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n if (expanded) {\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,\n * the name value is the id of the accordion.\n */\n const accordionId = this.accordion ? this.accordion.id : this.id;\n this._expansionDispatcher.notify(this.id, accordionId);\n } else {\n this.closed.emit();\n }\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this._changeDetectorRef.markForCheck();\n }\n }\n _expanded = false;\n /** Whether the AccordionItem is disabled. */\n disabled = false;\n /** Unregister function for _expansionDispatcher. */\n _removeUniqueSelectionListener = () => {};\n constructor() {}\n ngOnInit() {\n this._removeUniqueSelectionListener = this._expansionDispatcher.listen((id, accordionId) => {\n if (this.accordion && !this.accordion.multi && this.accordion.id === accordionId && this.id !== id) {\n this.expanded = false;\n }\n });\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();\n }\n }\n /** Emits an event for the accordion item being destroyed. */\n ngOnDestroy() {\n this.opened.complete();\n this.closed.complete();\n this.destroyed.emit();\n this.destroyed.complete();\n this._removeUniqueSelectionListener();\n this._openCloseAllSubscription.unsubscribe();\n }\n /** Toggles the expanded state of the accordion item. */\n toggle() {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n /** Sets the expanded state of the accordion item to false. */\n close() {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n /** Sets the expanded state of the accordion item to true. */\n open() {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n _subscribeToOpenCloseAllActions() {\n return this.accordion._openCloseAllActions.subscribe(expanded => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n static ɵfac = function CdkAccordionItem_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAccordionItem)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAccordionItem,\n selectors: [[\"cdk-accordion-item\"], [\"\", \"cdkAccordionItem\", \"\"]],\n inputs: {\n expanded: [2, \"expanded\", \"expanded\", booleanAttribute],\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute]\n },\n outputs: {\n closed: \"closed\",\n opened: \"opened\",\n destroyed: \"destroyed\",\n expandedChange: \"expandedChange\"\n },\n exportAs: [\"cdkAccordionItem\"],\n features: [i0.ɵɵProvidersFeature([\n // Provide `CDK_ACCORDION` as undefined to prevent nested accordion items from\n // registering to the same accordion.\n {\n provide: CDK_ACCORDION,\n useValue: undefined\n }])]\n });\n }\n return CdkAccordionItem;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CdkAccordionModule = /*#__PURE__*/(() => {\n class CdkAccordionModule {\n static ɵfac = function CdkAccordionModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAccordionModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CdkAccordionModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n return CdkAccordionModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_ACCORDION, CdkAccordion, CdkAccordionItem, CdkAccordionModule };\n","import { CdkAccordionItem, CdkAccordion, CdkAccordionModule } from '@angular/cdk/accordion';\nimport { TemplatePortal, CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, TemplateRef, Directive, ViewContainerRef, ANIMATION_MODULE_TYPE, NgZone, ElementRef, Renderer2, EventEmitter, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, ContentChild, ViewChild, ChangeDetectorRef, HostAttributeToken, numberAttribute, QueryList, ContentChildren, NgModule } from '@angular/core';\nimport { _StructuralStylesLoader, MatCommonModule } from '@angular/material/core';\nimport { _IdGenerator, FocusMonitor, FocusKeyManager } from '@angular/cdk/a11y';\nimport { startWith, filter, take } from 'rxjs/operators';\nimport { ENTER, hasModifierKey, SPACE } from '@angular/cdk/keycodes';\nimport { Subject, Subscription, EMPTY, merge } from 'rxjs';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { DOCUMENT } from '@angular/common';\nimport { _CdkPrivateStyleLoader } from '@angular/cdk/private';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\n\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n */\nconst _c0 = [\"body\"];\nconst _c1 = [\"bodyWrapper\"];\nconst _c2 = [[[\"mat-expansion-panel-header\"]], \"*\", [[\"mat-action-row\"]]];\nconst _c3 = [\"mat-expansion-panel-header\", \"*\", \"mat-action-row\"];\nfunction MatExpansionPanel_ng_template_7_Template(rf, ctx) {}\nconst _c4 = [[[\"mat-panel-title\"]], [[\"mat-panel-description\"]], \"*\"];\nconst _c5 = [\"mat-panel-title\", \"mat-panel-description\", \"*\"];\nfunction MatExpansionPanelHeader_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 2);\n i0.ɵɵelement(2, \"path\", 3);\n i0.ɵɵelementEnd()();\n }\n}\nconst MAT_ACCORDION = /*#__PURE__*/new InjectionToken('MAT_ACCORDION');\n\n/**\n * Token used to provide a `MatExpansionPanel` to `MatExpansionPanelContent`.\n * Used to avoid circular imports between `MatExpansionPanel` and `MatExpansionPanelContent`.\n */\nconst MAT_EXPANSION_PANEL = /*#__PURE__*/new InjectionToken('MAT_EXPANSION_PANEL');\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\nlet MatExpansionPanelContent = /*#__PURE__*/(() => {\n class MatExpansionPanelContent {\n _template = inject(TemplateRef);\n _expansionPanel = inject(MAT_EXPANSION_PANEL, {\n optional: true\n });\n constructor() {}\n static ɵfac = function MatExpansionPanelContent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelContent)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelContent,\n selectors: [[\"ng-template\", \"matExpansionPanelContent\", \"\"]]\n });\n }\n return MatExpansionPanelContent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token that can be used to configure the default\n * options for the expansion panel component.\n */\nconst MAT_EXPANSION_PANEL_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_EXPANSION_PANEL_DEFAULT_OPTIONS');\n/**\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\nlet MatExpansionPanel = /*#__PURE__*/(() => {\n class MatExpansionPanel extends CdkAccordionItem {\n _viewContainerRef = inject(ViewContainerRef);\n _animationsDisabled = inject(ANIMATION_MODULE_TYPE, {\n optional: true\n }) === 'NoopAnimations';\n _document = inject(DOCUMENT);\n _ngZone = inject(NgZone);\n _elementRef = inject(ElementRef);\n _renderer = inject(Renderer2);\n _cleanupTransitionEnd;\n /** Whether the toggle indicator should be hidden. */\n get hideToggle() {\n return this._hideToggle || this.accordion && this.accordion.hideToggle;\n }\n set hideToggle(value) {\n this._hideToggle = value;\n }\n _hideToggle = false;\n /** The position of the expansion indicator. */\n get togglePosition() {\n return this._togglePosition || this.accordion && this.accordion.togglePosition;\n }\n set togglePosition(value) {\n this._togglePosition = value;\n }\n _togglePosition;\n /** An event emitted after the body's expansion animation happens. */\n afterExpand = new EventEmitter();\n /** An event emitted after the body's collapse animation happens. */\n afterCollapse = new EventEmitter();\n /** Stream that emits for changes in `@Input` properties. */\n _inputChanges = new Subject();\n /** Optionally defined accordion the expansion panel belongs to. */\n accordion = inject(MAT_ACCORDION, {\n optional: true,\n skipSelf: true\n });\n /** Content that will be rendered lazily. */\n _lazyContent;\n /** Element containing the panel's user-provided content. */\n _body;\n /** Element wrapping the panel body. */\n _bodyWrapper;\n /** Portal holding the user's content. */\n _portal;\n /** ID for the associated header element. Used for a11y labelling. */\n _headerId = inject(_IdGenerator).getId('mat-expansion-panel-header-');\n constructor() {\n super();\n const defaultOptions = inject(MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, {\n optional: true\n });\n this._expansionDispatcher = inject(UniqueSelectionDispatcher);\n if (defaultOptions) {\n this.hideToggle = defaultOptions.hideToggle;\n }\n }\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n _hasSpacing() {\n if (this.accordion) {\n return this.expanded && this.accordion.displayMode === 'default';\n }\n return false;\n }\n /** Gets the expanded state string. */\n _getExpandedState() {\n return this.expanded ? 'expanded' : 'collapsed';\n }\n /** Toggles the expanded state of the expansion panel. */\n toggle() {\n this.expanded = !this.expanded;\n }\n /** Sets the expanded state of the expansion panel to false. */\n close() {\n this.expanded = false;\n }\n /** Sets the expanded state of the expansion panel to true. */\n open() {\n this.expanded = true;\n }\n ngAfterContentInit() {\n if (this._lazyContent && this._lazyContent._expansionPanel === this) {\n // Render the content as soon as the panel becomes open.\n this.opened.pipe(startWith(null), filter(() => this.expanded && !this._portal), take(1)).subscribe(() => {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n });\n }\n this._setupAnimationEvents();\n }\n ngOnChanges(changes) {\n this._inputChanges.next(changes);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._cleanupTransitionEnd?.();\n this._inputChanges.complete();\n }\n /** Checks whether the expansion panel's content contains the currently-focused element. */\n _containsFocus() {\n if (this._body) {\n const focusedElement = this._document.activeElement;\n const bodyElement = this._body.nativeElement;\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\n }\n return false;\n }\n _transitionEndListener = ({\n target,\n propertyName\n }) => {\n if (target === this._bodyWrapper?.nativeElement && propertyName === 'grid-template-rows') {\n this._ngZone.run(() => {\n if (this.expanded) {\n this.afterExpand.emit();\n } else {\n this.afterCollapse.emit();\n }\n });\n }\n };\n _setupAnimationEvents() {\n // This method is defined separately, because we need to\n // disable this logic in some internal components.\n this._ngZone.runOutsideAngular(() => {\n if (this._animationsDisabled) {\n this.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));\n this.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));\n } else {\n setTimeout(() => {\n const element = this._elementRef.nativeElement;\n this._cleanupTransitionEnd = this._renderer.listen(element, 'transitionend', this._transitionEndListener);\n element.classList.add('mat-expansion-panel-animations-enabled');\n }, 200);\n }\n });\n }\n static ɵfac = function MatExpansionPanel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanel)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatExpansionPanel,\n selectors: [[\"mat-expansion-panel\"]],\n contentQueries: function MatExpansionPanel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatExpansionPanelContent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lazyContent = _t.first);\n }\n },\n viewQuery: function MatExpansionPanel_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._body = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._bodyWrapper = _t.first);\n }\n },\n hostAttrs: [1, \"mat-expansion-panel\"],\n hostVars: 4,\n hostBindings: function MatExpansionPanel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-expanded\", ctx.expanded)(\"mat-expansion-panel-spacing\", ctx._hasSpacing());\n }\n },\n inputs: {\n hideToggle: [2, \"hideToggle\", \"hideToggle\", booleanAttribute],\n togglePosition: \"togglePosition\"\n },\n outputs: {\n afterExpand: \"afterExpand\",\n afterCollapse: \"afterCollapse\"\n },\n exportAs: [\"matExpansionPanel\"],\n features: [i0.ɵɵProvidersFeature([\n // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n // to the same accordion.\n {\n provide: MAT_ACCORDION,\n useValue: undefined\n }, {\n provide: MAT_EXPANSION_PANEL,\n useExisting: MatExpansionPanel\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c3,\n decls: 9,\n vars: 4,\n consts: [[\"bodyWrapper\", \"\"], [\"body\", \"\"], [1, \"mat-expansion-panel-content-wrapper\"], [\"role\", \"region\", 1, \"mat-expansion-panel-content\", 3, \"id\"], [1, \"mat-expansion-panel-body\"], [3, \"cdkPortalOutlet\"]],\n template: function MatExpansionPanel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"div\", 2, 0)(3, \"div\", 3, 1)(5, \"div\", 4);\n i0.ɵɵprojection(6, 1);\n i0.ɵɵtemplate(7, MatExpansionPanel_ng_template_7_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(8, 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"inert\", ctx.expanded ? null : \"\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"aria-labelledby\", ctx._headerId);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"cdkPortalOutlet\", ctx._portal);\n }\n },\n dependencies: [CdkPortalOutlet],\n styles: [\".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return MatExpansionPanel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Actions of a ``.\n */\nlet MatExpansionPanelActionRow = /*#__PURE__*/(() => {\n class MatExpansionPanelActionRow {\n static ɵfac = function MatExpansionPanelActionRow_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelActionRow)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelActionRow,\n selectors: [[\"mat-action-row\"]],\n hostAttrs: [1, \"mat-action-row\"]\n });\n }\n return MatExpansionPanelActionRow;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Header element of a ``.\n */\nlet MatExpansionPanelHeader = /*#__PURE__*/(() => {\n class MatExpansionPanelHeader {\n panel = inject(MatExpansionPanel, {\n host: true\n });\n _element = inject(ElementRef);\n _focusMonitor = inject(FocusMonitor);\n _changeDetectorRef = inject(ChangeDetectorRef);\n _parentChangeSubscription = Subscription.EMPTY;\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const panel = this.panel;\n const defaultOptions = inject(MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, {\n optional: true\n });\n const tabIndex = inject(new HostAttributeToken('tabindex'), {\n optional: true\n });\n const accordionHideToggleChange = panel.accordion ? panel.accordion._stateChanges.pipe(filter(changes => !!(changes['hideToggle'] || changes['togglePosition']))) : EMPTY;\n this.tabIndex = parseInt(tabIndex || '') || 0;\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription = merge(panel.opened, panel.closed, accordionHideToggleChange, panel._inputChanges.pipe(filter(changes => {\n return !!(changes['hideToggle'] || changes['disabled'] || changes['togglePosition']);\n }))).subscribe(() => this._changeDetectorRef.markForCheck());\n // Avoids focus being lost if the panel contained the focused element and was closed.\n panel.closed.pipe(filter(() => panel._containsFocus())).subscribe(() => this._focusMonitor.focusVia(this._element, 'program'));\n if (defaultOptions) {\n this.expandedHeight = defaultOptions.expandedHeight;\n this.collapsedHeight = defaultOptions.collapsedHeight;\n }\n }\n /** Height of the header while the panel is expanded. */\n expandedHeight;\n /** Height of the header while the panel is collapsed. */\n collapsedHeight;\n /** Tab index of the header. */\n tabIndex = 0;\n /**\n * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n * @docs-private\n */\n get disabled() {\n return this.panel.disabled;\n }\n /** Toggles the expanded state of the panel. */\n _toggle() {\n if (!this.disabled) {\n this.panel.toggle();\n }\n }\n /** Gets whether the panel is expanded. */\n _isExpanded() {\n return this.panel.expanded;\n }\n /** Gets the expanded state string of the panel. */\n _getExpandedState() {\n return this.panel._getExpandedState();\n }\n /** Gets the panel id. */\n _getPanelId() {\n return this.panel.id;\n }\n /** Gets the toggle position for the header. */\n _getTogglePosition() {\n return this.panel.togglePosition;\n }\n /** Gets whether the expand indicator should be shown. */\n _showToggle() {\n return !this.panel.hideToggle && !this.panel.disabled;\n }\n /**\n * Gets the current height of the header. Null if no custom height has been\n * specified, and if the default height from the stylesheet should be used.\n */\n _getHeaderHeight() {\n const isExpanded = this._isExpanded();\n if (isExpanded && this.expandedHeight) {\n return this.expandedHeight;\n } else if (!isExpanded && this.collapsedHeight) {\n return this.collapsedHeight;\n }\n return null;\n }\n /** Handle keydown event calling to toggle() if appropriate. */\n _keydown(event) {\n switch (event.keyCode) {\n // Toggle for space and enter keys.\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this._toggle();\n }\n break;\n default:\n if (this.panel.accordion) {\n this.panel.accordion._handleHeaderKeydown(event);\n }\n return;\n }\n }\n /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * @param origin Origin of the action that triggered the focus.\n * @docs-private\n */\n focus(origin, options) {\n if (origin) {\n this._focusMonitor.focusVia(this._element, origin, options);\n } else {\n this._element.nativeElement.focus(options);\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._element).subscribe(origin => {\n if (origin && this.panel.accordion) {\n this.panel.accordion._handleHeaderFocus(this);\n }\n });\n }\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element);\n }\n static ɵfac = function MatExpansionPanelHeader_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelHeader)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatExpansionPanelHeader,\n selectors: [[\"mat-expansion-panel-header\"]],\n hostAttrs: [\"role\", \"button\", 1, \"mat-expansion-panel-header\", \"mat-focus-indicator\"],\n hostVars: 13,\n hostBindings: function MatExpansionPanelHeader_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatExpansionPanelHeader_click_HostBindingHandler() {\n return ctx._toggle();\n })(\"keydown\", function MatExpansionPanelHeader_keydown_HostBindingHandler($event) {\n return ctx._keydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.panel._headerId)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-controls\", ctx._getPanelId())(\"aria-expanded\", ctx._isExpanded())(\"aria-disabled\", ctx.panel.disabled);\n i0.ɵɵstyleProp(\"height\", ctx._getHeaderHeight());\n i0.ɵɵclassProp(\"mat-expanded\", ctx._isExpanded())(\"mat-expansion-toggle-indicator-after\", ctx._getTogglePosition() === \"after\")(\"mat-expansion-toggle-indicator-before\", ctx._getTogglePosition() === \"before\");\n }\n },\n inputs: {\n expandedHeight: \"expandedHeight\",\n collapsedHeight: \"collapsedHeight\",\n tabIndex: [2, \"tabIndex\", \"tabIndex\", value => value == null ? 0 : numberAttribute(value)]\n },\n ngContentSelectors: _c5,\n decls: 5,\n vars: 3,\n consts: [[1, \"mat-content\"], [1, \"mat-expansion-indicator\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"viewBox\", \"0 -960 960 960\", \"aria-hidden\", \"true\", \"focusable\", \"false\"], [\"d\", \"M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z\"]],\n template: function MatExpansionPanelHeader_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c4);\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵprojection(3, 2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, MatExpansionPanelHeader_Conditional_4_Template, 3, 0, \"span\", 1);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-content-hide-toggle\", !ctx._showToggle());\n i0.ɵɵadvance(4);\n i0.ɵɵconditional(ctx._showToggle() ? 4 : -1);\n }\n },\n styles: [\".mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:\\\"\\\";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return MatExpansionPanelHeader;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Description element of a ``.\n */\nlet MatExpansionPanelDescription = /*#__PURE__*/(() => {\n class MatExpansionPanelDescription {\n static ɵfac = function MatExpansionPanelDescription_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelDescription)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelDescription,\n selectors: [[\"mat-panel-description\"]],\n hostAttrs: [1, \"mat-expansion-panel-header-description\"]\n });\n }\n return MatExpansionPanelDescription;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Title element of a ``.\n */\nlet MatExpansionPanelTitle = /*#__PURE__*/(() => {\n class MatExpansionPanelTitle {\n static ɵfac = function MatExpansionPanelTitle_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionPanelTitle)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatExpansionPanelTitle,\n selectors: [[\"mat-panel-title\"]],\n hostAttrs: [1, \"mat-expansion-panel-header-title\"]\n });\n }\n return MatExpansionPanelTitle;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Directive for a Material Design Accordion.\n */\nlet MatAccordion = /*#__PURE__*/(() => {\n class MatAccordion extends CdkAccordion {\n _keyManager;\n /** Headers belonging to this accordion. */\n _ownHeaders = new QueryList();\n /** All headers inside the accordion. Includes headers inside nested accordions. */\n _headers;\n /** Whether the expansion indicator should be hidden. */\n hideToggle = false;\n /**\n * Display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the rest of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n displayMode = 'default';\n /** The position of the expansion indicator. */\n togglePosition = 'after';\n ngAfterContentInit() {\n this._headers.changes.pipe(startWith(this._headers)).subscribe(headers => {\n this._ownHeaders.reset(headers.filter(header => header.panel.accordion === this));\n this._ownHeaders.notifyOnChanges();\n });\n this._keyManager = new FocusKeyManager(this._ownHeaders).withWrap().withHomeAndEnd();\n }\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown(event) {\n this._keyManager.onKeydown(event);\n }\n _handleHeaderFocus(header) {\n this._keyManager.updateActiveItem(header);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._keyManager?.destroy();\n this._ownHeaders.destroy();\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵMatAccordion_BaseFactory;\n return function MatAccordion_Factory(__ngFactoryType__) {\n return (ɵMatAccordion_BaseFactory || (ɵMatAccordion_BaseFactory = i0.ɵɵgetInheritedFactory(MatAccordion)))(__ngFactoryType__ || MatAccordion);\n };\n })();\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatAccordion,\n selectors: [[\"mat-accordion\"]],\n contentQueries: function MatAccordion_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatExpansionPanelHeader, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headers = _t);\n }\n },\n hostAttrs: [1, \"mat-accordion\"],\n hostVars: 2,\n hostBindings: function MatAccordion_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-accordion-multi\", ctx.multi);\n }\n },\n inputs: {\n hideToggle: [2, \"hideToggle\", \"hideToggle\", booleanAttribute],\n displayMode: \"displayMode\",\n togglePosition: \"togglePosition\"\n },\n exportAs: [\"matAccordion\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_ACCORDION,\n useExisting: MatAccordion\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n return MatAccordion;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatExpansionModule = /*#__PURE__*/(() => {\n class MatExpansionModule {\n static ɵfac = function MatExpansionModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatExpansionModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatExpansionModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CdkAccordionModule, PortalModule]\n });\n }\n return MatExpansionModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Time and timing curve for expansion panel animations. */\n// Note: Keep this in sync with the Sass variable for the panel header animation.\nconst EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n/**\n * Animations used by the Material expansion panel.\n *\n * A bug in angular animation's `state` when ViewContainers are moved using ViewContainerRef.move()\n * causes the animation state of moved components to become `void` upon exit, and not update again\n * upon reentry into the DOM. This can lead a to situation for the expansion panel where the state\n * of the panel is `expanded` or `collapsed` but the animation state is `void`.\n *\n * To correctly handle animating to the next state, we animate between `void` and `collapsed` which\n * are defined to have the same styles. Since angular animates from the current styles to the\n * destination state's style definition, in situations where we are moving from `void`'s styles to\n * `collapsed` this acts a noop since no style values change.\n *\n * In the case where angular's animation state is out of sync with the expansion panel's state, the\n * expansion panel being `expanded` and angular animations being `void`, the animation from the\n * `expanded`'s effective styles (though in a `void` animation state) to the collapsed state will\n * occur as expected.\n *\n * Angular Bug: https://github.com/angular/angular/issues/18847\n *\n * @docs-private\n * @deprecated No longer being used, to be removed.\n * @breaking-change 21.0.0\n */\nconst matExpansionAnimations = {\n /** Animation that rotates the indicator arrow. */\n indicatorRotate: /*#__PURE__*/trigger('indicatorRotate', [/*#__PURE__*/state('collapsed, void', /*#__PURE__*/style({\n transform: 'rotate(0deg)'\n })), /*#__PURE__*/state('expanded', /*#__PURE__*/style({\n transform: 'rotate(180deg)'\n })), /*#__PURE__*/transition('expanded <=> collapsed, void => collapsed', /*#__PURE__*/animate(EXPANSION_PANEL_ANIMATION_TIMING))]),\n /** Animation that expands and collapses the panel content. */\n bodyExpansion: /*#__PURE__*/trigger('bodyExpansion', [/*#__PURE__*/state('collapsed, void', /*#__PURE__*/style({\n height: '0px',\n visibility: 'hidden'\n })),\n /*#__PURE__*/\n // Clear the `visibility` while open, otherwise the content will be visible when placed in\n // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants\n // that have a `visibility` of their own (see #27436).\n state('expanded', /*#__PURE__*/style({\n height: '*',\n visibility: ''\n })), /*#__PURE__*/transition('expanded <=> collapsed, void => collapsed', /*#__PURE__*/animate(EXPANSION_PANEL_ANIMATION_TIMING))])\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { EXPANSION_PANEL_ANIMATION_TIMING, MAT_ACCORDION, MAT_EXPANSION_PANEL, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, MatAccordion, MatExpansionModule, MatExpansionPanel, MatExpansionPanelActionRow, MatExpansionPanelContent, MatExpansionPanelDescription, MatExpansionPanelHeader, MatExpansionPanelTitle, matExpansionAnimations };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, ElementRef, ChangeDetectorRef, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, TemplateRef, ApplicationRef, Injector, ViewContainerRef, Directive, QueryList, EventEmitter, ANIMATION_MODULE_TYPE, afterNextRender, ContentChildren, ViewChild, ContentChild, Output, NgZone, NgModule } from '@angular/core';\nimport { FocusMonitor, _IdGenerator, FocusKeyManager, isFakeTouchstartFromScreenReader, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, ESCAPE, hasModifierKey, ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { Subject, merge, Subscription, of } from 'rxjs';\nimport { startWith, switchMap, takeUntil, take, filter } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\nimport { _StructuralStylesLoader, MatRipple, MatRippleModule, MatCommonModule } from '@angular/material/core';\nimport { _CdkPrivateStyleLoader } from '@angular/cdk/private';\nimport { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n * @docs-private\n */\nconst _c0 = [\"mat-menu-item\", \"\"];\nconst _c1 = [[[\"mat-icon\"], [\"\", \"matMenuItemIcon\", \"\"]], \"*\"];\nconst _c2 = [\"mat-icon, [matMenuItemIcon]\", \"*\"];\nfunction MatMenuItem_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 2);\n i0.ɵɵelement(1, \"polygon\", 3);\n i0.ɵɵelementEnd();\n }\n}\nconst _c3 = [\"*\"];\nfunction MatMenu_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function MatMenu_ng_template_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.closed.emit(\"click\"));\n })(\"animationstart\", function MatMenu_ng_template_0_Template_div_animationstart_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationStart($event.animationName));\n })(\"animationend\", function MatMenu_ng_template_0_Template_div_animationend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationDone($event.animationName));\n })(\"animationcancel\", function MatMenu_ng_template_0_Template_div_animationcancel_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationDone($event.animationName));\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1._classList);\n i0.ɵɵclassProp(\"mat-menu-panel-animations-disabled\", ctx_r1._animationsDisabled)(\"mat-menu-panel-exit-animation\", ctx_r1._panelAnimationState === \"void\")(\"mat-menu-panel-animating\", ctx_r1._isAnimating);\n i0.ɵɵproperty(\"id\", ctx_r1.panelId);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1.ariaLabelledby || null)(\"aria-describedby\", ctx_r1.ariaDescribedby || null);\n }\n}\nconst MAT_MENU_PANEL = /*#__PURE__*/new InjectionToken('MAT_MENU_PANEL');\n\n/**\n * Single item inside a `mat-menu`. Provides the menu item styling and accessibility treatment.\n */\nlet MatMenuItem = /*#__PURE__*/(() => {\n class MatMenuItem {\n _elementRef = inject(ElementRef);\n _document = inject(DOCUMENT);\n _focusMonitor = inject(FocusMonitor);\n _parentMenu = inject(MAT_MENU_PANEL, {\n optional: true\n });\n _changeDetectorRef = inject(ChangeDetectorRef);\n /** ARIA role for the menu item. */\n role = 'menuitem';\n /** Whether the menu item is disabled. */\n disabled = false;\n /** Whether ripples are disabled on the menu item. */\n disableRipple = false;\n /** Stream that emits when the menu item is hovered. */\n _hovered = new Subject();\n /** Stream that emits when the menu item is focused. */\n _focused = new Subject();\n /** Whether the menu item is highlighted. */\n _highlighted = false;\n /** Whether the menu item acts as a trigger for a sub-menu. */\n _triggersSubmenu = false;\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n this._parentMenu?.addItem?.(this);\n }\n /** Focuses the menu item. */\n focus(origin, options) {\n if (this._focusMonitor && origin) {\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n } else {\n this._getHostElement().focus(options);\n }\n this._focused.next(this);\n }\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false);\n }\n }\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this);\n }\n this._hovered.complete();\n this._focused.complete();\n }\n /** Used to set the `tabindex`. */\n _getTabIndex() {\n return this.disabled ? '-1' : '0';\n }\n /** Returns the host DOM element. */\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n /** Prevents the default element actions if it is disabled. */\n _checkDisabled(event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n /** Emits to the hover stream. */\n _handleMouseEnter() {\n this._hovered.next(this);\n }\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel() {\n const clone = this._elementRef.nativeElement.cloneNode(true);\n const icons = clone.querySelectorAll('mat-icon, .material-icons');\n // Strip away icons, so they don't show up in the text.\n for (let i = 0; i < icons.length; i++) {\n icons[i].remove();\n }\n return clone.textContent?.trim() || '';\n }\n _setHighlighted(isHighlighted) {\n // We need to mark this for check for the case where the content is coming from a\n // `matMenuContent` whose change detection tree is at the declaration position,\n // not the insertion position. See #23175.\n this._highlighted = isHighlighted;\n this._changeDetectorRef.markForCheck();\n }\n _setTriggersSubmenu(triggersSubmenu) {\n this._triggersSubmenu = triggersSubmenu;\n this._changeDetectorRef.markForCheck();\n }\n _hasFocus() {\n return this._document && this._document.activeElement === this._getHostElement();\n }\n static ɵfac = function MatMenuItem_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMenuItem)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMenuItem,\n selectors: [[\"\", \"mat-menu-item\", \"\"]],\n hostAttrs: [1, \"mat-mdc-menu-item\", \"mat-focus-indicator\"],\n hostVars: 8,\n hostBindings: function MatMenuItem_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatMenuItem_click_HostBindingHandler($event) {\n return ctx._checkDisabled($event);\n })(\"mouseenter\", function MatMenuItem_mouseenter_HostBindingHandler() {\n return ctx._handleMouseEnter();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.role)(\"tabindex\", ctx._getTabIndex())(\"aria-disabled\", ctx.disabled)(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"mat-mdc-menu-item-highlighted\", ctx._highlighted)(\"mat-mdc-menu-item-submenu-trigger\", ctx._triggersSubmenu);\n }\n },\n inputs: {\n role: \"role\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n disableRipple: [2, \"disableRipple\", \"disableRipple\", booleanAttribute]\n },\n exportAs: [\"matMenuItem\"],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 3,\n consts: [[1, \"mat-mdc-menu-item-text\"], [\"matRipple\", \"\", 1, \"mat-mdc-menu-ripple\", 3, \"matRippleDisabled\", \"matRippleTrigger\"], [\"viewBox\", \"0 0 5 10\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-mdc-menu-submenu-icon\"], [\"points\", \"0,0 5,5 0,10\"]],\n template: function MatMenuItem_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"span\", 0);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 1);\n i0.ɵɵtemplate(4, MatMenuItem_Conditional_4_Template, 2, 0, \":svg:svg\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx.disableRipple || ctx.disabled)(\"matRippleTrigger\", ctx._getHostElement());\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._triggersSubmenu ? 4 : -1);\n }\n },\n dependencies: [MatRipple],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return MatMenuItem;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Throws an exception for the case when menu's x-position value isn't valid.\n * In other words, it doesn't match 'before' or 'after'.\n * @docs-private\n */\nfunction throwMatMenuInvalidPositionX() {\n throw Error(`xPosition value must be either 'before' or after'.\n Example: `);\n}\n/**\n * Throws an exception for the case when menu's y-position value isn't valid.\n * In other words, it doesn't match 'above' or 'below'.\n * @docs-private\n */\nfunction throwMatMenuInvalidPositionY() {\n throw Error(`yPosition value must be either 'above' or below'.\n Example: `);\n}\n/**\n * Throws an exception for the case when a menu is assigned\n * to a trigger that is placed inside the same menu.\n * @docs-private\n */\nfunction throwMatMenuRecursiveError() {\n throw Error(`matMenuTriggerFor: menu cannot contain its own trigger. Assign a menu that is ` + `not a parent of the trigger or move the trigger outside of the menu.`);\n}\n\n/**\n * Injection token that can be used to reference instances of `MatMenuContent`. It serves\n * as alternative token to the actual `MatMenuContent` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_MENU_CONTENT = /*#__PURE__*/new InjectionToken('MatMenuContent');\n/** Menu content that will be rendered lazily once the menu is opened. */\nlet MatMenuContent = /*#__PURE__*/(() => {\n class MatMenuContent {\n _template = inject(TemplateRef);\n _appRef = inject(ApplicationRef);\n _injector = inject(Injector);\n _viewContainerRef = inject(ViewContainerRef);\n _document = inject(DOCUMENT);\n _changeDetectorRef = inject(ChangeDetectorRef);\n _portal;\n _outlet;\n /** Emits when the menu content has been attached. */\n _attached = new Subject();\n constructor() {}\n /**\n * Attaches the content with a particular context.\n * @docs-private\n */\n attach(context = {}) {\n if (!this._portal) {\n this._portal = new TemplatePortal(this._template, this._viewContainerRef);\n }\n this.detach();\n if (!this._outlet) {\n this._outlet = new DomPortalOutlet(this._document.createElement('div'), null, this._appRef, this._injector);\n }\n const element = this._template.elementRef.nativeElement;\n // Because we support opening the same menu from different triggers (which in turn have their\n // own `OverlayRef` panel), we have to re-insert the host element every time, otherwise we\n // risk it staying attached to a pane that's no longer in the DOM.\n element.parentNode.insertBefore(this._outlet.outletElement, element);\n // When `MatMenuContent` is used in an `OnPush` component, the insertion of the menu\n // content via `createEmbeddedView` does not cause the content to be seen as \"dirty\"\n // by Angular. This causes the `@ContentChildren` for menu items within the menu to\n // not be updated by Angular. By explicitly marking for check here, we tell Angular that\n // it needs to check for new menu items and update the `@ContentChild` in `MatMenu`.\n this._changeDetectorRef.markForCheck();\n this._portal.attach(this._outlet, context);\n this._attached.next();\n }\n /**\n * Detaches the content.\n * @docs-private\n */\n detach() {\n if (this._portal?.isAttached) {\n this._portal.detach();\n }\n }\n ngOnDestroy() {\n this.detach();\n this._outlet?.dispose();\n }\n static ɵfac = function MatMenuContent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMenuContent)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatMenuContent,\n selectors: [[\"ng-template\", \"matMenuContent\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_CONTENT,\n useExisting: MatMenuContent\n }])]\n });\n }\n return MatMenuContent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token to be used to override the default options for `mat-menu`. */\nconst MAT_MENU_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-menu-default-options', {\n providedIn: 'root',\n factory: MAT_MENU_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_MENU_DEFAULT_OPTIONS_FACTORY() {\n return {\n overlapTrigger: false,\n xPosition: 'after',\n yPosition: 'below',\n backdropClass: 'cdk-overlay-transparent-backdrop'\n };\n}\n/** Name of the enter animation `@keyframes`. */\nconst ENTER_ANIMATION = '_mat-menu-enter';\n/** Name of the exit animation `@keyframes`. */\nconst EXIT_ANIMATION = '_mat-menu-exit';\nlet MatMenu = /*#__PURE__*/(() => {\n class MatMenu {\n _elementRef = inject(ElementRef);\n _changeDetectorRef = inject(ChangeDetectorRef);\n _injector = inject(Injector);\n _keyManager;\n _xPosition;\n _yPosition;\n _firstItemFocusRef;\n _exitFallbackTimeout;\n /** Whether animations are currently disabled. */\n _animationsDisabled;\n /** All items inside the menu. Includes items nested inside another menu. */\n _allItems;\n /** Only the direct descendant menu items. */\n _directDescendantItems = new QueryList();\n /** Classes to be applied to the menu panel. */\n _classList = {};\n /** Current state of the panel animation. */\n _panelAnimationState = 'void';\n /** Emits whenever an animation on the menu completes. */\n _animationDone = new Subject();\n /** Whether the menu is animating. */\n _isAnimating = false;\n /** Parent menu of the current menu panel. */\n parentMenu;\n /** Layout direction of the menu. */\n direction;\n /** Class or list of classes to be added to the overlay panel. */\n overlayPanelClass;\n /** Class to be added to the backdrop element. */\n backdropClass;\n /** aria-label for the menu panel. */\n ariaLabel;\n /** aria-labelledby for the menu panel. */\n ariaLabelledby;\n /** aria-describedby for the menu panel. */\n ariaDescribedby;\n /** Position of the menu in the X axis. */\n get xPosition() {\n return this._xPosition;\n }\n set xPosition(value) {\n if (value !== 'before' && value !== 'after' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuInvalidPositionX();\n }\n this._xPosition = value;\n this.setPositionClasses();\n }\n /** Position of the menu in the Y axis. */\n get yPosition() {\n return this._yPosition;\n }\n set yPosition(value) {\n if (value !== 'above' && value !== 'below' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuInvalidPositionY();\n }\n this._yPosition = value;\n this.setPositionClasses();\n }\n /** @docs-private */\n templateRef;\n /**\n * List of the items inside of a menu.\n * @deprecated\n * @breaking-change 8.0.0\n */\n items;\n /**\n * Menu content that will be rendered lazily.\n * @docs-private\n */\n lazyContent;\n /** Whether the menu should overlap its trigger. */\n overlapTrigger;\n /** Whether the menu has a backdrop. */\n hasBackdrop;\n /**\n * This method takes classes set on the host mat-menu element and applies them on the\n * menu template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing menu from outside the component.\n * @param classes list of class names\n */\n set panelClass(classes) {\n const previousPanelClass = this._previousPanelClass;\n const newClassList = {\n ...this._classList\n };\n if (previousPanelClass && previousPanelClass.length) {\n previousPanelClass.split(' ').forEach(className => {\n newClassList[className] = false;\n });\n }\n this._previousPanelClass = classes;\n if (classes && classes.length) {\n classes.split(' ').forEach(className => {\n newClassList[className] = true;\n });\n this._elementRef.nativeElement.className = '';\n }\n this._classList = newClassList;\n }\n _previousPanelClass;\n /**\n * This method takes classes set on the host mat-menu element and applies them on the\n * menu template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing menu from outside the component.\n * @deprecated Use `panelClass` instead.\n * @breaking-change 8.0.0\n */\n get classList() {\n return this.panelClass;\n }\n set classList(classes) {\n this.panelClass = classes;\n }\n /** Event emitted when the menu is closed. */\n closed = new EventEmitter();\n /**\n * Event emitted when the menu is closed.\n * @deprecated Switch to `closed` instead\n * @breaking-change 8.0.0\n */\n close = this.closed;\n panelId = inject(_IdGenerator).getId('mat-menu-panel-');\n constructor() {\n const defaultOptions = inject(MAT_MENU_DEFAULT_OPTIONS);\n this.overlayPanelClass = defaultOptions.overlayPanelClass || '';\n this._xPosition = defaultOptions.xPosition;\n this._yPosition = defaultOptions.yPosition;\n this.backdropClass = defaultOptions.backdropClass;\n this.overlapTrigger = defaultOptions.overlapTrigger;\n this.hasBackdrop = defaultOptions.hasBackdrop;\n this._animationsDisabled = inject(ANIMATION_MODULE_TYPE, {\n optional: true\n }) === 'NoopAnimations';\n }\n ngOnInit() {\n this.setPositionClasses();\n }\n ngAfterContentInit() {\n this._updateDirectDescendants();\n this._keyManager = new FocusKeyManager(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd();\n this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'));\n // If a user manually (programmatically) focuses a menu item, we need to reflect that focus\n // change back to the key manager. Note that we don't need to unsubscribe here because _focused\n // is internal and we know that it gets completed on destroy.\n this._directDescendantItems.changes.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map(item => item._focused)))).subscribe(focusedItem => this._keyManager.updateActiveItem(focusedItem));\n this._directDescendantItems.changes.subscribe(itemsList => {\n // Move focus to another item, if the active item is removed from the list.\n // We need to debounce the callback, because multiple items might be removed\n // in quick succession.\n const manager = this._keyManager;\n if (this._panelAnimationState === 'enter' && manager.activeItem?._hasFocus()) {\n const items = itemsList.toArray();\n const index = Math.max(0, Math.min(items.length - 1, manager.activeItemIndex || 0));\n if (items[index] && !items[index].disabled) {\n manager.setActiveItem(index);\n } else {\n manager.setNextItemActive();\n }\n }\n });\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._directDescendantItems.destroy();\n this.closed.complete();\n this._firstItemFocusRef?.destroy();\n clearTimeout(this._exitFallbackTimeout);\n }\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered() {\n // Coerce the `changes` property because Angular types it as `Observable`\n const itemChanges = this._directDescendantItems.changes;\n return itemChanges.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map(item => item._hovered))));\n }\n /*\n * Registers a menu item with the menu.\n * @docs-private\n * @deprecated No longer being used. To be removed.\n * @breaking-change 9.0.0\n */\n addItem(_item) {}\n /**\n * Removes an item from the menu.\n * @docs-private\n * @deprecated No longer being used. To be removed.\n * @breaking-change 9.0.0\n */\n removeItem(_item) {}\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event) {\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this.closed.emit('keydown');\n }\n break;\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown');\n }\n break;\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown');\n }\n break;\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager.setFocusOrigin('keyboard');\n }\n manager.onKeydown(event);\n return;\n }\n }\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin = 'program') {\n // Wait for `afterNextRender` to ensure iOS VoiceOver screen reader focuses the first item (#24735).\n this._firstItemFocusRef?.destroy();\n this._firstItemFocusRef = afterNextRender(() => {\n const menuPanel = this._resolvePanel();\n // If an item in the menuPanel is already focused, avoid overriding the focus.\n if (!menuPanel || !menuPanel.contains(document.activeElement)) {\n const manager = this._keyManager;\n manager.setFocusOrigin(origin).setFirstItemActive();\n // If there's no active item at this point, it means that all the items are disabled.\n // Move focus to the menuPanel panel so keyboard events like Escape still work. Also this will\n // give _some_ feedback to screen readers.\n if (!manager.activeItem && menuPanel) {\n menuPanel.focus();\n }\n }\n }, {\n injector: this._injector\n });\n }\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager.setActiveItem(-1);\n }\n /**\n * @deprecated No longer used and will be removed.\n * @breaking-change 21.0.0\n */\n setElevation(_depth) {}\n /**\n * Adds classes to the menu panel based on its position. Can be used by\n * consumers to add specific styling based on the position.\n * @param posX Position of the menu along the x axis.\n * @param posY Position of the menu along the y axis.\n * @docs-private\n */\n setPositionClasses(posX = this.xPosition, posY = this.yPosition) {\n this._classList = {\n ...this._classList,\n ['mat-menu-before']: posX === 'before',\n ['mat-menu-after']: posX === 'after',\n ['mat-menu-above']: posY === 'above',\n ['mat-menu-below']: posY === 'below'\n };\n this._changeDetectorRef.markForCheck();\n }\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(state) {\n const isExit = state === EXIT_ANIMATION;\n if (isExit || state === ENTER_ANIMATION) {\n if (isExit) {\n clearTimeout(this._exitFallbackTimeout);\n this._exitFallbackTimeout = undefined;\n }\n this._animationDone.next(isExit ? 'void' : 'enter');\n this._isAnimating = false;\n }\n }\n _onAnimationStart(state) {\n if (state === ENTER_ANIMATION || state === EXIT_ANIMATION) {\n this._isAnimating = true;\n }\n }\n _setIsOpen(isOpen) {\n this._panelAnimationState = isOpen ? 'enter' : 'void';\n if (isOpen) {\n if (this._keyManager.activeItemIndex === 0) {\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n const menuPanel = this._resolvePanel();\n if (menuPanel) {\n menuPanel.scrollTop = 0;\n }\n }\n } else if (!this._animationsDisabled) {\n // Some apps do `* { animation: none !important; }` in tests which will prevent the\n // `animationend` event from firing. Since the exit animation is loading-bearing for\n // removing the content from the DOM, add a fallback timer.\n this._exitFallbackTimeout = setTimeout(() => this._onAnimationDone(EXIT_ANIMATION), 200);\n }\n // Animation events won't fire when animations are disabled so we simulate them.\n if (this._animationsDisabled) {\n setTimeout(() => {\n this._onAnimationDone(isOpen ? ENTER_ANIMATION : EXIT_ANIMATION);\n });\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Sets up a stream that will keep track of any newly-added menu items and will update the list\n * of direct descendants. We collect the descendants this way, because `_allItems` can include\n * items that are part of child menus, and using a custom way of registering items is unreliable\n * when it comes to maintaining the item order.\n */\n _updateDirectDescendants() {\n this._allItems.changes.pipe(startWith(this._allItems)).subscribe(items => {\n this._directDescendantItems.reset(items.filter(item => item._parentMenu === this));\n this._directDescendantItems.notifyOnChanges();\n });\n }\n /** Gets the menu panel DOM node. */\n _resolvePanel() {\n let menuPanel = null;\n if (this._directDescendantItems.length) {\n // Because the `mat-menuPanel` is at the DOM insertion point, not inside the overlay, we don't\n // have a nice way of getting a hold of the menuPanel panel. We can't use a `ViewChild` either\n // because the panel is inside an `ng-template`. We work around it by starting from one of\n // the items and walking up the DOM.\n menuPanel = this._directDescendantItems.first._getHostElement().closest('[role=\"menu\"]');\n }\n return menuPanel;\n }\n static ɵfac = function MatMenu_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMenu)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMenu,\n selectors: [[\"mat-menu\"]],\n contentQueries: function MatMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_MENU_CONTENT, 5);\n i0.ɵɵcontentQuery(dirIndex, MatMenuItem, 5);\n i0.ɵɵcontentQuery(dirIndex, MatMenuItem, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lazyContent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allItems = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);\n }\n },\n viewQuery: function MatMenu_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateRef = _t.first);\n }\n },\n hostVars: 3,\n hostBindings: function MatMenu_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-label\", null)(\"aria-labelledby\", null)(\"aria-describedby\", null);\n }\n },\n inputs: {\n backdropClass: \"backdropClass\",\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n ariaDescribedby: [0, \"aria-describedby\", \"ariaDescribedby\"],\n xPosition: \"xPosition\",\n yPosition: \"yPosition\",\n overlapTrigger: [2, \"overlapTrigger\", \"overlapTrigger\", booleanAttribute],\n hasBackdrop: [2, \"hasBackdrop\", \"hasBackdrop\", value => value == null ? null : booleanAttribute(value)],\n panelClass: [0, \"class\", \"panelClass\"],\n classList: \"classList\"\n },\n outputs: {\n closed: \"closed\",\n close: \"close\"\n },\n exportAs: [\"matMenu\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_PANEL,\n useExisting: MatMenu\n }])],\n ngContentSelectors: _c3,\n decls: 1,\n vars: 0,\n consts: [[\"tabindex\", \"-1\", \"role\", \"menu\", 1, \"mat-mdc-menu-panel\", 3, \"click\", \"animationstart\", \"animationend\", \"animationcancel\", \"id\"], [1, \"mat-mdc-menu-content\"]],\n template: function MatMenu_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatMenu_ng_template_0_Template, 3, 12, \"ng-template\");\n }\n },\n styles: [\"mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\\\"\\\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return MatMenu;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token that determines the scroll handling while the menu is open. */\nconst MAT_MENU_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('mat-menu-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition();\n }\n});\n/** @docs-private */\nfunction MAT_MENU_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_MENU_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_MENU_SCROLL_STRATEGY_FACTORY\n};\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * Default top padding of the menu panel.\n * @deprecated No longer being used. Will be removed.\n * @breaking-change 15.0.0\n */\nconst MENU_PANEL_TOP_PADDING = 8;\n/** Mapping between menu panels and the last trigger that opened them. */\nconst PANELS_TO_TRIGGERS = /*#__PURE__*/new WeakMap();\n/** Directive applied to an element that should trigger a `mat-menu`. */\nlet MatMenuTrigger = /*#__PURE__*/(() => {\n class MatMenuTrigger {\n _overlay = inject(Overlay);\n _element = inject(ElementRef);\n _viewContainerRef = inject(ViewContainerRef);\n _menuItemInstance = inject(MatMenuItem, {\n optional: true,\n self: true\n });\n _dir = inject(Directionality, {\n optional: true\n });\n _focusMonitor = inject(FocusMonitor);\n _ngZone = inject(NgZone);\n _scrollStrategy = inject(MAT_MENU_SCROLL_STRATEGY);\n _changeDetectorRef = inject(ChangeDetectorRef);\n _portal;\n _overlayRef = null;\n _menuOpen = false;\n _closingActionsSubscription = Subscription.EMPTY;\n _hoverSubscription = Subscription.EMPTY;\n _menuCloseSubscription = Subscription.EMPTY;\n _pendingRemoval;\n /**\n * We're specifically looking for a `MatMenu` here since the generic `MatMenuPanel`\n * interface lacks some functionality around nested menus and animations.\n */\n _parentMaterialMenu;\n /**\n * Cached value of the padding of the parent menu panel.\n * Used to offset sub-menus to compensate for the padding.\n */\n _parentInnerPadding;\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n _handleTouchStart = event => {\n if (!isFakeTouchstartFromScreenReader(event)) {\n this._openedBy = 'touch';\n }\n };\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy = undefined;\n /**\n * @deprecated\n * @breaking-change 8.0.0\n */\n get _deprecatedMatMenuTriggerFor() {\n return this.menu;\n }\n set _deprecatedMatMenuTriggerFor(v) {\n this.menu = v;\n }\n /** References the menu instance that the trigger is associated with. */\n get menu() {\n return this._menu;\n }\n set menu(menu) {\n if (menu === this._menu) {\n return;\n }\n this._menu = menu;\n this._menuCloseSubscription.unsubscribe();\n if (menu) {\n if (menu === this._parentMaterialMenu && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuRecursiveError();\n }\n this._menuCloseSubscription = menu.close.subscribe(reason => {\n this._destroyMenu(reason);\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMaterialMenu) {\n this._parentMaterialMenu.closed.emit(reason);\n }\n });\n }\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu());\n }\n _menu;\n /** Data to be passed along to any lazily-rendered content. */\n menuData;\n /**\n * Whether focus should be restored when the menu is closed.\n * Note that disabling this option can have accessibility implications\n * and it's up to you to manage focus, if you decide to turn it off.\n */\n restoreFocus = true;\n /** Event emitted when the associated menu is opened. */\n menuOpened = new EventEmitter();\n /**\n * Event emitted when the associated menu is opened.\n * @deprecated Switch to `menuOpened` instead\n * @breaking-change 8.0.0\n */\n // tslint:disable-next-line:no-output-on-prefix\n onMenuOpen = this.menuOpened;\n /** Event emitted when the associated menu is closed. */\n menuClosed = new EventEmitter();\n /**\n * Event emitted when the associated menu is closed.\n * @deprecated Switch to `menuClosed` instead\n * @breaking-change 8.0.0\n */\n // tslint:disable-next-line:no-output-on-prefix\n onMenuClose = this.menuClosed;\n constructor() {\n const parentMenu = inject(MAT_MENU_PANEL, {\n optional: true\n });\n this._parentMaterialMenu = parentMenu instanceof MatMenu ? parentMenu : undefined;\n this._element.nativeElement.addEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);\n }\n ngAfterContentInit() {\n this._handleHover();\n }\n ngOnDestroy() {\n if (this.menu && this._ownsMenu(this.menu)) {\n PANELS_TO_TRIGGERS.delete(this.menu);\n }\n this._element.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);\n this._pendingRemoval?.unsubscribe();\n this._menuCloseSubscription.unsubscribe();\n this._closingActionsSubscription.unsubscribe();\n this._hoverSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n /** Whether the menu is open. */\n get menuOpen() {\n return this._menuOpen;\n }\n /** The text direction of the containing app. */\n get dir() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu() {\n return !!(this._menuItemInstance && this._parentMaterialMenu && this.menu);\n }\n /** Toggles the menu between the open and closed states. */\n toggleMenu() {\n return this._menuOpen ? this.closeMenu() : this.openMenu();\n }\n /** Opens the menu. */\n openMenu() {\n const menu = this.menu;\n if (this._menuOpen || !menu) {\n return;\n }\n this._pendingRemoval?.unsubscribe();\n const previousTrigger = PANELS_TO_TRIGGERS.get(menu);\n PANELS_TO_TRIGGERS.set(menu, this);\n // If the same menu is currently attached to another trigger,\n // we need to close it so it doesn't end up in a broken state.\n if (previousTrigger && previousTrigger !== this) {\n previousTrigger.closeMenu();\n }\n const overlayRef = this._createOverlay(menu);\n const overlayConfig = overlayRef.getConfig();\n const positionStrategy = overlayConfig.positionStrategy;\n this._setPosition(menu, positionStrategy);\n overlayConfig.hasBackdrop = menu.hasBackdrop == null ? !this.triggersSubmenu() : menu.hasBackdrop;\n // We need the `hasAttached` check for the case where the user kicked off a removal animation,\n // but re-entered the menu. Re-attaching the same portal will trigger an error otherwise.\n if (!overlayRef.hasAttached()) {\n overlayRef.attach(this._getPortal(menu));\n menu.lazyContent?.attach(this.menuData);\n }\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu());\n menu.parentMenu = this.triggersSubmenu() ? this._parentMaterialMenu : undefined;\n menu.direction = this.dir;\n menu.focusFirstItem(this._openedBy || 'program');\n this._setIsMenuOpen(true);\n if (menu instanceof MatMenu) {\n menu._setIsOpen(true);\n menu._directDescendantItems.changes.pipe(takeUntil(menu.close)).subscribe(() => {\n // Re-adjust the position without locking when the amount of items\n // changes so that the overlay is allowed to pick a new optimal position.\n positionStrategy.withLockedPosition(false).reapplyLastPosition();\n positionStrategy.withLockedPosition(true);\n });\n }\n }\n /** Closes the menu. */\n closeMenu() {\n this.menu?.close.emit();\n }\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin, options) {\n if (this._focusMonitor && origin) {\n this._focusMonitor.focusVia(this._element, origin, options);\n } else {\n this._element.nativeElement.focus(options);\n }\n }\n /**\n * Updates the position of the menu to ensure that it fits all options within the viewport.\n */\n updatePosition() {\n this._overlayRef?.updatePosition();\n }\n /** Closes the menu and does the necessary cleanup. */\n _destroyMenu(reason) {\n const overlayRef = this._overlayRef;\n const menu = this._menu;\n if (!overlayRef || !this.menuOpen) {\n return;\n }\n this._closingActionsSubscription.unsubscribe();\n this._pendingRemoval?.unsubscribe();\n // Note that we don't wait for the animation to finish if another trigger took\n // over the menu, because the panel will end up empty which looks glitchy.\n if (menu instanceof MatMenu && this._ownsMenu(menu)) {\n this._pendingRemoval = menu._animationDone.pipe(take(1)).subscribe(() => {\n overlayRef.detach();\n menu.lazyContent?.detach();\n });\n menu._setIsOpen(false);\n } else {\n overlayRef.detach();\n menu?.lazyContent?.detach();\n }\n if (menu && this._ownsMenu(menu)) {\n PANELS_TO_TRIGGERS.delete(menu);\n }\n // Always restore focus if the user is navigating using the keyboard or the menu was opened\n // programmatically. We don't restore for non-root triggers, because it can prevent focus\n // from making it back to the root trigger when closing a long chain of menus by clicking\n // on the backdrop.\n if (this.restoreFocus && (reason === 'keydown' || !this._openedBy || !this.triggersSubmenu())) {\n this.focus(this._openedBy);\n }\n this._openedBy = undefined;\n this._setIsMenuOpen(false);\n }\n // set state rather than toggle to support triggers sharing a menu\n _setIsMenuOpen(isOpen) {\n if (isOpen !== this._menuOpen) {\n this._menuOpen = isOpen;\n this._menuOpen ? this.menuOpened.emit() : this.menuClosed.emit();\n if (this.triggersSubmenu()) {\n this._menuItemInstance._setHighlighted(isOpen);\n }\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * This method creates the overlay from the provided menu's template and saves its\n * OverlayRef so that it can be attached to the DOM when openMenu is called.\n */\n _createOverlay(menu) {\n if (!this._overlayRef) {\n const config = this._getOverlayConfig(menu);\n this._subscribeToPositions(menu, config.positionStrategy);\n this._overlayRef = this._overlay.create(config);\n this._overlayRef.keydownEvents().subscribe(event => {\n if (this.menu instanceof MatMenu) {\n this.menu._handleKeydown(event);\n }\n });\n }\n return this._overlayRef;\n }\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayState.\n * @returns OverlayConfig\n */\n _getOverlayConfig(menu) {\n return new OverlayConfig({\n positionStrategy: this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn('.mat-menu-panel, .mat-mdc-menu-panel'),\n backdropClass: menu.backdropClass || 'cdk-overlay-transparent-backdrop',\n panelClass: menu.overlayPanelClass,\n scrollStrategy: this._scrollStrategy(),\n direction: this._dir || 'ltr'\n });\n }\n /**\n * Listens to changes in the position of the overlay and sets the correct classes\n * on the menu based on the new position. This ensures the animation origin is always\n * correct, even if a fallback position is used for the overlay.\n */\n _subscribeToPositions(menu, position) {\n if (menu.setPositionClasses) {\n position.positionChanges.subscribe(change => {\n this._ngZone.run(() => {\n const posX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';\n const posY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';\n menu.setPositionClasses(posX, posY);\n });\n });\n }\n }\n /**\n * Sets the appropriate positions on a position strategy\n * so the overlay connects with the trigger correctly.\n * @param positionStrategy Strategy whose position to update.\n */\n _setPosition(menu, positionStrategy) {\n let [originX, originFallbackX] = menu.xPosition === 'before' ? ['end', 'start'] : ['start', 'end'];\n let [overlayY, overlayFallbackY] = menu.yPosition === 'above' ? ['bottom', 'top'] : ['top', 'bottom'];\n let [originY, originFallbackY] = [overlayY, overlayFallbackY];\n let [overlayX, overlayFallbackX] = [originX, originFallbackX];\n let offsetY = 0;\n if (this.triggersSubmenu()) {\n // When the menu is a sub-menu, it should always align itself\n // to the edges of the trigger, instead of overlapping it.\n overlayFallbackX = originX = menu.xPosition === 'before' ? 'start' : 'end';\n originFallbackX = overlayX = originX === 'end' ? 'start' : 'end';\n if (this._parentMaterialMenu) {\n if (this._parentInnerPadding == null) {\n const firstItem = this._parentMaterialMenu.items.first;\n this._parentInnerPadding = firstItem ? firstItem._getHostElement().offsetTop : 0;\n }\n offsetY = overlayY === 'bottom' ? this._parentInnerPadding : -this._parentInnerPadding;\n }\n } else if (!menu.overlapTrigger) {\n originY = overlayY === 'top' ? 'bottom' : 'top';\n originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';\n }\n positionStrategy.withPositions([{\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n }, {\n originX: originFallbackX,\n originY,\n overlayX: overlayFallbackX,\n overlayY,\n offsetY\n }, {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }, {\n originX: originFallbackX,\n originY: originFallbackY,\n overlayX: overlayFallbackX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }]);\n }\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n _menuClosingActions() {\n const backdrop = this._overlayRef.backdropClick();\n const detachments = this._overlayRef.detachments();\n const parentClose = this._parentMaterialMenu ? this._parentMaterialMenu.closed : of();\n const hover = this._parentMaterialMenu ? this._parentMaterialMenu._hovered().pipe(filter(active => this._menuOpen && active !== this._menuItemInstance)) : of();\n return merge(backdrop, parentClose, hover, detachments);\n }\n /** Handles mouse presses on the trigger. */\n _handleMousedown(event) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : undefined;\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault();\n }\n }\n }\n /** Handles key presses on the trigger. */\n _handleKeydown(event) {\n const keyCode = event.keyCode;\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard';\n }\n if (this.triggersSubmenu() && (keyCode === RIGHT_ARROW && this.dir === 'ltr' || keyCode === LEFT_ARROW && this.dir === 'rtl')) {\n this._openedBy = 'keyboard';\n this.openMenu();\n }\n }\n /** Handles click events on the trigger. */\n _handleClick(event) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation();\n this.openMenu();\n } else {\n this.toggleMenu();\n }\n }\n /** Handles the cases where the user hovers over the trigger. */\n _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (this.triggersSubmenu() && this._parentMaterialMenu) {\n this._hoverSubscription = this._parentMaterialMenu._hovered().subscribe(active => {\n if (active === this._menuItemInstance && !active.disabled) {\n this._openedBy = 'mouse';\n this.openMenu();\n }\n });\n }\n }\n /** Gets the portal that should be attached to the overlay. */\n _getPortal(menu) {\n // Note that we can avoid this check by keeping the portal on the menu panel.\n // While it would be cleaner, we'd have to introduce another required method on\n // `MatMenuPanel`, making it harder to consume.\n if (!this._portal || this._portal.templateRef !== menu.templateRef) {\n this._portal = new TemplatePortal(menu.templateRef, this._viewContainerRef);\n }\n return this._portal;\n }\n /**\n * Determines whether the trigger owns a specific menu panel, at the current point in time.\n * This allows us to distinguish the case where the same panel is passed into multiple triggers\n * and multiple are open at a time.\n */\n _ownsMenu(menu) {\n return PANELS_TO_TRIGGERS.get(menu) === this;\n }\n static ɵfac = function MatMenuTrigger_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMenuTrigger)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatMenuTrigger,\n selectors: [[\"\", \"mat-menu-trigger-for\", \"\"], [\"\", \"matMenuTriggerFor\", \"\"]],\n hostAttrs: [1, \"mat-mdc-menu-trigger\"],\n hostVars: 3,\n hostBindings: function MatMenuTrigger_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatMenuTrigger_click_HostBindingHandler($event) {\n return ctx._handleClick($event);\n })(\"mousedown\", function MatMenuTrigger_mousedown_HostBindingHandler($event) {\n return ctx._handleMousedown($event);\n })(\"keydown\", function MatMenuTrigger_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-haspopup\", ctx.menu ? \"menu\" : null)(\"aria-expanded\", ctx.menuOpen)(\"aria-controls\", ctx.menuOpen ? ctx.menu.panelId : null);\n }\n },\n inputs: {\n _deprecatedMatMenuTriggerFor: [0, \"mat-menu-trigger-for\", \"_deprecatedMatMenuTriggerFor\"],\n menu: [0, \"matMenuTriggerFor\", \"menu\"],\n menuData: [0, \"matMenuTriggerData\", \"menuData\"],\n restoreFocus: [0, \"matMenuTriggerRestoreFocus\", \"restoreFocus\"]\n },\n outputs: {\n menuOpened: \"menuOpened\",\n onMenuOpen: \"onMenuOpen\",\n menuClosed: \"menuClosed\",\n onMenuClose: \"onMenuClose\"\n },\n exportAs: [\"matMenuTrigger\"]\n });\n }\n return MatMenuTrigger;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatMenuModule = /*#__PURE__*/(() => {\n class MatMenuModule {\n static ɵfac = function MatMenuModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMenuModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatMenuModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [MatRippleModule, MatCommonModule, OverlayModule, CdkScrollableModule, MatCommonModule]\n });\n }\n return MatMenuModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by the mat-menu component.\n * Animation duration and timing values are based on:\n * https://material.io/guidelines/components/menus.html#menus-usage\n * @docs-private\n * @deprecated No longer used, will be removed.\n * @breaking-change 21.0.0\n */\nconst matMenuAnimations = {\n /**\n * This animation controls the menu panel's entry and exit from the page.\n *\n * When the menu panel is added to the DOM, it scales in and fades in its border.\n *\n * When the menu panel is removed from the DOM, it simply fades out after a brief\n * delay to display the ripple.\n */\n transformMenu: /*#__PURE__*/trigger('transformMenu', [/*#__PURE__*/state('void', /*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(0.8)'\n })), /*#__PURE__*/transition('void => enter', /*#__PURE__*/animate('120ms cubic-bezier(0, 0, 0.2, 1)', /*#__PURE__*/style({\n opacity: 1,\n transform: 'scale(1)'\n }))), /*#__PURE__*/transition('* => void', /*#__PURE__*/animate('100ms 25ms linear', /*#__PURE__*/style({\n opacity: 0\n })))]),\n /**\n * This animation fades in the background color and content of the menu panel\n * after its containing element is scaled in.\n */\n fadeInItems: /*#__PURE__*/trigger('fadeInItems', [\n /*#__PURE__*/\n // TODO(crisbeto): this is inside the `transformMenu`\n // now. Remove next time we do breaking changes.\n state('showing', /*#__PURE__*/style({\n opacity: 1\n })), /*#__PURE__*/transition('void => *', [/*#__PURE__*/style({\n opacity: 0\n }), /*#__PURE__*/animate('400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)')])])\n};\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nconst fadeInItems = matMenuAnimations.fadeInItems;\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nconst transformMenu = matMenuAnimations.transformMenu;\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_MENU_CONTENT, MAT_MENU_DEFAULT_OPTIONS, MAT_MENU_PANEL, MAT_MENU_SCROLL_STRATEGY, MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER, MENU_PANEL_TOP_PADDING, MatMenu, MatMenuContent, MatMenuItem, MatMenuModule, MatMenuTrigger, fadeInItems, matMenuAnimations, transformMenu };\n","import { AppState } from 'src/app/store/app.states';\r\nimport { Component } from '@angular/core';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { Router, RouterLink } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ComponentBase } from '../../../../views/component-base';\r\nimport { commomState_SystemConfig_Config } from 'src/app/store/common/common.selectors';\r\nimport { NgIf, AsyncPipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.master.html',\r\n styleUrls: ['./footer.master.scss'],\r\n imports: [NgIf, RouterLink, AsyncPipe],\r\n})\r\nexport class FooterComponent extends ComponentBase {\r\n tenantConfig$ = this.store.pipe(select(commomState_SystemConfig_Config));\r\n\r\n constructor(\r\n public store: Store,\r\n public dialog: MatDialog,\r\n private router: Router\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInitBase();\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroyBase();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Make
\r\n
mondays matter.
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n

About us

\r\n About smartMonday\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Your access to this website is subject to these terms and conditions, our privacy statement, the\r\n trustee’s privacy\r\n statement and all\r\n disclaimers on this website.

\r\n

\r\n The information on this website is general in nature and does not take account of your personal financial\r\n objectives, situation or needs. Before deciding whether a particular product is appropriate for you, please read\r\n and consider the relevant Product Disclosure Statement, Target Market Determination and Financial Services Guide\r\n which is available at smartmonday.com.au/documents or by calling us. Contact us about the\r\n intra-fund advice\r\n services you may be able to access through your membership. Past performance is not a reliable indicator of\r\n future performance. The content of this website is not intended to represent or be a substitute for specific\r\n taxation or legal advice and should not be relied on as such. You should obtain advice from a registered tax\r\n agent or legal practitioner. Any taxation, legal and other matters referred to on this website are based on\r\n smartMonday and the Trustee’s interpretation of existing laws and should not be relied upon in place of\r\n appropriate professional advice. Those laws may change from time to time.\r\n

\r\n

\r\n smartMonday is a registered trading name of smartMonday Solutions Limited ABN 48 002 288 646 AFSL 236667, the\r\n sponsor of the Smart Future Trust ABN 68 964 712 340 (the Fund). The trustee of the Fund and issuer of the\r\n information on this website is Equity Trustees Superannuation Limited ABN 50 055 641 757 AFSL 229757 RSE Licence\r\n L0001458. smartMonday products are part of the Fund.\r\n

\r\n

\r\n smartMonday and/or the trustee are either the owner or licensed user of the copyright in all material contained\r\n on this website. Where a third-party source has been relied on, smartMonday and/or the trustee have attributed\r\n credit for that information. Except to the extent necessary for personal use, you are not permitted to\r\n reproduce, adapt, upload, link, frame, broadcast, transmit, or distribute any material on this website without\r\n the permission of smartMonday or the trustee, or as permitted under law.\r\n

\r\n

\r\n This website, the information and materials on the website, and the software made available on the website, are\r\n provided 'as is' without any representation or warranty, express or implied, of any kind. To the maximum extent\r\n possible, smartMonday and/or the trustee do not warrant or guarantee the accuracy or completeness of the\r\n materials or the reliability of any advice, opinion, statement or other information displayed or distributed\r\n through the website. You acknowledge that you are responsible for assessing the accuracy and completeness of\r\n content on this website, and reliance on any opinion, advice, statement, memorandum or information shall be at\r\n your own risk. In no event shall smartMonday and/or the trustee be liable to any website user or any other\r\n entity for any damages whatsoever, related to the inability to access or use the material or functions of this\r\n website.\r\n

\r\n

\r\n © 2023 smartMonday Solutions Limited - Financial Services\r\n Guide\r\n

\r\n
\r\n
\r\n
","import { AccountModel } from './../../../../model/account.model';\r\nimport { combineLatest } from 'rxjs';\r\nimport { SetMenuAction } from './../../../../store/common/common.actions';\r\nimport { mainLayout_Animated, mainLayout_Expanded } from './selectors';\r\nimport { MenuModel } from './../../../../model/menu.model';\r\nimport { AppState } from 'src/app/store/app.states';\r\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { select, Store } from '@ngrx/store';\r\nimport {\r\n Router,\r\n RouterLink,\r\n RouterLinkActive,\r\n RouterOutlet,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ComponentBase } from 'src/app/views/component-base';\r\nimport {\r\n commomState_IsLoading,\r\n commomState_LoggedinInfo,\r\n commomState_MenuList,\r\n commonState_IsFetching,\r\n commonState_SystemConfig_AccountFeatureToggles,\r\n} from 'src/app/store/common/common.selectors';\r\nimport {\r\n MainExpandedRequestAction,\r\n MainSetAnimatedPageAction,\r\n} from './actions';\r\nimport { SMRTState } from '../../store/smrt.states';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\nimport { insuranceQuestionnaire_ShowQuestionnaire } from 'src/app/modules/shared/components/insurance-questionnaire/selectors';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { memberViewOverview_Model } from 'src/app/modules/shared/components/member-view-overview/selectors';\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet';\r\nimport { filter } from 'rxjs/operators';\r\nimport { memberAccountDropdown_SelectedAccount } from 'src/app/modules/shared/components/member-account-dropdown/selectors';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AccountFeatureToggle } from 'src/app/model/account-feature-toggles.model';\r\nimport { FeatureToggleValue } from 'src/app/model/feature-toggle-value.model';\r\nimport { FeatureToggleName } from 'src/app/model/feature-toggle-name.model';\r\nimport { FeatureToggleHelper } from 'src/app/helper/featureToggleHelper';\r\nimport {\r\n NgClass,\r\n AsyncPipe,\r\n NgIf,\r\n NgTemplateOutlet,\r\n NgFor,\r\n} from '@angular/common';\r\nimport {\r\n MatAccordion,\r\n MatExpansionPanel,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n} from '@angular/material/expansion';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatMenuTrigger, MatMenu } from '@angular/material/menu';\r\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\r\nimport { AppScrollUpComponent } from '@ifaa-components/ui-components';\r\nimport { MemberAccountDropdownComponent } from 'src/app/modules/shared/components/member-account-dropdown/member-account-dropdown.component';\r\nimport { UserTopDropdownComponent } from 'src/app/modules/shared/components/user-top-dropdown/user-top-dropdown.component';\r\nimport { AnimateCssDirective } from 'src/app/modules/shared/directives/animatecss.directive';\r\nimport { ScreenWidthDirective } from 'src/app/modules/shared/directives/screen-width.directive';\r\nimport { FeatureTogglePipe } from 'src/app/modules/shared/pipes/featureToggle';\r\nimport { FooterComponent } from '../footer/footer.master';\r\n\r\n@Component({\r\n selector: 'login-master',\r\n templateUrl: './main.master.html',\r\n styleUrls: ['./main.master.scss'],\r\n imports: [\r\n ScreenWidthDirective,\r\n NgClass,\r\n AsyncPipe,\r\n MemberAccountDropdownComponent,\r\n UserTopDropdownComponent,\r\n NgIf,\r\n NgTemplateOutlet,\r\n AppScrollUpComponent,\r\n RouterOutlet,\r\n MatProgressSpinner,\r\n AnimateCssDirective,\r\n MatIcon,\r\n RouterLink,\r\n FooterComponent,\r\n MatAccordion,\r\n NgFor,\r\n MatExpansionPanel,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n RouterLinkActive,\r\n MatMenuTrigger,\r\n MatMenu,\r\n FeatureTogglePipe,\r\n ],\r\n})\r\nexport class MainMasterComponent extends ComponentBase {\r\n expanded: MenuModel[] = [];\r\n animated$ = this.store.pipe(select(mainLayout_Animated));\r\n expanded$ = this.smrtstore.pipe(select(mainLayout_Expanded));\r\n menuList$ = this.store.pipe(select(commomState_MenuList));\r\n loggedInUser$ = this.store.pipe(select(commomState_LoggedinInfo));\r\n isLoading$ = this.store.pipe(select(commomState_IsLoading));\r\n isFetching$ = this.store.pipe(select(commonState_IsFetching));\r\n isQuestionnarieVisible$ = this.store.pipe(\r\n select(insuranceQuestionnaire_ShowQuestionnaire)\r\n );\r\n user$ = this.store.pipe(select(memberViewOverview_Model));\r\n selectedAccount$ = this.store.pipe(\r\n select(memberAccountDropdown_SelectedAccount)\r\n );\r\n accountFeatureToggles$ = this.store.pipe(\r\n select(commonState_SystemConfig_AccountFeatureToggles)\r\n );\r\n\r\n accountFeatureToggles: AccountFeatureToggle[] = null;\r\n featureToggleValues: any = null;\r\n featureToggleHelper = new FeatureToggleHelper();\r\n\r\n menuMode = 'side';\r\n menuOpened = true;\r\n showMenuIconTop = true;\r\n selectedAccount: AccountModel = null;\r\n @ViewChild('templateBottomSheet') TemplateBottomSheet: TemplateRef;\r\n menu = [\r\n {\r\n id: '1',\r\n name: 'Overview',\r\n link: '/dashboard',\r\n icon: 'house',\r\n children: [],\r\n } as MenuModel,\r\n {\r\n id: '3',\r\n name: 'Personal Details',\r\n icon: 'account_box',\r\n children: [\r\n {\r\n id: '3-3',\r\n name: 'Change your password',\r\n link: '/change-password',\r\n icon: 'lock',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.changePassword.view,\r\n } as MenuModel,\r\n {\r\n id: '3-1',\r\n name: 'Update your details',\r\n link: '/personal-details',\r\n icon: 'create',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.personalDetails.view,\r\n } as MenuModel,\r\n // { id: '3-2', name: 'Employment details', link: '/', icon: 'business', children: [] } as MenuModel,\r\n {\r\n id: '3-4',\r\n name: 'Beneficiaries',\r\n link: '/beneficiaries',\r\n icon: 'supervisor_account',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.beneficiaries.view,\r\n } as MenuModel,\r\n {\r\n id: '3-5',\r\n name: 'Adviser',\r\n link: '/',\r\n icon: 'psychology',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.advisors.view,\r\n } as MenuModel,\r\n {\r\n id: '3-6',\r\n name: 'Take me with you',\r\n link: '/take-me-with-you',\r\n icon: 'tour',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.takeMeWithYou.view,\r\n } as MenuModel,\r\n ],\r\n } as MenuModel,\r\n {\r\n id: '2',\r\n name: 'Account Details',\r\n icon: 'manage_accounts',\r\n children: [\r\n {\r\n id: '2-1',\r\n name: 'Transactions',\r\n link: '/transaction-listing',\r\n icon: 'list',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.transactions.view,\r\n } as MenuModel,\r\n {\r\n id: '2-2',\r\n name: 'Manage Investments',\r\n link: '/investment',\r\n icon: 'currency_exchange',\r\n children: [],\r\n featureFlag:\r\n FeatureToggleName.member.account.manageInvestments.update,\r\n } as MenuModel,\r\n {\r\n id: '2-2',\r\n name: 'Investment Switch History',\r\n link: '/investment/switch-history',\r\n icon: 'manage_history',\r\n children: [],\r\n featureFlag:\r\n FeatureToggleName.member.account.manageInvestments.update,\r\n } as MenuModel,\r\n {\r\n id: '2-3',\r\n name: 'Unit price listing',\r\n link: '/unit-prices',\r\n icon: 'paid',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.unitPriceListing.view,\r\n } as MenuModel,\r\n {\r\n id: '2-4',\r\n name: 'Underlying investment',\r\n link: '/underlying-investment',\r\n icon: 'request_quote',\r\n children: [],\r\n featureFlag:\r\n FeatureToggleName.member.account.underlyingInvestmentSummary.view,\r\n } as MenuModel,\r\n {\r\n id: '2-5',\r\n name: 'Insurance details',\r\n link: '/insurance',\r\n icon: 'security',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.insuranceDetails.view,\r\n } as MenuModel,\r\n ,\r\n {\r\n id: '2-6',\r\n name: 'Start a pension',\r\n link: '/start-a-pension',\r\n icon: 'attach_money',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.startAPension.view,\r\n } as MenuModel,\r\n ],\r\n } as MenuModel,\r\n {\r\n id: '15',\r\n name: 'Contributions',\r\n icon: 'paid',\r\n children: [\r\n {\r\n id: '15-1',\r\n name: 'Make a contribution',\r\n link: '/make-a-contribution',\r\n icon: 'note_add',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.makeAContribution.view,\r\n } as MenuModel,\r\n {\r\n id: '15-2',\r\n name: 'Contribution cap limits',\r\n link: '/contributions',\r\n icon: 'settings_ethernet',\r\n children: [],\r\n featureFlag:\r\n FeatureToggleName.member.account.contributionCapLimits.view,\r\n } as MenuModel,\r\n {\r\n id: '15-3',\r\n name: 'Consolidate your super',\r\n link: '/rollin',\r\n icon: 'merge_type',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.rollIn.view,\r\n } as MenuModel,\r\n {\r\n id: '15-4',\r\n name: 'Notice of intent to claim a tax deduction',\r\n link: '/claim-a-tax-deduction',\r\n icon: 'price_change',\r\n children: [],\r\n featureFlag:\r\n FeatureToggleName.member.account.intentToClaimTaxDeduction.view,\r\n } as MenuModel,\r\n {\r\n id: '15-6',\r\n name: 'SuperMatch',\r\n link: '/rollin',\r\n icon: 'join_inner',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.superMatch.view,\r\n } as MenuModel,\r\n ],\r\n } as MenuModel,\r\n {\r\n id: '54',\r\n name: 'Pension',\r\n icon: 'savings',\r\n children: [\r\n {\r\n id: '54-1',\r\n name: 'Pension schedule',\r\n link: '/pension-details',\r\n icon: 'event',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.pensionDetails.view,\r\n } as MenuModel,\r\n {\r\n id: '54-2',\r\n name: 'Centrelink schedule',\r\n link: '/',\r\n icon: 'event',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.centrelinkSchedule.view,\r\n } as MenuModel,\r\n ],\r\n } as MenuModel,\r\n {\r\n id: '16',\r\n name: 'Access Your Super',\r\n link: '/access-your-super',\r\n icon: 'price_change',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.accessYourSuper.view,\r\n } as MenuModel,\r\n {\r\n id: '7',\r\n name: 'Documents',\r\n icon: 'folder',\r\n children: [\r\n {\r\n id: '7-1',\r\n name: 'View statements',\r\n link: '/member-statements',\r\n icon: 'text_snippet',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.viewStatements.view,\r\n } as MenuModel,\r\n {\r\n id: '7-2',\r\n name: 'Other documents',\r\n link: '/other-documents',\r\n icon: 'article',\r\n children: [],\r\n featureFlag: FeatureToggleName.member.account.otherDocuments.view,\r\n } as MenuModel,\r\n ],\r\n } as MenuModel,\r\n ];\r\n\r\n @ViewChild('drawer') drawer: MatDrawer;\r\n\r\n constructor(\r\n public store: Store,\r\n public smrtstore: Store,\r\n public dialog: MatDialog,\r\n private titleService: Title,\r\n private bottomSheet: MatBottomSheet,\r\n private router: Router,\r\n private msalInstance: MsalService\r\n ) {\r\n super();\r\n this.titleService.setTitle('smartMonday Member Portal');\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInitBase();\r\n // this.store.dispatch(RequestAction());\r\n\r\n this.featureToggleValues = {\r\n available: FeatureToggleValue.available,\r\n hidden: FeatureToggleValue.hidden,\r\n disabled: FeatureToggleValue.disabled,\r\n };\r\n\r\n this.sub = this.selectedAccount$.subscribe((x) => {\r\n if (x) this.selectedAccount = x;\r\n });\r\n\r\n this.screenWidthChange(this.store, (width: number) => {\r\n this.menuMode = 'side';\r\n this.menuOpened = true;\r\n\r\n if (width < 1300) {\r\n this.menuMode = 'over';\r\n this.menuOpened = false;\r\n }\r\n this.sub = this.router.events\r\n .pipe(filter((event) => event instanceof RoutesRecognized))\r\n .subscribe((event) => {\r\n this.bottomSheet.dismiss(this.TemplateBottomSheet);\r\n });\r\n });\r\n setTimeout(() => {\r\n this.store.dispatch(MainSetAnimatedPageAction());\r\n }, 1000);\r\n\r\n this.sub = this.expanded$.subscribe((x) => {\r\n this.expanded = x;\r\n });\r\n\r\n // Filter menu items based on insurance questionnaire and feature toggles, and then push to redux state\r\n combineLatest([\r\n this.selectedAccount$,\r\n this.accountFeatureToggles$,\r\n this.isQuestionnarieVisible$,\r\n ]).subscribe(([selectedAccount, featureToggles, isVisible]) => {\r\n if (\r\n selectedAccount &&\r\n featureToggles &&\r\n (isVisible === true || isVisible === false)\r\n ) {\r\n //Filter questionnaire stuff first\r\n var newMenu = [...this.menu];\r\n if (!isVisible) {\r\n for (let i = 0; i < newMenu.length; i++) {\r\n newMenu[i] = {\r\n ...newMenu[i],\r\n children: newMenu[i].children?.filter((c) => c.id != '6-2'),\r\n };\r\n }\r\n } else {\r\n for (let i = 0; i < newMenu.length; i++) {\r\n newMenu[i] = {\r\n ...newMenu[i],\r\n children: newMenu[i].children?.filter((c) => c.id != '6-1'),\r\n };\r\n }\r\n }\r\n\r\n // Filter feature toggles\r\n var returnMenu = [];\r\n for (let i = 0; i < newMenu.length; i++) {\r\n // If the menu item has children we should check that at least 1 child item will be available/disabled\r\n // If there are 0 child items available/disabled, we dont show the top level menu item\r\n if (newMenu[i].children.length > 0) {\r\n var topLevelMenuItem = {\r\n ...newMenu[i],\r\n children: newMenu[i].children?.filter((c) =>\r\n this.featureToggleHelper.checkToggle(\r\n c.featureFlag,\r\n featureToggles,\r\n selectedAccount\r\n )\r\n ),\r\n };\r\n\r\n if (topLevelMenuItem.children.length > 0) {\r\n returnMenu.push(topLevelMenuItem);\r\n }\r\n } else {\r\n // If there are 0 children, we just check the feature toggle on the top level item and add it if its not hidden (e.g. AYS)\r\n if (\r\n this.featureToggleHelper.checkToggle(\r\n newMenu[i].featureFlag,\r\n featureToggles,\r\n selectedAccount\r\n )\r\n ) {\r\n returnMenu.push(newMenu[i]);\r\n }\r\n }\r\n }\r\n\r\n this.setMenu(returnMenu);\r\n }\r\n });\r\n }\r\n bs: any = null;\r\n openMenu() {\r\n if (this.bs) {\r\n this.bs.dismiss();\r\n this.bs = null;\r\n return;\r\n }\r\n this.bs = this.bottomSheet.open(this.TemplateBottomSheet, {\r\n panelClass: 'menu-items',\r\n });\r\n }\r\n\r\n openedChange() {\r\n if (this.drawer) {\r\n this.menuOpened = this.drawer.opened;\r\n }\r\n }\r\n onSwipeToggle(event) {\r\n this.menuOpened = !this.menuOpened;\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroyBase();\r\n }\r\n\r\n onItemSelectedClick(item: MenuModel) {\r\n this.store.dispatch(MainExpandedRequestAction({ menuItem: item }));\r\n\r\n if (item.link?.startsWith('http')) {\r\n window.open(item.link, '_blank');\r\n } else {\r\n if (item.link) this.router.navigate([item.link]);\r\n }\r\n }\r\n\r\n isMenuExpanded(item: MenuModel) {\r\n return this.expanded.filter((x) => x.id == item.id).length > 0;\r\n }\r\n\r\n onSignoutClick(): void {\r\n this.msalInstance.logoutRedirect({\r\n postLogoutRedirectUri: environment.b2cLogoutUrl,\r\n });\r\n }\r\n\r\n setMenu(menu: MenuModel[]) {\r\n this.store.dispatch(SetMenuAction({ data: menu }));\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{item.icon}}{{item.name}}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { featureKey } from '../../store/smrt.reducers';\r\nimport { SMRTState } from '../../store/smrt.states';\r\n\r\nimport { IEmployerHistoryViewState } from './state';\r\n\r\nexport const memberPortalState = createFeatureSelector(featureKey);\r\n\r\nexport const getEmployerHistoryView = createSelector(memberPortalState, (state) => state.employerHistoryViewState);\r\n\r\nexport const getBeneficiariesView_List = createSelector(\r\n getEmployerHistoryView,\r\n (state: IEmployerHistoryViewState) => state.list\r\n);\r\n\r\n","import { getBeneficiariesView_List } from './selectors';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { RequestAction } from './actions';\r\nimport { ComponentBase } from '../../../../views/component-base';\r\nimport { RouterLink } from '@angular/router';\r\nimport { MemberPortalSharedState } from 'src/app/modules/shared/store/shared.states';\r\nimport { memberAccountDropdown_SelectedAccount } from 'src/app/modules/shared/components/member-account-dropdown/selectors';\r\nimport { SMRTState } from '../../store/smrt.states';\r\nimport {\r\n NgIf,\r\n NgFor,\r\n AsyncPipe,\r\n CurrencyPipe,\r\n DatePipe,\r\n} from '@angular/common';\r\nimport {\r\n AppToolbarOptionsComponent,\r\n AppNoItemsComponent,\r\n DashPipe,\r\n} from '@ifaa-components/ui-components';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { AppComponentWrapperComponent } from 'src/app/modules/shared/components/app-component-wrapper/app-component-wrapper.component';\r\nimport { AnimateCssDirective } from 'src/app/modules/shared/directives/animatecss.directive';\r\nimport { MessageDirective } from 'src/app/modules/shared/directives/message.directive';\r\n\r\n@Component({\r\n selector: 'app-employment-history-view',\r\n templateUrl: './employment-history-view.component.html',\r\n styleUrls: ['./employment-history-view.component.scss'],\r\n imports: [\r\n AppToolbarOptionsComponent,\r\n AnimateCssDirective,\r\n AppComponentWrapperComponent,\r\n RouterLink,\r\n NgIf,\r\n AppNoItemsComponent,\r\n MessageDirective,\r\n NgFor,\r\n AsyncPipe,\r\n CurrencyPipe,\r\n DatePipe,\r\n DashPipe,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class EmploymentHistoryViewComponent\r\n extends ComponentBase\r\n implements OnInit, OnDestroy\r\n{\r\n selectedAccount$ = this.store.pipe(\r\n select(memberAccountDropdown_SelectedAccount)\r\n );\r\n list$ = this.store.pipe(select(getBeneficiariesView_List));\r\n\r\n constructor(\r\n public store: Store,\r\n public smrtstore: Store\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInitBase();\r\n this.sub = this.selectedAccount$.subscribe((x) => {\r\n if (x) {\r\n this.dispatch(this.store, RequestAction({ accountId: x.accountId }));\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroyBase();\r\n }\r\n\r\n onEditClick() {}\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
Employment History
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

This is a listing of all of your employments where contributions have been received into CIRT.\r\n All amounts claimed are displayed are Gross amounts and do not include any tax that may have been deducted.\r\n A full listing of contributions made to CIRT on your behalf can be found on the transaction listing page

\r\n \r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Employer NameStart DateEnd DateCIRT Severance Contribution TotalAmount ClaimedAvailable Balance
{{item.employerName}}{{item.startDate | date:'dd/MM/yyyy'}}{{item.endDate | date:'dd/MM/yyyy'}}{{item.employerSeverance | currency | dash}}{{item.severanceClaimed | currency | dash}}{{item.availableBalance | currency | dash}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { featureKey } from '../../store/smrt.reducers';\r\nimport { SMRTState } from '../../store/smrt.states';\r\nimport { ILodgeClaimState } from './state';\r\n\r\nexport const memberPortalState = createFeatureSelector(featureKey);\r\n\r\nexport const lodgeClaim = createSelector(memberPortalState, (state) => state.lodgeClaim);\r\n\r\nexport const lodgeClaim_Form = createSelector(\r\n lodgeClaim,\r\n (state: ILodgeClaimState) => state.form\r\n);\r\n\r\nexport const lodgeClaim_claimDocumentationList = createSelector(\r\n lodgeClaim,\r\n (state: ILodgeClaimState) => state.form.controls.attachments.controls\r\n);\r\n\r\nexport const lodgeClaim_CurrentStep = createSelector(\r\n lodgeClaim,\r\n (state: ILodgeClaimState) => state.currentStep\r\n);\r\n\r\nexport const lodgeClaim_TotalSteps = createSelector(\r\n lodgeClaim,\r\n (state: ILodgeClaimState) => state.totalSteps\r\n);\r\n\r\nexport const lodgeClaim_Validated = createSelector(\r\n lodgeClaim,\r\n (state: ILodgeClaimState) => state.validated\r\n);\r\n\r\nexport const lodgeClaim_EmployerList = createSelector(\r\n lodgeClaim,\r\n (state: ILodgeClaimState) => state.form.controls.employers.controls\r\n);\r\n\r\nexport const lodgeClaim_LastModifiedTime = createSelector(\r\n lodgeClaim,\r\n (state: ILodgeClaimState) => state.lastModifiedTime\r\n);\r\n\r\n\r\n","import { UIComponentState } from '@ifaa-components/ui-components/lib/store/app.states';\r\nimport { ComponentBase } from 'src/app/views/component-base';\r\nimport { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { SMRTState } from '../../store/smrt.states';\r\nimport { LodgeClaimModel } from './state';\r\nimport {\r\n EmployerListRequestAction,\r\n MemberDataRequestAction,\r\n NextStepAction,\r\n PreviousStepAction,\r\n RemoveAttachmentByIndexAction,\r\n ResetFormAction,\r\n SubmitRequestAction,\r\n ValidateFormAction,\r\n} from './actions';\r\nimport {\r\n lodgeClaim_claimDocumentationList,\r\n lodgeClaim_CurrentStep,\r\n lodgeClaim_EmployerList,\r\n lodgeClaim_Form,\r\n lodgeClaim_LastModifiedTime,\r\n lodgeClaim_TotalSteps,\r\n lodgeClaim_Validated,\r\n} from './selectors';\r\nimport { memberAccountDropdown_SelectedAccount } from 'src/app/modules/shared/components/member-account-dropdown/selectors';\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet';\r\nimport { Router } from '@angular/router';\r\nimport {\r\n NgIf,\r\n NgFor,\r\n AsyncPipe,\r\n CurrencyPipe,\r\n DatePipe,\r\n} from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatStepper, MatStep } from '@angular/material/stepper';\r\nimport {\r\n AppToolbarOptionsComponent,\r\n EntryFieldComponent,\r\n AppButtonToggleComponent,\r\n EntryFieldRadioComponent,\r\n AppReadonlyComponent,\r\n FileEntryFieldComponent,\r\n AppButtonComponent,\r\n} from '@ifaa-components/ui-components';\r\nimport { NgrxFormsModule } from 'ngrx-forms';\r\nimport { AppComponentWrapperComponent } from 'src/app/modules/shared/components/app-component-wrapper/app-component-wrapper.component';\r\nimport { AnimateCssDirective } from 'src/app/modules/shared/directives/animatecss.directive';\r\nimport { AppRadioDirective } from 'src/app/modules/shared/directives/app-radio.directive';\r\nimport { AppButtonDirective } from 'src/app/modules/shared/directives/appbutton.directive';\r\nimport { InputScrollDirective } from 'src/app/modules/shared/directives/input-scroll.directive';\r\n\r\n@Component({\r\n selector: 'app-tenant-lodge-claim',\r\n templateUrl: './lodge-claim.component.html',\r\n styleUrls: ['./lodge-claim.component.scss'],\r\n host: {\r\n class: 'w-100',\r\n },\r\n imports: [\r\n AppToolbarOptionsComponent,\r\n AnimateCssDirective,\r\n AppComponentWrapperComponent,\r\n NgIf,\r\n MatStepper,\r\n MatStep,\r\n EntryFieldComponent,\r\n InputScrollDirective,\r\n AppButtonToggleComponent,\r\n AppRadioDirective,\r\n EntryFieldRadioComponent,\r\n NgrxFormsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgFor,\r\n AppReadonlyComponent,\r\n MatIcon,\r\n FileEntryFieldComponent,\r\n AppButtonComponent,\r\n AppButtonDirective,\r\n AsyncPipe,\r\n CurrencyPipe,\r\n DatePipe,\r\n ],\r\n})\r\nexport class TenantLodgeClaimComponent\r\n extends ComponentBase\r\n implements OnInit, OnDestroy\r\n{\r\n form$ = this.smrtstore.pipe(select(lodgeClaim_Form));\r\n claimDocumentationList$ = this.smrtstore.pipe(\r\n select(lodgeClaim_claimDocumentationList)\r\n );\r\n employerList$ = this.smrtstore.pipe(select(lodgeClaim_EmployerList));\r\n currentStep$ = this.smrtstore.pipe(select(lodgeClaim_CurrentStep));\r\n totalSteps$ = this.smrtstore.pipe(select(lodgeClaim_TotalSteps));\r\n validated$ = this.store.pipe(select(lodgeClaim_Validated));\r\n selectedAccount$ = this.store.pipe(\r\n select(memberAccountDropdown_SelectedAccount)\r\n );\r\n lastModified$ = this.store.pipe(select(lodgeClaim_LastModifiedTime));\r\n accountId = 0;\r\n @ViewChild('myTemplate') customTemplate: TemplateRef;\r\n extensions: string[] = ['.pdf', '.png', '.jpg'];\r\n maxfilesize = 5242880; //5mb\r\n constructor(\r\n public store: Store,\r\n private bottomSheet: MatBottomSheet,\r\n private router: Router,\r\n public smrtstore: Store\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInitBase();\r\n this.store.dispatch(ResetFormAction());\r\n\r\n this.sub = this.selectedAccount$.subscribe((x) => {\r\n if (x && this.accountId === 0) {\r\n this.accountId = x.accountId;\r\n this.store.dispatch(\r\n MemberDataRequestAction({ accountId: x.accountId })\r\n );\r\n this.dispatch(\r\n this.store,\r\n EmployerListRequestAction({ accountId: x.accountId })\r\n );\r\n }\r\n });\r\n this.sub = this.validated$.subscribe((validated) => {\r\n if (!validated) this.dispatch(this.store, ValidateFormAction());\r\n });\r\n\r\n this.sub = this.lastModified$.subscribe((x) => {\r\n if (x) {\r\n this.bottomSheet.open(this.customTemplate, {\r\n disableClose: true,\r\n });\r\n\r\n this.dispatch(this.store, ResetFormAction());\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroyBase();\r\n }\r\n\r\n trackByFn(index, item) {\r\n return index;\r\n }\r\n\r\n onSubmitClick(data: LodgeClaimModel) {\r\n this.dispatch(\r\n this.store,\r\n SubmitRequestAction({ accountId: this.accountId, payload: data })\r\n );\r\n }\r\n\r\n onRemoveAttachmentClick(index: number) {\r\n this.dispatch(this.store, RemoveAttachmentByIndexAction({ index }));\r\n }\r\n\r\n onPreviousClick() {\r\n this.dispatch(this.store, PreviousStepAction());\r\n }\r\n\r\n onNextClick() {\r\n this.dispatch(this.store, NextStepAction());\r\n }\r\n\r\n onGoToDashboardClick() {\r\n this.bottomSheet.dismiss();\r\n this.router.navigate(['/']);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
Lodge CIRT Claim
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n You currently have no valid employments to lodge a benefit claim against.\r\n
\r\n 0\" [linear]=\"true\" #stepper\r\n [selectedIndex]=\"(currentStep$ | async)\">\r\n \r\n

Your Details

\r\n
\r\n

Please provide your Tax File Number\r\n

\r\n
\r\n \r\n \r\n
\r\n

Bank Details\r\n

\r\n
\r\n
\r\n
Claims will be paid via Direct Deposit to your nominated bank account. Please\r\n confirm your bank details below
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

Claim Type\r\n

\r\n
\r\n
\r\n
To claim all money available in your account, select the option to make a full\r\n claim
\r\n If you do not wish to claim the contributions from all employers or, you wish to claim a specific\r\n amount, select \"Make a partial claim\".
\r\n
\r\n \r\n
\r\n

Reason for Claim\r\n

\r\n
\r\n \r\n
\r\n
\r\n
Wait for Final Contributions?
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Are you currently on a Working Holiday Maker Visa?
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Claim Amounts

\r\n
\r\n

Available Employments\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Employment Info
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Claim Documentation

\r\n
\r\n
\r\n
\r\n To allow us to process your claim securely please provide a copy of Certified Identification and the top\r\n section of your bank statement (which includes your full name, account number and BSB).\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 1 && file.value.base64\" class=\"ms-1 click\"\r\n (click)=\"onRemoveAttachmentClick(i)\">\r\n close\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Confirm\r\n

\r\n
\r\n
\r\n
Please review to ensure all details are correct
\r\n
\r\n
\r\n
\r\n
    \r\n
  • All details must be given, in order for your claim to be processed
  • \r\n
  • If you are applying for a benefit payment other than as a result of redundancy, please contact the\r\n administrator for the information required
  • \r\n
  • Claims other than as a result of redundancy, MUST be summitted to the administrator WITHIN 12\r\n months of employment termination to be eligible for reduced tax rates. For more information on\r\n current rates, visit www.cirt.com.au
  • \r\n
  • A $40 transaction fee applies to most claims
  • \r\n
  • Contributions are usually made to CIRT the month after they are earned. Unless notified otherwise,\r\n your claim will be processed after your final contribution has been received
  • \r\n
  • PAYG summaries will not be issued for payments but will be reported to the ATO via Single Touch\r\n Payroll. You will find the associated income statement in your ATO MyGov account
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0\" class=\"lodge-claim-component actions\"\r\n icon=\"\" header=\"\">\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n 0 && (currentStep$ | async) <= (totalSteps$ | async)\"\r\n (onClick)=\"onPreviousClick()\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Thank you for your Claim submission\r\n

\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { AppState } from '../store/app.states';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { Store, select } from '@ngrx/store';\r\nimport { Observable, combineLatest } from 'rxjs';\r\nimport {\r\n commomState_LoggedinInfo,\r\n commonState_AccountDataRetrieved,\r\n commonState_SystemConfig_AccountFeatureToggles,\r\n commonState_SystemConfig_SiteError,\r\n} from '../store/common/common.selectors';\r\nimport { memberAccountDropdown_SelectedAccount } from '../modules/shared/components/member-account-dropdown/selectors';\r\nimport { RequestAction } from '../modules/shared/components/member-account-dropdown/actions';\r\nimport {\r\n AccountDataRetrievedAction,\r\n AccountFeatureTogglesRequestAction,\r\n IsLoggedInRequestAction,\r\n} from '../store/common/common.actions';\r\nimport { distinctUntilChanged, map, skipWhile, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AccountDataGuardService implements CanActivate {\r\n featuretoggle$ = this.store.pipe(\r\n select(commonState_SystemConfig_AccountFeatureToggles)\r\n );\r\n selectedAccount$ = this.store.pipe(\r\n select(memberAccountDropdown_SelectedAccount)\r\n );\r\n siteError$ = this.store.pipe(select(commonState_SystemConfig_SiteError));\r\n accountDataRetrieved$ = this.store.pipe(\r\n select(commonState_AccountDataRetrieved)\r\n );\r\n isLoggedIn$ = this.store.pipe(select(commomState_LoggedinInfo));\r\n\r\n constructor(public store: Store, private router: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean {\r\n return combineLatest([\r\n this.featuretoggle$,\r\n this.selectedAccount$,\r\n this.siteError$,\r\n this.accountDataRetrieved$,\r\n this.isLoggedIn$,\r\n ]).pipe(\r\n distinctUntilChanged((x, y) => {\r\n if (\r\n JSON.stringify(x[1]) !== JSON.stringify(y[1]) ||\r\n JSON.stringify(x[0]) !== JSON.stringify(y[0]) ||\r\n JSON.stringify(x[3]) !== JSON.stringify(y[3]) ||\r\n x[4].memberNumber !== y[4].memberNumber\r\n )\r\n return false;\r\n\r\n return true;\r\n }),\r\n tap((x) => {\r\n // If its a site wide error, dont retry any api calls (avoid infinite loop)\r\n if (x[2]) {\r\n return;\r\n }\r\n if (!x[4].memberNumber) {\r\n this.store.dispatch(IsLoggedInRequestAction());\r\n }\r\n // if the account data hasnt been retrieved on init\r\n // ial load and we dont have the selected account stored\r\n // send request and set flag so this doesnt get triggered again on navigation\r\n if (!x[3] && !x[1] && x[4].memberNumber) {\r\n this.store.dispatch(RequestAction());\r\n this.store.dispatch(AccountDataRetrievedAction());\r\n }\r\n // if we have the selected account already stored set account data retrieved true\r\n if (!x[3] && x[1] && x[4].memberNumber) {\r\n this.store.dispatch(AccountDataRetrievedAction());\r\n }\r\n\r\n if (x[1] && !x[0]) {\r\n this.store.dispatch(\r\n AccountFeatureTogglesRequestAction({ accountId: x[1].accountId })\r\n );\r\n }\r\n }),\r\n skipWhile((x) => {\r\n // If its a site wide error, continue through to return false\r\n if (x[2]) return false;\r\n\r\n return !x[0] || !x[1];\r\n }),\r\n map((x) => {\r\n // If its a site wide error, return false\r\n if (x[2]) return false;\r\n return true;\r\n })\r\n );\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\nimport { MainMasterComponent } from \"./layout/main/main.master\";\r\nimport { EmploymentHistoryViewComponent } from \"./views/employment-history/employment-history-view.component\";\r\nimport { TenantLodgeClaimComponent } from \"./views/lodge-claim/lodge-claim.component\";\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { AccountDataGuardService } from './../../route-guard/account-data-guard.service';\r\n\r\nconst smrtRoutes: Routes = [\r\n {\r\n path: 'lodge-claim',\r\n component: MainMasterComponent,\r\n canActivate: [MsalGuard, AccountDataGuardService],\r\n children: [\r\n {\r\n outlet: 'master',\r\n path: '',\r\n component: TenantLodgeClaimComponent\r\n }\r\n ]\r\n },\r\n {\r\n path: 'employment-history',\r\n component: MainMasterComponent,\r\n canActivate: [MsalGuard, AccountDataGuardService],\r\n children: [\r\n {\r\n outlet: 'master',\r\n path: '',\r\n component: EmploymentHistoryViewComponent\r\n }\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(smrtRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SMRTRoutingModule { }\r\n"],"mappings":"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","names":["RequestAction","createAction","props","ResponseAction","state","employer","CurrentEmploymentModel","reducer","createReducer","onNgrxForms","onNgrxFormsAction","SetValueAction","action","on","ResponseAction","payload","__spreadProps","__spreadValues","currentEmployerViewReducer","RequestAction","createAction","props","ResponseAction","state","data","reducer","createReducer","onNgrxForms","onNgrxFormsAction","SetValueAction","action","on","ResponseAction","payload","__spreadProps","__spreadValues","employerBalancesReducer","MainExpandedRequestAction","createAction","props","MainSetAnimatedPageAction","mainLayoutState","page","expanded","animated","helper","Helper","reducer","createReducer","onNgrxForms","onNgrxFormsAction","SetValueAction","state","action","on","MainSetAnimatedPageAction","__spreadProps","__spreadValues","MainExpandedRequestAction","menuItem","clone","filter","x","id","length","mainLayoutReducer","RequestAction","createAction","props","ResponseAction","viewState","list","reducer","createReducer","onNgrxForms","onNgrxFormsAction","SetValueAction","state","action","on","ResponseAction","payload","__spreadProps","__spreadValues","employerHistoryViewReducer","LodgeClaimModel","constructor","employeeId","taxFileNumber","hasTFN","amountType","claimType","attachments","AppFileModel","bankDetails","BankDetailsModel","employers","SMRTEmployerModel","waitForFinalContributions","workingHolidayMakerVisa","employmentId","employerId","startDate","amount","claimAmount","name","SubmitRequestAction","createAction","props","SubmitResponseAction","RemoveAttachmentByIndexAction","ResetFormAction","NextStepAction","PreviousStepAction","EmployerListRequestAction","EmployerListResponseAction","MemberDataRequestAction","MemberDataResponseAction","ValidateFormAction","formName","helper","Helper","lodgeClaimState","form","createFormGroupState","LodgeClaimModel","currentStep","totalSteps","validated","lastModifiedTime","validateEditMemberForm0","updateGroup","employeeId","validate","required","bankDetails","accountName","bsb","accountNumber","taxFileNumber","myForm","value","hasTFN","setErrors","actual","amountType","employers","some","x","claimAmount","claimType","validateStep","state","action","formGroupReducer","validatedForm","__spreadProps","__spreadValues","reducer","createReducer","onNgrxForms","onNgrxFormsAction","SetValueAction","controlId","indexOf","attachments","length","base64","setValue","AppFileModel","on","ValidateFormAction","clone","NextStepAction","SubmitResponseAction","payload","Date","MemberDataResponseAction","member","hasTfn","EmployerListResponseAction","enable","disable","ResetFormAction","PreviousStepAction","RemoveAttachmentByIndexAction","index","filter","_o","ind","lodgeClaimReducer","SMRTStartupValidationModel","constructor","email","token","StartupAction","createAction","props","StartupCompletedAction","LoggedInAction","IsLoggedInAction","CheckAvailabilityRequestAction","CheckAvailabilityResponseAction","formName","StartupState","form","createFormGroupState","SMRTStartupValidationModel","url","isLoading","isUnavailable","isUnavailableMessage","helper","Helper","validateStartupForm","updateGroup","email","validate","required","reducer","createReducer","onNgrxForms","onNgrxFormsAction","SetValueAction","state","action","on","StartupAction","__spreadProps","__spreadValues","CheckAvailabilityResponseAction","payload","data","message","StartupCompletedAction","startupReducerFormState","wrapReducerWithFormStateUpdate","s","startupReducer","featureKey","reducers","InjectionToken","factory","mainLayout","mainLayoutReducer","currentEmployer","currentEmployerViewReducer","employerHistoryViewState","employerHistoryViewReducer","employerBalancesState","employerBalancesReducer","lodgeClaim","lodgeClaimReducer","startupState","startupReducer","memberPortalState","createFeatureSelector","featureKey","mainLayout","createSelector","state","mainLayout_Expanded","expanded","mainLayout_Animated","animated","CDK_ACCORDION","InjectionToken","CdkAccordion","Subject","inject","_IdGenerator","changes","__ngFactoryType__","ɵɵdefineDirective","booleanAttribute","ɵɵProvidersFeature","ɵɵNgOnChangesFeature","CdkAccordionItem","ChangeDetectorRef","UniqueSelectionDispatcher","Subscription","EventEmitter","expanded","accordionId","id","CdkAccordionModule","ɵɵdefineNgModule","ɵɵdefineInjector","_c0","_c1","_c2","_c3","MatExpansionPanel_ng_template_7_Template","rf","ctx","_c4","_c5","MatExpansionPanelHeader_Conditional_4_Template","ɵɵelementStart","ɵɵnamespaceSVG","ɵɵelement","ɵɵelementEnd","MAT_ACCORDION","InjectionToken","MAT_EXPANSION_PANEL","MatExpansionPanelContent","inject","TemplateRef","__ngFactoryType__","ɵɵdefineDirective","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","MatExpansionPanel","CdkAccordionItem","ViewContainerRef","ANIMATION_MODULE_TYPE","DOCUMENT","NgZone","ElementRef","Renderer2","value","EventEmitter","Subject","_IdGenerator","defaultOptions","UniqueSelectionDispatcher","startWith","filter","take","TemplatePortal","changes","focusedElement","bodyElement","target","propertyName","element","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","ɵɵclassProp","booleanAttribute","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵNgOnChangesFeature","ɵɵprojectionDef","ɵɵprojection","ɵɵtemplate","ɵɵadvance","ɵɵattribute","ɵɵproperty","CdkPortalOutlet","MatExpansionPanelHeader","inject","MatExpansionPanel","ElementRef","FocusMonitor","ChangeDetectorRef","Subscription","_CdkPrivateStyleLoader","_StructuralStylesLoader","panel","defaultOptions","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","tabIndex","HostAttributeToken","accordionHideToggleChange","filter","changes","EMPTY","merge","isExpanded","event","hasModifierKey","origin","options","__ngFactoryType__","ɵɵdefineComponent","rf","ctx","ɵɵlistener","$event","ɵɵattribute","ɵɵstyleProp","ɵɵclassProp","value","numberAttribute","_c5","ɵɵprojectionDef","_c4","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵtemplate","MatExpansionPanelHeader_Conditional_4_Template","ɵɵadvance","ɵɵconditional","MatExpansionPanelDescription","ɵɵdefineDirective","MatExpansionPanelTitle","MatAccordion","CdkAccordion","QueryList","startWith","headers","header","FocusKeyManager","ɵMatAccordion_BaseFactory","ɵɵgetInheritedFactory","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","booleanAttribute","ɵɵProvidersFeature","MAT_ACCORDION","ɵɵInheritDefinitionFeature","MatExpansionModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","CdkAccordionModule","PortalModule","_c0","_c1","_c2","MatMenuItem_Conditional_4_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","_c3","MatMenu_ng_template_0_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","$event","ɵɵprojection","ɵɵclassMap","ɵɵclassProp","ɵɵproperty","ɵɵattribute","MAT_MENU_PANEL","InjectionToken","MatMenuItem","inject","ElementRef","DOCUMENT","FocusMonitor","ChangeDetectorRef","Subject","_CdkPrivateStyleLoader","_StructuralStylesLoader","origin","options","event","clone","icons","isHighlighted","triggersSubmenu","__ngFactoryType__","ɵɵdefineComponent","booleanAttribute","ɵɵprojectionDef","ɵɵtemplate","ɵɵadvance","ɵɵconditional","MatRipple","MAT_MENU_CONTENT","InjectionToken","MAT_MENU_DEFAULT_OPTIONS","InjectionToken","MAT_MENU_DEFAULT_OPTIONS_FACTORY","ENTER_ANIMATION","EXIT_ANIMATION","MatMenu","inject","ElementRef","ChangeDetectorRef","Injector","QueryList","Subject","value","classes","previousPanelClass","newClassList","__spreadValues","className","EventEmitter","_IdGenerator","defaultOptions","ANIMATION_MODULE_TYPE","FocusKeyManager","startWith","switchMap","items","merge","item","focusedItem","itemsList","manager","index","_item","event","keyCode","hasModifierKey","origin","afterNextRender","menuPanel","_depth","posX","posY","__spreadProps","state","isExit","isOpen","__ngFactoryType__","ɵɵdefineComponent","rf","ctx","dirIndex","ɵɵcontentQuery","MAT_MENU_CONTENT","MatMenuItem","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","TemplateRef","ɵɵattribute","booleanAttribute","ɵɵProvidersFeature","MAT_MENU_PANEL","_c3","ɵɵprojectionDef","ɵɵtemplate","MatMenu_ng_template_0_Template","MAT_MENU_SCROLL_STRATEGY","overlay","Overlay","MAT_MENU_SCROLL_STRATEGY_FACTORY","MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER","passiveEventListenerOptions","normalizePassiveListenerOptions","PANELS_TO_TRIGGERS","MatMenuTrigger","inject","Overlay","ElementRef","ViewContainerRef","MatMenuItem","Directionality","FocusMonitor","NgZone","MAT_MENU_SCROLL_STRATEGY","ChangeDetectorRef","Subscription","event","isFakeTouchstartFromScreenReader","v","menu","reason","EventEmitter","parentMenu","MAT_MENU_PANEL","MatMenu","passiveEventListenerOptions","previousTrigger","overlayRef","overlayConfig","positionStrategy","takeUntil","origin","options","take","isOpen","config","OverlayConfig","position","change","posX","posY","originX","originFallbackX","overlayY","overlayFallbackY","originY","originFallbackY","overlayX","overlayFallbackX","offsetY","firstItem","backdrop","detachments","parentClose","of","hover","filter","active","merge","isFakeMousedownFromScreenReader","keyCode","TemplatePortal","__ngFactoryType__","ɵɵdefineDirective","rf","ctx","ɵɵlistener","$event","ɵɵattribute","MatMenuModule","ɵɵdefineNgModule","ɵɵdefineInjector","MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER","MatRippleModule","MatCommonModule","OverlayModule","CdkScrollableModule","matMenuAnimations","trigger","state","style","transition","animate","fadeInItems","transformMenu","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","FooterComponent","ComponentBase","constructor","store","dialog","router","tenantConfig$","pipe","select","commomState_SystemConfig_Config","ngOnInit","ngOnInitBase","ngOnDestroy","ngOnDestroyBase","ɵɵdirectiveInject","Store","MatDialog","Router","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","FooterComponent_footer_0_Template","ɵɵproperty","ɵɵpipeBind1","NgIf","RouterLink","AsyncPipe","styles","ɵɵelementContainer","ɵɵelementStart","ɵɵtemplate","MainMasterComponent_div_11_ng_container_1_Template","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","templateMenu_r2","ɵɵelement","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r3","ɵɵnextContext","ɵɵresetView","openMenu","ɵɵtext","ɵɵtextInterpolate","item_r6","icon","child_r7","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_li_11_ng_container_1_a_1_mat_icon_1_Template","ɵɵpureFunction1","_c4","childFlagValue_r8","featureToggleValues","disabled","link","fragment","name","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_li_11_ng_container_1_a_2_mat_icon_1_Template","ɵɵsanitizeUrl","ɵɵelementContainerStart","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_li_11_ng_container_1_a_1_Template","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_li_11_ng_container_1_a_2_Template","startsWith","hidden","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_li_11_ng_container_1_Template","ɵɵpipeBind1","featureFlag","_r5","$implicit","onItemSelectedClick","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_mat_icon_7_Template","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_li_11_Template","children","length","ɵɵpureFunction2","_c3","MainMasterComponent_ng_template_26_mat_accordion_0_mat_expansion_panel_1_Template","menuList_r9","MainMasterComponent_ng_template_26_mat_accordion_0_Template","menuList$","item_r11","_r10","MainMasterComponent_ng_template_28_ng_container_0_div_1_a_5_mat_icon_3_Template","MainMasterComponent_ng_template_28_ng_container_0_div_1_a_5_mat_icon_6_Template","ɵɵclassProp","isMenuExpanded","menu_r12","child_r13","MainMasterComponent_ng_template_28_ng_container_0_div_1_li_11_ng_container_1_a_1_mat_icon_1_Template","childFlagValue_r14","ɵɵpureFunction0","_c5","MainMasterComponent_ng_template_28_ng_container_0_div_1_li_11_ng_container_1_a_2_mat_icon_1_Template","MainMasterComponent_ng_template_28_ng_container_0_div_1_li_11_ng_container_1_a_1_Template","MainMasterComponent_ng_template_28_ng_container_0_div_1_li_11_ng_container_1_a_2_Template","MainMasterComponent_ng_template_28_ng_container_0_div_1_li_11_ng_container_1_Template","MainMasterComponent_ng_template_28_ng_container_0_div_1_a_5_Template","MainMasterComponent_ng_template_28_ng_container_0_div_1_li_11_Template","MainMasterComponent_ng_template_28_ng_container_0_div_1_Template","menuList_r15","MainMasterComponent_ng_template_28_ng_container_0_Template","MainMasterComponent","ComponentBase","constructor","store","smrtstore","dialog","titleService","bottomSheet","router","msalInstance","expanded","animated$","pipe","select","mainLayout_Animated","expanded$","mainLayout_Expanded","commomState_MenuList","loggedInUser$","commomState_LoggedinInfo","isLoading$","commomState_IsLoading","isFetching$","commonState_IsFetching","isQuestionnarieVisible$","insuranceQuestionnaire_ShowQuestionnaire","user$","memberViewOverview_Model","selectedAccount$","memberAccountDropdown_SelectedAccount","accountFeatureToggles$","commonState_SystemConfig_AccountFeatureToggles","accountFeatureToggles","featureToggleHelper","FeatureToggleHelper","menuMode","menuOpened","showMenuIconTop","selectedAccount","menu","id","FeatureToggleName","member","changePassword","view","personalDetails","account","beneficiaries","advisors","takeMeWithYou","transactions","manageInvestments","update","unitPriceListing","underlyingInvestmentSummary","insuranceDetails","startAPension","makeAContribution","contributionCapLimits","rollIn","intentToClaimTaxDeduction","superMatch","pensionDetails","centrelinkSchedule","accessYourSuper","viewStatements","otherDocuments","bs","setTitle","ngOnInit","ngOnInitBase","available","FeatureToggleValue","sub","subscribe","x","screenWidthChange","width","events","filter","event","RoutesRecognized","dismiss","TemplateBottomSheet","setTimeout","dispatch","MainSetAnimatedPageAction","combineLatest","featureToggles","isVisible","newMenu","i","__spreadProps","__spreadValues","c","returnMenu","topLevelMenuItem","checkToggle","push","setMenu","open","panelClass","openedChange","drawer","opened","onSwipeToggle","ngOnDestroy","ngOnDestroyBase","item","MainExpandedRequestAction","menuItem","window","navigate","onSignoutClick","logoutRedirect","postLogoutRedirectUri","environment","b2cLogoutUrl","SetMenuAction","data","ɵɵdirectiveInject","Store","MatDialog","Title","MatBottomSheet","Router","MsalService","selectors","viewQuery","rf","ctx","MainMasterComponent_div_11_Template","MainMasterComponent_div_13_Template","$event","i0","_r1","MainMasterComponent_div_22_Template","MainMasterComponent_nav_24_Template","MainMasterComponent_ng_template_26_Template","ɵɵtemplateRefExtractor","MainMasterComponent_ng_template_28_Template","_c2","ɵɵclassMapInterpolate1","screenWidth","ScreenWidthDirective","NgClass","AsyncPipe","MemberAccountDropdownComponent","UserTopDropdownComponent","NgIf","NgTemplateOutlet","AppScrollUpComponent","RouterOutlet","MatProgressSpinner","AnimateCssDirective","MatIcon","RouterLink","FooterComponent","MatAccordion","NgFor","MatExpansionPanel","MatExpansionPanelHeader","MatExpansionPanelTitle","RouterLinkActive","MatMenuTrigger","MatMenu","FeatureTogglePipe","styles","memberPortalState","createFeatureSelector","featureKey","getEmployerHistoryView","createSelector","state","employerHistoryViewState","getBeneficiariesView_List","list","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","item_r1","employerName","ɵɵpipeBind2","startDate","endDate","ɵɵpipeBind1","employerSeverance","severanceClaimed","availableBalance","ɵɵtemplate","EmploymentHistoryViewComponent_table_16_tr_17_Template","ɵɵclassMapInterpolate1","ɵɵproperty","ctx_r1","list$","EmploymentHistoryViewComponent","ComponentBase","constructor","store","smrtstore","selectedAccount$","pipe","select","memberAccountDropdown_SelectedAccount","getBeneficiariesView_List","ngOnInit","ngOnInitBase","sub","subscribe","x","dispatch","RequestAction","accountId","ngOnDestroy","ngOnDestroyBase","onEditClick","ɵɵdirectiveInject","Store","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","EmploymentHistoryViewComponent_app_no_items_13_Template","EmploymentHistoryViewComponent_table_16_Template","tmp_0_0","length","tmp_1_0","AppToolbarOptionsComponent","AnimateCssDirective","AppComponentWrapperComponent","RouterLink","NgIf","AppNoItemsComponent","MessageDirective","NgFor","AsyncPipe","CurrencyPipe","DatePipe","DashPipe","TranslatePipe","styles","memberPortalState","createFeatureSelector","featureKey","lodgeClaim","createSelector","state","lodgeClaim_Form","form","lodgeClaim_claimDocumentationList","controls","attachments","lodgeClaim_CurrentStep","currentStep","lodgeClaim_TotalSteps","totalSteps","lodgeClaim_Validated","validated","lodgeClaim_EmployerList","employers","lodgeClaim_LastModifiedTime","lastModifiedTime","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵproperty","form_r1","controls","taxFileNumber","ɵɵadvance","item_r5","claimAmount","ɵɵtemplate","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_form_49_div_2_app_readonly_11_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_form_49_div_2_div_12_Template","value","name","ɵɵpipeBind2","startDate","ɵɵpipeBind1","amount","form_r3","amountType","ɵɵlistener","ɵɵrestoreView","_r2","$implicit","ctx_r3","ɵɵnextContext","ɵɵresetView","onSubmitClick","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_form_49_div_2_Template","employers","_r8","i_r9","index","onRemoveAttachmentClick","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_form_57_div_3_mat_icon_1_Template","claimDocumentationList$","length","file_r10","base64","extensions","maxfilesize","form_r7","_r6","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_form_57_div_3_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_div_3_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_app_entry_4_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_form_49_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_form_57_Template","hasTFN","bankDetails","accountName","bsb","accountNumber","claimType","waitForFinalContributions","workingHolidayMakerVisa","form$","form_r12","_r11","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_5_form_7_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_3_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_mat_step_5_Template","currentStep$","_r13","onNextClick","form_r14","isDisabled","isInvalid","_r15","_r16","onPreviousClick","TenantLodgeClaimComponent_app_component_wrapper_13_div_2_app_button_1_Template","TenantLodgeClaimComponent_app_component_wrapper_13_div_2_app_button_4_Template","TenantLodgeClaimComponent_app_component_wrapper_13_div_2_app_button_7_Template","totalSteps$","TenantLodgeClaimComponent_app_component_wrapper_13_div_2_Template","_r17","onGoToDashboardClick","TenantLodgeClaimComponent","ComponentBase","constructor","store","bottomSheet","router","smrtstore","pipe","select","lodgeClaim_Form","lodgeClaim_claimDocumentationList","employerList$","lodgeClaim_EmployerList","lodgeClaim_CurrentStep","lodgeClaim_TotalSteps","validated$","lodgeClaim_Validated","selectedAccount$","memberAccountDropdown_SelectedAccount","lastModified$","lodgeClaim_LastModifiedTime","accountId","ngOnInit","ngOnInitBase","dispatch","ResetFormAction","sub","subscribe","x","MemberDataRequestAction","EmployerListRequestAction","validated","ValidateFormAction","open","customTemplate","disableClose","ngOnDestroy","ngOnDestroyBase","trackByFn","item","data","SubmitRequestAction","payload","RemoveAttachmentByIndexAction","PreviousStepAction","NextStepAction","dismiss","navigate","ɵɵdirectiveInject","Store","MatBottomSheet","Router","selectors","viewQuery","rf","ctx","TenantLodgeClaimComponent_div_9_Template","TenantLodgeClaimComponent_mat_horizontal_stepper_11_Template","TenantLodgeClaimComponent_app_component_wrapper_13_Template","TenantLodgeClaimComponent_ng_template_15_Template","ɵɵtemplateRefExtractor","AppToolbarOptionsComponent","AnimateCssDirective","AppComponentWrapperComponent","NgIf","MatStepper","MatStep","EntryFieldComponent","InputScrollDirective","AppButtonToggleComponent","AppRadioDirective","EntryFieldRadioComponent","NgrxFormsModule","NgrxFormDirective","NgrxStatusCssClassesDirective","FormsModule","ɵNgNoValidate","NgControlStatusGroup","NgForm","ReactiveFormsModule","NgFor","AppReadonlyComponent","MatIcon","FileEntryFieldComponent","AppButtonComponent","AppButtonDirective","AsyncPipe","CurrencyPipe","DatePipe","styles","AccountDataGuardService","constructor","store","router","featuretoggle$","pipe","select","commonState_SystemConfig_AccountFeatureToggles","selectedAccount$","memberAccountDropdown_SelectedAccount","siteError$","commonState_SystemConfig_SiteError","accountDataRetrieved$","commonState_AccountDataRetrieved","isLoggedIn$","commomState_LoggedinInfo","canActivate","route","state","combineLatest","distinctUntilChanged","x","y","JSON","stringify","memberNumber","tap","dispatch","IsLoggedInRequestAction","RequestAction","AccountDataRetrievedAction","AccountFeatureTogglesRequestAction","accountId","skipWhile","map","ɵɵinject","Store","Router","factory","ɵfac","smrtRoutes","path","component","MainMasterComponent","canActivate","MsalGuard","AccountDataGuardService","children","outlet","TenantLodgeClaimComponent","EmploymentHistoryViewComponent","SMRTRoutingModule","RouterModule","forChild"],"x_google_ignoreList":[16,17,18]}