@seniorsistemas/angular-components 19.3.2 → 19.3.3-feature-ptfgap-1442-fd712f99

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 (77) hide show
  1. package/button/lib/button/button.component.d.ts +5 -1
  2. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +2 -2
  3. package/dynamic-form/dynamic-form/components/lookup/types/lookup-models.d.ts +4 -0
  4. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +2 -1
  5. package/dynamic-form/public-api.d.ts +1 -0
  6. package/esm2022/button/lib/button/button.component.mjs +9 -3
  7. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +1 -1
  8. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +1 -1
  9. package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
  10. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +7 -10
  11. package/esm2022/dynamic-form/dynamic-form/components/lookup/types/lookup-models.mjs +2 -0
  12. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  13. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +2 -2
  14. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
  15. package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
  16. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +2 -2
  17. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +2 -2
  18. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
  19. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +2 -2
  20. package/esm2022/dynamic-form/public-api.mjs +1 -1
  21. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +1 -1
  22. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +1 -1
  23. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +1 -1
  24. package/esm2022/global-search/lib/global-search/global-search.component.mjs +2 -2
  25. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
  26. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +1 -1
  27. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  28. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +1 -1
  29. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
  30. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
  31. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
  32. package/esm2022/picklist/lib/picklist/picklist.component.mjs +1 -1
  33. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +1 -1
  34. package/esm2022/select/lib/select/select.component.mjs +3 -3
  35. package/esm2022/shared/lib/accessibility/datepicker-no-period-tab.directive.mjs +104 -0
  36. package/esm2022/shared/public-api.mjs +2 -1
  37. package/esm2022/spotlight/lib/spotlight/spotlight.component.mjs +2 -2
  38. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
  39. package/fesm2022/seniorsistemas-angular-components-button.mjs +8 -2
  40. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  41. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +1 -1
  42. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  43. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +1 -1
  44. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  45. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -15
  46. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  47. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +1 -1
  48. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  49. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +1 -1
  50. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  51. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +2 -2
  52. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  53. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  55. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +1 -1
  56. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  57. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +2 -2
  58. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  59. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  61. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
  62. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  63. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +1 -1
  64. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  65. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +1 -1
  66. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  67. package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
  68. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  69. package/fesm2022/seniorsistemas-angular-components-shared.mjs +104 -2
  70. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  71. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs +1 -1
  72. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs.map +1 -1
  73. package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
  74. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  75. package/package.json +19 -19
  76. package/shared/lib/accessibility/datepicker-no-period-tab.directive.d.ts +43 -0
  77. package/shared/public-api.d.ts +1 -0
@@ -128,6 +128,10 @@ export declare class ButtonComponent implements OnChanges {
128
128
  * @description Texto alternativo para o menu associado ao botão, utilizado para acessibilidade.
129
129
  */
130
130
  menuAriaLabel?: string;
131
+ /**
132
+ * @description Texto alternativo para quando o botão não tiver um texto explicito, utilizado para acessibilidade.
133
+ */
134
+ ariaLabel?: string;
131
135
  /**
132
136
  * @description Emitido ao clicar no botão, desde que não esteja desabilitado.
133
137
  */
@@ -139,5 +143,5 @@ export declare class ButtonComponent implements OnChanges {
139
143
  onTieredMenuOpened(): void;
140
144
  onTieredMenuClosed(): void;
141
145
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
142
- static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "s-button", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "rightIconClass": { "alias": "rightIconClass"; "required": false; }; "caret": { "alias": "caret"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "auxiliary": { "alias": "auxiliary"; "required": false; }; "type": { "alias": "type"; "required": false; }; "priority": { "alias": "priority"; "required": false; }; "menuOptions": { "alias": "menuOptions"; "required": false; }; "size": { "alias": "size"; "required": false; }; "slide": { "alias": "slide"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
146
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "s-button", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "rightIconClass": { "alias": "rightIconClass"; "required": false; }; "caret": { "alias": "caret"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "auxiliary": { "alias": "auxiliary"; "required": false; }; "type": { "alias": "type"; "required": false; }; "priority": { "alias": "priority"; "required": false; }; "menuOptions": { "alias": "menuOptions"; "required": false; }; "size": { "alias": "size"; "required": false; }; "slide": { "alias": "slide"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
143
147
  }
@@ -16,6 +16,7 @@ import { TextFieldConfig } from '../../form-field/configurations/fields/text-fie
16
16
  import { LookupSearchRequest } from './models/lookup-api.model';
17
17
  import { DefaultFilter } from './types/default-filter';
18
18
  import { LabelOptions } from './types/label-options';
19
+ import { LookupGridFields } from './types/lookup-models';
19
20
  import * as i0 from "@angular/core";
20
21
  export declare class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, OnDestroy {
21
22
  private readonly hotkeysService;
@@ -45,7 +46,7 @@ export declare class LookupComponent implements ControlValueAccessor, OnChanges,
45
46
  searchFields: (DynamicType & {
46
47
  customName?: string;
47
48
  })[];
48
- searchGridFields: DynamicType[];
49
+ searchGridFields: LookupGridFields[];
49
50
  multiSortMeta: SortMeta[];
50
51
  placeholder?: string;
51
52
  sortableColumnsDisabled: string[];
@@ -112,7 +113,6 @@ export declare class LookupComponent implements ControlValueAccessor, OnChanges,
112
113
  getBadgeFromValue(value: unknown, field: SelectFieldConfig): Partial<Pick<import("@seniorsistemas/angular-components/badge").BadgeComponent, "type" | "iconClass" | "color" | "iconPosition">> | undefined;
113
114
  getLabelForValue(value: unknown, field: SelectFieldConfig): string;
114
115
  isBooleanValue(obj: any, path: string): boolean;
115
- getFieldWidth(col: any): any;
116
116
  getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel | undefined): string | undefined;
117
117
  isNumber(obj: any, path: string): boolean;
118
118
  setHotkeys(): void;
@@ -0,0 +1,4 @@
1
+ import { DynamicType } from '../../../form-field/configurations/fields/field';
2
+ export type LookupGridFields = DynamicType & {
3
+ width?: number | string;
4
+ };
@@ -1,6 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { LookupSearchRequest } from '../../../components/lookup/models/lookup-api.model';
3
3
  import { DynamicType, FieldConfig } from './field';
4
+ import { LookupGridFields } from '../../../components/lookup/types/lookup-models';
4
5
  /**
5
6
  * Dados retornados pelo Observable de pesquisa avançada do Lookup.
6
7
  */
@@ -47,7 +48,7 @@ export interface LookupFieldConfig extends FieldConfig {
47
48
  * Colunas exibidas na grade de resultados do diálogo de pesquisa.
48
49
  * Cada item define uma coluna com header e campo de dados.
49
50
  */
50
- searchGridFields: DynamicType[];
51
+ searchGridFields: LookupGridFields[];
51
52
  /**
52
53
  * Observable que emite sugestões para o autocompletar do input do lookup.
53
54
  * Deve emitir um array de objetos com a propriedade `lookupDisplayField`.
@@ -31,6 +31,7 @@ export { type StarRatingFieldConfig } from './dynamic-form/form-field/configurat
31
31
  export { type TextAreaFieldConfig } from './dynamic-form/form-field/configurations/fields/text-area-field';
32
32
  export { type ContentGeneratorFieldConfig } from './dynamic-form/form-field/configurations/fields/content-generator-field';
33
33
  export { type TextFieldConfig } from './dynamic-form/form-field/configurations/fields/text-field';
34
+ export { type LookupGridFields } from './dynamic-form/components/lookup/types/lookup-models';
34
35
  export { FieldSize } from './dynamic-form/form-field/configurations/field-size';
35
36
  export { NumberFieldComponent } from './dynamic-form/form-field/fields/number/number-field.component';
36
37
  export type { DynamicType, FieldConfig, FieldType, FieldTypeMap, } from './dynamic-form/form-field/configurations/fields/field';
@@ -131,6 +131,10 @@ export class ButtonComponent {
131
131
  * @description Texto alternativo para o menu associado ao botão, utilizado para acessibilidade.
132
132
  */
133
133
  menuAriaLabel;
134
+ /**
135
+ * @description Texto alternativo para quando o botão não tiver um texto explicito, utilizado para acessibilidade.
136
+ */
137
+ ariaLabel;
134
138
  /**
135
139
  * @description Emitido ao clicar no botão, desde que não esteja desabilitado.
136
140
  */
@@ -160,13 +164,13 @@ export class ButtonComponent {
160
164
  this.isMenuOpen = false;
161
165
  }
162
166
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
163
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "s-button", inputs: { id: "id", label: "label", tooltip: "tooltip", tooltipPosition: "tooltipPosition", iconClass: "iconClass", rightIconClass: "rightIconClass", caret: "caret", styleClass: "styleClass", baseZIndex: "baseZIndex", disabled: "disabled", auxiliary: "auxiliary", type: "type", priority: "priority", menuOptions: "menuOptions", size: "size", slide: "slide", animation: "animation", badge: "badge", iconColor: "iconColor", menuAriaLabel: "menuAriaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "class.s-button-with-badge": "!!badge", "style.min-width": "this.minWidth" } }, usesOnChanges: true, ngImport: i0, template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-only-icon': iconClass && !label && !menuOptions.length,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"badge\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button{align-items:center;display:inline-flex;justify-content:center;border:1px solid;border-radius:4px;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;font-size:14px;height:35px;max-width:100%;min-width:40px;outline:none;overflow:visible;padding:5px 10px;position:relative;text-decoration:none;text-transform:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out}button:disabled{background-image:none;cursor:text;filter:Alpha(Opacity=50);opacity:.5}button.s-button-auxiliary{border-radius:20px}button.s-button-size-small{height:25px}button.s-button-size-small.s-button-only-icon{max-width:24px;max-height:24px;min-width:24px}button.s-button-size-default{height:35px}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}button .s-button-icon,button .s-button-right-icon,button .s-button-menu-icon,button.s-button-with-icon.s-button-multiple:not(.s-button-with-text) .s-button-icon{align-items:center;display:inline-flex;justify-content:center}button.s-button-multiple .s-button-text{align-items:left;display:inline-flex;justify-content:left}button.s-button-with-icon .s-button-text{align-items:right;display:inline-flex;justify-content:right}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .s-button-icon,button.s-button-priority-primary .s-button-right-icon,button.s-button-priority-primary .s-button-text,button.s-button-priority-primary .s-button-menu-icon{color:#fff}button.s-button-priority-primary:hover{background-color:#2a6496}button.s-button-priority-primary:focus{background-color:#2a6496;border-color:#22dce6}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#245682;border-color:#245682}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .s-button-icon,button.s-button-priority-secondary .s-button-right-icon,button.s-button-priority-secondary .s-button-text,button.s-button-priority-secondary .s-button-menu-icon{color:#fff}button.s-button-priority-secondary:hover{background-color:#546b79}button.s-button-priority-secondary:focus{background-color:#546b79;border-color:#22dce6}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#495e6a;border-color:#495e6a}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-default{background-color:#fff;border-color:#ccc}button.s-button-priority-default .s-button-icon,button.s-button-priority-default .s-button-right-icon,button.s-button-priority-default .s-button-text,button.s-button-priority-default .s-button-menu-icon{color:#333}button.s-button-priority-default:hover{background-color:#d9d9d9}button.s-button-priority-default:focus{background-color:#d9d9d9;border-color:#22dce6}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-auxiliary.s-button-only-icon{border-radius:50%}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover{background-color:transparent}button.s-button-priority-link:hover .s-button-icon,button.s-button-priority-link:hover .s-button-right-icon,button.s-button-priority-link:hover .s-button-text,button.s-button-priority-link:hover .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:focus{background-color:transparent;border-color:#22dce6}button.s-button-priority-link:focus .s-button-icon,button.s-button-priority-link:focus .s-button-right-icon,button.s-button-priority-link:focus .s-button-text,button.s-button-priority-link:focus .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#245682}.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}.s-button-priority-danger .s-button-icon,.s-button-priority-danger .s-button-right-icon,.s-button-priority-danger .s-button-text,.s-button-priority-danger .s-button-menu-icon{color:#fff}.s-button-priority-danger:hover{background-color:#642525}.s-button-priority-danger:focus{background-color:#642525;border-color:#22dce6}.s-button-priority-danger:active:not(:disabled),.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}.s-button-priority-danger .menu-options-icon{color:#fff}.s-button-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-button-menu-icon{right:10px;transition:transform .2s ease-out}.s-button-icon-margin-left{margin-left:10px}.s-button-icon-margin-right{margin-right:10px}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover.s-button--rotate-animation .s-button-icon,.s-button--slide:hover.s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.badge{z-index:99;position:relative;right:15px;bottom:16px}.menu-options-icon{color:#212533}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i1.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "ngmodule", type: TieredMenuModule }, { kind: "directive", type: i2.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent", "ariaLabel"], outputs: ["tieredMenuOpened", "tieredMenuClosed"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }] });
167
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "s-button", inputs: { id: "id", label: "label", tooltip: "tooltip", tooltipPosition: "tooltipPosition", iconClass: "iconClass", rightIconClass: "rightIconClass", caret: "caret", styleClass: "styleClass", baseZIndex: "baseZIndex", disabled: "disabled", auxiliary: "auxiliary", type: "type", priority: "priority", menuOptions: "menuOptions", size: "size", slide: "slide", animation: "animation", badge: "badge", iconColor: "iconColor", menuAriaLabel: "menuAriaLabel", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "class.s-button-with-badge": "!!badge", "style.min-width": "this.minWidth" } }, usesOnChanges: true, ngImport: i0, template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-only-icon': iconClass && !label && !menuOptions.length,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"badge\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button{align-items:center;display:inline-flex;justify-content:center;border:1px solid;border-radius:4px;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;font-size:14px;height:35px;max-width:100%;min-width:40px;outline:none;overflow:visible;padding:5px 10px;position:relative;text-decoration:none;text-transform:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out}button:disabled{background-image:none;cursor:text;filter:Alpha(Opacity=50);opacity:.5}button.s-button-auxiliary{border-radius:20px}button.s-button-size-small{height:25px}button.s-button-size-small.s-button-only-icon{max-width:24px;max-height:24px;min-width:24px}button.s-button-size-default{height:35px}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}button .s-button-icon,button .s-button-right-icon,button .s-button-menu-icon,button.s-button-with-icon.s-button-multiple:not(.s-button-with-text) .s-button-icon{align-items:center;display:inline-flex;justify-content:center}button.s-button-multiple .s-button-text{align-items:left;display:inline-flex;justify-content:left}button.s-button-with-icon .s-button-text{align-items:right;display:inline-flex;justify-content:right}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .s-button-icon,button.s-button-priority-primary .s-button-right-icon,button.s-button-priority-primary .s-button-text,button.s-button-priority-primary .s-button-menu-icon{color:#fff}button.s-button-priority-primary:hover{background-color:#2a6496}button.s-button-priority-primary:focus{background-color:#2a6496;border-color:#22dce6}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#245682;border-color:#245682}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .s-button-icon,button.s-button-priority-secondary .s-button-right-icon,button.s-button-priority-secondary .s-button-text,button.s-button-priority-secondary .s-button-menu-icon{color:#fff}button.s-button-priority-secondary:hover{background-color:#546b79}button.s-button-priority-secondary:focus{background-color:#546b79;border-color:#22dce6}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#495e6a;border-color:#495e6a}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-default{background-color:#fff;border-color:#ccc}button.s-button-priority-default .s-button-icon,button.s-button-priority-default .s-button-right-icon,button.s-button-priority-default .s-button-text,button.s-button-priority-default .s-button-menu-icon{color:#333}button.s-button-priority-default:hover{background-color:#d9d9d9}button.s-button-priority-default:focus{background-color:#d9d9d9;border-color:#22dce6}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-auxiliary.s-button-only-icon{border-radius:50%}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover{background-color:transparent}button.s-button-priority-link:hover .s-button-icon,button.s-button-priority-link:hover .s-button-right-icon,button.s-button-priority-link:hover .s-button-text,button.s-button-priority-link:hover .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:focus{background-color:transparent;border-color:#22dce6}button.s-button-priority-link:focus .s-button-icon,button.s-button-priority-link:focus .s-button-right-icon,button.s-button-priority-link:focus .s-button-text,button.s-button-priority-link:focus .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#245682}.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}.s-button-priority-danger .s-button-icon,.s-button-priority-danger .s-button-right-icon,.s-button-priority-danger .s-button-text,.s-button-priority-danger .s-button-menu-icon{color:#fff}.s-button-priority-danger:hover{background-color:#642525}.s-button-priority-danger:focus{background-color:#642525;border-color:#22dce6}.s-button-priority-danger:active:not(:disabled),.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}.s-button-priority-danger .menu-options-icon{color:#fff}.s-button-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-button-menu-icon{right:10px;transition:transform .2s ease-out}.s-button-icon-margin-left{margin-left:10px}.s-button-icon-margin-right{margin-right:10px}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover.s-button--rotate-animation .s-button-icon,.s-button--slide:hover.s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.badge{z-index:99;position:relative;right:15px;bottom:16px}.menu-options-icon{color:#212533}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i1.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "ngmodule", type: TieredMenuModule }, { kind: "directive", type: i2.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent", "ariaLabel"], outputs: ["tieredMenuOpened", "tieredMenuClosed"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }] });
164
168
  }
165
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
166
170
  type: Component,
167
171
  args: [{ selector: 's-button', host: {
168
172
  '[class.s-button-with-badge]': '!!badge',
169
- }, standalone: true, imports: [NgClass, NgStyle, BadgeModule, TieredMenuModule, TooltipModule], template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-only-icon': iconClass && !label && !menuOptions.length,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"badge\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button{align-items:center;display:inline-flex;justify-content:center;border:1px solid;border-radius:4px;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;font-size:14px;height:35px;max-width:100%;min-width:40px;outline:none;overflow:visible;padding:5px 10px;position:relative;text-decoration:none;text-transform:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out}button:disabled{background-image:none;cursor:text;filter:Alpha(Opacity=50);opacity:.5}button.s-button-auxiliary{border-radius:20px}button.s-button-size-small{height:25px}button.s-button-size-small.s-button-only-icon{max-width:24px;max-height:24px;min-width:24px}button.s-button-size-default{height:35px}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}button .s-button-icon,button .s-button-right-icon,button .s-button-menu-icon,button.s-button-with-icon.s-button-multiple:not(.s-button-with-text) .s-button-icon{align-items:center;display:inline-flex;justify-content:center}button.s-button-multiple .s-button-text{align-items:left;display:inline-flex;justify-content:left}button.s-button-with-icon .s-button-text{align-items:right;display:inline-flex;justify-content:right}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .s-button-icon,button.s-button-priority-primary .s-button-right-icon,button.s-button-priority-primary .s-button-text,button.s-button-priority-primary .s-button-menu-icon{color:#fff}button.s-button-priority-primary:hover{background-color:#2a6496}button.s-button-priority-primary:focus{background-color:#2a6496;border-color:#22dce6}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#245682;border-color:#245682}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .s-button-icon,button.s-button-priority-secondary .s-button-right-icon,button.s-button-priority-secondary .s-button-text,button.s-button-priority-secondary .s-button-menu-icon{color:#fff}button.s-button-priority-secondary:hover{background-color:#546b79}button.s-button-priority-secondary:focus{background-color:#546b79;border-color:#22dce6}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#495e6a;border-color:#495e6a}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-default{background-color:#fff;border-color:#ccc}button.s-button-priority-default .s-button-icon,button.s-button-priority-default .s-button-right-icon,button.s-button-priority-default .s-button-text,button.s-button-priority-default .s-button-menu-icon{color:#333}button.s-button-priority-default:hover{background-color:#d9d9d9}button.s-button-priority-default:focus{background-color:#d9d9d9;border-color:#22dce6}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-auxiliary.s-button-only-icon{border-radius:50%}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover{background-color:transparent}button.s-button-priority-link:hover .s-button-icon,button.s-button-priority-link:hover .s-button-right-icon,button.s-button-priority-link:hover .s-button-text,button.s-button-priority-link:hover .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:focus{background-color:transparent;border-color:#22dce6}button.s-button-priority-link:focus .s-button-icon,button.s-button-priority-link:focus .s-button-right-icon,button.s-button-priority-link:focus .s-button-text,button.s-button-priority-link:focus .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#245682}.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}.s-button-priority-danger .s-button-icon,.s-button-priority-danger .s-button-right-icon,.s-button-priority-danger .s-button-text,.s-button-priority-danger .s-button-menu-icon{color:#fff}.s-button-priority-danger:hover{background-color:#642525}.s-button-priority-danger:focus{background-color:#642525;border-color:#22dce6}.s-button-priority-danger:active:not(:disabled),.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}.s-button-priority-danger .menu-options-icon{color:#fff}.s-button-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-button-menu-icon{right:10px;transition:transform .2s ease-out}.s-button-icon-margin-left{margin-left:10px}.s-button-icon-margin-right{margin-right:10px}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover.s-button--rotate-animation .s-button-icon,.s-button--slide:hover.s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.badge{z-index:99;position:relative;right:15px;bottom:16px}.menu-options-icon{color:#212533}\n"] }]
173
+ }, standalone: true, imports: [NgClass, NgStyle, BadgeModule, TieredMenuModule, TooltipModule], template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-only-icon': iconClass && !label && !menuOptions.length,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"badge\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button{align-items:center;display:inline-flex;justify-content:center;border:1px solid;border-radius:4px;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;font-size:14px;height:35px;max-width:100%;min-width:40px;outline:none;overflow:visible;padding:5px 10px;position:relative;text-decoration:none;text-transform:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out}button:disabled{background-image:none;cursor:text;filter:Alpha(Opacity=50);opacity:.5}button.s-button-auxiliary{border-radius:20px}button.s-button-size-small{height:25px}button.s-button-size-small.s-button-only-icon{max-width:24px;max-height:24px;min-width:24px}button.s-button-size-default{height:35px}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}button .s-button-icon,button .s-button-right-icon,button .s-button-menu-icon,button.s-button-with-icon.s-button-multiple:not(.s-button-with-text) .s-button-icon{align-items:center;display:inline-flex;justify-content:center}button.s-button-multiple .s-button-text{align-items:left;display:inline-flex;justify-content:left}button.s-button-with-icon .s-button-text{align-items:right;display:inline-flex;justify-content:right}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .s-button-icon,button.s-button-priority-primary .s-button-right-icon,button.s-button-priority-primary .s-button-text,button.s-button-priority-primary .s-button-menu-icon{color:#fff}button.s-button-priority-primary:hover{background-color:#2a6496}button.s-button-priority-primary:focus{background-color:#2a6496;border-color:#22dce6}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#245682;border-color:#245682}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .s-button-icon,button.s-button-priority-secondary .s-button-right-icon,button.s-button-priority-secondary .s-button-text,button.s-button-priority-secondary .s-button-menu-icon{color:#fff}button.s-button-priority-secondary:hover{background-color:#546b79}button.s-button-priority-secondary:focus{background-color:#546b79;border-color:#22dce6}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#495e6a;border-color:#495e6a}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-default{background-color:#fff;border-color:#ccc}button.s-button-priority-default .s-button-icon,button.s-button-priority-default .s-button-right-icon,button.s-button-priority-default .s-button-text,button.s-button-priority-default .s-button-menu-icon{color:#333}button.s-button-priority-default:hover{background-color:#d9d9d9}button.s-button-priority-default:focus{background-color:#d9d9d9;border-color:#22dce6}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-auxiliary.s-button-only-icon{border-radius:50%}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover{background-color:transparent}button.s-button-priority-link:hover .s-button-icon,button.s-button-priority-link:hover .s-button-right-icon,button.s-button-priority-link:hover .s-button-text,button.s-button-priority-link:hover .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:focus{background-color:transparent;border-color:#22dce6}button.s-button-priority-link:focus .s-button-icon,button.s-button-priority-link:focus .s-button-right-icon,button.s-button-priority-link:focus .s-button-text,button.s-button-priority-link:focus .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#245682}.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}.s-button-priority-danger .s-button-icon,.s-button-priority-danger .s-button-right-icon,.s-button-priority-danger .s-button-text,.s-button-priority-danger .s-button-menu-icon{color:#fff}.s-button-priority-danger:hover{background-color:#642525}.s-button-priority-danger:focus{background-color:#642525;border-color:#22dce6}.s-button-priority-danger:active:not(:disabled),.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}.s-button-priority-danger .menu-options-icon{color:#fff}.s-button-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-button-menu-icon{right:10px;transition:transform .2s ease-out}.s-button-icon-margin-left{margin-left:10px}.s-button-icon-margin-right{margin-right:10px}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover.s-button--rotate-animation .s-button-icon,.s-button--slide:hover.s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.badge{z-index:99;position:relative;right:15px;bottom:16px}.menu-options-icon{color:#212533}\n"] }]
170
174
  }], propDecorators: { minWidth: [{
171
175
  type: HostBinding,
172
176
  args: ['style.min-width']
@@ -210,7 +214,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
210
214
  type: Input
211
215
  }], menuAriaLabel: [{
212
216
  type: Input
217
+ }], ariaLabel: [{
218
+ type: Input
213
219
  }], clicked: [{
214
220
  type: Output
215
221
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBS3RFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVdILE1BQU0sT0FBTyxlQUFlO0lBRWpCLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFFekI7OztPQUdHO0lBRUksRUFBRSxHQUFJLFlBQVksVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUV4Qzs7T0FFRztJQUVJLEtBQUssQ0FBVTtJQUV0Qjs7T0FFRztJQUVJLE9BQU8sQ0FBVTtJQUV4Qjs7OztPQUlHO0lBRUksZUFBZSxHQUFxQixLQUFLLENBQUM7SUFFakQ7O09BRUc7SUFFSSxTQUFTLENBQVU7SUFFMUI7O09BRUc7SUFFSSxjQUFjLENBQVU7SUFFL0I7Ozs7T0FJRztJQUVJLEtBQUssR0FBRyxJQUFJLENBQUM7SUFFcEI7Ozs7T0FJRztJQUVJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFdkI7Ozs7T0FJRztJQUVJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFdEI7Ozs7T0FJRztJQUVJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFeEI7Ozs7T0FJRztJQUVJLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekI7Ozs7T0FJRztJQUVJLElBQUksR0FBSSxRQUFRLENBQUM7SUFFeEI7Ozs7O09BS0c7SUFFSSxRQUFRLEdBQW9CLFNBQVMsQ0FBQztJQUU3Qzs7OztPQUlHO0lBRUksV0FBVyxHQUF5QixFQUFFLENBQUM7SUFFOUM7Ozs7T0FJRztJQUVJLElBQUksR0FBeUIsU0FBUyxDQUFDO0lBRTlDOzs7OztPQUtHO0lBRUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQjs7T0FFRztJQUVJLFNBQVMsQ0FBb0I7SUFFcEM7O09BRUc7SUFFSSxLQUFLLENBQXFCO0lBRWpDOztPQUVHO0lBRUksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBRUksYUFBYSxDQUFVO0lBRTlCOztPQUVHO0lBRUksT0FBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhELFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsbUJBQW1CO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRU0sV0FBVyxDQUFDLENBQWdCO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztRQUU1QyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzt3R0F6TFEsZUFBZTs0RkFBZixlQUFlLHdxQkNyQzVCLGl4RkFxRkEsa2xORGxEYyxPQUFPLG9GQUFFLE9BQU8sMEVBQUUsV0FBVyxtUEFBRSxnQkFBZ0IsZ09BQUUsYUFBYTs7NEZBRS9ELGVBQWU7a0JBVjNCLFNBQVM7K0JBQ0ksVUFBVSxRQUdkO3dCQUNGLDZCQUE2QixFQUFFLFNBQVM7cUJBQzNDLGNBQ1csSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDOzhCQUlsRSxRQUFRO3NCQURkLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVF2QixFQUFFO3NCQURSLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFTQyxlQUFlO3NCQURyQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQVNDLEtBQUs7c0JBRFgsS0FBSztnQkFTQyxVQUFVO3NCQURoQixLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFNBQVM7c0JBRGYsS0FBSztnQkFTQyxJQUFJO3NCQURWLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0MsSUFBSTtzQkFEVixLQUFLO2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLE9BQU87c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmFkZ2VNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IFRpZXJlZE1lbnVJdGVtRGF0YSwgVGllcmVkTWVudU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGllcmVkLW1lbnUnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSwgVG9vbHRpcFBvc2l0aW9ucyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyByYW5kb21IYXNoIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25BbmltYXRpb25zIH0gZnJvbSAnLi9tb2RlbHMvYnV0dG9uLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnV0dG9uQmFkZ2VDb25maWcgfSBmcm9tICcuL21vZGVscy9idXR0b24tYmFkZ2UtY29uZmlnJztcbmltcG9ydCB7IEJ1dHRvblByaW9yaXR5IH0gZnJvbSAnLi9tb2RlbHMvYnV0dG9uLXByaW9yaXR5JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBib3TDo28gdmVyc8OhdGlsIHF1ZSBzdXBvcnRhIMOtY29uZXMsIHRvb2x0aXAsIG1lbnUgZGUgb3DDp8O1ZXNcbiAqICh0aWVyZWQgbWVudSksIGJhZGdlLCBhbmltYcOnw7VlcyBlIGRpZmVyZW50ZXMgcHJpb3JpZGFkZXMgdmlzdWFpcy4gUG9kZSBzZXIgY29uZmlndXJhZG9cbiAqIGNvbW8gYm90w6NvIGRlIGHDp8OjbyBzaW1wbGVzLCBib3TDo28gY29tIG1lbnUgZHJvcGRvd24gb3UgYm90w6NvIGRlc2xpemFudGUgKHNsaWRlKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtYnV0dG9uXG4gKiAgIGxhYmVsPVwiU2FsdmFyXCJcbiAqICAgaWNvbkNsYXNzPVwiZmFzIGZhLXNhdmVcIlxuICogICBwcmlvcml0eT1cInByaW1hcnlcIlxuICogICAoY2xpY2tlZCk9XCJvblNhdmUoKVwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5zLWJ1dHRvbi13aXRoLWJhZGdlXSc6ICchIWJhZGdlJyxcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIE5nU3R5bGUsIEJhZGdlTW9kdWxlLCBUaWVyZWRNZW51TW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi13aWR0aCcpXG4gICAgcHVibGljIG1pbldpZHRoID0gJzQwcHgnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGVsZW1lbnRvIGJvdMOjbyBubyBET00uXG4gICAgICogR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZD8gPSBgcy1idXR0b24tJHtyYW5kb21IYXNoKCl9YDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0byBleGliaWRvIGRlbnRybyBkbyBib3TDo28uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gZG8gdG9vbHRpcCBleGliaWRvIGFvIHBhc3NhciBvIG1vdXNlIHNvYnJlIG8gYm90w6NvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUG9zacOnw6NvIGRvIHRvb2x0aXAgZW0gcmVsYcOnw6NvIGFvIGJvdMOjby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICd0b3AnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb25zID0gJ3RvcCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2xhc3NlIGRlIMOtY29uZSBleGliaWRhIMOgIGVzcXVlcmRhIGRvIGxhYmVsIChleC46IGAnZmFzIGZhLXNhdmUnYCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbkNsYXNzPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBkZSDDrWNvbmUgZXhpYmlkYSDDoCBkaXJlaXRhIGRvIGxhYmVsLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJpZ2h0SWNvbkNsYXNzPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4aWJlIG8gw61jb25lIGRlIGNhcmV0IChzZXRhKSBxdWFuZG8gbyBib3TDo28gcG9zc3VpIHVtIG1lbnUgZGUgb3DDp8O1ZXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FyZXQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBDU1MgYWRpY2lvbmFsIGFwbGljYWRhIGFvIGVsZW1lbnRvIGA8YnV0dG9uPmAgaW50ZXJuby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3R5bGVDbGFzcyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFotaW5kZXggYmFzZSBkbyBwYWluZWwgZG8gbWVudSBkcm9wZG93biBhc3NvY2lhZG8gYW8gYm90w6NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhc2VaSW5kZXggPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc2FiaWxpdGEgbyBib3TDo28sIGltcGVkaW5kbyBjbGlxdWVzIGUgaW50ZXJhw6fDo28gZG8gdXN1w6FyaW8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBsaWNhIGVzdGlsbyBhdXhpbGlhciAobWVub3MgZGVzdGFxdWUgdmlzdWFsKSBhbyBib3TDo28uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1eGlsaWFyeSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRpcG8gZG8gZWxlbWVudG8gYDxidXR0b24+YCBIVE1MIChgJ2J1dHRvbidgLCBgJ3N1Ym1pdCdgLCBgJ3Jlc2V0J2ApLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2J1dHRvbidcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlPyA9ICdidXR0b24nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByaW9yaWRhZGUgdmlzdWFsIGRvIGJvdMOjbywgcXVlIGRldGVybWluYSBzZXUgZXN0aWxvLlxuICAgICAqIEFjZWl0YSBgJ3ByaW1hcnknYCwgYCdkZWZhdWx0J2AsIGAnZGFuZ2VyJ2AsIGAnbGluaydgLCBlbnRyZSBvdXRyb3MuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAncHJpbWFyeSdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcmlvcml0eT86IEJ1dHRvblByaW9yaXR5ID0gJ3ByaW1hcnknO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3RhIGRlIGl0ZW5zIGRvIG1lbnUgZHJvcGRvd24gZXhpYmlkbyBhbyBjbGljYXIgbm8gY2FyZXQgZG8gYm90w6NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZW51T3B0aW9uczogVGllcmVkTWVudUl0ZW1EYXRhW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUYW1hbmhvIHZpc3VhbCBkbyBib3TDo28uIEFjZWl0YSBgJ2RlZmF1bHQnYCBvdSBgJ3NtYWxsJ2AuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplPzogJ2RlZmF1bHQnIHwgJ3NtYWxsJyA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBvIG1vZG8gc2xpZGUsIHF1ZSBleGliZSB1bWEgYW5pbWHDp8OjbyBkZSBkZXNsaXplIGFvIHBhc3NhciBvIG1vdXNlLlxuICAgICAqIFJlcXVlciBgcHJpb3JpdHlgIGlndWFsIGEgYCdkZWZhdWx0J2Agb3UgYCdsaW5rJ2AgZSB1bSBgbGFiZWxgIGRlZmluaWRvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzbGlkZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRpcG8gZGUgYW5pbWHDp8OjbyBhcGxpY2FkYSBhbyBib3TDo28gKGAncm90YXRlJ2AsIGAncHVsc2UnYCwgZXRjLikuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYW5pbWF0aW9uPzogQnV0dG9uQW5pbWF0aW9ucztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmHDp8OjbyBkbyBiYWRnZSBleGliaWRvIHNvYnJlIG8gYm90w6NvLCBjb20gY29udGFkb3Igb3UgaW5kaWNhZG9yIHZpc3VhbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiYWRnZT86IEJ1dHRvbkJhZGdlQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvciBhcGxpY2FkYSBhbyDDrWNvbmUgZG8gYm90w6NvLCBzb2JyZXNjcmV2ZW5kbyBhIGNvciBwYWRyw6NvIGRvIHRlbWEuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbkNvbG9yPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGFsdGVybmF0aXZvIHBhcmEgbyBtZW51IGFzc29jaWFkbyBhbyBib3TDo28sIHV0aWxpemFkbyBwYXJhIGFjZXNzaWJpbGlkYWRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1lbnVBcmlhTGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBhbyBjbGljYXIgbm8gYm90w6NvLCBkZXNkZSBxdWUgbsOjbyBlc3RlamEgZGVzYWJpbGl0YWRvLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpc01lbnVPcGVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVTbGlkZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuc2xpZGUgJiYgKHRoaXMucHJpb3JpdHkgPT09ICdkZWZhdWx0JyB8fCB0aGlzLnByaW9yaXR5ID09PSAnbGluaycpICYmIHRoaXMubGFiZWw/Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzSWNvbiA9IHRoaXMuaWNvbkNsYXNzO1xuICAgICAgICBjb25zdCBoYXNUZXh0ID0gdGhpcy5sYWJlbDtcblxuICAgICAgICBjb25zdCBpc011bHRpcGxlID0gdGhpcy5tZW51T3B0aW9ucz8ubGVuZ3RoO1xuXG4gICAgICAgIGlmIChoYXNUZXh0IHx8IChoYXNJY29uICYmIGlzTXVsdGlwbGUpKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gJzgwcHgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNUZXh0ICYmIGhhc0ljb24gJiYgaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9ICcxMDBweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSb3RhdGVBbmltYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbiA9PT0gJ3JvdGF0ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGllcmVkTWVudU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01lbnVPcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UaWVyZWRNZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudU9wZW4gPSBmYWxzZTtcbiAgICB9XG59XG5cbiIsIjxidXR0b25cbiAgICBbaWRdPVwiaWRcIlxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdzLWJ1dHRvbi1hdXhpbGlhcnknOiBhdXhpbGlhcnksXG4gICAgICAgICdzLWJ1dHRvbi13aXRoLWljb24nOiBpY29uQ2xhc3MsXG4gICAgICAgICdzLWJ1dHRvbi13aXRoLXRleHQnOiBsYWJlbCxcbiAgICAgICAgJ3MtYnV0dG9uLW9ubHktaWNvbic6IGljb25DbGFzcyAmJiAhbGFiZWwgJiYgIW1lbnVPcHRpb25zLmxlbmd0aCxcbiAgICAgICAgJ3MtYnV0dG9uLWVtcHR5JzogIWljb25DbGFzcyAmJiAhbGFiZWwsXG4gICAgICAgICdzLWJ1dHRvbi1zaXplLWRlZmF1bHQnOiBzaXplID09PSAnZGVmYXVsdCcsXG4gICAgICAgICdzLWJ1dHRvbi1zaXplLXNtYWxsJzogc2l6ZSA9PT0gJ3NtYWxsJyxcbiAgICAgICAgJ3MtYnV0dG9uLXByaW9yaXR5LWRlZmF1bHQnOiBwcmlvcml0eSA9PT0gJ2RlZmF1bHQnLFxuICAgICAgICAncy1idXR0b24tcHJpb3JpdHktcHJpbWFyeSc6IHByaW9yaXR5ID09PSAncHJpbWFyeScsXG4gICAgICAgICdzLWJ1dHRvbi1wcmlvcml0eS1zZWNvbmRhcnknOiBwcmlvcml0eSA9PT0gJ3NlY29uZGFyeScsXG4gICAgICAgICdzLWJ1dHRvbi1wcmlvcml0eS1saW5rJzogcHJpb3JpdHkgPT09ICdsaW5rJyxcbiAgICAgICAgJ3MtYnV0dG9uLXByaW9yaXR5LWRhbmdlcic6IHByaW9yaXR5ID09PSAnZGFuZ2VyJyxcbiAgICAgICAgJ3MtYnV0dG9uLW11bHRpcGxlJzogKGNhcmV0ICYmIG1lbnVPcHRpb25zLmxlbmd0aCkgfHwgcmlnaHRJY29uQ2xhc3MsXG4gICAgICAgICdzLWJ1dHRvbi0tc2xpZGUnOiB2YWxpZGF0ZVNsaWRlQnV0dG9uKCksXG4gICAgICAgICdzLWJ1dHRvbi0tcm90YXRlLWFuaW1hdGlvbic6IGlzUm90YXRlQW5pbWF0aW9uKCksXG4gICAgfVwiXG4gICAgc1RpZXJlZE1lbnVcbiAgICBbaXRlbXNdPVwibWVudU9wdGlvbnNcIlxuICAgIFthcmlhTGFiZWxdPVwibWVudUFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJtZW51T3B0aW9ucy5sZW5ndGggPyAnbWVudScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1lbnVPcHRpb25zLmxlbmd0aCA/IGlzTWVudU9wZW4gOiBudWxsXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtzVG9vbHRpcF09XCJ0b29sdGlwXCJcbiAgICBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgKHRpZXJlZE1lbnVPcGVuZWQpPVwib25UaWVyZWRNZW51T3BlbmVkKClcIlxuICAgICh0aWVyZWRNZW51Q2xvc2VkKT1cIm9uVGllcmVkTWVudUNsb3NlZCgpXCJcbiAgICAoY2xpY2spPVwiY2xpY2tlZC5lbWl0KCRldmVudClcIlxuPlxuICAgIEBpZiAoaWNvbkNsYXNzKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbY2xhc3NdPVwiaWNvbkNsYXNzXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAncy1idXR0b24taWNvbic6IHRydWUsXG4gICAgICAgICAgICAgICAgJ3MtYnV0dG9uLWljb24tbWFyZ2luLXJpZ2h0JzogIWxhYmVsICYmIG1lbnVPcHRpb25zLmxlbmd0aCxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogaWNvbkNvbG9yIH1cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBpZiAobGFiZWwpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwicy1idXR0b24tdGV4dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3MtYnV0dG9uLWljb24tbWFyZ2luLXJpZ2h0JzogISFyaWdodEljb25DbGFzcyB8fCBtZW51T3B0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgJ3MtYnV0dG9uLWljb24tbWFyZ2luLWxlZnQnOiAhIWljb25DbGFzcyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICBAaWYgKHJpZ2h0SWNvbkNsYXNzKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbY2xhc3NdPVwicmlnaHRJY29uQ2xhc3NcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncy1idXR0b24tcmlnaHQtaWNvbic6IHRydWUgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBpY29uQ29sb3IgfVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgQGlmICgoY2FyZXQgJiYgbWVudU9wdGlvbnMubGVuZ3RoKSB8fCAobWVudU9wdGlvbnMgJiYgbWVudU9wdGlvbnMubGVuZ3RoKSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJtZW51LW9wdGlvbnMtaWNvbiBmYSBmYS1mdyBmYS1jYXJldC1kb3duXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvYnV0dG9uPlxuQGlmIChiYWRnZSkge1xuICAgIDxkaXYgY2xhc3M9XCJiYWRnZVwiPlxuICAgICAgICA8cy1iYWRnZVxuICAgICAgICAgICAgW2NvbG9yXT1cImJhZGdlLmNvbG9yXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cImJhZGdlLnRleHRcIlxuICAgICAgICAgICAgW2ljb25DbGFzc109XCJiYWRnZS5pY29uQ2xhc3NcIlxuICAgICAgICA+XG4gICAgICAgIDwvcy1iYWRnZT5cbiAgICA8L2Rpdj5cbn1cblxuIl19
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBS3RFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVdILE1BQU0sT0FBTyxlQUFlO0lBRWpCLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFFekI7OztPQUdHO0lBRUksRUFBRSxHQUFJLFlBQVksVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUV4Qzs7T0FFRztJQUVJLEtBQUssQ0FBVTtJQUV0Qjs7T0FFRztJQUVJLE9BQU8sQ0FBVTtJQUV4Qjs7OztPQUlHO0lBRUksZUFBZSxHQUFxQixLQUFLLENBQUM7SUFFakQ7O09BRUc7SUFFSSxTQUFTLENBQVU7SUFFMUI7O09BRUc7SUFFSSxjQUFjLENBQVU7SUFFL0I7Ozs7T0FJRztJQUVJLEtBQUssR0FBRyxJQUFJLENBQUM7SUFFcEI7Ozs7T0FJRztJQUVJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFdkI7Ozs7T0FJRztJQUVJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFdEI7Ozs7T0FJRztJQUVJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFeEI7Ozs7T0FJRztJQUVJLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekI7Ozs7T0FJRztJQUVJLElBQUksR0FBSSxRQUFRLENBQUM7SUFFeEI7Ozs7O09BS0c7SUFFSSxRQUFRLEdBQW9CLFNBQVMsQ0FBQztJQUU3Qzs7OztPQUlHO0lBRUksV0FBVyxHQUF5QixFQUFFLENBQUM7SUFFOUM7Ozs7T0FJRztJQUVJLElBQUksR0FBeUIsU0FBUyxDQUFDO0lBRTlDOzs7OztPQUtHO0lBRUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQjs7T0FFRztJQUVJLFNBQVMsQ0FBb0I7SUFFcEM7O09BRUc7SUFFSSxLQUFLLENBQXFCO0lBRWpDOztPQUVHO0lBRUksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBRUksYUFBYSxDQUFVO0lBRTlCOztPQUVHO0lBRUksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBRUksT0FBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhELFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsbUJBQW1CO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRU0sV0FBVyxDQUFDLENBQWdCO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztRQUU1QyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzt3R0EvTFEsZUFBZTs0RkFBZixlQUFlLGdzQkNyQzVCLHN6RkFzRkEsa2xORG5EYyxPQUFPLG9GQUFFLE9BQU8sMEVBQUUsV0FBVyxtUEFBRSxnQkFBZ0IsZ09BQUUsYUFBYTs7NEZBRS9ELGVBQWU7a0JBVjNCLFNBQVM7K0JBQ0ksVUFBVSxRQUdkO3dCQUNGLDZCQUE2QixFQUFFLFNBQVM7cUJBQzNDLGNBQ1csSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDOzhCQUlsRSxRQUFRO3NCQURkLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVF2QixFQUFFO3NCQURSLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFTQyxlQUFlO3NCQURyQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQVNDLEtBQUs7c0JBRFgsS0FBSztnQkFTQyxVQUFVO3NCQURoQixLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFNBQVM7c0JBRGYsS0FBSztnQkFTQyxJQUFJO3NCQURWLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0MsSUFBSTtzQkFEVixLQUFLO2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxPQUFPO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbURhdGEsIFRpZXJlZE1lbnVNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RpZXJlZC1tZW51JztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUsIFRvb2x0aXBQb3NpdGlvbnMgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgcmFuZG9tSGFzaCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQW5pbWF0aW9ucyB9IGZyb20gJy4vbW9kZWxzL2J1dHRvbi1hbmltYXRpb25zJztcbmltcG9ydCB7IEJ1dHRvbkJhZGdlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvYnV0dG9uLWJhZGdlLWNvbmZpZyc7XG5pbXBvcnQgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJy4vbW9kZWxzL2J1dHRvbi1wcmlvcml0eSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgYm90w6NvIHZlcnPDoXRpbCBxdWUgc3Vwb3J0YSDDrWNvbmVzLCB0b29sdGlwLCBtZW51IGRlIG9ww6fDtWVzXG4gKiAodGllcmVkIG1lbnUpLCBiYWRnZSwgYW5pbWHDp8O1ZXMgZSBkaWZlcmVudGVzIHByaW9yaWRhZGVzIHZpc3VhaXMuIFBvZGUgc2VyIGNvbmZpZ3VyYWRvXG4gKiBjb21vIGJvdMOjbyBkZSBhw6fDo28gc2ltcGxlcywgYm90w6NvIGNvbSBtZW51IGRyb3Bkb3duIG91IGJvdMOjbyBkZXNsaXphbnRlIChzbGlkZSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLWJ1dHRvblxuICogICBsYWJlbD1cIlNhbHZhclwiXG4gKiAgIGljb25DbGFzcz1cImZhcyBmYS1zYXZlXCJcbiAqICAgcHJpb3JpdHk9XCJwcmltYXJ5XCJcbiAqICAgKGNsaWNrZWQpPVwib25TYXZlKClcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IElucHV0c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mucy1idXR0b24td2l0aC1iYWRnZV0nOiAnISFiYWRnZScsXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1N0eWxlLCBCYWRnZU1vZHVsZSwgVGllcmVkTWVudU1vZHVsZSwgVG9vbHRpcE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKVxuICAgIHB1YmxpYyBtaW5XaWR0aCA9ICc0MHB4JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBlbGVtZW50byBib3TDo28gbm8gRE9NLlxuICAgICAqIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQ/ID0gYHMtYnV0dG9uLSR7cmFuZG9tSGFzaCgpfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gZXhpYmlkbyBkZW50cm8gZG8gYm90w6NvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGRvIHRvb2x0aXAgZXhpYmlkbyBhbyBwYXNzYXIgbyBtb3VzZSBzb2JyZSBvIGJvdMOjby5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBvc2nDp8OjbyBkbyB0b29sdGlwIGVtIHJlbGHDp8OjbyBhbyBib3TDo28uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAndG9wJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9ucyA9ICd0b3AnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBkZSDDrWNvbmUgZXhpYmlkYSDDoCBlc3F1ZXJkYSBkbyBsYWJlbCAoZXguOiBgJ2ZhcyBmYS1zYXZlJ2ApLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25DbGFzcz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGFzc2UgZGUgw61jb25lIGV4aWJpZGEgw6AgZGlyZWl0YSBkbyBsYWJlbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByaWdodEljb25DbGFzcz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFeGliZSBvIMOtY29uZSBkZSBjYXJldCAoc2V0YSkgcXVhbmRvIG8gYm90w6NvIHBvc3N1aSB1bSBtZW51IGRlIG9ww6fDtWVzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhcmV0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGFzc2UgQ1NTIGFkaWNpb25hbCBhcGxpY2FkYSBhbyBlbGVtZW50byBgPGJ1dHRvbj5gIGludGVybm8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0eWxlQ2xhc3MgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBaLWluZGV4IGJhc2UgZG8gcGFpbmVsIGRvIG1lbnUgZHJvcGRvd24gYXNzb2NpYWRvIGFvIGJvdMOjby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiYXNlWkluZGV4ID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIG8gYm90w6NvLCBpbXBlZGluZG8gY2xpcXVlcyBlIGludGVyYcOnw6NvIGRvIHVzdcOhcmlvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFwbGljYSBlc3RpbG8gYXV4aWxpYXIgKG1lbm9zIGRlc3RhcXVlIHZpc3VhbCkgYW8gYm90w6NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXhpbGlhcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaXBvIGRvIGVsZW1lbnRvIGA8YnV0dG9uPmAgSFRNTCAoYCdidXR0b24nYCwgYCdzdWJtaXQnYCwgYCdyZXNldCdgKS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdidXR0b24nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZT8gPSAnYnV0dG9uJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcmlvcmlkYWRlIHZpc3VhbCBkbyBib3TDo28sIHF1ZSBkZXRlcm1pbmEgc2V1IGVzdGlsby5cbiAgICAgKiBBY2VpdGEgYCdwcmltYXJ5J2AsIGAnZGVmYXVsdCdgLCBgJ2RhbmdlcidgLCBgJ2xpbmsnYCwgZW50cmUgb3V0cm9zLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ3ByaW1hcnknXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcHJpb3JpdHk/OiBCdXR0b25Qcmlvcml0eSA9ICdwcmltYXJ5JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBpdGVucyBkbyBtZW51IGRyb3Bkb3duIGV4aWJpZG8gYW8gY2xpY2FyIG5vIGNhcmV0IGRvIGJvdMOjby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFtdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWVudU9wdGlvbnM6IFRpZXJlZE1lbnVJdGVtRGF0YVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGFtYW5obyB2aXN1YWwgZG8gYm90w6NvLiBBY2VpdGEgYCdkZWZhdWx0J2Agb3UgYCdzbWFsbCdgLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2l6ZT86ICdkZWZhdWx0JyB8ICdzbWFsbCcgPSAnZGVmYXVsdCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBtb2RvIHNsaWRlLCBxdWUgZXhpYmUgdW1hIGFuaW1hw6fDo28gZGUgZGVzbGl6ZSBhbyBwYXNzYXIgbyBtb3VzZS5cbiAgICAgKiBSZXF1ZXIgYHByaW9yaXR5YCBpZ3VhbCBhIGAnZGVmYXVsdCdgIG91IGAnbGluaydgIGUgdW0gYGxhYmVsYCBkZWZpbmlkby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2xpZGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaXBvIGRlIGFuaW1hw6fDo28gYXBsaWNhZGEgYW8gYm90w6NvIChgJ3JvdGF0ZSdgLCBgJ3B1bHNlJ2AsIGV0Yy4pLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFuaW1hdGlvbj86IEJ1dHRvbkFuaW1hdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhw6fDo28gZG8gYmFkZ2UgZXhpYmlkbyBzb2JyZSBvIGJvdMOjbywgY29tIGNvbnRhZG9yIG91IGluZGljYWRvciB2aXN1YWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYmFkZ2U/OiBCdXR0b25CYWRnZUNvbmZpZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb3IgYXBsaWNhZGEgYW8gw61jb25lIGRvIGJvdMOjbywgc29icmVzY3JldmVuZG8gYSBjb3IgcGFkcsOjbyBkbyB0ZW1hLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25Db2xvcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0byBhbHRlcm5hdGl2byBwYXJhIG8gbWVudSBhc3NvY2lhZG8gYW8gYm90w6NvLCB1dGlsaXphZG8gcGFyYSBhY2Vzc2liaWxpZGFkZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZW51QXJpYUxhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGFsdGVybmF0aXZvIHBhcmEgcXVhbmRvIG8gYm90w6NvIG7Do28gdGl2ZXIgdW0gdGV4dG8gZXhwbGljaXRvLCB1dGlsaXphZG8gcGFyYSBhY2Vzc2liaWxpZGFkZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBhbyBjbGljYXIgbm8gYm90w6NvLCBkZXNkZSBxdWUgbsOjbyBlc3RlamEgZGVzYWJpbGl0YWRvLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpc01lbnVPcGVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVTbGlkZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuc2xpZGUgJiYgKHRoaXMucHJpb3JpdHkgPT09ICdkZWZhdWx0JyB8fCB0aGlzLnByaW9yaXR5ID09PSAnbGluaycpICYmIHRoaXMubGFiZWw/Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzSWNvbiA9IHRoaXMuaWNvbkNsYXNzO1xuICAgICAgICBjb25zdCBoYXNUZXh0ID0gdGhpcy5sYWJlbDtcblxuICAgICAgICBjb25zdCBpc011bHRpcGxlID0gdGhpcy5tZW51T3B0aW9ucz8ubGVuZ3RoO1xuXG4gICAgICAgIGlmIChoYXNUZXh0IHx8IChoYXNJY29uICYmIGlzTXVsdGlwbGUpKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gJzgwcHgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNUZXh0ICYmIGhhc0ljb24gJiYgaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9ICcxMDBweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSb3RhdGVBbmltYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbiA9PT0gJ3JvdGF0ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGllcmVkTWVudU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01lbnVPcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UaWVyZWRNZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudU9wZW4gPSBmYWxzZTtcbiAgICB9XG59XG5cbiIsIjxidXR0b25cbiAgICBbaWRdPVwiaWRcIlxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdzLWJ1dHRvbi1hdXhpbGlhcnknOiBhdXhpbGlhcnksXG4gICAgICAgICdzLWJ1dHRvbi13aXRoLWljb24nOiBpY29uQ2xhc3MsXG4gICAgICAgICdzLWJ1dHRvbi13aXRoLXRleHQnOiBsYWJlbCxcbiAgICAgICAgJ3MtYnV0dG9uLW9ubHktaWNvbic6IGljb25DbGFzcyAmJiAhbGFiZWwgJiYgIW1lbnVPcHRpb25zLmxlbmd0aCxcbiAgICAgICAgJ3MtYnV0dG9uLWVtcHR5JzogIWljb25DbGFzcyAmJiAhbGFiZWwsXG4gICAgICAgICdzLWJ1dHRvbi1zaXplLWRlZmF1bHQnOiBzaXplID09PSAnZGVmYXVsdCcsXG4gICAgICAgICdzLWJ1dHRvbi1zaXplLXNtYWxsJzogc2l6ZSA9PT0gJ3NtYWxsJyxcbiAgICAgICAgJ3MtYnV0dG9uLXByaW9yaXR5LWRlZmF1bHQnOiBwcmlvcml0eSA9PT0gJ2RlZmF1bHQnLFxuICAgICAgICAncy1idXR0b24tcHJpb3JpdHktcHJpbWFyeSc6IHByaW9yaXR5ID09PSAncHJpbWFyeScsXG4gICAgICAgICdzLWJ1dHRvbi1wcmlvcml0eS1zZWNvbmRhcnknOiBwcmlvcml0eSA9PT0gJ3NlY29uZGFyeScsXG4gICAgICAgICdzLWJ1dHRvbi1wcmlvcml0eS1saW5rJzogcHJpb3JpdHkgPT09ICdsaW5rJyxcbiAgICAgICAgJ3MtYnV0dG9uLXByaW9yaXR5LWRhbmdlcic6IHByaW9yaXR5ID09PSAnZGFuZ2VyJyxcbiAgICAgICAgJ3MtYnV0dG9uLW11bHRpcGxlJzogKGNhcmV0ICYmIG1lbnVPcHRpb25zLmxlbmd0aCkgfHwgcmlnaHRJY29uQ2xhc3MsXG4gICAgICAgICdzLWJ1dHRvbi0tc2xpZGUnOiB2YWxpZGF0ZVNsaWRlQnV0dG9uKCksXG4gICAgICAgICdzLWJ1dHRvbi0tcm90YXRlLWFuaW1hdGlvbic6IGlzUm90YXRlQW5pbWF0aW9uKCksXG4gICAgfVwiXG4gICAgc1RpZXJlZE1lbnVcbiAgICBbaXRlbXNdPVwibWVudU9wdGlvbnNcIlxuICAgIFthcmlhTGFiZWxdPVwibWVudUFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJtZW51T3B0aW9ucy5sZW5ndGggPyAnbWVudScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1lbnVPcHRpb25zLmxlbmd0aCA/IGlzTWVudU9wZW4gOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbc1Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxuICAgICh0aWVyZWRNZW51T3BlbmVkKT1cIm9uVGllcmVkTWVudU9wZW5lZCgpXCJcbiAgICAodGllcmVkTWVudUNsb3NlZCk9XCJvblRpZXJlZE1lbnVDbG9zZWQoKVwiXG4gICAgKGNsaWNrKT1cImNsaWNrZWQuZW1pdCgkZXZlbnQpXCJcbj5cbiAgICBAaWYgKGljb25DbGFzcykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3MtYnV0dG9uLWljb24nOiB0cnVlLFxuICAgICAgICAgICAgICAgICdzLWJ1dHRvbi1pY29uLW1hcmdpbi1yaWdodCc6ICFsYWJlbCAmJiBtZW51T3B0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGljb25Db2xvciB9XCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKGxhYmVsKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInMtYnV0dG9uLXRleHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdzLWJ1dHRvbi1pY29uLW1hcmdpbi1yaWdodCc6ICEhcmlnaHRJY29uQ2xhc3MgfHwgbWVudU9wdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgICAgICdzLWJ1dHRvbi1pY29uLW1hcmdpbi1sZWZ0JzogISFpY29uQ2xhc3MsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgQGlmIChyaWdodEljb25DbGFzcykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzXT1cInJpZ2h0SWNvbkNsYXNzXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3MtYnV0dG9uLXJpZ2h0LWljb24nOiB0cnVlIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogaWNvbkNvbG9yIH1cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBpZiAoKGNhcmV0ICYmIG1lbnVPcHRpb25zLmxlbmd0aCkgfHwgKG1lbnVPcHRpb25zICYmIG1lbnVPcHRpb25zLmxlbmd0aCkpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1vcHRpb25zLWljb24gZmEgZmEtZncgZmEtY2FyZXQtZG93blwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L2J1dHRvbj5cbkBpZiAoYmFkZ2UpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj5cbiAgICAgICAgPHMtYmFkZ2VcbiAgICAgICAgICAgIFtjb2xvcl09XCJiYWRnZS5jb2xvclwiXG4gICAgICAgICAgICBbdGV4dF09XCJiYWRnZS50ZXh0XCJcbiAgICAgICAgICAgIFtpY29uQ2xhc3NdPVwiYmFkZ2UuaWNvbkNsYXNzXCJcbiAgICAgICAgPlxuICAgICAgICA8L3MtYmFkZ2U+XG4gICAgPC9kaXY+XG59XG5cbiJdfQ==
@@ -27,7 +27,7 @@ import * as i2 from "@seniorsistemas/angular-components/button";
27
27
  export class PopupConfirmDialogComponent {
28
28
  confirmDialog;
29
29
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopupConfirmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PopupConfirmDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if (confirmDialog) {\n <s-dialog [header]=\"confirmDialog.header\">\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12\">\n {{ confirmDialog.message }}\n </div>\n </div>\n <ng-template\n sTemplate=\"footer\"\n let-activeDialog=\"activeDialog\"\n >\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12 flex flex-wrap justify-end gap-3\">\n @if (confirmDialog.rejectLabel) {\n <s-button\n [label]=\"confirmDialog.rejectLabel\"\n (clicked)=\"activeDialog.close(false)\"\n label=\"A\u00E7\u00E3o secund\u00E1ria\"\n priority=\"link\"\n />\n }\n <s-button\n [label]=\"confirmDialog.acceptLabel\"\n (clicked)=\"activeDialog.close(true)\"\n priority=\"primary\"\n />\n </div>\n </div>\n </ng-template>\n </s-dialog>\n}\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: TemplateModule }, { kind: "directive", type: i1.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }] });
30
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PopupConfirmDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if (confirmDialog) {\n <s-dialog [header]=\"confirmDialog.header\">\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12\">\n {{ confirmDialog.message }}\n </div>\n </div>\n <ng-template\n sTemplate=\"footer\"\n let-activeDialog=\"activeDialog\"\n >\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12 flex flex-wrap justify-end gap-3\">\n @if (confirmDialog.rejectLabel) {\n <s-button\n [label]=\"confirmDialog.rejectLabel\"\n (clicked)=\"activeDialog.close(false)\"\n label=\"A\u00E7\u00E3o secund\u00E1ria\"\n priority=\"link\"\n />\n }\n <s-button\n [label]=\"confirmDialog.acceptLabel\"\n (clicked)=\"activeDialog.close(true)\"\n priority=\"primary\"\n />\n </div>\n </div>\n </ng-template>\n </s-dialog>\n}\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: TemplateModule }, { kind: "directive", type: i1.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }] });
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopupConfirmDialogComponent, decorators: [{
33
33
  type: Component,
@@ -149,7 +149,7 @@ export class ContentGeneratorComponent {
149
149
  removalVersion: '20.0.0',
150
150
  },
151
151
  },
152
- ], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "component", type: i4.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: i7.DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: i9.SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
152
+ ], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: i4.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: i7.DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: i9.SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
153
153
  }
154
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorComponent, decorators: [{
155
155
  type: Component,
@@ -41,10 +41,10 @@ export class RowComponent {
41
41
  return '';
42
42
  }
43
43
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowComponent, isStandalone: true, selector: "s-row", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: true, transformFunction: null }, errorMessages: { classPropertyName: "errorMessages", publicName: "errorMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"w-full\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"grid w-screen max-w-full grid-cols-12 gap-4\">\n @for (field of config().fields; let i = $index; track i) {\n @let fieldName = getName(field);\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div\n class=\"p-1\"\n [ngClass]=\"fieldGridClass(field)\"\n >\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (fieldName) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group().controls[fieldName]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @let footerHelpVisible =\n field.footer.help.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.help.visible ? footerHelpVisible : true) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @let footerLinkVisible =\n field.footer.link?.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.link?.visible ? footerLinkVisible : true) {\n <div style=\"margin-left: -17px\">\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group().controls[fieldName],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n } @else {\n @let gridClass = fieldGridClass(field);\n <div [ngClass]=\"gridClass\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n </div>\n }\n }\n </div>\n }\n</div>\n\n", dependencies: [{ kind: "ngmodule", type: ControlErrorsModule }, { kind: "component", type: i1.ControlErrorsComponent, selector: "s-control-errors", inputs: ["id", "control", "errorMessages", "form"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "directive", type: DynamicFormDirective, selector: "[sDynamicForm]", inputs: ["sDynamicForm"] }] });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowComponent, isStandalone: true, selector: "s-row", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: true, transformFunction: null }, errorMessages: { classPropertyName: "errorMessages", publicName: "errorMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"w-full\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"grid w-screen max-w-full grid-cols-12 gap-4\">\n @for (field of config().fields; let i = $index; track i) {\n @let fieldName = getName(field);\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div\n class=\"p-1\"\n [ngClass]=\"fieldGridClass(field)\"\n >\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (fieldName) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group().controls[fieldName]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @let footerHelpVisible =\n field.footer.help.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.help.visible ? footerHelpVisible : true) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @let footerLinkVisible =\n field.footer.link?.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.link?.visible ? footerLinkVisible : true) {\n <div style=\"margin-left: -17px\">\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group().controls[fieldName],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n } @else {\n @let gridClass = fieldGridClass(field);\n <div [ngClass]=\"gridClass\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n </div>\n }\n }\n </div>\n }\n</div>\n\n", dependencies: [{ kind: "ngmodule", type: ControlErrorsModule }, { kind: "component", type: i1.ControlErrorsComponent, selector: "s-control-errors", inputs: ["id", "control", "errorMessages", "form"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "directive", type: DynamicFormDirective, selector: "[sDynamicForm]", inputs: ["sDynamicForm"] }] });
45
45
  }
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 's-row', standalone: true, imports: [ControlErrorsModule, ReactiveFormsModule, NgClass, ButtonComponent, DynamicFormDirective], template: "<div\n class=\"w-full\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"grid w-screen max-w-full grid-cols-12 gap-4\">\n @for (field of config().fields; let i = $index; track i) {\n @let fieldName = getName(field);\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div\n class=\"p-1\"\n [ngClass]=\"fieldGridClass(field)\"\n >\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (fieldName) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group().controls[fieldName]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @let footerHelpVisible =\n field.footer.help.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.help.visible ? footerHelpVisible : true) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @let footerLinkVisible =\n field.footer.link?.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.link?.visible ? footerLinkVisible : true) {\n <div style=\"margin-left: -17px\">\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group().controls[fieldName],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n } @else {\n @let gridClass = fieldGridClass(field);\n <div [ngClass]=\"gridClass\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n </div>\n }\n }\n </div>\n }\n</div>\n\n" }]
49
49
  }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2dyaWQvcm93L3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU94RixPQUFPLEVBQUUsb0JBQW9CLEVBQWlCLE1BQU0sNkNBQTZDLENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBU25GLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLEVBQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNyQixNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO0lBRXJDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFhLENBQUM7SUFDcEMsYUFBYSxHQUFHLEtBQUssRUFBTyxDQUFDO0lBRVYsU0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRW5ELGdCQUFnQixDQUFDLGFBQWtCO1FBQ3pDLElBQUksYUFBYTtZQUFFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzRixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVU7UUFDM0IsT0FBTyxLQUFLLFlBQVksUUFBUSxDQUFDO0lBQ3JDLENBQUM7SUFFUywwQkFBMEIsQ0FDaEMsS0FBbUU7UUFFbkUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBcUIsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBYztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFUyxPQUFPLENBQUMsS0FBYztRQUM1QixJQUFJLFlBQVksSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzVDLE9BQU8sS0FBSyxDQUFDLFVBQW9CLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO3dHQXJDUSxZQUFZOzRGQUFaLFlBQVksNmpCQ3pCekIsK2dJQWdGQSwyQ0R6RGMsbUJBQW1CLHdLQUFFLG1CQUFtQiw0VUFBRSxPQUFPLG9GQUFFLGVBQWUsdVVBQUUsb0JBQW9COzs0RkFFekYsWUFBWTtrQkFOeEIsU0FBUzsrQkFFSSxPQUFPLGNBQ0wsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IENvbnRyb2xFcnJvcnNNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRyb2wtZXJyb3JzJztcbmltcG9ydCB7XG4gICAgRXhwYW5kZWREeW5hbWljU3RydWN0dXJlLFxuICAgIEV4cGFuZGVkRHluYW1pY1R5cGUsXG4gICAgUm93Q29uZmlnLFxuICAgIFJvd1R5cGUsXG59IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS9yb3cnO1xuaW1wb3J0IHsgU1RSVUNUVVJFX1RZUEVTX0xJU1QsIFN0cnVjdHVyZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9ucy9zdHJ1Y3R1cmUvc3RydWN0dXJlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZHluYW1pYy1mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGaWVsZFNpemUgfSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkLXNpemUnO1xuaW1wb3J0IHsgRHluYW1pY1R5cGUgfSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9maWVsZCc7XG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVN0cnVjdHVyZUNvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uLy4uL3N0cnVjdHVyZS9iYXNlLXN0cnVjdHVyZS1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vcm93LmNvbXBvbmVudC5odG1sJyxcbiAgICBzZWxlY3RvcjogJ3Mtcm93JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb250cm9sRXJyb3JzTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOZ0NsYXNzLCBCdXR0b25Db21wb25lbnQsIER5bmFtaWNGb3JtRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgUm93Q29tcG9uZW50IGltcGxlbWVudHMgQmFzZVN0cnVjdHVyZUNvbXBvbmVudENvbmZpZyB7XG4gICAgaWQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8Um93Q29uZmlnPigpO1xuXG4gICAgZ3JvdXAgPSBpbnB1dC5yZXF1aXJlZDxGb3JtR3JvdXA+KCk7XG4gICAgZXJyb3JNZXNzYWdlcyA9IGlucHV0PGFueT4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIHByb3RlY3RlZCBnZXRFcnJvck1lc3NhZ2VzKGVycm9yTWVzc2FnZXM6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3JNZXNzYWdlcykgcmV0dXJuIHRoaXMuaXNGdW5jdGlvbihlcnJvck1lc3NhZ2VzKSA/IGVycm9yTWVzc2FnZXMoKSA6IGVycm9yTWVzc2FnZXM7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaWVsZElzRXhwYW5kZWREeW5hbWljVHlwZShcbiAgICAgICAgZmllbGQ6IEV4cGFuZGVkRHluYW1pY1R5cGUgfCBFeHBhbmRlZER5bmFtaWNTdHJ1Y3R1cmUgfCBEeW5hbWljVHlwZSxcbiAgICApOiBmaWVsZCBpcyBFeHBhbmRlZER5bmFtaWNUeXBlIHtcbiAgICAgICAgcmV0dXJuICFTVFJVQ1RVUkVfVFlQRVNfTElTVC5pbmNsdWRlcyhmaWVsZC50eXBlIGFzIFN0cnVjdHVyZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaWVsZEdyaWRDbGFzcyhmaWVsZDogUm93VHlwZSkge1xuICAgICAgICBjb25zdCBmaWVsZFNpemUgPSBuZXcgRmllbGRTaXplKGZpZWxkLnNpemUgPz8ge30pO1xuICAgICAgICByZXR1cm4gZmllbGRTaXplLmdldEdyaWRDbGFzcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXROYW1lKGZpZWxkOiBSb3dUeXBlKSB7XG4gICAgICAgIGlmICgnY3VzdG9tTmFtZScgaW4gZmllbGQgJiYgZmllbGQuY3VzdG9tTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLmN1c3RvbU5hbWUgYXMgc3RyaW5nO1xuICAgICAgICB9IGVsc2UgaWYgKCduYW1lJyBpbiBmaWVsZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXAoKVwiXG4+XG4gICAgQGxldCByb3dDb25maWcgPSBjb25maWcoKTtcbiAgICBAbGV0IHJvd0lzVmlzaWJsZSA9IGZvcm1VdGlscy5nZXRGaWVsZFByb3BlcnR5KHJvd0NvbmZpZy52aXNpYmxlLCB0cnVlKTtcbiAgICBAaWYgKHJvd0lzVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3LXNjcmVlbiBtYXgtdy1mdWxsIGdyaWQtY29scy0xMiBnYXAtNFwiPlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgY29uZmlnKCkuZmllbGRzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICAgIEBsZXQgZmllbGROYW1lID0gZ2V0TmFtZShmaWVsZCk7XG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZElzRXhwYW5kZWREeW5hbWljVHlwZShmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCBmaWVsZFZpc2libGUgPSBmb3JtVXRpbHMuZ2V0RmllbGRQcm9wZXJ0eShmaWVsZC52aXNpYmxlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZmllbGRHcmlkQ2xhc3MoZmllbGQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpzRHluYW1pY0Zvcm09XCJ7IGlkOiBpZCgpLCBjb25maWc6IGZpZWxkLCBncm91cDogZ3JvdXAoKSB9XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cy1jb250cm9sLWVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiZ3JvdXAoKS5jb250cm9sc1tmaWVsZE5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VzXT1cImdldEVycm9yTWVzc2FnZXMoZmllbGQuZXJyb3JNZXNzYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zLWNvbnRyb2wtZXJyb3JzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyLmhlbHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgZm9vdGVySGVscFZpc2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvb3Rlci5oZWxwLnZpc2libGU/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3RyYWN0Q29udHJvbDogZ3JvdXAoKS5jb250cm9sc1tmaWVsZE5hbWVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQ6IGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZE5hbWUgJiYgZmllbGQuZm9vdGVyLmhlbHAudmlzaWJsZSA/IGZvb3RlckhlbHBWaXNpYmxlIDogdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6ICM4ODhiOTlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZmllbGQuZm9vdGVyLmhlbHAudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgZm9vdGVyTGlua1Zpc2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuZm9vdGVyLmxpbms/LnZpc2libGU/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RDb250cm9sOiBncm91cCgpLmNvbnRyb2xzW2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkTmFtZSAmJiBmaWVsZC5mb290ZXIubGluaz8udmlzaWJsZSA/IGZvb3RlckxpbmtWaXNpYmxlIDogdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMTdweFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZmllbGQuZm9vdGVyLmxpbms/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb290ZXIubGluaz8ub25DbGljayh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RDb250cm9sOiBncm91cCgpLmNvbnRyb2xzW2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXhpbGlhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcy1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmJvdHRvbVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC5ib3R0b21UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCBncmlkQ2xhc3MgPSBmaWVsZEdyaWRDbGFzcyhmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZ3JpZENsYXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpzRHluYW1pY0Zvcm09XCJ7IGlkOiBpZCgpLCBjb25maWc6IGZpZWxkLCBncm91cDogZ3JvdXAoKSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG5cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2dyaWQvcm93L3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU94RixPQUFPLEVBQUUsb0JBQW9CLEVBQWlCLE1BQU0sNkNBQTZDLENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBU25GLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLEVBQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNyQixNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO0lBRXJDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFhLENBQUM7SUFDcEMsYUFBYSxHQUFHLEtBQUssRUFBTyxDQUFDO0lBRVYsU0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRW5ELGdCQUFnQixDQUFDLGFBQWtCO1FBQ3pDLElBQUksYUFBYTtZQUFFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzRixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVU7UUFDM0IsT0FBTyxLQUFLLFlBQVksUUFBUSxDQUFDO0lBQ3JDLENBQUM7SUFFUywwQkFBMEIsQ0FDaEMsS0FBbUU7UUFFbkUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBcUIsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBYztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFUyxPQUFPLENBQUMsS0FBYztRQUM1QixJQUFJLFlBQVksSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzVDLE9BQU8sS0FBSyxDQUFDLFVBQW9CLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO3dHQXJDUSxZQUFZOzRGQUFaLFlBQVksNmpCQ3pCekIsK2dJQWdGQSwyQ0R6RGMsbUJBQW1CLHdLQUFFLG1CQUFtQiw0VUFBRSxPQUFPLG9GQUFFLGVBQWUsb1ZBQUUsb0JBQW9COzs0RkFFekYsWUFBWTtrQkFOeEIsU0FBUzsrQkFFSSxPQUFPLGNBQ0wsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IENvbnRyb2xFcnJvcnNNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRyb2wtZXJyb3JzJztcbmltcG9ydCB7XG4gICAgRXhwYW5kZWREeW5hbWljU3RydWN0dXJlLFxuICAgIEV4cGFuZGVkRHluYW1pY1R5cGUsXG4gICAgUm93Q29uZmlnLFxuICAgIFJvd1R5cGUsXG59IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS9yb3cnO1xuaW1wb3J0IHsgU1RSVUNUVVJFX1RZUEVTX0xJU1QsIFN0cnVjdHVyZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9ucy9zdHJ1Y3R1cmUvc3RydWN0dXJlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZHluYW1pYy1mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGaWVsZFNpemUgfSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkLXNpemUnO1xuaW1wb3J0IHsgRHluYW1pY1R5cGUgfSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9maWVsZCc7XG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVN0cnVjdHVyZUNvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uLy4uL3N0cnVjdHVyZS9iYXNlLXN0cnVjdHVyZS1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vcm93LmNvbXBvbmVudC5odG1sJyxcbiAgICBzZWxlY3RvcjogJ3Mtcm93JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb250cm9sRXJyb3JzTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOZ0NsYXNzLCBCdXR0b25Db21wb25lbnQsIER5bmFtaWNGb3JtRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgUm93Q29tcG9uZW50IGltcGxlbWVudHMgQmFzZVN0cnVjdHVyZUNvbXBvbmVudENvbmZpZyB7XG4gICAgaWQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8Um93Q29uZmlnPigpO1xuXG4gICAgZ3JvdXAgPSBpbnB1dC5yZXF1aXJlZDxGb3JtR3JvdXA+KCk7XG4gICAgZXJyb3JNZXNzYWdlcyA9IGlucHV0PGFueT4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIHByb3RlY3RlZCBnZXRFcnJvck1lc3NhZ2VzKGVycm9yTWVzc2FnZXM6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3JNZXNzYWdlcykgcmV0dXJuIHRoaXMuaXNGdW5jdGlvbihlcnJvck1lc3NhZ2VzKSA/IGVycm9yTWVzc2FnZXMoKSA6IGVycm9yTWVzc2FnZXM7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaWVsZElzRXhwYW5kZWREeW5hbWljVHlwZShcbiAgICAgICAgZmllbGQ6IEV4cGFuZGVkRHluYW1pY1R5cGUgfCBFeHBhbmRlZER5bmFtaWNTdHJ1Y3R1cmUgfCBEeW5hbWljVHlwZSxcbiAgICApOiBmaWVsZCBpcyBFeHBhbmRlZER5bmFtaWNUeXBlIHtcbiAgICAgICAgcmV0dXJuICFTVFJVQ1RVUkVfVFlQRVNfTElTVC5pbmNsdWRlcyhmaWVsZC50eXBlIGFzIFN0cnVjdHVyZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaWVsZEdyaWRDbGFzcyhmaWVsZDogUm93VHlwZSkge1xuICAgICAgICBjb25zdCBmaWVsZFNpemUgPSBuZXcgRmllbGRTaXplKGZpZWxkLnNpemUgPz8ge30pO1xuICAgICAgICByZXR1cm4gZmllbGRTaXplLmdldEdyaWRDbGFzcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXROYW1lKGZpZWxkOiBSb3dUeXBlKSB7XG4gICAgICAgIGlmICgnY3VzdG9tTmFtZScgaW4gZmllbGQgJiYgZmllbGQuY3VzdG9tTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLmN1c3RvbU5hbWUgYXMgc3RyaW5nO1xuICAgICAgICB9IGVsc2UgaWYgKCduYW1lJyBpbiBmaWVsZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXAoKVwiXG4+XG4gICAgQGxldCByb3dDb25maWcgPSBjb25maWcoKTtcbiAgICBAbGV0IHJvd0lzVmlzaWJsZSA9IGZvcm1VdGlscy5nZXRGaWVsZFByb3BlcnR5KHJvd0NvbmZpZy52aXNpYmxlLCB0cnVlKTtcbiAgICBAaWYgKHJvd0lzVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3LXNjcmVlbiBtYXgtdy1mdWxsIGdyaWQtY29scy0xMiBnYXAtNFwiPlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgY29uZmlnKCkuZmllbGRzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICAgIEBsZXQgZmllbGROYW1lID0gZ2V0TmFtZShmaWVsZCk7XG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZElzRXhwYW5kZWREeW5hbWljVHlwZShmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCBmaWVsZFZpc2libGUgPSBmb3JtVXRpbHMuZ2V0RmllbGRQcm9wZXJ0eShmaWVsZC52aXNpYmxlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZmllbGRHcmlkQ2xhc3MoZmllbGQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpzRHluYW1pY0Zvcm09XCJ7IGlkOiBpZCgpLCBjb25maWc6IGZpZWxkLCBncm91cDogZ3JvdXAoKSB9XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cy1jb250cm9sLWVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiZ3JvdXAoKS5jb250cm9sc1tmaWVsZE5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VzXT1cImdldEVycm9yTWVzc2FnZXMoZmllbGQuZXJyb3JNZXNzYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zLWNvbnRyb2wtZXJyb3JzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyLmhlbHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgZm9vdGVySGVscFZpc2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvb3Rlci5oZWxwLnZpc2libGU/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3RyYWN0Q29udHJvbDogZ3JvdXAoKS5jb250cm9sc1tmaWVsZE5hbWVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQ6IGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZE5hbWUgJiYgZmllbGQuZm9vdGVyLmhlbHAudmlzaWJsZSA/IGZvb3RlckhlbHBWaXNpYmxlIDogdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6ICM4ODhiOTlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZmllbGQuZm9vdGVyLmhlbHAudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgZm9vdGVyTGlua1Zpc2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuZm9vdGVyLmxpbms/LnZpc2libGU/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RDb250cm9sOiBncm91cCgpLmNvbnRyb2xzW2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkTmFtZSAmJiBmaWVsZC5mb290ZXIubGluaz8udmlzaWJsZSA/IGZvb3RlckxpbmtWaXNpYmxlIDogdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMTdweFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZmllbGQuZm9vdGVyLmxpbms/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb290ZXIubGluaz8ub25DbGljayh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RDb250cm9sOiBncm91cCgpLmNvbnRyb2xzW2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXhpbGlhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcy1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmJvdHRvbVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC5ib3R0b21UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCBncmlkQ2xhc3MgPSBmaWVsZEdyaWRDbGFzcyhmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZ3JpZENsYXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpzRHluYW1pY0Zvcm09XCJ7IGlkOiBpZCgpLCBjb25maWc6IGZpZWxkLCBncm91cDogZ3JvdXAoKSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG5cbiJdfQ==