@softpak/components 21.3.1 → 21.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/softpak-components-spx-channel-selection.mjs +2 -2
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-tabs.mjs +4 -3
- package/fesm2022/softpak-components-spx-tabs.mjs.map +1 -1
- package/package.json +1 -1
- package/types/softpak-components-spx-tabs.d.ts +2 -1
|
@@ -115,7 +115,7 @@ class SpxChannelIndicatorComponent {
|
|
|
115
115
|
return this.channelType() !== 'Production' && this.channelType() !== 'Web (Live)';
|
|
116
116
|
}
|
|
117
117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxChannelIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxChannelIndicatorComponent, isStandalone: true, selector: "spx-channel-indicator", ngImport: i0, template: "<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType()
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxChannelIndicatorComponent, isStandalone: true, selector: "spx-channel-indicator", ngImport: i0, template: "<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType()) {\n <div class=\"text-base text-gray-600\">{{ channelType() }}</div>\n }\n </div>\n <spx-button (click)=\"onChange()\" [spxType]=\"'button'\">{{ spxTextChange | translate | capitalize }}</spx-button>\n</div>", dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType", "spxName"], outputs: ["spxClick"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
119
119
|
}
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxChannelIndicatorComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
@@ -123,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
123
123
|
SpxButtonComponent,
|
|
124
124
|
SpxCapitalizePipe,
|
|
125
125
|
TranslatePipe,
|
|
126
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType()
|
|
126
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType()) {\n <div class=\"text-base text-gray-600\">{{ channelType() }}</div>\n }\n </div>\n <spx-button (click)=\"onChange()\" [spxType]=\"'button'\">{{ spxTextChange | translate | capitalize }}</spx-button>\n</div>" }]
|
|
127
127
|
}] });
|
|
128
128
|
|
|
129
129
|
class SpxChannelGuard {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"softpak-components-spx-channel-selection.mjs","sources":["../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.actions.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.reducer.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.html","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-guard.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.effects.ts","../../../../projects/softpak/components/spx-channel-selection/softpak-components-spx-channel-selection.ts"],"sourcesContent":["import { SpxAppChannelI, SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { createActionGroup, props } from '@ngrx/store';\n\nexport const spxChannelActions = createActionGroup({\n source: 'SpxChannel',\n events: {\n Choose: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseFailed: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseSucceeded: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; shouldRunUpdateCheck?: boolean; }>(),\n Initialize: props<{ channels: SpxAppChannelI[]; }>(),\n },\n});\n","import { SpxAppChannelI, SpxAppChannelTypeEnum, SpxChannelTypeI } from '@softpak/components/spx-app-configuration';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { createFeature, createReducer, createSelector, on } from '@ngrx/store';\n\nimport { Capacitor } from '@capacitor/core';\nimport { spxChannelActions } from './spx-channel.actions';\n\nexport const initialState: StateI = {\n previousChannel: null,\n channel: null,\n channelType: null,\n channels: [],\n};\n\nexport interface StateI {\n previousChannel: SpxAppChannelI | null;\n channel: SpxAppChannelI | null;\n channels: SpxAppChannelI[];\n channelType: SpxChannelTypeI | null;\n}\n\nconst determineActiveChannel = (channels: SpxAppChannelI[]): SpxAppChannelI | null => {\n if (SpxStorage.getSetting(SpxStorageKeyEnum.brand) && SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n const channelResult = channels.find(channel => channel.brand === SpxStorage.getSetting(SpxStorageKeyEnum.brand) && channel.channelTypes.some((e: SpxChannelTypeI) => e.name === SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum));\n if (channelResult) {\n return channelResult;\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.brand);\n return null;\n }\n }\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n }\n return null;\n }\n}\n\nexport default createFeature({\n name: 'spxChannel',\n extraSelectors: ({ selectChannel }) => ({\n selectCompanyName: createSelector(selectChannel, (channel) => channel?.brand),\n }),\n reducer: createReducer(\n initialState,\n on(spxChannelActions.chooseSucceeded, (state, { channel, channelType }): StateI => {\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand, channel?.brand);\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType, channelType);\n return {\n ...state,\n previousChannel: state.channel,\n channel,\n channelType: { name: channelType },\n };\n }),\n on(spxChannelActions.initialize, (state, { channels }): StateI => {\n\n let channelType: SpxChannelTypeI | null = null;\n\n if (SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n channelType = { name: SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum };\n }\n else {\n channelType = { name: Capacitor.getPlatform() === 'web' ? SpxAppChannelTypeEnum.webLive : SpxAppChannelTypeEnum.production }; // Default to production if no type is set\n }\n\n return {\n ...state,\n channel: determineActiveChannel(channels),\n channels: channels.slice().sort((a, b) => a.brand.localeCompare(b.brand)),\n channelType: channelType,\n }\n }),\n ),\n});\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { NavController } from '@ionic/angular/standalone';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { Store } from '@ngrx/store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { map } from 'rxjs';\nimport spxChannelReducer from '../../store/spx-channel.reducer';\nimport { spxTextChange } from '@softpak/components/spx-translate';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport const spxChannelSelectionUrl = 'wlc';\n\n@Component({\n selector: 'spx-channel-indicator',\n templateUrl: './spx-channel-indicator.component.html',\n imports: [\n SpxButtonComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxChannelIndicatorComponent {\n private readonly navController = inject(NavController);\n private readonly store = inject(Store);\n protected readonly channel = this.store.selectSignal(spxChannelReducer.selectChannel);\n protected readonly channelType = toSignal(this.store.select(spxChannelReducer.selectChannelType).pipe(\n map(channelType => channelType?.name)\n ));\n protected readonly spxTextChange = spxTextChange;\n\n protected onChange() {\n this.navController.navigateRoot([spxChannelSelectionUrl]);\n }\n\n protected canShowChannelType() {\n return this.channelType() !== 'Production' && this.channelType() !== 'Web (Live)';\n }\n}\n","<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType() && channelType() !== 'Production') {\n <div class=\"text-base text-gray-600\">{{ channelType() }}</div>\n }\n </div>\n <spx-button (click)=\"onChange()\" [spxType]=\"'button'\">{{ spxTextChange | translate | capitalize }}</spx-button>\n</div>","import { Router } from '@angular/router';\nimport { inject, Injectable } from '@angular/core';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelSelectionUrl } from './spx-channel-indicator/spx-channel-indicator.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpxChannelGuard {\n\n private readonly router = inject(Router);\n\n canActivate(): boolean {\n if (\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand) ||\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType)\n ) {\n this.router.navigate([spxChannelSelectionUrl]);\n return false;\n }\n return true;\n }\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Injectable, inject } from '@angular/core';\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\n\nimport { App } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\nimport { LiveUpdate } from \"@capawesome/capacitor-live-update\";\nimport { Router } from '@angular/router';\nimport { captureMessage } from '@sentry/angular';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelActions } from './spx-channel.actions';\nimport { spxUpdateUrl } from '@softpak/components/spx-update';\nimport { TranslateService } from '@ngx-translate/core';\nimport { spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason } from '@softpak/components/spx-translate';\nimport { from, of } from 'rxjs';\nimport { catchError, mergeMap, switchMap, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly router = inject(Router);\n private readonly translateService = inject(TranslateService);\n\n onChoose$ =\n createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.choose),\n switchMap((action) => {\n if (Capacitor.getPlatform() === 'web') {\n const channelType = action.channel.channelTypes.find(channelType => channelType.name === action.channelType)!;\n if (channelType.webUrl && !window.location.href.includes('http://localhost') && window.location.href.replace(channelType.webUrl!, '').replace(channelType.oldWebUrl!, '').split('/').at(0) !== '') {\n window.location.href = channelType.webUrl!;\n } else {\n this.router.navigate(['tabs/hme']);\n }\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }\n return from(App.getInfo()).pipe(\n switchMap((binaryInfo) => {\n const liveUpdateChannel = `${action.channelType}-${getBinaryVersionGroup(binaryInfo.version)}.x`;\n const currentLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);\n\n // Channel blijft hetzelfde, dus nogmaals een update-check is niet nodig\n if (currentLiveUpdateChannel === liveUpdateChannel) {\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n shouldRunUpdateCheck: false,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }\n\n return from(LiveUpdate.setChannel({\n channel: liveUpdateChannel\n })).pipe(\n mergeMap(() => {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdateChannel, liveUpdateChannel);\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n shouldRunUpdateCheck: true,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel setChannel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n ), { dispatch: true });\n\n onChooseSucceededNavigate$ = createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.chooseSucceeded),\n tap((action) => {\n if (Capacitor.getPlatform() !== 'web') {\n this.router.navigate([action.shouldRunUpdateCheck ? spxUpdateUrl : 'tabs/hme']);\n }\n }),\n ), { dispatch: false });\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["spxChannelReducer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-channel-selection.mjs","sources":["../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.actions.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.reducer.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator/spx-channel-indicator.component.html","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-guard.ts","../../../../projects/softpak/components/spx-channel-selection/store/spx-channel.effects.ts","../../../../projects/softpak/components/spx-channel-selection/softpak-components-spx-channel-selection.ts"],"sourcesContent":["import { SpxAppChannelI, SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { createActionGroup, props } from '@ngrx/store';\n\nexport const spxChannelActions = createActionGroup({\n source: 'SpxChannel',\n events: {\n Choose: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseFailed: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; }>(),\n ChooseSucceeded: props<{ channel: SpxAppChannelI; channelType: SpxAppChannelTypeEnum; shouldRunUpdateCheck?: boolean; }>(),\n Initialize: props<{ channels: SpxAppChannelI[]; }>(),\n },\n});\n","import { SpxAppChannelI, SpxAppChannelTypeEnum, SpxChannelTypeI } from '@softpak/components/spx-app-configuration';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { createFeature, createReducer, createSelector, on } from '@ngrx/store';\n\nimport { Capacitor } from '@capacitor/core';\nimport { spxChannelActions } from './spx-channel.actions';\n\nexport const initialState: StateI = {\n previousChannel: null,\n channel: null,\n channelType: null,\n channels: [],\n};\n\nexport interface StateI {\n previousChannel: SpxAppChannelI | null;\n channel: SpxAppChannelI | null;\n channels: SpxAppChannelI[];\n channelType: SpxChannelTypeI | null;\n}\n\nconst determineActiveChannel = (channels: SpxAppChannelI[]): SpxAppChannelI | null => {\n if (SpxStorage.getSetting(SpxStorageKeyEnum.brand) && SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n const channelResult = channels.find(channel => channel.brand === SpxStorage.getSetting(SpxStorageKeyEnum.brand) && channel.channelTypes.some((e: SpxChannelTypeI) => e.name === SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum));\n if (channelResult) {\n return channelResult;\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n } else {\n SpxStorage.clearSetting(SpxStorageKeyEnum.brand);\n return null;\n }\n }\n } else {\n const defaultBrandResult = channels.find(channel => channel.default);\n if (defaultBrandResult) {\n return defaultBrandResult;\n }\n return null;\n }\n}\n\nexport default createFeature({\n name: 'spxChannel',\n extraSelectors: ({ selectChannel }) => ({\n selectCompanyName: createSelector(selectChannel, (channel) => channel?.brand),\n }),\n reducer: createReducer(\n initialState,\n on(spxChannelActions.chooseSucceeded, (state, { channel, channelType }): StateI => {\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand, channel?.brand);\n SpxStorage.setSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType, channelType);\n return {\n ...state,\n previousChannel: state.channel,\n channel,\n channelType: { name: channelType },\n };\n }),\n on(spxChannelActions.initialize, (state, { channels }): StateI => {\n\n let channelType: SpxChannelTypeI | null = null;\n\n if (SpxStorage.getSetting(SpxStorageKeyEnum.channelType)) {\n channelType = { name: SpxStorage.getSetting(SpxStorageKeyEnum.channelType) as SpxAppChannelTypeEnum };\n }\n else {\n channelType = { name: Capacitor.getPlatform() === 'web' ? SpxAppChannelTypeEnum.webLive : SpxAppChannelTypeEnum.production }; // Default to production if no type is set\n }\n\n return {\n ...state,\n channel: determineActiveChannel(channels),\n channels: channels.slice().sort((a, b) => a.brand.localeCompare(b.brand)),\n channelType: channelType,\n }\n }),\n ),\n});\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { NavController } from '@ionic/angular/standalone';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { Store } from '@ngrx/store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { map } from 'rxjs';\nimport spxChannelReducer from '../../store/spx-channel.reducer';\nimport { spxTextChange } from '@softpak/components/spx-translate';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport const spxChannelSelectionUrl = 'wlc';\n\n@Component({\n selector: 'spx-channel-indicator',\n templateUrl: './spx-channel-indicator.component.html',\n imports: [\n SpxButtonComponent,\n SpxCapitalizePipe,\n TranslatePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxChannelIndicatorComponent {\n private readonly navController = inject(NavController);\n private readonly store = inject(Store);\n protected readonly channel = this.store.selectSignal(spxChannelReducer.selectChannel);\n protected readonly channelType = toSignal(this.store.select(spxChannelReducer.selectChannelType).pipe(\n map(channelType => channelType?.name)\n ));\n protected readonly spxTextChange = spxTextChange;\n\n protected onChange() {\n this.navController.navigateRoot([spxChannelSelectionUrl]);\n }\n\n protected canShowChannelType() {\n return this.channelType() !== 'Production' && this.channelType() !== 'Web (Live)';\n }\n}\n","<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel()?.brand }}</div>\n @if (canShowChannelType()) {\n <div class=\"text-base text-gray-600\">{{ channelType() }}</div>\n }\n </div>\n <spx-button (click)=\"onChange()\" [spxType]=\"'button'\">{{ spxTextChange | translate | capitalize }}</spx-button>\n</div>","import { Router } from '@angular/router';\nimport { inject, Injectable } from '@angular/core';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelSelectionUrl } from './spx-channel-indicator/spx-channel-indicator.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpxChannelGuard {\n\n private readonly router = inject(Router);\n\n canActivate(): boolean {\n if (\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.brand) ||\n !SpxStorage.getSetting<SpxStorageKeyEnum>(SpxStorageKeyEnum.channelType)\n ) {\n this.router.navigate([spxChannelSelectionUrl]);\n return false;\n }\n return true;\n }\n}\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Injectable, inject } from '@angular/core';\nimport { SpxToasterAutoCloseSpeedEnum, spxToasterActions } from '@softpak/components/spx-toaster';\n\nimport { App } from '@capacitor/app';\nimport { Capacitor } from '@capacitor/core';\nimport { LiveUpdate } from \"@capawesome/capacitor-live-update\";\nimport { Router } from '@angular/router';\nimport { captureMessage } from '@sentry/angular';\nimport { getBinaryVersionGroup } from '@softpak/components/spx-helpers';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { spxChannelActions } from './spx-channel.actions';\nimport { spxUpdateUrl } from '@softpak/components/spx-update';\nimport { TranslateService } from '@ngx-translate/core';\nimport { spxTextLiveUpdateChannelSetFailed, spxTextLiveUpdateChannelSetFailedWithReason } from '@softpak/components/spx-translate';\nimport { from, of } from 'rxjs';\nimport { catchError, mergeMap, switchMap, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class Effects {\n private readonly actions$ = inject(Actions);\n private readonly router = inject(Router);\n private readonly translateService = inject(TranslateService);\n\n onChoose$ =\n createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.choose),\n switchMap((action) => {\n if (Capacitor.getPlatform() === 'web') {\n const channelType = action.channel.channelTypes.find(channelType => channelType.name === action.channelType)!;\n if (channelType.webUrl && !window.location.href.includes('http://localhost') && window.location.href.replace(channelType.webUrl!, '').replace(channelType.oldWebUrl!, '').split('/').at(0) !== '') {\n window.location.href = channelType.webUrl!;\n } else {\n this.router.navigate(['tabs/hme']);\n }\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }\n return from(App.getInfo()).pipe(\n switchMap((binaryInfo) => {\n const liveUpdateChannel = `${action.channelType}-${getBinaryVersionGroup(binaryInfo.version)}.x`;\n const currentLiveUpdateChannel = SpxStorage.getSetting(SpxStorageKeyEnum.liveUpdateChannel);\n\n // Channel blijft hetzelfde, dus nogmaals een update-check is niet nodig\n if (currentLiveUpdateChannel === liveUpdateChannel) {\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n shouldRunUpdateCheck: false,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }\n\n return from(LiveUpdate.setChannel({\n channel: liveUpdateChannel\n })).pipe(\n mergeMap(() => {\n SpxStorage.setSetting(SpxStorageKeyEnum.liveUpdateChannel, liveUpdateChannel);\n return of(\n spxChannelActions.chooseSucceeded({\n channel: action.channel,\n channelType: action.channelType,\n shouldRunUpdateCheck: true,\n }),\n spxToasterActions.createSuccess({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: action.channel?.brand,\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel setChannel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n catchError((err) => {\n const errorReason = this.getReadableErrorReason(err);\n captureMessage(`SPX Channel Error: ${errorReason}`);\n return of(\n spxChannelActions.chooseFailed({\n channel: action.channel,\n channelType: action.channelType,\n }),\n spxToasterActions.createError({\n autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,\n messageText: errorReason\n ? this.translateService.instant(spxTextLiveUpdateChannelSetFailedWithReason, { reason: errorReason })\n : this.translateService.instant(spxTextLiveUpdateChannelSetFailed),\n }),\n );\n }),\n );\n }),\n ), { dispatch: true });\n\n onChooseSucceededNavigate$ = createEffect(() =>\n this.actions$.pipe(\n ofType(spxChannelActions.chooseSucceeded),\n tap((action) => {\n if (Capacitor.getPlatform() !== 'web') {\n this.router.navigate([action.shouldRunUpdateCheck ? spxUpdateUrl : 'tabs/hme']);\n }\n }),\n ), { dispatch: false });\n\n private getReadableErrorReason(err: unknown): string {\n if (err instanceof Error && err.message?.trim()) {\n return err.message.trim();\n }\n if (typeof err === 'string' && err.trim()) {\n return err.trim();\n }\n if (err && typeof err === 'object') {\n const withMessage = err as { message?: unknown };\n if (typeof withMessage.message === 'string' && withMessage.message.trim()) {\n return withMessage.message.trim();\n }\n try {\n const serialized = JSON.stringify(err);\n if (serialized && serialized !== '{}') {\n return serialized.length > 180 ? `${serialized.slice(0, 177)}...` : serialized;\n }\n } catch {\n // ignore serialization errors\n }\n }\n return '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["spxChannelReducer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AACjD,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,MAAM,EAAE;QACN,MAAM,EAAE,KAAK,EAAoE;QACjF,YAAY,EAAE,KAAK,EAAoE;QACvF,eAAe,EAAE,KAAK,EAAoG;QAC1H,UAAU,EAAE,KAAK,EAAmC;AACrD,KAAA;AACF,CAAA;;ACJM,MAAM,YAAY,GAAW;AAClC,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,QAAQ,EAAE,EAAE;CACb;AASD,MAAM,sBAAsB,GAAG,CAAC,QAA0B,KAA2B;AACnF,IAAA,IAAI,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;QAC1G,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAkB,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAA0B,CAAC,CAAC;QAC/P,IAAI,aAAa,EAAE;AACjB,YAAA,OAAO,aAAa;QACtB;aAAO;AACL,YAAA,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YACpE,IAAI,kBAAkB,EAAE;AACtB,gBAAA,OAAO,kBAAkB;YAC3B;iBAAO;AACL,gBAAA,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAChD,gBAAA,OAAO,IAAI;YACb;QACF;IACF;SAAO;AACL,QAAA,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;QACpE,IAAI,kBAAkB,EAAE;AACtB,YAAA,OAAO,kBAAkB;QAC3B;AACA,QAAA,OAAO,IAAI;IACb;AACF,CAAC;AAED,0BAAe,aAAa,CAAC;AAC3B,IAAA,IAAI,EAAE,YAAY;IAClB,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM;AACtC,QAAA,iBAAiB,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,OAAO,EAAE,KAAK,CAAC;KAC9E,CAAC;IACF,OAAO,EAAE,aAAa,CACpB,YAAY,EACZ,EAAE,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAY;QAChF,UAAU,CAAC,UAAU,CAAoB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;QACjF,UAAU,CAAC,UAAU,CAAoB,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC;QACpF,OAAO;AACL,YAAA,GAAG,KAAK;YACR,eAAe,EAAE,KAAK,CAAC,OAAO;YAC9B,OAAO;AACP,YAAA,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SACnC;AACH,IAAA,CAAC,CAAC,EACF,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAY;QAE/D,IAAI,WAAW,GAA2B,IAAI;QAE9C,IAAI,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;AACxD,YAAA,WAAW,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAA0B,EAAE;QACvG;aACK;YACH,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,qBAAqB,CAAC,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC;QAC/H;QAEA,OAAO;AACL,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC;YACzC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzE,YAAA,WAAW,EAAE,WAAW;SACzB;AACH,IAAA,CAAC,CAAC,CACH;AACF,CAAA,CAAC;;;;;;;;ACpEK,MAAM,sBAAsB,GAAG;MAazB,4BAA4B,CAAA;AAXzC,IAAA,WAAA,GAAA;AAYmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnB,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAACA,mBAAiB,CAAC,aAAa,CAAC;AAClE,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAACA,mBAAiB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CACnG,GAAG,CAAC,WAAW,IAAI,WAAW,EAAE,IAAI,CAAC,CACtC,CAAC;QACiB,IAAA,CAAA,aAAa,GAAG,aAAa;AASjD,IAAA;IAPW,QAAQ,GAAA;QAChB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAC3D;IAEU,kBAAkB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY;IACnF;8GAfW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,iFCzBzC,8ZAQM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDUF,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAClB,iBAAiB,8CACjB,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKJ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAXxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,OAAA,EAExB;wBACP,kBAAkB;wBAClB,iBAAiB;wBACjB,aAAa;AACd,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,QAAA,EAAA,8ZAAA,EAAA;;;MEfL,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAYzC,IAAA;IAVC,WAAW,GAAA;QACT,IACE,CAAC,UAAU,CAAC,UAAU,CAAoB,iBAAiB,CAAC,KAAK,CAAC;YAClE,CAAC,UAAU,CAAC,UAAU,CAAoB,iBAAiB,CAAC,WAAW,CAAC,EACxE;YACA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAC9C,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,IAAI;IACb;8GAbW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCYY,OAAO,CAAA;AADpB,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE5D,IAAA,CAAA,SAAS,GACL,YAAY,CAAC,MACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAChC,SAAS,CAAC,CAAC,MAAM,KAAI;AACjB,YAAA,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;gBACnC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAE;gBAC7G,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,SAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC/L,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,MAAO;gBAC9C;qBAAO;oBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;gBACtC;AACA,gBAAA,OAAO,EAAE,CACL,iBAAiB,CAAC,eAAe,CAAC;oBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;AAClC,iBAAA,CAAC,EACF,iBAAiB,CAAC,aAAa,CAAC;oBAC5B,SAAS,EAAE,4BAA4B,CAAC,OAAO;AAC/C,oBAAA,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK;AACrC,iBAAA,CAAC,CACL;YACL;AACA,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC3B,SAAS,CAAC,CAAC,UAAU,KAAI;AACrB,gBAAA,MAAM,iBAAiB,GAAG,CAAA,EAAG,MAAM,CAAC,WAAW,CAAA,CAAA,EAAI,qBAAqB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;gBAChG,MAAM,wBAAwB,GAAG,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC;;AAG3F,gBAAA,IAAI,wBAAwB,KAAK,iBAAiB,EAAE;AAChD,oBAAA,OAAO,EAAE,CACL,iBAAiB,CAAC,eAAe,CAAC;wBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,wBAAA,oBAAoB,EAAE,KAAK;AAC9B,qBAAA,CAAC,EACF,iBAAiB,CAAC,aAAa,CAAC;wBAC5B,SAAS,EAAE,4BAA4B,CAAC,OAAO;AAC/C,wBAAA,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK;AACrC,qBAAA,CAAC,CACL;gBACL;AAEA,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAC9B,oBAAA,OAAO,EAAE;AACZ,iBAAA,CAAC,CAAC,CAAC,IAAI,CACJ,QAAQ,CAAC,MAAK;oBACV,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AAC7E,oBAAA,OAAO,EAAE,CACL,iBAAiB,CAAC,eAAe,CAAC;wBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,wBAAA,oBAAoB,EAAE,IAAI;AAC7B,qBAAA,CAAC,EACF,iBAAiB,CAAC,aAAa,CAAC;wBAC5B,SAAS,EAAE,4BAA4B,CAAC,OAAO;AAC/C,wBAAA,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK;AACrC,qBAAA,CAAC,CACL;AACL,gBAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAG,KAAI;oBACf,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;AACpD,oBAAA,cAAc,CAAC,CAAA,8BAAA,EAAiC,WAAW,CAAA,CAAE,CAAC;AAC9D,oBAAA,OAAO,EAAE,CACL,iBAAiB,CAAC,YAAY,CAAC;wBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;AAClC,qBAAA,CAAC,EACF,iBAAiB,CAAC,WAAW,CAAC;wBAC1B,SAAS,EAAE,4BAA4B,CAAC,OAAO;AAC/C,wBAAA,WAAW,EAAE;AACT,8BAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;8BAClG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iCAAiC,CAAC;AACzE,qBAAA,CAAC,CACL;gBACL,CAAC,CAAC,CACL;AACL,YAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAG,KAAI;gBACf,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;AACpD,gBAAA,cAAc,CAAC,CAAA,mBAAA,EAAsB,WAAW,CAAA,CAAE,CAAC;AACnD,gBAAA,OAAO,EAAE,CACL,iBAAiB,CAAC,YAAY,CAAC;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;AAClC,iBAAA,CAAC,EACF,iBAAiB,CAAC,WAAW,CAAC;oBAC1B,SAAS,EAAE,4BAA4B,CAAC,OAAO;AAC/C,oBAAA,WAAW,EAAE;AACT,0BAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;0BAClG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iCAAiC,CAAC;AACzE,iBAAA,CAAC,CACL;YACL,CAAC,CAAC,CACL;QACL,CAAC,CAAC,CACL,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE9B,IAAA,CAAA,0BAA0B,GAAG,YAAY,CAAC,MACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,EACzC,GAAG,CAAC,CAAC,MAAM,KAAI;AACX,YAAA,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;AACnC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;YACnF;QACJ,CAAC,CAAC,CACL,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAyB9B,IAAA;AAvBW,IAAA,sBAAsB,CAAC,GAAY,EAAA;QACvC,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;AAC7C,YAAA,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;QAC7B;QACA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;AACvC,YAAA,OAAO,GAAG,CAAC,IAAI,EAAE;QACrB;AACA,QAAA,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAChC,MAAM,WAAW,GAAG,GAA4B;AAChD,YAAA,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;AACvE,gBAAA,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE;YACrC;AACA,YAAA,IAAI;gBACA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACtC,gBAAA,IAAI,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE;oBACnC,OAAO,UAAU,CAAC,MAAM,GAAG,GAAG,GAAG,CAAA,EAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,UAAU;gBAClF;YACJ;AAAE,YAAA,MAAM;;YAER;QACJ;AACA,QAAA,OAAO,EAAE;IACb;8GAvIS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAP,OAAO,EAAA,CAAA,CAAA;;2FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBADnB;;;;;;;;AClBD;;AAEG;;;;"}
|
|
@@ -45,6 +45,7 @@ class SpxTabsComponent {
|
|
|
45
45
|
}, ...(ngDevMode ? [{ debugName: "shownNavItems" }] : []));
|
|
46
46
|
this.showShortcuts = signal(false, ...(ngDevMode ? [{ debugName: "showShortcuts" }] : []));
|
|
47
47
|
this.optionalNavItemBool = input(true, ...(ngDevMode ? [{ debugName: "optionalNavItemBool" }] : []));
|
|
48
|
+
this.isTestEnvironment = input(false, ...(ngDevMode ? [{ debugName: "isTestEnvironment" }] : []));
|
|
48
49
|
this.subscription = {};
|
|
49
50
|
}
|
|
50
51
|
ngOnInit() {
|
|
@@ -65,7 +66,7 @@ class SpxTabsComponent {
|
|
|
65
66
|
});
|
|
66
67
|
}
|
|
67
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxTabsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxTabsComponent, isStandalone: true, selector: "spx-tabs", inputs: { optionalNavItemBool: { classPropertyName: "optionalNavItemBool", publicName: "optionalNavItemBool", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ion-tabs #tabs select=\"home\">\n <ion-tab-bar slot=\"bottom\" class=\"border-t border-gray-200\">\n @for (item of shownNavItems(); track item.title) {\n <ion-tab-button [ngClass]=\"'ion-tab-button--' + item.code\" [tab]=\"item.code\"\n [attr.data-e2e]=\"'tab--' + item.code\">\n <fa-icon class=\"text-xl\" [icon]=\"showShortcuts() ? item.iconShortcut! : item.iconTab!\"></fa-icon>\n </ion-tab-button>\n }\n </ion-tab-bar>\n</ion-tabs
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxTabsComponent, isStandalone: true, selector: "spx-tabs", inputs: { optionalNavItemBool: { classPropertyName: "optionalNavItemBool", publicName: "optionalNavItemBool", isSignal: true, isRequired: false, transformFunction: null }, isTestEnvironment: { classPropertyName: "isTestEnvironment", publicName: "isTestEnvironment", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ion-tabs #tabs select=\"home\">\n <ion-tab-bar slot=\"bottom\" class=\"border-t border-gray-200\" [class.ion-tab-bar--test-environment]=\"isTestEnvironment()\">\n @for (item of shownNavItems(); track item.title) {\n <ion-tab-button [ngClass]=\"'ion-tab-button--' + item.code\" [tab]=\"item.code\"\n [attr.data-e2e]=\"'tab--' + item.code\">\n <fa-icon class=\"text-xl\" [icon]=\"showShortcuts() ? item.iconShortcut! : item.iconTab!\"></fa-icon>\n </ion-tab-button>\n }\n </ion-tab-bar>\n</ion-tabs>\n", styles: ["ion-tab-bar.ion-tab-bar--test-environment{--background: red}ion-tab-button{--color--active-tab: #FAB206;--color-focused: var(--color--active-tab);--color-selected: var(--color--active-tab);font-size:14px;padding-top:10px;padding-bottom:10px}ion-tab-button.ion-tab-button--hme{--color--active-tab: var(--color-hme);--ripple-color: var(--color-hme)}ion-tab-button.ion-tab-button--ord{--color--active-tab: var(--color-ord);--ripple-color: var(--color-ord)}ion-tab-button.ion-tab-button--qua{--color--active-tab: var(--color-qua);--ripple-color: var(--color-qua)}ion-tab-button.ion-tab-button--rel{--color--active-tab: var(--color-rel);--ripple-color: var(--color-rel)}ion-tab-button.ion-tab-button--rfr{--color--active-tab: var(--color-rfr);--ripple-color: var(--color-rfr)}ion-tab-button.ion-tab-button--sta{--color--active-tab: var(--color-sta);--ripple-color: var(--color-sta)}\n"], dependencies: [{ kind: "component", type: IonTabs, selector: "ion-tabs" }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: IonTabBar, selector: "ion-tab-bar", inputs: ["color", "mode", "selectedTab", "translucent"] }, { kind: "component", type: IonTabButton, selector: "ion-tab-button", inputs: ["disabled", "download", "href", "layout", "mode", "rel", "selected", "tab", "target"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
70
|
}
|
|
70
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxTabsComponent, decorators: [{
|
|
71
72
|
type: Component,
|
|
@@ -76,8 +77,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
76
77
|
IonTabButton,
|
|
77
78
|
FaIconComponent,
|
|
78
79
|
NgClass
|
|
79
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-tabs #tabs select=\"home\">\n <ion-tab-bar slot=\"bottom\" class=\"border-t border-gray-200\">\n @for (item of shownNavItems(); track item.title) {\n <ion-tab-button [ngClass]=\"'ion-tab-button--' + item.code\" [tab]=\"item.code\"\n [attr.data-e2e]=\"'tab--' + item.code\">\n <fa-icon class=\"text-xl\" [icon]=\"showShortcuts() ? item.iconShortcut! : item.iconTab!\"></fa-icon>\n </ion-tab-button>\n }\n </ion-tab-bar>\n</ion-tabs
|
|
80
|
-
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { optionalNavItemBool: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionalNavItemBool", required: false }] }] } });
|
|
80
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-tabs #tabs select=\"home\">\n <ion-tab-bar slot=\"bottom\" class=\"border-t border-gray-200\" [class.ion-tab-bar--test-environment]=\"isTestEnvironment()\">\n @for (item of shownNavItems(); track item.title) {\n <ion-tab-button [ngClass]=\"'ion-tab-button--' + item.code\" [tab]=\"item.code\"\n [attr.data-e2e]=\"'tab--' + item.code\">\n <fa-icon class=\"text-xl\" [icon]=\"showShortcuts() ? item.iconShortcut! : item.iconTab!\"></fa-icon>\n </ion-tab-button>\n }\n </ion-tab-bar>\n</ion-tabs>\n", styles: ["ion-tab-bar.ion-tab-bar--test-environment{--background: red}ion-tab-button{--color--active-tab: #FAB206;--color-focused: var(--color--active-tab);--color-selected: var(--color--active-tab);font-size:14px;padding-top:10px;padding-bottom:10px}ion-tab-button.ion-tab-button--hme{--color--active-tab: var(--color-hme);--ripple-color: var(--color-hme)}ion-tab-button.ion-tab-button--ord{--color--active-tab: var(--color-ord);--ripple-color: var(--color-ord)}ion-tab-button.ion-tab-button--qua{--color--active-tab: var(--color-qua);--ripple-color: var(--color-qua)}ion-tab-button.ion-tab-button--rel{--color--active-tab: var(--color-rel);--ripple-color: var(--color-rel)}ion-tab-button.ion-tab-button--rfr{--color--active-tab: var(--color-rfr);--ripple-color: var(--color-rfr)}ion-tab-button.ion-tab-button--sta{--color--active-tab: var(--color-sta);--ripple-color: var(--color-sta)}\n"] }]
|
|
81
|
+
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { optionalNavItemBool: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionalNavItemBool", required: false }] }], isTestEnvironment: [{ type: i0.Input, args: [{ isSignal: true, alias: "isTestEnvironment", required: false }] }] } });
|
|
81
82
|
|
|
82
83
|
/**
|
|
83
84
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"softpak-components-spx-tabs.mjs","sources":["../../../../projects/softpak/components/spx-tabs/store/spx-shortcuts.actions.ts","../../../../projects/softpak/components/spx-tabs/store/spx-shortcuts.reducer.ts","../../../../projects/softpak/components/spx-tabs/src/spx-tabs.component.ts","../../../../projects/softpak/components/spx-tabs/src/spx-tabs.component.html","../../../../projects/softpak/components/spx-tabs/softpak-components-spx-tabs.ts"],"sourcesContent":["import { createActionGroup, props } from '@ngrx/store';\n\nexport const spxShortcutsActions = createActionGroup({\n source: 'SpxShortcuts',\n events: {\n Ctrl: props<{ keyIsDown: boolean; }>(),\n },\n});\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { spxShortcutsActions } from './spx-shortcuts.actions';\n\nexport interface StateI {\n ctrlIsDown: boolean;\n}\n\nexport const initialState: StateI = {\n ctrlIsDown: false,\n};\n\nexport default createFeature({\n name: 'spxShortcuts',\n reducer: createReducer(\n initialState,\n on(spxShortcutsActions.ctrl, (state: StateI, { keyIsDown }): StateI => ({\n ...state,\n ctrlIsDown: keyIsDown,\n })),\n )}\n);","import { ChangeDetectionStrategy, Component, computed, input, OnInit, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { FaIconComponent } from \"@fortawesome/angular-fontawesome\";\nimport { IonTabBar, IonTabButton, IonTabs } from \"@ionic/angular/standalone\";\nimport { Store } from \"@ngrx/store\";\nimport { unsubscribeSubscriptions } from \"@softpak/components/spx-helpers\";\nimport { SpxNavigationItemI, spxNavigationReducer } from \"@softpak/components/spx-navigation\";\nimport { Subscription } from \"rxjs\";\nimport { NgClass } from \"@angular/common\";\nimport spxShortCutsReducer from '../store/spx-shortcuts.reducer';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'spx-tabs',\n standalone: true,\n imports: [\n IonTabs, \n FormsModule,\n IonTabBar,\n IonTabButton,\n FaIconComponent,\n NgClass\n ],\n templateUrl: './spx-tabs.component.html',\n styleUrl: './spx-tabs.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxTabsComponent implements OnInit {\n navItems = signal<SpxNavigationItemI[]>([]);\n shownNavItems = computed(() => {\n const show = this.optionalNavItemBool();\n return this.navItems().filter((navItem) => {\n return !navItem.currentSettingsRequired || (navItem.currentSettingsRequired && show);\n });\n });\n\n showShortcuts = signal<boolean>(false);\n optionalNavItemBool = input<boolean>(true);\n private subscription: {\n ctrlState?: Subscription;\n menuState?: Subscription;\n } = {};\n\n constructor(\n private readonly store: Store,\n ) { }\n\n ngOnInit() {\n this.listenToMenuState();\n this.listenToCtrlState();\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscription);\n }\n\n private listenToCtrlState(): void {\n this.subscription.ctrlState = this.store.select(spxShortCutsReducer.selectCtrlIsDown).subscribe(ctrlIsDown => {\n this.showShortcuts.set(ctrlIsDown);\n });\n }\n\n private listenToMenuState(): void {\n this.subscription.menuState = this.store.select(spxNavigationReducer.default.selectTabs).subscribe((tabs) => {\n this.navItems.set(tabs);\n });\n }\n\n}","<ion-tabs #tabs select=\"home\">\n <ion-tab-bar slot=\"bottom\" class=\"border-t border-gray-200\">\n @for (item of shownNavItems(); track item.title) {\n <ion-tab-button [ngClass]=\"'ion-tab-button--' + item.code\" [tab]=\"item.code\"\n [attr.data-e2e]=\"'tab--' + item.code\">\n <fa-icon class=\"text-xl\" [icon]=\"showShortcuts() ? item.iconShortcut! : item.iconTab!\"></fa-icon>\n </ion-tab-button>\n }\n </ion-tab-bar>\n</ion-tabs
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-tabs.mjs","sources":["../../../../projects/softpak/components/spx-tabs/store/spx-shortcuts.actions.ts","../../../../projects/softpak/components/spx-tabs/store/spx-shortcuts.reducer.ts","../../../../projects/softpak/components/spx-tabs/src/spx-tabs.component.ts","../../../../projects/softpak/components/spx-tabs/src/spx-tabs.component.html","../../../../projects/softpak/components/spx-tabs/softpak-components-spx-tabs.ts"],"sourcesContent":["import { createActionGroup, props } from '@ngrx/store';\n\nexport const spxShortcutsActions = createActionGroup({\n source: 'SpxShortcuts',\n events: {\n Ctrl: props<{ keyIsDown: boolean; }>(),\n },\n});\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { spxShortcutsActions } from './spx-shortcuts.actions';\n\nexport interface StateI {\n ctrlIsDown: boolean;\n}\n\nexport const initialState: StateI = {\n ctrlIsDown: false,\n};\n\nexport default createFeature({\n name: 'spxShortcuts',\n reducer: createReducer(\n initialState,\n on(spxShortcutsActions.ctrl, (state: StateI, { keyIsDown }): StateI => ({\n ...state,\n ctrlIsDown: keyIsDown,\n })),\n )}\n);","import { ChangeDetectionStrategy, Component, computed, input, OnInit, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { FaIconComponent } from \"@fortawesome/angular-fontawesome\";\nimport { IonTabBar, IonTabButton, IonTabs } from \"@ionic/angular/standalone\";\nimport { Store } from \"@ngrx/store\";\nimport { unsubscribeSubscriptions } from \"@softpak/components/spx-helpers\";\nimport { SpxNavigationItemI, spxNavigationReducer } from \"@softpak/components/spx-navigation\";\nimport { Subscription } from \"rxjs\";\nimport { NgClass } from \"@angular/common\";\nimport spxShortCutsReducer from '../store/spx-shortcuts.reducer';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'spx-tabs',\n standalone: true,\n imports: [\n IonTabs, \n FormsModule,\n IonTabBar,\n IonTabButton,\n FaIconComponent,\n NgClass\n ],\n templateUrl: './spx-tabs.component.html',\n styleUrl: './spx-tabs.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxTabsComponent implements OnInit {\n navItems = signal<SpxNavigationItemI[]>([]);\n shownNavItems = computed(() => {\n const show = this.optionalNavItemBool();\n return this.navItems().filter((navItem) => {\n return !navItem.currentSettingsRequired || (navItem.currentSettingsRequired && show);\n });\n });\n\n showShortcuts = signal<boolean>(false);\n optionalNavItemBool = input<boolean>(true);\n isTestEnvironment = input<boolean>(false);\n private subscription: {\n ctrlState?: Subscription;\n menuState?: Subscription;\n } = {};\n\n constructor(\n private readonly store: Store,\n ) { }\n\n ngOnInit() {\n this.listenToMenuState();\n this.listenToCtrlState();\n }\n\n ngOnDestroy() {\n unsubscribeSubscriptions(this.subscription);\n }\n\n private listenToCtrlState(): void {\n this.subscription.ctrlState = this.store.select(spxShortCutsReducer.selectCtrlIsDown).subscribe(ctrlIsDown => {\n this.showShortcuts.set(ctrlIsDown);\n });\n }\n\n private listenToMenuState(): void {\n this.subscription.menuState = this.store.select(spxNavigationReducer.default.selectTabs).subscribe((tabs) => {\n this.navItems.set(tabs);\n });\n }\n\n}\n","<ion-tabs #tabs select=\"home\">\n <ion-tab-bar slot=\"bottom\" class=\"border-t border-gray-200\" [class.ion-tab-bar--test-environment]=\"isTestEnvironment()\">\n @for (item of shownNavItems(); track item.title) {\n <ion-tab-button [ngClass]=\"'ion-tab-button--' + item.code\" [tab]=\"item.code\"\n [attr.data-e2e]=\"'tab--' + item.code\">\n <fa-icon class=\"text-xl\" [icon]=\"showShortcuts() ? item.iconShortcut! : item.iconTab!\"></fa-icon>\n </ion-tab-button>\n }\n </ion-tab-bar>\n</ion-tabs>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["spxShortCutsReducer"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,6 +10,7 @@ declare class SpxTabsComponent implements OnInit {
|
|
|
10
10
|
shownNavItems: _angular_core.Signal<SpxNavigationItemI[]>;
|
|
11
11
|
showShortcuts: _angular_core.WritableSignal<boolean>;
|
|
12
12
|
optionalNavItemBool: _angular_core.InputSignal<boolean>;
|
|
13
|
+
isTestEnvironment: _angular_core.InputSignal<boolean>;
|
|
13
14
|
private subscription;
|
|
14
15
|
constructor(store: Store);
|
|
15
16
|
ngOnInit(): void;
|
|
@@ -17,7 +18,7 @@ declare class SpxTabsComponent implements OnInit {
|
|
|
17
18
|
private listenToCtrlState;
|
|
18
19
|
private listenToMenuState;
|
|
19
20
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpxTabsComponent, never>;
|
|
20
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpxTabsComponent, "spx-tabs", never, { "optionalNavItemBool": { "alias": "optionalNavItemBool"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
21
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpxTabsComponent, "spx-tabs", never, { "optionalNavItemBool": { "alias": "optionalNavItemBool"; "required": false; "isSignal": true; }; "isTestEnvironment": { "alias": "isTestEnvironment"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
declare const spxShortcutsActions: {
|