@seniorsistemas/angular-components 19.9.4 → 19.9.5-develop-17c73b08

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 (165) hide show
  1. package/accordion/package.json +3 -0
  2. package/alert/package.json +3 -0
  3. package/autocomplete/README.md +4 -0
  4. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +7 -1
  5. package/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.d.ts +3 -1
  6. package/autocomplete/package.json +3 -0
  7. package/badge/package.json +3 -0
  8. package/bignumber-input/package.json +3 -0
  9. package/breadcrumb/package.json +3 -0
  10. package/button/package.json +3 -0
  11. package/calendar-mask/package.json +3 -0
  12. package/card/package.json +3 -0
  13. package/chat/package.json +3 -0
  14. package/checkbox/package.json +3 -0
  15. package/checkbox-list/package.json +3 -0
  16. package/chips/package.json +3 -0
  17. package/code-editor/package.json +3 -0
  18. package/collapse-link/package.json +3 -0
  19. package/common/deprecated-selector/package.json +3 -0
  20. package/common/package.json +3 -0
  21. package/confirm-dialog/package.json +3 -0
  22. package/content-generator/package.json +3 -0
  23. package/control-errors/package.json +3 -0
  24. package/country-phone-picker/package.json +3 -0
  25. package/currency/package.json +3 -0
  26. package/custom-fields/package.json +3 -0
  27. package/datepicker/package.json +3 -0
  28. package/dialog/package.json +3 -0
  29. package/drawer/package.json +3 -0
  30. package/dynamic-form/package.json +3 -0
  31. package/editable-overlay/package.json +3 -0
  32. package/editor/package.json +3 -0
  33. package/empty-state/package.json +3 -0
  34. package/esm2022/alert/lib/alert/alert.component.mjs +3 -3
  35. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +10 -4
  36. package/esm2022/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +5 -3
  37. package/esm2022/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.mjs +2 -2
  38. package/esm2022/editor/lib/editor/editor.component.mjs +3 -3
  39. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +21 -3
  40. package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +14 -3
  41. package/esm2022/insights/lib/insights/insights.component.mjs +15 -4
  42. package/esm2022/paginator/lib/paginator/paginator.component.mjs +2 -2
  43. package/esm2022/rating-scale/lib/rating-scale/models/rating-scale-node.mjs +1 -1
  44. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +23 -3
  45. package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +5 -3
  46. package/esm2022/select/lib/select/select.component.mjs +6 -4
  47. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +7 -3
  48. package/esm2022/split-button/lib/split-button/split-button.component.mjs +11 -3
  49. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +1 -1
  50. package/esm2022/text-area/lib/text-area/text-area.component.mjs +1 -1
  51. package/esm2022/token-list/lib/token-list/token-list.component.mjs +7 -3
  52. package/fesm2022/seniorsistemas-angular-components-alert.mjs +2 -2
  53. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +13 -5
  55. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  56. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +1 -1
  57. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  58. package/fesm2022/seniorsistemas-angular-components-editor.mjs +2 -2
  59. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-insights.mjs +47 -7
  61. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  62. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +1 -1
  63. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  64. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +22 -2
  65. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  66. package/fesm2022/seniorsistemas-angular-components-select.mjs +9 -5
  67. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  68. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +6 -2
  69. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  70. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +10 -2
  71. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  72. package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
  73. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  74. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +1 -1
  75. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  76. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -2
  77. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  78. package/fieldset/package.json +3 -0
  79. package/file-picker/package.json +3 -0
  80. package/file-upload/package.json +3 -0
  81. package/gantt/package.json +3 -0
  82. package/global-search/package.json +3 -0
  83. package/grid-menu/package.json +3 -0
  84. package/help-popover/package.json +3 -0
  85. package/ia-insight/package.json +3 -0
  86. package/image-cropper/package.json +3 -0
  87. package/infinite-scroll/package.json +3 -0
  88. package/info-sign/package.json +3 -0
  89. package/inline-edit/package.json +3 -0
  90. package/input-mask/package.json +3 -0
  91. package/input-text/package.json +3 -0
  92. package/insights/README.md +12 -0
  93. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +22 -1
  94. package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +9 -1
  95. package/insights/lib/insights/insights.component.d.ts +9 -1
  96. package/insights/package.json +3 -0
  97. package/interactive-content/package.json +3 -0
  98. package/kanban/package.json +3 -0
  99. package/label-value/package.json +3 -0
  100. package/loading-state/package.json +3 -0
  101. package/locale/package.json +3 -0
  102. package/localized-number-input/package.json +3 -0
  103. package/mask/package.json +3 -0
  104. package/mouse-events/package.json +3 -0
  105. package/navigation-button/package.json +3 -0
  106. package/number-input/package.json +3 -0
  107. package/numeric/package.json +3 -0
  108. package/numeric-mask/package.json +3 -0
  109. package/object-card/package.json +3 -0
  110. package/optional-fields/editor/package.json +3 -0
  111. package/package.json +395 -395
  112. package/paginator/package.json +3 -0
  113. package/panel/package.json +3 -0
  114. package/password-strength/package.json +3 -0
  115. package/picklist/package.json +3 -0
  116. package/pin-code-field/package.json +3 -0
  117. package/product-header/package.json +3 -0
  118. package/profile-picture-picker/package.json +3 -0
  119. package/progressbar/package.json +3 -0
  120. package/radio-button/package.json +3 -0
  121. package/rating-scale/README.md +38 -13
  122. package/rating-scale/lib/rating-scale/models/rating-scale-node.d.ts +8 -0
  123. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +4 -1
  124. package/rating-scale/package.json +3 -0
  125. package/select/README.md +2 -0
  126. package/select/lib/select/components/select-option/select-option.component.d.ts +3 -1
  127. package/select/lib/select/select.component.d.ts +3 -1
  128. package/select/package.json +3 -0
  129. package/select-button/package.json +3 -0
  130. package/shared/package.json +3 -0
  131. package/side-sheet/package.json +3 -0
  132. package/sidebar/package.json +3 -0
  133. package/slide-in-bar/package.json +3 -0
  134. package/slider/package.json +3 -0
  135. package/speech-recognition/README.md +1 -0
  136. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +3 -1
  137. package/speech-recognition/package.json +3 -0
  138. package/split-button/README.md +2 -0
  139. package/split-button/lib/split-button/split-button.component.d.ts +5 -1
  140. package/split-button/package.json +3 -0
  141. package/spotlight/package.json +3 -0
  142. package/star-rating/package.json +3 -0
  143. package/stats-card/package.json +3 -0
  144. package/stepper/package.json +3 -0
  145. package/structure/package.json +3 -0
  146. package/switch/package.json +3 -0
  147. package/table/package.json +3 -0
  148. package/table-header/package.json +3 -0
  149. package/tabs/package.json +3 -0
  150. package/template/package.json +3 -0
  151. package/text-area/package.json +3 -0
  152. package/text-area-ia/package.json +3 -0
  153. package/thumbnail/package.json +3 -0
  154. package/thumbnails/package.json +3 -0
  155. package/tiered-menu/package.json +3 -0
  156. package/tile/package.json +3 -0
  157. package/timeline/package.json +3 -0
  158. package/toast/package.json +3 -0
  159. package/token-list/lib/token-list/token-list.component.d.ts +3 -1
  160. package/token-list/package.json +3 -0
  161. package/tooltip/package.json +3 -0
  162. package/topbar/package.json +3 -0
  163. package/tree/package.json +3 -0
  164. package/utils/package.json +3 -0
  165. package/workspace-switch/package.json +3 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-accordion.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-alert.mjs"
3
+ }
@@ -54,6 +54,8 @@ export class MeuComponent {}
54
54
  | `multiple` | `boolean` | `false` | não | Habilita seleção de múltiplos itens como chips |
55
55
  | `dropdown` | `boolean` | `false` | não | Exibe botão de seta para abrir a lista sem digitar |
56
56
  | `checkmark` | `boolean` | `false` | não | Exibe ícone de check na opção selecionada |
57
+ | `clearIconClass` | `string` | `'far fa-times'` | não | Classe do ícone do botão de limpar o valor do campo |
58
+ | `checkIconClass` | `string` | `'far fa-check'` | não | Classe do ícone de checkmark exibido ao lado da opção selecionada (com `checkmark` e `multiple`) |
57
59
  | `lazy` | `boolean` | `false` | não | Ativa carregamento assíncrono via output `lazyLoad` |
58
60
  | `virtualScroll` | `boolean` | `false` | não | Virtualiza a lista para melhor performance |
59
61
  | `virtualScrollItemSize` | `number` | `37` | não | Altura em pixels de cada item no virtual scroll |
@@ -118,6 +120,8 @@ filtrar(event: { query: string }) {
118
120
  </s-autocomplete>
119
121
  ```
120
122
 
123
+ No modo múltiplo, cada item selecionado é exibido como um chip (`AutocompleteChipComponent`, interno) com um botão de remover. O ícone desse botão pode ser customizado através do input `removeIconClass` (`string`, padrão `'far fa-times'`) do próprio `AutocompleteChipComponent`.
124
+
121
125
  ### Lazy loading (dados de API)
122
126
 
123
127
  ```html
@@ -62,6 +62,12 @@ export declare class AutocompleteComponent<T> implements ControlValueAccessor {
62
62
  forceSelection: import("@angular/core").InputSignal<boolean>;
63
63
  /** @description Exibe ícone de checkmark ao lado da opção selecionada no dropdown. @default false */
64
64
  checkmark: import("@angular/core").InputSignal<boolean>;
65
+ /** @description Classe do ícone do botão de limpar o valor do campo. @default 'far fa-times' */
66
+ clearIconClass: import("@angular/core").InputSignal<string>;
67
+ /** @description Classe do ícone de checkmark exibido ao lado da opção selecionada no dropdown. @default 'far fa-check' */
68
+ checkIconClass: import("@angular/core").InputSignal<string>;
69
+ /** @description Classe do ícone do botão de remover chip, exibido no modo `multiple`. @default 'far fa-times' */
70
+ removeIconClass: import("@angular/core").InputSignal<string>;
65
71
  /** @description Habilita seleção de múltiplos itens exibidos como chips no campo. @default false */
66
72
  multiple: import("@angular/core").InputSignal<boolean>;
67
73
  /** @description Quantidade mínima de caracteres necessária para acionar a busca por sugestões. @default 1 */
@@ -297,6 +303,6 @@ export declare class AutocompleteComponent<T> implements ControlValueAccessor {
297
303
  */
298
304
  private _validateInputs;
299
305
  static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent<any>, never>;
300
- static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent<any>, "s-autocomplete", never, { "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "suggestionValue": { "alias": "suggestionValue"; "required": false; "isSignal": true; }; "suggestionLabel": { "alias": "suggestionLabel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "dropdown": { "alias": "dropdown"; "required": false; "isSignal": true; }; "forceSelection": { "alias": "forceSelection"; "required": false; "isSignal": true; }; "checkmark": { "alias": "checkmark"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "minLengthToSearch": { "alias": "minLengthToSearch"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "values": "valuesChange"; "disabled": "disabledChange"; "lazyLoad": "lazyLoad"; "selected": "selected"; "unselected": "unselected"; "blurred": "blurred"; "cleared": "cleared"; "keyUp": "keyUp"; "focused": "focused"; "completeMethod": "completeMethod"; }, never, never, true, never>;
306
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent<any>, "s-autocomplete", never, { "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "suggestionValue": { "alias": "suggestionValue"; "required": false; "isSignal": true; }; "suggestionLabel": { "alias": "suggestionLabel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "dropdown": { "alias": "dropdown"; "required": false; "isSignal": true; }; "forceSelection": { "alias": "forceSelection"; "required": false; "isSignal": true; }; "checkmark": { "alias": "checkmark"; "required": false; "isSignal": true; }; "clearIconClass": { "alias": "clearIconClass"; "required": false; "isSignal": true; }; "checkIconClass": { "alias": "checkIconClass"; "required": false; "isSignal": true; }; "removeIconClass": { "alias": "removeIconClass"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "minLengthToSearch": { "alias": "minLengthToSearch"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "values": "valuesChange"; "disabled": "disabledChange"; "lazyLoad": "lazyLoad"; "selected": "selected"; "unselected": "unselected"; "blurred": "blurred"; "cleared": "cleared"; "keyUp": "keyUp"; "focused": "focused"; "completeMethod": "completeMethod"; }, never, never, true, never>;
301
307
  }
302
308
  export {};
@@ -2,8 +2,10 @@ import * as i0 from "@angular/core";
2
2
  export declare class AutocompleteChipComponent<T> {
3
3
  suggestion: import("@angular/core").InputSignal<T>;
4
4
  suggestionLabel: import("@angular/core").InputSignal<keyof T | undefined>;
5
+ /** @description Classe do ícone do botão de remover o chip. @default 'far fa-times' */
6
+ removeIconClass: import("@angular/core").InputSignal<string>;
5
7
  suggestionRemoved: import("@angular/core").OutputEmitterRef<T>;
6
8
  removeSuggestion(): void;
7
9
  static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteChipComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteChipComponent<any>, "s-autocomplete-chip", never, { "suggestion": { "alias": "suggestion"; "required": true; "isSignal": true; }; "suggestionLabel": { "alias": "suggestionLabel"; "required": false; "isSignal": true; }; }, { "suggestionRemoved": "suggestionRemoved"; }, never, never, true, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteChipComponent<any>, "s-autocomplete-chip", never, { "suggestion": { "alias": "suggestion"; "required": true; "isSignal": true; }; "suggestionLabel": { "alias": "suggestionLabel"; "required": false; "isSignal": true; }; "removeIconClass": { "alias": "removeIconClass"; "required": false; "isSignal": true; }; }, { "suggestionRemoved": "suggestionRemoved"; }, never, never, true, never>;
9
11
  }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-autocomplete.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-badge.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-bignumber-input.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-breadcrumb.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-button.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-calendar-mask.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-card.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-chat.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-checkbox.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-checkbox-list.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-chips.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-code-editor.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-collapse-link.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../../fesm2022/seniorsistemas-angular-components-common-deprecated-selector.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-common.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-content-generator.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-control-errors.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-currency.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-custom-fields.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-datepicker.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-dialog.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-drawer.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-dynamic-form.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-editable-overlay.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-editor.mjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/seniorsistemas-angular-components-empty-state.mjs"
3
+ }
@@ -70,11 +70,11 @@ export class AlertComponent {
70
70
  }
71
71
  _isOpen = true;
72
72
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AlertComponent, isStandalone: true, selector: "s-alert", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: false, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: false, isRequired: true, transformFunction: null }, detail: { classPropertyName: "detail", publicName: "detail", isSignal: false, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: false, isRequired: false, transformFunction: null }, escape: { classPropertyName: "escape", publicName: "escape", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (isOpen) {\n <div\n class=\"alert m-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AlertComponent, isStandalone: true, selector: "s-alert", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: false, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: false, isRequired: true, transformFunction: null }, detail: { classPropertyName: "detail", publicName: "detail", isSignal: false, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: false, isRequired: false, transformFunction: null }, escape: { classPropertyName: "escape", publicName: "escape", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (isOpen) {\n <div\n class=\"alert my-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertComponent, decorators: [{
76
76
  type: Component,
77
- args: [{ selector: 's-alert', standalone: true, imports: [NgClass], template: "@if (isOpen) {\n <div\n class=\"alert m-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n\n" }]
77
+ args: [{ selector: 's-alert', standalone: true, imports: [NgClass], template: "@if (isOpen) {\n <div\n class=\"alert my-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n" }]
78
78
  }], propDecorators: { severity: [{
79
79
  type: Input
80
80
  }], summary: [{
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
87
87
  }], closed: [{
88
88
  type: Output
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2FsZXJ0L3NyYy9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2FsZXJ0L3NyYy9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU5RTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFPSCxNQUFNLE9BQU8sY0FBYztJQUN2Qjs7Ozs7Ozs7T0FRRztJQUNILHNFQUFzRTtJQUUvRCxRQUFRLEdBQTZDLE1BQU0sQ0FBQztJQUVuRTs7T0FFRztJQUVJLE9BQU8sQ0FBVTtJQUV4Qjs7T0FFRztJQUVJLE1BQU0sQ0FBVTtJQUV2Qjs7Ozs7T0FLRztJQUVJLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFFdkI7Ozs7O09BS0c7SUFDSCxNQUFNLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO0lBRTlCOztPQUVHO0lBRUksTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFekMsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxPQUFPLEdBQUcsSUFBSSxDQUFDO3dHQWxFZCxjQUFjOzRGQUFkLGNBQWMsdXVCQ3pCM0IsOHFHQXdFQSw0Q0RqRGMsT0FBTzs7NEZBRVIsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxTQUFTLGNBRVAsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDOzhCQWNYLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9sQixNQUFNO3NCQURaLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQWVDLE1BQU07c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBhbGVydGEgcXVlIGV4aWJlIG1lbnNhZ2VucyBpbmZvcm1hdGl2YXMsIGRlIHN1Y2Vzc28sIGF2aXNvIG91IGVycm8uXHJcbiAqIFN1cG9ydGEgZmVjaGFtZW50byBtYW51YWwgcGVsbyB1c3XDoXJpbyBlIGVtaXRlIHVtIGV2ZW50byBhbyBzZXIgZmVjaGFkby5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1hbGVydFxyXG4gKiAgIHNldmVyaXR5PVwid2FybmluZ1wiXHJcbiAqICAgc3VtbWFyeT1cIkF0ZW7Dp8Ojb1wiXHJcbiAqICAgZGV0YWlsPVwiVmVyaWZpcXVlIG9zIGRhZG9zIGFudGVzIGRlIGNvbnRpbnVhci5cIlxyXG4gKiAgIChjbG9zZWQpPVwib25BbGVydENsb3NlZCgpXCJcclxuICogLz5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBGZWVkYmFja1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtYWxlcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdDbGFzc10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCB7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBOw612ZWwgZGUgc2V2ZXJpZGFkZSBkbyBhbGVydGEsIHF1ZSBkZWZpbmUgYSBjb3IgZSBvIMOtY29uZSBleGliaWRvcy5cclxuICAgICAqIC0gYCdpbmZvJ2A6IGFsZXJ0YSBpbmZvcm1hdGl2byAocGFkcsOjbykuXHJcbiAgICAgKiAtIGAnc3VjY2VzcydgOiBhbGVydGEgZGUgc3VjZXNzby5cclxuICAgICAqIC0gYCd3YXJuaW5nJ2A6IGFsZXJ0YSBkZSBhdmlzby5cclxuICAgICAqIC0gYCdlcnJvcidgOiBhbGVydGEgZGUgZXJyby5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCAnaW5mbydcclxuICAgICAqL1xyXG4gICAgLy8gc29uYXItaWdub3JlOiBSZWZhY3RvciB0aGlzIHVuaW9uIHR5cGUgdG8gaGF2ZSBsZXNzIHRoYW4gMyBlbGVtZW50c1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXZlcml0eTogJ2luZm8nIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyA9ICdpbmZvJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBUw610dWxvIHByaW5jaXBhbCBkbyBhbGVydGEgZXhpYmlkbyBlbSBkZXN0YXF1ZS4gQ2FtcG8gb2JyaWdhdMOzcmlvLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHN1bW1hcnkhOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gTWVuc2FnZW0gZGV0YWxoYWRhIGV4aWJpZGEgYWJhaXhvIGRvIHTDrXR1bG8gZG8gYWxlcnRhLiBDYW1wbyBvYnJpZ2F0w7NyaW8uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGV0YWlsITogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGV4aWJlIG8gYm90w6NvIGRlIGZlY2hhciBvIGFsZXJ0YS5cclxuICAgICAqIFF1YW5kbyBgZmFsc2VgLCBvIGFsZXJ0YSBuw6NvIHBvZGUgc2VyIGRpc3BlbnNhZG8gcGVsbyB1c3XDoXJpby5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2xvc2FibGUgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG8gY29udGXDumRvIGRvIGFsZXJ0YSDDqSBlc2NhcGFkbyBwYXJhIGV2aXRhciBhIGV4ZWN1w6fDo28gZGUgSFRNTCBvdSBzY3JpcHRzLlxyXG4gICAgICogUXVhbmRvIGBmYWxzZWAsIG8gY29udGXDumRvIGRvIGFsZXJ0YSDDqSByZW5kZXJpemFkbyBjb21vIEhUTUwsIHBlcm1pdGluZG8gYSBpbmNsdXPDo28gZGUgbGlua3MsIG5lZ3JpdG8sIGV0Yy5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgKi9cclxuICAgIGVzY2FwZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdXN1w6FyaW8gZmVjaGEgbyBhbGVydGEgY2xpY2FuZG8gbm8gYm90w6NvIGRlIGZlY2hhci5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc09wZW47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlQWxlcnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3dBbGVydCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9pc09wZW4gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcclxuICAgICAgICB0aGlzLmNsb3NlQWxlcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pc09wZW4gPSB0cnVlO1xyXG59XHJcbiIsIkBpZiAoaXNPcGVuKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFsZXJ0IG0tMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTQgcm91bmRlZC1tZWRpdW0gYm9yZGVyLWwtNCBweC00IHB5LTMgc2hhZG93LVsxcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMildXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2FsZXJ0LS1pbmZvJzogc2V2ZXJpdHkgPT09ICdpbmZvJyxcbiAgICAgICAgICAgICdhbGVydC0tc3VjY2Vzcyc6IHNldmVyaXR5ID09PSAnc3VjY2VzcycsXG4gICAgICAgICAgICAnYWxlcnQtLXdhcm5pbmcnOiBzZXZlcml0eSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgICAgICAgJ2FsZXJ0LS1lcnJvcic6IHNldmVyaXR5ID09PSAnZXJyb3InLFxuICAgICAgICAgICAgJ2JvcmRlci1wcmltYXJ5IGJnLWhpcHBpZS1ibHVlLTUwJzogc2V2ZXJpdHkgPT09ICdpbmZvJyxcbiAgICAgICAgICAgICdib3JkZXItY3JpdGljYWxpdHktZ3JlZW4gYmctdGVhbC01MCc6IHNldmVyaXR5ID09PSAnc3VjY2VzcycsXG4gICAgICAgICAgICAnYm9yZGVyLWNyaXRpY2FsaXR5LXllbGxvdyBiZy1idXR0ZXJjdXAtNTAnOiBzZXZlcml0eSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgICAgICAgJ2JvcmRlci1jcml0aWNhbGl0eS1yZWQgYmctc3Vuc2V0LW9yYW5nZS01MCc6IHNldmVyaXR5ID09PSAnZXJyb3InLFxuICAgICAgICB9XCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50IGZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLWNvbnRhaW5lciBpbmxpbmUtZmxleCBoLTEwIHctMTAgZmxleC1zaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1bNTAlXVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYmctcHJpbWFyeSc6IHNldmVyaXR5ID09PSAnaW5mbycsXG4gICAgICAgICAgICAgICAgICAgICdiZy1jcml0aWNhbGl0eS1ncmVlbic6IHNldmVyaXR5ID09PSAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgICAgICdiZy1jcml0aWNhbGl0eS15ZWxsb3cnOiBzZXZlcml0eSA9PT0gJ3dhcm5pbmcnLFxuICAgICAgICAgICAgICAgICAgICAnYmctY3JpdGljYWxpdHktcmVkJzogc2V2ZXJpdHkgPT09ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXNcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZmEtaW5mbyc6IHNldmVyaXR5ID09PSAnaW5mbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmEtY2hlY2snOiBzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJzogc2V2ZXJpdHkgPT09ICd3YXJuaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdmYS10aW1lcyc6IHNldmVyaXR5ID09PSAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtZ3JheXNjYWxlLTAnOiBzZXZlcml0eSAhPT0gJ3dhcm5pbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtZ3JheXNjYWxlLTkwJzogc2V2ZXJpdHkgPT09ICd3YXJuaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyIGZsZXggZmxleC1jb2wgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCBmbGV4IGZsZXgtY29sIGp1c3RpZnktc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzdW1tYXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1bW1hcnkgZm9udC1vcGVuLXNhbnMgdGV4dC1zbSBmb250LWJvbGQgdGV4dC1ncmF5c2NhbGUtOTBcIj57eyBzdW1tYXJ5IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChkZXRhaWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZXNjYXBlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbCBmb250LW9wZW4tc2FucyB0ZXh0LXNtIHRleHQtZ3JheXNjYWxlLTkwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRldGFpbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGV0YWlsIGZvbnQtb3Blbi1zYW5zIHRleHQtc20gdGV4dC1ncmF5c2NhbGUtOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImRldGFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbCBmb250LW9wZW4tc2FucyB0ZXh0LXNtIHRleHQtZ3JheXNjYWxlLTkwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGNsb3NhYmxlKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjbG9zZS1vcHRpb24gY3Vyc29yLXBvaW50ZXIgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcC0xIHRleHQtYmFzZSB0ZXh0LWdyYXlzY2FsZS05MFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2FsZXJ0L3NyYy9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2FsZXJ0L3NyYy9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU5RTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFPSCxNQUFNLE9BQU8sY0FBYztJQUN2Qjs7Ozs7Ozs7T0FRRztJQUNILHNFQUFzRTtJQUUvRCxRQUFRLEdBQTZDLE1BQU0sQ0FBQztJQUVuRTs7T0FFRztJQUVJLE9BQU8sQ0FBVTtJQUV4Qjs7T0FFRztJQUVJLE1BQU0sQ0FBVTtJQUV2Qjs7Ozs7T0FLRztJQUVJLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFFdkI7Ozs7O09BS0c7SUFDSCxNQUFNLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO0lBRTlCOztPQUVHO0lBRUksTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFekMsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxPQUFPLEdBQUcsSUFBSSxDQUFDO3dHQWxFZCxjQUFjOzRGQUFkLGNBQWMsdXVCQ3pCM0IsNnFHQXVFQSw0Q0RoRGMsT0FBTzs7NEZBRVIsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxTQUFTLGNBRVAsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDOzhCQWNYLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9sQixNQUFNO3NCQURaLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQWVDLE1BQU07c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBhbGVydGEgcXVlIGV4aWJlIG1lbnNhZ2VucyBpbmZvcm1hdGl2YXMsIGRlIHN1Y2Vzc28sIGF2aXNvIG91IGVycm8uXHJcbiAqIFN1cG9ydGEgZmVjaGFtZW50byBtYW51YWwgcGVsbyB1c3XDoXJpbyBlIGVtaXRlIHVtIGV2ZW50byBhbyBzZXIgZmVjaGFkby5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1hbGVydFxyXG4gKiAgIHNldmVyaXR5PVwid2FybmluZ1wiXHJcbiAqICAgc3VtbWFyeT1cIkF0ZW7Dp8Ojb1wiXHJcbiAqICAgZGV0YWlsPVwiVmVyaWZpcXVlIG9zIGRhZG9zIGFudGVzIGRlIGNvbnRpbnVhci5cIlxyXG4gKiAgIChjbG9zZWQpPVwib25BbGVydENsb3NlZCgpXCJcclxuICogLz5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBGZWVkYmFja1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtYWxlcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdDbGFzc10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCB7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBOw612ZWwgZGUgc2V2ZXJpZGFkZSBkbyBhbGVydGEsIHF1ZSBkZWZpbmUgYSBjb3IgZSBvIMOtY29uZSBleGliaWRvcy5cclxuICAgICAqIC0gYCdpbmZvJ2A6IGFsZXJ0YSBpbmZvcm1hdGl2byAocGFkcsOjbykuXHJcbiAgICAgKiAtIGAnc3VjY2VzcydgOiBhbGVydGEgZGUgc3VjZXNzby5cclxuICAgICAqIC0gYCd3YXJuaW5nJ2A6IGFsZXJ0YSBkZSBhdmlzby5cclxuICAgICAqIC0gYCdlcnJvcidgOiBhbGVydGEgZGUgZXJyby5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCAnaW5mbydcclxuICAgICAqL1xyXG4gICAgLy8gc29uYXItaWdub3JlOiBSZWZhY3RvciB0aGlzIHVuaW9uIHR5cGUgdG8gaGF2ZSBsZXNzIHRoYW4gMyBlbGVtZW50c1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXZlcml0eTogJ2luZm8nIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyA9ICdpbmZvJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBUw610dWxvIHByaW5jaXBhbCBkbyBhbGVydGEgZXhpYmlkbyBlbSBkZXN0YXF1ZS4gQ2FtcG8gb2JyaWdhdMOzcmlvLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHN1bW1hcnkhOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gTWVuc2FnZW0gZGV0YWxoYWRhIGV4aWJpZGEgYWJhaXhvIGRvIHTDrXR1bG8gZG8gYWxlcnRhLiBDYW1wbyBvYnJpZ2F0w7NyaW8uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGV0YWlsITogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGV4aWJlIG8gYm90w6NvIGRlIGZlY2hhciBvIGFsZXJ0YS5cclxuICAgICAqIFF1YW5kbyBgZmFsc2VgLCBvIGFsZXJ0YSBuw6NvIHBvZGUgc2VyIGRpc3BlbnNhZG8gcGVsbyB1c3XDoXJpby5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2xvc2FibGUgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG8gY29udGXDumRvIGRvIGFsZXJ0YSDDqSBlc2NhcGFkbyBwYXJhIGV2aXRhciBhIGV4ZWN1w6fDo28gZGUgSFRNTCBvdSBzY3JpcHRzLlxyXG4gICAgICogUXVhbmRvIGBmYWxzZWAsIG8gY29udGXDumRvIGRvIGFsZXJ0YSDDqSByZW5kZXJpemFkbyBjb21vIEhUTUwsIHBlcm1pdGluZG8gYSBpbmNsdXPDo28gZGUgbGlua3MsIG5lZ3JpdG8sIGV0Yy5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgKi9cclxuICAgIGVzY2FwZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdXN1w6FyaW8gZmVjaGEgbyBhbGVydGEgY2xpY2FuZG8gbm8gYm90w6NvIGRlIGZlY2hhci5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc09wZW47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlQWxlcnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3dBbGVydCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9pc09wZW4gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcclxuICAgICAgICB0aGlzLmNsb3NlQWxlcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pc09wZW4gPSB0cnVlO1xyXG59XHJcbiIsIkBpZiAoaXNPcGVuKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFsZXJ0IG15LTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00IHJvdW5kZWQtbWVkaXVtIGJvcmRlci1sLTQgcHgtNCBweS0zIHNoYWRvdy1bMXB4XzFweF8ycHhfcmdiYSgwLDAsMCwwLjIpXVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdhbGVydC0taW5mbyc6IHNldmVyaXR5ID09PSAnaW5mbycsXG4gICAgICAgICAgICAnYWxlcnQtLXN1Y2Nlc3MnOiBzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgJ2FsZXJ0LS13YXJuaW5nJzogc2V2ZXJpdHkgPT09ICd3YXJuaW5nJyxcbiAgICAgICAgICAgICdhbGVydC0tZXJyb3InOiBzZXZlcml0eSA9PT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICdib3JkZXItcHJpbWFyeSBiZy1oaXBwaWUtYmx1ZS01MCc6IHNldmVyaXR5ID09PSAnaW5mbycsXG4gICAgICAgICAgICAnYm9yZGVyLWNyaXRpY2FsaXR5LWdyZWVuIGJnLXRlYWwtNTAnOiBzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgJ2JvcmRlci1jcml0aWNhbGl0eS15ZWxsb3cgYmctYnV0dGVyY3VwLTUwJzogc2V2ZXJpdHkgPT09ICd3YXJuaW5nJyxcbiAgICAgICAgICAgICdib3JkZXItY3JpdGljYWxpdHktcmVkIGJnLXN1bnNldC1vcmFuZ2UtNTAnOiBzZXZlcml0eSA9PT0gJ2Vycm9yJyxcbiAgICAgICAgfVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1jb250YWluZXIgaW5saW5lLWZsZXggaC0xMCB3LTEwIGZsZXgtc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtWzUwJV1cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2JnLXByaW1hcnknOiBzZXZlcml0eSA9PT0gJ2luZm8nLFxuICAgICAgICAgICAgICAgICAgICAnYmctY3JpdGljYWxpdHktZ3JlZW4nOiBzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAnYmctY3JpdGljYWxpdHkteWVsbG93Jzogc2V2ZXJpdHkgPT09ICd3YXJuaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgJ2JnLWNyaXRpY2FsaXR5LXJlZCc6IHNldmVyaXR5ID09PSAnZXJyb3InLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhLWluZm8nOiBzZXZlcml0eSA9PT0gJ2luZm8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhLWNoZWNrJzogc2V2ZXJpdHkgPT09ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdmYS1leGNsYW1hdGlvbi10cmlhbmdsZSc6IHNldmVyaXR5ID09PSAnd2FybmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmEtdGltZXMnOiBzZXZlcml0eSA9PT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0LWdyYXlzY2FsZS0wJzogc2V2ZXJpdHkgIT09ICd3YXJuaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0LWdyYXlzY2FsZS05MCc6IHNldmVyaXR5ID09PSAnd2FybmluZycsXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgZmxleCBmbGV4LWNvbCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc3VtbWFyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdW1tYXJ5IGZvbnQtb3Blbi1zYW5zIHRleHQtc20gZm9udC1ib2xkIHRleHQtZ3JheXNjYWxlLTkwXCI+e3sgc3VtbWFyeSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGV0YWlsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGVzY2FwZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwgZm9udC1vcGVuLXNhbnMgdGV4dC1zbSB0ZXh0LWdyYXlzY2FsZS05MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkZXRhaWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRldGFpbCBmb250LW9wZW4tc2FucyB0ZXh0LXNtIHRleHQtZ3JheXNjYWxlLTkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJkZXRhaWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwgZm9udC1vcGVuLXNhbnMgdGV4dC1zbSB0ZXh0LWdyYXlzY2FsZS05MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xvc2Utb3B0aW9uIGN1cnNvci1wb2ludGVyIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHAtMSB0ZXh0LWJhc2UgdGV4dC1ncmF5c2NhbGUtOTBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsb3NlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==