@softpak/components 0.0.0-beta.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.
- package/README.md +24 -0
- package/esm2022/placeholder.mjs +2 -0
- package/esm2022/public_api.mjs +2 -0
- package/esm2022/softpak-components.mjs +5 -0
- package/esm2022/spx-alert/public-api.mjs +3 -0
- package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
- package/esm2022/spx-alert/spx-alert.component.mjs +191 -0
- package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
- package/esm2022/spx-app-configuration/public-api.mjs +8 -0
- package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
- package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
- package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
- package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
- package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
- package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
- package/esm2022/spx-button/public-api.mjs +2 -0
- package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
- package/esm2022/spx-button/spx-button.component.mjs +129 -0
- package/esm2022/spx-capitalize/public-api.mjs +2 -0
- package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
- package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
- package/esm2022/spx-channel-selection/public-api.mjs +5 -0
- package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
- package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
- package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +40 -0
- package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +48 -0
- package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +43 -0
- package/esm2022/spx-check-digit/public-api.mjs +2 -0
- package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
- package/esm2022/spx-check-digit/spx-check-digit.component.mjs +85 -0
- package/esm2022/spx-form-section/public-api.mjs +2 -0
- package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
- package/esm2022/spx-form-section/spx-form-section.component.mjs +37 -0
- package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
- package/esm2022/spx-helpers/public-api.mjs +4 -0
- package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
- package/esm2022/spx-helpers/spx-severity.enum.mjs +8 -0
- package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
- package/esm2022/spx-inputs/public-api.mjs +5 -0
- package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
- package/esm2022/spx-inputs/spx-input-box.component.mjs +231 -0
- package/esm2022/spx-inputs/spx-input-date.component.mjs +294 -0
- package/esm2022/spx-inputs/spx-input-float.component.mjs +154 -0
- package/esm2022/spx-inputs/spx-input-number.component.mjs +82 -0
- package/esm2022/spx-inputs/spx-input-radio.component.mjs +63 -0
- package/esm2022/spx-inputs/spx-input-text.component.mjs +156 -0
- package/esm2022/spx-inputs/spx-input.component.mjs +380 -0
- package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
- package/esm2022/spx-navigation/public-api.mjs +5 -0
- package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
- package/esm2022/spx-navigation/spx-home-tile.component.mjs +33 -0
- package/esm2022/spx-navigation/spx-home-tiles.component.mjs +17 -0
- package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
- package/esm2022/spx-navigation/spx-navigation.component.mjs +42 -0
- package/esm2022/spx-patch/patch-check.function.mjs +9 -0
- package/esm2022/spx-patch/public-api.mjs +4 -0
- package/esm2022/spx-patch/release-check.function.mjs +11 -0
- package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
- package/esm2022/spx-patch/spx-patch.component.mjs +46 -0
- package/esm2022/spx-progress-bar/public-api.mjs +2 -0
- package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
- package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
- package/esm2022/spx-spinner/public-api.mjs +2 -0
- package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
- package/esm2022/spx-spinner/spx-spinner.component.mjs +157 -0
- package/esm2022/spx-storage/public-api.mjs +3 -0
- package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
- package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
- package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
- package/esm2022/spx-suggestion/public-api.mjs +2 -0
- package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
- package/esm2022/spx-suggestion/spx-suggestion.component.mjs +47 -0
- package/esm2022/spx-toaster/public-api.mjs +4 -0
- package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
- package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
- package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
- package/esm2022/spx-toaster/src/spx-toaster.component.mjs +46 -0
- package/esm2022/spx-update/public-api.mjs +3 -0
- package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
- package/esm2022/spx-update/src/spx-update-info.component.mjs +88 -0
- package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
- package/esm2022/spx-validation/max.validator.mjs +17 -0
- package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
- package/esm2022/spx-validation/min.validator.mjs +17 -0
- package/esm2022/spx-validation/minlength.validator.mjs +20 -0
- package/esm2022/spx-validation/pattern.validator.mjs +12 -0
- package/esm2022/spx-validation/public-api.mjs +10 -0
- package/esm2022/spx-validation/required.validator.mjs +12 -0
- package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
- package/esm2022/spx-validation/spx-validate-control.component.mjs +63 -0
- package/esm2022/spx-validation/spx-validation.module.mjs +28 -0
- package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
- package/fesm2022/softpak-components-spx-alert.mjs +201 -0
- package/fesm2022/softpak-components-spx-alert.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-app-configuration.mjs +28 -0
- package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-button.mjs +136 -0
- package/fesm2022/softpak-components-spx-button.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-capitalize.mjs +27 -0
- package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-channel-selection.mjs +171 -0
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-check-digit.mjs +92 -0
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-form-section.mjs +44 -0
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-helpers.mjs +42 -0
- package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-inputs.mjs +1340 -0
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-navigation.mjs +93 -0
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-patch.mjs +72 -0
- package/fesm2022/softpak-components-spx-patch.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-progress-bar.mjs +36 -0
- package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-spinner.mjs +164 -0
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-storage.mjs +63 -0
- package/fesm2022/softpak-components-spx-storage.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-suggestion.mjs +54 -0
- package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-toaster.mjs +79 -0
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-update.mjs +138 -0
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-validation.mjs +223 -0
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -0
- package/fesm2022/softpak-components.mjs +8 -0
- package/fesm2022/softpak-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +135 -0
- package/placeholder.d.ts +1 -0
- package/public_api.d.ts +1 -0
- package/spx-alert/index.d.ts +5 -0
- package/spx-alert/public-api.d.ts +2 -0
- package/spx-alert/spx-alert.component.d.ts +28 -0
- package/spx-alert/spx-alert.interface.d.ts +7 -0
- package/spx-app-configuration/index.d.ts +5 -0
- package/spx-app-configuration/public-api.d.ts +7 -0
- package/spx-app-configuration/spx-app-alert.interface.d.ts +7 -0
- package/spx-app-configuration/spx-app-bundle-set.interface.d.ts +4 -0
- package/spx-app-configuration/spx-app-channel-type.enum.d.ts +6 -0
- package/spx-app-configuration/spx-app-channel.interface.d.ts +10 -0
- package/spx-app-configuration/spx-app-config.interface.d.ts +19 -0
- package/spx-app-configuration/spx-app-id.enum.d.ts +6 -0
- package/spx-app-configuration/spx-app-lang.enum.d.ts +4 -0
- package/spx-app-configuration/spx-app-release-note.interface.d.ts +8 -0
- package/spx-button/index.d.ts +5 -0
- package/spx-button/public-api.d.ts +1 -0
- package/spx-button/spx-button.component.d.ts +23 -0
- package/spx-capitalize/index.d.ts +5 -0
- package/spx-capitalize/public-api.d.ts +1 -0
- package/spx-capitalize/spx-capitalize.pipe.d.ts +8 -0
- package/spx-channel-selection/index.d.ts +5 -0
- package/spx-channel-selection/public-api.d.ts +4 -0
- package/spx-channel-selection/src/spx-channel-indicator.component.d.ts +13 -0
- package/spx-channel-selection/src/spx-channel-selection.component.d.ts +11 -0
- package/spx-channel-selection/src/spx-company-selection.component.d.ts +12 -0
- package/spx-channel-selection/src/spx-welcome.component.d.ts +12 -0
- package/spx-check-digit/index.d.ts +5 -0
- package/spx-check-digit/public-api.d.ts +1 -0
- package/spx-check-digit/spx-check-digit.component.d.ts +19 -0
- package/spx-form-section/index.d.ts +5 -0
- package/spx-form-section/public-api.d.ts +1 -0
- package/spx-form-section/spx-form-section.component.d.ts +9 -0
- package/spx-helpers/calc-check-digit.function.d.ts +1 -0
- package/spx-helpers/index.d.ts +5 -0
- package/spx-helpers/public-api.d.ts +3 -0
- package/spx-helpers/spx-severity.enum.d.ts +6 -0
- package/spx-helpers/value-pair-to-value.function.d.ts +1 -0
- package/spx-inputs/index.d.ts +5 -0
- package/spx-inputs/public-api.d.ts +4 -0
- package/spx-inputs/spx-input-box.component.d.ts +33 -0
- package/spx-inputs/spx-input-date.component.d.ts +50 -0
- package/spx-inputs/spx-input-float.component.d.ts +28 -0
- package/spx-inputs/spx-input-number.component.d.ts +22 -0
- package/spx-inputs/spx-input-radio.component.d.ts +18 -0
- package/spx-inputs/spx-input-text.component.d.ts +29 -0
- package/spx-inputs/spx-input.component.d.ts +58 -0
- package/spx-inputs/spx-value-interface.d.ts +4 -0
- package/spx-navigation/index.d.ts +5 -0
- package/spx-navigation/public-api.d.ts +4 -0
- package/spx-navigation/spx-home-tile.component.d.ts +6 -0
- package/spx-navigation/spx-home-tiles.component.d.ts +5 -0
- package/spx-navigation/spx-navigation-item.interface.d.ts +19 -0
- package/spx-navigation/spx-navigation.component.d.ts +12 -0
- package/spx-patch/index.d.ts +5 -0
- package/spx-patch/patch-check.function.d.ts +4 -0
- package/spx-patch/public-api.d.ts +3 -0
- package/spx-patch/release-check.function.d.ts +1 -0
- package/spx-patch/spx-patch.component.d.ts +10 -0
- package/spx-progress-bar/index.d.ts +5 -0
- package/spx-progress-bar/public-api.d.ts +1 -0
- package/spx-progress-bar/spx-progress-bar.component.d.ts +7 -0
- package/spx-spinner/index.d.ts +5 -0
- package/spx-spinner/public-api.d.ts +1 -0
- package/spx-spinner/spx-spinner.component.d.ts +7 -0
- package/spx-storage/index.d.ts +5 -0
- package/spx-storage/public-api.d.ts +2 -0
- package/spx-storage/src/spx-storage-key.enum.d.ts +10 -0
- package/spx-storage/src/spx-storage.class.d.ts +9 -0
- package/spx-suggestion/index.d.ts +5 -0
- package/spx-suggestion/public-api.d.ts +1 -0
- package/spx-suggestion/spx-suggestion.component.d.ts +7 -0
- package/spx-toaster/index.d.ts +5 -0
- package/spx-toaster/public-api.d.ts +3 -0
- package/spx-toaster/src/spx-toaster-autoclose-speed.d.ts +11 -0
- package/spx-toaster/src/spx-toaster-message.interface.d.ts +9 -0
- package/spx-toaster/src/spx-toaster.component.d.ts +11 -0
- package/spx-update/index.d.ts +5 -0
- package/spx-update/public-api.d.ts +2 -0
- package/spx-update/src/spx-update-info.component.d.ts +18 -0
- package/spx-update/src/spx-update-progress.component.d.ts +14 -0
- package/spx-validation/index.d.ts +5 -0
- package/spx-validation/max.validator.d.ts +7 -0
- package/spx-validation/maxlength.validator.d.ts +7 -0
- package/spx-validation/min.validator.d.ts +7 -0
- package/spx-validation/minlength.validator.d.ts +7 -0
- package/spx-validation/pattern.validator.d.ts +2 -0
- package/spx-validation/public-api.d.ts +9 -0
- package/spx-validation/required.validator.d.ts +2 -0
- package/spx-validation/spx-validate-control.component.d.ts +24 -0
- package/spx-validation/spx-validation.module.d.ts +9 -0
- package/spx-validation/year-and-month.validator.d.ts +2 -0
- package/tailwind.css +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-channel-selection.mjs","sources":["../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-indicator.component.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-channel-selection.component.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-company-selection.component.ts","../../../../projects/softpak/components/spx-channel-selection/src/spx-welcome.component.ts","../../../../projects/softpak/components/spx-channel-selection/softpak-components-spx-channel-selection.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { SpxAppChannelI, SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\n\n@Component({\n selector: 'spx-channel-indicator',\n template: `<div class=\"bg-white p-3 rounded flex gap-3 items-center text-black\">\n <div class=\"grow\">\n <div class=\"text-lg font-bold\">{{ channel?.brand }}</div>\n <div class=\"text-base text-gray-600\">{{ channelType }}</div>\n </div>\n <spx-button (click)=\"onChange()\" [spxType]=\"'button'\">{{ txtChange }}</spx-button>\n </div>`,\n standalone: true,\n imports: [\n SpxButtonComponent,\n ],\n})\nexport class SpxChannelIndicatorComponent {\n @Input() channel?: SpxAppChannelI;\n @Input() channelType?: SpxAppChannelTypeEnum;\n @Input() txtChange!: string;\n @Output() spxChange: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(\n ) { }\n\n onChange() {\n this.spxChange.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxInputComponent, SpxValuePair } from '@softpak/components/spx-inputs';\n\n@Component({\n selector: 'spx-channel-selection',\n template: `\n <spx-input [formControl]=\"control\" [spxLabel]=\"txtChannel\"\n [spxType]=\"'radio'\" [spxSuggestions]=\"options\"></spx-input>\n `,\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SpxInputComponent,\n ]\n})\nexport class SpxChannelSelectionComponent {\n @Input() control!: FormControl;\n @Input() options: SpxValuePair<string>[] = [];\n @Input() txtChannel!: string;\n\n constructor(\n ) { }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxFormSectionComponent } from '@softpak/components/spx-form-section';\nimport { SpxInputComponent, SpxValuePair } from '@softpak/components/spx-inputs';\n\n\n@Component({\n selector: 'spx-company-selection',\n template: `<spx-form-section [spxTitle]=\"txtChannel\" [spxIndex]=\"2\">\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n <spx-input [formControl]=\"control\" [spxLabel]=\"txtCompany\"\n [spxType]=\"'radio'\" [spxSuggestions]=\"options\"></spx-input>\n </div>\n</spx-form-section>`,\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SpxInputComponent,\n SpxFormSectionComponent,\n ]\n})\nexport class SpxCompanySelectionComponent {\n @Input() control!: FormControl;\n @Input() options: SpxValuePair<string>[] = [];\n @Input() txtChannel!: string;\n @Input() txtCompany!: string;\n\n constructor(\n ) { }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { SpxAppChannelI, SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\n\n@Component({\n selector: 'spx-welcome',\n template: `<div class=\"flex flex-col gap-3\">\n <spx-button [spxFullWidth]=\"true\" *ngFor=\"let channel of filteredChannels\" (click)=\"onSelectChannel(channel)\">\n {{ channel.brand }}\n </spx-button>\n </div>`,\n standalone: true,\n imports: [\n CommonModule,\n SpxButtonComponent,\n ]\n})\nexport class SpxWelcomeComponent {\n @Input() public channels?: SpxAppChannelI[] = [];\n @Output() public spxSelected: EventEmitter<SpxAppChannelI> = new EventEmitter<SpxAppChannelI>();\n\n get filteredChannels () { return (this.channels ?? [])?.filter(channel => channel.channelTypes.includes(SpxAppChannelTypeEnum.production)); }\n\n constructor(\n ) { }\n\n onSelectChannel(channel: SpxAppChannelI) {\n this.spxSelected.emit(channel);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;MAkBa,4BAA4B,CAAA;AAMvC,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;KAG9D;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;8GAXU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAZ7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAMH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGL,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGT,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAdxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMH,QAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;wDAEU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCHI,4BAA4B,CAAA;AAKvC,IAAA,WAAA,GAAA;QAHS,IAAO,CAAA,OAAA,GAA2B,EAAE,CAAC;KAIzC;8GANM,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAZ7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGC,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,kNACnB,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGR,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAdxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;AAGT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;wDAEU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MCEK,4BAA4B,CAAA;AAMvC,IAAA,WAAA,GAAA;QAJS,IAAO,CAAA,OAAA,GAA2B,EAAE,CAAC;KAKzC;8GAPM,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAf7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;oBAKQ,EAGhB,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,kgBACjB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGd,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAjBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;AAKQ,mBAAA,CAAA;AAClB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,iBAAiB;wBACjB,uBAAuB;AACxB,qBAAA;AACF,iBAAA,CAAA;wDAEU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MCVK,mBAAmB,CAAA;AAI9B,IAAA,IAAI,gBAAgB,GAAA,EAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAE7I,IAAA,WAAA,GAAA;QALgB,IAAQ,CAAA,QAAA,GAAsB,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAiC,IAAI,YAAY,EAAkB,CAAC;KAK3F;AAEL,IAAA,eAAe,CAAC,OAAuB,EAAA;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;8GAXU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAXpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;SAIH,EAGL,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8JACZ,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGT,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIH,QAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;wDAEiB,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACW,WAAW,EAAA,CAAA;sBAA3B,MAAM;;;ACpBT;;AAEG;;;;"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/forms';
|
|
4
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { combineLatest, startWith, map } from 'rxjs';
|
|
6
|
+
import * as i3 from '@softpak/components/spx-validation';
|
|
7
|
+
import { spxValidatorRequired, spxValidatorMaxLength, spxValidatorMinLength, spxValidatorPattern, SpxValidationModule } from '@softpak/components/spx-validation';
|
|
8
|
+
import { valuePairToValue, calcCheckDigit } from '@softpak/components/spx-helpers';
|
|
9
|
+
import * as i2 from '@angular/common';
|
|
10
|
+
import { CommonModule } from '@angular/common';
|
|
11
|
+
import { SpxInputComponent } from '@softpak/components/spx-inputs';
|
|
12
|
+
|
|
13
|
+
const ctrlCheckDigit = 'checkDigit';
|
|
14
|
+
const ctrlContainerNumber = 'containerNumber';
|
|
15
|
+
const ctrlPrefix = 'prefix';
|
|
16
|
+
class SpxCheckDigitComponent {
|
|
17
|
+
get ctrlCheckDigit() { return this.formGroup.get(ctrlCheckDigit); }
|
|
18
|
+
get ctrlContainerNumber() { return this.formGroup.get(ctrlContainerNumber); }
|
|
19
|
+
get ctrlContainerPrefix() { return this.formGroup.get(ctrlPrefix); }
|
|
20
|
+
constructor(formBuilder) {
|
|
21
|
+
this.formBuilder = formBuilder;
|
|
22
|
+
this.formGroup = this.formBuilder.group({
|
|
23
|
+
[ctrlCheckDigit]: [null, []],
|
|
24
|
+
[ctrlContainerNumber]: [null, [
|
|
25
|
+
spxValidatorRequired(),
|
|
26
|
+
spxValidatorMaxLength(6),
|
|
27
|
+
spxValidatorMinLength(6),
|
|
28
|
+
spxValidatorPattern(/[0-9]{6}/),
|
|
29
|
+
]],
|
|
30
|
+
[ctrlPrefix]: [null, [
|
|
31
|
+
spxValidatorRequired(),
|
|
32
|
+
spxValidatorMaxLength(4),
|
|
33
|
+
spxValidatorMinLength(4),
|
|
34
|
+
spxValidatorPattern(/[a-zA-Z]{4}/),
|
|
35
|
+
]],
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.inputChanges = combineLatest([
|
|
40
|
+
this.ctrlContainerNumber.valueChanges.pipe(startWith(this.ctrlContainerNumber.value)),
|
|
41
|
+
this.ctrlContainerPrefix.valueChanges.pipe(startWith(this.ctrlContainerPrefix.value)),
|
|
42
|
+
])
|
|
43
|
+
.pipe(map(([containerNumber$, prefix$]) => ({
|
|
44
|
+
containerNumber: containerNumber$,
|
|
45
|
+
prefix: prefix$
|
|
46
|
+
})))
|
|
47
|
+
.subscribe((v) => {
|
|
48
|
+
if (this.ctrlContainerNumber.invalid || this.ctrlContainerPrefix.invalid) {
|
|
49
|
+
this.ctrlCheckDigit.setValue(null, { emitEvent: false });
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const prefix = valuePairToValue(this.ctrlContainerPrefix.value);
|
|
53
|
+
const containerNumber = valuePairToValue(this.ctrlContainerNumber.value);
|
|
54
|
+
const checkDigit = calcCheckDigit(`${prefix}${containerNumber}`);
|
|
55
|
+
this.ctrlCheckDigit.setValue({ value: checkDigit }, { emitEvent: false });
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
ngOnDestroy() {
|
|
60
|
+
if (this.inputChanges) {
|
|
61
|
+
this.inputChanges.unsubscribe();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
getRawValidators(formControl) {
|
|
65
|
+
return formControl._rawValidators;
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxCheckDigitComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxCheckDigitComponent, isStandalone: true, selector: "spx-check-digit", inputs: { txtCheckDigit: "txtCheckDigit", txtContainer: "txtContainer", txtPrefix: "txtPrefix" }, ngImport: i0, template: "<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-2\">\n <spx-input\n [formControl]=\"ctrlContainerNumber\"\n [spxAutofocus]=\"true\"\n [spxCapitalize]=\"true\"\n [spxLabel]=\"txtContainer\"\n [spxPattern]=\"'[0-9]*'\"\n [spxRequired]=\"true\"\n [spxShowValidationMessages]=\"ctrlContainerNumber && ctrlContainerNumber.errors && ctrlContainerNumber.touched\"\n [spxType]=\"'overlaynumber'\"\n [spxValidators]=\"getRawValidators(ctrlContainerNumber)\">\n <spx-validate-control [control]=\"ctrlContainerNumber\" [label]=\"txtContainer\"></spx-validate-control>\n </spx-input>\n <spx-input\n [formControl]=\"ctrlContainerPrefix\"\n [spxCapitalize]=\"true\"\n [spxLabel]=\"txtPrefix\"\n [spxRequired]=\"true\"\n [spxShowValidationMessages]=\"ctrlContainerPrefix && ctrlContainerPrefix.errors && ctrlContainerPrefix.touched\"\n [spxType]=\"'text'\"\n [spxValidators]=\"getRawValidators(ctrlContainerPrefix)\">\n <spx-validate-control [control]=\"ctrlContainerPrefix\" [label]=\"txtPrefix\"></spx-validate-control>\n </spx-input>\n <spx-input\n *ngIf=\"ctrlCheckDigit.value\"\n [formControl]=\"ctrlCheckDigit\"\n [spxLabel]=\"txtCheckDigit\"\n [spxReadonly]=\"true\"\n [spxType]=\"'text'\">\n </spx-input>\n</form>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: SpxValidationModule }, { kind: "component", type: i3.SpxValidateControlComponent, selector: "spx-validate-control", inputs: ["control", "label", "submitTried"] }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxCheckDigitComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'spx-check-digit', standalone: true, imports: [
|
|
73
|
+
CommonModule,
|
|
74
|
+
FormsModule,
|
|
75
|
+
ReactiveFormsModule,
|
|
76
|
+
SpxValidationModule,
|
|
77
|
+
SpxInputComponent,
|
|
78
|
+
], template: "<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-2\">\n <spx-input\n [formControl]=\"ctrlContainerNumber\"\n [spxAutofocus]=\"true\"\n [spxCapitalize]=\"true\"\n [spxLabel]=\"txtContainer\"\n [spxPattern]=\"'[0-9]*'\"\n [spxRequired]=\"true\"\n [spxShowValidationMessages]=\"ctrlContainerNumber && ctrlContainerNumber.errors && ctrlContainerNumber.touched\"\n [spxType]=\"'overlaynumber'\"\n [spxValidators]=\"getRawValidators(ctrlContainerNumber)\">\n <spx-validate-control [control]=\"ctrlContainerNumber\" [label]=\"txtContainer\"></spx-validate-control>\n </spx-input>\n <spx-input\n [formControl]=\"ctrlContainerPrefix\"\n [spxCapitalize]=\"true\"\n [spxLabel]=\"txtPrefix\"\n [spxRequired]=\"true\"\n [spxShowValidationMessages]=\"ctrlContainerPrefix && ctrlContainerPrefix.errors && ctrlContainerPrefix.touched\"\n [spxType]=\"'text'\"\n [spxValidators]=\"getRawValidators(ctrlContainerPrefix)\">\n <spx-validate-control [control]=\"ctrlContainerPrefix\" [label]=\"txtPrefix\"></spx-validate-control>\n </spx-input>\n <spx-input\n *ngIf=\"ctrlCheckDigit.value\"\n [formControl]=\"ctrlCheckDigit\"\n [spxLabel]=\"txtCheckDigit\"\n [spxReadonly]=\"true\"\n [spxType]=\"'text'\">\n </spx-input>\n</form>" }]
|
|
79
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { txtCheckDigit: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], txtContainer: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], txtPrefix: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}] } });
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Generated bundle index. Do not edit.
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
export { SpxCheckDigitComponent };
|
|
92
|
+
//# sourceMappingURL=softpak-components-spx-check-digit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-check-digit.mjs","sources":["../../../../projects/softpak/components/spx-check-digit/spx-check-digit.component.ts","../../../../projects/softpak/components/spx-check-digit/spx-check-digit.component.html","../../../../projects/softpak/components/spx-check-digit/softpak-components-spx-check-digit.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription, combineLatest, map, startWith } from 'rxjs';\nimport { spxValidatorRequired, spxValidatorMaxLength, spxValidatorMinLength, spxValidatorPattern, SpxValidationModule } from '@softpak/components/spx-validation';\nimport { calcCheckDigit, valuePairToValue } from '@softpak/components/spx-helpers';\nimport { CommonModule } from '@angular/common';\nimport { SpxInputComponent } from '@softpak/components/spx-inputs';\n\nconst ctrlCheckDigit = 'checkDigit';\nconst ctrlContainerNumber = 'containerNumber';\nconst ctrlPrefix = 'prefix';\n\n@Component({\n selector: 'spx-check-digit',\n templateUrl: './spx-check-digit.component.html',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SpxValidationModule,\n SpxInputComponent,\n ]\n})\nexport class SpxCheckDigitComponent {\n @Input() txtCheckDigit!: string;\n @Input() txtContainer!: string;\n @Input() txtPrefix!: string;\n formGroup: FormGroup;\n\n get ctrlCheckDigit(): FormControl { return this.formGroup.get(ctrlCheckDigit) as FormControl; }\n get ctrlContainerNumber(): FormControl { return this.formGroup.get(ctrlContainerNumber) as FormControl; }\n get ctrlContainerPrefix(): FormControl { return this.formGroup.get(ctrlPrefix) as FormControl; }\n\n private inputChanges?: Subscription;\n\n constructor(\n private readonly formBuilder: FormBuilder,\n ) {\n this.formGroup = this.formBuilder.group({\n [ctrlCheckDigit]: [null, []],\n [ctrlContainerNumber]: [null, [\n spxValidatorRequired(),\n spxValidatorMaxLength(6),\n spxValidatorMinLength(6),\n spxValidatorPattern(/[0-9]{6}/),\n ]],\n [ctrlPrefix]: [null, [\n spxValidatorRequired(),\n spxValidatorMaxLength(4),\n spxValidatorMinLength(4),\n spxValidatorPattern(/[a-zA-Z]{4}/),\n ]],\n })\n }\n\n ngOnInit(): void {\n this.inputChanges = combineLatest([\n this.ctrlContainerNumber.valueChanges.pipe(startWith(this.ctrlContainerNumber.value)),\n this.ctrlContainerPrefix.valueChanges.pipe(startWith(this.ctrlContainerPrefix.value)),\n ])\n .pipe(map(([containerNumber$, prefix$]) => ({\n containerNumber: containerNumber$,\n prefix: prefix$\n })))\n .subscribe((v) => {\n if (this.ctrlContainerNumber.invalid || this.ctrlContainerPrefix.invalid) {\n this.ctrlCheckDigit.setValue(null, { emitEvent: false });\n } else {\n const prefix = valuePairToValue(this.ctrlContainerPrefix.value);\n const containerNumber = valuePairToValue(this.ctrlContainerNumber.value);\n const checkDigit = calcCheckDigit(`${prefix}${containerNumber}`);\n this.ctrlCheckDigit.setValue({ value: checkDigit }, { emitEvent: false });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.inputChanges) {\n this.inputChanges.unsubscribe();\n }\n }\n\n getRawValidators(formControl: FormControl) {\n return (formControl as any)._rawValidators;\n }\n}\n","<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-2\">\n <spx-input\n [formControl]=\"ctrlContainerNumber\"\n [spxAutofocus]=\"true\"\n [spxCapitalize]=\"true\"\n [spxLabel]=\"txtContainer\"\n [spxPattern]=\"'[0-9]*'\"\n [spxRequired]=\"true\"\n [spxShowValidationMessages]=\"ctrlContainerNumber && ctrlContainerNumber.errors && ctrlContainerNumber.touched\"\n [spxType]=\"'overlaynumber'\"\n [spxValidators]=\"getRawValidators(ctrlContainerNumber)\">\n <spx-validate-control [control]=\"ctrlContainerNumber\" [label]=\"txtContainer\"></spx-validate-control>\n </spx-input>\n <spx-input\n [formControl]=\"ctrlContainerPrefix\"\n [spxCapitalize]=\"true\"\n [spxLabel]=\"txtPrefix\"\n [spxRequired]=\"true\"\n [spxShowValidationMessages]=\"ctrlContainerPrefix && ctrlContainerPrefix.errors && ctrlContainerPrefix.touched\"\n [spxType]=\"'text'\"\n [spxValidators]=\"getRawValidators(ctrlContainerPrefix)\">\n <spx-validate-control [control]=\"ctrlContainerPrefix\" [label]=\"txtPrefix\"></spx-validate-control>\n </spx-input>\n <spx-input\n *ngIf=\"ctrlCheckDigit.value\"\n [formControl]=\"ctrlCheckDigit\"\n [spxLabel]=\"txtCheckDigit\"\n [spxReadonly]=\"true\"\n [spxType]=\"'text'\">\n </spx-input>\n</form>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { NgIf } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Component, Input } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
class SpxFormSectionComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.spxShowTitle = true;
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxFormSectionComponent, isStandalone: true, selector: "spx-form-section", inputs: { spxIndex: "spxIndex", spxIndexSecondary: "spxIndexSecondary", spxTitle: "spxTitle", spxShowTitle: "spxShowTitle" }, ngImport: i0, template: `<div *ngIf="this.spxShowTitle" class="spx-form-section__title">
|
|
11
|
+
<div class="spx-form-section__title-index">{{this.spxIndex}}<ng-container *ngIf="this.spxIndexSecondary">{{ this.spxIndexSecondary }}</ng-container></div>
|
|
12
|
+
<div class="spx-form-section__title-content">{{this.spxTitle}}</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="spx-form-section__content">
|
|
15
|
+
<ng-content></ng-content>
|
|
16
|
+
</div>`, isInline: true, styles: [":host{display:block;margin-bottom:var(--spx-padding-8, 16px)}.spx-form-section__title{margin-bottom:var(--spx-padding-4, 8px)}.spx-form-section__title-index{background-color:var(--spx-form-section--index--background-color, #000000);color:var(--spx-form-section--index--color, #FFFFFF);display:inline-block;font-size:14px;font-weight:700;height:30px;width:30px;line-height:30px;text-align:center;margin-right:12px;vertical-align:middle}.spx-form-section__title-content{color:var(--spx-form-section--title--color, grey);display:inline-block;font-size:var(--spx-form-section--title--font-size, 16px);font-weight:var(--spx-form-section--title--font-weight, bold);vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxFormSectionComponent, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ selector: 'spx-form-section', standalone: true, imports: [
|
|
21
|
+
NgIf,
|
|
22
|
+
], template: `<div *ngIf="this.spxShowTitle" class="spx-form-section__title">
|
|
23
|
+
<div class="spx-form-section__title-index">{{this.spxIndex}}<ng-container *ngIf="this.spxIndexSecondary">{{ this.spxIndexSecondary }}</ng-container></div>
|
|
24
|
+
<div class="spx-form-section__title-content">{{this.spxTitle}}</div>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="spx-form-section__content">
|
|
27
|
+
<ng-content></ng-content>
|
|
28
|
+
</div>`, styles: [":host{display:block;margin-bottom:var(--spx-padding-8, 16px)}.spx-form-section__title{margin-bottom:var(--spx-padding-4, 8px)}.spx-form-section__title-index{background-color:var(--spx-form-section--index--background-color, #000000);color:var(--spx-form-section--index--color, #FFFFFF);display:inline-block;font-size:14px;font-weight:700;height:30px;width:30px;line-height:30px;text-align:center;margin-right:12px;vertical-align:middle}.spx-form-section__title-content{color:var(--spx-form-section--title--color, grey);display:inline-block;font-size:var(--spx-form-section--title--font-size, 16px);font-weight:var(--spx-form-section--title--font-weight, bold);vertical-align:middle}\n"] }]
|
|
29
|
+
}], propDecorators: { spxIndex: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], spxIndexSecondary: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], spxTitle: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], spxShowTitle: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}] } });
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Generated bundle index. Do not edit.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
export { SpxFormSectionComponent };
|
|
44
|
+
//# sourceMappingURL=softpak-components-spx-form-section.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-form-section.mjs","sources":["../../../../projects/softpak/components/spx-form-section/spx-form-section.component.ts","../../../../projects/softpak/components/spx-form-section/softpak-components-spx-form-section.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'spx-form-section',\n standalone: true,\n imports: [\n NgIf,\n ],\n template: `<div *ngIf=\"this.spxShowTitle\" class=\"spx-form-section__title\">\n <div class=\"spx-form-section__title-index\">{{this.spxIndex}}<ng-container *ngIf=\"this.spxIndexSecondary\">{{ this.spxIndexSecondary }}</ng-container></div>\n <div class=\"spx-form-section__title-content\">{{this.spxTitle}}</div>\n </div>\n <div class=\"spx-form-section__content\">\n <ng-content></ng-content>\n </div>`,\n styles: `\n :host {\n display: block;\n margin-bottom: var(--spx-padding-8, 16px);\n }\n \n .spx-form-section__title {\n margin-bottom: var(--spx-padding-4, 8px);\n }\n \n .spx-form-section__title-index {\n background-color: var(--spx-form-section--index--background-color, #000000);\n color: var(--spx-form-section--index--color, #FFFFFF);\n display: inline-block;\n font-size: 14px;\n font-weight: bold;\n height: 30px;\n width: 30px;\n line-height: 30px;\n text-align: center;\n margin-right: 12px;\n vertical-align: middle;\n }\n \n .spx-form-section__title-content {\n color: var(--spx-form-section--title--color, grey);\n display: inline-block;\n font-size: var(--spx-form-section--title--font-size, 16px);\n font-weight: var(--spx-form-section--title--font-weight, bold);\n vertical-align: middle;\n }\n `,\n})\nexport class SpxFormSectionComponent {\n @Input() spxIndex?: number;\n @Input() spxIndexSecondary?: number;\n @Input() spxTitle?: string;\n @Input() spxShowTitle = true;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAiDa,uBAAuB,CAAA;AA9CpC,IAAA,WAAA,GAAA;QAkDW,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAC9B,KAAA;8GALY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAxCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAMH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EARL,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA0CK,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA9CnC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EACP,OAAA,EAAA;wBACP,IAAI;qBACL,EACS,QAAA,EAAA,CAAA;;;;;;AAMH,QAAA,CAAA,EAAA,MAAA,EAAA,CAAA,6qBAAA,CAAA,EAAA,CAAA;8BAmCE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;ACrDR;;AAEG;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const calcCheckDigit = (container) => {
|
|
2
|
+
container = container.toUpperCase();
|
|
3
|
+
const mapping = {
|
|
4
|
+
0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,
|
|
5
|
+
A: 10, B: 12, C: 13, D: 14, E: 15, F: 16, G: 17, H: 18, I: 19, J: 20, K: 21, L: 23, M: 24,
|
|
6
|
+
N: 25, O: 26, P: 27, Q: 28, R: 29, S: 30, T: 31, U: 32, V: 34, W: 35, X: 36, Y: 37, Z: 38
|
|
7
|
+
};
|
|
8
|
+
let total = 0;
|
|
9
|
+
for (let i = 0; i < container.length; i++) {
|
|
10
|
+
const cChar = container.substr(i, 1);
|
|
11
|
+
const value = mapping[cChar];
|
|
12
|
+
const multiplier = Math.pow(2, i);
|
|
13
|
+
total = total + (value * multiplier);
|
|
14
|
+
}
|
|
15
|
+
let outcome = total % 11;
|
|
16
|
+
if (outcome === 10) {
|
|
17
|
+
outcome = 0;
|
|
18
|
+
}
|
|
19
|
+
return outcome.toString();
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var SpxSeverityEnum;
|
|
23
|
+
(function (SpxSeverityEnum) {
|
|
24
|
+
SpxSeverityEnum["error"] = "error";
|
|
25
|
+
SpxSeverityEnum["info"] = "info";
|
|
26
|
+
SpxSeverityEnum["success"] = "success";
|
|
27
|
+
SpxSeverityEnum["warning"] = "warning";
|
|
28
|
+
})(SpxSeverityEnum || (SpxSeverityEnum = {}));
|
|
29
|
+
|
|
30
|
+
const valuePairToValue = (pair) => {
|
|
31
|
+
if (pair === null || (typeof pair === 'object' && pair.value === undefined)) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return pair?.value || pair?.value === false || pair?.value === null || pair?.value === '' || pair?.value === 0 ? pair?.value : pair;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Generated bundle index. Do not edit.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
export { SpxSeverityEnum, calcCheckDigit, valuePairToValue };
|
|
42
|
+
//# sourceMappingURL=softpak-components-spx-helpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-helpers.mjs","sources":["../../../../projects/softpak/components/spx-helpers/calc-check-digit.function.ts","../../../../projects/softpak/components/spx-helpers/spx-severity.enum.ts","../../../../projects/softpak/components/spx-helpers/value-pair-to-value.function.ts","../../../../projects/softpak/components/spx-helpers/softpak-components-spx-helpers.ts"],"sourcesContent":["export const calcCheckDigit = (container: string): string => {\n container = container.toUpperCase();\n\n const mapping = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 10, B: 12, C: 13, D: 14, E: 15, F: 16, G: 17, H: 18, I: 19, J: 20, K: 21, L: 23, M: 24,\n N: 25, O: 26, P: 27, Q: 28, R: 29, S: 30, T: 31, U: 32, V: 34, W: 35, X: 36, Y: 37, Z: 38\n };\n\n let total = 0;\n\n for (let i = 0; i < container.length; i++) {\n const cChar = container.substr(i, 1);\n const value = (mapping as any)[cChar];\n const multiplier = Math.pow(2, i);\n total = total + (value * multiplier);\n }\n\n let outcome = total % 11;\n if (outcome === 10) {\n outcome = 0;\n }\n\n return outcome.toString();\n}\n","export enum SpxSeverityEnum {\n error = 'error',\n info = 'info',\n success = 'success',\n warning = 'warning',\n}\n","export const valuePairToValue = (pair: any) => {\n if (pair === null || (typeof pair === 'object' && pair.value === undefined)) {\n return null;\n }\n return pair?.value || pair?.value === false || pair?.value === null || pair?.value === '' || pair?.value === 0 ? pair?.value : pair;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|