@softpak/components 21.2.0-capwesome.8 → 21.2.1

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.
@@ -260,7 +260,7 @@ class SpxStockInfoComponent {
260
260
  });
261
261
  }
262
262
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxStockInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
263
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxStockInfoComponent, isStandalone: true, selector: "spx-stock-info", inputs: { depotReadonly: { classPropertyName: "depotReadonly", publicName: "depotReadonly", isSignal: true, isRequired: false, transformFunction: null }, statusGroupsInPatch: { classPropertyName: "statusGroupsInPatch", publicName: "statusGroupsInPatch", isSignal: true, isRequired: true, transformFunction: null }, containers: { classPropertyName: "containers", publicName: "containers", isSignal: true, isRequired: true, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: true, transformFunction: null }, faArrowLeft: { classPropertyName: "faArrowLeft", publicName: "faArrowLeft", isSignal: true, isRequired: true, transformFunction: null }, faArrowRight: { classPropertyName: "faArrowRight", publicName: "faArrowRight", isSignal: true, isRequired: true, transformFunction: null }, faContainerStorage: { classPropertyName: "faContainerStorage", publicName: "faContainerStorage", isSignal: true, isRequired: true, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, loaded: { classPropertyName: "loaded", publicName: "loaded", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: true, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, textCategory: { classPropertyName: "textCategory", publicName: "textCategory", isSignal: true, isRequired: true, transformFunction: null }, textContainerInfo: { classPropertyName: "textContainerInfo", publicName: "textContainerInfo", isSignal: true, isRequired: true, transformFunction: null }, textContainerStatus: { classPropertyName: "textContainerStatus", publicName: "textContainerStatus", isSignal: true, isRequired: true, transformFunction: null }, textContainerStatusGroup: { classPropertyName: "textContainerStatusGroup", publicName: "textContainerStatusGroup", isSignal: true, isRequired: true, transformFunction: null }, textContainerType: { classPropertyName: "textContainerType", publicName: "textContainerType", isSignal: true, isRequired: true, transformFunction: null }, textCustomer: { classPropertyName: "textCustomer", publicName: "textCustomer", isSignal: true, isRequired: true, transformFunction: null }, textDepot: { classPropertyName: "textDepot", publicName: "textDepot", isSignal: true, isRequired: true, transformFunction: null }, textLocation: { classPropertyName: "textLocation", publicName: "textLocation", isSignal: true, isRequired: true, transformFunction: null }, textNext: { classPropertyName: "textNext", publicName: "textNext", isSignal: true, isRequired: true, transformFunction: null }, textPage: { classPropertyName: "textPage", publicName: "textPage", isSignal: true, isRequired: true, transformFunction: null }, textPrevious: { classPropertyName: "textPrevious", publicName: "textPrevious", isSignal: true, isRequired: true, transformFunction: null }, textSearch: { classPropertyName: "textSearch", publicName: "textSearch", isSignal: true, isRequired: true, transformFunction: null }, textNoResults: { classPropertyName: "textNoResults", publicName: "textNoResults", isSignal: true, isRequired: true, transformFunction: null }, textYouCanChangeYourFilters: { classPropertyName: "textYouCanChangeYourFilters", publicName: "textYouCanChangeYourFilters", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { spxBlurCategory: "spxBlurCategory", spxBlurContainerStatus: "spxBlurContainerStatus", spxBlurContainerStatusGroup: "spxBlurContainerStatusGroup", spxBlurContainerType: "spxBlurContainerType", spxBlurCustomer: "spxBlurCustomer", spxBlurDepot: "spxBlurDepot", spxClickContainer: "spxClickContainer", spxPageChange: "spxPageChange", spxSearchCategory: "spxSearchCategory", spxSearchContainerStatus: "spxSearchContainerStatus", spxSearchContainerStatusGroup: "spxSearchContainerStatusGroup", spxSearchContainerType: "spxSearchContainerType", spxSearchCustomer: "spxSearchCustomer", spxSearchDepot: "spxSearchDepot", spxSubmit: "spxSubmit" }, ngImport: i0, template: "@if (!loaded()) {\n <form [formGroup]=\"formGroup()\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup()\"\n [spxForm]=\"form\"\n [spxSuggestions]=\"suggestions()\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n </form>\n}\n\n@if (loaded()) {\n <div class=\"flex flex-col gap-3\">\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n @if (containers().length === 0) {\n <spx-alert [spxSeverity]=\"severityInfo\" [spxTitle]=\"textNoResults() | translate | capitalize\">\n {{ textYouCanChangeYourFilters() | translate | capitalize }}\n </spx-alert>\n }\n @for (container of containers(); track container; let i = $index) {\n @if (i < pageSize()) {\n <spx-card [hasContent]=\"false\" (clicked)=\"goToContainer(container)\">\n <div card-header class=\"card-header rounded-t-lg p-3 bg-sky-200\">\n <div class=\"flex flex-row space-x-3 items-center w-full\">\n <div\n class=\"card-header-icon-left flex basis-10 py-1.5 shrink-0 grow-0 place-items-center rounded bg-sky-400\">\n <fa-icon class=\"mx-auto\" [icon]=\"faContainerStorage()\"></fa-icon>\n </div>\n <div class=\"card-header-text-middle grow\">\n <div class=\"block font-medium text-large\">{{ container.formatted.containerNumber }}</div>\n </div>\n <div\n class=\"card-header-icons-right text-sm text-gray-900 leading-5 flex flex-wrap items-stretch text-center font-bold\">\n @if (container.containerStatus) {\n <div class=\"min-w-[36px] px-2 py-1 bg-white text-black\"> {{\n container.formatted.containerStatus }}</div>\n }\n </div>\n </div>\n </div>\n <div card-lines class=\"grid grid-cols-2 gap-2\">\n <spx-card-line [text]=\"textContainerType() | translate | capitalize\"\n [value]=\"container.formatted.containerType\"></spx-card-line>\n <spx-card-line [text]=\"textCategory() | translate | capitalize\"\n [value]=\"container.formatted.category\"></spx-card-line>\n <spx-card-line [text]=\"textLocation() | translate | capitalize\"\n [value]=\"container.formatted.location\"></spx-card-line>\n </div>\n </spx-card>\n }\n }\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n </div>\n}", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity"], outputs: ["spxClose", "spxTitleChange"] }, { kind: "component", type: SpxCardComponent, selector: "spx-card", inputs: ["clickable", "hasContent", "onDetailPage", "text", "unit", "tableView"], outputs: ["clicked"] }, { kind: "component", type: SpxCardLineComponent, selector: "spx-card-line", inputs: ["icon", "showPositiveOrNegative", "text", "value", "secondValue", "showProgress", "unit", "newOrderScreen"], outputs: ["valueChange"] }, { kind: "component", type: SpxFormViewComponent, selector: "spx-form-view", inputs: ["spxFormGroup", "spxForm", "spxSuggestions"], outputs: ["spxBlur", "spxClick", "spxSearch"] }, { kind: "component", type: SpxPaginationComponent, selector: "spx-pagination", inputs: ["faArrowLeft", "faArrowRight", "spxPage", "spxMaxPages", "textNext", "textPage", "textPrevious"], outputs: ["spxPageChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
263
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxStockInfoComponent, isStandalone: true, selector: "spx-stock-info", inputs: { depotReadonly: { classPropertyName: "depotReadonly", publicName: "depotReadonly", isSignal: true, isRequired: false, transformFunction: null }, statusGroupsInPatch: { classPropertyName: "statusGroupsInPatch", publicName: "statusGroupsInPatch", isSignal: true, isRequired: true, transformFunction: null }, containers: { classPropertyName: "containers", publicName: "containers", isSignal: true, isRequired: true, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: true, transformFunction: null }, faArrowLeft: { classPropertyName: "faArrowLeft", publicName: "faArrowLeft", isSignal: true, isRequired: true, transformFunction: null }, faArrowRight: { classPropertyName: "faArrowRight", publicName: "faArrowRight", isSignal: true, isRequired: true, transformFunction: null }, faContainerStorage: { classPropertyName: "faContainerStorage", publicName: "faContainerStorage", isSignal: true, isRequired: true, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, loaded: { classPropertyName: "loaded", publicName: "loaded", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: true, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, textCategory: { classPropertyName: "textCategory", publicName: "textCategory", isSignal: true, isRequired: true, transformFunction: null }, textContainerInfo: { classPropertyName: "textContainerInfo", publicName: "textContainerInfo", isSignal: true, isRequired: true, transformFunction: null }, textContainerStatus: { classPropertyName: "textContainerStatus", publicName: "textContainerStatus", isSignal: true, isRequired: true, transformFunction: null }, textContainerStatusGroup: { classPropertyName: "textContainerStatusGroup", publicName: "textContainerStatusGroup", isSignal: true, isRequired: true, transformFunction: null }, textContainerType: { classPropertyName: "textContainerType", publicName: "textContainerType", isSignal: true, isRequired: true, transformFunction: null }, textCustomer: { classPropertyName: "textCustomer", publicName: "textCustomer", isSignal: true, isRequired: true, transformFunction: null }, textDepot: { classPropertyName: "textDepot", publicName: "textDepot", isSignal: true, isRequired: true, transformFunction: null }, textLocation: { classPropertyName: "textLocation", publicName: "textLocation", isSignal: true, isRequired: true, transformFunction: null }, textNext: { classPropertyName: "textNext", publicName: "textNext", isSignal: true, isRequired: true, transformFunction: null }, textPage: { classPropertyName: "textPage", publicName: "textPage", isSignal: true, isRequired: true, transformFunction: null }, textPrevious: { classPropertyName: "textPrevious", publicName: "textPrevious", isSignal: true, isRequired: true, transformFunction: null }, textSearch: { classPropertyName: "textSearch", publicName: "textSearch", isSignal: true, isRequired: true, transformFunction: null }, textNoResults: { classPropertyName: "textNoResults", publicName: "textNoResults", isSignal: true, isRequired: true, transformFunction: null }, textYouCanChangeYourFilters: { classPropertyName: "textYouCanChangeYourFilters", publicName: "textYouCanChangeYourFilters", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { spxBlurCategory: "spxBlurCategory", spxBlurContainerStatus: "spxBlurContainerStatus", spxBlurContainerStatusGroup: "spxBlurContainerStatusGroup", spxBlurContainerType: "spxBlurContainerType", spxBlurCustomer: "spxBlurCustomer", spxBlurDepot: "spxBlurDepot", spxClickContainer: "spxClickContainer", spxPageChange: "spxPageChange", spxSearchCategory: "spxSearchCategory", spxSearchContainerStatus: "spxSearchContainerStatus", spxSearchContainerStatusGroup: "spxSearchContainerStatusGroup", spxSearchContainerType: "spxSearchContainerType", spxSearchCustomer: "spxSearchCustomer", spxSearchDepot: "spxSearchDepot", spxSubmit: "spxSubmit" }, ngImport: i0, template: "@if (!loaded()) {\n <form [formGroup]=\"formGroup()\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup()\"\n [spxForm]=\"form\"\n [spxSuggestions]=\"suggestions()\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n </form>\n}\n\n@if (loaded()) {\n <div class=\"flex flex-col gap-3\">\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n @if (containers().length === 0) {\n <spx-alert [spxSeverity]=\"severityInfo\" [spxTitle]=\"textNoResults() | translate | capitalize\">\n {{ textYouCanChangeYourFilters() | translate | capitalize }}\n </spx-alert>\n }\n @for (container of containers(); track container; let i = $index) {\n @if (i < pageSize()) {\n <spx-card [hasContent]=\"false\" (clicked)=\"goToContainer(container)\">\n <div card-header class=\"card-header rounded-t-lg p-3 bg-sky-200\">\n <div class=\"flex flex-row space-x-3 items-center w-full\">\n <div\n class=\"card-header-icon-left flex basis-10 py-1.5 shrink-0 grow-0 place-items-center rounded bg-sky-400\">\n <fa-icon class=\"mx-auto\" [icon]=\"faContainerStorage()\"></fa-icon>\n </div>\n <div class=\"card-header-text-middle grow\">\n <div class=\"block font-medium text-large\">{{ container.formatted.containerNumber }}</div>\n </div>\n <div\n class=\"card-header-icons-right text-sm text-gray-900 leading-5 flex flex-wrap items-stretch text-center font-bold\">\n @if (container.containerStatus) {\n <div class=\"min-w-[36px] px-2 py-1 bg-white text-black\"> {{\n container.formatted.containerStatus }}</div>\n }\n </div>\n </div>\n </div>\n <div card-lines class=\"grid grid-cols-2 gap-2\">\n <spx-card-line [text]=\"textContainerType() | translate | capitalize\"\n [value]=\"container.formatted.containerType\"></spx-card-line>\n <spx-card-line [text]=\"textCategory() | translate | capitalize\"\n [value]=\"container.formatted.category\"></spx-card-line>\n <spx-card-line [text]=\"textLocation() | translate | capitalize\"\n [value]=\"container.formatted.location\"></spx-card-line>\n </div>\n </spx-card>\n }\n }\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n </div>\n}", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCompanyName", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity"], outputs: ["spxClose", "spxTitleChange"] }, { kind: "component", type: SpxCardComponent, selector: "spx-card", inputs: ["clickable", "hasContent", "onDetailPage", "text", "unit", "tableView"], outputs: ["clicked"] }, { kind: "component", type: SpxCardLineComponent, selector: "spx-card-line", inputs: ["icon", "showPositiveOrNegative", "text", "value", "secondValue", "showProgress", "unit", "newOrderScreen"], outputs: ["valueChange"] }, { kind: "component", type: SpxFormViewComponent, selector: "spx-form-view", inputs: ["spxFormGroup", "spxForm", "spxSuggestions"], outputs: ["spxBlur", "spxClick", "spxSearch"] }, { kind: "component", type: SpxPaginationComponent, selector: "spx-pagination", inputs: ["faArrowLeft", "faArrowRight", "spxPage", "spxMaxPages", "textNext", "textPage", "textPrevious"], outputs: ["spxPageChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
264
264
  }
265
265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxStockInfoComponent, decorators: [{
266
266
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-stock-info.mjs","sources":["../../../../projects/softpak/components/spx-stock-info/spx-stock-info.component.ts","../../../../projects/softpak/components/spx-stock-info/spx-stock-info.component.html","../../../../projects/softpak/components/spx-stock-info/softpak-components-spx-stock-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { spxValidatorRequired } from '@softpak/components/spx-validation';\nimport { SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { SpxFormButtonTypeEnum, SpxFormFieldI, SpxFormI, SpxFormViewComponent } from '@softpak/components/spx-form-view';\nimport { SpxSeverityEnum, valuePairToValue } from '@softpak/components/spx-helpers';\nimport { SpxStockInfoValueI } from './spx-stock-info-value.interface';\nimport { SpxPaginationComponent } from '@softpak/components/spx-pagination';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { SpxAlertComponent } from '@softpak/components/spx-alert';\nimport { SpxCardComponent, SpxCardLineComponent } from '@softpak/components/spx-card';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\n\nexport const spxCtrlCategory = 'ctrlCategory';\nexport const spxCtrlContainerStatus = 'ctrlContainerStatus';\nexport const spxCtrlContainerStatusGroup = 'ctrlContainerStatusGroup';\nexport const spxCtrlContainerType = 'ctrlContainerType';\nexport const spxCtrlCustomer = 'ctrlCustomer';\nexport const spxCtrlDepot = 'ctrlDepot';\nexport const spxCtrlLocation = 'ctrlLocation';\nexport const spxSectionContainerInfo = 'sectionContainerInfo';\nexport const spxSectionCustomer = 'sectionCustomer';\nexport const spxSectionLocation = 'sectionLocation';\n\n@Component({\n selector: 'spx-stock-info',\n templateUrl: './spx-stock-info.component.html',\n imports: [\n FormsModule,\n FontAwesomeModule,\n ReactiveFormsModule,\n SpxAlertComponent,\n SpxCapitalizePipe,\n SpxCardComponent,\n SpxCardLineComponent,\n SpxFormViewComponent,\n SpxPaginationComponent,\n TranslateModule\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxStockInfoComponent {\n readonly depotReadonly = input<boolean>(false);\n readonly statusGroupsInPatch = input.required<boolean>();\n readonly containers = input.required<any[]>();\n readonly currentPage = input.required<number>();\n readonly faArrowLeft = input.required<IconProp>();\n readonly faArrowRight = input.required<IconProp>();\n readonly faContainerStorage = input.required<IconProp>();\n readonly formGroup = input.required<FormGroup>();\n readonly loaded = input.required<boolean>();\n readonly pageSize = input.required<number>();\n readonly suggestions = input<any>({});\n readonly textCategory = input.required<string>();\n readonly textContainerInfo = input.required<string>();\n readonly textContainerStatus = input.required<string>();\n readonly textContainerStatusGroup = input.required<string>();\n readonly textContainerType = input.required<string>();\n readonly textCustomer = input.required<string>();\n readonly textDepot = input.required<string>();\n readonly textLocation = input.required<string>();\n readonly textNext = input.required<string>();\n readonly textPage = input.required<string>();\n readonly textPrevious = input.required<string>();\n readonly textSearch = input.required<string>();\n readonly textNoResults = input.required<string>();\n readonly textYouCanChangeYourFilters = input.required<string>();\n readonly spxBlurCategory = output<SpxValuePair<string>>();\n readonly spxBlurContainerStatus = output<SpxValuePair<string>>();\n readonly spxBlurContainerStatusGroup = output<SpxValuePair<string>>();\n readonly spxBlurContainerType = output<SpxValuePair<string>>();\n readonly spxBlurCustomer = output<SpxValuePair<string>>();\n readonly spxBlurDepot = output<SpxValuePair<string>>();\n readonly spxClickContainer = output<any>();\n readonly spxPageChange = output<number>();\n readonly spxSearchCategory = output<SpxValuePair<string>>();\n readonly spxSearchContainerStatus = output<SpxValuePair<string>>();\n readonly spxSearchContainerStatusGroup = output<SpxValuePair<string>>();\n readonly spxSearchContainerType = output<SpxValuePair<string>>();\n readonly spxSearchCustomer = output<SpxValuePair<string>>();\n readonly spxSearchDepot = output<SpxValuePair<string>>();\n readonly spxSubmit = output<SpxStockInfoValueI>();\n severityInfo = SpxSeverityEnum.info;\n\n\n form: SpxFormI = {\n buttons: [\n {\n severity: SpxSeverityEnum.success,\n type: SpxFormButtonTypeEnum.submit,\n label: () => this.textSearch(),\n }\n ],\n sections: [\n {\n key: spxSectionLocation,\n show: () => true,\n title: () => this.textLocation(),\n fields: [\n {\n key: spxCtrlDepot,\n label: () => this.textDepot(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [spxValidatorRequired()],\n readonly: () => this.depotReadonly(),\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n {\n key: spxCtrlLocation,\n label: () => this.textLocation(),\n type: () => SpxInputTypeEnum.text,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => false,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n ]\n },\n {\n key: spxSectionCustomer,\n show: () => true,\n title: () => this.textCustomer(),\n fields: [\n {\n key: spxCtrlCustomer,\n label: () => this.textCustomer(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n ]\n },\n {\n key: spxSectionContainerInfo,\n show: () => true,\n title: () => this.textContainerInfo(),\n fields: [\n {\n key: spxCtrlCategory,\n label: () => this.textCategory(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n {\n key: spxCtrlContainerStatus,\n label: () => this.textContainerStatus(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n {\n key: spxCtrlContainerStatusGroup,\n label: () => this.textContainerStatusGroup(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => this.statusGroupsInPatch(),\n capitalize: () => true,\n },\n {\n key: spxCtrlContainerType,\n label: () => this.textContainerType(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n ]\n },\n ]\n };\n\n readonly ctrlCategory = computed(() => this.formGroup()?.get(spxCtrlCategory) as FormControl);\n readonly ctrlContainerStatus = computed(() => this.formGroup()?.get(spxCtrlContainerStatus) as FormControl);\n readonly ctrlContainerStatusGroup = computed(() => this.formGroup()?.get(spxCtrlContainerStatusGroup) as FormControl);\n readonly ctrlContainerType = computed(() => this.formGroup()?.get(spxCtrlContainerType) as FormControl);\n readonly ctrlCustomer = computed(() => this.formGroup()?.get(spxCtrlCustomer) as FormControl);\n readonly ctrlDepot = computed(() => this.formGroup()?.get(spxCtrlDepot) as FormControl);\n readonly ctrlLocation = computed(() => this.formGroup()?.get(spxCtrlLocation) as FormControl);\n\n createForm(): FormGroup {\n return SpxFormViewComponent.createForm(this.form);\n }\n\n getRawValidators(formControl: FormControl) {\n return (formControl as any)._rawValidators;\n }\n\n onBlur(data: { field: SpxFormFieldI, valuePair: SpxValuePair<any> }) {\n setTimeout(() => {\n if (valuePairToValue(data.valuePair)) {\n if (data.field.key === spxCtrlCategory && valuePairToValue(this.ctrlCategory().value) !== null) {\n this.spxBlurCategory.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatus && valuePairToValue(this.ctrlContainerStatus().value) !== null) {\n this.spxBlurContainerStatus.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatusGroup && valuePairToValue(this.ctrlContainerStatusGroup().value) !== null) {\n this.spxBlurContainerStatusGroup.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerType && valuePairToValue(this.ctrlContainerType().value) !== null) {\n this.spxBlurContainerType.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlCustomer && valuePairToValue(this.ctrlCustomer().value) !== null) {\n this.spxBlurCustomer.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlDepot && valuePairToValue(this.ctrlDepot().value) !== null) {\n this.spxBlurDepot.emit(data.valuePair);\n }\n }\n }, 300);\n }\n\n onSearch(data: { field: SpxFormFieldI, valuePair: SpxValuePair<any> }) {\n if (data.field.key === spxCtrlCategory) {\n this.spxSearchCategory.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerType) {\n this.spxSearchContainerType.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatus) {\n this.spxSearchContainerStatus.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatusGroup) {\n this.spxSearchContainerStatusGroup.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlCustomer) {\n this.spxSearchCustomer.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlDepot) {\n this.spxSearchDepot.emit(data.valuePair);\n }\n }\n\n onPageChange(page: number) {\n this.spxPageChange.emit(page);\n }\n\n goToContainer(container: any) {\n this.spxClickContainer.emit(container);\n }\n\n onSubmit(): void {\n this.spxSubmit.emit({\n ctrlCategory: this.ctrlCategory().value,\n ctrlContainerStatus: this.ctrlContainerStatus().value,\n ctrlContainerStatusGroup: this.ctrlContainerStatusGroup().value,\n ctrlContainerType: this.ctrlContainerType().value,\n ctrlCustomer: this.ctrlCustomer().value,\n ctrlDepot: this.ctrlDepot().value,\n ctrlLocation: this.ctrlLocation().value,\n });\n }\n}\n","@if (!loaded()) {\n <form [formGroup]=\"formGroup()\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup()\"\n [spxForm]=\"form\"\n [spxSuggestions]=\"suggestions()\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n </form>\n}\n\n@if (loaded()) {\n <div class=\"flex flex-col gap-3\">\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n @if (containers().length === 0) {\n <spx-alert [spxSeverity]=\"severityInfo\" [spxTitle]=\"textNoResults() | translate | capitalize\">\n {{ textYouCanChangeYourFilters() | translate | capitalize }}\n </spx-alert>\n }\n @for (container of containers(); track container; let i = $index) {\n @if (i < pageSize()) {\n <spx-card [hasContent]=\"false\" (clicked)=\"goToContainer(container)\">\n <div card-header class=\"card-header rounded-t-lg p-3 bg-sky-200\">\n <div class=\"flex flex-row space-x-3 items-center w-full\">\n <div\n class=\"card-header-icon-left flex basis-10 py-1.5 shrink-0 grow-0 place-items-center rounded bg-sky-400\">\n <fa-icon class=\"mx-auto\" [icon]=\"faContainerStorage()\"></fa-icon>\n </div>\n <div class=\"card-header-text-middle grow\">\n <div class=\"block font-medium text-large\">{{ container.formatted.containerNumber }}</div>\n </div>\n <div\n class=\"card-header-icons-right text-sm text-gray-900 leading-5 flex flex-wrap items-stretch text-center font-bold\">\n @if (container.containerStatus) {\n <div class=\"min-w-[36px] px-2 py-1 bg-white text-black\"> {{\n container.formatted.containerStatus }}</div>\n }\n </div>\n </div>\n </div>\n <div card-lines class=\"grid grid-cols-2 gap-2\">\n <spx-card-line [text]=\"textContainerType() | translate | capitalize\"\n [value]=\"container.formatted.containerType\"></spx-card-line>\n <spx-card-line [text]=\"textCategory() | translate | capitalize\"\n [value]=\"container.formatted.category\"></spx-card-line>\n <spx-card-line [text]=\"textLocation() | translate | capitalize\"\n [value]=\"container.formatted.location\"></spx-card-line>\n </div>\n </spx-card>\n }\n }\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n </div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-stock-info.mjs","sources":["../../../../projects/softpak/components/spx-stock-info/spx-stock-info.component.ts","../../../../projects/softpak/components/spx-stock-info/spx-stock-info.component.html","../../../../projects/softpak/components/spx-stock-info/softpak-components-spx-stock-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { spxValidatorRequired } from '@softpak/components/spx-validation';\nimport { SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { SpxFormButtonTypeEnum, SpxFormFieldI, SpxFormI, SpxFormViewComponent } from '@softpak/components/spx-form-view';\nimport { SpxSeverityEnum, valuePairToValue } from '@softpak/components/spx-helpers';\nimport { SpxStockInfoValueI } from './spx-stock-info-value.interface';\nimport { SpxPaginationComponent } from '@softpak/components/spx-pagination';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { SpxAlertComponent } from '@softpak/components/spx-alert';\nimport { SpxCardComponent, SpxCardLineComponent } from '@softpak/components/spx-card';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\n\nexport const spxCtrlCategory = 'ctrlCategory';\nexport const spxCtrlContainerStatus = 'ctrlContainerStatus';\nexport const spxCtrlContainerStatusGroup = 'ctrlContainerStatusGroup';\nexport const spxCtrlContainerType = 'ctrlContainerType';\nexport const spxCtrlCustomer = 'ctrlCustomer';\nexport const spxCtrlDepot = 'ctrlDepot';\nexport const spxCtrlLocation = 'ctrlLocation';\nexport const spxSectionContainerInfo = 'sectionContainerInfo';\nexport const spxSectionCustomer = 'sectionCustomer';\nexport const spxSectionLocation = 'sectionLocation';\n\n@Component({\n selector: 'spx-stock-info',\n templateUrl: './spx-stock-info.component.html',\n imports: [\n FormsModule,\n FontAwesomeModule,\n ReactiveFormsModule,\n SpxAlertComponent,\n SpxCapitalizePipe,\n SpxCardComponent,\n SpxCardLineComponent,\n SpxFormViewComponent,\n SpxPaginationComponent,\n TranslateModule\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SpxStockInfoComponent {\n readonly depotReadonly = input<boolean>(false);\n readonly statusGroupsInPatch = input.required<boolean>();\n readonly containers = input.required<any[]>();\n readonly currentPage = input.required<number>();\n readonly faArrowLeft = input.required<IconProp>();\n readonly faArrowRight = input.required<IconProp>();\n readonly faContainerStorage = input.required<IconProp>();\n readonly formGroup = input.required<FormGroup>();\n readonly loaded = input.required<boolean>();\n readonly pageSize = input.required<number>();\n readonly suggestions = input<any>({});\n readonly textCategory = input.required<string>();\n readonly textContainerInfo = input.required<string>();\n readonly textContainerStatus = input.required<string>();\n readonly textContainerStatusGroup = input.required<string>();\n readonly textContainerType = input.required<string>();\n readonly textCustomer = input.required<string>();\n readonly textDepot = input.required<string>();\n readonly textLocation = input.required<string>();\n readonly textNext = input.required<string>();\n readonly textPage = input.required<string>();\n readonly textPrevious = input.required<string>();\n readonly textSearch = input.required<string>();\n readonly textNoResults = input.required<string>();\n readonly textYouCanChangeYourFilters = input.required<string>();\n readonly spxBlurCategory = output<SpxValuePair<string>>();\n readonly spxBlurContainerStatus = output<SpxValuePair<string>>();\n readonly spxBlurContainerStatusGroup = output<SpxValuePair<string>>();\n readonly spxBlurContainerType = output<SpxValuePair<string>>();\n readonly spxBlurCustomer = output<SpxValuePair<string>>();\n readonly spxBlurDepot = output<SpxValuePair<string>>();\n readonly spxClickContainer = output<any>();\n readonly spxPageChange = output<number>();\n readonly spxSearchCategory = output<SpxValuePair<string>>();\n readonly spxSearchContainerStatus = output<SpxValuePair<string>>();\n readonly spxSearchContainerStatusGroup = output<SpxValuePair<string>>();\n readonly spxSearchContainerType = output<SpxValuePair<string>>();\n readonly spxSearchCustomer = output<SpxValuePair<string>>();\n readonly spxSearchDepot = output<SpxValuePair<string>>();\n readonly spxSubmit = output<SpxStockInfoValueI>();\n severityInfo = SpxSeverityEnum.info;\n\n\n form: SpxFormI = {\n buttons: [\n {\n severity: SpxSeverityEnum.success,\n type: SpxFormButtonTypeEnum.submit,\n label: () => this.textSearch(),\n }\n ],\n sections: [\n {\n key: spxSectionLocation,\n show: () => true,\n title: () => this.textLocation(),\n fields: [\n {\n key: spxCtrlDepot,\n label: () => this.textDepot(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [spxValidatorRequired()],\n readonly: () => this.depotReadonly(),\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n {\n key: spxCtrlLocation,\n label: () => this.textLocation(),\n type: () => SpxInputTypeEnum.text,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => false,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n ]\n },\n {\n key: spxSectionCustomer,\n show: () => true,\n title: () => this.textCustomer(),\n fields: [\n {\n key: spxCtrlCustomer,\n label: () => this.textCustomer(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n ]\n },\n {\n key: spxSectionContainerInfo,\n show: () => true,\n title: () => this.textContainerInfo(),\n fields: [\n {\n key: spxCtrlCategory,\n label: () => this.textCategory(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n {\n key: spxCtrlContainerStatus,\n label: () => this.textContainerStatus(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n {\n key: spxCtrlContainerStatusGroup,\n label: () => this.textContainerStatusGroup(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => this.statusGroupsInPatch(),\n capitalize: () => true,\n },\n {\n key: spxCtrlContainerType,\n label: () => this.textContainerType(),\n type: () => SpxInputTypeEnum.autocomplete,\n defaultValue: () => null,\n validators: () => [],\n readonly: () => false,\n suggestions: () => true,\n afterValueChange: undefined,\n show: () => true,\n capitalize: () => true,\n },\n ]\n },\n ]\n };\n\n readonly ctrlCategory = computed(() => this.formGroup()?.get(spxCtrlCategory) as FormControl);\n readonly ctrlContainerStatus = computed(() => this.formGroup()?.get(spxCtrlContainerStatus) as FormControl);\n readonly ctrlContainerStatusGroup = computed(() => this.formGroup()?.get(spxCtrlContainerStatusGroup) as FormControl);\n readonly ctrlContainerType = computed(() => this.formGroup()?.get(spxCtrlContainerType) as FormControl);\n readonly ctrlCustomer = computed(() => this.formGroup()?.get(spxCtrlCustomer) as FormControl);\n readonly ctrlDepot = computed(() => this.formGroup()?.get(spxCtrlDepot) as FormControl);\n readonly ctrlLocation = computed(() => this.formGroup()?.get(spxCtrlLocation) as FormControl);\n\n createForm(): FormGroup {\n return SpxFormViewComponent.createForm(this.form);\n }\n\n getRawValidators(formControl: FormControl) {\n return (formControl as any)._rawValidators;\n }\n\n onBlur(data: { field: SpxFormFieldI, valuePair: SpxValuePair<any> }) {\n setTimeout(() => {\n if (valuePairToValue(data.valuePair)) {\n if (data.field.key === spxCtrlCategory && valuePairToValue(this.ctrlCategory().value) !== null) {\n this.spxBlurCategory.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatus && valuePairToValue(this.ctrlContainerStatus().value) !== null) {\n this.spxBlurContainerStatus.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatusGroup && valuePairToValue(this.ctrlContainerStatusGroup().value) !== null) {\n this.spxBlurContainerStatusGroup.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerType && valuePairToValue(this.ctrlContainerType().value) !== null) {\n this.spxBlurContainerType.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlCustomer && valuePairToValue(this.ctrlCustomer().value) !== null) {\n this.spxBlurCustomer.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlDepot && valuePairToValue(this.ctrlDepot().value) !== null) {\n this.spxBlurDepot.emit(data.valuePair);\n }\n }\n }, 300);\n }\n\n onSearch(data: { field: SpxFormFieldI, valuePair: SpxValuePair<any> }) {\n if (data.field.key === spxCtrlCategory) {\n this.spxSearchCategory.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerType) {\n this.spxSearchContainerType.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatus) {\n this.spxSearchContainerStatus.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlContainerStatusGroup) {\n this.spxSearchContainerStatusGroup.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlCustomer) {\n this.spxSearchCustomer.emit(data.valuePair);\n }\n if (data.field.key === spxCtrlDepot) {\n this.spxSearchDepot.emit(data.valuePair);\n }\n }\n\n onPageChange(page: number) {\n this.spxPageChange.emit(page);\n }\n\n goToContainer(container: any) {\n this.spxClickContainer.emit(container);\n }\n\n onSubmit(): void {\n this.spxSubmit.emit({\n ctrlCategory: this.ctrlCategory().value,\n ctrlContainerStatus: this.ctrlContainerStatus().value,\n ctrlContainerStatusGroup: this.ctrlContainerStatusGroup().value,\n ctrlContainerType: this.ctrlContainerType().value,\n ctrlCustomer: this.ctrlCustomer().value,\n ctrlDepot: this.ctrlDepot().value,\n ctrlLocation: this.ctrlLocation().value,\n });\n }\n}\n","@if (!loaded()) {\n <form [formGroup]=\"formGroup()\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup()\"\n [spxForm]=\"form\"\n [spxSuggestions]=\"suggestions()\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n </form>\n}\n\n@if (loaded()) {\n <div class=\"flex flex-col gap-3\">\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n @if (containers().length === 0) {\n <spx-alert [spxSeverity]=\"severityInfo\" [spxTitle]=\"textNoResults() | translate | capitalize\">\n {{ textYouCanChangeYourFilters() | translate | capitalize }}\n </spx-alert>\n }\n @for (container of containers(); track container; let i = $index) {\n @if (i < pageSize()) {\n <spx-card [hasContent]=\"false\" (clicked)=\"goToContainer(container)\">\n <div card-header class=\"card-header rounded-t-lg p-3 bg-sky-200\">\n <div class=\"flex flex-row space-x-3 items-center w-full\">\n <div\n class=\"card-header-icon-left flex basis-10 py-1.5 shrink-0 grow-0 place-items-center rounded bg-sky-400\">\n <fa-icon class=\"mx-auto\" [icon]=\"faContainerStorage()\"></fa-icon>\n </div>\n <div class=\"card-header-text-middle grow\">\n <div class=\"block font-medium text-large\">{{ container.formatted.containerNumber }}</div>\n </div>\n <div\n class=\"card-header-icons-right text-sm text-gray-900 leading-5 flex flex-wrap items-stretch text-center font-bold\">\n @if (container.containerStatus) {\n <div class=\"min-w-[36px] px-2 py-1 bg-white text-black\"> {{\n container.formatted.containerStatus }}</div>\n }\n </div>\n </div>\n </div>\n <div card-lines class=\"grid grid-cols-2 gap-2\">\n <spx-card-line [text]=\"textContainerType() | translate | capitalize\"\n [value]=\"container.formatted.containerType\"></spx-card-line>\n <spx-card-line [text]=\"textCategory() | translate | capitalize\"\n [value]=\"container.formatted.category\"></spx-card-line>\n <spx-card-line [text]=\"textLocation() | translate | capitalize\"\n [value]=\"container.formatted.location\"></spx-card-line>\n </div>\n </spx-card>\n }\n }\n @if (containers().length > 0) {\n <spx-pagination\n [spxPage]=\"currentPage()\"\n [spxMaxPages]=\"(containers().length < (pageSize() + 1)) ? (currentPage() + 1) : currentPage()\"\n [faArrowLeft]=\"faArrowLeft()\"\n [faArrowRight]=\"faArrowRight()\"\n [textPage]=\"textPage()\"\n [textPrevious]=\"textPrevious()\"\n [textNext]=\"textNext()\"\n (spxPageChange)=\"onPageChange($event)\">\n </spx-pagination>\n }\n </div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { inject, input, output, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { SpxAlertComponent } from '@softpak/components/spx-alert';
4
- import { createActionGroup, props, emptyProps, createFeature, createReducer, on } from '@ngrx/store';
4
+ import { Store, createActionGroup, props, emptyProps, createFeature, createReducer, on } from '@ngrx/store';
5
5
  import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
6
6
 
7
7
  var SpxToasterSeverityEnum;
@@ -30,8 +30,10 @@ function toasterAutocloseSpeed(autoCloseSpeed, messageText) {
30
30
 
31
31
  class SpxToasterComponent {
32
32
  constructor() {
33
+ this.store = inject(Store);
33
34
  this.messages = input.required(...(ngDevMode ? [{ debugName: "messages" }] : []));
34
35
  this.spxAutoclose = input(...(ngDevMode ? [undefined, { debugName: "spxAutoclose" }] : []));
36
+ this.spxCustomer = this.store.selectSignal((state) => state.spxChannel?.channel?.brand);
35
37
  this.spxClose = output();
36
38
  effect(() => {
37
39
  this.messages().forEach((message) => {
@@ -47,13 +49,13 @@ class SpxToasterComponent {
47
49
  this.spxClose.emit(id);
48
50
  }
49
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxToasterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxToasterComponent, isStandalone: true, selector: "spx-toaster", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: true, transformFunction: null }, spxAutoclose: { classPropertyName: "spxAutoclose", publicName: "spxAutoclose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { spxClose: "spxClose" }, host: { classAttribute: "spx-toasts-displayer" }, ngImport: i0, template: "\n@if (messages().length > 0) {\n <div\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\n @for (message of messages(); track message) {\n <spx-alert\n [spxAutoclose]=\"message.autoClose\"\n [spxCloseable]=\"message.closeable\"\n [spxSeverity]=\"message.severity\"\n [spxTitle]=\"message.title\"\n (spxClose)=\"handleClose(message.id)\"\n (click)=\"handleClose(message.id)\"\n [id]=\"message.id\"\n >{{message.message}}\n </spx-alert>\n }\n </div>\n}", styles: [".progress-bar-container{width:100%;height:5px;background-color:#ccc;margin-top:8px;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background-color:#76c7c0;animation-name:progress;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-duration:5000}@keyframes progress{0%{width:0%}to{width:100%}}\n"], dependencies: [{ kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity"], outputs: ["spxClose", "spxTitleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxToasterComponent, isStandalone: true, selector: "spx-toaster", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: true, transformFunction: null }, spxAutoclose: { classPropertyName: "spxAutoclose", publicName: "spxAutoclose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { spxClose: "spxClose" }, host: { classAttribute: "spx-toasts-displayer" }, ngImport: i0, template: "\n@if (messages().length > 0) {\n <div\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\n @for (message of messages(); track message) {\n <spx-alert\n [spxAutoclose]=\"message.autoClose\"\n [spxCompanyName]=\"spxCustomer()\"\n [spxCloseable]=\"message.closeable\"\n [spxSeverity]=\"message.severity\"\n [spxTitle]=\"message.title\"\n (spxClose)=\"handleClose(message.id)\"\n (click)=\"handleClose(message.id)\"\n [id]=\"message.id\"\n >{{message.message}}\n </spx-alert>\n }\n </div>\n}\n", styles: [".progress-bar-container{width:100%;height:5px;background-color:#ccc;margin-top:8px;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background-color:#76c7c0;animation-name:progress;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-duration:5000}@keyframes progress{0%{width:0%}to{width:100%}}\n"], dependencies: [{ kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCompanyName", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity"], outputs: ["spxClose", "spxTitleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
53
  }
52
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxToasterComponent, decorators: [{
53
55
  type: Component,
54
56
  args: [{ selector: 'spx-toaster', standalone: true, imports: [SpxAlertComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
55
57
  class: 'spx-toasts-displayer',
56
- }, template: "\n@if (messages().length > 0) {\n <div\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\n @for (message of messages(); track message) {\n <spx-alert\n [spxAutoclose]=\"message.autoClose\"\n [spxCloseable]=\"message.closeable\"\n [spxSeverity]=\"message.severity\"\n [spxTitle]=\"message.title\"\n (spxClose)=\"handleClose(message.id)\"\n (click)=\"handleClose(message.id)\"\n [id]=\"message.id\"\n >{{message.message}}\n </spx-alert>\n }\n </div>\n}", styles: [".progress-bar-container{width:100%;height:5px;background-color:#ccc;margin-top:8px;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background-color:#76c7c0;animation-name:progress;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-duration:5000}@keyframes progress{0%{width:0%}to{width:100%}}\n"] }]
58
+ }, template: "\n@if (messages().length > 0) {\n <div\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\n @for (message of messages(); track message) {\n <spx-alert\n [spxAutoclose]=\"message.autoClose\"\n [spxCompanyName]=\"spxCustomer()\"\n [spxCloseable]=\"message.closeable\"\n [spxSeverity]=\"message.severity\"\n [spxTitle]=\"message.title\"\n (spxClose)=\"handleClose(message.id)\"\n (click)=\"handleClose(message.id)\"\n [id]=\"message.id\"\n >{{message.message}}\n </spx-alert>\n }\n </div>\n}\n", styles: [".progress-bar-container{width:100%;height:5px;background-color:#ccc;margin-top:8px;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background-color:#76c7c0;animation-name:progress;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-duration:5000}@keyframes progress{0%{width:0%}to{width:100%}}\n"] }]
57
59
  }], ctorParameters: () => [], propDecorators: { messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: true }] }], spxAutoclose: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxAutoclose", required: false }] }], spxClose: [{ type: i0.Output, args: ["spxClose"] }] } });
58
60
 
59
61
  class SpxToasterMessageI {
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-toaster.mjs","sources":["../../../../projects/softpak/components/spx-toaster/src/spx-toaster-autoclose-speed.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.html","../../../../projects/softpak/components/spx-toaster/src/spx-toaster-message.interface.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.actions.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.initial.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.reducer.ts","../../../../projects/softpak/components/spx-toaster/softpak-components-spx-toaster.ts"],"sourcesContent":["export enum SpxToasterSeverityEnum {\n ERROR = 'error',\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n}\n\nexport enum SpxToasterAutoCloseSpeedEnum {\n DEFAULT = -1,\n SLOW = -2,\n}\n\nexport function toasterAutocloseSpeed(autoCloseSpeed: SpxToasterAutoCloseSpeedEnum, messageText: string) {\n const messageLength = messageText?.length ?? 0;\n switch (autoCloseSpeed) {\n case SpxToasterAutoCloseSpeedEnum.DEFAULT:\n return Math.min(Math.max(messageLength * 50, 2000), 7000);\n case SpxToasterAutoCloseSpeedEnum.SLOW:\n return Math.min(Math.max(messageLength * 60, 3000), 10000);\n default:\n return autoCloseSpeed;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n input,\n output,\n} from '@angular/core';\nimport { SpxToasterMessageI } from './spx-toaster-message.interface';\nimport { SpxAlertComponent } from '@softpak/components/spx-alert';\n\n@Component({\n selector: 'spx-toaster',\n standalone: true,\n imports: [SpxAlertComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './spx-toaster.component.scss',\n templateUrl: './spx-toaster.component.html',\n host: {\n class: 'spx-toasts-displayer',\n },\n})\nexport class SpxToasterComponent {\n messages = input.required<SpxToasterMessageI[]>();\n readonly spxAutoclose = input<number>();\n spxClose = output<number>();\n constructor() {\n effect(() => {\n this.messages().forEach((message) => {\n if (message.autoClose) {\n setTimeout(() => {\n this.handleClose(message.id);\n }, message.autoClose);\n }\n });\n });\n }\n\n public handleClose(id: number) {\n this.spxClose.emit(id);\n }\n}\n","\n@if (messages().length > 0) {\n <div\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\n @for (message of messages(); track message) {\n <spx-alert\n [spxAutoclose]=\"message.autoClose\"\n [spxCloseable]=\"message.closeable\"\n [spxSeverity]=\"message.severity\"\n [spxTitle]=\"message.title\"\n (spxClose)=\"handleClose(message.id)\"\n (click)=\"handleClose(message.id)\"\n [id]=\"message.id\"\n >{{message.message}}\n </spx-alert>\n }\n </div>\n}","import { SpxSeverityEnum } from \"@softpak/components/spx-helpers\";\nimport { SpxToasterAutoCloseSpeedEnum, toasterAutocloseSpeed } from \"./spx-toaster-autoclose-speed\";\n\nexport class SpxToasterMessageI {\n private _autoClose?: number;\n title?: string;\n closeable?: boolean;\n id!: number;\n message!: string;\n severity!: SpxSeverityEnum;\n uniqueIdentifier?: string;\n\n constructor(message: string, id: number, severity: SpxSeverityEnum, autoClose?: SpxToasterAutoCloseSpeedEnum, closeable?: boolean) {\n this.autoClose = autoClose;\n this.message = message || '';\n this.id = id;\n this.severity = severity;\n this.closeable = closeable;\n }\n\n get autoClose(): number | undefined {\n return this._autoClose;\n }\n\n set autoClose(value: number | undefined) {\n if (value && value !== this._autoClose) {\n this._autoClose = toasterAutocloseSpeed(value, this.message);\n }\n }\n\n}\n","import { createActionGroup, emptyProps, props } from '@ngrx/store';\n\nimport { SpxToasterAutoCloseSpeedEnum } from '../../src/spx-toaster-autoclose-speed';\n\nexport const spxToasterActions = createActionGroup({\n source: 'SpxToaster',\n events: {\n ClearAll: emptyProps(),\n ClearAllErrors: emptyProps(),\n ClearAllErrorsAndWarnings: emptyProps(),\n ClearMessage: props<{ id: number; }>(),\n CreateError: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n CreateInfo: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n CreateSuccess: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n CreateWarning: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n },\n});\n","import { StateI } from \"./spx-toaster.state\";\n\nexport const initialState: StateI = {\n messages: [],\n nextId: 1,\n};\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxToasterMessageI } from '../../src/spx-toaster-message.interface';\nimport { StateI } from './spx-toaster.state';\nimport { initialState } from './spx-toaster.initial';\nimport { spxToasterActions } from './spx-toaster.actions';\nimport { toasterAutocloseSpeed } from '../../src/spx-toaster-autoclose-speed';\n\nexport function addMessage(\n currentMessages: SpxToasterMessageI[], newMessage: SpxToasterMessageI): SpxToasterMessageI[] {\n const messages = [new SpxToasterMessageI(\n newMessage.message,\n newMessage.id,\n newMessage.severity,\n newMessage.autoClose ? newMessage.autoClose : undefined,\n newMessage.closeable ? newMessage.closeable : true,\n ), ...currentMessages];\n if (messages.length > 5) {\n messages.length = 5;\n }\n return messages;\n}\n\nexport default createFeature({\n name: 'spxToaster',\n reducer: createReducer(\n initialState,\n on(spxToasterActions.clearAll, (state: StateI): StateI => {\n return {\n ...state,\n messages: []\n };\n }),\n on(spxToasterActions.clearAllErrors, (state: StateI): StateI => {\n return {\n ...state,\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error)]\n };\n }),\n on(spxToasterActions.clearAllErrorsAndWarnings, (state: StateI): StateI => {\n return {\n ...state,\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error &&\n msg.severity !== SpxSeverityEnum.warning)]\n };\n }),\n on(spxToasterActions.clearMessage, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: [...state.messages.filter(msg => msg.id !== action.id)]\n };\n }),\n on(spxToasterActions.createError, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.error,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n on(spxToasterActions.createInfo, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.info,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n on(spxToasterActions.createSuccess, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.success,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n on(spxToasterActions.createWarning, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.warning,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n ),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-toaster.mjs","sources":["../../../../projects/softpak/components/spx-toaster/src/spx-toaster-autoclose-speed.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.ts","../../../../projects/softpak/components/spx-toaster/src/spx-toaster.component.html","../../../../projects/softpak/components/spx-toaster/src/spx-toaster-message.interface.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.actions.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.initial.ts","../../../../projects/softpak/components/spx-toaster/store/spx-toaster/spx-toaster.reducer.ts","../../../../projects/softpak/components/spx-toaster/softpak-components-spx-toaster.ts"],"sourcesContent":["export enum SpxToasterSeverityEnum {\n ERROR = 'error',\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n}\n\nexport enum SpxToasterAutoCloseSpeedEnum {\n DEFAULT = -1,\n SLOW = -2,\n}\n\nexport function toasterAutocloseSpeed(autoCloseSpeed: SpxToasterAutoCloseSpeedEnum, messageText: string) {\n const messageLength = messageText?.length ?? 0;\n switch (autoCloseSpeed) {\n case SpxToasterAutoCloseSpeedEnum.DEFAULT:\n return Math.min(Math.max(messageLength * 50, 2000), 7000);\n case SpxToasterAutoCloseSpeedEnum.SLOW:\n return Math.min(Math.max(messageLength * 60, 3000), 10000);\n default:\n return autoCloseSpeed;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { SpxAlertComponent } from '@softpak/components/spx-alert';\nimport { SpxToasterMessageI } from './spx-toaster-message.interface';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'spx-toaster',\n standalone: true,\n imports: [SpxAlertComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './spx-toaster.component.scss',\n templateUrl: './spx-toaster.component.html',\n host: {\n class: 'spx-toasts-displayer',\n },\n})\nexport class SpxToasterComponent {\n private readonly store = inject(Store);\n messages = input.required<SpxToasterMessageI[]>();\n readonly spxAutoclose = input<number>();\n readonly spxCustomer = this.store.selectSignal(\n (state: { spxChannel?: { channel?: { brand?: string } | null } }) => state.spxChannel?.channel?.brand,\n );\n spxClose = output<number>();\n\n constructor() {\n effect(() => {\n this.messages().forEach((message) => {\n if (message.autoClose) {\n setTimeout(() => {\n this.handleClose(message.id);\n }, message.autoClose);\n }\n });\n });\n }\n\n public handleClose(id: number) {\n this.spxClose.emit(id);\n }\n}\n","\n@if (messages().length > 0) {\n <div\n class=\"flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50\">\n @for (message of messages(); track message) {\n <spx-alert\n [spxAutoclose]=\"message.autoClose\"\n [spxCompanyName]=\"spxCustomer()\"\n [spxCloseable]=\"message.closeable\"\n [spxSeverity]=\"message.severity\"\n [spxTitle]=\"message.title\"\n (spxClose)=\"handleClose(message.id)\"\n (click)=\"handleClose(message.id)\"\n [id]=\"message.id\"\n >{{message.message}}\n </spx-alert>\n }\n </div>\n}\n","import { SpxSeverityEnum } from \"@softpak/components/spx-helpers\";\nimport { SpxToasterAutoCloseSpeedEnum, toasterAutocloseSpeed } from \"./spx-toaster-autoclose-speed\";\n\nexport class SpxToasterMessageI {\n private _autoClose?: number;\n title?: string;\n closeable?: boolean;\n id!: number;\n message!: string;\n severity!: SpxSeverityEnum;\n uniqueIdentifier?: string;\n\n constructor(message: string, id: number, severity: SpxSeverityEnum, autoClose?: SpxToasterAutoCloseSpeedEnum, closeable?: boolean) {\n this.autoClose = autoClose;\n this.message = message || '';\n this.id = id;\n this.severity = severity;\n this.closeable = closeable;\n }\n\n get autoClose(): number | undefined {\n return this._autoClose;\n }\n\n set autoClose(value: number | undefined) {\n if (value && value !== this._autoClose) {\n this._autoClose = toasterAutocloseSpeed(value, this.message);\n }\n }\n\n}\n","import { createActionGroup, emptyProps, props } from '@ngrx/store';\n\nimport { SpxToasterAutoCloseSpeedEnum } from '../../src/spx-toaster-autoclose-speed';\n\nexport const spxToasterActions = createActionGroup({\n source: 'SpxToaster',\n events: {\n ClearAll: emptyProps(),\n ClearAllErrors: emptyProps(),\n ClearAllErrorsAndWarnings: emptyProps(),\n ClearMessage: props<{ id: number; }>(),\n CreateError: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n CreateInfo: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n CreateSuccess: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n CreateWarning: props<{ autoClose?: number | SpxToasterAutoCloseSpeedEnum; closeable?: boolean; messageText: string; title?: string; }>(),\n },\n});\n","import { StateI } from \"./spx-toaster.state\";\n\nexport const initialState: StateI = {\n messages: [],\n nextId: 1,\n};\n","import { createFeature, createReducer, on } from '@ngrx/store';\n\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxToasterMessageI } from '../../src/spx-toaster-message.interface';\nimport { StateI } from './spx-toaster.state';\nimport { initialState } from './spx-toaster.initial';\nimport { spxToasterActions } from './spx-toaster.actions';\nimport { toasterAutocloseSpeed } from '../../src/spx-toaster-autoclose-speed';\n\nexport function addMessage(\n currentMessages: SpxToasterMessageI[], newMessage: SpxToasterMessageI): SpxToasterMessageI[] {\n const messages = [new SpxToasterMessageI(\n newMessage.message,\n newMessage.id,\n newMessage.severity,\n newMessage.autoClose ? newMessage.autoClose : undefined,\n newMessage.closeable ? newMessage.closeable : true,\n ), ...currentMessages];\n if (messages.length > 5) {\n messages.length = 5;\n }\n return messages;\n}\n\nexport default createFeature({\n name: 'spxToaster',\n reducer: createReducer(\n initialState,\n on(spxToasterActions.clearAll, (state: StateI): StateI => {\n return {\n ...state,\n messages: []\n };\n }),\n on(spxToasterActions.clearAllErrors, (state: StateI): StateI => {\n return {\n ...state,\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error)]\n };\n }),\n on(spxToasterActions.clearAllErrorsAndWarnings, (state: StateI): StateI => {\n return {\n ...state,\n messages: [...state.messages.filter(msg => msg.severity !== SpxSeverityEnum.error &&\n msg.severity !== SpxSeverityEnum.warning)]\n };\n }),\n on(spxToasterActions.clearMessage, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: [...state.messages.filter(msg => msg.id !== action.id)]\n };\n }),\n on(spxToasterActions.createError, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.error,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n on(spxToasterActions.createInfo, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.info,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n on(spxToasterActions.createSuccess, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.success,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n on(spxToasterActions.createWarning, (state: StateI, action): StateI => {\n return {\n ...state,\n messages: addMessage(state.messages, {\n autoClose: action.autoClose ? toasterAutocloseSpeed(action.autoClose, action.messageText) : undefined,\n closeable: action.closeable ? action.closeable : true,\n id: state.nextId,\n message: action.messageText,\n severity: SpxSeverityEnum.warning,\n title: action.title,\n }),\n nextId: state.nextId + 1\n };\n }),\n ),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i3 from '@ionic/angular/standalone';
2
2
  import { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';
3
- import { spxTextCheckingForUpdates, spxTextOneMomentPlease, spxTextUpdateErrorReason, spxTextUpdateAppVersion, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateLastCheck, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateVersionInfo, spxTextUpdateStatusCompleted, spxTextUpdateStatusWebNotAvailable, spxTextUpdateStatusFailed, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusUpToDate, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusPreparing, spxTextUpdate, spxTextReadyToBeInstalled, spxTextPatchAvailable, spxTextUpdateAvailable, spxTextOpenAppStore, spxTextLiveUpdateCheckFailedWithReason, spxTextLiveUpdateCheckFailed } from '@softpak/components/spx-translate';
3
+ import { spxTextCheckingForUpdates, spxTextUpdateErrorReason, spxTextUpdateAppVersion, spxTextUpdateBinaryVersionGroup, spxTextUpdateBuildVersion, spxTextUpdateLastCheck, spxTextUpdateLiveBundle, spxTextUpdateLiveChannel, spxTextUpdateStatus, spxTextUpdateVersionInfo, spxTextUpdateStatusCompleted, spxTextUpdateStatusWebNotAvailable, spxTextUpdateStatusFailed, spxTextUpdateStatusUpdateReady, spxTextUpdateStatusUpToDate, spxTextUpdateStatusReloading, spxTextUpdateStatusSyncing, spxTextUpdateStatusPreparing, spxTextUpdate, spxTextReadyToBeInstalled, spxTextPatchAvailable, spxTextUpdateAvailable, spxTextOpenAppStore, spxTextLiveUpdateCheckFailedWithReason, spxTextLiveUpdateCheckFailed } from '@softpak/components/spx-translate';
4
4
  import { App } from '@capacitor/app';
5
5
  import * as i0 from '@angular/core';
6
6
  import { signal, computed, effect, Component, HostBinding, ChangeDetectionStrategy, inject, Injectable } from '@angular/core';
@@ -104,7 +104,7 @@ var updCheck = createFeature({
104
104
  }), on(spxUpdateCheckActions.runCheck, (state, { forceWaitForUpdate }) => {
105
105
  return {
106
106
  ...state,
107
- forceWaitForUpdate: forceWaitForUpdate ? true : state.forceWaitForUpdate,
107
+ forceWaitForUpdate: typeof forceWaitForUpdate === 'boolean' ? forceWaitForUpdate : state.forceWaitForUpdate,
108
108
  lastErrorReason: null,
109
109
  showError: false,
110
110
  status: SpxUpdateCheckStatusEnum.preparing,
@@ -134,11 +134,15 @@ var spxUpdateCheck_reducer = /*#__PURE__*/Object.freeze({
134
134
  });
135
135
 
136
136
  class SpxUpdatePageComponent {
137
+ static { this.SUCCESS_CLOSE_DELAY_MS = 1000; }
137
138
  ngOnInit() {
138
139
  this.hasStarted.set(true);
139
140
  void this.loadVersionInfo();
140
141
  this.appStore.dispatch(spxUpdateCheckActions.runCheck({ forceWaitForUpdate: true }));
141
142
  }
143
+ ngOnDestroy() {
144
+ this.clearScheduledClose();
145
+ }
142
146
  constructor(appStore, activatedRoute, navController) {
143
147
  this.appStore = appStore;
144
148
  this.activatedRoute = activatedRoute;
@@ -148,13 +152,13 @@ class SpxUpdatePageComponent {
148
152
  this.buildVersion = signal('-', ...(ngDevMode ? [{ debugName: "buildVersion" }] : []));
149
153
  this.lastCheck = this.appStore.selectSignal(updCheck.selectLastCheck);
150
154
  this.lastErrorReason = this.appStore.selectSignal(updCheck.selectLastErrorReason);
151
- this.forceWaitForUpdate = this.appStore.selectSignal(updCheck.selectForceWaitForUpdate);
152
155
  this.hasStarted = signal(false, ...(ngDevMode ? [{ debugName: "hasStarted" }] : []));
156
+ this.hasNavigatedAway = signal(false, ...(ngDevMode ? [{ debugName: "hasNavigatedAway" }] : []));
153
157
  this.liveBundle = signal('-', ...(ngDevMode ? [{ debugName: "liveBundle" }] : []));
154
158
  this.liveUpdateChannel = signal('-', ...(ngDevMode ? [{ debugName: "liveUpdateChannel" }] : []));
155
159
  this.status = this.appStore.selectSignal(updCheck.selectStatus);
160
+ this.closeTimerId = null;
156
161
  this.spxTextCheckingForUpdates = spxTextCheckingForUpdates;
157
- this.spxTextOneMomentPlease = spxTextOneMomentPlease;
158
162
  this.spxTextUpdateErrorReason = spxTextUpdateErrorReason;
159
163
  this.spxTextUpdateAppVersion = spxTextUpdateAppVersion;
160
164
  this.spxTextUpdateBinaryVersionGroup = spxTextUpdateBinaryVersionGroup;
@@ -186,21 +190,65 @@ class SpxUpdatePageComponent {
186
190
  return spxTextUpdateStatusCompleted;
187
191
  }
188
192
  }, ...(ngDevMode ? [{ debugName: "statusText" }] : []));
189
- this.showError = this.appStore.selectSignal(updCheck.selectShowError);
190
193
  effect(() => {
191
194
  this.status();
192
195
  this.refreshStorageVersionInfo();
193
196
  });
194
197
  effect(() => {
195
- if (!this.hasStarted() || this.forceWaitForUpdate() || this.showError()) {
198
+ const status = this.status();
199
+ if (!this.hasStarted() || this.hasNavigatedAway()) {
200
+ return;
201
+ }
202
+ if (!this.shouldCloseUpdatePage(status)) {
203
+ this.clearScheduledClose();
196
204
  return;
197
205
  }
198
- if (this.activatedRoute.snapshot.data['url'] === undefined) {
206
+ const targetUrl = this.activatedRoute.snapshot.data['url'];
207
+ if (targetUrl === undefined) {
199
208
  console.error('configure data property \'url\' in route for update page');
209
+ return;
210
+ }
211
+ const closeDelayMs = this.getCloseDelayMs(status);
212
+ if (closeDelayMs === 0) {
213
+ this.clearScheduledClose();
214
+ this.navigateAway(targetUrl);
215
+ return;
216
+ }
217
+ if (this.closeTimerId !== null) {
218
+ return;
200
219
  }
201
- this.navController.navigateRoot(this.activatedRoute.snapshot.data['url']);
220
+ this.closeTimerId = setTimeout(() => {
221
+ this.closeTimerId = null;
222
+ this.navigateAway(targetUrl);
223
+ }, closeDelayMs);
202
224
  });
203
225
  }
226
+ shouldCloseUpdatePage(status) {
227
+ return status === SpxUpdateCheckStatusEnum.upToDate ||
228
+ status === SpxUpdateCheckStatusEnum.failed ||
229
+ status === SpxUpdateCheckStatusEnum.notAvailableOnWeb ||
230
+ status === SpxUpdateCheckStatusEnum.updateReady;
231
+ }
232
+ getCloseDelayMs(status) {
233
+ if (status === SpxUpdateCheckStatusEnum.upToDate || status === SpxUpdateCheckStatusEnum.updateReady) {
234
+ return SpxUpdatePageComponent.SUCCESS_CLOSE_DELAY_MS;
235
+ }
236
+ return 0;
237
+ }
238
+ clearScheduledClose() {
239
+ if (this.closeTimerId === null) {
240
+ return;
241
+ }
242
+ clearTimeout(this.closeTimerId);
243
+ this.closeTimerId = null;
244
+ }
245
+ navigateAway(targetUrl) {
246
+ if (this.hasNavigatedAway()) {
247
+ return;
248
+ }
249
+ this.hasNavigatedAway.set(true);
250
+ this.navController.navigateRoot(targetUrl);
251
+ }
204
252
  async loadVersionInfo() {
205
253
  const appInfo = await App.getInfo();
206
254
  const appVersion = appInfo.version || '-';
@@ -233,7 +281,7 @@ class SpxUpdatePageComponent {
233
281
  this.liveBundle.set(storedLiveBundle || '-');
234
282
  }
235
283
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxUpdatePageComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }, { token: i3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
236
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxUpdatePageComponent, isStandalone: true, selector: "spx-update-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <p>{{ spxTextOneMomentPlease | translate | capitalize }}...</p>\n <p class=\"mt-2\">\n <strong>{{ spxTextUpdateStatus | translate | capitalize }}:</strong>\n {{ statusText() | translate | capitalize }}\n </p>\n @if (lastErrorReason()) {\n <p class=\"mt-2 text-red-700\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n @if (lastCheck()) {\n <p class=\"mt-1 text-sm text-zinc-600\">\n <strong>{{ spxTextUpdateLastCheck | translate | capitalize }}:</strong>\n {{ lastCheck() }}\n </p>\n }\n\n <div class=\"mt-6 text-sm text-zinc-600\">\n <p><strong>{{ spxTextUpdateVersionInfo | translate | capitalize }}</strong></p>\n <p>{{ spxTextUpdateAppVersion | translate | capitalize }}: {{ appVersion() }}</p>\n <p>{{ spxTextUpdateBuildVersion | translate | capitalize }}: {{ buildVersion() }}</p>\n <p>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}: {{ binaryVersionGroup() }}</p>\n <p>{{ spxTextUpdateLiveChannel | translate | capitalize }}: {{ liveUpdateChannel() }}</p>\n <p>{{ spxTextUpdateLiveBundle | translate | capitalize }}: {{ liveBundle() }}</p>\n </div>\n</ion-content>\n", dependencies: [{ kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
284
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxUpdatePageComponent, isStandalone: true, selector: "spx-update-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding update-page\">\n <div class=\"update-shell\">\n <section class=\"status-card\" [attr.data-status]=\"status()\">\n <p class=\"status-label\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n\n @if (lastCheck()) {\n <p class=\"status-meta\">\n <strong>{{ spxTextUpdateLastCheck | translate | capitalize }}:</strong>\n {{ lastCheck() }}\n </p>\n }\n </section>\n\n <section class=\"details-card\">\n <h2>{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid\">\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd>{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd>{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd>{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd>{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd>{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n", styles: [":host{--spx-update-bg: linear-gradient(180deg, #f5f7fb 0%, #eef2f8 100%);--spx-update-surface: #ffffff;--spx-update-border: #d9e1ef;--spx-update-text: #122035;--spx-update-muted: #4e5f78;--spx-update-success-bg: #e7f7ee;--spx-update-success-border: #99ddba;--spx-update-success-text: #0f5a34;--spx-update-progress-bg: #edf4ff;--spx-update-progress-border: #b6ccf2;--spx-update-progress-text: #1e4e8b;--spx-update-error-bg: #ffefef;--spx-update-error-border: #ffc3c3;--spx-update-error-text: #872424;display:block}ion-content.update-page{--background: var(--spx-update-bg)}.update-shell{max-width:40rem;margin:0 auto;display:grid;gap:1rem;padding-block:.5rem 1rem}.status-card,.details-card{border:1px solid var(--spx-update-border);border-radius:.95rem;background:var(--spx-update-surface);box-shadow:0 8px 24px #1c385f14;padding:1rem}.status-card{background:var(--spx-update-progress-bg);border-color:var(--spx-update-progress-border)}.status-card[data-status=upToDate],.status-card[data-status=updateReady]{background:var(--spx-update-success-bg);border-color:var(--spx-update-success-border)}.status-card[data-status=failed],.status-card[data-status=notAvailableOnWeb]{background:var(--spx-update-error-bg);border-color:var(--spx-update-error-border)}.status-label{margin:0;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--spx-update-muted);font-weight:700}.status-value{margin:.35rem 0 0;font-size:1.15rem;font-weight:700;color:var(--spx-update-progress-text)}.status-card[data-status=upToDate] .status-value,.status-card[data-status=updateReady] .status-value{color:var(--spx-update-success-text)}.status-card[data-status=failed] .status-value,.status-card[data-status=notAvailableOnWeb] .status-value{color:var(--spx-update-error-text)}.status-error{margin:.85rem 0 0;color:var(--spx-update-error-text);line-height:1.35}.status-meta{margin:.75rem 0 0;font-size:.86rem;color:var(--spx-update-muted);line-height:1.35}.details-card h2{margin:0;font-size:.95rem;font-weight:700;color:var(--spx-update-text)}.details-grid{margin:.9rem 0 0;display:grid;gap:.65rem}.detail-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border-bottom:1px dashed #d8e0ed;padding-bottom:.45rem}.detail-row:last-child{border-bottom:none;padding-bottom:0}.detail-row dt{margin:0;font-size:.86rem;color:var(--spx-update-muted)}.detail-row dd{margin:0;text-align:right;color:var(--spx-update-text);font-size:.86rem;font-weight:600;word-break:break-word}@media(max-width:480px){.detail-row{flex-direction:column;align-items:flex-start;gap:.2rem}.detail-row dd{text-align:left}}\n"], dependencies: [{ kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
237
285
  }
238
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxUpdatePageComponent, decorators: [{
239
287
  type: Component,
@@ -244,7 +292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
244
292
  IonTitle,
245
293
  SpxCapitalizePipe,
246
294
  TranslatePipe,
247
- ], standalone: true, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <p>{{ spxTextOneMomentPlease | translate | capitalize }}...</p>\n <p class=\"mt-2\">\n <strong>{{ spxTextUpdateStatus | translate | capitalize }}:</strong>\n {{ statusText() | translate | capitalize }}\n </p>\n @if (lastErrorReason()) {\n <p class=\"mt-2 text-red-700\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n @if (lastCheck()) {\n <p class=\"mt-1 text-sm text-zinc-600\">\n <strong>{{ spxTextUpdateLastCheck | translate | capitalize }}:</strong>\n {{ lastCheck() }}\n </p>\n }\n\n <div class=\"mt-6 text-sm text-zinc-600\">\n <p><strong>{{ spxTextUpdateVersionInfo | translate | capitalize }}</strong></p>\n <p>{{ spxTextUpdateAppVersion | translate | capitalize }}: {{ appVersion() }}</p>\n <p>{{ spxTextUpdateBuildVersion | translate | capitalize }}: {{ buildVersion() }}</p>\n <p>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}: {{ binaryVersionGroup() }}</p>\n <p>{{ spxTextUpdateLiveChannel | translate | capitalize }}: {{ liveUpdateChannel() }}</p>\n <p>{{ spxTextUpdateLiveBundle | translate | capitalize }}: {{ liveBundle() }}</p>\n </div>\n</ion-content>\n" }]
295
+ ], standalone: true, template: "<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ spxTextCheckingForUpdates | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding update-page\">\n <div class=\"update-shell\">\n <section class=\"status-card\" [attr.data-status]=\"status()\">\n <p class=\"status-label\">{{ spxTextUpdateStatus | translate | capitalize }}</p>\n <p class=\"status-value\">{{ statusText() | translate | capitalize }}</p>\n\n @if (lastErrorReason()) {\n <p class=\"status-error\">\n <strong>{{ spxTextUpdateErrorReason | translate | capitalize }}:</strong>\n {{ lastErrorReason() }}\n </p>\n }\n\n @if (lastCheck()) {\n <p class=\"status-meta\">\n <strong>{{ spxTextUpdateLastCheck | translate | capitalize }}:</strong>\n {{ lastCheck() }}\n </p>\n }\n </section>\n\n <section class=\"details-card\">\n <h2>{{ spxTextUpdateVersionInfo | translate | capitalize }}</h2>\n\n <dl class=\"details-grid\">\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateAppVersion | translate | capitalize }}</dt>\n <dd>{{ appVersion() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateBuildVersion | translate | capitalize }}</dt>\n <dd>{{ buildVersion() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateBinaryVersionGroup | translate | capitalize }}</dt>\n <dd>{{ binaryVersionGroup() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateLiveChannel | translate | capitalize }}</dt>\n <dd>{{ liveUpdateChannel() }}</dd>\n </div>\n <div class=\"detail-row\">\n <dt>{{ spxTextUpdateLiveBundle | translate | capitalize }}</dt>\n <dd>{{ liveBundle() }}</dd>\n </div>\n </dl>\n </section>\n </div>\n</ion-content>\n", styles: [":host{--spx-update-bg: linear-gradient(180deg, #f5f7fb 0%, #eef2f8 100%);--spx-update-surface: #ffffff;--spx-update-border: #d9e1ef;--spx-update-text: #122035;--spx-update-muted: #4e5f78;--spx-update-success-bg: #e7f7ee;--spx-update-success-border: #99ddba;--spx-update-success-text: #0f5a34;--spx-update-progress-bg: #edf4ff;--spx-update-progress-border: #b6ccf2;--spx-update-progress-text: #1e4e8b;--spx-update-error-bg: #ffefef;--spx-update-error-border: #ffc3c3;--spx-update-error-text: #872424;display:block}ion-content.update-page{--background: var(--spx-update-bg)}.update-shell{max-width:40rem;margin:0 auto;display:grid;gap:1rem;padding-block:.5rem 1rem}.status-card,.details-card{border:1px solid var(--spx-update-border);border-radius:.95rem;background:var(--spx-update-surface);box-shadow:0 8px 24px #1c385f14;padding:1rem}.status-card{background:var(--spx-update-progress-bg);border-color:var(--spx-update-progress-border)}.status-card[data-status=upToDate],.status-card[data-status=updateReady]{background:var(--spx-update-success-bg);border-color:var(--spx-update-success-border)}.status-card[data-status=failed],.status-card[data-status=notAvailableOnWeb]{background:var(--spx-update-error-bg);border-color:var(--spx-update-error-border)}.status-label{margin:0;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--spx-update-muted);font-weight:700}.status-value{margin:.35rem 0 0;font-size:1.15rem;font-weight:700;color:var(--spx-update-progress-text)}.status-card[data-status=upToDate] .status-value,.status-card[data-status=updateReady] .status-value{color:var(--spx-update-success-text)}.status-card[data-status=failed] .status-value,.status-card[data-status=notAvailableOnWeb] .status-value{color:var(--spx-update-error-text)}.status-error{margin:.85rem 0 0;color:var(--spx-update-error-text);line-height:1.35}.status-meta{margin:.75rem 0 0;font-size:.86rem;color:var(--spx-update-muted);line-height:1.35}.details-card h2{margin:0;font-size:.95rem;font-weight:700;color:var(--spx-update-text)}.details-grid{margin:.9rem 0 0;display:grid;gap:.65rem}.detail-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border-bottom:1px dashed #d8e0ed;padding-bottom:.45rem}.detail-row:last-child{border-bottom:none;padding-bottom:0}.detail-row dt{margin:0;font-size:.86rem;color:var(--spx-update-muted)}.detail-row dd{margin:0;text-align:right;color:var(--spx-update-text);font-size:.86rem;font-weight:600;word-break:break-word}@media(max-width:480px){.detail-row{flex-direction:column;align-items:flex-start;gap:.2rem}.detail-row dd{text-align:left}}\n"] }]
248
296
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }, { type: i3.NavController }] });
249
297
 
250
298
  const SpxUpdatePendingActions = createActionGroup({
@@ -354,7 +402,7 @@ let Effects$1 = class Effects {
354
402
  this.actions$ = inject(Actions);
355
403
  this.translateService = inject(TranslateService);
356
404
  this.afterInitialize$ = createEffect(() => this.actions$.pipe(ofType(spxUpdateCheckActions.initialize), delay(120000), mergeMap(() => [
357
- spxUpdateCheckActions.runCheck({}),
405
+ spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),
358
406
  ])));
359
407
  this.onRun$ = createEffect(() => this.actions$.pipe(ofType(spxUpdateCheckActions.runCheck), exhaustMap((action) => {
360
408
  if (Capacitor.getPlatform() === 'web') {
@@ -363,7 +411,7 @@ let Effects$1 = class Effects {
363
411
  return concat(of(spxUpdateCheckActions.syncStarted()), from(App.getInfo()).pipe(mergeMap((binaryInfo) => {
364
412
  // Migrate from e.g. 1.2.x to 1.3.x
365
413
  const binaryVersionGroup = getBinaryVersionGroup(binaryInfo.version);
366
- let channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType);
414
+ const channelType = SpxStorage.getSetting(SpxStorageKeyEnum.channelType);
367
415
  if (SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup)) {
368
416
  SpxStorage.setSetting(SpxStorageKeyEnum.lastBinaryVersionGroup, SpxStorage.getSetting(SpxStorageKeyEnum.binaryVersionGroup));
369
417
  }
@@ -392,7 +440,7 @@ let Effects$1 = class Effects {
392
440
  }), catchError((err) => {
393
441
  const errorReason = this.getReadableErrorReason(err);
394
442
  if (this.isSyncAlreadyInProgress(errorReason)) {
395
- return timer(1500).pipe(map(() => spxUpdateCheckActions.runCheck({ forceWaitForUpdate: action.forceWaitForUpdate })));
443
+ return timer(1500).pipe(map(() => spxUpdateCheckActions.runCheck({ forceWaitForUpdate: !!action.forceWaitForUpdate })));
396
444
  }
397
445
  captureMessage(`[UPD] Handled: ${errorReason}`);
398
446
  return of(spxUpdateCheckActions.checkFailed({
@@ -405,7 +453,7 @@ let Effects$1 = class Effects {
405
453
  SpxUpdatePendingActions.hasBeenDownloaded(),
406
454
  ])));
407
455
  this.whenCheckHasFailed$ = createEffect(() => this.actions$.pipe(ofType(spxUpdateCheckActions.checkFailed), delay(30000), mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [
408
- spxUpdateCheckActions.runCheck({}),
456
+ spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),
409
457
  ])));
410
458
  this.whenCheckHasFailedShowError$ = createEffect(() => this.actions$.pipe(ofType(spxUpdateCheckActions.checkFailed), map((action) => spxToasterActions.createError({
411
459
  autoClose: SpxToasterAutoCloseSpeedEnum.DEFAULT,
@@ -414,7 +462,7 @@ let Effects$1 = class Effects {
414
462
  : this.translateService.instant(spxTextLiveUpdateCheckFailed),
415
463
  }))));
416
464
  this.whenNoUpdateWasFound$ = createEffect(() => this.actions$.pipe(ofType(spxUpdateCheckActions.noUpdateWasFound), delay(120000), mergeMap((action) => !action.startUpdateAgainAfterTimeout ? [] : [
417
- spxUpdateCheckActions.runCheck({}),
465
+ spxUpdateCheckActions.runCheck({ forceWaitForUpdate: false }),
418
466
  ])));
419
467
  }
420
468
  getReadableErrorReason(err) {