@softpak/components 0.0.0-beta.1 → 0.0.0-beta.100

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.
Files changed (89) hide show
  1. package/esm2022/spx-alert/spx-alert.component.mjs +9 -4
  2. package/esm2022/spx-button/spx-button.component.mjs +46 -36
  3. package/esm2022/spx-change-details/public-api.mjs +2 -0
  4. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  5. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  6. package/esm2022/spx-change-details/spx-change-details.component.mjs +118 -0
  7. package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +5 -4
  8. package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +5 -4
  9. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +6 -4
  10. package/esm2022/spx-form-section/spx-form-section.component.mjs +7 -7
  11. package/esm2022/spx-form-view/public-api.mjs +4 -0
  12. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
  13. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  14. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  15. package/esm2022/spx-form-view/spx-form-view.component.mjs +163 -0
  16. package/esm2022/spx-inputs/public-api.mjs +2 -1
  17. package/esm2022/spx-inputs/spx-dropdown.component.mjs +98 -0
  18. package/esm2022/spx-inputs/spx-input-box.component.mjs +71 -57
  19. package/esm2022/spx-inputs/spx-input-text.component.mjs +29 -33
  20. package/esm2022/spx-inputs/spx-input-type.enum.mjs +14 -0
  21. package/esm2022/spx-inputs/spx-input.component.mjs +53 -42
  22. package/esm2022/spx-navigation/spx-home-tile.component.mjs +47 -12
  23. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +3 -5
  24. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +1 -1
  25. package/esm2022/spx-navigation/spx-navigation.component.mjs +11 -5
  26. package/esm2022/spx-number-check/public-api.mjs +2 -0
  27. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
  28. package/esm2022/spx-number-check/spx-number-check.component.mjs +262 -0
  29. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +3 -3
  30. package/esm2022/spx-spinner/spx-spinner.component.mjs +5 -5
  31. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +10 -6
  32. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +33 -21
  33. package/fesm2022/softpak-components-spx-alert.mjs +8 -3
  34. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  35. package/fesm2022/softpak-components-spx-button.mjs +45 -35
  36. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-change-details.mjs +125 -0
  38. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -0
  39. package/fesm2022/softpak-components-spx-channel-selection.mjs +7 -5
  40. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  41. package/fesm2022/softpak-components-spx-check-digit.mjs +5 -3
  42. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  43. package/fesm2022/softpak-components-spx-form-section.mjs +6 -6
  44. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  45. package/fesm2022/softpak-components-spx-form-view.mjs +170 -0
  46. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -0
  47. package/fesm2022/softpak-components-spx-inputs.mjs +254 -127
  48. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  49. package/fesm2022/softpak-components-spx-navigation.mjs +57 -19
  50. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  51. package/fesm2022/softpak-components-spx-number-check.mjs +269 -0
  52. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -0
  53. package/fesm2022/softpak-components-spx-progress-bar.mjs +2 -2
  54. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  55. package/fesm2022/softpak-components-spx-spinner.mjs +4 -4
  56. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  57. package/fesm2022/softpak-components-spx-suggestion.mjs +9 -5
  58. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  59. package/fesm2022/softpak-components-spx-toaster.mjs +32 -20
  60. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  61. package/package.json +29 -11
  62. package/spx-button/spx-button.component.d.ts +4 -0
  63. package/spx-change-details/index.d.ts +5 -0
  64. package/spx-change-details/public-api.d.ts +1 -0
  65. package/spx-change-details/spx-change-details-value.interface.d.ts +7 -0
  66. package/spx-change-details/spx-change-details.component.d.ts +40 -0
  67. package/spx-channel-selection/src/spx-channel-selection.component.d.ts +2 -1
  68. package/spx-channel-selection/src/spx-company-selection.component.d.ts +2 -1
  69. package/spx-check-digit/spx-check-digit.component.d.ts +3 -0
  70. package/spx-form-view/index.d.ts +5 -0
  71. package/spx-form-view/public-api.d.ts +3 -0
  72. package/spx-form-view/spx-form-field.interface.d.ts +16 -0
  73. package/spx-form-view/spx-form-section.interface.d.ts +9 -0
  74. package/spx-form-view/spx-form-view.component.d.ts +27 -0
  75. package/spx-inputs/public-api.d.ts +1 -0
  76. package/spx-inputs/spx-dropdown.component.d.ts +18 -0
  77. package/spx-inputs/spx-input-box.component.d.ts +9 -5
  78. package/spx-inputs/spx-input-text.component.d.ts +2 -1
  79. package/spx-inputs/spx-input-type.enum.d.ts +12 -0
  80. package/spx-inputs/spx-input.component.d.ts +4 -3
  81. package/spx-navigation/spx-home-tile.component.d.ts +6 -1
  82. package/spx-navigation/spx-navigation-item.interface.d.ts +2 -0
  83. package/spx-navigation/spx-navigation.component.d.ts +4 -1
  84. package/spx-number-check/index.d.ts +5 -0
  85. package/spx-number-check/public-api.d.ts +1 -0
  86. package/spx-number-check/spx-number-check.component.d.ts +48 -0
  87. package/spx-suggestion/spx-suggestion.component.d.ts +1 -0
  88. package/spx-toaster/src/spx-toaster.component.d.ts +1 -1
  89. package/tailwind.css +1 -1
@@ -4,7 +4,7 @@ import { combineLatest, map, startWith } from 'rxjs';
4
4
  import { spxValidatorRequired, spxValidatorMaxLength, spxValidatorMinLength, spxValidatorPattern, SpxValidationModule } from '@softpak/components/spx-validation';
5
5
  import { calcCheckDigit, valuePairToValue } from '@softpak/components/spx-helpers';
6
6
  import { CommonModule } from '@angular/common';
7
- import { SpxInputComponent } from '@softpak/components/spx-inputs';
7
+ import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/forms";
10
10
  import * as i2 from "@angular/common";
@@ -18,6 +18,8 @@ export class SpxCheckDigitComponent {
18
18
  get ctrlContainerPrefix() { return this.formGroup.get(ctrlPrefix); }
19
19
  constructor(formBuilder) {
20
20
  this.formBuilder = formBuilder;
21
+ this.inputTypeOverlayNumber = SpxInputTypeEnum.overlayNumber;
22
+ this.inputTypeText = SpxInputTypeEnum.text;
21
23
  this.formGroup = this.formBuilder.group({
22
24
  [ctrlCheckDigit]: [null, []],
23
25
  [ctrlContainerNumber]: [null, [
@@ -64,7 +66,7 @@ export class SpxCheckDigitComponent {
64
66
  return formControl._rawValidators;
65
67
  }
66
68
  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 }); }
67
- 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
+ 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-3\">\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]=\"inputTypeOverlayNumber\"\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]=\"inputTypeText\"\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]=\"inputTypeText\">\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"] }] }); }
68
70
  }
69
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxCheckDigitComponent, decorators: [{
70
72
  type: Component,
@@ -74,7 +76,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
74
76
  ReactiveFormsModule,
75
77
  SpxValidationModule,
76
78
  SpxInputComponent,
77
- ], 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
+ ], template: "<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-3\">\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]=\"inputTypeOverlayNumber\"\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]=\"inputTypeText\"\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]=\"inputTypeText\">\n </spx-input>\n</form>" }]
78
80
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { txtCheckDigit: [{
79
81
  type: Input
80
82
  }], txtContainer: [{
@@ -82,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
82
84
  }], txtPrefix: [{
83
85
  type: Input
84
86
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNoZWNrLWRpZ2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hlY2stZGlnaXQvc3B4LWNoZWNrLWRpZ2l0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hlY2stZGlnaXQvc3B4LWNoZWNrLWRpZ2l0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBdUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFnQixhQUFhLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsSyxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQUVuRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztBQUM5QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFjNUIsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxJQUFJLGNBQWMsS0FBa0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQy9G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c0JBQXNCO2tHQUF0QixzQkFBc0IsNktDeEJuQyw4eENBOEJPLDJDRGJILFlBQVksa0lBQ1osV0FBVywyWUFDWCxtQkFBbUIsa1dBQ25CLG1CQUFtQiwyS0FDbkIsaUJBQWlCOzsyRkFHUixzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBRWYsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNsQjtnRkFHUSxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNweFZhbGlkYXRvclJlcXVpcmVkLCBzcHhWYWxpZGF0b3JNYXhMZW5ndGgsIHNweFZhbGlkYXRvck1pbkxlbmd0aCwgc3B4VmFsaWRhdG9yUGF0dGVybiwgU3B4VmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgY2FsY0NoZWNrRGlnaXQsIHZhbHVlUGFpclRvVmFsdWUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTcHhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5cbmNvbnN0IGN0cmxDaGVja0RpZ2l0ID0gJ2NoZWNrRGlnaXQnO1xuY29uc3QgY3RybENvbnRhaW5lck51bWJlciA9ICdjb250YWluZXJOdW1iZXInO1xuY29uc3QgY3RybFByZWZpeCA9ICdwcmVmaXgnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtY2hlY2stZGlnaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3B4LWNoZWNrLWRpZ2l0LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNweFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgU3B4SW5wdXRDb21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU3B4Q2hlY2tEaWdpdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHR4dENoZWNrRGlnaXQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbnRhaW5lciE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0UHJlZml4ITogc3RyaW5nO1xuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICBnZXQgY3RybENoZWNrRGlnaXQoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDaGVja0RpZ2l0KSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybENvbnRhaW5lck51bWJlcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybENvbnRhaW5lck51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDb250YWluZXJQcmVmaXgoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxQcmVmaXgpIGFzIEZvcm1Db250cm9sOyB9XG5cbiAgcHJpdmF0ZSBpbnB1dENoYW5nZXM/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICkge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBbY3RybENoZWNrRGlnaXRdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxDb250YWluZXJOdW1iZXJdOiBbbnVsbCwgW1xuICAgICAgICBzcHhWYWxpZGF0b3JSZXF1aXJlZCgpLFxuICAgICAgICBzcHhWYWxpZGF0b3JNYXhMZW5ndGgoNiksXG4gICAgICAgIHNweFZhbGlkYXRvck1pbkxlbmd0aCg2KSxcbiAgICAgICAgc3B4VmFsaWRhdG9yUGF0dGVybigvWzAtOV17Nn0vKSxcbiAgICAgIF1dLFxuICAgICAgW2N0cmxQcmVmaXhdOiBbbnVsbCwgW1xuICAgICAgICBzcHhWYWxpZGF0b3JSZXF1aXJlZCgpLFxuICAgICAgICBzcHhWYWxpZGF0b3JNYXhMZW5ndGgoNCksXG4gICAgICAgIHNweFZhbGlkYXRvck1pbkxlbmd0aCg0KSxcbiAgICAgICAgc3B4VmFsaWRhdG9yUGF0dGVybigvW2EtekEtWl17NH0vKSxcbiAgICAgIF1dLFxuICAgIH0pXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Q2hhbmdlcyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jdHJsQ29udGFpbmVyTnVtYmVyLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmN0cmxDb250YWluZXJOdW1iZXIudmFsdWUpKSxcbiAgICAgIHRoaXMuY3RybENvbnRhaW5lclByZWZpeC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jdHJsQ29udGFpbmVyUHJlZml4LnZhbHVlKSksXG4gICAgXSlcbiAgICAucGlwZShtYXAoKFtjb250YWluZXJOdW1iZXIkLCBwcmVmaXgkXSkgPT4gKHtcbiAgICAgIGNvbnRhaW5lck51bWJlcjogY29udGFpbmVyTnVtYmVyJCxcbiAgICAgIHByZWZpeDogcHJlZml4JFxuICAgIH0pKSlcbiAgICAuc3Vic2NyaWJlKCh2KSA9PiB7XG4gICAgICBpZiAodGhpcy5jdHJsQ29udGFpbmVyTnVtYmVyLmludmFsaWQgfHwgdGhpcy5jdHJsQ29udGFpbmVyUHJlZml4LmludmFsaWQpIHtcbiAgICAgICAgdGhpcy5jdHJsQ2hlY2tEaWdpdC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwcmVmaXggPSB2YWx1ZVBhaXJUb1ZhbHVlKHRoaXMuY3RybENvbnRhaW5lclByZWZpeC52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lck51bWJlciA9IHZhbHVlUGFpclRvVmFsdWUodGhpcy5jdHJsQ29udGFpbmVyTnVtYmVyLnZhbHVlKTtcbiAgICAgICAgY29uc3QgY2hlY2tEaWdpdCA9IGNhbGNDaGVja0RpZ2l0KGAke3ByZWZpeH0ke2NvbnRhaW5lck51bWJlcn1gKTtcbiAgICAgICAgdGhpcy5jdHJsQ2hlY2tEaWdpdC5zZXRWYWx1ZSh7IHZhbHVlOiBjaGVja0RpZ2l0IH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Q2hhbmdlcykge1xuICAgICAgdGhpcy5pbnB1dENoYW5nZXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRSYXdWYWxpZGF0b3JzKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIHJldHVybiAoZm9ybUNvbnRyb2wgYXMgYW55KS5fcmF3VmFsaWRhdG9ycztcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cIm1heC13LWxnIG14LWF1dG8gZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICA8c3B4LWlucHV0XG4gICAgW2Zvcm1Db250cm9sXT1cImN0cmxDb250YWluZXJOdW1iZXJcIlxuICAgIFtzcHhBdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgW3NweENhcGl0YWxpemVdPVwidHJ1ZVwiXG4gICAgW3NweExhYmVsXT1cInR4dENvbnRhaW5lclwiXG4gICAgW3NweFBhdHRlcm5dPVwiJ1swLTldKidcIlxuICAgIFtzcHhSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICBbc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc109XCJjdHJsQ29udGFpbmVyTnVtYmVyICYmIGN0cmxDb250YWluZXJOdW1iZXIuZXJyb3JzICYmIGN0cmxDb250YWluZXJOdW1iZXIudG91Y2hlZFwiXG4gICAgW3NweFR5cGVdPVwiJ292ZXJsYXludW1iZXInXCJcbiAgICBbc3B4VmFsaWRhdG9yc109XCJnZXRSYXdWYWxpZGF0b3JzKGN0cmxDb250YWluZXJOdW1iZXIpXCI+XG4gICAgPHNweC12YWxpZGF0ZS1jb250cm9sIFtjb250cm9sXT1cImN0cmxDb250YWluZXJOdW1iZXJcIiBbbGFiZWxdPVwidHh0Q29udGFpbmVyXCI+PC9zcHgtdmFsaWRhdGUtY29udHJvbD5cbiAgPC9zcHgtaW5wdXQ+XG4gIDxzcHgtaW5wdXRcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3RybENvbnRhaW5lclByZWZpeFwiXG4gICAgW3NweENhcGl0YWxpemVdPVwidHJ1ZVwiXG4gICAgW3NweExhYmVsXT1cInR4dFByZWZpeFwiXG4gICAgW3NweFJlcXVpcmVkXT1cInRydWVcIlxuICAgIFtzcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzXT1cImN0cmxDb250YWluZXJQcmVmaXggJiYgY3RybENvbnRhaW5lclByZWZpeC5lcnJvcnMgJiYgY3RybENvbnRhaW5lclByZWZpeC50b3VjaGVkXCJcbiAgICBbc3B4VHlwZV09XCIndGV4dCdcIlxuICAgIFtzcHhWYWxpZGF0b3JzXT1cImdldFJhd1ZhbGlkYXRvcnMoY3RybENvbnRhaW5lclByZWZpeClcIj5cbiAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiY3RybENvbnRhaW5lclByZWZpeFwiIFtsYWJlbF09XCJ0eHRQcmVmaXhcIj48L3NweC12YWxpZGF0ZS1jb250cm9sPlxuICA8L3NweC1pbnB1dD5cbiAgPHNweC1pbnB1dFxuICAgICpuZ0lmPVwiY3RybENoZWNrRGlnaXQudmFsdWVcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdHJsQ2hlY2tEaWdpdFwiXG4gICAgW3NweExhYmVsXT1cInR4dENoZWNrRGlnaXRcIlxuICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCJcbiAgICBbc3B4VHlwZV09XCIndGV4dCdcIj5cbiAgPC9zcHgtaW5wdXQ+XG48L2Zvcm0+Il19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNoZWNrLWRpZ2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hlY2stZGlnaXQvc3B4LWNoZWNrLWRpZ2l0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hlY2stZGlnaXQvc3B4LWNoZWNrLWRpZ2l0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBdUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFnQixhQUFhLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsSyxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQUVyRixNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztBQUM5QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFjNUIsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQyxJQUFJLGNBQWMsS0FBa0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQWdCLENBQUMsQ0FB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bEMsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUN2QyxPQUFRLFdBQW1CLENBQUMsY0FBYyxDQUFDO0lBQzdDLENBQUM7OEdBL0RVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDZLQ3hCbkMsbXpDQThCTywyQ0RiSCxZQUFZLGtJQUNaLFdBQVcsMllBQ1gsbUJBQW1CLGtXQUNuQixtQkFBbUIsMktBQ25CLGlCQUFpQjs7MkZBR1Isc0JBQXNCO2tCQVpsQyxTQUFTOytCQUNFLGlCQUFpQixjQUVmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGlCQUFpQjtxQkFDbEI7Z0ZBR1EsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzcHhWYWxpZGF0b3JSZXF1aXJlZCwgc3B4VmFsaWRhdG9yTWF4TGVuZ3RoLCBzcHhWYWxpZGF0b3JNaW5MZW5ndGgsIHNweFZhbGlkYXRvclBhdHRlcm4sIFNweFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uJztcbmltcG9ydCB7IGNhbGNDaGVja0RpZ2l0LCB2YWx1ZVBhaXJUb1ZhbHVlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMnO1xuXG5jb25zdCBjdHJsQ2hlY2tEaWdpdCA9ICdjaGVja0RpZ2l0JztcbmNvbnN0IGN0cmxDb250YWluZXJOdW1iZXIgPSAnY29udGFpbmVyTnVtYmVyJztcbmNvbnN0IGN0cmxQcmVmaXggPSAncHJlZml4JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWNoZWNrLWRpZ2l0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NweC1jaGVjay1kaWdpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTcHhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIFNweElucHV0Q29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNweENoZWNrRGlnaXRDb21wb25lbnQge1xuICBASW5wdXQoKSB0eHRDaGVja0RpZ2l0ITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDb250YWluZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFByZWZpeCE6IHN0cmluZztcbiAgaW5wdXRUeXBlT3ZlcmxheU51bWJlciA9IFNweElucHV0VHlwZUVudW0ub3ZlcmxheU51bWJlcjtcbiAgaW5wdXRUeXBlVGV4dCA9IFNweElucHV0VHlwZUVudW0udGV4dDtcbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgZ2V0IGN0cmxDaGVja0RpZ2l0KCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjdHJsQ2hlY2tEaWdpdCkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDb250YWluZXJOdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDb250YWluZXJOdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQ29udGFpbmVyUHJlZml4KCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjdHJsUHJlZml4KSBhcyBGb3JtQ29udHJvbDsgfVxuXG4gIHByaXZhdGUgaW5wdXRDaGFuZ2VzPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgW2N0cmxDaGVja0RpZ2l0XTogW251bGwsIFtdXSxcbiAgICAgIFtjdHJsQ29udGFpbmVyTnVtYmVyXTogW251bGwsIFtcbiAgICAgICAgc3B4VmFsaWRhdG9yUmVxdWlyZWQoKSxcbiAgICAgICAgc3B4VmFsaWRhdG9yTWF4TGVuZ3RoKDYpLFxuICAgICAgICBzcHhWYWxpZGF0b3JNaW5MZW5ndGgoNiksXG4gICAgICAgIHNweFZhbGlkYXRvclBhdHRlcm4oL1swLTldezZ9LyksXG4gICAgICBdXSxcbiAgICAgIFtjdHJsUHJlZml4XTogW251bGwsIFtcbiAgICAgICAgc3B4VmFsaWRhdG9yUmVxdWlyZWQoKSxcbiAgICAgICAgc3B4VmFsaWRhdG9yTWF4TGVuZ3RoKDQpLFxuICAgICAgICBzcHhWYWxpZGF0b3JNaW5MZW5ndGgoNCksXG4gICAgICAgIHNweFZhbGlkYXRvclBhdHRlcm4oL1thLXpBLVpdezR9LyksXG4gICAgICBdXSxcbiAgICB9KVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dENoYW5nZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY3RybENvbnRhaW5lck51bWJlci52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jdHJsQ29udGFpbmVyTnVtYmVyLnZhbHVlKSksXG4gICAgICB0aGlzLmN0cmxDb250YWluZXJQcmVmaXgudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuY3RybENvbnRhaW5lclByZWZpeC52YWx1ZSkpLFxuICAgIF0pXG4gICAgLnBpcGUobWFwKChbY29udGFpbmVyTnVtYmVyJCwgcHJlZml4JF0pID0+ICh7XG4gICAgICBjb250YWluZXJOdW1iZXI6IGNvbnRhaW5lck51bWJlciQsXG4gICAgICBwcmVmaXg6IHByZWZpeCRcbiAgICB9KSkpXG4gICAgLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgaWYgKHRoaXMuY3RybENvbnRhaW5lck51bWJlci5pbnZhbGlkIHx8IHRoaXMuY3RybENvbnRhaW5lclByZWZpeC5pbnZhbGlkKSB7XG4gICAgICAgIHRoaXMuY3RybENoZWNrRGlnaXQuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gdmFsdWVQYWlyVG9WYWx1ZSh0aGlzLmN0cmxDb250YWluZXJQcmVmaXgudmFsdWUpO1xuICAgICAgICBjb25zdCBjb250YWluZXJOdW1iZXIgPSB2YWx1ZVBhaXJUb1ZhbHVlKHRoaXMuY3RybENvbnRhaW5lck51bWJlci52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGNoZWNrRGlnaXQgPSBjYWxjQ2hlY2tEaWdpdChgJHtwcmVmaXh9JHtjb250YWluZXJOdW1iZXJ9YCk7XG4gICAgICAgIHRoaXMuY3RybENoZWNrRGlnaXQuc2V0VmFsdWUoeyB2YWx1ZTogY2hlY2tEaWdpdCB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmF3VmFsaWRhdG9ycyhmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgY2xhc3M9XCJtYXgtdy1sZyBteC1hdXRvIGZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgPHNweC1pbnB1dFxuICAgIFtmb3JtQ29udHJvbF09XCJjdHJsQ29udGFpbmVyTnVtYmVyXCJcbiAgICBbc3B4QXV0b2ZvY3VzXT1cInRydWVcIlxuICAgIFtzcHhDYXBpdGFsaXplXT1cInRydWVcIlxuICAgIFtzcHhMYWJlbF09XCJ0eHRDb250YWluZXJcIlxuICAgIFtzcHhQYXR0ZXJuXT1cIidbMC05XSonXCJcbiAgICBbc3B4UmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgW3NweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNdPVwiY3RybENvbnRhaW5lck51bWJlciAmJiBjdHJsQ29udGFpbmVyTnVtYmVyLmVycm9ycyAmJiBjdHJsQ29udGFpbmVyTnVtYmVyLnRvdWNoZWRcIlxuICAgIFtzcHhUeXBlXT1cImlucHV0VHlwZU92ZXJsYXlOdW1iZXJcIlxuICAgIFtzcHhWYWxpZGF0b3JzXT1cImdldFJhd1ZhbGlkYXRvcnMoY3RybENvbnRhaW5lck51bWJlcilcIj5cbiAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiY3RybENvbnRhaW5lck51bWJlclwiIFtsYWJlbF09XCJ0eHRDb250YWluZXJcIj48L3NweC12YWxpZGF0ZS1jb250cm9sPlxuICA8L3NweC1pbnB1dD5cbiAgPHNweC1pbnB1dFxuICAgIFtmb3JtQ29udHJvbF09XCJjdHJsQ29udGFpbmVyUHJlZml4XCJcbiAgICBbc3B4Q2FwaXRhbGl6ZV09XCJ0cnVlXCJcbiAgICBbc3B4TGFiZWxdPVwidHh0UHJlZml4XCJcbiAgICBbc3B4UmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgW3NweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNdPVwiY3RybENvbnRhaW5lclByZWZpeCAmJiBjdHJsQ29udGFpbmVyUHJlZml4LmVycm9ycyAmJiBjdHJsQ29udGFpbmVyUHJlZml4LnRvdWNoZWRcIlxuICAgIFtzcHhUeXBlXT1cImlucHV0VHlwZVRleHRcIlxuICAgIFtzcHhWYWxpZGF0b3JzXT1cImdldFJhd1ZhbGlkYXRvcnMoY3RybENvbnRhaW5lclByZWZpeClcIj5cbiAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiY3RybENvbnRhaW5lclByZWZpeFwiIFtsYWJlbF09XCJ0eHRQcmVmaXhcIj48L3NweC12YWxpZGF0ZS1jb250cm9sPlxuICA8L3NweC1pbnB1dD5cbiAgPHNweC1pbnB1dFxuICAgICpuZ0lmPVwiY3RybENoZWNrRGlnaXQudmFsdWVcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdHJsQ2hlY2tEaWdpdFwiXG4gICAgW3NweExhYmVsXT1cInR4dENoZWNrRGlnaXRcIlxuICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCJcbiAgICBbc3B4VHlwZV09XCJpbnB1dFR5cGVUZXh0XCI+XG4gIDwvc3B4LWlucHV0PlxuPC9mb3JtPiJdfQ==
@@ -6,25 +6,25 @@ export class SpxFormSectionComponent {
6
6
  this.spxShowTitle = true;
7
7
  }
8
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- 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">
9
+ 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 mb-2">
10
10
  <div class="spx-form-section__title-index">{{this.spxIndex}}<ng-container *ngIf="this.spxIndexSecondary">{{ this.spxIndexSecondary }}</ng-container></div>
11
11
  <div class="spx-form-section__title-content">{{this.spxTitle}}</div>
12
12
  </div>
13
- <div class="spx-form-section__content">
13
+ <div class="spx-form-section__content flex flex-col gap-3">
14
14
  <ng-content></ng-content>
15
- </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"] }] }); }
15
+ </div>`, isInline: true, styles: [":host{display:block}.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"] }] }); }
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxFormSectionComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'spx-form-section', standalone: true, imports: [
20
20
  NgIf,
21
- ], template: `<div *ngIf="this.spxShowTitle" class="spx-form-section__title">
21
+ ], template: `<div *ngIf="this.spxShowTitle" class="spx-form-section__title mb-2">
22
22
  <div class="spx-form-section__title-index">{{this.spxIndex}}<ng-container *ngIf="this.spxIndexSecondary">{{ this.spxIndexSecondary }}</ng-container></div>
23
23
  <div class="spx-form-section__title-content">{{this.spxTitle}}</div>
24
24
  </div>
25
- <div class="spx-form-section__content">
25
+ <div class="spx-form-section__content flex flex-col gap-3">
26
26
  <ng-content></ng-content>
27
- </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"] }]
27
+ </div>`, styles: [":host{display:block}.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"] }]
28
28
  }], propDecorators: { spxIndex: [{
29
29
  type: Input
30
30
  }], spxIndexSecondary: [{
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
34
34
  }], spxShowTitle: [{
35
35
  type: Input
36
36
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tc2VjdGlvbi9zcHgtZm9ybS1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZ0RqRCxNQUFNLE9BQU8sdUJBQXVCO0lBOUNwQztRQWtEVyxpQkFBWSxHQUFHLElBQUksQ0FBQztLQUM5Qjs4R0FMWSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwwTUF4Q3hCOzs7Ozs7U0FNSCxxdkJBUkwsSUFBSTs7MkZBMENLLHVCQUF1QjtrQkE5Q25DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxJQUFJO3FCQUNMLFlBQ1M7Ozs7OztTQU1IOzhCQW1DRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWZvcm0tc2VjdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICBdLFxuICB0ZW1wbGF0ZTogYDxkaXYgKm5nSWY9XCJ0aGlzLnNweFNob3dUaXRsZVwiIGNsYXNzPVwic3B4LWZvcm0tc2VjdGlvbl9fdGl0bGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUtaW5kZXhcIj57e3RoaXMuc3B4SW5kZXh9fTxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLnNweEluZGV4U2Vjb25kYXJ5XCI+e3sgdGhpcy5zcHhJbmRleFNlY29uZGFyeSB9fTwvbmctY29udGFpbmVyPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzcHgtZm9ybS1zZWN0aW9uX190aXRsZS1jb250ZW50XCI+e3t0aGlzLnNweFRpdGxlfX08L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzcHgtZm9ybS1zZWN0aW9uX19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5gLFxuICBzdHlsZXM6IGBcbiAgOmhvc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNweC1wYWRkaW5nLTgsIDE2cHgpO1xuICB9XG4gIFxuICAuc3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNweC1wYWRkaW5nLTQsIDhweCk7XG4gIH1cbiAgXG4gIC5zcHgtZm9ybS1zZWN0aW9uX190aXRsZS1pbmRleCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3B4LWZvcm0tc2VjdGlvbi0taW5kZXgtLWJhY2tncm91bmQtY29sb3IsICMwMDAwMDApO1xuICAgIGNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS1pbmRleC0tY29sb3IsICNGRkZGRkYpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICBcbiAgLnNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWNvbnRlbnQge1xuICAgIGNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS10aXRsZS0tY29sb3IsIGdyZXkpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IHZhcigtLXNweC1mb3JtLXNlY3Rpb24tLXRpdGxlLS1mb250LXNpemUsIDE2cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS10aXRsZS0tZm9udC13ZWlnaHQsIGJvbGQpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4Rm9ybVNlY3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBzcHhJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgc3B4SW5kZXhTZWNvbmRhcnk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNweFRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhTaG93VGl0bGUgPSB0cnVlO1xufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tc2VjdGlvbi9zcHgtZm9ybS1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBMkNqRCxNQUFNLE9BQU8sdUJBQXVCO0lBekNwQztRQTZDVyxpQkFBWSxHQUFHLElBQUksQ0FBQztLQUM5Qjs4R0FMWSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwwTUFuQ3hCOzs7Ozs7U0FNSCwyb0JBUkwsSUFBSTs7MkZBcUNLLHVCQUF1QjtrQkF6Q25DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxJQUFJO3FCQUNMLFlBQ1M7Ozs7OztTQU1IOzhCQThCRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWZvcm0tc2VjdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICBdLFxuICB0ZW1wbGF0ZTogYDxkaXYgKm5nSWY9XCJ0aGlzLnNweFNob3dUaXRsZVwiIGNsYXNzPVwic3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUgbWItMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJzcHgtZm9ybS1zZWN0aW9uX190aXRsZS1pbmRleFwiPnt7dGhpcy5zcHhJbmRleH19PG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuc3B4SW5kZXhTZWNvbmRhcnlcIj57eyB0aGlzLnNweEluZGV4U2Vjb25kYXJ5IH19PC9uZy1jb250YWluZXI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWNvbnRlbnRcIj57e3RoaXMuc3B4VGl0bGV9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNweC1mb3JtLXNlY3Rpb25fX2NvbnRlbnQgZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+YCxcbiAgc3R5bGVzOiBgXG4gIDpob3N0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBcbiAgLnNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWluZGV4IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS1pbmRleC0tYmFja2dyb3VuZC1jb2xvciwgIzAwMDAwMCk7XG4gICAgY29sb3I6IHZhcigtLXNweC1mb3JtLXNlY3Rpb24tLWluZGV4LS1jb2xvciwgI0ZGRkZGRik7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIFxuICAuc3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUtY29udGVudCB7XG4gICAgY29sb3I6IHZhcigtLXNweC1mb3JtLXNlY3Rpb24tLXRpdGxlLS1jb2xvciwgZ3JleSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc3B4LWZvcm0tc2VjdGlvbi0tdGl0bGUtLWZvbnQtc2l6ZSwgMTZweCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXNweC1mb3JtLXNlY3Rpb24tLXRpdGxlLS1mb250LXdlaWdodCwgYm9sZCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNweEluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBzcHhJbmRleFNlY29uZGFyeT86IG51bWJlcjtcbiAgQElucHV0KCkgc3B4VGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweFNob3dUaXRsZSA9IHRydWU7XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './spx-form-field.interface';
2
+ export * from './spx-form-section.interface';
3
+ export * from './spx-form-view.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NweC1mb3JtLXNlY3Rpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWZvcm0tdmlldy5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC1mb3JtLXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zb2Z0cGFrLWNvbXBvbmVudHMtc3B4LWZvcm0tdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tZmllbGQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXZpZXcvc3B4LWZvcm0tZmllbGQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcHhJbnB1dFR5cGVFbnVtLCBTcHhWYWx1ZVBhaXIgfSBmcm9tIFwiQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3B4Rm9ybUZpZWxkSSB7XG4gICAgYWZ0ZXJWYWx1ZUNoYW5nZT86ICh2YWx1ZTogU3B4VmFsdWVQYWlyPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBhbnk+KSA9PiB2b2lkO1xuICAgIGF1dG9mb2N1cz86ICgpID0+IGJvb2xlYW47XG4gICAgY2FwaXRhbGl6ZT86ICgpID0+IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogKCkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IGFueTtcbiAgICBrZXk6IHN0cmluZztcbiAgICBsYWJlbD86ICgpID0+IHN0cmluZztcbiAgICByZWFkb25seT86ICgpID0+IGJvb2xlYW47XG4gICAgc2hvdz86ICgpID0+IGJvb2xlYW47XG4gICAgc3RlcD86ICgpID0+IG51bWJlcjtcbiAgICBzdWdnZXN0aW9ucz86ICgpID0+IGJvb2xlYW47XG4gICAgc3VnZ2VzdGlvbnNGaXhlZD86ICgpID0+IFNweFZhbHVlUGFpcjxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYW55PltdXG4gICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bTtcbiAgICB2YWxpZGF0b3JzPzogKCkgPT4gYW55W107XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tc2VjdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zcHgtZm9ybS1zZWN0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3B4Rm9ybUZpZWxkSSB9IGZyb20gXCIuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNweEZvcm1TZWN0aW9uSSB7XG4gICAgZmllbGRzOiBTcHhGb3JtRmllbGRJW107XG4gICAgaW5kZXg/OiAoKSA9PiBudW1iZXI7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgc2hvdz86ICgpID0+IGJvb2xlYW47XG4gICAgc2hvd1RpdGxlPzogKCkgPT4gYm9vbGVhbjtcbiAgICB0aXRsZT86ICgpID0+IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,163 @@
1
+ import { JsonPipe, NgFor, NgIf } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { SpxFormSectionComponent } from '@softpak/components/spx-form-section';
4
+ import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
5
+ import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
6
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ export class SpxFormViewComponent {
10
+ onBlur(field) {
11
+ return;
12
+ }
13
+ getRawValidators(formControl) {
14
+ // eslint-disable-next-line no-underscore-dangle
15
+ return formControl._rawValidators;
16
+ }
17
+ hasRequiredField(abstractControl) {
18
+ if (abstractControl.validator) {
19
+ const validator = abstractControl.validator({});
20
+ if (validator && validator['required']) {
21
+ return true;
22
+ }
23
+ }
24
+ if (abstractControl['controls']) {
25
+ for (const controlName in abstractControl['controls']) {
26
+ if (abstractControl['controls'][controlName]) {
27
+ if (this.hasRequiredField(abstractControl['controls'][controlName])) {
28
+ return true;
29
+ }
30
+ }
31
+ }
32
+ }
33
+ return false;
34
+ }
35
+ static initialFormValue(sections) {
36
+ const formObject = {};
37
+ sections.forEach(section => {
38
+ section.fields.forEach(field => {
39
+ formObject[field.key] = [field.defaultValue ? field.defaultValue() : null, field.validators ? [...field.validators()] : []];
40
+ });
41
+ });
42
+ return formObject;
43
+ }
44
+ static createForm(formBuilder, sections) {
45
+ return formBuilder.group(this.initialFormValue(sections));
46
+ }
47
+ constructor(formBuilder) {
48
+ this.formBuilder = formBuilder;
49
+ this.typeAutocomplete = SpxInputTypeEnum.autocomplete;
50
+ this.typeFloat = SpxInputTypeEnum.float;
51
+ this.typeNumber = SpxInputTypeEnum.number;
52
+ this.typeRadio = SpxInputTypeEnum.radio;
53
+ this.typeText = SpxInputTypeEnum.text;
54
+ this.typeNumericKeyboard = SpxInputTypeEnum.textNumericKeyboard;
55
+ this.typeOverlay = SpxInputTypeEnum.overlay;
56
+ this.typeOverlayNumber = SpxInputTypeEnum.overlayNumber;
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxFormViewComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxFormViewComponent, isStandalone: true, selector: "spx-form-view", inputs: { spxFormGroup: "spxFormGroup", spxSections: "spxSections", spxSuggestions: "spxSuggestions" }, ngImport: i0, template: `<spx-form-section
60
+ *ngFor="let spxSection of spxSections; let spxSectionIndex = index;"
61
+ [spxShowTitle]="!spxSection.showTitle || spxSection.showTitle()"
62
+ [spxIndex]="spxSectionIndex + 1"
63
+ [spxTitle]="spxSection.title ? spxSection.title() : undefined">
64
+ <ng-container *ngFor="let spxField of spxSection.fields; let spxFieldIndex = index;">
65
+ <ng-container *ngIf="spxField.show === undefined || spxField.show()">
66
+ <spx-input
67
+ *ngIf="spxField.type() === typeOverlay || spxField.type() === typeOverlayNumber || spxField.type() === typeFloat || spxField.type() === typeNumber || spxField.type() === typeText || spxField.type() === typeAutocomplete || spxField.type() === typeNumericKeyboard"
68
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
69
+ [spxAutofocus]="spxField.autofocus ? spxField.autofocus() : false"
70
+ [spxCapitalize]="spxField.capitalize ? spxField.capitalize() : false"
71
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | capitalize"
72
+ [spxPattern]="spxField.type() === typeNumericKeyboard ? '\\d*' : undefined"
73
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
74
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
75
+ [spxShowHelp]="false"
76
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
77
+ [spxStep]="spxField.step ? spxField.step() : undefined"
78
+ [spxType]="spxField.type()"
79
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)"
80
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
81
+ (spxBlur)="onBlur(spxField)">
82
+ </spx-input>
83
+
84
+ <spx-input
85
+ *ngIf="spxField.type() === typeRadio"
86
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
87
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | capitalize"
88
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
89
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
90
+ [spxShowHelp]="false"
91
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
92
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
93
+ [spxType]="typeRadio"
94
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)">
95
+ </spx-input>
96
+ </ng-container>
97
+ </ng-container>
98
+ </spx-form-section>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxFormSectionComponent, selector: "spx-form-section", inputs: ["spxIndex", "spxIndexSecondary", "spxTitle", "spxShowTitle"] }, { 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"] }] }); }
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxFormViewComponent, decorators: [{
101
+ type: Component,
102
+ args: [{
103
+ selector: 'spx-form-view',
104
+ standalone: true,
105
+ imports: [
106
+ FormsModule,
107
+ ReactiveFormsModule,
108
+ JsonPipe,
109
+ NgIf,
110
+ NgFor,
111
+ SpxCapitalizePipe,
112
+ SpxFormSectionComponent,
113
+ SpxInputComponent,
114
+ ],
115
+ template: `<spx-form-section
116
+ *ngFor="let spxSection of spxSections; let spxSectionIndex = index;"
117
+ [spxShowTitle]="!spxSection.showTitle || spxSection.showTitle()"
118
+ [spxIndex]="spxSectionIndex + 1"
119
+ [spxTitle]="spxSection.title ? spxSection.title() : undefined">
120
+ <ng-container *ngFor="let spxField of spxSection.fields; let spxFieldIndex = index;">
121
+ <ng-container *ngIf="spxField.show === undefined || spxField.show()">
122
+ <spx-input
123
+ *ngIf="spxField.type() === typeOverlay || spxField.type() === typeOverlayNumber || spxField.type() === typeFloat || spxField.type() === typeNumber || spxField.type() === typeText || spxField.type() === typeAutocomplete || spxField.type() === typeNumericKeyboard"
124
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
125
+ [spxAutofocus]="spxField.autofocus ? spxField.autofocus() : false"
126
+ [spxCapitalize]="spxField.capitalize ? spxField.capitalize() : false"
127
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | capitalize"
128
+ [spxPattern]="spxField.type() === typeNumericKeyboard ? '\\d*' : undefined"
129
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
130
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
131
+ [spxShowHelp]="false"
132
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
133
+ [spxStep]="spxField.step ? spxField.step() : undefined"
134
+ [spxType]="spxField.type()"
135
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)"
136
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
137
+ (spxBlur)="onBlur(spxField)">
138
+ </spx-input>
139
+
140
+ <spx-input
141
+ *ngIf="spxField.type() === typeRadio"
142
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
143
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | capitalize"
144
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
145
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
146
+ [spxShowHelp]="false"
147
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
148
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
149
+ [spxType]="typeRadio"
150
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)">
151
+ </spx-input>
152
+ </ng-container>
153
+ </ng-container>
154
+ </spx-form-section>`,
155
+ }]
156
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { spxFormGroup: [{
157
+ type: Input
158
+ }], spxSections: [{
159
+ type: Input
160
+ }], spxSuggestions: [{
161
+ type: Input
162
+ }] } });
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zcHgtZm9ybS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQTJDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUF5RDNHLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IsTUFBTSxDQUFDLEtBQW9CO1FBQ3pCLE9BQU87SUFDVCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBNEI7UUFDM0MsZ0RBQWdEO1FBQ2hELE9BQVEsV0FBbUIsQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLGVBQWdDO1FBQy9DLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBcUIsQ0FBQyxDQUFDO1lBQ25FLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSyxlQUF1QixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7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ICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B4Rm9ybVNlY3Rpb25JIH0gZnJvbSAnLi9zcHgtZm9ybS1zZWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tc2VjdGlvbic7XG5pbXBvcnQgeyBTcHhJbnB1dENvbXBvbmVudCwgU3B4SW5wdXRUeXBlRW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNweEZvcm1GaWVsZEkgfSBmcm9tICcuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1mb3JtLXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBKc29uUGlwZSxcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIFNweENhcGl0YWxpemVQaXBlLFxuICAgIFNweEZvcm1TZWN0aW9uQ29tcG9uZW50LFxuICAgIFNweElucHV0Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYDxzcHgtZm9ybS1zZWN0aW9uXG4gICAgKm5nRm9yPVwibGV0IHNweFNlY3Rpb24gb2Ygc3B4U2VjdGlvbnM7IGxldCBzcHhTZWN0aW9uSW5kZXggPSBpbmRleDtcIlxuICAgIFtzcHhTaG93VGl0bGVdPVwiIXNweFNlY3Rpb24uc2hvd1RpdGxlIHx8IHNweFNlY3Rpb24uc2hvd1RpdGxlKClcIlxuICAgIFtzcHhJbmRleF09XCJzcHhTZWN0aW9uSW5kZXggKyAxXCJcbiAgICBbc3B4VGl0bGVdPVwic3B4U2VjdGlvbi50aXRsZSA/IHNweFNlY3Rpb24udGl0bGUoKSA6IHVuZGVmaW5lZFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNweEZpZWxkIG9mIHNweFNlY3Rpb24uZmllbGRzOyBsZXQgc3B4RmllbGRJbmRleCA9IGluZGV4O1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNweEZpZWxkLnNob3cgPT09IHVuZGVmaW5lZCB8fCBzcHhGaWVsZC5zaG93KClcIj5cbiAgICAgICAgPHNweC1pbnB1dFxuICAgICAgICAgICpuZ0lmPVwic3B4RmllbGQudHlwZSgpID09PSB0eXBlT3ZlcmxheSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVPdmVybGF5TnVtYmVyIHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUZsb2F0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZU51bWJlciB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVUZXh0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUF1dG9jb21wbGV0ZSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVOdW1lcmljS2V5Ym9hcmRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCIkYW55KHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpKVwiXG4gICAgICAgICAgW3NweEF1dG9mb2N1c109XCJzcHhGaWVsZC5hdXRvZm9jdXMgPyBzcHhGaWVsZC5hdXRvZm9jdXMoKSA6IGZhbHNlXCJcbiAgICAgICAgICBbc3B4Q2FwaXRhbGl6ZV09XCJzcHhGaWVsZC5jYXBpdGFsaXplID8gc3B4RmllbGQuY2FwaXRhbGl6ZSgpIDogZmFsc2VcIlxuICAgICAgICAgIFtzcHhMYWJlbF09XCIoc3B4RmllbGQubGFiZWwgPyBzcHhGaWVsZC5sYWJlbCgpIDogc3B4RmllbGQua2V5KSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhQYXR0ZXJuXT1cInNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZU51bWVyaWNLZXlib2FyZCA/ICdcXFxcZConIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwic3B4RmllbGQucmVhZG9ubHkgPyBzcHhGaWVsZC5yZWFkb25seSgpIDogZmFsc2VcIlxuICAgICAgICAgIFtzcHhSZXF1aXJlZF09XCJoYXNSZXF1aXJlZEZpZWxkKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgIFtzcHhTaG93SGVscF09XCJmYWxzZVwiXG4gICAgICAgICAgW3NweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNdPVwidGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhICYmIHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpIS5lcnJvcnMgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLnRvdWNoZWRcIlxuICAgICAgICAgIFtzcHhTdGVwXT1cInNweEZpZWxkLnN0ZXAgPyBzcHhGaWVsZC5zdGVwKCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIFtzcHhUeXBlXT1cInNweEZpZWxkLnR5cGUoKVwiXG4gICAgICAgICAgW3NweFZhbGlkYXRvcnNdPVwiZ2V0UmF3VmFsaWRhdG9ycyh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEpXCJcbiAgICAgICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCA/IHNweEZpZWxkLnN1Z2dlc3Rpb25zRml4ZWQoKSA6IHRoaXMuc3B4U3VnZ2VzdGlvbnNbc3B4RmllbGQua2V5XVwiXG4gICAgICAgICAgKHNweEJsdXIpPVwib25CbHVyKHNweEZpZWxkKVwiPlxuICAgICAgICA8L3NweC1pbnB1dD5cblxuICAgICAgICA8c3B4LWlucHV0XG4gICAgICAgICAgKm5nSWY9XCJzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVSYWRpb1wiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkodGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkpXCJcbiAgICAgICAgICBbc3B4TGFiZWxdPVwiKHNweEZpZWxkLmxhYmVsID8gc3B4RmllbGQubGFiZWwoKSA6IHNweEZpZWxkLmtleSkgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwic3B4RmllbGQucmVhZG9ubHkgPyBzcHhGaWVsZC5yZWFkb25seSgpIDogZmFsc2VcIlxuICAgICAgICAgIFtzcHhSZXF1aXJlZF09XCJoYXNSZXF1aXJlZEZpZWxkKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgIFtzcHhTaG93SGVscF09XCJmYWxzZVwiXG4gICAgICAgICAgW3NweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNdPVwidGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhICYmIHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpIS5lcnJvcnMgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLnRvdWNoZWRcIlxuICAgICAgICAgIFtzcHhTdWdnZXN0aW9uc109XCJzcHhGaWVsZC5zdWdnZXN0aW9uc0ZpeGVkID8gc3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCgpIDogdGhpcy5zcHhTdWdnZXN0aW9uc1tzcHhGaWVsZC5rZXldXCJcbiAgICAgICAgICBbc3B4VHlwZV09XCJ0eXBlUmFkaW9cIlxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cImdldFJhd1ZhbGlkYXRvcnModGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhKVwiPlxuICAgICAgICA8L3NweC1pbnB1dD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NweC1mb3JtLXNlY3Rpb24+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4Rm9ybVZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBzcHhGb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHNweFNlY3Rpb25zITogU3B4Rm9ybVNlY3Rpb25JW107XG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zITogYW55O1xuXG4gIHR5cGVBdXRvY29tcGxldGUgPSBTcHhJbnB1dFR5cGVFbnVtLmF1dG9jb21wbGV0ZTtcbiAgdHlwZUZsb2F0ID0gU3B4SW5wdXRUeXBlRW51bS5mbG9hdDtcbiAgdHlwZU51bWJlciA9IFNweElucHV0VHlwZUVudW0ubnVtYmVyO1xuICB0eXBlUmFkaW8gPSBTcHhJbnB1dFR5cGVFbnVtLnJhZGlvO1xuICB0eXBlVGV4dCA9IFNweElucHV0VHlwZUVudW0udGV4dDtcbiAgdHlwZU51bWVyaWNLZXlib2FyZCA9IFNweElucHV0VHlwZUVudW0udGV4dE51bWVyaWNLZXlib2FyZDtcbiAgdHlwZU92ZXJsYXkgPSBTcHhJbnB1dFR5cGVFbnVtLm92ZXJsYXk7XG4gIHR5cGVPdmVybGF5TnVtYmVyID0gU3B4SW5wdXRUeXBlRW51bS5vdmVybGF5TnVtYmVyO1xuXG4gIG9uQmx1cihmaWVsZDogU3B4Rm9ybUZpZWxkSSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGdldFJhd1ZhbGlkYXRvcnMoZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIHJldHVybiAoZm9ybUNvbnRyb2wgYXMgYW55KS5fcmF3VmFsaWRhdG9ycztcbiAgfVxuXG4gIGhhc1JlcXVpcmVkRmllbGQoYWJzdHJhY3RDb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuIHtcbiAgICBpZiAoYWJzdHJhY3RDb250cm9sLnZhbGlkYXRvcikge1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gYWJzdHJhY3RDb250cm9sLnZhbGlkYXRvcih7fSBhcyBBYnN0cmFjdENvbnRyb2wpO1xuICAgICAgaWYgKHZhbGlkYXRvciAmJiB2YWxpZGF0b3JbJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICgoYWJzdHJhY3RDb250cm9sIGFzIGFueSlbJ2NvbnRyb2xzJ10pIHtcbiAgICAgIGZvciAoY29uc3QgY29udHJvbE5hbWUgaW4gKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddKSB7XG4gICAgICAgIGlmICgoYWJzdHJhY3RDb250cm9sIGFzIGFueSlbJ2NvbnRyb2xzJ11bY29udHJvbE5hbWVdKSB7XG4gICAgICAgICAgaWYgKHRoaXMuaGFzUmVxdWlyZWRGaWVsZCgoYWJzdHJhY3RDb250cm9sIGFzIGFueSlbJ2NvbnRyb2xzJ11bY29udHJvbE5hbWVdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0aWFsRm9ybVZhbHVlKHNlY3Rpb25zOiBTcHhGb3JtU2VjdGlvbklbXSkge1xuICAgIGNvbnN0IGZvcm1PYmplY3Q6IGFueSA9IHt9O1xuICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgZm9ybU9iamVjdFtmaWVsZC5rZXldID0gW2ZpZWxkLmRlZmF1bHRWYWx1ZSA/IGZpZWxkLmRlZmF1bHRWYWx1ZSgpIDogbnVsbCwgZmllbGQudmFsaWRhdG9ycyA/IFsuLi5maWVsZC52YWxpZGF0b3JzKCldIDogW11dO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1PYmplY3Q7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlRm9ybShmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHNlY3Rpb25zOiBTcHhGb3JtU2VjdGlvbklbXSk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIGZvcm1CdWlsZGVyLmdyb3VwKHRoaXMuaW5pdGlhbEZvcm1WYWx1ZShzZWN0aW9ucykpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cbn1cbiJdfQ==
@@ -2,4 +2,5 @@ export * from './spx-value-interface';
2
2
  export * from './spx-input-box.component';
3
3
  export * from './spx-input-text.component';
4
4
  export * from './spx-input.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NweC1pbnB1dC1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWlucHV0LXRleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWlucHV0LmNvbXBvbmVudCc7XG4iXX0=
5
+ export * from './spx-input-type.enum';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWlucHV0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtaW5wdXQtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWlucHV0LXR5cGUuZW51bSc7XG4iXX0=
@@ -0,0 +1,98 @@
1
+ import { JsonPipe, NgFor, NgIf } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
4
+ import { fromEvent } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class SpxDropdownComponent {
7
+ constructor() {
8
+ this.focusPosition = 0;
9
+ this.spxSuggestions = [];
10
+ this.spxSelect = new EventEmitter();
11
+ }
12
+ ngOnInit() {
13
+ this.listenToKeyUp();
14
+ }
15
+ ngOnChanges(changes) {
16
+ this.focusPosition = 0;
17
+ }
18
+ ngOnDestroy() {
19
+ this.subscriptionKeyUp?.unsubscribe();
20
+ }
21
+ handleSuggestionClick(valuePair) {
22
+ console.log('handleSuggestionClick', valuePair);
23
+ this.select(valuePair);
24
+ }
25
+ listenToKeyUp() {
26
+ this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {
27
+ if (event.key === 'ArrowUp' && this.focusPosition > 0) {
28
+ this.focusPosition = this.focusPosition - 1;
29
+ event.preventDefault();
30
+ }
31
+ if (event.key === 'ArrowDown' && this.focusPosition < this.spxSuggestions.length - 1) {
32
+ this.focusPosition = this.focusPosition + 1;
33
+ event.preventDefault();
34
+ }
35
+ if (event.key === 'Enter' && this.spxSuggestions.length > 0) {
36
+ this.select(this.spxSuggestions.at(this.focusPosition));
37
+ event.preventDefault();
38
+ }
39
+ });
40
+ }
41
+ select(valuePair) {
42
+ this.focusPosition = 0;
43
+ this.spxSelect.emit(valuePair);
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxDropdownComponent, isStandalone: true, selector: "spx-dropdown", inputs: { spxSuggestions: "spxSuggestions" }, outputs: { spxSelect: "spxSelect" }, usesOnChanges: true, ngImport: i0, template: `<div class="relative text-black">
47
+ {{ this.spxSuggestions | json }}
48
+ <div
49
+ class="absolute bg-gray-100 left-0 right-0 z-20">
50
+ <button
51
+ *ngFor="let valuePair of this.spxSuggestions; let i = index"
52
+ class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
53
+ [class.bg-gray-100]="i === this.focusPosition"
54
+ [class.bg-white]="i !== this.focusPosition"
55
+ (click)="this.handleSuggestionClick(valuePair)"
56
+ [attr.tabindex]="-1"
57
+ [type]="'button'">
58
+ <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
59
+ <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1"]>Select</spx-button>
60
+ </button>
61
+ </div>
62
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "pipe", type: JsonPipe, name: "json" }] }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxDropdownComponent, decorators: [{
65
+ type: Component,
66
+ args: [{
67
+ selector: 'spx-dropdown',
68
+ standalone: true,
69
+ imports: [
70
+ NgIf,
71
+ NgFor,
72
+ SpxButtonComponent,
73
+ JsonPipe,
74
+ ],
75
+ template: `<div class="relative text-black">
76
+ {{ this.spxSuggestions | json }}
77
+ <div
78
+ class="absolute bg-gray-100 left-0 right-0 z-20">
79
+ <button
80
+ *ngFor="let valuePair of this.spxSuggestions; let i = index"
81
+ class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
82
+ [class.bg-gray-100]="i === this.focusPosition"
83
+ [class.bg-white]="i !== this.focusPosition"
84
+ (click)="this.handleSuggestionClick(valuePair)"
85
+ [attr.tabindex]="-1"
86
+ [type]="'button'">
87
+ <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
88
+ <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1"]>Select</spx-button>
89
+ </button>
90
+ </div>
91
+ </div>`,
92
+ }]
93
+ }], propDecorators: { spxSuggestions: [{
94
+ type: Input
95
+ }], spxSelect: [{
96
+ type: Output
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTNJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQTZCL0MsTUFBTSxPQUFPLG9CQUFvQjtJQTNCakM7UUE0Qlksa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBOEMsRUFBRSxDQUFDO1FBQzlELGNBQVMsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7S0F5QzlGO0lBdENDLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBa0Q7UUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3RFLElBQUssS0FBdUIsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsSUFBSyxLQUF1QixDQUFDLEdBQUcsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDNUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLENBQUM7WUFDRCxJQUFLLEtBQXVCLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFFLENBQUMsQ0FBQztnQkFDekQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsU0FBa0Q7UUFDL0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0EzQ1Usb0JBQW9CO2tHQUFwQixvQkFBb0IsZ0xBbEJyQjs7Ozs7Ozs7Ozs7Ozs7OztPQWdCTCw0REFwQkgsS0FBSyxtSEFDTCxrQkFBa0IsZ09BQ2xCLFFBQVE7OzJGQW9CQyxvQkFBb0I7a0JBM0JoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxrQkFBa0I7d0JBQ2xCLFFBQVE7cUJBQ1Q7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JMO2lCQUNOOzhCQUdVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpzb25QaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1kcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBKc29uUGlwZSxcbiAgXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdGV4dC1ibGFja1wiPlxuICAgIHt7IHRoaXMuc3B4U3VnZ2VzdGlvbnMgfCBqc29uIH19XG4gIDxkaXZcbiAgICBjbGFzcz1cImFic29sdXRlIGJnLWdyYXktMTAwIGxlZnQtMCByaWdodC0wIHotMjBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlUGFpciBvZiB0aGlzLnNweFN1Z2dlc3Rpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LWJsYWNrIGJsb2NrIHctZnVsbCBwLTIgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdyBob3ZlcjpiZy1ncmF5LTIwMCBmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LWxlZnRcIlxuICAgICAgICBbY2xhc3MuYmctZ3JheS0xMDBdPVwiaSA9PT0gdGhpcy5mb2N1c1Bvc2l0aW9uXCJcbiAgICAgICAgW2NsYXNzLmJnLXdoaXRlXT1cImkgIT09IHRoaXMuZm9jdXNQb3NpdGlvblwiXG4gICAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZVBhaXIpXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICBbdHlwZV09XCInYnV0dG9uJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIHAtMSBmb250LWJvbGQgdGV4dC1sZ1wiPnt7dmFsdWVQYWlyPy5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICA8c3B4LWJ1dHRvbiAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyKVwiIFtzcHhUeXBlXT1cIididXR0b24nXCIgW3NweFRhYkluZGV4XT1cIi0xXCJdPlNlbGVjdDwvc3B4LWJ1dHRvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5gLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgZm9jdXNQb3NpdGlvbiA9IDA7XG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz5bXSA9IFtdO1xuICBAT3V0cHV0KCkgc3B4U2VsZWN0OiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4oKTtcbiAgc3Vic2NyaXB0aW9uS2V5VXA/OiBTdWJzY3JpcHRpb247XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub0tleVVwKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c1Bvc2l0aW9uID0gMDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uS2V5VXA/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4pIHtcbiAgICBjb25zb2xlLmxvZygnaGFuZGxlU3VnZ2VzdGlvbkNsaWNrJywgdmFsdWVQYWlyKTtcbiAgICB0aGlzLnNlbGVjdCh2YWx1ZVBhaXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0tleVVwKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uS2V5VXAgPSBmcm9tRXZlbnQod2luZG93LCAna2V5dXAnKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJ0Fycm93VXAnICYmIHRoaXMuZm9jdXNQb3NpdGlvbiA+IDApIHtcbiAgICAgICAgdGhpcy5mb2N1c1Bvc2l0aW9uID0gdGhpcy5mb2N1c1Bvc2l0aW9uIC0gMTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICAgIGlmICgoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dEb3duJyAmJiB0aGlzLmZvY3VzUG9zaXRpb24gPCB0aGlzLnNweFN1Z2dlc3Rpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgdGhpcy5mb2N1c1Bvc2l0aW9uID0gdGhpcy5mb2N1c1Bvc2l0aW9uICsgMTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICAgIGlmICgoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnRW50ZXInICYmIHRoaXMuc3B4U3VnZ2VzdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNlbGVjdCh0aGlzLnNweFN1Z2dlc3Rpb25zLmF0KHRoaXMuZm9jdXNQb3NpdGlvbikhKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0KHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c1Bvc2l0aW9uID0gMDtcbiAgICB0aGlzLnNweFNlbGVjdC5lbWl0KHZhbHVlUGFpcik7XG4gIH1cbn1cbiJdfQ==