special-forms 18.0.1 → 20.0.0-SNAPSHOT

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 (95) hide show
  1. package/README.md +147 -147
  2. package/fesm2022/special-forms.mjs +143 -147
  3. package/fesm2022/special-forms.mjs.map +1 -1
  4. package/index.d.ts +586 -5
  5. package/lib/styles/final.scss +2 -2
  6. package/lib/styles/styles-config.scss +36 -36
  7. package/lib/styles/tailwind-final.scss +7 -7
  8. package/package.json +7 -9
  9. package/esm2022/lib/components/index.mjs +0 -14
  10. package/esm2022/lib/components/special-autocomplete/special-autocomplete.component.mjs +0 -75
  11. package/esm2022/lib/components/special-autocomplete/special-autocomplete.interface.mjs +0 -2
  12. package/esm2022/lib/components/special-checkbox/special-checkbox.component.mjs +0 -38
  13. package/esm2022/lib/components/special-checkbox/special-checkbox.interface.mjs +0 -3
  14. package/esm2022/lib/components/special-datepicker/special-datepicker.component.mjs +0 -42
  15. package/esm2022/lib/components/special-datepicker/special-datepicker.interface.mjs +0 -3
  16. package/esm2022/lib/components/special-dropdown/special-dropdown.component.mjs +0 -47
  17. package/esm2022/lib/components/special-dropdown/special-dropdown.interface.mjs +0 -3
  18. package/esm2022/lib/components/special-form/special-form.component.mjs +0 -99
  19. package/esm2022/lib/components/special-form/special-form.module.mjs +0 -79
  20. package/esm2022/lib/components/special-input/special-input.component.mjs +0 -55
  21. package/esm2022/lib/components/special-input/special-input.interface.mjs +0 -2
  22. package/esm2022/lib/components/special-label/special-label.component.mjs +0 -27
  23. package/esm2022/lib/components/special-label/special-label.interface.mjs +0 -2
  24. package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +0 -97
  25. package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +0 -2
  26. package/esm2022/lib/components/special-richtext/special-richtext.component.mjs +0 -53
  27. package/esm2022/lib/components/special-richtext/special-richtext.interface.mjs +0 -3
  28. package/esm2022/lib/components/special-text-area/special-text-area.component.mjs +0 -43
  29. package/esm2022/lib/components/special-text-area/special-text-area.interface.mjs +0 -2
  30. package/esm2022/lib/components/special-upload/filename.pipe.mjs +0 -18
  31. package/esm2022/lib/components/special-upload/preview-image-pipe.mjs +0 -104
  32. package/esm2022/lib/components/special-upload/special-upload.component.mjs +0 -146
  33. package/esm2022/lib/components/special-upload/special-upload.interface.mjs +0 -2
  34. package/esm2022/lib/components/special-upload/truncate.pipe.mjs +0 -14
  35. package/esm2022/lib/core/aux-data/control-types.enum.mjs +0 -18
  36. package/esm2022/lib/core/aux-data/input-types.mjs +0 -16
  37. package/esm2022/lib/core/forms/special-forms.mjs +0 -240
  38. package/esm2022/lib/core/interfaces/field-basics.interfaces.mjs +0 -2
  39. package/esm2022/lib/core/interfaces/form.interfaces.mjs +0 -2
  40. package/esm2022/lib/core/interfaces/special-control.interface.mjs +0 -3
  41. package/esm2022/lib/core/masks/currency.mask.mjs +0 -11
  42. package/esm2022/lib/core/masks/index.mjs +0 -3
  43. package/esm2022/lib/core/masks/number.mask.mjs +0 -3
  44. package/esm2022/lib/core/pipes/controls-list-pipe/controls-list.pipe.mjs +0 -18
  45. package/esm2022/lib/core/pipes/error-message-pipe/error.pipe.mjs +0 -23
  46. package/esm2022/lib/core/pipes/index.mjs +0 -4
  47. package/esm2022/lib/core/pipes/text-by-function/text-by-function.pipe.mjs +0 -22
  48. package/esm2022/lib/core/services/error-state-matcher/error-matcher.mjs +0 -13
  49. package/esm2022/lib/core/services/index.mjs +0 -4
  50. package/esm2022/lib/core/services/special-form-builder/special-form-builder.service.mjs +0 -156
  51. package/esm2022/public-api.mjs +0 -13
  52. package/esm2022/special-forms.mjs +0 -5
  53. package/lib/components/index.d.ts +0 -23
  54. package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +0 -19
  55. package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +0 -19
  56. package/lib/components/special-checkbox/special-checkbox.component.d.ts +0 -12
  57. package/lib/components/special-checkbox/special-checkbox.interface.d.ts +0 -13
  58. package/lib/components/special-datepicker/special-datepicker.component.d.ts +0 -13
  59. package/lib/components/special-datepicker/special-datepicker.interface.d.ts +0 -12
  60. package/lib/components/special-dropdown/special-dropdown.component.d.ts +0 -11
  61. package/lib/components/special-dropdown/special-dropdown.interface.d.ts +0 -17
  62. package/lib/components/special-form/special-form.component.d.ts +0 -31
  63. package/lib/components/special-form/special-form.module.d.ts +0 -20
  64. package/lib/components/special-input/special-input.component.d.ts +0 -15
  65. package/lib/components/special-input/special-input.interface.d.ts +0 -17
  66. package/lib/components/special-label/special-label.component.d.ts +0 -13
  67. package/lib/components/special-label/special-label.interface.d.ts +0 -13
  68. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +0 -22
  69. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +0 -19
  70. package/lib/components/special-richtext/special-richtext.component.d.ts +0 -15
  71. package/lib/components/special-richtext/special-richtext.interface.d.ts +0 -11
  72. package/lib/components/special-text-area/special-text-area.component.d.ts +0 -13
  73. package/lib/components/special-text-area/special-text-area.interface.d.ts +0 -8
  74. package/lib/components/special-upload/filename.pipe.d.ts +0 -7
  75. package/lib/components/special-upload/preview-image-pipe.d.ts +0 -23
  76. package/lib/components/special-upload/special-upload.component.d.ts +0 -31
  77. package/lib/components/special-upload/special-upload.interface.d.ts +0 -15
  78. package/lib/components/special-upload/truncate.pipe.d.ts +0 -7
  79. package/lib/core/aux-data/control-types.enum.d.ts +0 -16
  80. package/lib/core/aux-data/input-types.d.ts +0 -2
  81. package/lib/core/forms/special-forms.d.ts +0 -108
  82. package/lib/core/interfaces/field-basics.interfaces.d.ts +0 -22
  83. package/lib/core/interfaces/form.interfaces.d.ts +0 -64
  84. package/lib/core/interfaces/special-control.interface.d.ts +0 -4
  85. package/lib/core/masks/currency.mask.d.ts +0 -1
  86. package/lib/core/masks/index.d.ts +0 -2
  87. package/lib/core/masks/number.mask.d.ts +0 -1
  88. package/lib/core/pipes/controls-list-pipe/controls-list.pipe.d.ts +0 -11
  89. package/lib/core/pipes/error-message-pipe/error.pipe.d.ts +0 -12
  90. package/lib/core/pipes/index.d.ts +0 -3
  91. package/lib/core/pipes/text-by-function/text-by-function.pipe.d.ts +0 -7
  92. package/lib/core/services/error-state-matcher/error-matcher.d.ts +0 -8
  93. package/lib/core/services/index.d.ts +0 -3
  94. package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +0 -25
  95. package/public-api.d.ts +0 -9
@@ -584,7 +584,7 @@
584
584
 
585
585
  .divide-slate-200 > :not([hidden]) ~ :not([hidden]) {
586
586
  --tw-divide-opacity: 1;
587
- border-color: rgb(226 232 240 / var(--tw-divide-opacity))
587
+ border-color: rgb(226 232 240 / var(--tw-divide-opacity, 1))
588
588
  }
589
589
 
590
590
  .overflow-y-auto {
@@ -607,12 +607,12 @@
607
607
 
608
608
  .border-slate-200 {
609
609
  --tw-border-opacity: 1;
610
- border-color: rgb(226 232 240 / var(--tw-border-opacity))
610
+ border-color: rgb(226 232 240 / var(--tw-border-opacity, 1))
611
611
  }
612
612
 
613
613
  .bg-red-500 {
614
614
  --tw-bg-opacity: 1;
615
- background-color: rgb(239 68 68 / var(--tw-bg-opacity))
615
+ background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1))
616
616
  }
617
617
 
618
618
  .p-2 {
@@ -677,17 +677,17 @@
677
677
 
678
678
  .text-blue-600 {
679
679
  --tw-text-opacity: 1;
680
- color: rgb(37 99 235 / var(--tw-text-opacity))
680
+ color: rgb(37 99 235 / var(--tw-text-opacity, 1))
681
681
  }
682
682
 
683
683
  .text-blue-700 {
684
684
  --tw-text-opacity: 1;
685
- color: rgb(29 78 216 / var(--tw-text-opacity))
685
+ color: rgb(29 78 216 / var(--tw-text-opacity, 1))
686
686
  }
687
687
 
688
688
  .text-rose-500 {
689
689
  --tw-text-opacity: 1;
690
- color: rgb(244 63 94 / var(--tw-text-opacity))
690
+ color: rgb(244 63 94 / var(--tw-text-opacity, 1))
691
691
  }
692
692
 
693
693
  .underline {
@@ -709,7 +709,7 @@
709
709
 
710
710
  .hover\:text-blue-700:hover {
711
711
  --tw-text-opacity: 1;
712
- color: rgb(29 78 216 / var(--tw-text-opacity))
712
+ color: rgb(29 78 216 / var(--tw-text-opacity, 1))
713
713
  }
714
714
 
715
715
  @media (min-width: 768px) {
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "special-forms",
3
- "version": "18.0.1",
3
+ "version": "20.0.0-SNAPSHOT",
4
4
  "peerDependencies": {
5
- "@angular/common": "^18",
6
- "@angular/cdk": "^18",
7
- "@angular/core": "^18",
8
- "@angular/material": "^18",
5
+ "@angular/common": "^20",
6
+ "@angular/cdk": "^20",
7
+ "@angular/core": "^20",
8
+ "@angular/material": "^20",
9
9
  "@ngneat/input-mask": "^6",
10
- "@ngx-dropzone/cdk": "^18",
11
- "@ngx-dropzone/material": "^18",
10
+ "@ngx-dropzone/cdk": "^20",
11
+ "@ngx-dropzone/material": "^20",
12
12
  "inputmask": "^5",
13
13
  "ngx-editor": "^17"
14
14
  },
@@ -24,8 +24,6 @@
24
24
  },
25
25
  ".": {
26
26
  "types": "./index.d.ts",
27
- "esm2022": "./esm2022/special-forms.mjs",
28
- "esm": "./esm2022/special-forms.mjs",
29
27
  "default": "./fesm2022/special-forms.mjs"
30
28
  }
31
29
  }
@@ -1,14 +0,0 @@
1
- import { SpecialAutocompleteComponent } from './special-autocomplete/special-autocomplete.component';
2
- import { SpecialInputComponent } from './special-input/special-input.component';
3
- import { SpecialDropdownComponent } from './special-dropdown/special-dropdown.component';
4
- import { SpecialDatepickerComponent } from './special-datepicker/special-datepicker.component';
5
- import { SpecialMultipleAutocompleteComponent } from './special-multiple-autocomplete/special-multiple-autocomplete.component';
6
- import { SpecialCheckboxComponent } from './special-checkbox/special-checkbox.component';
7
- import { SpecialTextAreaComponent } from './special-text-area/special-text-area.component';
8
- import { SpecialUploadComponent } from './special-upload/special-upload.component';
9
- import { SpecialLabelComponent } from './special-label/special-label.component';
10
- import { SpecialFormModule } from './special-form/special-form.module';
11
- import { SpecialRichtextComponent } from './special-richtext/special-richtext.component';
12
- import { SpecialFormComponent, SpecialArrayComponent, FormControlsRenderDirective, } from './special-form/special-form.component';
13
- export { SpecialRichtextComponent, SpecialAutocompleteComponent, SpecialDatepickerComponent, SpecialDropdownComponent, SpecialMultipleAutocompleteComponent, SpecialCheckboxComponent, SpecialTextAreaComponent, SpecialUploadComponent, SpecialArrayComponent, SpecialLabelComponent, SpecialFormComponent, SpecialFormModule, FormControlsRenderDirective, SpecialInputComponent, };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU1yRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU1oRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU16RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU0vRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQU0vSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU16RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQU0zRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQU1uRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU1oRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU16RixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiwyQkFBMkIsR0FDNUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUUvQyxPQUFPLEVBcUJMLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixvQ0FBb0MsRUFDcEMsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixxQkFBcUIsR0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwZWNpYWxBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL3NwZWNpYWwtYXV0b2NvbXBsZXRlL3NwZWNpYWwtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgSUF1dG9jb21wbGV0ZUZpZWxkLFxyXG4gIElBdXRvY29tcGxldGVTZXR0aW5ncyxcclxufSBmcm9tICcuL3NwZWNpYWwtYXV0b2NvbXBsZXRlL3NwZWNpYWwtYXV0b2NvbXBsZXRlLmludGVyZmFjZSc7XHJcblxyXG5pbXBvcnQgeyBTcGVjaWFsSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3NwZWNpYWwtaW5wdXQvc3BlY2lhbC1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIElJbnB1dEZpZWxkLFxyXG4gIElJbnB1dFNldHRpbmdzLFxyXG59IGZyb20gJy4vc3BlY2lhbC1pbnB1dC9zcGVjaWFsLWlucHV0LmludGVyZmFjZSc7XHJcblxyXG5pbXBvcnQgeyBTcGVjaWFsRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3NwZWNpYWwtZHJvcGRvd24vc3BlY2lhbC1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIElEcm9wZG93bkZpZWxkLFxyXG4gIElEcm9wZG93blNldHRpbmdzLFxyXG59IGZyb20gJy4vc3BlY2lhbC1kcm9wZG93bi9zcGVjaWFsLWRyb3Bkb3duLmludGVyZmFjZSc7XHJcblxyXG5pbXBvcnQgeyBTcGVjaWFsRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vc3BlY2lhbC1kYXRlcGlja2VyL3NwZWNpYWwtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIElEYXRlUGlja2VyRmllbGQsXHJcbiAgSURhdGVQaWNrZXJTZXR0aW5ncyxcclxufSBmcm9tICcuL3NwZWNpYWwtZGF0ZXBpY2tlci9zcGVjaWFsLWRhdGVwaWNrZXIuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBJTXVsdGlwbGVBdXRvY29tcGxldGVGaWVsZCxcclxuICBJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncyxcclxufSBmcm9tICcuL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlLmludGVyZmFjZSc7XHJcblxyXG5pbXBvcnQgeyBTcGVjaWFsQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NwZWNpYWwtY2hlY2tib3gvc3BlY2lhbC1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIElDaGVja2JveEZpZWxkLFxyXG4gIElDaGVja2JveFNldHRpbmdzLFxyXG59IGZyb20gJy4vc3BlY2lhbC1jaGVja2JveC9zcGVjaWFsLWNoZWNrYm94LmludGVyZmFjZSc7XHJcblxyXG5pbXBvcnQgeyBTcGVjaWFsVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL3NwZWNpYWwtdGV4dC1hcmVhL3NwZWNpYWwtdGV4dC1hcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgSVRleHRBcmVhRmllbGQsXHJcbiAgSVRleHRBcmVhU2V0dGluZ3MsXHJcbn0gZnJvbSAnLi9zcGVjaWFsLXRleHQtYXJlYS9zcGVjaWFsLXRleHQtYXJlYS5pbnRlcmZhY2UnO1xyXG5cclxuaW1wb3J0IHsgU3BlY2lhbFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBJVXBsb2FkRmllbGQsXHJcbiAgSVVwbG9hZFNldHRpbmdzLFxyXG59IGZyb20gJy4vc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IFNwZWNpYWxMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vc3BlY2lhbC1sYWJlbC9zcGVjaWFsLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgSUxhYmVsRmllbGQsXHJcbiAgSUxhYmVsU2V0dGluZ3MsXHJcbn0gZnJvbSAnLi9zcGVjaWFsLWxhYmVsL3NwZWNpYWwtbGFiZWwuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtTW9kdWxlIH0gZnJvbSAnLi9zcGVjaWFsLWZvcm0vc3BlY2lhbC1mb3JtLm1vZHVsZSc7XHJcblxyXG5pbXBvcnQgeyBTcGVjaWFsUmljaHRleHRDb21wb25lbnQgfSBmcm9tICcuL3NwZWNpYWwtcmljaHRleHQvc3BlY2lhbC1yaWNodGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIElSaWNoVGV4dEZpZWxkLFxyXG4gIElSaWNoVGV4dFNldHRpbmdzLFxyXG59IGZyb20gJy4vc3BlY2lhbC1yaWNodGV4dC9zcGVjaWFsLXJpY2h0ZXh0LmludGVyZmFjZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFNwZWNpYWxGb3JtQ29tcG9uZW50LFxyXG4gIFNwZWNpYWxBcnJheUNvbXBvbmVudCxcclxuICBGb3JtQ29udHJvbHNSZW5kZXJEaXJlY3RpdmUsXHJcbn0gZnJvbSAnLi9zcGVjaWFsLWZvcm0vc3BlY2lhbC1mb3JtLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQge1xyXG4gIElMYWJlbEZpZWxkLFxyXG4gIElMYWJlbFNldHRpbmdzLFxyXG4gIElUZXh0QXJlYUZpZWxkLFxyXG4gIElUZXh0QXJlYVNldHRpbmdzLFxyXG4gIElVcGxvYWRGaWVsZCxcclxuICBJVXBsb2FkU2V0dGluZ3MsXHJcbiAgSURyb3Bkb3duRmllbGQsXHJcbiAgSURhdGVQaWNrZXJGaWVsZCxcclxuICBJRGF0ZVBpY2tlclNldHRpbmdzLFxyXG4gIElSaWNoVGV4dEZpZWxkLFxyXG4gIElSaWNoVGV4dFNldHRpbmdzLFxyXG4gIElEcm9wZG93blNldHRpbmdzLFxyXG4gIElNdWx0aXBsZUF1dG9jb21wbGV0ZUZpZWxkLFxyXG4gIElNdWx0aXBsZUF1dG9jb21wbGV0ZVNldHRpbmdzLFxyXG4gIElDaGVja2JveEZpZWxkLFxyXG4gIElDaGVja2JveFNldHRpbmdzLFxyXG4gIElJbnB1dEZpZWxkLFxyXG4gIElJbnB1dFNldHRpbmdzLFxyXG4gIElBdXRvY29tcGxldGVGaWVsZCxcclxuICBJQXV0b2NvbXBsZXRlU2V0dGluZ3MsXHJcbiAgU3BlY2lhbFJpY2h0ZXh0Q29tcG9uZW50LFxyXG4gIFNwZWNpYWxBdXRvY29tcGxldGVDb21wb25lbnQsXHJcbiAgU3BlY2lhbERhdGVwaWNrZXJDb21wb25lbnQsXHJcbiAgU3BlY2lhbERyb3Bkb3duQ29tcG9uZW50LFxyXG4gIFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCxcclxuICBTcGVjaWFsQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgU3BlY2lhbFRleHRBcmVhQ29tcG9uZW50LFxyXG4gIFNwZWNpYWxVcGxvYWRDb21wb25lbnQsXHJcbiAgU3BlY2lhbEFycmF5Q29tcG9uZW50LFxyXG4gIFNwZWNpYWxMYWJlbENvbXBvbmVudCxcclxuICBTcGVjaWFsRm9ybUNvbXBvbmVudCxcclxuICBTcGVjaWFsRm9ybU1vZHVsZSxcclxuICBGb3JtQ29udHJvbHNSZW5kZXJEaXJlY3RpdmUsXHJcbiAgU3BlY2lhbElucHV0Q29tcG9uZW50LFxyXG59O1xyXG4iXX0=
@@ -1,75 +0,0 @@
1
- import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
- import { debounceTime } from 'rxjs/operators';
3
- import { MatAutocompleteModule, } from '@angular/material/autocomplete';
4
- import { Subscription } from 'rxjs';
5
- import { MatInputModule } from '@angular/material/input';
6
- import { CommonModule } from '@angular/common';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import { ReactiveFormsModule } from '@angular/forms';
9
- import { MatButtonModule } from '@angular/material/button';
10
- import { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/material/input";
13
- import * as i2 from "@angular/material/form-field";
14
- import * as i3 from "@angular/common";
15
- import * as i4 from "@angular/material/autocomplete";
16
- import * as i5 from "@angular/material/core";
17
- import * as i6 from "@angular/material/icon";
18
- import * as i7 from "@angular/forms";
19
- import * as i8 from "@angular/material/button";
20
- export class SpecialAutocompleteComponent {
21
- constructor() {
22
- this.subs = new Subscription();
23
- this.configValue = (item) => {
24
- if (!item)
25
- return '';
26
- const fieldName = this.settings.fieldName;
27
- return fieldName instanceof Function ? fieldName(item) : item[fieldName];
28
- };
29
- }
30
- ngOnInit() {
31
- this.init();
32
- }
33
- get settings() {
34
- return this.control.settings;
35
- }
36
- init() {
37
- this.subs.add(this.control.valueChanges.pipe(debounceTime(500)).subscribe((value) => {
38
- if (typeof value === 'string') {
39
- this.settings.getData(value, this.control);
40
- }
41
- }));
42
- }
43
- optionSelected(data) {
44
- this.control.setValue(data.option.value);
45
- if (this.settings.onSelect)
46
- this.settings.onSelect(data.option.value);
47
- }
48
- iconClick(event) {
49
- if (this.settings.iconAction) {
50
- this.settings.iconAction(this.control.value);
51
- event.stopPropagation();
52
- }
53
- }
54
- ngOnDestroy() {
55
- this.subs.unsubscribe();
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SpecialAutocompleteComponent, isStandalone: true, selector: "sp-autocomplete", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\r\n <mat-form-field\r\n class=\"special-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"control\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n @for (\r\n option of settings?.source | async;\r\n track option[settings.fieldId]\r\n ) {\r\n <mat-option [value]=\"option\">\r\n <div class=\"flex items-center\">\r\n @if (settings.fieldImage) {\r\n <img\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n }\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "pipe", type: TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialAutocompleteComponent, decorators: [{
61
- type: Component,
62
- args: [{ standalone: true, selector: 'sp-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
63
- MatInputModule,
64
- CommonModule,
65
- MatAutocompleteModule,
66
- MatIconModule,
67
- ReactiveFormsModule,
68
- MatButtonModule,
69
- ErrorMessagePipe,
70
- TextByFunctionPipe,
71
- ], template: "@if (control && !control.hidden) {\r\n <mat-form-field\r\n class=\"special-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"control\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n @for (\r\n option of settings?.source | async;\r\n track option[settings.fieldId]\r\n ) {\r\n <mat-option [value]=\"option\">\r\n <div class=\"flex items-center\">\r\n @if (settings.fieldImage) {\r\n <img\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n }\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
72
- }], ctorParameters: () => [], propDecorators: { control: [{
73
- type: Input
74
- }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTXBDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7OztBQWtCeEUsTUFBTSxPQUFPLDRCQUE0QjtJQUl2QztRQUZBLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBc0IxQixnQkFBVyxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDMUMsT0FBTyxTQUFTLFlBQVksUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7SUF4QmEsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDWCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFRRCxjQUFjLENBQUMsSUFBa0M7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFZO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7OEdBNUNVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDJHQ25DekMsKzdEQWdFQSxrRkR2Q0ksY0FBYyw2aUNBQ2QsWUFBWSxtRkFDWixxQkFBcUIsdzFCQUNyQixhQUFhLG1MQUNiLG1CQUFtQixzeUJBQ25CLGVBQWUsdUlBQ2YsZ0JBQWdCLGdEQUNoQixrQkFBa0I7OzJGQUdULDRCQUE0QjtrQkFqQnhDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3FCQUNuQjt3REFHUSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgSUF1dG9jb21wbGV0ZUZpZWxkLFxyXG4gIElBdXRvY29tcGxldGVTZXR0aW5ncyxcclxufSBmcm9tICcuL3NwZWNpYWwtYXV0b2NvbXBsZXRlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZVBpcGUsIFRleHRCeUZ1bmN0aW9uUGlwZSB9IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnc3AtYXV0b2NvbXBsZXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIEVycm9yTWVzc2FnZVBpcGUsXHJcbiAgICBUZXh0QnlGdW5jdGlvblBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxBdXRvY29tcGxldGVDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbnRyb2w6IFNwZWNpYWxGb3JtQ29udHJvbDxJQXV0b2NvbXBsZXRlRmllbGQ+O1xyXG4gIHN1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBzZXR0aW5ncygpOiBJQXV0b2NvbXBsZXRlU2V0dGluZ3M8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIHRoaXMuc3Vicy5hZGQoXHJcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLmdldERhdGEodmFsdWUsIHRoaXMuY29udHJvbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ1ZhbHVlID0gKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgaWYgKCFpdGVtKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLnNldHRpbmdzLmZpZWxkTmFtZTtcclxuICAgIHJldHVybiBmaWVsZE5hbWUgaW5zdGFuY2VvZiBGdW5jdGlvbiA/IGZpZWxkTmFtZShpdGVtKSA6IGl0ZW1bZmllbGROYW1lXTtcclxuICB9O1xyXG5cclxuICBvcHRpb25TZWxlY3RlZChkYXRhOiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZGF0YS5vcHRpb24udmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub25TZWxlY3QpIHRoaXMuc2V0dGluZ3Mub25TZWxlY3QoZGF0YS5vcHRpb24udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgaWNvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuaWNvbkFjdGlvbikge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmljb25BY3Rpb24odGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGNvbnRyb2wgJiYgIWNvbnRyb2wuaGlkZGVuKSB7XHJcbiAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICBjbGFzcz1cInNwZWNpYWwtYXV0b2NvbXBsZXRlIHctZnVsbCBtYi0zIHt7IGNvbnRyb2wuc3R5bGVDbGFzc2VzIH19XCJcclxuICAgIFtpZF09XCJjb250cm9sLmVsZW1lbnRJZFwiXHJcbiAgICBbYXBwZWFyYW5jZV09XCJjb250cm9sLmxhYmVsID8gJ291dGxpbmUnIDogJ2ZpbGwnXCJcclxuICA+XHJcbiAgICBAaWYgKGNvbnRyb2wubGFiZWwpIHtcclxuICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICB7eyBjb250cm9sLmxhYmVsIH19XHJcbiAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgfVxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImNvbnRyb2wucmVxdWlyZWRcIlxyXG4gICAgICBbcmVhZG9ubHldPVwiY29udHJvbC5yZWFkT25seVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLnBsYWNlaG9sZGVyXCJcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgLz5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImNvbmZpZ1ZhbHVlXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9wdGlvblNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICBAZm9yIChcclxuICAgICAgICBvcHRpb24gb2Ygc2V0dGluZ3M/LnNvdXJjZSB8IGFzeW5jO1xyXG4gICAgICAgIHRyYWNrIG9wdGlvbltzZXR0aW5ncy5maWVsZElkXVxyXG4gICAgICApIHtcclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgQGlmIChzZXR0aW5ncy5maWVsZEltYWdlKSB7XHJcbiAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTggcHItMlwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgW3NyY109XCJvcHRpb24gfCB0ZXh0QnlGdW5jdGlvbjogc2V0dGluZ3MuZmllbGRJbWFnZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICB7eyBvcHRpb24gfCB0ZXh0QnlGdW5jdGlvbjogc2V0dGluZ3MuZmllbGROYW1lIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgQGlmIChjb250cm9sLmljb24pIHtcclxuICAgICAgPG1hdC1pY29uIG1hdFByZWZpeD57eyBjb250cm9sLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgfVxyXG4gICAgQGlmIChzZXR0aW5ncy5pY29uKSB7XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeCAoY2xpY2spPVwiaWNvbkNsaWNrKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LWljb24+XHJcbiAgICAgICAgICB7eyBzZXR0aW5ncy5pY29uIH19XHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbnRyb2wudG9vbHRpcCkge1xyXG4gICAgICA8bWF0LWhpbnQ+e3sgY29udHJvbC50b29sdGlwIH19PC9tYXQtaGludD5cclxuICAgIH1cclxuICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgIHt7IGNvbnRyb2wuZXJyb3JzIHwgZXJyb3JNZXNzYWdlOiBjb250cm9sLmVycm9yTWVzc2FnZXMgfX1cclxuICAgIDwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1hdXRvY29tcGxldGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uLy4uL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSUZpZWxkRGF0YSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBdXRvY29tcGxldGVTZXR0aW5nczxUPiB7XHJcbiAgZ2V0RGF0YTogKHF1ZXJ5OiBzdHJpbmcsIGNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2wpID0+IHZvaWQ7XHJcbiAgc291cmNlOiBPYnNlcnZhYmxlPFRbXT47XHJcbiAgZmllbGRJZDogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkFjdGlvbj86IChkYXRhOiBUKSA9PiB2b2lkO1xyXG4gIG9uU2VsZWN0PzogKGRhdGE6IFQpID0+IHZvaWQ7XHJcbiAgZmllbGROYW1lOiBzdHJpbmcgfCAoKGE/OiBUKSA9PiBzdHJpbmcpO1xyXG4gIGZpZWxkSW1hZ2U/OiBzdHJpbmcgfCAoKGE/OiBUKSA9PiBzdHJpbmcpO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBdXRvY29tcGxldGVGaWVsZDxUID0gYW55PiBleHRlbmRzIElGaWVsZERhdGEge1xyXG4gIHNldHRpbmdzOiBJQXV0b2NvbXBsZXRlU2V0dGluZ3M8VD47XHJcbiAgdHlwZTogRUNvbnRyb2xUeXBlcy5hdXRvY29tcGxldGU7XHJcbiAgZGVmYXVsdFZhbHVlOiBUO1xyXG59XHJcbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatCheckboxModule } from '@angular/material/checkbox';
6
- import { MatIconModule } from '@angular/material/icon';
7
- import { MatInputModule } from '@angular/material/input';
8
- import { ErrorMessagePipe } from '../../core/pipes';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "@angular/material/checkbox";
12
- import * as i3 from "@angular/material/form-field";
13
- import * as i4 from "@angular/material/icon";
14
- export class SpecialCheckboxComponent {
15
- get settings() {
16
- return this.control.settings;
17
- }
18
- constructor() { }
19
- ngOnInit() { }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SpecialCheckboxComponent, isStandalone: true, selector: "sp-checkbox", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\r\n <div\r\n [id]=\"control.elementId\"\r\n class=\"special-checkbox w-full mb-3 flex flex-col {{\r\n control.styleClasses\r\n }}\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <mat-checkbox\r\n [required]=\"control.required\"\r\n [ngModel]=\"control.value\"\r\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\r\n [indeterminate]=\"settings.indeterminate\"\r\n [labelPosition]=\"settings.labelPosition\"\r\n [color]=\"settings.color\"\r\n [disabled]=\"control.disabled\"\r\n >\r\n @if (control.icon) {\r\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\r\n }\r\n {{ control.placeholder }}\r\n </mat-checkbox>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialCheckboxComponent, decorators: [{
24
- type: Component,
25
- args: [{ standalone: true, selector: 'sp-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
26
- FormsModule,
27
- MatCheckboxModule,
28
- CommonModule,
29
- MatInputModule,
30
- MatIconModule,
31
- ReactiveFormsModule,
32
- MatButtonModule,
33
- ErrorMessagePipe,
34
- ], template: "@if (control && !control.hidden) {\r\n <div\r\n [id]=\"control.elementId\"\r\n class=\"special-checkbox w-full mb-3 flex flex-col {{\r\n control.styleClasses\r\n }}\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <mat-checkbox\r\n [required]=\"control.required\"\r\n [ngModel]=\"control.value\"\r\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\r\n [indeterminate]=\"settings.indeterminate\"\r\n [labelPosition]=\"settings.labelPosition\"\r\n [color]=\"settings.color\"\r\n [disabled]=\"control.disabled\"\r\n >\r\n @if (control.icon) {\r\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\r\n }\r\n {{ control.placeholder }}\r\n </mat-checkbox>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
35
- }], ctorParameters: () => [], propDecorators: { control: [{
36
- type: Input
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWNoZWNrYm94L3NwZWNpYWwtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1jaGVja2JveC9zcGVjaWFsLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUFxQnBELE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBQ0QsZ0JBQWUsQ0FBQztJQUNoQixRQUFRLEtBQVUsQ0FBQzs4R0FQUix3QkFBd0I7a0dBQXhCLHdCQUF3Qix1R0NqQ3JDLGkxQkE0QkEsa0ZETEksV0FBVywyakJBQ1gsaUJBQWlCLG9ZQUNqQixZQUFZLDhCQUNaLGNBQWMsZ09BQ2QsYUFBYSxtTEFDYixtQkFBbUIsOEJBQ25CLGVBQWU7OzJGQUlOLHdCQUF3QjtrQkFqQnBDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakI7d0RBR1EsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZVBpcGUgfSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzJztcclxuaW1wb3J0IHsgU3BlY2lhbEZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS9mb3Jtcy9zcGVjaWFsLWZvcm1zJztcclxuaW1wb3J0IHsgSUNoZWNrYm94RmllbGQsIElDaGVja2JveFNldHRpbmdzIH0gZnJvbSAnLi9zcGVjaWFsLWNoZWNrYm94LmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnc3AtY2hlY2tib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWNoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBFcnJvck1lc3NhZ2VQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVjaWFsQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGNvbnRyb2whOiBTcGVjaWFsRm9ybUNvbnRyb2w8SUNoZWNrYm94RmllbGQ+O1xyXG5cclxuICBnZXQgc2V0dGluZ3MoKTogSUNoZWNrYm94U2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5zZXR0aW5ncztcclxuICB9XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcblxyXG59XHJcbiIsIkBpZiAoY29udHJvbCAmJiAhY29udHJvbC5oaWRkZW4pIHtcclxuICA8ZGl2XHJcbiAgICBbaWRdPVwiY29udHJvbC5lbGVtZW50SWRcIlxyXG4gICAgY2xhc3M9XCJzcGVjaWFsLWNoZWNrYm94IHctZnVsbCBtYi0zIGZsZXggZmxleC1jb2wge3tcclxuICAgICAgY29udHJvbC5zdHlsZUNsYXNzZXNcclxuICAgIH19XCJcclxuICA+XHJcbiAgICBAaWYgKGNvbnRyb2wubGFiZWwpIHtcclxuICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICB7eyBjb250cm9sLmxhYmVsIH19XHJcbiAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgfVxyXG4gICAgPG1hdC1jaGVja2JveFxyXG4gICAgICBbcmVxdWlyZWRdPVwiY29udHJvbC5yZXF1aXJlZFwiXHJcbiAgICAgIFtuZ01vZGVsXT1cImNvbnRyb2wudmFsdWVcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjb250cm9sLnNldFZhbHVlKCRldmVudCk7IGNvbnRyb2wubWFya0FzRGlydHkoKVwiXHJcbiAgICAgIFtpbmRldGVybWluYXRlXT1cInNldHRpbmdzLmluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICBbbGFiZWxQb3NpdGlvbl09XCJzZXR0aW5ncy5sYWJlbFBvc2l0aW9uXCJcclxuICAgICAgW2NvbG9yXT1cInNldHRpbmdzLmNvbG9yXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxyXG4gICAgPlxyXG4gICAgICBAaWYgKGNvbnRyb2wuaWNvbikge1xyXG4gICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+e3sgY29udHJvbC5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgfVxyXG4gICAgICB7eyBjb250cm9sLnBsYWNlaG9sZGVyIH19XHJcbiAgICA8L21hdC1jaGVja2JveD5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
@@ -1,3 +0,0 @@
1
- ;
2
- export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1jaGVja2JveC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWNoZWNrYm94L3NwZWNpYWwtY2hlY2tib3guaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uLy4uL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSUZpZWxkRGF0YSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDaGVja2JveFNldHRpbmdze1xyXG4gIGxhYmVsUG9zaXRpb24/OiAnYmVmb3JlJyB8ICdhZnRlcic7XHJcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XHJcbiAgY29sb3I/OiBUaGVtZVBhbGV0dGU7XHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDaGVja2JveEZpZWxkIGV4dGVuZHMgSUZpZWxkRGF0YSB7XHJcbiAgc2V0dGluZ3M6IElDaGVja2JveFNldHRpbmdzO1xyXG4gIHR5cGU6IEVDb250cm9sVHlwZXMuY2hlY2tib3g7XHJcbiAgZGVmYXVsdFZhbHVlOiBib29sZWFuO1xyXG59XHJcbiJdfQ==
@@ -1,42 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatNativeDateModule } from '@angular/material/core';
6
- import { MatDatepickerModule } from '@angular/material/datepicker';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import { MatInputModule } from '@angular/material/input';
9
- import { ErrorMessagePipe } from '../../core/pipes';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/material/input";
12
- import * as i2 from "@angular/material/form-field";
13
- import * as i3 from "@angular/material/datepicker";
14
- import * as i4 from "@angular/forms";
15
- export class SpecialDatepickerComponent {
16
- constructor() { }
17
- get settings() {
18
- return this.control.settings;
19
- }
20
- get startAt() {
21
- return this.settings?.startAt || new Date();
22
- }
23
- ngOnInit() { }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SpecialDatepickerComponent, isStandalone: true, selector: "sp-datepicker", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [readonly]=\"control.readOnly\"\r\n [matDatepicker]=\"picker\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\r\n </mat-datepicker>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "ngmodule", type: MatNativeDateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialDatepickerComponent, decorators: [{
28
- type: Component,
29
- args: [{ standalone: true, selector: 'sp-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
30
- MatInputModule,
31
- MatDatepickerModule,
32
- CommonModule,
33
- MatIconModule,
34
- ReactiveFormsModule,
35
- MatButtonModule,
36
- ErrorMessagePipe,
37
- MatNativeDateModule,
38
- ], template: "@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [readonly]=\"control.readOnly\"\r\n [matDatepicker]=\"picker\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\r\n </mat-datepicker>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
39
- }], ctorParameters: () => [], propDecorators: { control: [{
40
- type: Input
41
- }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZGF0ZXBpY2tlci9zcGVjaWFsLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1kYXRlcGlja2VyL3NwZWNpYWwtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUFzQnBELE1BQU0sT0FBTywwQkFBMEI7SUFHckMsZ0JBQWUsQ0FBQztJQUVoQixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDOzhHQWJSLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHlHQ3BDdkMsNCtCQStCQSxrRkRMSSxjQUFjLDQ2QkFDZCxtQkFBbUIsaWdCQUNuQixZQUFZLDhCQUNaLGFBQWEsOEJBQ2IsbUJBQW1CLHN5QkFDbkIsZUFBZSwwQkFDZixnQkFBZ0Isb0RBQ2hCLG1CQUFtQjs7MkZBR1YsMEJBQTBCO2tCQWpCdEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUNwQjt3REFHUSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VQaXBlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgSURhdGVQaWNrZXJGaWVsZCxcclxuICBJRGF0ZVBpY2tlclNldHRpbmdzLFxyXG59IGZyb20gJy4vc3BlY2lhbC1kYXRlcGlja2VyLmludGVyZmFjZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdzcC1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIEVycm9yTWVzc2FnZVBpcGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVjaWFsRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgY29udHJvbCE6IFNwZWNpYWxGb3JtQ29udHJvbDxJRGF0ZVBpY2tlckZpZWxkPjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBnZXQgc2V0dGluZ3MoKTogSURhdGVQaWNrZXJTZXR0aW5ncyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXJ0QXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncz8uc3RhcnRBdCB8fCBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG59XHJcbiIsIkBpZiAoY29udHJvbCAmJiAhY29udHJvbC5oaWRkZW4pIHtcclxuICA8bWF0LWZvcm0tZmllbGRcclxuICAgIFtpZF09XCJjb250cm9sLmVsZW1lbnRJZFwiXHJcbiAgICBjbGFzcz1cInNwZWNpYWwtZGF0ZXBpY2tlciB3LWZ1bGwgbWItMyAge3sgY29udHJvbC5zdHlsZUNsYXNzZXMgfX1cIlxyXG4gICAgW2FwcGVhcmFuY2VdPVwiY29udHJvbC5sYWJlbCA/ICdvdXRsaW5lJyA6ICdmaWxsJ1wiXHJcbiAgPlxyXG4gICAgQGlmIChjb250cm9sLmxhYmVsKSB7XHJcbiAgICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgICAge3sgY29udHJvbC5sYWJlbCB9fVxyXG4gICAgICA8L21hdC1sYWJlbD5cclxuICAgIH1cclxuICAgIDxpbnB1dFxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBbcmVhZG9ubHldPVwiY29udHJvbC5yZWFkT25seVwiXHJcbiAgICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJjb250cm9sLnJlcXVpcmVkXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyIHN0YXJ0Vmlldz1cInllYXJcIiBbc3RhcnRBdF09XCJzdGFydEF0XCI+XHJcbiAgICA8L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPG1hdC1oaW50PlxyXG4gICAgICB7eyBjb250cm9sLnRvb2x0aXAgfX1cclxuICAgIDwvbWF0LWhpbnQ+XHJcbiAgICA8bWF0LWVycm9yPlxyXG4gICAgICB7eyBjb250cm9sLmVycm9ycyB8IGVycm9yTWVzc2FnZTogY29udHJvbC5lcnJvck1lc3NhZ2VzIH19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbiJdfQ==
@@ -1,3 +0,0 @@
1
- ;
2
- export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1kYXRlcGlja2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZGF0ZXBpY2tlci9zcGVjaWFsLWRhdGVwaWNrZXIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vY29yZS9hdXgtZGF0YS9jb250cm9sLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQgeyBJRmllbGREYXRhIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVQaWNrZXJTZXR0aW5nc3tcclxuICBsb3dlckxpbWl0PzogbnVtYmVyO1xyXG4gIHVwcGVyTGltaXQ/OiBudW1iZXI7XHJcbiAgc3RhcnRBdD86IERhdGU7XHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlUGlja2VyRmllbGQgZXh0ZW5kcyBJRmllbGREYXRhIHtcclxuICBzZXR0aW5nczogSURhdGVQaWNrZXJTZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmRhdGU7XHJcbiAgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -1,47 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MatSelectModule } from '@angular/material/select';
4
- import { ReactiveFormsModule } from '@angular/forms';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { MatButtonModule } from '@angular/material/button';
7
- import { ErrorMessagePipe, TextByFunctionPipe, } from '../../core/pipes';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/material/form-field";
11
- import * as i3 from "@angular/material/select";
12
- import * as i4 from "@angular/material/core";
13
- import * as i5 from "@angular/forms";
14
- import * as i6 from "@angular/material/icon";
15
- import * as i7 from "@angular/material/button";
16
- export class SpecialDropdownComponent {
17
- get settings() {
18
- return this.control.settings;
19
- }
20
- iconClick(event) {
21
- if (this.settings.iconAction) {
22
- this.settings.iconAction(this.control.value);
23
- event.stopPropagation();
24
- }
25
- }
26
- optionSelected(value) {
27
- if (this.settings.onSelect)
28
- this.settings.onSelect(value);
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SpecialDropdownComponent, isStandalone: true, selector: "sp-dropdown", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-dropdown w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <mat-select\r\n [formControl]=\"control\"\r\n [required]=\"control.required\"\r\n (selectionChange)=\"optionSelected($event.value)\"\r\n [placeholder]=\"control.placeholder\"\r\n >\r\n @if (!control.required) {\r\n <mat-option [value]=\"null\">\r\n {{ control.placeholder || settings.notSelectedText }}\r\n </mat-option>\r\n }\r\n @for (item of settings.source | async; track item[settings.fieldId]) {\r\n <mat-option [value]=\"item[settings.fieldId]\">\r\n {{ item | textByFunction: settings.fieldName }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialDropdownComponent, decorators: [{
34
- type: Component,
35
- args: [{ standalone: true, selector: 'sp-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
36
- CommonModule,
37
- MatSelectModule,
38
- ReactiveFormsModule,
39
- ErrorMessagePipe,
40
- MatIconModule,
41
- MatButtonModule,
42
- TextByFunctionPipe,
43
- ], template: "@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-dropdown w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <mat-select\r\n [formControl]=\"control\"\r\n [required]=\"control.required\"\r\n (selectionChange)=\"optionSelected($event.value)\"\r\n [placeholder]=\"control.placeholder\"\r\n >\r\n @if (!control.required) {\r\n <mat-option [value]=\"null\">\r\n {{ control.placeholder || settings.notSelectedText }}\r\n </mat-option>\r\n }\r\n @for (item of settings.source | async; track item[settings.fieldId]) {\r\n <mat-option [value]=\"item[settings.fieldId]\">\r\n {{ item | textByFunction: settings.fieldName }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
44
- }], propDecorators: { control: [{
45
- type: Input
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWRyb3Bkb3duL3NwZWNpYWwtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1kcm9wZG93bi9zcGVjaWFsLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7O0FBaUIxQixNQUFNLE9BQU8sd0JBQXdCO0lBR25DLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFZO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs4R0FoQlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsdUdDaENyQyxxL0NBOENBLGtGRHZCSSxZQUFZLG1GQUNaLGVBQWUsczNDQUNmLG1CQUFtQixraEJBQ25CLGdCQUFnQixvREFDaEIsYUFBYSxtTEFDYixlQUFlLHVJQUNmLGtCQUFrQjs7MkZBR1Qsd0JBQXdCO2tCQWhCcEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjtxQkFDbkI7OEJBR1EsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcbmltcG9ydCB7IElEcm9wZG93bkZpZWxkLCBJRHJvcGRvd25TZXR0aW5ncyB9IGZyb20gJy4vc3BlY2lhbC1kcm9wZG93bi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7XHJcbiAgRXJyb3JNZXNzYWdlUGlwZSxcclxuICBUZXh0QnlGdW5jdGlvblBpcGUsXHJcbn0gZnJvbSAnLi4vLi4vY29yZS9waXBlcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdzcC1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpYWwtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRXJyb3JNZXNzYWdlUGlwZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBUZXh0QnlGdW5jdGlvblBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxEcm9wZG93bkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29udHJvbCE6IFNwZWNpYWxGb3JtQ29udHJvbDxJRHJvcGRvd25GaWVsZD47XHJcblxyXG4gIGdldCBzZXR0aW5ncygpOiBJRHJvcGRvd25TZXR0aW5ncyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgaWNvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuaWNvbkFjdGlvbikge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmljb25BY3Rpb24odGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcHRpb25TZWxlY3RlZCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vblNlbGVjdCkgdGhpcy5zZXR0aW5ncy5vblNlbGVjdCh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoY29udHJvbCAmJiAhY29udHJvbC5oaWRkZW4pIHtcclxuICA8bWF0LWZvcm0tZmllbGRcclxuICAgIFtpZF09XCJjb250cm9sLmVsZW1lbnRJZFwiXHJcbiAgICBjbGFzcz1cInNwZWNpYWwtZHJvcGRvd24gdy1mdWxsIG1iLTMge3sgY29udHJvbC5zdHlsZUNsYXNzZXMgfX1cIlxyXG4gICAgW2FwcGVhcmFuY2VdPVwiY29udHJvbC5sYWJlbCA/ICdvdXRsaW5lJyA6ICdmaWxsJ1wiXHJcbiAgPlxyXG4gICAgQGlmIChjb250cm9sLmxhYmVsKSB7XHJcbiAgICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgICAge3sgY29udHJvbC5sYWJlbCB9fVxyXG4gICAgICA8L21hdC1sYWJlbD5cclxuICAgIH1cclxuICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImNvbnRyb2wucmVxdWlyZWRcIlxyXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9wdGlvblNlbGVjdGVkKCRldmVudC52YWx1ZSlcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXHJcbiAgICA+XHJcbiAgICAgIEBpZiAoIWNvbnRyb2wucmVxdWlyZWQpIHtcclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlxyXG4gICAgICAgICAge3sgY29udHJvbC5wbGFjZWhvbGRlciB8fCBzZXR0aW5ncy5ub3RTZWxlY3RlZFRleHQgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIH1cclxuICAgICAgQGZvciAoaXRlbSBvZiBzZXR0aW5ncy5zb3VyY2UgfCBhc3luYzsgdHJhY2sgaXRlbVtzZXR0aW5ncy5maWVsZElkXSkge1xyXG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtW3NldHRpbmdzLmZpZWxkSWRdXCI+XHJcbiAgICAgICAgICB7eyBpdGVtIHwgdGV4dEJ5RnVuY3Rpb246IHNldHRpbmdzLmZpZWxkTmFtZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgQGlmIChzZXR0aW5ncy5pY29uKSB7XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeCAoY2xpY2spPVwiaWNvbkNsaWNrKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LWljb24+XHJcbiAgICAgICAgICB7eyBzZXR0aW5ncy5pY29uIH19XHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbnRyb2wuaWNvbikge1xyXG4gICAgICA8bWF0LWljb24gbWF0UHJlZml4Pnt7IGNvbnRyb2wuaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbnRyb2wudG9vbHRpcCkge1xyXG4gICAgICA8bWF0LWhpbnQ+e3sgY29udHJvbC50b29sdGlwIH19PC9tYXQtaGludD5cclxuICAgIH1cclxuICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgIHt7IGNvbnRyb2wuZXJyb3JzIHwgZXJyb3JNZXNzYWdlOiBjb250cm9sLmVycm9yTWVzc2FnZXMgfX1cclxuICAgIDwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbn1cclxuIl19
@@ -1,3 +0,0 @@
1
- ;
2
- export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1kcm9wZG93bi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWRyb3Bkb3duL3NwZWNpYWwtZHJvcGRvd24uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVDb250cm9sVHlwZXMgfSBmcm9tICcuLi8uLi9jb3JlL2F1eC1kYXRhL2NvbnRyb2wtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IElGaWVsZERhdGEgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMvZmllbGQtYmFzaWNzLmludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHJvcGRvd25TZXR0aW5nc3tcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIG9uU2VsZWN0PzogKGRhdGE6IGFueSkgPT4gdm9pZDtcclxuICBpY29uQWN0aW9uPzogKGRhdGE6IGFueSkgPT4gdm9pZDtcclxuICBzb3VyY2U6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGZpZWxkSWQ6IHN0cmluZztcclxuICBmaWVsZE5hbWU6IHN0cmluZyB8ICgoYT86IGFueSkgPT4gc3RyaW5nKTtcclxuICBub3RTZWxlY3RlZFRleHQ/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEcm9wZG93bkZpZWxkIGV4dGVuZHMgSUZpZWxkRGF0YSB7XHJcbiAgc2V0dGluZ3M6IElEcm9wZG93blNldHRpbmdzO1xyXG4gIHR5cGU6IEVDb250cm9sVHlwZXMuZHJvcGRvd247XHJcbiAgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -1,99 +0,0 @@
1
- import { ChangeDetectionStrategy, Directive, } from '@angular/core';
2
- import { Component, Input } from '@angular/core';
3
- import { EControlTypes } from '../../core/aux-data/control-types.enum';
4
- import { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';
5
- import { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';
6
- import { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';
7
- import { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';
8
- import { SpecialInputComponent } from '../special-input/special-input.component';
9
- import { SpecialLabelComponent } from '../special-label/special-label.component';
10
- import { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';
11
- import { SpecialRichtextComponent } from '../special-richtext/special-richtext.component';
12
- import { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';
13
- import { SpecialUploadComponent } from '../special-upload/special-upload.component';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "../../core/pipes/controls-list-pipe/controls-list.pipe";
16
- import * as i2 from "@angular/common";
17
- import * as i3 from "@angular/material/button";
18
- export class SpecialFormComponent {
19
- set control(form) {
20
- this.form = form;
21
- }
22
- ngOnInit() { }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SpecialFormComponent, selector: "sp-form", inputs: { form: ["control", "form"] }, ngImport: i0, template: "@if (form && !form.hidden) {\r\n <div\r\n [id]=\"form.elementId\"\r\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\r\n >\r\n @if (form) {\r\n <div\r\n [class]=\"\r\n form.label\r\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\r\n : 'container'\r\n \"\r\n >\r\n @if (form.label) {\r\n <h1 class=\"font-bold py-3\">{{ form.label }}</h1>\r\n }\r\n <div class=\"w-full flex flex-wrap\">\r\n @for (control of form.controls | controlsList; track control.name) {\r\n <ng-template controlRender [control]=\"control\"></ng-template>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => FormControlsRenderDirective), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(() => i1.FormControlsListPipe), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormComponent, decorators: [{
27
- type: Component,
28
- args: [{ selector: 'sp-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (form && !form.hidden) {\r\n <div\r\n [id]=\"form.elementId\"\r\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\r\n >\r\n @if (form) {\r\n <div\r\n [class]=\"\r\n form.label\r\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\r\n : 'container'\r\n \"\r\n >\r\n @if (form.label) {\r\n <h1 class=\"font-bold py-3\">{{ form.label }}</h1>\r\n }\r\n <div class=\"w-full flex flex-wrap\">\r\n @for (control of form.controls | controlsList; track control.name) {\r\n <ng-template controlRender [control]=\"control\"></ng-template>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
29
- }], propDecorators: { form: [{
30
- type: Input,
31
- args: ['control']
32
- }] } });
33
- export class SpecialArrayComponent {
34
- set control(formArray) {
35
- this.formArray = formArray;
36
- }
37
- get withFormHeader() {
38
- return this.formArray.settings.withFormHeader;
39
- }
40
- get settings() {
41
- return this.formArray.settings;
42
- }
43
- constructor() { }
44
- ngOnInit() { }
45
- removeItem(index) {
46
- this.formArray.removeAt(index);
47
- }
48
- addItem() {
49
- this.formArray.addItem();
50
- }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialArrayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SpecialArrayComponent, selector: "sp-array", inputs: { formArray: ["control", "formArray"] }, ngImport: i0, template: "@if (formArray && !formArray.hidden) {\r\n <div\r\n [id]=\"formArray.elementId\"\r\n class=\"special-form-array w-full box-border p-2 {{\r\n formArray.styleClasses\r\n }}\"\r\n >\r\n <div\r\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\r\n >\r\n @if (formArray.label) {\r\n <h1 class=\"font-bold py-3\">\r\n {{ formArray.label }}\r\n </h1>\r\n }\r\n <div class=\"divide-y divide-x-0 divide-solid divide-slate-200\">\r\n @if (formArray.form) {\r\n <div\r\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\r\n class=\"grid gap-4 grid-cols-12\"\r\n >\r\n @if (!withFormHeader) {\r\n @for (\r\n item of formArray.form.controls | controlsList;\r\n track item.name\r\n ) {\r\n <h2 [class]=\"item.styleClasses\">\r\n {{ item.label }}\r\n </h2>\r\n }\r\n @if (settings.withActionButtons) {\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n ></div>\r\n }\r\n } @else {\r\n @for (\r\n item of formArray.form.controls | controlsList;\r\n track item.name\r\n ) {\r\n <ng-template controlRender [control]=\"item\"></ng-template>\r\n }\r\n @if (settings.withActionButtons) {\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n >\r\n <button\r\n mat-flat-button\r\n color=\"primary\"\r\n [disabled]=\"formArray.form.invalid\"\r\n (click)=\"addItem()\"\r\n >\r\n {{ settings.addActionLabel || \"Add\" }}\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @for (\r\n formGroup of formArray.controls;\r\n track formGroup.name;\r\n let i = $index\r\n ) {\r\n <div class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\">\r\n @for (item of formGroup.controls | controlsList; track item.name) {\r\n <ng-template controlRender [control]=\"item\"></ng-template>\r\n }\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n >\r\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\r\n {{ settings.removeActionLabel || \"Remove\" }}\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i0.forwardRef(() => FormControlsRenderDirective), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(() => i1.FormControlsListPipe), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
- }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialArrayComponent, decorators: [{
55
- type: Component,
56
- args: [{ selector: 'sp-array', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (formArray && !formArray.hidden) {\r\n <div\r\n [id]=\"formArray.elementId\"\r\n class=\"special-form-array w-full box-border p-2 {{\r\n formArray.styleClasses\r\n }}\"\r\n >\r\n <div\r\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\r\n >\r\n @if (formArray.label) {\r\n <h1 class=\"font-bold py-3\">\r\n {{ formArray.label }}\r\n </h1>\r\n }\r\n <div class=\"divide-y divide-x-0 divide-solid divide-slate-200\">\r\n @if (formArray.form) {\r\n <div\r\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\r\n class=\"grid gap-4 grid-cols-12\"\r\n >\r\n @if (!withFormHeader) {\r\n @for (\r\n item of formArray.form.controls | controlsList;\r\n track item.name\r\n ) {\r\n <h2 [class]=\"item.styleClasses\">\r\n {{ item.label }}\r\n </h2>\r\n }\r\n @if (settings.withActionButtons) {\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n ></div>\r\n }\r\n } @else {\r\n @for (\r\n item of formArray.form.controls | controlsList;\r\n track item.name\r\n ) {\r\n <ng-template controlRender [control]=\"item\"></ng-template>\r\n }\r\n @if (settings.withActionButtons) {\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n >\r\n <button\r\n mat-flat-button\r\n color=\"primary\"\r\n [disabled]=\"formArray.form.invalid\"\r\n (click)=\"addItem()\"\r\n >\r\n {{ settings.addActionLabel || \"Add\" }}\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @for (\r\n formGroup of formArray.controls;\r\n track formGroup.name;\r\n let i = $index\r\n ) {\r\n <div class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\">\r\n @for (item of formGroup.controls | controlsList; track item.name) {\r\n <ng-template controlRender [control]=\"item\"></ng-template>\r\n }\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n >\r\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\r\n {{ settings.removeActionLabel || \"Remove\" }}\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
57
- }], ctorParameters: () => [], propDecorators: { formArray: [{
58
- type: Input,
59
- args: ['control']
60
- }] } });
61
- export class FormControlsRenderDirective {
62
- set controlSetter(control) {
63
- this.viewContainer.clear();
64
- const component = this.componentsBuffer[control.type];
65
- if (component) {
66
- const componentRef = this.viewContainer.createComponent(component);
67
- componentRef.instance.control = control;
68
- }
69
- }
70
- constructor(viewContainer) {
71
- this.viewContainer = viewContainer;
72
- this.componentsBuffer = {
73
- [EControlTypes.autocomplete]: SpecialAutocompleteComponent,
74
- [EControlTypes.checkbox]: SpecialCheckboxComponent,
75
- [EControlTypes.date]: SpecialDatepickerComponent,
76
- [EControlTypes.dropdown]: SpecialDropdownComponent,
77
- [EControlTypes.array]: SpecialArrayComponent,
78
- [EControlTypes.input]: SpecialInputComponent,
79
- [EControlTypes.multiple]: SpecialMultipleAutocompleteComponent,
80
- [EControlTypes.textArea]: SpecialTextAreaComponent,
81
- [EControlTypes.label]: SpecialLabelComponent,
82
- [EControlTypes.upload]: SpecialUploadComponent,
83
- [EControlTypes.form]: SpecialFormComponent,
84
- [EControlTypes.richText]: SpecialRichtextComponent,
85
- };
86
- }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormControlsRenderDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
88
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: FormControlsRenderDirective, selector: "[controlRender]", inputs: { controlSetter: ["control", "controlSetter"] }, ngImport: i0 }); }
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormControlsRenderDirective, decorators: [{
91
- type: Directive,
92
- args: [{
93
- selector: `[controlRender]`,
94
- }]
95
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { controlSetter: [{
96
- type: Input,
97
- args: ['control']
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1mb3JtL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTXZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQVFwRixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLElBQUksT0FBTyxDQUFDLElBQXNCO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxRQUFRLEtBQVUsQ0FBQzs4R0FMUixvQkFBb0I7a0dBQXBCLG9CQUFvQixzRkM3QmpDLCt2QkF5QkEsdUdEZ0RhLDJCQUEyQjs7MkZBNUMzQixvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsU0FBUyxtQkFHRix1QkFBdUIsQ0FBQyxNQUFNOzhCQUc3QixJQUFJO3NCQUFyQixLQUFLO3VCQUFDLFNBQVM7O0FBYWxCLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsSUFBSSxPQUFPLENBQUMsU0FBYztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRWIsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBeEJVLHFCQUFxQjtrR0FBckIscUJBQXFCLGlHRTNDbEMsZzhGQWlGQSw0YUZSYSwyQkFBMkI7OzJGQTlCM0IscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTTt3REFHN0IsU0FBUztzQkFBMUIsS0FBSzt1QkFBQyxTQUFTOztBQTZCbEIsTUFBTSxPQUFPLDJCQUEyQjtJQWV0QyxJQUFzQixhQUFhLENBQUMsT0FBZ0M7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLFNBQVMsR0FBSSxJQUFJLENBQUMsZ0JBQXdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsRSxZQUFZLENBQUMsUUFBZ0IsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsYUFBK0I7UUFBL0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBdkJsQyxxQkFBZ0IsR0FBRztZQUNsQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSw0QkFBNEI7WUFDMUQsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsd0JBQXdCO1lBQ2xELENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLDBCQUEwQjtZQUNoRCxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSx3QkFBd0I7WUFDbEQsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUscUJBQXFCO1lBQzVDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLHFCQUFxQjtZQUM1QyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxvQ0FBb0M7WUFDOUQsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsd0JBQXdCO1lBQ2xELENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLHFCQUFxQjtZQUM1QyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxzQkFBc0I7WUFDOUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsb0JBQW9CO1lBQzFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHdCQUF3QjtTQUNuRCxDQUFDO0lBVW9ELENBQUM7OEdBeEI1QywyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QjtxRkFnQnVCLGFBQWE7c0JBQWxDLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRGlyZWN0aXZlLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vY29yZS9hdXgtZGF0YS9jb250cm9sLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIFNwZWNpYWxGb3JtR3JvdXAsXHJcbiAgU3BlY2lhbEZvcm1Db250cm9sLFxyXG4gIFNwZWNpYWxGb3JtQXJyYXlcclxufSBmcm9tICcuLi8uLi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xyXG5pbXBvcnQgeyBTcGVjaWFsQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1jaGVja2JveC9zcGVjaWFsLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWNpYWxEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1kYXRlcGlja2VyL3NwZWNpYWwtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWRyb3Bkb3duL3NwZWNpYWwtZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1pbnB1dC9zcGVjaWFsLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWNpYWxMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtbGFiZWwvc3BlY2lhbC1sYWJlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsUmljaHRleHRDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLXJpY2h0ZXh0L3NwZWNpYWwtcmljaHRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtdXBsb2FkL3NwZWNpYWwtdXBsb2FkLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgnY29udHJvbCcpIGZvcm06IFNwZWNpYWxGb3JtR3JvdXA7XHJcbiAgc2V0IGNvbnRyb2woZm9ybTogU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwLWFycmF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1mb3JtLWFycmF5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxBcnJheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCdjb250cm9sJykgZm9ybUFycmF5OiBhbnk7XHJcblxyXG4gIHNldCBjb250cm9sKGZvcm1BcnJheTogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1BcnJheSA9IGZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldCB3aXRoRm9ybUhlYWRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheS5zZXR0aW5ncy53aXRoRm9ybUhlYWRlcjtcclxuICB9XHJcblxyXG4gIGdldCBzZXR0aW5ncygpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheS5zZXR0aW5ncztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcbiAgYWRkSXRlbSgpIHtcclxuICAgIHRoaXMuZm9ybUFycmF5LmFkZEl0ZW0oKTtcclxuICB9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBgW2NvbnRyb2xSZW5kZXJdYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sc1JlbmRlckRpcmVjdGl2ZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRzQnVmZmVyID0ge1xyXG4gICAgW0VDb250cm9sVHlwZXMuYXV0b2NvbXBsZXRlXTogU3BlY2lhbEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmNoZWNrYm94XTogU3BlY2lhbENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMuZGF0ZV06IFNwZWNpYWxEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMuZHJvcGRvd25dOiBTcGVjaWFsRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBbRUNvbnRyb2xUeXBlcy5hcnJheV06IFNwZWNpYWxBcnJheUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmlucHV0XTogU3BlY2lhbElucHV0Q29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMubXVsdGlwbGVdOiBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQsXHJcbiAgICBbRUNvbnRyb2xUeXBlcy50ZXh0QXJlYV06IFNwZWNpYWxUZXh0QXJlYUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmxhYmVsXTogU3BlY2lhbExhYmVsQ29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMudXBsb2FkXTogU3BlY2lhbFVwbG9hZENvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmZvcm1dOiBTcGVjaWFsRm9ybUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLnJpY2hUZXh0XTogU3BlY2lhbFJpY2h0ZXh0Q29tcG9uZW50LFxyXG4gIH07XHJcbiAgQElucHV0KCdjb250cm9sJykgc2V0IGNvbnRyb2xTZXR0ZXIoY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPGFueT4pIHtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50ID0gKHRoaXMuY29tcG9uZW50c0J1ZmZlciBhcyBhbnkpW2NvbnRyb2wudHlwZV07XHJcbiAgICBpZiAoY29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcclxuICAgICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnkpLmNvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxyXG59XHJcbiIsIkBpZiAoZm9ybSAmJiAhZm9ybS5oaWRkZW4pIHtcclxuICA8ZGl2XHJcbiAgICBbaWRdPVwiZm9ybS5lbGVtZW50SWRcIlxyXG4gICAgY2xhc3M9XCJzcGVjaWFsLWZvcm0gdy1mdWxsIGJveC1ib3JkZXIgcC0yIHt7IGZvcm0uc3R5bGVDbGFzc2VzIH19XCJcclxuICA+XHJcbiAgICBAaWYgKGZvcm0pIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIFtjbGFzc109XCJcclxuICAgICAgICAgIGZvcm0ubGFiZWxcclxuICAgICAgICAgICAgPyAndy1mdWxsIG10LTIgcC0zIGJvcmRlci1zbGF0ZS0yMDAgYm9yZGVyIGJvcmRlci1zb2xpZCBib3gtYm9yZGVyJ1xyXG4gICAgICAgICAgICA6ICdjb250YWluZXInXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIEBpZiAoZm9ybS5sYWJlbCkge1xyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZm9udC1ib2xkIHB5LTNcIj57eyBmb3JtLmxhYmVsIH19PC9oMT5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgQGZvciAoY29udHJvbCBvZiBmb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0OyB0cmFjayBjb250cm9sLm5hbWUpIHtcclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNvbnRyb2xSZW5kZXIgW2NvbnRyb2xdPVwiY29udHJvbFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG59XHJcbiIsIkBpZiAoZm9ybUFycmF5ICYmICFmb3JtQXJyYXkuaGlkZGVuKSB7XHJcbiAgPGRpdlxyXG4gICAgW2lkXT1cImZvcm1BcnJheS5lbGVtZW50SWRcIlxyXG4gICAgY2xhc3M9XCJzcGVjaWFsLWZvcm0tYXJyYXkgdy1mdWxsIGJveC1ib3JkZXIgcC0yIHt7XHJcbiAgICAgIGZvcm1BcnJheS5zdHlsZUNsYXNzZXNcclxuICAgIH19XCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG10LTIgcC0zIGJvcmRlci1zbGF0ZS0yMDAgYm9yZGVyIGJvcmRlci1zb2xpZCBib3gtYm9yZGVyXCJcclxuICAgID5cclxuICAgICAgQGlmIChmb3JtQXJyYXkubGFiZWwpIHtcclxuICAgICAgICA8aDEgY2xhc3M9XCJmb250LWJvbGQgcHktM1wiPlxyXG4gICAgICAgICAge3sgZm9ybUFycmF5LmxhYmVsIH19XHJcbiAgICAgICAgPC9oMT5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlLXkgZGl2aWRlLXgtMCBkaXZpZGUtc29saWQgZGl2aWRlLXNsYXRlLTIwMFwiPlxyXG4gICAgICAgIEBpZiAoZm9ybUFycmF5LmZvcm0pIHtcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnbWQ6Z3JpZC1jb2xzLTE1Jzogc2V0dGluZ3Mud2l0aEFjdGlvbkJ1dHRvbnMgfVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZ3JpZCBnYXAtNCBncmlkLWNvbHMtMTJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYgKCF3aXRoRm9ybUhlYWRlcikge1xyXG4gICAgICAgICAgICAgIEBmb3IgKFxyXG4gICAgICAgICAgICAgICAgaXRlbSBvZiBmb3JtQXJyYXkuZm9ybS5jb250cm9scyB8IGNvbnRyb2xzTGlzdDtcclxuICAgICAgICAgICAgICAgIHRyYWNrIGl0ZW0ubmFtZVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCJpdGVtLnN0eWxlQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAaWYgKHNldHRpbmdzLndpdGhBY3Rpb25CdXR0b25zKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLXN0YXJ0LTcgY29sLWVuZC0xMyBtZDpjb2wtc3RhcnQtMTMgbWQ6Y29sLWVuZC0xNiBwYi01IG15LWF1dG8gbWwtYXV0byBtZDptLWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgQGZvciAoXHJcbiAgICAgICAgICAgICAgICBpdGVtIG9mIGZvcm1BcnJheS5mb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0O1xyXG4gICAgICAgICAgICAgICAgdHJhY2sgaXRlbS5uYW1lXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgY29udHJvbFJlbmRlciBbY29udHJvbF09XCJpdGVtXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGlmIChzZXR0aW5ncy53aXRoQWN0aW9uQnV0dG9ucykge1xyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zdGFydC03IGNvbC1lbmQtMTMgbWQ6Y29sLXN0YXJ0LTEzIG1kOmNvbC1lbmQtMTYgcGItNSBteS1hdXRvIG1sLWF1dG8gbWQ6bS1hdXRvXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1BcnJheS5mb3JtLmludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKClcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2V0dGluZ3MuYWRkQWN0aW9uTGFiZWwgfHwgXCJBZGRcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgKFxyXG4gICAgICAgICAgZm9ybUdyb3VwIG9mIGZvcm1BcnJheS5jb250cm9scztcclxuICAgICAgICAgIHRyYWNrIGZvcm1Hcm91cC5uYW1lO1xyXG4gICAgICAgICAgbGV0IGkgPSAkaW5kZXhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgcHQtNSBncmlkIGdhcC00IGdyaWQtY29scy0xMiBtZDpncmlkLWNvbHMtMTVcIj5cclxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBmb3JtR3JvdXAuY29udHJvbHMgfCBjb250cm9sc0xpc3Q7IHRyYWNrIGl0ZW0ubmFtZSkge1xyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjb250cm9sUmVuZGVyIFtjb250cm9sXT1cIml0ZW1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zdGFydC03IGNvbC1lbmQtMTMgbWQ6Y29sLXN0YXJ0LTEzIG1kOmNvbC1lbmQtMTYgcGItNSBteS1hdXRvIG1sLWF1dG8gbWQ6bS1hdXRvXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJyZW1vdmVJdGVtKGkpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBzZXR0aW5ncy5yZW1vdmVBY3Rpb25MYWJlbCB8fCBcIlJlbW92ZVwiIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==