@softpak/components 0.0.0-beta.22 → 0.0.0-beta.221

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 (91) hide show
  1. package/esm2022/spx-button/spx-button.component.mjs +18 -5
  2. package/esm2022/spx-change-details/public-api.mjs +2 -0
  3. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  4. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  5. package/esm2022/spx-change-details/spx-change-details.component.mjs +199 -0
  6. package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +1 -1
  7. package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +2 -2
  8. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +112 -19
  9. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +14 -7
  10. package/esm2022/spx-form-section/spx-form-section.component.mjs +11 -11
  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-autocomplete-search.component.mjs +119 -0
  14. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  15. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  16. package/esm2022/spx-form-view/spx-form-view.component.mjs +268 -0
  17. package/esm2022/spx-inputs/spx-dropdown.component.mjs +94 -0
  18. package/esm2022/spx-inputs/spx-input-box.component.mjs +70 -46
  19. package/esm2022/spx-inputs/spx-input-date.component.mjs +1 -1
  20. package/esm2022/spx-inputs/spx-input-float.component.mjs +10 -5
  21. package/esm2022/spx-inputs/spx-input-number.component.mjs +10 -5
  22. package/esm2022/spx-inputs/spx-input-radio.component.mjs +93 -27
  23. package/esm2022/spx-inputs/spx-input-text.component.mjs +25 -32
  24. package/esm2022/spx-inputs/spx-input-type.enum.mjs +4 -1
  25. package/esm2022/spx-inputs/spx-input.component.mjs +48 -13
  26. package/esm2022/spx-navigation/spx-home-tile.component.mjs +31 -12
  27. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +14 -5
  28. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +1 -1
  29. package/esm2022/spx-navigation/spx-navigation.component.mjs +14 -5
  30. package/esm2022/spx-number-check/spx-number-check.component.mjs +87 -20
  31. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +28 -10
  32. package/esm2022/spx-update/src/spx-update-info.component.mjs +1 -1
  33. package/esm2022/spx-validation/public-api.mjs +1 -2
  34. package/esm2022/spx-validation/spx-validate-control.component.mjs +8 -3
  35. package/fesm2022/softpak-components-spx-button.mjs +17 -4
  36. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-change-details.mjs +206 -0
  38. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -0
  39. package/fesm2022/softpak-components-spx-channel-selection.mjs +110 -21
  40. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  41. package/fesm2022/softpak-components-spx-check-digit.mjs +13 -6
  42. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  43. package/fesm2022/softpak-components-spx-form-section.mjs +10 -10
  44. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  45. package/fesm2022/softpak-components-spx-form-view.mjs +385 -0
  46. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -0
  47. package/fesm2022/softpak-components-spx-inputs.mjs +337 -118
  48. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  49. package/fesm2022/softpak-components-spx-navigation.mjs +54 -17
  50. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  51. package/fesm2022/softpak-components-spx-number-check.mjs +86 -19
  52. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  53. package/fesm2022/softpak-components-spx-suggestion.mjs +27 -9
  54. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  55. package/fesm2022/softpak-components-spx-update.mjs +1 -1
  56. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  57. package/fesm2022/softpak-components-spx-validation.mjs +8 -28
  58. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  59. package/package.json +23 -10
  60. package/spx-button/spx-button.component.d.ts +4 -2
  61. package/spx-change-details/index.d.ts +5 -0
  62. package/spx-change-details/public-api.d.ts +1 -0
  63. package/spx-change-details/spx-change-details-value.interface.d.ts +7 -0
  64. package/spx-change-details/spx-change-details.component.d.ts +63 -0
  65. package/spx-channel-selection/src/spx-welcome.component.d.ts +37 -8
  66. package/spx-check-digit/spx-check-digit.component.d.ts +3 -1
  67. package/spx-form-view/index.d.ts +5 -0
  68. package/spx-form-view/public-api.d.ts +3 -0
  69. package/spx-form-view/spx-autocomplete-search.component.d.ts +43 -0
  70. package/spx-form-view/spx-form-field.interface.d.ts +18 -0
  71. package/spx-form-view/spx-form-section.interface.d.ts +9 -0
  72. package/spx-form-view/spx-form-view.component.d.ts +48 -0
  73. package/spx-inputs/spx-dropdown.component.d.ts +18 -0
  74. package/spx-inputs/spx-input-box.component.d.ts +14 -7
  75. package/spx-inputs/spx-input-float.component.d.ts +3 -2
  76. package/spx-inputs/spx-input-number.component.d.ts +3 -2
  77. package/spx-inputs/spx-input-radio.component.d.ts +13 -5
  78. package/spx-inputs/spx-input-text.component.d.ts +3 -2
  79. package/spx-inputs/spx-input-type.enum.d.ts +4 -1
  80. package/spx-inputs/spx-input.component.d.ts +11 -3
  81. package/spx-navigation/spx-home-tile.component.d.ts +5 -1
  82. package/spx-navigation/spx-home-tiles.component.d.ts +2 -1
  83. package/spx-navigation/spx-navigation-item.interface.d.ts +1 -0
  84. package/spx-navigation/spx-navigation.component.d.ts +6 -2
  85. package/spx-number-check/spx-number-check.component.d.ts +15 -3
  86. package/spx-suggestion/spx-suggestion.component.d.ts +3 -1
  87. package/spx-validation/public-api.d.ts +0 -1
  88. package/spx-validation/spx-validate-control.component.d.ts +1 -1
  89. package/tailwind.css +1 -1
  90. package/esm2022/spx-validation/spx-validation.module.mjs +0 -28
  91. package/spx-validation/spx-validation.module.d.ts +0 -9
@@ -1,5 +1,5 @@
1
1
  import { NgClass } from '@angular/common';
2
- import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
3
3
  import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
4
4
  import * as i0 from "@angular/core";
5
5
  export class SpxButtonComponent {
@@ -25,10 +25,15 @@ export class SpxButtonComponent {
25
25
  get severityInfo() { return this.spxSeverity === SpxSeverityEnum.info; }
26
26
  get severitySuccess() { return this.spxSeverity === SpxSeverityEnum.success; }
27
27
  get severityWarning() { return this.spxSeverity === SpxSeverityEnum.warning; }
28
+ spxSetFocus() {
29
+ console.log(this.buttonRef);
30
+ this.buttonRef?.nativeElement?.focus();
31
+ }
28
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxButtonComponent, isStandalone: true, selector: "spx-button", inputs: { spxDisabled: "spxDisabled", spxClass: "spxClass", spxClassObject: "spxClassObject", spxForm: "spxForm", spxFullHeight: "spxFullHeight", spxFullWidth: "spxFullWidth", spxSeverity: "spxSeverity", spxSize: "spxSize", spxTabIndex: "spxTabIndex", spxType: "spxType" }, outputs: { spxClick: "spxClick" }, host: { properties: { "class.block": "this.hostClassBlock", "class.h-full": "this.hostClassHFull", "class.w-full": "this.hostClassWFull" } }, ngImport: i0, template: `
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxButtonComponent, isStandalone: true, selector: "spx-button", inputs: { spxDisabled: "spxDisabled", spxClass: "spxClass", spxClassObject: "spxClassObject", spxForm: "spxForm", spxFullHeight: "spxFullHeight", spxFullWidth: "spxFullWidth", spxSeverity: "spxSeverity", spxSize: "spxSize", spxTabIndex: "spxTabIndex", spxType: "spxType" }, outputs: { spxClick: "spxClick" }, host: { properties: { "class.block": "this.hostClassBlock", "class.h-full": "this.hostClassHFull", "class.w-full": "this.hostClassWFull" } }, viewQueries: [{ propertyName: "buttonRef", first: true, predicate: ["buttonRef"], descendants: true, static: true }], ngImport: i0, template: `
30
34
  <button
31
- class="border border-transparent font-bold px-4 py-2 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2"
35
+ #buttonRef
36
+ class="border border-transparent font-bold px-4 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2"
32
37
  [class.h-full]="this.spxFullHeight"
33
38
  [class.w-full]="this.spxFullWidth"
34
39
  [class.bg-blue-600]="!this.spxSeverity || this.severityInfo"
@@ -43,6 +48,8 @@ export class SpxButtonComponent {
43
48
  [class.bg-amber-600]="this.severityWarning"
44
49
  [class.focus:ring-amber-500]="this.severityWarning"
45
50
  [class.hover:bg-amber-800]="this.severityWarning"
51
+ [class.py-2]="!this.spxSize || this.spxSize === 'lg'"
52
+ [class.py-4]="!this.spxSize || this.spxSize === 'xl'"
46
53
  [class.text-xl]="this.spxSize === 'xl'"
47
54
  [class.text-lg]="this.spxSize === 'lg'"
48
55
  [class.cursor-pointer]="!this.spxDisabled"
@@ -71,7 +78,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
71
78
  ],
72
79
  template: `
73
80
  <button
74
- class="border border-transparent font-bold px-4 py-2 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2"
81
+ #buttonRef
82
+ class="border border-transparent font-bold px-4 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2"
75
83
  [class.h-full]="this.spxFullHeight"
76
84
  [class.w-full]="this.spxFullWidth"
77
85
  [class.bg-blue-600]="!this.spxSeverity || this.severityInfo"
@@ -86,6 +94,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
86
94
  [class.bg-amber-600]="this.severityWarning"
87
95
  [class.focus:ring-amber-500]="this.severityWarning"
88
96
  [class.hover:bg-amber-800]="this.severityWarning"
97
+ [class.py-2]="!this.spxSize || this.spxSize === 'lg'"
98
+ [class.py-4]="!this.spxSize || this.spxSize === 'xl'"
89
99
  [class.text-xl]="this.spxSize === 'xl'"
90
100
  [class.text-lg]="this.spxSize === 'lg'"
91
101
  [class.cursor-pointer]="!this.spxDisabled"
@@ -135,5 +145,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
135
145
  type: Input
136
146
  }], spxClick: [{
137
147
  type: Output
148
+ }], buttonRef: [{
149
+ type: ViewChild,
150
+ args: ['buttonRef', { static: true }]
138
151
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbi9zcHgtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQTJDbEUsTUFBTSxPQUFPLGtCQUFrQjtJQXpDL0I7UUE2Q1csZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFNcEIsZ0JBQVcsR0FBb0IsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNwRCxZQUFPLEdBQWdCLElBQUksQ0FBQztRQUU1QixZQUFPLEdBQXdCLFFBQVEsQ0FBQztRQUN2QyxhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFPbEUsaUJBQVksR0FBRyxDQUFDLEVBQWUsRUFBRSxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFFLEVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDdkQsQ0FBQyxDQUFDO1FBQ0YsZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQyxDQUFBO0tBQ0Y7SUE1QkMsSUFBZ0MsY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBaUMsY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDaEYsSUFBaUMsY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFhL0UsSUFBSSxhQUFhLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFFLElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxJQUFJLGVBQWUsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxlQUFlLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDOzhHQW5CbkUsa0JBQWtCO2tHQUFsQixrQkFBa0IseWdCQW5DbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxREFpQ3lDLDREQW5DakQsT0FBTzs7MkZBcUNFLGtCQUFrQjtrQkF6QzlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsT0FBTztxQkFDUjtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxREFpQ3lDO2lCQUNwRDs4QkFFaUMsY0FBYztzQkFBN0MsV0FBVzt1QkFBQyxhQUFhO2dCQUNPLGNBQWM7c0JBQTlDLFdBQVc7dUJBQUMsY0FBYztnQkFDTSxjQUFjO3NCQUE5QyxXQUFXO3VCQUFDLGNBQWM7Z0JBQ2xCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IGZvbnQtYm9sZCBweC00IHB5LTIgcmVsYXRpdmUgcm91bmRlZCB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMlwiXG4gICAgW2NsYXNzLmgtZnVsbF09XCJ0aGlzLnNweEZ1bGxIZWlnaHRcIlxuICAgIFtjbGFzcy53LWZ1bGxdPVwidGhpcy5zcHhGdWxsV2lkdGhcIlxuICAgIFtjbGFzcy5iZy1ibHVlLTYwMF09XCIhdGhpcy5zcHhTZXZlcml0eSB8fCB0aGlzLnNldmVyaXR5SW5mb1wiXG4gICAgW2NsYXNzLmZvY3VzOnJpbmctYmx1ZS01MDBdPVwiIXRoaXMuc3B4U2V2ZXJpdHkgfHwgdGhpcy5zZXZlcml0eUluZm9cIlxuICAgIFtjbGFzcy5ob3ZlcjpiZy1ibHVlLTgwMF09XCIhdGhpcy5zcHhTZXZlcml0eSB8fCB0aGlzLnNldmVyaXR5SW5mb1wiXG4gICAgW2NsYXNzLmJnLXJlZC02MDBdPVwidGhpcy5zZXZlcml0eUVycm9yXCJcbiAgICBbY2xhc3MuZm9jdXM6cmluZy1yZWQtNTAwXT1cInRoaXMuc2V2ZXJpdHlFcnJvclwiXG4gICAgW2NsYXNzLmhvdmVyOmJnLXJlZC04MDBdPVwidGhpcy5zZXZlcml0eUVycm9yXCJcbiAgICBbY2xhc3MuYmctbGltZS02MDBdPVwidGhpcy5zZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy5mb2N1czpyaW5nLWxpbWUtNTAwXT1cInRoaXMuc2V2ZXJpdHlTdWNjZXNzXCJcbiAgICBbY2xhc3MuaG92ZXI6YmctbGltZS04MDBdPVwidGhpcy5zZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy5iZy1hbWJlci02MDBdPVwidGhpcy5zZXZlcml0eVdhcm5pbmdcIlxuICAgIFtjbGFzcy5mb2N1czpyaW5nLWFtYmVyLTUwMF09XCJ0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgW2NsYXNzLmhvdmVyOmJnLWFtYmVyLTgwMF09XCJ0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgW2NsYXNzLnRleHQteGxdPVwidGhpcy5zcHhTaXplID09PSAneGwnXCJcbiAgICBbY2xhc3MudGV4dC1sZ109XCJ0aGlzLnNweFNpemUgPT09ICdsZydcIlxuICAgIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09XCIhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmN1cnNvci1ub3QtYWxsb3dlZF09XCJ0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3Mub3BhY2l0eS01MF09XCJ0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3MuZm9jdXM6cmluZy0wXT1cInRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5ob3ZlcjpiZy1yZWQtNjAwXT1cInRoaXMuc3B4RGlzYWJsZWQgJiYgdGhpcy5zZXZlcml0eUVycm9yXCJcbiAgICBbY2xhc3MuaG92ZXI6YmctYmx1ZS02MDBdPVwidGhpcy5zcHhEaXNhYmxlZCAmJiB0aGlzLnNldmVyaXR5SW5mb1wiXG4gICAgW2NsYXNzLmhvdmVyOmJnLWxpbWUtNjAwXT1cInRoaXMuc3B4RGlzYWJsZWQgJiYgdGhpcy5zZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy5ob3ZlcjpiZy1hbWJlci02MDBdPVwidGhpcy5zcHhEaXNhYmxlZCAmJiB0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgW25nQ2xhc3NdPVwidGhpcy5zcHhDbGFzcyA/IHRoaXMuc3B4Q2xhc3MgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLmRpc2FibGVkXT1cInRoaXMuc3B4RGlzYWJsZWQgPyB0aGlzLnNweERpc2FibGVkIDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5mb3JtXT1cInRoaXMuc3B4Rm9ybSA/IHRoaXMuc3B4Rm9ybSA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGhpcy5zcHhUYWJJbmRleCA/IHRoaXMuc3B4VGFiSW5kZXggOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLnR5cGVdPVwidGhpcy5zcHhUeXBlID8gdGhpcy5zcHhUeXBlIDogdW5kZWZpbmVkXCJcbiAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVDbGljaygpXCJcbiAgICBwYXJ0PVwiYnV0dG9uXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvYnV0dG9uPmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEJ1dHRvbkNvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYmxvY2snKSBnZXQgaG9zdENsYXNzQmxvY2soKSB7IHJldHVybiB0aGlzLnNweEZ1bGxXaWR0aDsgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmgtZnVsbCcpIGdldCBob3N0Q2xhc3NIRnVsbCgpIHsgcmV0dXJuIHRoaXMuc3B4RnVsbEhlaWdodDsgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnctZnVsbCcpIGdldCBob3N0Q2xhc3NXRnVsbCgpIHsgcmV0dXJuIHRoaXMuc3B4RnVsbFdpZHRoOyB9XG4gIEBJbnB1dCgpIHNweERpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweENsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhDbGFzc09iamVjdD86IG9iamVjdDtcbiAgQElucHV0KCkgc3B4Rm9ybT86IHN0cmluZztcbiAgQElucHV0KCkgc3B4RnVsbEhlaWdodD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNweEZ1bGxXaWR0aD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNweFNldmVyaXR5OiBTcHhTZXZlcml0eUVudW0gPSBTcHhTZXZlcml0eUVudW0uaW5mbztcbiAgQElucHV0KCkgc3B4U2l6ZTogJ2xnJyB8ICd4bCcgPSAnbGcnO1xuICBASW5wdXQoKSBzcHhUYWJJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgc3B4VHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyA9ICdzdWJtaXQnO1xuICBAT3V0cHV0KCkgc3B4Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBnZXQgc2V2ZXJpdHlFcnJvcigpIHsgcmV0dXJuIHRoaXMuc3B4U2V2ZXJpdHkgPT09IFNweFNldmVyaXR5RW51bS5lcnJvcjsgfVxuICBnZXQgc2V2ZXJpdHlJbmZvKCkgeyByZXR1cm4gdGhpcy5zcHhTZXZlcml0eSA9PT0gU3B4U2V2ZXJpdHlFbnVtLmluZm87IH1cbiAgZ2V0IHNldmVyaXR5U3VjY2VzcygpIHsgcmV0dXJuIHRoaXMuc3B4U2V2ZXJpdHkgPT09IFNweFNldmVyaXR5RW51bS5zdWNjZXNzOyB9XG4gIGdldCBzZXZlcml0eVdhcm5pbmcoKSB7IHJldHVybiB0aGlzLnNweFNldmVyaXR5ID09PSBTcHhTZXZlcml0eUVudW0ud2FybmluZzsgfVxuXG4gIGhhc1NoYWRvd0RvbSA9IChlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gISFlbC5zaGFkb3dSb290ICYmICEhKGVsIGFzIGFueSkuYXR0YWNoU2hhZG93O1xuICB9O1xuICBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuc3B4RGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc3B4Q2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbi9zcHgtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUE4Q2xFLE1BQU0sT0FBTyxrQkFBa0I7SUE1Qy9CO1FBZ0RXLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBTXBCLGdCQUFXLEdBQXFCLGVBQWUsQ0FBQyxJQUFJLENBQUM7UUFDckQsWUFBTyxHQUFnQixJQUFJLENBQUM7UUFFNUIsWUFBTyxHQUF3QixRQUFRLENBQUM7UUFDdkMsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBUWxFLGlCQUFZLEdBQUcsQ0FBQyxFQUFlLEVBQUUsRUFBRTtZQUNqQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBRSxFQUFVLENBQUMsWUFBWSxDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQUNGLGdCQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQTtLQU1GO0lBbENDLElBQWdDLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlFLElBQWlDLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLElBQWlDLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBYy9FLElBQUksYUFBYSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxRSxJQUFJLFlBQVksS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxlQUFlLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlFLElBQUksZUFBZSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQVc5RSxXQUFXO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQzs4R0FsQ1Usa0JBQWtCO2tHQUFsQixrQkFBa0IsK25CQXRDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxREFvQ3lDLDREQXRDakQsT0FBTzs7MkZBd0NFLGtCQUFrQjtrQkE1QzlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsT0FBTztxQkFDUjtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztxREFvQ3lDO2lCQUNwRDs4QkFFaUMsY0FBYztzQkFBN0MsV0FBVzt1QkFBQyxhQUFhO2dCQUNPLGNBQWM7c0JBQTlDLFdBQVc7dUJBQUMsY0FBYztnQkFDTSxjQUFjO3NCQUE5QyxXQUFXO3VCQUFDLGNBQWM7Z0JBQ2xCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDbUMsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B4U2V2ZXJpdHlFbnVtIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgPGJ1dHRvblxuICAgICNidXR0b25SZWZcbiAgICBjbGFzcz1cImJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgZm9udC1ib2xkIHB4LTQgcmVsYXRpdmUgcm91bmRlZCB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMlwiXG4gICAgW2NsYXNzLmgtZnVsbF09XCJ0aGlzLnNweEZ1bGxIZWlnaHRcIlxuICAgIFtjbGFzcy53LWZ1bGxdPVwidGhpcy5zcHhGdWxsV2lkdGhcIlxuICAgIFtjbGFzcy5iZy1ibHVlLTYwMF09XCIhdGhpcy5zcHhTZXZlcml0eSB8fCB0aGlzLnNldmVyaXR5SW5mb1wiXG4gICAgW2NsYXNzLmZvY3VzOnJpbmctYmx1ZS01MDBdPVwiIXRoaXMuc3B4U2V2ZXJpdHkgfHwgdGhpcy5zZXZlcml0eUluZm9cIlxuICAgIFtjbGFzcy5ob3ZlcjpiZy1ibHVlLTgwMF09XCIhdGhpcy5zcHhTZXZlcml0eSB8fCB0aGlzLnNldmVyaXR5SW5mb1wiXG4gICAgW2NsYXNzLmJnLXJlZC02MDBdPVwidGhpcy5zZXZlcml0eUVycm9yXCJcbiAgICBbY2xhc3MuZm9jdXM6cmluZy1yZWQtNTAwXT1cInRoaXMuc2V2ZXJpdHlFcnJvclwiXG4gICAgW2NsYXNzLmhvdmVyOmJnLXJlZC04MDBdPVwidGhpcy5zZXZlcml0eUVycm9yXCJcbiAgICBbY2xhc3MuYmctbGltZS02MDBdPVwidGhpcy5zZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy5mb2N1czpyaW5nLWxpbWUtNTAwXT1cInRoaXMuc2V2ZXJpdHlTdWNjZXNzXCJcbiAgICBbY2xhc3MuaG92ZXI6YmctbGltZS04MDBdPVwidGhpcy5zZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy5iZy1hbWJlci02MDBdPVwidGhpcy5zZXZlcml0eVdhcm5pbmdcIlxuICAgIFtjbGFzcy5mb2N1czpyaW5nLWFtYmVyLTUwMF09XCJ0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgW2NsYXNzLmhvdmVyOmJnLWFtYmVyLTgwMF09XCJ0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgW2NsYXNzLnB5LTJdPVwiIXRoaXMuc3B4U2l6ZSB8fCB0aGlzLnNweFNpemUgPT09ICdsZydcIlxuICAgIFtjbGFzcy5weS00XT1cIiF0aGlzLnNweFNpemUgfHwgdGhpcy5zcHhTaXplID09PSAneGwnXCJcbiAgICBbY2xhc3MudGV4dC14bF09XCJ0aGlzLnNweFNpemUgPT09ICd4bCdcIlxuICAgIFtjbGFzcy50ZXh0LWxnXT1cInRoaXMuc3B4U2l6ZSA9PT0gJ2xnJ1wiXG4gICAgW2NsYXNzLmN1cnNvci1wb2ludGVyXT1cIiF0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3MuY3Vyc29yLW5vdC1hbGxvd2VkXT1cInRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5vcGFjaXR5LTUwXT1cInRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5mb2N1czpyaW5nLTBdPVwidGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmhvdmVyOmJnLXJlZC02MDBdPVwidGhpcy5zcHhEaXNhYmxlZCAmJiB0aGlzLnNldmVyaXR5RXJyb3JcIlxuICAgIFtjbGFzcy5ob3ZlcjpiZy1ibHVlLTYwMF09XCJ0aGlzLnNweERpc2FibGVkICYmIHRoaXMuc2V2ZXJpdHlJbmZvXCJcbiAgICBbY2xhc3MuaG92ZXI6YmctbGltZS02MDBdPVwidGhpcy5zcHhEaXNhYmxlZCAmJiB0aGlzLnNldmVyaXR5U3VjY2Vzc1wiXG4gICAgW2NsYXNzLmhvdmVyOmJnLWFtYmVyLTYwMF09XCJ0aGlzLnNweERpc2FibGVkICYmIHRoaXMuc2V2ZXJpdHlXYXJuaW5nXCJcbiAgICBbbmdDbGFzc109XCJ0aGlzLnNweENsYXNzID8gdGhpcy5zcHhDbGFzcyA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhEaXNhYmxlZCA/IHRoaXMuc3B4RGlzYWJsZWQgOiB1bmRlZmluZWRcIlxuICAgIFthdHRyLmZvcm1dPVwidGhpcy5zcHhGb3JtID8gdGhpcy5zcHhGb3JtIDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0aGlzLnNweFRhYkluZGV4ID8gdGhpcy5zcHhUYWJJbmRleCA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIudHlwZV09XCJ0aGlzLnNweFR5cGUgPyB0aGlzLnNweFR5cGUgOiB1bmRlZmluZWRcIlxuICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZUNsaWNrKClcIlxuICAgIHBhcnQ9XCJidXR0b25cIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9idXR0b24+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4QnV0dG9uQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ibG9jaycpIGdldCBob3N0Q2xhc3NCbG9jaygpIHsgcmV0dXJuIHRoaXMuc3B4RnVsbFdpZHRoOyB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaC1mdWxsJykgZ2V0IGhvc3RDbGFzc0hGdWxsKCkgeyByZXR1cm4gdGhpcy5zcHhGdWxsSGVpZ2h0OyB9XG4gIEBIb3N0QmluZGluZygnY2xhc3Mudy1mdWxsJykgZ2V0IGhvc3RDbGFzc1dGdWxsKCkgeyByZXR1cm4gdGhpcy5zcHhGdWxsV2lkdGg7IH1cbiAgQElucHV0KCkgc3B4RGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4Q2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweENsYXNzT2JqZWN0Pzogb2JqZWN0O1xuICBASW5wdXQoKSBzcHhGb3JtPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhGdWxsSGVpZ2h0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3B4RnVsbFdpZHRoPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3B4U2V2ZXJpdHk/OiBTcHhTZXZlcml0eUVudW0gPSBTcHhTZXZlcml0eUVudW0uaW5mbztcbiAgQElucHV0KCkgc3B4U2l6ZTogJ2xnJyB8ICd4bCcgPSAnbGcnO1xuICBASW5wdXQoKSBzcHhUYWJJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgc3B4VHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyA9ICdzdWJtaXQnO1xuICBAT3V0cHV0KCkgc3B4Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQFZpZXdDaGlsZCgnYnV0dG9uUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgYnV0dG9uUmVmPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBnZXQgc2V2ZXJpdHlFcnJvcigpIHsgcmV0dXJuIHRoaXMuc3B4U2V2ZXJpdHkgPT09IFNweFNldmVyaXR5RW51bS5lcnJvcjsgfVxuICBnZXQgc2V2ZXJpdHlJbmZvKCkgeyByZXR1cm4gdGhpcy5zcHhTZXZlcml0eSA9PT0gU3B4U2V2ZXJpdHlFbnVtLmluZm87IH1cbiAgZ2V0IHNldmVyaXR5U3VjY2VzcygpIHsgcmV0dXJuIHRoaXMuc3B4U2V2ZXJpdHkgPT09IFNweFNldmVyaXR5RW51bS5zdWNjZXNzOyB9XG4gIGdldCBzZXZlcml0eVdhcm5pbmcoKSB7IHJldHVybiB0aGlzLnNweFNldmVyaXR5ID09PSBTcHhTZXZlcml0eUVudW0ud2FybmluZzsgfVxuXG4gIGhhc1NoYWRvd0RvbSA9IChlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gISFlbC5zaGFkb3dSb290ICYmICEhKGVsIGFzIGFueSkuYXR0YWNoU2hhZG93O1xuICB9O1xuICBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICBpZiAoIXRoaXMuc3B4RGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc3B4Q2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHNweFNldEZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKHRoaXMuYnV0dG9uUmVmKTtcbiAgICB0aGlzLmJ1dHRvblJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './spx-change-details.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcHgtY2hhbmdlLWRldGFpbHMuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC1jaGFuZ2UtZGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc29mdHBhay1jb21wb25lbnRzLXNweC1jaGFuZ2UtZGV0YWlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNoYW5nZS1kZXRhaWxzLXZhbHVlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc3B4LWNoYW5nZS1kZXRhaWxzLXZhbHVlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3B4VmFsdWVQYWlyIH0gZnJvbSBcIkBzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNweENoYW5nZURldGFpbHNWYWx1ZUkge1xuICAgIGNhdGVnb3J5PzogU3B4VmFsdWVQYWlyPHN0cmluZz47XG4gICAgY29udGFpbmVyVHlwZTogU3B4VmFsdWVQYWlyPHN0cmluZz47XG4gICAgbGljZW5zZVBsYXRlOiBTcHhWYWx1ZVBhaXI8c3RyaW5nPjtcbiAgICB0b25zVGVzdGVkOiBTcHhWYWx1ZVBhaXI8c3RyaW5nPjtcbn1cbiJdfQ==
@@ -0,0 +1,199 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { spxValidatorRequired, SpxValidateControlComponent } from '@softpak/components/spx-validation';
4
+ import { CommonModule } from '@angular/common';
5
+ import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
6
+ import { SpxFormViewComponent } from '@softpak/components/spx-form-view';
7
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
8
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/forms";
11
+ export const sectionChangeDetails = 'changeDetails';
12
+ export const ctrlContainerNumber = 'containerNumber';
13
+ export const ctrlContainerPrefix = 'containerPrefix';
14
+ export const ctrlContainerSeqNr = 'containerSeqNr';
15
+ export const ctrlContainerType = 'containerType';
16
+ export const ctrlCustomer = 'customer';
17
+ export const ctrlTonsTested = 'tonsTested';
18
+ export const ctrlLicensePlate = 'licensePlate';
19
+ export const ctrlCategory = 'category';
20
+ export class SpxChangeDetailsComponent {
21
+ get ctrlCategory() { return this.formGroup.get(ctrlCategory); }
22
+ get ctrlCustomer() { return this.formGroup.get(ctrlCustomer); }
23
+ get ctrlContainerType() { return this.formGroup.get(ctrlContainerType); }
24
+ get ctrlLicensePlate() { return this.formGroup.get(ctrlLicensePlate); }
25
+ get ctrlTonsTested() { return this.formGroup.get(ctrlTonsTested); }
26
+ constructor(formBuilder) {
27
+ this.formBuilder = formBuilder;
28
+ this.showCategory = false;
29
+ this.suggestions = {};
30
+ this.spxBlurCategory = new EventEmitter();
31
+ this.spxBlurContainerType = new EventEmitter();
32
+ this.spxSearchCategory = new EventEmitter();
33
+ this.spxSearchContainerType = new EventEmitter();
34
+ this.spxSearchTonsTested = new EventEmitter();
35
+ this.submit = new EventEmitter();
36
+ this.inputTypeAutocomplete = SpxInputTypeEnum.autocomplete;
37
+ this.inputTypeRadio = SpxInputTypeEnum.radio;
38
+ this.inputTypeText = SpxInputTypeEnum.text;
39
+ this.severitySuccess = SpxSeverityEnum.success;
40
+ this.sections = [
41
+ {
42
+ key: sectionChangeDetails,
43
+ showTitle: () => false,
44
+ fields: [
45
+ {
46
+ key: ctrlContainerNumber,
47
+ type: () => SpxInputTypeEnum.text,
48
+ label: () => this.txtContainerNumber,
49
+ readonly: () => true,
50
+ validators: () => [spxValidatorRequired()],
51
+ },
52
+ {
53
+ key: ctrlContainerPrefix,
54
+ type: () => SpxInputTypeEnum.text,
55
+ label: () => this.txtContainerPrefix,
56
+ capitalize: () => true,
57
+ readonly: () => true,
58
+ validators: () => [spxValidatorRequired()],
59
+ },
60
+ {
61
+ key: ctrlContainerSeqNr,
62
+ type: () => SpxInputTypeEnum.hidden,
63
+ validators: () => [spxValidatorRequired()],
64
+ },
65
+ {
66
+ key: ctrlCustomer,
67
+ type: () => SpxInputTypeEnum.text,
68
+ capitalize: () => true,
69
+ readonly: () => true,
70
+ label: () => this.txtCustomer,
71
+ validators: () => [spxValidatorRequired()],
72
+ },
73
+ {
74
+ key: ctrlContainerType,
75
+ type: () => SpxInputTypeEnum.autocomplete,
76
+ label: () => this.txtContainerType,
77
+ capitalize: () => true,
78
+ validators: () => [spxValidatorRequired()],
79
+ },
80
+ {
81
+ key: ctrlTonsTested,
82
+ type: () => SpxInputTypeEnum.radio,
83
+ label: () => this.txtTonsTested,
84
+ show: () => this.suggestions?.[ctrlTonsTested] && this.suggestions?.[ctrlTonsTested].length && this.suggestions?.[ctrlTonsTested].length > 0,
85
+ validators: () => this.suggestions?.[ctrlTonsTested] && this.suggestions?.[ctrlTonsTested].length && this.suggestions?.[ctrlTonsTested].length > 0 ? [spxValidatorRequired()] : [],
86
+ },
87
+ {
88
+ key: ctrlLicensePlate,
89
+ type: () => SpxInputTypeEnum.text,
90
+ label: () => this.txtLicensePlate,
91
+ capitalize: () => true,
92
+ },
93
+ {
94
+ key: ctrlCategory,
95
+ type: () => SpxInputTypeEnum.autocomplete,
96
+ label: () => this.txtCategory,
97
+ capitalize: () => true,
98
+ show: () => this.showCategory,
99
+ validators: () => this.showCategory ? [spxValidatorRequired()] : [],
100
+ }
101
+ ]
102
+ }
103
+ ];
104
+ }
105
+ createForm() {
106
+ return SpxFormViewComponent.createForm(this.formBuilder, this.sections);
107
+ }
108
+ ngOnInit() {
109
+ this.listenToContainerType();
110
+ }
111
+ ngOnDestroy() {
112
+ if (this.subContainerType) {
113
+ this.subContainerType.unsubscribe();
114
+ }
115
+ }
116
+ getRawValidators(formControl) {
117
+ return formControl._rawValidators;
118
+ }
119
+ onBlur(data) {
120
+ if (data.field.key === ctrlCategory) {
121
+ this.spxBlurCategory.emit(data.valuePair);
122
+ }
123
+ if (data.field.key === ctrlContainerType) {
124
+ this.spxBlurContainerType.emit(data.valuePair);
125
+ }
126
+ }
127
+ onSearch(data) {
128
+ if (data.field.key === ctrlCategory) {
129
+ this.spxSearchCategory.emit(data.valuePair);
130
+ }
131
+ if (data.field.key === ctrlContainerType) {
132
+ this.spxSearchContainerType.emit(data.valuePair);
133
+ }
134
+ if (data.field.key === ctrlTonsTested) {
135
+ this.spxSearchTonsTested.emit(data.valuePair);
136
+ }
137
+ }
138
+ onSubmit() {
139
+ this.submit.emit({
140
+ category: this.ctrlCategory.value,
141
+ containerType: this.ctrlContainerType.value,
142
+ licensePlate: this.ctrlLicensePlate.value,
143
+ tonsTested: this.ctrlTonsTested.value,
144
+ });
145
+ }
146
+ listenToContainerType() {
147
+ this.subContainerType = this.ctrlContainerType.valueChanges.subscribe(valuePair => {
148
+ this.ctrlTonsTested.setValue({ value: null });
149
+ this.spxSearchTonsTested.emit(valuePair);
150
+ });
151
+ }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxChangeDetailsComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxChangeDetailsComponent, isStandalone: true, selector: "spx-change-details", inputs: { formGroup: "formGroup", showCategory: "showCategory", suggestions: "suggestions", txtCategory: "txtCategory", txtContainerNumber: "txtContainerNumber", txtContainerPrefix: "txtContainerPrefix", txtContainerType: "txtContainerType", txtCustomer: "txtCustomer", txtLicensePlate: "txtLicensePlate", txtTonsTested: "txtTonsTested" }, outputs: { spxBlurCategory: "spxBlurCategory", spxBlurContainerType: "spxBlurContainerType", spxSearchCategory: "spxSearchCategory", spxSearchContainerType: "spxSearchContainerType", spxSearchTonsTested: "spxSearchTonsTested", submit: "submit" }, ngImport: i0, template: "<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup\"\n [spxSections]=\"sections\"\n [spxSuggestions]=\"suggestions\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n</form>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "component", type: SpxFormViewComponent, selector: "spx-form-view", inputs: ["spxFormGroup", "spxSections", "spxSuggestions"], outputs: ["spxBlur", "spxClick", "spxSearch"] }] }); }
154
+ }
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxChangeDetailsComponent, decorators: [{
156
+ type: Component,
157
+ args: [{ selector: 'spx-change-details', standalone: true, imports: [
158
+ CommonModule,
159
+ FormsModule,
160
+ ReactiveFormsModule,
161
+ SpxButtonComponent,
162
+ SpxFormViewComponent,
163
+ SpxInputComponent,
164
+ SpxValidateControlComponent,
165
+ ], template: "<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup\"\n [spxSections]=\"sections\"\n [spxSuggestions]=\"suggestions\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n</form>" }]
166
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { formGroup: [{
167
+ type: Input
168
+ }], showCategory: [{
169
+ type: Input
170
+ }], suggestions: [{
171
+ type: Input
172
+ }], txtCategory: [{
173
+ type: Input
174
+ }], txtContainerNumber: [{
175
+ type: Input
176
+ }], txtContainerPrefix: [{
177
+ type: Input
178
+ }], txtContainerType: [{
179
+ type: Input
180
+ }], txtCustomer: [{
181
+ type: Input
182
+ }], txtLicensePlate: [{
183
+ type: Input
184
+ }], txtTonsTested: [{
185
+ type: Input
186
+ }], spxBlurCategory: [{
187
+ type: Output
188
+ }], spxBlurContainerType: [{
189
+ type: Output
190
+ }], spxSearchCategory: [{
191
+ type: Output
192
+ }], spxSearchContainerType: [{
193
+ type: Output
194
+ }], spxSearchTonsTested: [{
195
+ type: Output
196
+ }], submit: [{
197
+ type: Output
198
+ }] } });
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdDQUFnQyxDQUFDO0FBQ25HLE9BQU8sRUFBa0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUdsRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7QUFD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QWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzcHhWYWxpZGF0b3JSZXF1aXJlZCwgU3B4VmFsaWRhdGVDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0sIFNweFZhbHVlUGFpciB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhGb3JtRmllbGRJLCBTcHhGb3JtU2VjdGlvbkksIFNweEZvcm1WaWV3Q29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3JztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IFNweENoYW5nZURldGFpbHNWYWx1ZUkgfSBmcm9tICcuL3NweC1jaGFuZ2UtZGV0YWlscy12YWx1ZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3Qgc2VjdGlvbkNoYW5nZURldGFpbHMgPSAnY2hhbmdlRGV0YWlscyc7XG5leHBvcnQgY29uc3QgY3RybENvbnRhaW5lck51bWJlciA9ICdjb250YWluZXJOdW1iZXInO1xuZXhwb3J0IGNvbnN0IGN0cmxDb250YWluZXJQcmVmaXggPSAnY29udGFpbmVyUHJlZml4JztcbmV4cG9ydCBjb25zdCBjdHJsQ29udGFpbmVyU2VxTnIgPSAnY29udGFpbmVyU2VxTnInO1xuZXhwb3J0IGNvbnN0IGN0cmxDb250YWluZXJUeXBlID0gJ2NvbnRhaW5lclR5cGUnO1xuZXhwb3J0IGNvbnN0IGN0cmxDdXN0b21lciA9ICdjdXN0b21lcic7XG5leHBvcnQgY29uc3QgY3RybFRvbnNUZXN0ZWQgPSAndG9uc1Rlc3RlZCc7XG5leHBvcnQgY29uc3QgY3RybExpY2Vuc2VQbGF0ZSA9ICdsaWNlbnNlUGxhdGUnO1xuZXhwb3J0IGNvbnN0IGN0cmxDYXRlZ29yeSA9ICdjYXRlZ29yeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1jaGFuZ2UtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcHgtY2hhbmdlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxuICAgIFNweEZvcm1WaWV3Q29tcG9uZW50LFxuICAgIFNweElucHV0Q29tcG9uZW50LFxuICAgIFNweFZhbGlkYXRlQ29udHJvbENvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTcHhDaGFuZ2VEZXRhaWxzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzaG93Q2F0ZWdvcnkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3VnZ2VzdGlvbnM6IGFueSA9IHt9O1xuICBASW5wdXQoKSB0eHRDYXRlZ29yeSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q29udGFpbmVyTnVtYmVyITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDb250YWluZXJQcmVmaXghOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbnRhaW5lclR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dEN1c3RvbWVyITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRMaWNlbnNlUGxhdGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFRvbnNUZXN0ZWQhOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzcHhCbHVyQ2F0ZWdvcnk6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgc3B4Qmx1ckNvbnRhaW5lclR5cGU6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoQ2F0ZWdvcnk6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoQ29udGFpbmVyVHlwZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+KCk7XG4gIEBPdXRwdXQoKSBzcHhTZWFyY2hUb25zVGVzdGVkOiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4oKTtcbiAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPFNweENoYW5nZURldGFpbHNWYWx1ZUk+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhDaGFuZ2VEZXRhaWxzVmFsdWVJPigpO1xuXG4gIGlucHV0VHlwZUF1dG9jb21wbGV0ZSA9IFNweElucHV0VHlwZUVudW0uYXV0b2NvbXBsZXRlO1xuICBpbnB1dFR5cGVSYWRpbyA9IFNweElucHV0VHlwZUVudW0ucmFkaW87XG4gIGlucHV0VHlwZVRleHQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XG4gIHNldmVyaXR5U3VjY2VzcyA9IFNweFNldmVyaXR5RW51bS5zdWNjZXNzO1xuICBcbiAgc2VjdGlvbnM6IFNweEZvcm1TZWN0aW9uSVtdID0gW1xuICAgIHtcbiAgICAgIGtleTogc2VjdGlvbkNoYW5nZURldGFpbHMsXG4gICAgICBzaG93VGl0bGU6ICgpID0+IGZhbHNlLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxDb250YWluZXJOdW1iZXIsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dENvbnRhaW5lck51bWJlcixcbiAgICAgICAgICByZWFkb25seTogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICB2YWxpZGF0b3JzOiAoKSA9PiBbc3B4VmFsaWRhdG9yUmVxdWlyZWQoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxDb250YWluZXJQcmVmaXgsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dENvbnRhaW5lclByZWZpeCxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHJlYWRvbmx5OiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENvbnRhaW5lclNlcU5yLFxuICAgICAgICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW0uaGlkZGVuLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybEN1c3RvbWVyLFxuICAgICAgICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW0udGV4dCxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHJlYWRvbmx5OiAoKSA9PiB0cnVlLFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dEN1c3RvbWVyLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENvbnRhaW5lclR5cGUsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5hdXRvY29tcGxldGUsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q29udGFpbmVyVHlwZSxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybFRvbnNUZXN0ZWQsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5yYWRpbyxcbiAgICAgICAgICBsYWJlbDogKCkgPT4gdGhpcy50eHRUb25zVGVzdGVkLFxuICAgICAgICAgIHNob3c6ICgpID0+IHRoaXMuc3VnZ2VzdGlvbnM/LltjdHJsVG9uc1Rlc3RlZF0gJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggPiAwLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IHRoaXMuc3VnZ2VzdGlvbnM/LltjdHJsVG9uc1Rlc3RlZF0gJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggPiAwID8gW3NweFZhbGlkYXRvclJlcXVpcmVkKCldIDogW10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxMaWNlbnNlUGxhdGUsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dExpY2Vuc2VQbGF0ZSxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjdHJsQ2F0ZWdvcnksXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5hdXRvY29tcGxldGUsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q2F0ZWdvcnksXG4gICAgICAgICAgY2FwaXRhbGl6ZTogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICBzaG93OiAoKSA9PiB0aGlzLnNob3dDYXRlZ29yeSxcbiAgICAgICAgICB2YWxpZGF0b3JzOiAoKSA9PiB0aGlzLnNob3dDYXRlZ29yeSA/IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSA6IFtdLFxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuXG4gIGdldCBjdHJsQ2F0ZWdvcnkoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDYXRlZ29yeSkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDdXN0b21lcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybEN1c3RvbWVyKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybENvbnRhaW5lclR5cGUoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDb250YWluZXJUeXBlKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybExpY2Vuc2VQbGF0ZSgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybExpY2Vuc2VQbGF0ZSkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxUb25zVGVzdGVkKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjdHJsVG9uc1Rlc3RlZCkgYXMgRm9ybUNvbnRyb2w7IH1cblxuICBwcml2YXRlIHN1YkNvbnRhaW5lclR5cGU/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBjcmVhdGVGb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIFNweEZvcm1WaWV3Q29tcG9uZW50LmNyZWF0ZUZvcm0odGhpcy5mb3JtQnVpbGRlciwgdGhpcy5zZWN0aW9ucyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQ29udGFpbmVyVHlwZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3ViQ29udGFpbmVyVHlwZSkge1xuICAgICAgdGhpcy5zdWJDb250YWluZXJUeXBlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmF3VmFsaWRhdG9ycyhmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cblxuICBvbkJsdXIoZGF0YTogeyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9KSB7XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsQ2F0ZWdvcnkpIHtcbiAgICAgIHRoaXMuc3B4Qmx1ckNhdGVnb3J5LmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgICBpZiAoZGF0YS5maWVsZC5rZXkgPT09IGN0cmxDb250YWluZXJUeXBlKSB7XG4gICAgICB0aGlzLnNweEJsdXJDb250YWluZXJUeXBlLmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgb25TZWFyY2goZGF0YTogeyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9KSB7XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsQ2F0ZWdvcnkpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoQ2F0ZWdvcnkuZW1pdChkYXRhLnZhbHVlUGFpcik7XG4gICAgfVxuICAgIGlmIChkYXRhLmZpZWxkLmtleSA9PT0gY3RybENvbnRhaW5lclR5cGUpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoQ29udGFpbmVyVHlwZS5lbWl0KGRhdGEudmFsdWVQYWlyKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsVG9uc1Rlc3RlZCkge1xuICAgICAgdGhpcy5zcHhTZWFyY2hUb25zVGVzdGVkLmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0LmVtaXQoe1xuICAgICAgY2F0ZWdvcnk6IHRoaXMuY3RybENhdGVnb3J5LnZhbHVlLFxuICAgICAgY29udGFpbmVyVHlwZTogdGhpcy5jdHJsQ29udGFpbmVyVHlwZS52YWx1ZSxcbiAgICAgIGxpY2Vuc2VQbGF0ZTogdGhpcy5jdHJsTGljZW5zZVBsYXRlLnZhbHVlLFxuICAgICAgdG9uc1Rlc3RlZDogdGhpcy5jdHJsVG9uc1Rlc3RlZC52YWx1ZSxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0NvbnRhaW5lclR5cGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJDb250YWluZXJUeXBlID0gdGhpcy5jdHJsQ29udGFpbmVyVHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlUGFpciA9PiB7XG4gICAgICB0aGlzLmN0cmxUb25zVGVzdGVkLnNldFZhbHVlKHsgdmFsdWU6IG51bGwgfSk7XG4gICAgICB0aGlzLnNweFNlYXJjaFRvbnNUZXN0ZWQuZW1pdCh2YWx1ZVBhaXIpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIGNsYXNzPVwibWF4LXctbGcgbXgtYXV0byBmbGV4IGZsZXgtY29sIGdhcC0zXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cbiAgPHNweC1mb3JtLXZpZXdcbiAgICBbc3B4Rm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgW3NweFNlY3Rpb25zXT1cInNlY3Rpb25zXCJcbiAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3VnZ2VzdGlvbnNcIlxuICAgIChzcHhCbHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAoc3B4U2VhcmNoKT1cIm9uU2VhcmNoKCRldmVudClcIj5cbiAgPC9zcHgtZm9ybS12aWV3PlxuICA8c3B4LWJ1dHRvblxuICAgIFtzcHhGdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgW3NweFNldmVyaXR5XT1cInNldmVyaXR5U3VjY2Vzc1wiPlxuICAgIFNhdmVcbiAgPC9zcHgtYnV0dG9uPlxuPC9mb3JtPiJdfQ==
@@ -13,7 +13,7 @@ export class SpxChannelSelectionComponent {
13
13
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxChannelSelectionComponent, isStandalone: true, selector: "spx-channel-selection", inputs: { control: "control", options: "options", txtChannel: "txtChannel" }, ngImport: i0, template: `
14
14
  <spx-input [formControl]="control" [spxLabel]="txtChannel"
15
15
  [spxType]="inputTypeRadio" [spxSuggestions]="options"></spx-input>
16
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "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"] }] }); }
16
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxChannelSelectionComponent, decorators: [{
19
19
  type: Component,
@@ -16,7 +16,7 @@ export class SpxCompanySelectionComponent {
16
16
  <spx-input [formControl]="control" [spxLabel]="txtCompany"
17
17
  [spxType]="inputTypeRadio" [spxSuggestions]="options"></spx-input>
18
18
  </div>
19
- </spx-form-section>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "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"] }, { kind: "component", type: SpxFormSectionComponent, selector: "spx-form-section", inputs: ["spxIndex", "spxIndexSecondary", "spxTitle", "spxShowTitle"] }] }); }
19
+ </spx-form-section>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxFormSectionComponent, selector: "spx-form-section", inputs: ["spxIndex", "spxIndexSecondary", "spxTitle", "spxShowTitle"] }] }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxCompanySelectionComponent, decorators: [{
22
22
  type: Component,
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
46
46
  }], txtCompany: [{
47
47
  type: Input
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNvbXBhbnktc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbm5lbC1zZWxlY3Rpb24vc3JjL3NweC1jb21wYW55LXNlbGVjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7OztBQW9CbkcsTUFBTSxPQUFPLDRCQUE0QjtJQU92QztRQUxTLFlBQU8sR0FBMkIsRUFBRSxDQUFDO1FBRzlDLG1CQUFjLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBR3BDLENBQUM7OEdBUk0sNEJBQTRCO2tHQUE1Qiw0QkFBNEIseUxBZjdCOzs7OztvQkFLUSwyREFHaEIsWUFBWSw4QkFDWixXQUFXLHNJQUNYLG1CQUFtQixrTkFDbkIsaUJBQWlCLGtnQkFDakIsdUJBQXVCOzsyRkFHZCw0QkFBNEI7a0JBakJ4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRTs7Ozs7b0JBS1E7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix1QkFBdUI7cUJBQ3hCO2lCQUNGO3dEQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNweEZvcm1TZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS1zZWN0aW9uJztcbmltcG9ydCB7IFNweElucHV0Q29tcG9uZW50LCBTcHhJbnB1dFR5cGVFbnVtLCBTcHhWYWx1ZVBhaXIgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1jb21wYW55LXNlbGVjdGlvbicsXG4gIHRlbXBsYXRlOiBgPHNweC1mb3JtLXNlY3Rpb24gW3NweFRpdGxlXT1cInR4dENoYW5uZWxcIiBbc3B4SW5kZXhdPVwiMlwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiB4bDpncmlkLWNvbHMtMyBnYXAtM1wiPlxuICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbc3B4TGFiZWxdPVwidHh0Q29tcGFueVwiXG4gICAgICBbc3B4VHlwZV09XCJpbnB1dFR5cGVSYWRpb1wiIFtzcHhTdWdnZXN0aW9uc109XCJvcHRpb25zXCI+PC9zcHgtaW5wdXQ+XG4gIDwvZGl2PlxuPC9zcHgtZm9ybS1zZWN0aW9uPmAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTcHhDb21wYW55U2VsZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29udHJvbCE6IEZvcm1Db250cm9sO1xuICBASW5wdXQoKSBvcHRpb25zOiBTcHhWYWx1ZVBhaXI8c3RyaW5nPltdID0gW107XG4gIEBJbnB1dCgpIHR4dENoYW5uZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbXBhbnkhOiBzdHJpbmc7XG4gIGlucHV0VHlwZVJhZGlvID0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbztcblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7IH1cbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNvbXBhbnktc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbm5lbC1zZWxlY3Rpb24vc3JjL3NweC1jb21wYW55LXNlbGVjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7OztBQW9CbkcsTUFBTSxPQUFPLDRCQUE0QjtJQU92QztRQUxTLFlBQU8sR0FBMkIsRUFBRSxDQUFDO1FBRzlDLG1CQUFjLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBR3BDLENBQUM7OEdBUk0sNEJBQTRCO2tHQUE1Qiw0QkFBNEIseUxBZjdCOzs7OztvQkFLUSwyREFHaEIsWUFBWSw4QkFDWixXQUFXLHNJQUNYLG1CQUFtQixrTkFDbkIsaUJBQWlCLGtoQkFDakIsdUJBQXVCOzsyRkFHZCw0QkFBNEI7a0JBakJ4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRTs7Ozs7b0JBS1E7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix1QkFBdUI7cUJBQ3hCO2lCQUNGO3dEQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNweEZvcm1TZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS1zZWN0aW9uJztcbmltcG9ydCB7IFNweElucHV0Q29tcG9uZW50LCBTcHhJbnB1dFR5cGVFbnVtLCBTcHhWYWx1ZVBhaXIgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1jb21wYW55LXNlbGVjdGlvbicsXG4gIHRlbXBsYXRlOiBgPHNweC1mb3JtLXNlY3Rpb24gW3NweFRpdGxlXT1cInR4dENoYW5uZWxcIiBbc3B4SW5kZXhdPVwiMlwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiB4bDpncmlkLWNvbHMtMyBnYXAtM1wiPlxuICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbc3B4TGFiZWxdPVwidHh0Q29tcGFueVwiXG4gICAgICBbc3B4VHlwZV09XCJpbnB1dFR5cGVSYWRpb1wiIFtzcHhTdWdnZXN0aW9uc109XCJvcHRpb25zXCI+PC9zcHgtaW5wdXQ+XG4gIDwvZGl2PlxuPC9zcHgtZm9ybS1zZWN0aW9uPmAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTcHhDb21wYW55U2VsZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29udHJvbCE6IEZvcm1Db250cm9sO1xuICBASW5wdXQoKSBvcHRpb25zOiBTcHhWYWx1ZVBhaXI8c3RyaW5nPltdID0gW107XG4gIEBJbnB1dCgpIHR4dENoYW5uZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbXBhbnkhOiBzdHJpbmc7XG4gIGlucHV0VHlwZVJhZGlvID0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbztcblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7IH1cbn1cbiJdfQ==
@@ -1,43 +1,136 @@
1
- import { CommonModule } from '@angular/common';
1
+ import { CommonModule, NgIf } from '@angular/common';
2
2
  import { Component, Input, Output, EventEmitter } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
4
  import { SpxAppChannelTypeEnum } from '@softpak/components/spx-app-configuration';
4
5
  import { SpxButtonComponent } from '@softpak/components/spx-button';
6
+ import { SpxFormSectionComponent } from '@softpak/components/spx-form-section';
7
+ import { SpxFormViewComponent } from '@softpak/components/spx-form-view';
8
+ import { SpxSeverityEnum, valuePairToValue } from '@softpak/components/spx-helpers';
9
+ import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
10
+ import { spxValidatorRequired } from '@softpak/components/spx-validation';
5
11
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
12
+ import * as i1 from "@angular/forms";
13
+ export const sectionWelcome = 'welcome';
14
+ export const ctrlChannel = 'channel';
15
+ export const ctrlChannelType = 'channelType';
7
16
  export class SpxWelcomeComponent {
8
- get filteredChannels() { return (this.channels ?? [])?.filter(channel => channel.channelTypes.includes(SpxAppChannelTypeEnum.production)); }
9
- constructor() {
17
+ get ctrlChannel() { return this.formGroup.get(ctrlChannel); }
18
+ get ctrlChannelType() { return this.formGroup.get(ctrlChannelType); }
19
+ get filteredCompanies() { return (this.channels ?? [])?.filter(channel => channel.channelTypes.includes(SpxAppChannelTypeEnum.production)).map(c => ({ description: c.brand, value: c.brand })); }
20
+ constructor(formBuilder) {
21
+ this.formBuilder = formBuilder;
10
22
  this.channels = [];
11
- this.spxSelected = new EventEmitter();
23
+ this.channelTypes = [];
24
+ this.spxSelect = new EventEmitter();
25
+ this.severitySuccess = SpxSeverityEnum.success;
26
+ this.suggestions = {
27
+ [ctrlChannelType]: [],
28
+ [ctrlChannel]: [],
29
+ };
30
+ this.subscriptions = {};
31
+ this.sections = [
32
+ {
33
+ key: sectionWelcome,
34
+ showTitle: () => false,
35
+ fields: [
36
+ {
37
+ key: ctrlChannel,
38
+ type: () => SpxInputTypeEnum.radio,
39
+ label: () => this.txtCompany,
40
+ validators: () => [spxValidatorRequired()],
41
+ },
42
+ {
43
+ key: ctrlChannelType,
44
+ type: () => SpxInputTypeEnum.radio,
45
+ label: () => this.txtChannel,
46
+ capitalize: () => true,
47
+ show: () => valuePairToValue(this.ctrlChannel.value),
48
+ validators: () => [spxValidatorRequired()],
49
+ },
50
+ ]
51
+ }
52
+ ];
12
53
  }
13
- onSelectChannel(channel) {
14
- this.spxSelected.emit(channel);
54
+ ngOnChanges(changes) {
55
+ this.suggestions[ctrlChannel] = this.filteredCompanies;
15
56
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxWelcomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxWelcomeComponent, isStandalone: true, selector: "spx-welcome", inputs: { channels: "channels" }, outputs: { spxSelected: "spxSelected" }, ngImport: i0, template: `<div class="flex flex-col gap-3">
18
- <spx-button [spxFullWidth]="true" *ngFor="let channel of filteredChannels" (click)="onSelectChannel(channel)">
19
- {{ channel.brand }}
57
+ ngOnDestroy() {
58
+ }
59
+ ngOnInit() {
60
+ this.subscriptions.channel = this.ctrlChannel.valueChanges.subscribe(valuePair => {
61
+ const channel = this.channels?.find(c => c.brand === valuePairToValue(valuePair));
62
+ this.suggestions[ctrlChannelType] = !channel ? [] : channel?.channelTypes?.map(ct => ({
63
+ description: ct,
64
+ value: ct
65
+ }));
66
+ this.ctrlChannelType.setValue({
67
+ value: SpxAppChannelTypeEnum.production,
68
+ });
69
+ });
70
+ }
71
+ onSubmit() {
72
+ console.log('spxSelect emitting...');
73
+ this.spxSelect.emit({
74
+ channel: this.channels?.find(c => c.brand === valuePairToValue(this.ctrlChannel.value)),
75
+ channelType: valuePairToValue(this.ctrlChannelType.value),
76
+ });
77
+ }
78
+ createForm() {
79
+ return SpxFormViewComponent.createForm(this.formBuilder, this.sections);
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxWelcomeComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxWelcomeComponent, isStandalone: true, selector: "spx-welcome", inputs: { channels: "channels", channelTypes: "channelTypes", formGroup: "formGroup", txtChannel: "txtChannel", txtCompany: "txtCompany" }, outputs: { spxSelect: "spxSelect" }, usesOnChanges: true, ngImport: i0, template: `<form [formGroup]="formGroup" class="max-w-lg mx-auto flex flex-col gap-3" (ngSubmit)="onSubmit()">
83
+ <spx-form-view
84
+ [spxFormGroup]="formGroup"
85
+ [spxSections]="sections"
86
+ [spxSuggestions]="suggestions">
87
+ </spx-form-view>
88
+ <spx-button
89
+ [spxFullWidth]="true"
90
+ [spxSeverity]="severitySuccess">
91
+ Save
20
92
  </spx-button>
21
- </div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, 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"] }] }); }
93
+ </form>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "component", type: SpxFormViewComponent, selector: "spx-form-view", inputs: ["spxFormGroup", "spxSections", "spxSuggestions"], outputs: ["spxBlur", "spxClick", "spxSearch"] }] }); }
22
94
  }
23
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxWelcomeComponent, decorators: [{
24
96
  type: Component,
25
97
  args: [{
26
98
  selector: 'spx-welcome',
27
- template: `<div class="flex flex-col gap-3">
28
- <spx-button [spxFullWidth]="true" *ngFor="let channel of filteredChannels" (click)="onSelectChannel(channel)">
29
- {{ channel.brand }}
99
+ template: `<form [formGroup]="formGroup" class="max-w-lg mx-auto flex flex-col gap-3" (ngSubmit)="onSubmit()">
100
+ <spx-form-view
101
+ [spxFormGroup]="formGroup"
102
+ [spxSections]="sections"
103
+ [spxSuggestions]="suggestions">
104
+ </spx-form-view>
105
+ <spx-button
106
+ [spxFullWidth]="true"
107
+ [spxSeverity]="severitySuccess">
108
+ Save
30
109
  </spx-button>
31
- </div>`,
110
+ </form>`,
32
111
  standalone: true,
33
112
  imports: [
34
113
  CommonModule,
114
+ FormsModule,
115
+ ReactiveFormsModule,
35
116
  SpxButtonComponent,
117
+ SpxFormSectionComponent,
118
+ SpxFormViewComponent,
119
+ SpxInputComponent,
120
+ NgIf,
36
121
  ]
37
122
  }]
38
- }], ctorParameters: () => [], propDecorators: { channels: [{
123
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { channels: [{
124
+ type: Input
125
+ }], channelTypes: [{
126
+ type: Input
127
+ }], formGroup: [{
128
+ type: Input
129
+ }], txtChannel: [{
130
+ type: Input
131
+ }], txtCompany: [{
39
132
  type: Input
40
- }], spxSelected: [{
133
+ }], spxSelect: [{
41
134
  type: Output
42
135
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXdlbGNvbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1jaGFubmVsLXNlbGVjdGlvbi9zcmMvc3B4LXdlbGNvbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBa0IscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBZXBFLE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsSUFBSSxnQkFBZ0IsS0FBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3STtRQUxnQixhQUFRLEdBQXNCLEVBQUUsQ0FBQztRQUNoQyxnQkFBVyxHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUs1RixDQUFDO0lBRUwsZUFBZSxDQUFDLE9BQXVCO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBWFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsa0pBWHBCOzs7O1NBSUgsMkRBR0wsWUFBWSw0SkFDWixrQkFBa0I7OzJGQUdULG1CQUFtQjtrQkFiL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7O1NBSUg7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjtxQkFDbkI7aUJBQ0Y7d0RBRWlCLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1csV0FBVztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B4QXBwQ2hhbm5lbEksIFNweEFwcENoYW5uZWxUeXBlRW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWFwcC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC13ZWxjb21lJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgIDxzcHgtYnV0dG9uIFtzcHhGdWxsV2lkdGhdPVwidHJ1ZVwiICpuZ0Zvcj1cImxldCBjaGFubmVsIG9mIGZpbHRlcmVkQ2hhbm5lbHNcIiAoY2xpY2spPVwib25TZWxlY3RDaGFubmVsKGNoYW5uZWwpXCI+XG4gICAgICB7eyBjaGFubmVsLmJyYW5kIH19XG4gICAgPC9zcHgtYnV0dG9uPlxuICA8L2Rpdj5gLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTcHhXZWxjb21lQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIGNoYW5uZWxzPzogU3B4QXBwQ2hhbm5lbElbXSA9IFtdO1xuICBAT3V0cHV0KCkgcHVibGljIHNweFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8U3B4QXBwQ2hhbm5lbEk+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhBcHBDaGFubmVsST4oKTtcblxuICBnZXQgZmlsdGVyZWRDaGFubmVscyAoKSB7IHJldHVybiAodGhpcy5jaGFubmVscyA/PyBbXSk/LmZpbHRlcihjaGFubmVsID0+IGNoYW5uZWwuY2hhbm5lbFR5cGVzLmluY2x1ZGVzKFNweEFwcENoYW5uZWxUeXBlRW51bS5wcm9kdWN0aW9uKSk7IH1cblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7IH1cblxuICBvblNlbGVjdENoYW5uZWwoY2hhbm5lbDogU3B4QXBwQ2hhbm5lbEkpIHtcbiAgICB0aGlzLnNweFNlbGVjdGVkLmVtaXQoY2hhbm5lbCk7XG4gIH1cbn1cbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXdlbGNvbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1jaGFubmVsLXNlbGVjdGlvbi9zcmMvc3B4LXdlbGNvbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQWtCLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUcxRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQWdDN0MsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsSUFBSSxXQUFXLEtBQWtCLE9BQU8sSUFBSSxD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LGlCQUFpQjt3QkFDakIsSUFBSTtxQkFDTDtpQkFDRjtnRkFFVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3B4QXBwQ2hhbm5lbEksIFNweEFwcENoYW5uZWxUeXBlRW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWFwcC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tc2VjdGlvbic7XG5pbXBvcnQgeyBTcHhGb3JtU2VjdGlvbkksIFNweEZvcm1WaWV3Q29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3JztcbmltcG9ydCB7IFNweFNldmVyaXR5RW51bSwgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0sIFNweFZhbHVlUGFpciB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBzcHhWYWxpZGF0b3JSZXF1aXJlZCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBzZWN0aW9uV2VsY29tZSA9ICd3ZWxjb21lJztcbmV4cG9ydCBjb25zdCBjdHJsQ2hhbm5lbCA9ICdjaGFubmVsJztcbmV4cG9ydCBjb25zdCBjdHJsQ2hhbm5lbFR5cGUgPSAnY2hhbm5lbFR5cGUnO1xuZXhwb3J0IGludGVyZmFjZSBTcHhXZWxjb21lVmFsdWVJIHtcbiAgW2N0cmxDaGFubmVsXT86IFNweEFwcENoYW5uZWxJO1xuICBbY3RybENoYW5uZWxUeXBlXTogU3B4QXBwQ2hhbm5lbFR5cGVFbnVtO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtd2VsY29tZScsXG4gIHRlbXBsYXRlOiBgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cIm1heC13LWxnIG14LWF1dG8gZmxleCBmbGV4LWNvbCBnYXAtM1wiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gICAgPHNweC1mb3JtLXZpZXdcbiAgICAgIFtzcHhGb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgIFtzcHhTZWN0aW9uc109XCJzZWN0aW9uc1wiXG4gICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3VnZ2VzdGlvbnNcIj5cbiAgICA8L3NweC1mb3JtLXZpZXc+XG4gICAgPHNweC1idXR0b25cbiAgICAgIFtzcHhGdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBbc3B4U2V2ZXJpdHldPVwic2V2ZXJpdHlTdWNjZXNzXCI+XG4gICAgICBTYXZlXG4gICAgPC9zcHgtYnV0dG9uPlxuICA8L2Zvcm0+YCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCxcbiAgICBTcHhGb3JtVmlld0NvbXBvbmVudCxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBOZ0lmLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNweFdlbGNvbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY2hhbm5lbHM/OiBTcHhBcHBDaGFubmVsSVtdID0gW107XG4gIEBJbnB1dCgpIGNoYW5uZWxUeXBlcz86IFNweEFwcENoYW5uZWxUeXBlRW51bVtdID0gW107XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgdHh0Q2hhbm5lbCE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q29tcGFueSE6IHN0cmluZztcbiAgQE91dHB1dCgpIHNweFNlbGVjdDogRXZlbnRFbWl0dGVyPFNweFdlbGNvbWVWYWx1ZUk+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhXZWxjb21lVmFsdWVJPigpO1xuICBzZXZlcml0eVN1Y2Nlc3MgPSBTcHhTZXZlcml0eUVudW0uc3VjY2VzcztcbiAgc3VnZ2VzdGlvbnM6IHtcbiAgICBbY3RybENoYW5uZWxUeXBlXT86IFNweFZhbHVlUGFpcjxzdHJpbmc+W107XG4gICAgW2N0cmxDaGFubmVsXT86IFNweFZhbHVlUGFpcjxzdHJpbmc+W107XG4gIH0gPSB7XG4gICAgW2N0cmxDaGFubmVsVHlwZV06IFtdLFxuICAgIFtjdHJsQ2hhbm5lbF06IFtdLFxuICB9O1xuICBcbiAgZ2V0IGN0cmxDaGFubmVsKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjdHJsQ2hhbm5lbCkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDaGFubmVsVHlwZSgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybENoYW5uZWxUeXBlKSBhcyBGb3JtQ29udHJvbDsgfVxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IHtcbiAgICBjaGFubmVsPzogU3Vic2NyaXB0aW9uXG4gIH0gPSB7fTtcblxuICBzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10gPSBbXG4gICAge1xuICAgICAga2V5OiBzZWN0aW9uV2VsY29tZSxcbiAgICAgIHNob3dUaXRsZTogKCkgPT4gZmFsc2UsXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENoYW5uZWwsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5yYWRpbyxcbiAgICAgICAgICBsYWJlbDogKCkgPT4gdGhpcy50eHRDb21wYW55LFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENoYW5uZWxUeXBlLFxuICAgICAgICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW0ucmFkaW8sXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q2hhbm5lbCxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHNob3c6ICgpID0+IHZhbHVlUGFpclRvVmFsdWUodGhpcy5jdHJsQ2hhbm5lbC52YWx1ZSksXG4gICAgICAgICAgdmFsaWRhdG9yczogKCkgPT4gW3NweFZhbGlkYXRvclJlcXVpcmVkKCldLFxuICAgICAgICB9LFxuICAgICAgXVxuICAgIH1cbiAgXTtcbiAgXG4gIGdldCBmaWx0ZXJlZENvbXBhbmllcygpOiBTcHhWYWx1ZVBhaXI8c3RyaW5nPltdIHsgcmV0dXJuICh0aGlzLmNoYW5uZWxzID8/IFtdKT8uZmlsdGVyKGNoYW5uZWwgPT4gY2hhbm5lbC5jaGFubmVsVHlwZXMuaW5jbHVkZXMoU3B4QXBwQ2hhbm5lbFR5cGVFbnVtLnByb2R1Y3Rpb24pKS5tYXAoYyA9PiAoeyBkZXNjcmlwdGlvbjogYy5icmFuZCwgdmFsdWU6IGMuYnJhbmQgfSkpOyB9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zdWdnZXN0aW9uc1tjdHJsQ2hhbm5lbF0gPSB0aGlzLmZpbHRlcmVkQ29tcGFuaWVzO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuY2hhbm5lbCA9IHRoaXMuY3RybENoYW5uZWwudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZVBhaXIgPT4ge1xuICAgICAgY29uc3QgY2hhbm5lbCA9IHRoaXMuY2hhbm5lbHM/LmZpbmQoYyA9PiBjLmJyYW5kID09PSB2YWx1ZVBhaXJUb1ZhbHVlKHZhbHVlUGFpcikpO1xuICAgICAgdGhpcy5zdWdnZXN0aW9uc1tjdHJsQ2hhbm5lbFR5cGVdID0gIWNoYW5uZWwgPyBbXSA6IGNoYW5uZWw/LmNoYW5uZWxUeXBlcz8ubWFwKGN0ID0+ICh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBjdCxcbiAgICAgICAgdmFsdWU6IGN0XG4gICAgICB9KSk7XG4gICAgICB0aGlzLmN0cmxDaGFubmVsVHlwZS5zZXRWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBTcHhBcHBDaGFubmVsVHlwZUVudW0ucHJvZHVjdGlvbixcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ3NweFNlbGVjdCBlbWl0dGluZy4uLicpO1xuICAgIHRoaXMuc3B4U2VsZWN0LmVtaXQoe1xuICAgICAgY2hhbm5lbDogdGhpcy5jaGFubmVscz8uZmluZChjID0+IGMuYnJhbmQgPT09IHZhbHVlUGFpclRvVmFsdWUodGhpcy5jdHJsQ2hhbm5lbC52YWx1ZSkpLFxuICAgICAgY2hhbm5lbFR5cGU6IHZhbHVlUGFpclRvVmFsdWUodGhpcy5jdHJsQ2hhbm5lbFR5cGUudmFsdWUpLFxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiBTcHhGb3JtVmlld0NvbXBvbmVudC5jcmVhdGVGb3JtKHRoaXMuZm9ybUJ1aWxkZXIsIHRoaXMuc2VjdGlvbnMpO1xuICB9XG59XG4iXX0=