@valtimo/components 12.3.0 → 12.4.0

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 (67) hide show
  1. package/esm2022/lib/components/button/button.component.mjs +3 -3
  2. package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +8 -3
  3. package/esm2022/lib/components/carbon-list/no-results/carbon-no-results.component.mjs +3 -3
  4. package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +3 -3
  5. package/esm2022/lib/components/date-picker/date-picker.component.mjs +3 -3
  6. package/esm2022/lib/components/dropzone/dropzone.component.mjs +3 -3
  7. package/esm2022/lib/components/form-io/form-io.component.mjs +9 -3
  8. package/esm2022/lib/components/input/input.component.mjs +3 -3
  9. package/esm2022/lib/components/input-label/input-label.component.mjs +3 -3
  10. package/esm2022/lib/components/left-sidebar/left-sidebar.component.mjs +3 -3
  11. package/esm2022/lib/components/list/list.component.mjs +3 -3
  12. package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +3 -3
  13. package/esm2022/lib/components/multi-input-form/multi-input-form.component.mjs +3 -3
  14. package/esm2022/lib/components/page-actions/page-actions.component.mjs +3 -3
  15. package/esm2022/lib/components/page-header/page-header.component.mjs +3 -3
  16. package/esm2022/lib/components/page-subtitle/page-subtitle.component.mjs +3 -3
  17. package/esm2022/lib/components/page-title/page-title.component.mjs +3 -3
  18. package/esm2022/lib/components/paragraph/paragraph.component.mjs +3 -3
  19. package/esm2022/lib/components/prompt/prompt.component.mjs +3 -3
  20. package/esm2022/lib/components/radio/radio.component.mjs +3 -3
  21. package/esm2022/lib/components/search-fields/search-fields.component.mjs +3 -3
  22. package/esm2022/lib/components/select/select.component.mjs +3 -3
  23. package/esm2022/lib/components/stepper/stepper-header/stepper-header.component.mjs +3 -3
  24. package/esm2022/lib/components/table/table.component.mjs +3 -3
  25. package/esm2022/lib/components/title/title.component.mjs +3 -3
  26. package/esm2022/lib/components/v-card/card.component.mjs +3 -3
  27. package/esm2022/lib/components/v-modal/modal.component.mjs +11 -8
  28. package/esm2022/lib/components/v-modal/modal.module.mjs +5 -4
  29. package/esm2022/lib/components/value-path-selector/value-path-selector.component.mjs +3 -3
  30. package/esm2022/lib/components/view-content/type-converters/booleanTypeConverter.mjs +3 -1
  31. package/esm2022/lib/components/view-content/type-converters/currencyTypeConverter.mjs +2 -3
  32. package/esm2022/lib/components/view-content/type-converters/dateTimeTypeConverter.mjs +2 -3
  33. package/esm2022/lib/components/view-content/type-converters/dateTypeConverter.mjs +2 -3
  34. package/esm2022/lib/components/view-content/type-converters/enumTypeConverter.mjs +3 -1
  35. package/esm2022/lib/components/view-content/type-converters/numberTypeConverter.mjs +2 -3
  36. package/esm2022/lib/components/view-content/type-converters/percentTypeConverter.mjs +2 -3
  37. package/esm2022/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.mjs +2 -2
  38. package/esm2022/lib/components/view-content/type-converters/stringTypeConverter.mjs +2 -2
  39. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +7 -5
  40. package/esm2022/lib/models/modal.model.mjs +1 -1
  41. package/fesm2022/valtimo-components.mjs +131 -117
  42. package/fesm2022/valtimo-components.mjs.map +1 -1
  43. package/lib/components/carbon-list/carbon-list.component.d.ts +1 -0
  44. package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -1
  45. package/lib/components/form-io/form-io.component.d.ts +3 -1
  46. package/lib/components/form-io/form-io.component.d.ts.map +1 -1
  47. package/lib/components/v-modal/modal.component.d.ts +3 -1
  48. package/lib/components/v-modal/modal.component.d.ts.map +1 -1
  49. package/lib/components/v-modal/modal.module.d.ts +2 -1
  50. package/lib/components/v-modal/modal.module.d.ts.map +1 -1
  51. package/lib/components/view-content/type-converters/booleanTypeConverter.d.ts.map +1 -1
  52. package/lib/components/view-content/type-converters/currencyTypeConverter.d.ts.map +1 -1
  53. package/lib/components/view-content/type-converters/dateTimeTypeConverter.d.ts.map +1 -1
  54. package/lib/components/view-content/type-converters/dateTypeConverter.d.ts.map +1 -1
  55. package/lib/components/view-content/type-converters/enumTypeConverter.d.ts.map +1 -1
  56. package/lib/components/view-content/type-converters/numberTypeConverter.d.ts.map +1 -1
  57. package/lib/components/view-content/type-converters/percentTypeConverter.d.ts.map +1 -1
  58. package/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +1 -1
  59. package/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts.map +1 -1
  60. package/lib/components/view-content/type-converters/stringTypeConverter.d.ts +1 -1
  61. package/lib/components/view-content/type-converters/stringTypeConverter.d.ts.map +1 -1
  62. package/lib/components/view-content/type-converters/type-converters.model.d.ts +3 -3
  63. package/lib/components/view-content/type-converters/type-converters.model.d.ts.map +1 -1
  64. package/lib/directives/tooltip/tooltip.directive.d.ts.map +1 -1
  65. package/lib/models/modal.model.d.ts +2 -1
  66. package/lib/models/modal.model.d.ts.map +1 -1
  67. package/package.json +1 -1
@@ -139,11 +139,11 @@ export class SelectComponent {
139
139
  }
140
140
  }
141
141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
142
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectComponent, selector: "v-select", inputs: { items: "items", defaultSelection: "defaultSelection", defaultSelectionId: "defaultSelectionId", defaultSelectionIds: "defaultSelectionIds", disabled: "disabled", dropUp: "dropUp", multiple: "multiple", margin: "margin", widthInPx: "widthInPx", notFoundText: "notFoundText", clearAllText: "clearAllText", clearText: "clearText", name: "name", title: "title", titleTranslationKey: "titleTranslationKey", clearSelectionSubject$: "clearSelectionSubject$", tooltip: "tooltip", required: "required", loading: "loading", loadingText: "loadingText", placeholder: "placeholder", smallMargin: "smallMargin", carbonTheme: "carbonTheme", appendInline: "appendInline", dataTestId: "dataTestId" }, outputs: { selectedChange: "selectedChange" }, usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n placeholderText: placeholder || ('interface.filter' | translate),\n loadingText: loadingText || ('interface.loading' | translate),\n clearText: clearText || ('interface.clear' | translate),\n clearAllText: clearAllText || ('interface.clearAll' | translate),\n notFoundText: notFoundText || ('interface.noItemsFound' | translate),\n items: listItems$ | async\n } as vars\"\n [ngClass]=\"{'--margin': margin, '--small-margin': smallMargin}\"\n class=\"v-select-container\"\n [style.width.px]=\"widthInPx\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n <cds-combo-box\n [attr.data-testid]=\"dataTestId\"\n [appendInline]=\"appendInline\"\n [clearSelectionTitle]=\"vars.clearText\"\n [clearSelectionsTitle]=\"vars.clearAllText\"\n [disabled]=\"disabled || loading || vars.items.length === 0\"\n [dropUp]=\"dropUp\"\n [placeholder]=\"\n loading\n ? vars.loadingText\n : vars.items.length === 0\n ? vars.notFoundText\n : vars.placeholderText\n \"\n [type]=\"multiple ? 'multi' : 'single'\"\n (clear)=\"clear()\"\n (selected)=\"setSelected($event)\"\n >\n <cds-dropdown-list [items]=\"vars.items\"></cds-dropdown-list>\n </cds-combo-box>\n</div>\n", styles: [".v-select-container.--margin{margin-block-end:var(--v-input-margin)}.v-select-container.--small-margin{margin-block-end:var(--v-input-small-margin)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i4.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i4.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectComponent, selector: "v-select", inputs: { items: "items", defaultSelection: "defaultSelection", defaultSelectionId: "defaultSelectionId", defaultSelectionIds: "defaultSelectionIds", disabled: "disabled", dropUp: "dropUp", multiple: "multiple", margin: "margin", widthInPx: "widthInPx", notFoundText: "notFoundText", clearAllText: "clearAllText", clearText: "clearText", name: "name", title: "title", titleTranslationKey: "titleTranslationKey", clearSelectionSubject$: "clearSelectionSubject$", tooltip: "tooltip", required: "required", loading: "loading", loadingText: "loadingText", placeholder: "placeholder", smallMargin: "smallMargin", carbonTheme: "carbonTheme", appendInline: "appendInline", dataTestId: "dataTestId" }, outputs: { selectedChange: "selectedChange" }, usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n placeholderText: placeholder || ('interface.filter' | translate),\n loadingText: loadingText || ('interface.loading' | translate),\n clearText: clearText || ('interface.clear' | translate),\n clearAllText: clearAllText || ('interface.clearAll' | translate),\n notFoundText: notFoundText || ('interface.noItemsFound' | translate),\n items: listItems$ | async,\n } as vars\"\n [ngClass]=\"{'--margin': margin, '--small-margin': smallMargin}\"\n class=\"v-select-container\"\n [style.width.px]=\"widthInPx\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n <cds-combo-box\n [attr.data-testid]=\"dataTestId\"\n [appendInline]=\"appendInline\"\n [clearSelectionTitle]=\"vars.clearText\"\n [clearSelectionsTitle]=\"vars.clearAllText\"\n [disabled]=\"disabled || loading || vars.items.length === 0\"\n [dropUp]=\"dropUp\"\n [placeholder]=\"\n loading\n ? vars.loadingText\n : vars.items.length === 0\n ? vars.notFoundText\n : vars.placeholderText\n \"\n [type]=\"multiple ? 'multi' : 'single'\"\n (clear)=\"clear()\"\n (selected)=\"setSelected($event)\"\n >\n <cds-dropdown-list [items]=\"vars.items\"></cds-dropdown-list>\n </cds-combo-box>\n</div>\n", styles: [".v-select-container.--margin{margin-block-end:var(--v-input-margin)}.v-select-container.--small-margin{margin-block-end:var(--v-input-small-margin)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i4.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i4.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
143
143
  }
144
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectComponent, decorators: [{
145
145
  type: Component,
146
- args: [{ selector: 'v-select', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n placeholderText: placeholder || ('interface.filter' | translate),\n loadingText: loadingText || ('interface.loading' | translate),\n clearText: clearText || ('interface.clear' | translate),\n clearAllText: clearAllText || ('interface.clearAll' | translate),\n notFoundText: notFoundText || ('interface.noItemsFound' | translate),\n items: listItems$ | async\n } as vars\"\n [ngClass]=\"{'--margin': margin, '--small-margin': smallMargin}\"\n class=\"v-select-container\"\n [style.width.px]=\"widthInPx\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n <cds-combo-box\n [attr.data-testid]=\"dataTestId\"\n [appendInline]=\"appendInline\"\n [clearSelectionTitle]=\"vars.clearText\"\n [clearSelectionsTitle]=\"vars.clearAllText\"\n [disabled]=\"disabled || loading || vars.items.length === 0\"\n [dropUp]=\"dropUp\"\n [placeholder]=\"\n loading\n ? vars.loadingText\n : vars.items.length === 0\n ? vars.notFoundText\n : vars.placeholderText\n \"\n [type]=\"multiple ? 'multi' : 'single'\"\n (clear)=\"clear()\"\n (selected)=\"setSelected($event)\"\n >\n <cds-dropdown-list [items]=\"vars.items\"></cds-dropdown-list>\n </cds-combo-box>\n</div>\n", styles: [".v-select-container.--margin{margin-block-end:var(--v-input-margin)}.v-select-container.--small-margin{margin-block-end:var(--v-input-small-margin)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
146
+ args: [{ selector: 'v-select', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n placeholderText: placeholder || ('interface.filter' | translate),\n loadingText: loadingText || ('interface.loading' | translate),\n clearText: clearText || ('interface.clear' | translate),\n clearAllText: clearAllText || ('interface.clearAll' | translate),\n notFoundText: notFoundText || ('interface.noItemsFound' | translate),\n items: listItems$ | async,\n } as vars\"\n [ngClass]=\"{'--margin': margin, '--small-margin': smallMargin}\"\n class=\"v-select-container\"\n [style.width.px]=\"widthInPx\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n <cds-combo-box\n [attr.data-testid]=\"dataTestId\"\n [appendInline]=\"appendInline\"\n [clearSelectionTitle]=\"vars.clearText\"\n [clearSelectionsTitle]=\"vars.clearAllText\"\n [disabled]=\"disabled || loading || vars.items.length === 0\"\n [dropUp]=\"dropUp\"\n [placeholder]=\"\n loading\n ? vars.loadingText\n : vars.items.length === 0\n ? vars.notFoundText\n : vars.placeholderText\n \"\n [type]=\"multiple ? 'multi' : 'single'\"\n (clear)=\"clear()\"\n (selected)=\"setSelected($event)\"\n >\n <cds-dropdown-list [items]=\"vars.items\"></cds-dropdown-list>\n </cds-combo-box>\n</div>\n", styles: [".v-select-container.--margin{margin-block-end:var(--v-input-margin)}.v-select-container.--small-margin{margin-block-end:var(--v-input-small-margin)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
147
147
  }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { items: [{
148
148
  type: Input
149
149
  }], defaultSelection: [{
@@ -197,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
197
197
  }], selectedChange: [{
198
198
  type: Output
199
199
  }] } });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUEyQixNQUFNLE1BQU0sQ0FBQztBQUc5RSxPQUFPLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFPekMsTUFBTSxPQUFPLGVBQWU7SUFDMUIsSUFBb0IsS0FBSyxDQUFDLEtBQXdCO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDUCxJQUFJLENBQUMsRUFBRSxDQUNMLENBQUM7Z0JBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWM7Z0JBQ3pDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxRQUFRLEVBQUUsS0FBSzthQUNoQixDQUFhLENBQ2pCO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQXFERCxZQUE2QixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWpEL0MsYUFBUSxHQUFHLEtB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Q2hDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0FySlUsZUFBZTttR0FBZixlQUFlLDB5QkNyQzVCLGlrRUEyREE7OzRGRHRCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFVBQVU7cUZBS0EsS0FBSztzQkFBeEIsS0FBSztnQkFjVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBRVcsY0FBYztzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2VsZWN0ZWRWYWx1ZSwgU2VsZWN0SXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMaXN0SXRlbX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndi1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGl0ZW1zKHZhbHVlOiBBcnJheTxTZWxlY3RJdGVtPikge1xuICAgIHRoaXMuX2xpc3RJdGVtcyQubmV4dChcbiAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgID8gdmFsdWUubWFwKFxuICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0udGV4dCB8fCBpdGVtLnRyYW5zbGF0aW9uS2V5LFxuICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfSkgYXMgTGlzdEl0ZW1cbiAgICAgICAgICApXG4gICAgICAgIDogW11cbiAgICApO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0U2VsZWN0aW9uITogU2VsZWN0SXRlbTtcbiAgQElucHV0KCkgcHVibGljIGRlZmF1bHRTZWxlY3Rpb25JZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGRlZmF1bHRTZWxlY3Rpb25JZHMhOiBBcnJheTxzdHJpbmc+O1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRyb3BVcD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbWFyZ2luID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB3aWR0aEluUHghOiBudW1iZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBub3RGb3VuZFRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhckFsbFRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhclRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGVUcmFuc2xhdGlvbktleSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgY2xlYXJTZWxlY3Rpb25TdWJqZWN0JCE6IE9ic2VydmFibGU8dm9pZD47XG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ1RleHQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzbWFsbE1hcmdpbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgY2FyYm9uVGhlbWUgPSAnZzEwJztcbiAgQElucHV0KCkgcHVibGljIGFwcGVuZElubGluZSA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhVGVzdElkPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWxlY3RlZFZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWxlY3RlZFZhbHVlPignJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PExpc3RJdGVtPj4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgbGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fbGlzdEl0ZW1zJCxcbiAgICB0aGlzLnNlbGVjdGVkJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtsaXN0SXRlbXMsIHNlbGVjdGVkXSkgPT5cbiAgICAgIGxpc3RJdGVtcy5tYXAobGlzdEl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGxpc3RJdGVtLmNvbnRlbnQpO1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkOiBib29sZWFuID0gQXJyYXkuaXNBcnJheShzZWxlY3RlZClcbiAgICAgICAgICA/IHNlbGVjdGVkLmluY2x1ZGVzKGxpc3RJdGVtLmlkKVxuICAgICAgICAgIDogc2VsZWN0ZWQgPT09IGxpc3RJdGVtLmlkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ubGlzdEl0ZW0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgY29udGVudDogdHJhbnNsYXRpb24gIT09IGxpc3RJdGVtLmNvbnRlbnQgPyB0cmFuc2xhdGlvbiA6IGxpc3RJdGVtLmNvbnRlbnQsXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgIClcbiAgKTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX2NsZWFyU3ViamVjdFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RGVmYXVsdFNlbGVjdGlvbigpO1xuICAgIHRoaXMub3BlblNlbGVjdGVkU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuQ2xlYXJTdWJqZWN0U3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXM/Lml0ZW1zPy5jdXJyZW50VmFsdWUgfHxcbiAgICAgIGNoYW5nZXM/LmRlZmF1bHRTZWxlY3Rpb25JZD8uY3VycmVudFZhbHVlIHx8XG4gICAgICBjaGFuZ2VzPy5kZWZhdWx0U2VsZWN0aW9uPy5jdXJyZW50VmFsdWUgfHxcbiAgICAgIGNoYW5nZXM/LmRlZmF1bHRTZWxlY3Rpb25JZHM/LmN1cnJlbnRWYWx1ZVxuICAgICkge1xuICAgICAgdGhpcy5zZXREZWZhdWx0U2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2NsZWFyU3ViamVjdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3RlZChzZWxlY3RlZFZhbHVlOiBMaXN0SXRlbSB8IEFycmF5PExpc3RJdGVtPik6IHZvaWQge1xuICAgIGNvbnN0IGlkID0gIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZSkgJiYgc2VsZWN0ZWRWYWx1ZT8uaWQ7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RlZFZhbHVlKSkge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKHNlbGVjdGVkVmFsdWUubWFwKHZhbHVlID0+IHZhbHVlLmlkKSk7XG4gICAgfSBlbHNlIGlmIChpZCAmJiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkVmFsdWUoaWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3RlZFZhbHVlKHNlbGVjdGVkVmFsdWU6IFNlbGVjdGVkVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50U2VsZWN0ZWQgPT4ge1xuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGN1cnJlbnRTZWxlY3RlZCkgIT09IEpTT04uc3RyaW5naWZ5KHNlbGVjdGVkVmFsdWUpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQkLm5leHQoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKHRoaXMubXVsdGlwbGUgPyBbXSA6ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RJdGVtcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUobGlzdEl0ZW1zID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zSWRzID0gbGlzdEl0ZW1zPy5tYXAoaXRlbSA9PiBpdGVtLmlkKTtcbiAgICAgIGNvbnN0IGRlZmF1bHRTZWxlY3Rpb25JZHMgPSB0aGlzLmRlZmF1bHRTZWxlY3Rpb25JZHM7XG4gICAgICBjb25zdCBkZWZhdWx0U2VsZWN0aW9uSWQgPSB0aGlzLmRlZmF1bHRTZWxlY3Rpb24/LmlkIHx8IHRoaXMuZGVmYXVsdFNlbGVjdGlvbklkO1xuXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLmRlZmF1bHRTZWxlY3Rpb25JZHMpIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKFsuLi5kZWZhdWx0U2VsZWN0aW9uSWRzXSk7XG4gICAgICB9IGVsc2UgaWYgKGRlZmF1bHRTZWxlY3Rpb25JZCAmJiBpdGVtc0lkcz8uaW5jbHVkZXMoZGVmYXVsdFNlbGVjdGlvbklkKSkge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShbZGVmYXVsdFNlbGVjdGlvbklkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKGRlZmF1bHRTZWxlY3Rpb25JZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGVmYXVsdFNlbGVjdGlvbklkICYmICFpdGVtc0lkcz8uaW5jbHVkZXMoZGVmYXVsdFNlbGVjdGlvbklkKSkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TZWxlY3RlZFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc2VsZWN0ZWQkLnN1YnNjcmliZShzZWxlY3RlZFZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTZWxlY3Rpb25JZCA9IHRoaXMuZGVmYXVsdFNlbGVjdGlvbj8uaWQgfHwgdGhpcy5kZWZhdWx0U2VsZWN0aW9uSWQ7XG5cbiAgICAgIGlmICgoIXRoaXMubXVsdGlwbGUgJiYgc2VsZWN0ZWRWYWx1ZSAhPT0gZGVmYXVsdFNlbGVjdGlvbklkKSB8fCB0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNsZWFyU3ViamVjdFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGVhclNlbGVjdGlvblN1YmplY3QkKSB7XG4gICAgICB0aGlzLl9jbGVhclN1YmplY3RTdWJzY3JpcHRpb24gPSB0aGlzLmNsZWFyU2VsZWN0aW9uU3ViamVjdCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgKm5nSWY9XCJ7XG4gICAgcGxhY2Vob2xkZXJUZXh0OiBwbGFjZWhvbGRlciB8fCAoJ2ludGVyZmFjZS5maWx0ZXInIHwgdHJhbnNsYXRlKSxcbiAgICBsb2FkaW5nVGV4dDogbG9hZGluZ1RleHQgfHwgKCdpbnRlcmZhY2UubG9hZGluZycgfCB0cmFuc2xhdGUpLFxuICAgIGNsZWFyVGV4dDogY2xlYXJUZXh0IHx8ICgnaW50ZXJmYWNlLmNsZWFyJyB8IHRyYW5zbGF0ZSksXG4gICAgY2xlYXJBbGxUZXh0OiBjbGVhckFsbFRleHQgfHwgKCdpbnRlcmZhY2UuY2xlYXJBbGwnIHwgdHJhbnNsYXRlKSxcbiAgICBub3RGb3VuZFRleHQ6IG5vdEZvdW5kVGV4dCB8fCAoJ2ludGVyZmFjZS5ub0l0ZW1zRm91bmQnIHwgdHJhbnNsYXRlKSxcbiAgICBpdGVtczogbGlzdEl0ZW1zJCB8IGFzeW5jXG4gIH0gYXMgdmFyc1wiXG4gIFtuZ0NsYXNzXT1cInsnLS1tYXJnaW4nOiBtYXJnaW4sICctLXNtYWxsLW1hcmdpbic6IHNtYWxsTWFyZ2lufVwiXG4gIGNsYXNzPVwidi1zZWxlY3QtY29udGFpbmVyXCJcbiAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoSW5QeFwiXG4+XG4gIDx2LWlucHV0LWxhYmVsXG4gICAgKm5nSWY9XCJ0aXRsZSB8fCB0aXRsZVRyYW5zbGF0aW9uS2V5XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt0aXRsZVRyYW5zbGF0aW9uS2V5XT1cInRpdGxlVHJhbnNsYXRpb25LZXlcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gID5cbiAgPC92LWlucHV0LWxhYmVsPlxuICA8Y2RzLWNvbWJvLWJveFxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cImRhdGFUZXN0SWRcIlxuICAgIFthcHBlbmRJbmxpbmVdPVwiYXBwZW5kSW5saW5lXCJcbiAgICBbY2xlYXJTZWxlY3Rpb25UaXRsZV09XCJ2YXJzLmNsZWFyVGV4dFwiXG4gICAgW2NsZWFyU2VsZWN0aW9uc1RpdGxlXT1cInZhcnMuY2xlYXJBbGxUZXh0XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZyB8fCB2YXJzLml0ZW1zLmxlbmd0aCA9PT0gMFwiXG4gICAgW2Ryb3BVcF09XCJkcm9wVXBcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgIGxvYWRpbmdcbiAgICAgICAgPyB2YXJzLmxvYWRpbmdUZXh0XG4gICAgICAgIDogdmFycy5pdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgICA/IHZhcnMubm90Rm91bmRUZXh0XG4gICAgICAgICAgOiB2YXJzLnBsYWNlaG9sZGVyVGV4dFxuICAgIFwiXG4gICAgW3R5cGVdPVwibXVsdGlwbGUgPyAnbXVsdGknIDogJ3NpbmdsZSdcIlxuICAgIChjbGVhcik9XCJjbGVhcigpXCJcbiAgICAoc2VsZWN0ZWQpPVwic2V0U2VsZWN0ZWQoJGV2ZW50KVwiXG4gID5cbiAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cInZhcnMuaXRlbXNcIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICA8L2Nkcy1jb21iby1ib3g+XG48L2Rpdj5cbiJdfQ==
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUEyQixNQUFNLE1BQU0sQ0FBQztBQUc5RSxPQUFPLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFPekMsTUFBTSxPQUFPLGVBQWU7SUFDMUIsSUFBb0IsS0FBSyxDQUFDLEtBQXdCO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDUCxJQUFJLENBQUMsRUFBRSxDQUNMLENBQUM7Z0JBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWM7Z0JBQ3pDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxRQUFRLEVBQUUsS0FBSzthQUNoQixDQUFhLENBQ2pCO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQXFERCxZQUE2QixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWpEL0MsYUFBUSxHQUFHLEtB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Q2hDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0FySlUsZUFBZTttR0FBZixlQUFlLDB5QkNyQzVCLGtrRUEyREE7OzRGRHRCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFVBQVU7cUZBS0EsS0FBSztzQkFBeEIsS0FBSztnQkFjVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBRVcsY0FBYztzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2VsZWN0ZWRWYWx1ZSwgU2VsZWN0SXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMaXN0SXRlbX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndi1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGl0ZW1zKHZhbHVlOiBBcnJheTxTZWxlY3RJdGVtPikge1xuICAgIHRoaXMuX2xpc3RJdGVtcyQubmV4dChcbiAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgID8gdmFsdWUubWFwKFxuICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0udGV4dCB8fCBpdGVtLnRyYW5zbGF0aW9uS2V5LFxuICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfSkgYXMgTGlzdEl0ZW1cbiAgICAgICAgICApXG4gICAgICAgIDogW11cbiAgICApO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0U2VsZWN0aW9uITogU2VsZWN0SXRlbTtcbiAgQElucHV0KCkgcHVibGljIGRlZmF1bHRTZWxlY3Rpb25JZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGRlZmF1bHRTZWxlY3Rpb25JZHMhOiBBcnJheTxzdHJpbmc+O1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRyb3BVcD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbWFyZ2luID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB3aWR0aEluUHghOiBudW1iZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBub3RGb3VuZFRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhckFsbFRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhclRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGVUcmFuc2xhdGlvbktleSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgY2xlYXJTZWxlY3Rpb25TdWJqZWN0JCE6IE9ic2VydmFibGU8dm9pZD47XG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ1RleHQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzbWFsbE1hcmdpbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgY2FyYm9uVGhlbWUgPSAnZzEwJztcbiAgQElucHV0KCkgcHVibGljIGFwcGVuZElubGluZSA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhVGVzdElkPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWxlY3RlZFZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWxlY3RlZFZhbHVlPignJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PExpc3RJdGVtPj4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgbGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fbGlzdEl0ZW1zJCxcbiAgICB0aGlzLnNlbGVjdGVkJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtsaXN0SXRlbXMsIHNlbGVjdGVkXSkgPT5cbiAgICAgIGxpc3RJdGVtcy5tYXAobGlzdEl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGxpc3RJdGVtLmNvbnRlbnQpO1xuICAgICAgICBjb25zdCBpc1NlbGVjdGVkOiBib29sZWFuID0gQXJyYXkuaXNBcnJheShzZWxlY3RlZClcbiAgICAgICAgICA/IHNlbGVjdGVkLmluY2x1ZGVzKGxpc3RJdGVtLmlkKVxuICAgICAgICAgIDogc2VsZWN0ZWQgPT09IGxpc3RJdGVtLmlkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ubGlzdEl0ZW0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgY29udGVudDogdHJhbnNsYXRpb24gIT09IGxpc3RJdGVtLmNvbnRlbnQgPyB0cmFuc2xhdGlvbiA6IGxpc3RJdGVtLmNvbnRlbnQsXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgIClcbiAgKTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX2NsZWFyU3ViamVjdFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RGVmYXVsdFNlbGVjdGlvbigpO1xuICAgIHRoaXMub3BlblNlbGVjdGVkU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuQ2xlYXJTdWJqZWN0U3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXM/Lml0ZW1zPy5jdXJyZW50VmFsdWUgfHxcbiAgICAgIGNoYW5nZXM/LmRlZmF1bHRTZWxlY3Rpb25JZD8uY3VycmVudFZhbHVlIHx8XG4gICAgICBjaGFuZ2VzPy5kZWZhdWx0U2VsZWN0aW9uPy5jdXJyZW50VmFsdWUgfHxcbiAgICAgIGNoYW5nZXM/LmRlZmF1bHRTZWxlY3Rpb25JZHM/LmN1cnJlbnRWYWx1ZVxuICAgICkge1xuICAgICAgdGhpcy5zZXREZWZhdWx0U2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2NsZWFyU3ViamVjdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3RlZChzZWxlY3RlZFZhbHVlOiBMaXN0SXRlbSB8IEFycmF5PExpc3RJdGVtPik6IHZvaWQge1xuICAgIGNvbnN0IGlkID0gIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZSkgJiYgc2VsZWN0ZWRWYWx1ZT8uaWQ7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RlZFZhbHVlKSkge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKHNlbGVjdGVkVmFsdWUubWFwKHZhbHVlID0+IHZhbHVlLmlkKSk7XG4gICAgfSBlbHNlIGlmIChpZCAmJiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkVmFsdWUoaWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3RlZFZhbHVlKHNlbGVjdGVkVmFsdWU6IFNlbGVjdGVkVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50U2VsZWN0ZWQgPT4ge1xuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGN1cnJlbnRTZWxlY3RlZCkgIT09IEpTT04uc3RyaW5naWZ5KHNlbGVjdGVkVmFsdWUpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQkLm5leHQoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKHRoaXMubXVsdGlwbGUgPyBbXSA6ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RJdGVtcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUobGlzdEl0ZW1zID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zSWRzID0gbGlzdEl0ZW1zPy5tYXAoaXRlbSA9PiBpdGVtLmlkKTtcbiAgICAgIGNvbnN0IGRlZmF1bHRTZWxlY3Rpb25JZHMgPSB0aGlzLmRlZmF1bHRTZWxlY3Rpb25JZHM7XG4gICAgICBjb25zdCBkZWZhdWx0U2VsZWN0aW9uSWQgPSB0aGlzLmRlZmF1bHRTZWxlY3Rpb24/LmlkIHx8IHRoaXMuZGVmYXVsdFNlbGVjdGlvbklkO1xuXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLmRlZmF1bHRTZWxlY3Rpb25JZHMpIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKFsuLi5kZWZhdWx0U2VsZWN0aW9uSWRzXSk7XG4gICAgICB9IGVsc2UgaWYgKGRlZmF1bHRTZWxlY3Rpb25JZCAmJiBpdGVtc0lkcz8uaW5jbHVkZXMoZGVmYXVsdFNlbGVjdGlvbklkKSkge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShbZGVmYXVsdFNlbGVjdGlvbklkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKGRlZmF1bHRTZWxlY3Rpb25JZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGVmYXVsdFNlbGVjdGlvbklkICYmICFpdGVtc0lkcz8uaW5jbHVkZXMoZGVmYXVsdFNlbGVjdGlvbklkKSkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TZWxlY3RlZFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc2VsZWN0ZWQkLnN1YnNjcmliZShzZWxlY3RlZFZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTZWxlY3Rpb25JZCA9IHRoaXMuZGVmYXVsdFNlbGVjdGlvbj8uaWQgfHwgdGhpcy5kZWZhdWx0U2VsZWN0aW9uSWQ7XG5cbiAgICAgIGlmICgoIXRoaXMubXVsdGlwbGUgJiYgc2VsZWN0ZWRWYWx1ZSAhPT0gZGVmYXVsdFNlbGVjdGlvbklkKSB8fCB0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNsZWFyU3ViamVjdFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGVhclNlbGVjdGlvblN1YmplY3QkKSB7XG4gICAgICB0aGlzLl9jbGVhclN1YmplY3RTdWJzY3JpcHRpb24gPSB0aGlzLmNsZWFyU2VsZWN0aW9uU3ViamVjdCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgKm5nSWY9XCJ7XG4gICAgcGxhY2Vob2xkZXJUZXh0OiBwbGFjZWhvbGRlciB8fCAoJ2ludGVyZmFjZS5maWx0ZXInIHwgdHJhbnNsYXRlKSxcbiAgICBsb2FkaW5nVGV4dDogbG9hZGluZ1RleHQgfHwgKCdpbnRlcmZhY2UubG9hZGluZycgfCB0cmFuc2xhdGUpLFxuICAgIGNsZWFyVGV4dDogY2xlYXJUZXh0IHx8ICgnaW50ZXJmYWNlLmNsZWFyJyB8IHRyYW5zbGF0ZSksXG4gICAgY2xlYXJBbGxUZXh0OiBjbGVhckFsbFRleHQgfHwgKCdpbnRlcmZhY2UuY2xlYXJBbGwnIHwgdHJhbnNsYXRlKSxcbiAgICBub3RGb3VuZFRleHQ6IG5vdEZvdW5kVGV4dCB8fCAoJ2ludGVyZmFjZS5ub0l0ZW1zRm91bmQnIHwgdHJhbnNsYXRlKSxcbiAgICBpdGVtczogbGlzdEl0ZW1zJCB8IGFzeW5jLFxuICB9IGFzIHZhcnNcIlxuICBbbmdDbGFzc109XCJ7Jy0tbWFyZ2luJzogbWFyZ2luLCAnLS1zbWFsbC1tYXJnaW4nOiBzbWFsbE1hcmdpbn1cIlxuICBjbGFzcz1cInYtc2VsZWN0LWNvbnRhaW5lclwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aEluUHhcIlxuPlxuICA8di1pbnB1dC1sYWJlbFxuICAgICpuZ0lmPVwidGl0bGUgfHwgdGl0bGVUcmFuc2xhdGlvbktleVwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdGl0bGVUcmFuc2xhdGlvbktleV09XCJ0aXRsZVRyYW5zbGF0aW9uS2V5XCJcbiAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgIFt0b29sdGlwXT1cInRvb2x0aXBcIlxuICA+XG4gIDwvdi1pbnB1dC1sYWJlbD5cbiAgPGNkcy1jb21iby1ib3hcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJkYXRhVGVzdElkXCJcbiAgICBbYXBwZW5kSW5saW5lXT1cImFwcGVuZElubGluZVwiXG4gICAgW2NsZWFyU2VsZWN0aW9uVGl0bGVdPVwidmFycy5jbGVhclRleHRcIlxuICAgIFtjbGVhclNlbGVjdGlvbnNUaXRsZV09XCJ2YXJzLmNsZWFyQWxsVGV4dFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmcgfHwgdmFycy5pdGVtcy5sZW5ndGggPT09IDBcIlxuICAgIFtkcm9wVXBdPVwiZHJvcFVwXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICBsb2FkaW5nXG4gICAgICAgID8gdmFycy5sb2FkaW5nVGV4dFxuICAgICAgICA6IHZhcnMuaXRlbXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgPyB2YXJzLm5vdEZvdW5kVGV4dFxuICAgICAgICAgIDogdmFycy5wbGFjZWhvbGRlclRleHRcbiAgICBcIlxuICAgIFt0eXBlXT1cIm11bHRpcGxlID8gJ211bHRpJyA6ICdzaW5nbGUnXCJcbiAgICAoY2xlYXIpPVwiY2xlYXIoKVwiXG4gICAgKHNlbGVjdGVkKT1cInNldFNlbGVjdGVkKCRldmVudClcIlxuICA+XG4gICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJ2YXJzLml0ZW1zXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgPC9jZHMtY29tYm8tYm94PlxuPC9kaXY+XG4iXX0=
@@ -28,10 +28,10 @@ export class StepperHeaderComponent {
28
28
  this.currentStepIndex$ = this.stepperService.currentStepIndex$;
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StepperHeaderComponent, deps: [{ token: i1.StepperService }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StepperHeaderComponent, selector: "v-stepper-header", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"stepper-header\" *ngIf=\"{currentStepIndex: currentStepIndex$ | async} as obs\">\n <div\n *ngFor=\"let step of steps$ | async\"\n class=\"stepper-header__step\"\n [ngClass]=\"{\n 'stepper-header__step--active': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step--last': step.isLast\n }\"\n >\n <div\n class=\"stepper-header__step-progress-bar\"\n [ngClass]=\"{\n 'stepper-header__step-progress-bar--first': step.isFirst,\n 'stepper-header__step-progress-bar--last': step.isLast\n }\"\n >\n <div\n class=\"stepper-header__step-active-bar\"\n [ngClass]=\"{\n 'stepper-header__step-active-bar--visible': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step-active-bar--last-visible':\n step.stepIndex === obs.currentStepIndex && !step.isLast\n }\"\n ></div>\n </div>\n <span\n class=\"stepper-header__step-number\"\n [ngClass]=\"{\n 'stepper-header__step-number--active': step.stepIndex <= obs.currentStepIndex\n }\"\n >{{ step.stepIndex + 1 }}</span\n >\n <span\n class=\"stepper-header__step-title\"\n [ngClass]=\"{\n 'stepper-header__step-title--active': step.stepIndex <= obs.currentStepIndex\n }\"\n >{{ step.titleTranslationKey | translate }}</span\n >\n </div>\n</div>\n", styles: [".stepper-header{display:flex;flex-direction:row;width:100%;justify-content:center}.stepper-header__step{position:relative;display:flex;flex-direction:column;align-items:center;padding-inline-end:var(--v-stepper-header-step-spacing-inline)}.stepper-header__step--last{margin-inline-end:calc(0px - var(--v-stepper-header-step-spacing-inline))}.stepper-header__step-progress-bar{position:absolute;background-color:var(--v-stepper-header-progress-bar-bg-color);width:100%;height:var(--v-stepper-header-progress-bar-height);top:var(--v-stepper-header-progress-bar-spacing-top);display:flex;align-items:center}.stepper-header__step-progress-bar--first{width:50%;transform:translate(50%)}.stepper-header__step-progress-bar--last{width:50%;transform:translate(-50%)}.stepper-header__step-active-bar{height:var(--v-stepper-header-active-bar-height);width:0;background-color:var(--v-stepper-header-active-bar-bg-color)}.stepper-header__step-active-bar--visible{width:calc(100% + 2px);margin:0 -1px}.stepper-header__step-active-bar--last-visible{width:calc(75% + 2px);border-top-right-radius:var(--v-stepper-header-active-bar-border-radius);border-bottom-right-radius:var(--v-stepper-header-active-bar-border-radius)}.stepper-header__step-number{position:relative;display:flex;align-items:center;justify-content:center;width:var(--v-stepper-header-number-circle-width);height:var(--v-stepper-header-number-circle-height);border-radius:50%;background-color:var(--v-stepper-header-bg-color);color:var(--v-stepper-header-font-color);font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);margin-block-end:var(--v-stepper-header-number-spacing-block)}.stepper-header__step-number--active{background-color:var(--v-stepper-header-active-bg-color);border:var(--v-stepper-header-number-active-border);color:var(--v-stepper-header-number-active-font-color);width:var(--v-stepper-header-number-circle-width-active);height:var(--v-stepper-header-number-circle-height-active);margin-block-end:var(--v-stepper-header-number-spacing-block-active)}.stepper-header__step-title{position:relative;font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);color:var(--v-stepper-header-step-title-font-color)}.stepper-header__step-title--active{color:var(--v-stepper-header-active-bg-color)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StepperHeaderComponent, selector: "v-stepper-header", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"stepper-header\" *ngIf=\"{currentStepIndex: currentStepIndex$ | async} as obs\">\n <div\n *ngFor=\"let step of steps$ | async\"\n class=\"stepper-header__step\"\n [ngClass]=\"{\n 'stepper-header__step--active': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step--last': step.isLast,\n }\"\n >\n <div\n class=\"stepper-header__step-progress-bar\"\n [ngClass]=\"{\n 'stepper-header__step-progress-bar--first': step.isFirst,\n 'stepper-header__step-progress-bar--last': step.isLast,\n }\"\n >\n <div\n class=\"stepper-header__step-active-bar\"\n [ngClass]=\"{\n 'stepper-header__step-active-bar--visible': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step-active-bar--last-visible':\n step.stepIndex === obs.currentStepIndex && !step.isLast,\n }\"\n ></div>\n </div>\n <span\n class=\"stepper-header__step-number\"\n [ngClass]=\"{\n 'stepper-header__step-number--active': step.stepIndex <= obs.currentStepIndex,\n }\"\n >{{ step.stepIndex + 1 }}</span\n >\n <span\n class=\"stepper-header__step-title\"\n [ngClass]=\"{\n 'stepper-header__step-title--active': step.stepIndex <= obs.currentStepIndex,\n }\"\n >{{ step.titleTranslationKey | translate }}</span\n >\n </div>\n</div>\n", styles: [".stepper-header{display:flex;flex-direction:row;width:100%;justify-content:center}.stepper-header__step{position:relative;display:flex;flex-direction:column;align-items:center;padding-inline-end:var(--v-stepper-header-step-spacing-inline)}.stepper-header__step--last{margin-inline-end:calc(0px - var(--v-stepper-header-step-spacing-inline))}.stepper-header__step-progress-bar{position:absolute;background-color:var(--v-stepper-header-progress-bar-bg-color);width:100%;height:var(--v-stepper-header-progress-bar-height);top:var(--v-stepper-header-progress-bar-spacing-top);display:flex;align-items:center}.stepper-header__step-progress-bar--first{width:50%;transform:translate(50%)}.stepper-header__step-progress-bar--last{width:50%;transform:translate(-50%)}.stepper-header__step-active-bar{height:var(--v-stepper-header-active-bar-height);width:0;background-color:var(--v-stepper-header-active-bar-bg-color)}.stepper-header__step-active-bar--visible{width:calc(100% + 2px);margin:0 -1px}.stepper-header__step-active-bar--last-visible{width:calc(75% + 2px);border-top-right-radius:var(--v-stepper-header-active-bar-border-radius);border-bottom-right-radius:var(--v-stepper-header-active-bar-border-radius)}.stepper-header__step-number{position:relative;display:flex;align-items:center;justify-content:center;width:var(--v-stepper-header-number-circle-width);height:var(--v-stepper-header-number-circle-height);border-radius:50%;background-color:var(--v-stepper-header-bg-color);color:var(--v-stepper-header-font-color);font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);margin-block-end:var(--v-stepper-header-number-spacing-block)}.stepper-header__step-number--active{background-color:var(--v-stepper-header-active-bg-color);border:var(--v-stepper-header-number-active-border);color:var(--v-stepper-header-number-active-font-color);width:var(--v-stepper-header-number-circle-width-active);height:var(--v-stepper-header-number-circle-height-active);margin-block-end:var(--v-stepper-header-number-spacing-block-active)}.stepper-header__step-title{position:relative;font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);color:var(--v-stepper-header-step-title-font-color)}.stepper-header__step-title--active{color:var(--v-stepper-header-active-bg-color)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StepperHeaderComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'v-stepper-header', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"stepper-header\" *ngIf=\"{currentStepIndex: currentStepIndex$ | async} as obs\">\n <div\n *ngFor=\"let step of steps$ | async\"\n class=\"stepper-header__step\"\n [ngClass]=\"{\n 'stepper-header__step--active': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step--last': step.isLast\n }\"\n >\n <div\n class=\"stepper-header__step-progress-bar\"\n [ngClass]=\"{\n 'stepper-header__step-progress-bar--first': step.isFirst,\n 'stepper-header__step-progress-bar--last': step.isLast\n }\"\n >\n <div\n class=\"stepper-header__step-active-bar\"\n [ngClass]=\"{\n 'stepper-header__step-active-bar--visible': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step-active-bar--last-visible':\n step.stepIndex === obs.currentStepIndex && !step.isLast\n }\"\n ></div>\n </div>\n <span\n class=\"stepper-header__step-number\"\n [ngClass]=\"{\n 'stepper-header__step-number--active': step.stepIndex <= obs.currentStepIndex\n }\"\n >{{ step.stepIndex + 1 }}</span\n >\n <span\n class=\"stepper-header__step-title\"\n [ngClass]=\"{\n 'stepper-header__step-title--active': step.stepIndex <= obs.currentStepIndex\n }\"\n >{{ step.titleTranslationKey | translate }}</span\n >\n </div>\n</div>\n", styles: [".stepper-header{display:flex;flex-direction:row;width:100%;justify-content:center}.stepper-header__step{position:relative;display:flex;flex-direction:column;align-items:center;padding-inline-end:var(--v-stepper-header-step-spacing-inline)}.stepper-header__step--last{margin-inline-end:calc(0px - var(--v-stepper-header-step-spacing-inline))}.stepper-header__step-progress-bar{position:absolute;background-color:var(--v-stepper-header-progress-bar-bg-color);width:100%;height:var(--v-stepper-header-progress-bar-height);top:var(--v-stepper-header-progress-bar-spacing-top);display:flex;align-items:center}.stepper-header__step-progress-bar--first{width:50%;transform:translate(50%)}.stepper-header__step-progress-bar--last{width:50%;transform:translate(-50%)}.stepper-header__step-active-bar{height:var(--v-stepper-header-active-bar-height);width:0;background-color:var(--v-stepper-header-active-bar-bg-color)}.stepper-header__step-active-bar--visible{width:calc(100% + 2px);margin:0 -1px}.stepper-header__step-active-bar--last-visible{width:calc(75% + 2px);border-top-right-radius:var(--v-stepper-header-active-bar-border-radius);border-bottom-right-radius:var(--v-stepper-header-active-bar-border-radius)}.stepper-header__step-number{position:relative;display:flex;align-items:center;justify-content:center;width:var(--v-stepper-header-number-circle-width);height:var(--v-stepper-header-number-circle-height);border-radius:50%;background-color:var(--v-stepper-header-bg-color);color:var(--v-stepper-header-font-color);font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);margin-block-end:var(--v-stepper-header-number-spacing-block)}.stepper-header__step-number--active{background-color:var(--v-stepper-header-active-bg-color);border:var(--v-stepper-header-number-active-border);color:var(--v-stepper-header-number-active-font-color);width:var(--v-stepper-header-number-circle-width-active);height:var(--v-stepper-header-number-circle-height-active);margin-block-end:var(--v-stepper-header-number-spacing-block-active)}.stepper-header__step-title{position:relative;font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);color:var(--v-stepper-header-step-title-font-color)}.stepper-header__step-title--active{color:var(--v-stepper-header-active-bg-color)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
35
+ args: [{ selector: 'v-stepper-header', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"stepper-header\" *ngIf=\"{currentStepIndex: currentStepIndex$ | async} as obs\">\n <div\n *ngFor=\"let step of steps$ | async\"\n class=\"stepper-header__step\"\n [ngClass]=\"{\n 'stepper-header__step--active': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step--last': step.isLast,\n }\"\n >\n <div\n class=\"stepper-header__step-progress-bar\"\n [ngClass]=\"{\n 'stepper-header__step-progress-bar--first': step.isFirst,\n 'stepper-header__step-progress-bar--last': step.isLast,\n }\"\n >\n <div\n class=\"stepper-header__step-active-bar\"\n [ngClass]=\"{\n 'stepper-header__step-active-bar--visible': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step-active-bar--last-visible':\n step.stepIndex === obs.currentStepIndex && !step.isLast,\n }\"\n ></div>\n </div>\n <span\n class=\"stepper-header__step-number\"\n [ngClass]=\"{\n 'stepper-header__step-number--active': step.stepIndex <= obs.currentStepIndex,\n }\"\n >{{ step.stepIndex + 1 }}</span\n >\n <span\n class=\"stepper-header__step-title\"\n [ngClass]=\"{\n 'stepper-header__step-title--active': step.stepIndex <= obs.currentStepIndex,\n }\"\n >{{ step.titleTranslationKey | translate }}</span\n >\n </div>\n</div>\n", styles: [".stepper-header{display:flex;flex-direction:row;width:100%;justify-content:center}.stepper-header__step{position:relative;display:flex;flex-direction:column;align-items:center;padding-inline-end:var(--v-stepper-header-step-spacing-inline)}.stepper-header__step--last{margin-inline-end:calc(0px - var(--v-stepper-header-step-spacing-inline))}.stepper-header__step-progress-bar{position:absolute;background-color:var(--v-stepper-header-progress-bar-bg-color);width:100%;height:var(--v-stepper-header-progress-bar-height);top:var(--v-stepper-header-progress-bar-spacing-top);display:flex;align-items:center}.stepper-header__step-progress-bar--first{width:50%;transform:translate(50%)}.stepper-header__step-progress-bar--last{width:50%;transform:translate(-50%)}.stepper-header__step-active-bar{height:var(--v-stepper-header-active-bar-height);width:0;background-color:var(--v-stepper-header-active-bar-bg-color)}.stepper-header__step-active-bar--visible{width:calc(100% + 2px);margin:0 -1px}.stepper-header__step-active-bar--last-visible{width:calc(75% + 2px);border-top-right-radius:var(--v-stepper-header-active-bar-border-radius);border-bottom-right-radius:var(--v-stepper-header-active-bar-border-radius)}.stepper-header__step-number{position:relative;display:flex;align-items:center;justify-content:center;width:var(--v-stepper-header-number-circle-width);height:var(--v-stepper-header-number-circle-height);border-radius:50%;background-color:var(--v-stepper-header-bg-color);color:var(--v-stepper-header-font-color);font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);margin-block-end:var(--v-stepper-header-number-spacing-block)}.stepper-header__step-number--active{background-color:var(--v-stepper-header-active-bg-color);border:var(--v-stepper-header-number-active-border);color:var(--v-stepper-header-number-active-font-color);width:var(--v-stepper-header-number-circle-width-active);height:var(--v-stepper-header-number-circle-height-active);margin-block-end:var(--v-stepper-header-number-spacing-block-active)}.stepper-header__step-title{position:relative;font-size:var(--v-stepper-header-font-size);font-weight:var(--v-stepper-header-font-weight);line-height:var(--v-stepper-header-line-height);color:var(--v-stepper-header-step-title-font-color)}.stepper-header__step-title--active{color:var(--v-stepper-header-active-bg-color)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
36
36
  }], ctorParameters: () => [{ type: i1.StepperService }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXItaGVhZGVyL3N0ZXBwZXItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwcGVyLWhlYWRlci9zdGVwcGVyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBS3hDOztHQUVHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUE2QixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIM0QsV0FBTSxHQUE0QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM3RCxzQkFBaUIsR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQztJQUVoQixDQUFDOytHQUpwRCxzQkFBc0I7bUdBQXRCLHNCQUFzQix3REM3Qm5DLDBnRUF5REE7OzRGRDVCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdGVwcGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RlcHBlci5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N0ZXB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTWlncmF0ZSBvbGQgZGVzaWduIHRvIENhcmJvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2LXN0ZXBwZXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXBwZXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckhlYWRlckNvbXBvbmVudCB7XG4gIHN0ZXBzJDogT2JzZXJ2YWJsZTxBcnJheTxTdGVwPj4gPSB0aGlzLnN0ZXBwZXJTZXJ2aWNlLnN0ZXBzJDtcbiAgY3VycmVudFN0ZXBJbmRleCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMuc3RlcHBlclNlcnZpY2UuY3VycmVudFN0ZXBJbmRleCQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGVwcGVyU2VydmljZTogU3RlcHBlclNlcnZpY2UpIHt9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJzdGVwcGVyLWhlYWRlclwiICpuZ0lmPVwie2N1cnJlbnRTdGVwSW5kZXg6IGN1cnJlbnRTdGVwSW5kZXgkIHwgYXN5bmN9IGFzIG9ic1wiPlxuICA8ZGl2XG4gICAgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHMkIHwgYXN5bmNcIlxuICAgIGNsYXNzPVwic3RlcHBlci1oZWFkZXJfX3N0ZXBcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdzdGVwcGVyLWhlYWRlcl9fc3RlcC0tYWN0aXZlJzogc3RlcC5zdGVwSW5kZXggPD0gb2JzLmN1cnJlbnRTdGVwSW5kZXgsXG4gICAgICAnc3RlcHBlci1oZWFkZXJfX3N0ZXAtLWxhc3QnOiBzdGVwLmlzTGFzdFxuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzdGVwcGVyLWhlYWRlcl9fc3RlcC1wcm9ncmVzcy1iYXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc3RlcHBlci1oZWFkZXJfX3N0ZXAtcHJvZ3Jlc3MtYmFyLS1maXJzdCc6IHN0ZXAuaXNGaXJzdCxcbiAgICAgICAgJ3N0ZXBwZXItaGVhZGVyX19zdGVwLXByb2dyZXNzLWJhci0tbGFzdCc6IHN0ZXAuaXNMYXN0XG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3RlcHBlci1oZWFkZXJfX3N0ZXAtYWN0aXZlLWJhclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc3RlcHBlci1oZWFkZXJfX3N0ZXAtYWN0aXZlLWJhci0tdmlzaWJsZSc6IHN0ZXAuc3RlcEluZGV4IDw9IG9icy5jdXJyZW50U3RlcEluZGV4LFxuICAgICAgICAgICdzdGVwcGVyLWhlYWRlcl9fc3RlcC1hY3RpdmUtYmFyLS1sYXN0LXZpc2libGUnOlxuICAgICAgICAgICAgc3RlcC5zdGVwSW5kZXggPT09IG9icy5jdXJyZW50U3RlcEluZGV4ICYmICFzdGVwLmlzTGFzdFxuICAgICAgICB9XCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJzdGVwcGVyLWhlYWRlcl9fc3RlcC1udW1iZXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc3RlcHBlci1oZWFkZXJfX3N0ZXAtbnVtYmVyLS1hY3RpdmUnOiBzdGVwLnN0ZXBJbmRleCA8PSBvYnMuY3VycmVudFN0ZXBJbmRleFxuICAgICAgfVwiXG4gICAgICA+e3sgc3RlcC5zdGVwSW5kZXggKyAxIH19PC9zcGFuXG4gICAgPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInN0ZXBwZXItaGVhZGVyX19zdGVwLXRpdGxlXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3N0ZXBwZXItaGVhZGVyX19zdGVwLXRpdGxlLS1hY3RpdmUnOiBzdGVwLnN0ZXBJbmRleCA8PSBvYnMuY3VycmVudFN0ZXBJbmRleFxuICAgICAgfVwiXG4gICAgICA+e3sgc3RlcC50aXRsZVRyYW5zbGF0aW9uS2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXItaGVhZGVyL3N0ZXBwZXItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwcGVyLWhlYWRlci9zdGVwcGVyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBS3hDOztHQUVHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUE2QixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIM0QsV0FBTSxHQUE0QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM3RCxzQkFBaUIsR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQztJQUVoQixDQUFDOytHQUpwRCxzQkFBc0I7bUdBQXRCLHNCQUFzQix3REM3Qm5DLCtnRUF5REE7OzRGRDVCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdGVwcGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RlcHBlci5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N0ZXB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTWlncmF0ZSBvbGQgZGVzaWduIHRvIENhcmJvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2LXN0ZXBwZXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXBwZXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckhlYWRlckNvbXBvbmVudCB7XG4gIHN0ZXBzJDogT2JzZXJ2YWJsZTxBcnJheTxTdGVwPj4gPSB0aGlzLnN0ZXBwZXJTZXJ2aWNlLnN0ZXBzJDtcbiAgY3VycmVudFN0ZXBJbmRleCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMuc3RlcHBlclNlcnZpY2UuY3VycmVudFN0ZXBJbmRleCQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGVwcGVyU2VydmljZTogU3RlcHBlclNlcnZpY2UpIHt9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJzdGVwcGVyLWhlYWRlclwiICpuZ0lmPVwie2N1cnJlbnRTdGVwSW5kZXg6IGN1cnJlbnRTdGVwSW5kZXgkIHwgYXN5bmN9IGFzIG9ic1wiPlxuICA8ZGl2XG4gICAgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHMkIHwgYXN5bmNcIlxuICAgIGNsYXNzPVwic3RlcHBlci1oZWFkZXJfX3N0ZXBcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdzdGVwcGVyLWhlYWRlcl9fc3RlcC0tYWN0aXZlJzogc3RlcC5zdGVwSW5kZXggPD0gb2JzLmN1cnJlbnRTdGVwSW5kZXgsXG4gICAgICAnc3RlcHBlci1oZWFkZXJfX3N0ZXAtLWxhc3QnOiBzdGVwLmlzTGFzdCxcbiAgICB9XCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic3RlcHBlci1oZWFkZXJfX3N0ZXAtcHJvZ3Jlc3MtYmFyXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3N0ZXBwZXItaGVhZGVyX19zdGVwLXByb2dyZXNzLWJhci0tZmlyc3QnOiBzdGVwLmlzRmlyc3QsXG4gICAgICAgICdzdGVwcGVyLWhlYWRlcl9fc3RlcC1wcm9ncmVzcy1iYXItLWxhc3QnOiBzdGVwLmlzTGFzdCxcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzdGVwcGVyLWhlYWRlcl9fc3RlcC1hY3RpdmUtYmFyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdzdGVwcGVyLWhlYWRlcl9fc3RlcC1hY3RpdmUtYmFyLS12aXNpYmxlJzogc3RlcC5zdGVwSW5kZXggPD0gb2JzLmN1cnJlbnRTdGVwSW5kZXgsXG4gICAgICAgICAgJ3N0ZXBwZXItaGVhZGVyX19zdGVwLWFjdGl2ZS1iYXItLWxhc3QtdmlzaWJsZSc6XG4gICAgICAgICAgICBzdGVwLnN0ZXBJbmRleCA9PT0gb2JzLmN1cnJlbnRTdGVwSW5kZXggJiYgIXN0ZXAuaXNMYXN0LFxuICAgICAgICB9XCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJzdGVwcGVyLWhlYWRlcl9fc3RlcC1udW1iZXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc3RlcHBlci1oZWFkZXJfX3N0ZXAtbnVtYmVyLS1hY3RpdmUnOiBzdGVwLnN0ZXBJbmRleCA8PSBvYnMuY3VycmVudFN0ZXBJbmRleCxcbiAgICAgIH1cIlxuICAgICAgPnt7IHN0ZXAuc3RlcEluZGV4ICsgMSB9fTwvc3BhblxuICAgID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJzdGVwcGVyLWhlYWRlcl9fc3RlcC10aXRsZVwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdzdGVwcGVyLWhlYWRlcl9fc3RlcC10aXRsZS0tYWN0aXZlJzogc3RlcC5zdGVwSW5kZXggPD0gb2JzLmN1cnJlbnRTdGVwSW5kZXgsXG4gICAgICB9XCJcbiAgICAgID57eyBzdGVwLnRpdGxlVHJhbnNsYXRpb25LZXkgfCB0cmFuc2xhdGUgfX08L3NwYW5cbiAgICA+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -131,11 +131,11 @@ export class TableComponent {
131
131
  });
132
132
  }
133
133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableComponent, selector: "v-table", inputs: { items: "items", columns: "columns", loading: "loading", showEditButtons: "showEditButtons", showPagination: "showPagination", editButtonTranslationKey: "editButtonTranslationKey", itemsTranslationKey: "itemsTranslationKey", noResultsTranslationKey: "noResultsTranslationKey", mobileBreakpointPx: "mobileBreakpointPx", amountOfLoadingRows: "amountOfLoadingRows", collectionSize: "collectionSize", page: "page", size: "size" }, outputs: { editButtonClicked: "editButtonClicked", paginationSizeSet: "paginationSizeSet", paginationPageSet: "paginationPageSet" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{items: items$ | async} as obs\">\n <div class=\"v-table-container\">\n <table class=\"v-table\">\n <ng-container *ngTemplateOutlet=\"tableHead\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBody; context: {tableItems: obs.items}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBodyLoading\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"tableBodyNoResults; context: {tableItems: obs.items}\"\n ></ng-container>\n </table>\n <ng-container *ngIf=\"showPagination\">\n <ng-container\n *ngTemplateOutlet=\"paginationContainer; context: {tableItems: obs.items}\"\n ></ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #tableHead>\n <thead *ngIf=\"columns\">\n <tr>\n <th class=\"v-table__header\" *ngFor=\"let column of columns\">\n {{ column.labelTranslationKey | translate }}\n </th>\n <th *ngIf=\"showEditButtons\" class=\"v-table__header\"></th>\n </tr>\n </thead>\n</ng-template>\n\n<ng-template #tableBody let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length > 0\">\n <tr *ngFor=\"let item of tableItems\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCell; context: {item: item}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCell; context: {item: item}\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableBodyNoResults let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length === 0\">\n <tr class=\"v-table__row\">\n <td class=\"v-table__cell\" *ngFor=\"let column of columns; let i = index\">\n <span *ngIf=\"i === 0\" class=\"v-table__cell-content\">\n {{\n noResultsTranslationKey\n ? (noResultsTranslationKey | translate)\n : ('interface.noResults' | translate)\n }}\n </span>\n </td>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCell let-item=\"item\">\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\">\n {{ item[column.dataKey] }}\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCell let-item=\"item\">\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" (clickEvent)=\"editButtonClicked.emit(item)\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableBodyLoading>\n <tbody class=\"v-table__body\" *ngIf=\"loading\">\n <tr *ngFor=\"let item of getArrayOfLength(amountOfLoadingRows)\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCellLoading\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCellLoading\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCellLoading>\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-bg-color)'\n }\"\n ></ngx-skeleton-loader\n ></span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCellLoading>\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" [disabled]=\"true\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #paginationContainer let-tableItems=\"tableItems\">\n <div *ngIf=\"pagination$ | async as paginationObject\" class=\"v-table__pagination-container\">\n <div class=\"v-table__pagination-size-container\">\n <ng-container\n *ngTemplateOutlet=\"paginationSizeSelect; context: {paginationObject: paginationObject}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n paginationSizeAmountText;\n context: {paginationObject: paginationObject, tableItems: tableItems}\n \"\n ></ng-container>\n </div>\n <ng-container\n *ngTemplateOutlet=\"paginationNavigation; context: {paginationObject: paginationObject}\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #paginationSizeSelect let-paginationObject=\"paginationObject\">\n <span class=\"v-table__pagination-size-text\">{{ 'interface.show' | translate }}</span>\n <span class=\"v-table__pagination-size-select\">\n <v-select\n [items]=\"paginationOptions\"\n [clearable]=\"false\"\n [defaultSelection]=\"(defaultPaginationSize$ | async) || paginationOptions[0]\"\n [disabled]=\"loading\"\n (selectedChange)=\"setPaginationSize($event)\"\n ></v-select>\n </span>\n <span class=\"v-table__pagination-size-text\">{{\n itemsTranslationKey ? (itemsTranslationKey | translate) : ('interface.items' | translate)\n }}</span>\n</ng-template>\n\n<ng-template\n #paginationSizeAmountText\n let-paginationObject=\"paginationObject\"\n let-tableItems=\"tableItems\"\n>\n <ng-container *ngTemplateOutlet=\"paginationSizeAmountTextLoading\"></ng-container>\n <span\n class=\"v-table__pagination-amount-text\"\n *ngIf=\"!loading && tableItems && paginationObject\"\n >{{\n tableItems.length +\n ' ' +\n ('interface.of' | translate) +\n ' ' +\n paginationObject.collectionSize +\n ' ' +\n (itemsTranslationKey\n ? (itemsTranslationKey | translate)\n : ('interface.items' | translate)) +\n ' ' +\n ('interface.visible' | translate)\n }}</span\n >\n</ng-template>\n\n<ng-template #paginationSizeAmountTextLoading>\n <span class=\"v-table__pagination-amount-text\" *ngIf=\"loading\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-pagination-size-bg-color)'\n }\"\n ></ngx-skeleton-loader\n ></span>\n</ng-template>\n\n<ng-template #paginationNavigation let-paginationObject=\"paginationObject\">\n <div\n class=\"v-table__pagination-navigation-container\"\n *ngIf=\"paginationObject && paginationObject.collectionSize > paginationObject.size\"\n >\n <span *ngIf=\"paginationObject.page > 1\">\n <v-button (clickEvent)=\"setPage('previous')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.previous' | translate\n }}</v-button>\n </span>\n <span *ngIf=\"paginationObject.page * paginationObject.size < paginationObject.collectionSize\">\n <v-button (clickEvent)=\"setPage('next')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.nextArrow' | translate\n }}</v-button>\n </span>\n </div>\n</ng-template>\n", styles: [".v-table-container{width:100%;display:flex;flex-direction:column}.v-table{width:100%;border-spacing:var(--v-table-border-spacing);table-layout:var(--v-table-layout)}.v-table__header{color:var(--v-table-header-font-color);text-transform:var(--v-table-header-text-transform);font-size:var(--v-table-header-font-size);font-weight:var(--v-table-header-font-weight);letter-spacing:var(--v-table-header-letter-spacing);padding-block-end:var(--v-table-header-padding-block-end);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline)}.v-table__header:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__body{outline:var(--v-table-body-border);border-radius:var(--v-border-radius-md)}.v-table__row{border-bottom:var(--v-table-row-bottom-border)}.v-table__row:first-child .v-table__cell:first-child{border-top-left-radius:var(--v-border-radius-md)}.v-table__row:first-child .v-table__cell:last-child{border-top-right-radius:var(--v-border-radius-md)}.v-table__row:last-child{border-bottom:none}.v-table__row:last-child .v-table__cell:first-child{border-bottom-left-radius:var(--v-border-radius-md)}.v-table__row:last-child .v-table__cell:last-child{border-bottom-right-radius:var(--v-border-radius-md)}.v-table__cell{padding-block-start:var(--v-table-cell-padding-block);padding-block-end:var(--v-table-cell-padding-block);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline);background-color:var(--v-table-background-color);font-size:var(--v-font-size-smaller);font-weight:var(--v-font-weight-bold);line-height:var(--v-line-height-smaller);width:var(--v-table-cell-width)}.v-table__cell:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__cell-content{display:flex;color:var(--v-table-cell-font-color);padding-block-start:var(--v-table-cell-content-padding-block);padding-block-end:var(--v-table-cell-content-padding-block)}.v-table__cell--with-button{width:.1%;white-space:nowrap}.v-table__cell-button-container{display:flex}ngx-skeleton-loader{display:flex}.v-table__pagination-container{display:flex;width:100%;flex-direction:row;justify-content:space-between;margin-block-start:var(--v-table-pagination-margin-block)}.v-table__pagination-size-container{display:flex;flex-direction:row;align-items:center}.v-table__pagination-size-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-size-spacing-inline)}.v-table__pagination-size-text{color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-size-text-font-weight)}.v-table__pagination-size-select{display:flex}.v-table__pagination-amount-text{margin-inline-start:var(--v-table-pagination-amount-text-margin-inline);color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-amount-text-font-weight)}.v-table__pagination-navigation-container{display:flex;flex-direction:row}.v-table__pagination-navigation-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-button-spacing-inline)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "component", type: i4.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "component", type: i5.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableComponent, selector: "v-table", inputs: { items: "items", columns: "columns", loading: "loading", showEditButtons: "showEditButtons", showPagination: "showPagination", editButtonTranslationKey: "editButtonTranslationKey", itemsTranslationKey: "itemsTranslationKey", noResultsTranslationKey: "noResultsTranslationKey", mobileBreakpointPx: "mobileBreakpointPx", amountOfLoadingRows: "amountOfLoadingRows", collectionSize: "collectionSize", page: "page", size: "size" }, outputs: { editButtonClicked: "editButtonClicked", paginationSizeSet: "paginationSizeSet", paginationPageSet: "paginationPageSet" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{items: items$ | async} as obs\">\n <div class=\"v-table-container\">\n <table class=\"v-table\">\n <ng-container *ngTemplateOutlet=\"tableHead\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBody; context: {tableItems: obs.items}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBodyLoading\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"tableBodyNoResults; context: {tableItems: obs.items}\"\n ></ng-container>\n </table>\n <ng-container *ngIf=\"showPagination\">\n <ng-container\n *ngTemplateOutlet=\"paginationContainer; context: {tableItems: obs.items}\"\n ></ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #tableHead>\n <thead *ngIf=\"columns\">\n <tr>\n <th class=\"v-table__header\" *ngFor=\"let column of columns\">\n {{ column.labelTranslationKey | translate }}\n </th>\n <th *ngIf=\"showEditButtons\" class=\"v-table__header\"></th>\n </tr>\n </thead>\n</ng-template>\n\n<ng-template #tableBody let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length > 0\">\n <tr *ngFor=\"let item of tableItems\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCell; context: {item: item}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCell; context: {item: item}\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableBodyNoResults let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length === 0\">\n <tr class=\"v-table__row\">\n <td class=\"v-table__cell\" *ngFor=\"let column of columns; let i = index\">\n <span *ngIf=\"i === 0\" class=\"v-table__cell-content\">\n {{\n noResultsTranslationKey\n ? (noResultsTranslationKey | translate)\n : ('interface.noResults' | translate)\n }}\n </span>\n </td>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCell let-item=\"item\">\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\">\n {{ item[column.dataKey] }}\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCell let-item=\"item\">\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" (clickEvent)=\"editButtonClicked.emit(item)\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableBodyLoading>\n <tbody class=\"v-table__body\" *ngIf=\"loading\">\n <tr *ngFor=\"let item of getArrayOfLength(amountOfLoadingRows)\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCellLoading\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCellLoading\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCellLoading>\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-bg-color)',\n }\"\n ></ngx-skeleton-loader\n ></span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCellLoading>\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" [disabled]=\"true\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #paginationContainer let-tableItems=\"tableItems\">\n <div *ngIf=\"pagination$ | async as paginationObject\" class=\"v-table__pagination-container\">\n <div class=\"v-table__pagination-size-container\">\n <ng-container\n *ngTemplateOutlet=\"paginationSizeSelect; context: {paginationObject: paginationObject}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n paginationSizeAmountText;\n context: {paginationObject: paginationObject, tableItems: tableItems}\n \"\n ></ng-container>\n </div>\n <ng-container\n *ngTemplateOutlet=\"paginationNavigation; context: {paginationObject: paginationObject}\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #paginationSizeSelect let-paginationObject=\"paginationObject\">\n <span class=\"v-table__pagination-size-text\">{{ 'interface.show' | translate }}</span>\n <span class=\"v-table__pagination-size-select\">\n <v-select\n [items]=\"paginationOptions\"\n [clearable]=\"false\"\n [defaultSelection]=\"(defaultPaginationSize$ | async) || paginationOptions[0]\"\n [disabled]=\"loading\"\n (selectedChange)=\"setPaginationSize($event)\"\n ></v-select>\n </span>\n <span class=\"v-table__pagination-size-text\">{{\n itemsTranslationKey ? (itemsTranslationKey | translate) : ('interface.items' | translate)\n }}</span>\n</ng-template>\n\n<ng-template\n #paginationSizeAmountText\n let-paginationObject=\"paginationObject\"\n let-tableItems=\"tableItems\"\n>\n <ng-container *ngTemplateOutlet=\"paginationSizeAmountTextLoading\"></ng-container>\n <span\n class=\"v-table__pagination-amount-text\"\n *ngIf=\"!loading && tableItems && paginationObject\"\n >{{\n tableItems.length +\n ' ' +\n ('interface.of' | translate) +\n ' ' +\n paginationObject.collectionSize +\n ' ' +\n (itemsTranslationKey\n ? (itemsTranslationKey | translate)\n : ('interface.items' | translate)) +\n ' ' +\n ('interface.visible' | translate)\n }}</span\n >\n</ng-template>\n\n<ng-template #paginationSizeAmountTextLoading>\n <span class=\"v-table__pagination-amount-text\" *ngIf=\"loading\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-pagination-size-bg-color)',\n }\"\n ></ngx-skeleton-loader\n ></span>\n</ng-template>\n\n<ng-template #paginationNavigation let-paginationObject=\"paginationObject\">\n <div\n class=\"v-table__pagination-navigation-container\"\n *ngIf=\"paginationObject && paginationObject.collectionSize > paginationObject.size\"\n >\n <span *ngIf=\"paginationObject.page > 1\">\n <v-button (clickEvent)=\"setPage('previous')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.previous' | translate\n }}</v-button>\n </span>\n <span *ngIf=\"paginationObject.page * paginationObject.size < paginationObject.collectionSize\">\n <v-button (clickEvent)=\"setPage('next')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.nextArrow' | translate\n }}</v-button>\n </span>\n </div>\n</ng-template>\n", styles: [".v-table-container{width:100%;display:flex;flex-direction:column}.v-table{width:100%;border-spacing:var(--v-table-border-spacing);table-layout:var(--v-table-layout)}.v-table__header{color:var(--v-table-header-font-color);text-transform:var(--v-table-header-text-transform);font-size:var(--v-table-header-font-size);font-weight:var(--v-table-header-font-weight);letter-spacing:var(--v-table-header-letter-spacing);padding-block-end:var(--v-table-header-padding-block-end);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline)}.v-table__header:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__body{outline:var(--v-table-body-border);border-radius:var(--v-border-radius-md)}.v-table__row{border-bottom:var(--v-table-row-bottom-border)}.v-table__row:first-child .v-table__cell:first-child{border-top-left-radius:var(--v-border-radius-md)}.v-table__row:first-child .v-table__cell:last-child{border-top-right-radius:var(--v-border-radius-md)}.v-table__row:last-child{border-bottom:none}.v-table__row:last-child .v-table__cell:first-child{border-bottom-left-radius:var(--v-border-radius-md)}.v-table__row:last-child .v-table__cell:last-child{border-bottom-right-radius:var(--v-border-radius-md)}.v-table__cell{padding-block-start:var(--v-table-cell-padding-block);padding-block-end:var(--v-table-cell-padding-block);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline);background-color:var(--v-table-background-color);font-size:var(--v-font-size-smaller);font-weight:var(--v-font-weight-bold);line-height:var(--v-line-height-smaller);width:var(--v-table-cell-width)}.v-table__cell:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__cell-content{display:flex;color:var(--v-table-cell-font-color);padding-block-start:var(--v-table-cell-content-padding-block);padding-block-end:var(--v-table-cell-content-padding-block)}.v-table__cell--with-button{width:.1%;white-space:nowrap}.v-table__cell-button-container{display:flex}ngx-skeleton-loader{display:flex}.v-table__pagination-container{display:flex;width:100%;flex-direction:row;justify-content:space-between;margin-block-start:var(--v-table-pagination-margin-block)}.v-table__pagination-size-container{display:flex;flex-direction:row;align-items:center}.v-table__pagination-size-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-size-spacing-inline)}.v-table__pagination-size-text{color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-size-text-font-weight)}.v-table__pagination-size-select{display:flex}.v-table__pagination-amount-text{margin-inline-start:var(--v-table-pagination-amount-text-margin-inline);color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-amount-text-font-weight)}.v-table__pagination-navigation-container{display:flex;flex-direction:row}.v-table__pagination-navigation-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-button-spacing-inline)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "component", type: i4.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "component", type: i5.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
135
135
  }
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableComponent, decorators: [{
137
137
  type: Component,
138
- args: [{ selector: 'v-table', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{items: items$ | async} as obs\">\n <div class=\"v-table-container\">\n <table class=\"v-table\">\n <ng-container *ngTemplateOutlet=\"tableHead\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBody; context: {tableItems: obs.items}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBodyLoading\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"tableBodyNoResults; context: {tableItems: obs.items}\"\n ></ng-container>\n </table>\n <ng-container *ngIf=\"showPagination\">\n <ng-container\n *ngTemplateOutlet=\"paginationContainer; context: {tableItems: obs.items}\"\n ></ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #tableHead>\n <thead *ngIf=\"columns\">\n <tr>\n <th class=\"v-table__header\" *ngFor=\"let column of columns\">\n {{ column.labelTranslationKey | translate }}\n </th>\n <th *ngIf=\"showEditButtons\" class=\"v-table__header\"></th>\n </tr>\n </thead>\n</ng-template>\n\n<ng-template #tableBody let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length > 0\">\n <tr *ngFor=\"let item of tableItems\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCell; context: {item: item}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCell; context: {item: item}\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableBodyNoResults let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length === 0\">\n <tr class=\"v-table__row\">\n <td class=\"v-table__cell\" *ngFor=\"let column of columns; let i = index\">\n <span *ngIf=\"i === 0\" class=\"v-table__cell-content\">\n {{\n noResultsTranslationKey\n ? (noResultsTranslationKey | translate)\n : ('interface.noResults' | translate)\n }}\n </span>\n </td>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCell let-item=\"item\">\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\">\n {{ item[column.dataKey] }}\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCell let-item=\"item\">\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" (clickEvent)=\"editButtonClicked.emit(item)\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableBodyLoading>\n <tbody class=\"v-table__body\" *ngIf=\"loading\">\n <tr *ngFor=\"let item of getArrayOfLength(amountOfLoadingRows)\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCellLoading\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCellLoading\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCellLoading>\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-bg-color)'\n }\"\n ></ngx-skeleton-loader\n ></span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCellLoading>\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" [disabled]=\"true\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #paginationContainer let-tableItems=\"tableItems\">\n <div *ngIf=\"pagination$ | async as paginationObject\" class=\"v-table__pagination-container\">\n <div class=\"v-table__pagination-size-container\">\n <ng-container\n *ngTemplateOutlet=\"paginationSizeSelect; context: {paginationObject: paginationObject}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n paginationSizeAmountText;\n context: {paginationObject: paginationObject, tableItems: tableItems}\n \"\n ></ng-container>\n </div>\n <ng-container\n *ngTemplateOutlet=\"paginationNavigation; context: {paginationObject: paginationObject}\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #paginationSizeSelect let-paginationObject=\"paginationObject\">\n <span class=\"v-table__pagination-size-text\">{{ 'interface.show' | translate }}</span>\n <span class=\"v-table__pagination-size-select\">\n <v-select\n [items]=\"paginationOptions\"\n [clearable]=\"false\"\n [defaultSelection]=\"(defaultPaginationSize$ | async) || paginationOptions[0]\"\n [disabled]=\"loading\"\n (selectedChange)=\"setPaginationSize($event)\"\n ></v-select>\n </span>\n <span class=\"v-table__pagination-size-text\">{{\n itemsTranslationKey ? (itemsTranslationKey | translate) : ('interface.items' | translate)\n }}</span>\n</ng-template>\n\n<ng-template\n #paginationSizeAmountText\n let-paginationObject=\"paginationObject\"\n let-tableItems=\"tableItems\"\n>\n <ng-container *ngTemplateOutlet=\"paginationSizeAmountTextLoading\"></ng-container>\n <span\n class=\"v-table__pagination-amount-text\"\n *ngIf=\"!loading && tableItems && paginationObject\"\n >{{\n tableItems.length +\n ' ' +\n ('interface.of' | translate) +\n ' ' +\n paginationObject.collectionSize +\n ' ' +\n (itemsTranslationKey\n ? (itemsTranslationKey | translate)\n : ('interface.items' | translate)) +\n ' ' +\n ('interface.visible' | translate)\n }}</span\n >\n</ng-template>\n\n<ng-template #paginationSizeAmountTextLoading>\n <span class=\"v-table__pagination-amount-text\" *ngIf=\"loading\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-pagination-size-bg-color)'\n }\"\n ></ngx-skeleton-loader\n ></span>\n</ng-template>\n\n<ng-template #paginationNavigation let-paginationObject=\"paginationObject\">\n <div\n class=\"v-table__pagination-navigation-container\"\n *ngIf=\"paginationObject && paginationObject.collectionSize > paginationObject.size\"\n >\n <span *ngIf=\"paginationObject.page > 1\">\n <v-button (clickEvent)=\"setPage('previous')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.previous' | translate\n }}</v-button>\n </span>\n <span *ngIf=\"paginationObject.page * paginationObject.size < paginationObject.collectionSize\">\n <v-button (clickEvent)=\"setPage('next')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.nextArrow' | translate\n }}</v-button>\n </span>\n </div>\n</ng-template>\n", styles: [".v-table-container{width:100%;display:flex;flex-direction:column}.v-table{width:100%;border-spacing:var(--v-table-border-spacing);table-layout:var(--v-table-layout)}.v-table__header{color:var(--v-table-header-font-color);text-transform:var(--v-table-header-text-transform);font-size:var(--v-table-header-font-size);font-weight:var(--v-table-header-font-weight);letter-spacing:var(--v-table-header-letter-spacing);padding-block-end:var(--v-table-header-padding-block-end);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline)}.v-table__header:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__body{outline:var(--v-table-body-border);border-radius:var(--v-border-radius-md)}.v-table__row{border-bottom:var(--v-table-row-bottom-border)}.v-table__row:first-child .v-table__cell:first-child{border-top-left-radius:var(--v-border-radius-md)}.v-table__row:first-child .v-table__cell:last-child{border-top-right-radius:var(--v-border-radius-md)}.v-table__row:last-child{border-bottom:none}.v-table__row:last-child .v-table__cell:first-child{border-bottom-left-radius:var(--v-border-radius-md)}.v-table__row:last-child .v-table__cell:last-child{border-bottom-right-radius:var(--v-border-radius-md)}.v-table__cell{padding-block-start:var(--v-table-cell-padding-block);padding-block-end:var(--v-table-cell-padding-block);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline);background-color:var(--v-table-background-color);font-size:var(--v-font-size-smaller);font-weight:var(--v-font-weight-bold);line-height:var(--v-line-height-smaller);width:var(--v-table-cell-width)}.v-table__cell:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__cell-content{display:flex;color:var(--v-table-cell-font-color);padding-block-start:var(--v-table-cell-content-padding-block);padding-block-end:var(--v-table-cell-content-padding-block)}.v-table__cell--with-button{width:.1%;white-space:nowrap}.v-table__cell-button-container{display:flex}ngx-skeleton-loader{display:flex}.v-table__pagination-container{display:flex;width:100%;flex-direction:row;justify-content:space-between;margin-block-start:var(--v-table-pagination-margin-block)}.v-table__pagination-size-container{display:flex;flex-direction:row;align-items:center}.v-table__pagination-size-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-size-spacing-inline)}.v-table__pagination-size-text{color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-size-text-font-weight)}.v-table__pagination-size-select{display:flex}.v-table__pagination-amount-text{margin-inline-start:var(--v-table-pagination-amount-text-margin-inline);color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-amount-text-font-weight)}.v-table__pagination-navigation-container{display:flex;flex-direction:row}.v-table__pagination-navigation-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-button-spacing-inline)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
138
+ args: [{ selector: 'v-table', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{items: items$ | async} as obs\">\n <div class=\"v-table-container\">\n <table class=\"v-table\">\n <ng-container *ngTemplateOutlet=\"tableHead\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBody; context: {tableItems: obs.items}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBodyLoading\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"tableBodyNoResults; context: {tableItems: obs.items}\"\n ></ng-container>\n </table>\n <ng-container *ngIf=\"showPagination\">\n <ng-container\n *ngTemplateOutlet=\"paginationContainer; context: {tableItems: obs.items}\"\n ></ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #tableHead>\n <thead *ngIf=\"columns\">\n <tr>\n <th class=\"v-table__header\" *ngFor=\"let column of columns\">\n {{ column.labelTranslationKey | translate }}\n </th>\n <th *ngIf=\"showEditButtons\" class=\"v-table__header\"></th>\n </tr>\n </thead>\n</ng-template>\n\n<ng-template #tableBody let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length > 0\">\n <tr *ngFor=\"let item of tableItems\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCell; context: {item: item}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCell; context: {item: item}\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableBodyNoResults let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length === 0\">\n <tr class=\"v-table__row\">\n <td class=\"v-table__cell\" *ngFor=\"let column of columns; let i = index\">\n <span *ngIf=\"i === 0\" class=\"v-table__cell-content\">\n {{\n noResultsTranslationKey\n ? (noResultsTranslationKey | translate)\n : ('interface.noResults' | translate)\n }}\n </span>\n </td>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCell let-item=\"item\">\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\">\n {{ item[column.dataKey] }}\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCell let-item=\"item\">\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" (clickEvent)=\"editButtonClicked.emit(item)\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableBodyLoading>\n <tbody class=\"v-table__body\" *ngIf=\"loading\">\n <tr *ngFor=\"let item of getArrayOfLength(amountOfLoadingRows)\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCellLoading\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCellLoading\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCellLoading>\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-bg-color)',\n }\"\n ></ngx-skeleton-loader\n ></span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCellLoading>\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <v-button type=\"secondary\" [disabled]=\"true\">{{\n editButtonTranslationKey || 'interface.edit' | translate\n }}</v-button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #paginationContainer let-tableItems=\"tableItems\">\n <div *ngIf=\"pagination$ | async as paginationObject\" class=\"v-table__pagination-container\">\n <div class=\"v-table__pagination-size-container\">\n <ng-container\n *ngTemplateOutlet=\"paginationSizeSelect; context: {paginationObject: paginationObject}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n paginationSizeAmountText;\n context: {paginationObject: paginationObject, tableItems: tableItems}\n \"\n ></ng-container>\n </div>\n <ng-container\n *ngTemplateOutlet=\"paginationNavigation; context: {paginationObject: paginationObject}\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #paginationSizeSelect let-paginationObject=\"paginationObject\">\n <span class=\"v-table__pagination-size-text\">{{ 'interface.show' | translate }}</span>\n <span class=\"v-table__pagination-size-select\">\n <v-select\n [items]=\"paginationOptions\"\n [clearable]=\"false\"\n [defaultSelection]=\"(defaultPaginationSize$ | async) || paginationOptions[0]\"\n [disabled]=\"loading\"\n (selectedChange)=\"setPaginationSize($event)\"\n ></v-select>\n </span>\n <span class=\"v-table__pagination-size-text\">{{\n itemsTranslationKey ? (itemsTranslationKey | translate) : ('interface.items' | translate)\n }}</span>\n</ng-template>\n\n<ng-template\n #paginationSizeAmountText\n let-paginationObject=\"paginationObject\"\n let-tableItems=\"tableItems\"\n>\n <ng-container *ngTemplateOutlet=\"paginationSizeAmountTextLoading\"></ng-container>\n <span\n class=\"v-table__pagination-amount-text\"\n *ngIf=\"!loading && tableItems && paginationObject\"\n >{{\n tableItems.length +\n ' ' +\n ('interface.of' | translate) +\n ' ' +\n paginationObject.collectionSize +\n ' ' +\n (itemsTranslationKey\n ? (itemsTranslationKey | translate)\n : ('interface.items' | translate)) +\n ' ' +\n ('interface.visible' | translate)\n }}</span\n >\n</ng-template>\n\n<ng-template #paginationSizeAmountTextLoading>\n <span class=\"v-table__pagination-amount-text\" *ngIf=\"loading\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-pagination-size-bg-color)',\n }\"\n ></ngx-skeleton-loader\n ></span>\n</ng-template>\n\n<ng-template #paginationNavigation let-paginationObject=\"paginationObject\">\n <div\n class=\"v-table__pagination-navigation-container\"\n *ngIf=\"paginationObject && paginationObject.collectionSize > paginationObject.size\"\n >\n <span *ngIf=\"paginationObject.page > 1\">\n <v-button (clickEvent)=\"setPage('previous')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.previous' | translate\n }}</v-button>\n </span>\n <span *ngIf=\"paginationObject.page * paginationObject.size < paginationObject.collectionSize\">\n <v-button (clickEvent)=\"setPage('next')\" type=\"text\" [disabled]=\"loading\">{{\n 'interface.nextArrow' | translate\n }}</v-button>\n </span>\n </div>\n</ng-template>\n", styles: [".v-table-container{width:100%;display:flex;flex-direction:column}.v-table{width:100%;border-spacing:var(--v-table-border-spacing);table-layout:var(--v-table-layout)}.v-table__header{color:var(--v-table-header-font-color);text-transform:var(--v-table-header-text-transform);font-size:var(--v-table-header-font-size);font-weight:var(--v-table-header-font-weight);letter-spacing:var(--v-table-header-letter-spacing);padding-block-end:var(--v-table-header-padding-block-end);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline)}.v-table__header:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__body{outline:var(--v-table-body-border);border-radius:var(--v-border-radius-md)}.v-table__row{border-bottom:var(--v-table-row-bottom-border)}.v-table__row:first-child .v-table__cell:first-child{border-top-left-radius:var(--v-border-radius-md)}.v-table__row:first-child .v-table__cell:last-child{border-top-right-radius:var(--v-border-radius-md)}.v-table__row:last-child{border-bottom:none}.v-table__row:last-child .v-table__cell:first-child{border-bottom-left-radius:var(--v-border-radius-md)}.v-table__row:last-child .v-table__cell:last-child{border-bottom-right-radius:var(--v-border-radius-md)}.v-table__cell{padding-block-start:var(--v-table-cell-padding-block);padding-block-end:var(--v-table-cell-padding-block);padding-inline-start:var(--v-table-cell-padding-inline);padding-inline-end:var(--v-table-cell-padding-inline);background-color:var(--v-table-background-color);font-size:var(--v-font-size-smaller);font-weight:var(--v-font-weight-bold);line-height:var(--v-line-height-smaller);width:var(--v-table-cell-width)}.v-table__cell:first-child{padding-inline-start:var(--v-table-first-cell-padding-inline-start)}.v-table__cell-content{display:flex;color:var(--v-table-cell-font-color);padding-block-start:var(--v-table-cell-content-padding-block);padding-block-end:var(--v-table-cell-content-padding-block)}.v-table__cell--with-button{width:.1%;white-space:nowrap}.v-table__cell-button-container{display:flex}ngx-skeleton-loader{display:flex}.v-table__pagination-container{display:flex;width:100%;flex-direction:row;justify-content:space-between;margin-block-start:var(--v-table-pagination-margin-block)}.v-table__pagination-size-container{display:flex;flex-direction:row;align-items:center}.v-table__pagination-size-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-size-spacing-inline)}.v-table__pagination-size-text{color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-size-text-font-weight)}.v-table__pagination-size-select{display:flex}.v-table__pagination-amount-text{margin-inline-start:var(--v-table-pagination-amount-text-margin-inline);color:var(--v-table-pagination-size-text-color);font-size:var(--v-table-pagination-size-text-font-size);font-weight:var(--v-table-pagination-amount-text-font-weight)}.v-table__pagination-navigation-container{display:flex;flex-direction:row}.v-table__pagination-navigation-container span:not(:last-child){margin-inline-end:var(--v-table-pagination-button-spacing-inline)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
139
139
  }], ctorParameters: () => [{ type: i1.BreakpointObserver }], propDecorators: { items: [{
140
140
  type: Input
141
141
  }], columns: [{
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
169
169
  }], paginationPageSet: [{
170
170
  type: Output
171
171
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFbEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBRTlDOztHQUVHO0FBTUgsTUFBTSxPQUFPLGNBQWM7SUFDekIsSUFDSSxLQUFLLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQVdELElBQ0ksY0FBYyxDQUFDLGNBQWlEO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUNJLElBQUksQ0FBQyxJQUE2QjtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFDSSxJQUFJLENBQUMsSUFBNkI7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQThDRCxZQUE2QixrQkFB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MUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NlbGVjdEl0ZW0sIFRhYmxlQ29sdW1uLCBUYWJsZVBhZ2luYXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge21hcCwgdGFrZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTWlncmF0ZSBvbGQgZGVzaWduIHRvIENhcmJvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8b2JqZWN0Pikge1xuICAgIHRoaXMuaXRlbXMkLm5leHQoaXRlbXMpO1xuICB9XG4gIEBJbnB1dCgpIGNvbHVtbnMhOiBBcnJheTxUYWJsZUNvbHVtbj47XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0VkaXRCdXR0b25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0aW9uID0gdHJ1ZTtcbiAgQElucHV0KCkgZWRpdEJ1dHRvblRyYW5zbGF0aW9uS2V5ITogc3RyaW5nO1xuICBASW5wdXQoKSBpdGVtc1RyYW5zbGF0aW9uS2V5ITogc3RyaW5nO1xuICBASW5wdXQoKSBub1Jlc3VsdHNUcmFuc2xhdGlvbktleSE6IHN0cmluZztcbiAgQElucHV0KCkgbW9iaWxlQnJlYWtwb2ludFB4ID0gNzY4O1xuICBASW5wdXQoKSBhbW91bnRPZkxvYWRpbmdSb3dzID0gMztcblxuICBASW5wdXQoKVxuICBzZXQgY29sbGVjdGlvblNpemUoY29sbGVjdGlvblNpemU6IFRhYmxlUGFnaW5hdGlvblsnY29sbGVjdGlvblNpemUnXSkge1xuICAgIHRoaXMuY29sbGVjdGlvblNpemUkLm5leHQoY29sbGVjdGlvblNpemUpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBwYWdlKHBhZ2U6IFRhYmxlUGFnaW5hdGlvblsncGFnZSddKSB7XG4gICAgdGhpcy5wYWdlJC5uZXh0KHBhZ2UpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBzaXplKHNpemU6IFRhYmxlUGFnaW5hdGlvblsnc2l6ZSddKSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgQE91dHB1dCgpIGVkaXRCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25TaXplU2V0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25QYWdlU2V0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBkZWZhdWx0UGFnaW5hdGlvblNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWxlY3RJdGVtIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc01vYmlsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbGxlY3Rpb25TaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVQYWdpbmF0aW9uWydjb2xsZWN0aW9uU2l6ZSddPigwKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVQYWdpbmF0aW9uWydwYWdlJ10+KDApO1xuICBwcml2YXRlIHJlYWRvbmx5IHNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVBhZ2luYXRpb25bJ3NpemUnXT4oMCk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbGxlY3Rpb25TaXplJCwgdGhpcy5wYWdlJCwgdGhpcy5zaXplJF0pLnBpcGUoXG4gICAgbWFwKChbY29sbGVjdGlvblNpemUsIHBhZ2UsIHNpemVdKSA9PiAoe1xuICAgICAgY29sbGVjdGlvblNpemUsXG4gICAgICBwYWdlLFxuICAgICAgc2l6ZSxcbiAgICB9KSksXG4gICAgdGFwKCh7Y29sbGVjdGlvblNpemUsIHBhZ2UsIHNpemV9KSA9PiB7XG4gICAgICBjb25zdCBhbW91bnRPZlBhZ2VzQXZhaWxhYmxlID0gTWF0aC5jZWlsKGNvbGxlY3Rpb25TaXplIC8gc2l6ZSk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuc2tpcHBpbmdUb1ByZXZpb3VzUGFnZSAmJlxuICAgICAgICBhbW91bnRPZlBhZ2VzQXZhaWxhYmxlID4gMCAmJlxuICAgICAgICBwYWdlID4gYW1vdW50T2ZQYWdlc0F2YWlsYWJsZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2tpcHBpbmdUb1ByZXZpb3VzUGFnZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0UGFnZShhbW91bnRPZlBhZ2VzQXZhaWxhYmxlKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8b2JqZWN0Pj4oW10pO1xuXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25PcHRpb25zOiBBcnJheTxTZWxlY3RJdGVtPiA9IFtcbiAgICB7aWQ6IDEwLCB0ZXh0OiAnMTAnfSxcbiAgICB7aWQ6IDI1LCB0ZXh0OiAnMjUnfSxcbiAgICB7aWQ6IDUwLCB0ZXh0OiAnNTAnfSxcbiAgICB7aWQ6IDEwMCwgdGV4dDogJzEwMCd9LFxuICBdO1xuXG4gIHByaXZhdGUgYnJlYWtwb2ludFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNraXBwaW5nVG9QcmV2aW91c1BhZ2UgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0RGVmYXVsdFBhZ2luYXRpb25TaXplKCk7XG4gICAgdGhpcy5vcGVuQnJlYWtwb2ludFN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5icmVha3BvaW50U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0QXJyYXlPZkxlbmd0aChsZW5ndGg6IG51bWJlcik6IEFycmF5PDA+IHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGxlbmd0aCkuZmlsbCgwKTtcbiAgfVxuXG4gIHNldFBhZ2Uoc2V0VG86ICdwcmV2aW91cycgfCAnbmV4dCcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2luYXRpb24kLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHBhZ2luYXRpb24gPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBwYWdpbmF0aW9uPy5wYWdlO1xuXG4gICAgICBpZiAoY3VycmVudFBhZ2UpIHtcbiAgICAgICAgbGV0IG5ld1BhZ2VOdW1iZXIgPSAwO1xuXG4gICAgICAgIGlmIChzZXRUbyA9PT0gJ3ByZXZpb3VzJykge1xuICAgICAgICAgIG5ld1BhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZSAtIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoc2V0VG8gPT09ICduZXh0Jykge1xuICAgICAgICAgIG5ld1BhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZSArIDE7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNldFRvID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIG5ld1BhZ2VOdW1iZXIgPSBzZXRUbztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblBhZ2VTZXQuZW1pdChuZXdQYWdlTnVtYmVyKTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ld1BhZ2VOdW1iZXIpO1xuICAgICAgICB0aGlzLnNraXBwaW5nVG9QcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldFBhZ2luYXRpb25TaXplKG5ld1BhZ2VTaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2luYXRpb25TaXplU2V0LmVtaXQobmV3UGFnZVNpemUpO1xuICAgIHRoaXMuc2l6ZSQubmV4dChuZXdQYWdlU2l6ZSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5CcmVha3BvaW50U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuYnJlYWtwb2ludFN1YnNjcmlwdGlvbiA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAub2JzZXJ2ZShbYChtaW4td2lkdGg6ICR7dGhpcy5tb2JpbGVCcmVha3BvaW50UHh9cHgpYF0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogQnJlYWtwb2ludFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChzdGF0ZS5tYXRjaGVzKSB7XG4gICAgICAgICAgdGhpcy5pc01vYmlsZSQubmV4dChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc01vYmlsZSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRQYWdpbmF0aW9uU2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNpemUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNpemUgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFBhZ2luYXRpb25PcHRpb24gPVxuICAgICAgICBzaXplICYmIHRoaXMucGFnaW5hdGlvbk9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLmlkID09PSBzaXplKTtcblxuICAgICAgaWYgKGRlZmF1bHRQYWdpbmF0aW9uT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFBhZ2luYXRpb25TaXplJC5uZXh0KGRlZmF1bHRQYWdpbmF0aW9uT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwie2l0ZW1zOiBpdGVtcyQgfCBhc3luY30gYXMgb2JzXCI+XG4gIDxkaXYgY2xhc3M9XCJ2LXRhYmxlLWNvbnRhaW5lclwiPlxuICAgIDx0YWJsZSBjbGFzcz1cInYtdGFibGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUhlYWRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUJvZHk7IGNvbnRleHQ6IHt0YWJsZUl0ZW1zOiBvYnMuaXRlbXN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVCb2R5TG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQm9keU5vUmVzdWx0czsgY29udGV4dDoge3RhYmxlSXRlbXM6IG9icy5pdGVtc31cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvdGFibGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdpbmF0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnaW5hdGlvbkNvbnRhaW5lcjsgY29udGV4dDoge3RhYmxlSXRlbXM6IG9icy5pdGVtc31cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlSGVhZD5cbiAgPHRoZWFkICpuZ0lmPVwiY29sdW1uc1wiPlxuICAgIDx0cj5cbiAgICAgIDx0aCBjbGFzcz1cInYtdGFibGVfX2hlYWRlclwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgICB7eyBjb2x1bW4ubGFiZWxUcmFuc2xhdGlvbktleSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cInNob3dFZGl0QnV0dG9uc1wiIGNsYXNzPVwidi10YWJsZV9faGVhZGVyXCI+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUJvZHkgbGV0LXRhYmxlSXRlbXM9XCJ0YWJsZUl0ZW1zXCI+XG4gIDx0Ym9keSBjbGFzcz1cInYtdGFibGVfX2JvZHlcIiAqbmdJZj1cIiFsb2FkaW5nICYmIHRhYmxlSXRlbXMgJiYgdGFibGVJdGVtcz8ubGVuZ3RoID4gMFwiPlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0YWJsZUl0ZW1zXCIgY2xhc3M9XCJ2LXRhYmxlX19yb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUNlbGw7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlRWRpdEJ1dHRvbkNlbGw7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQm9keU5vUmVzdWx0cyBsZXQtdGFibGVJdGVtcz1cInRhYmxlSXRlbXNcIj5cbiAgPHRib2R5IGNsYXNzPVwidi10YWJsZV9fYm9keVwiICpuZ0lmPVwiIWxvYWRpbmcgJiYgdGFibGVJdGVtcyAmJiB0YWJsZUl0ZW1zPy5sZW5ndGggPT09IDBcIj5cbiAgICA8dHIgY2xhc3M9XCJ2LXRhYmxlX19yb3dcIj5cbiAgICAgIDx0ZCBjbGFzcz1cInYtdGFibGVfX2NlbGxcIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpID09PSAwXCIgY2xhc3M9XCJ2LXRhYmxlX19jZWxsLWNvbnRlbnRcIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgbm9SZXN1bHRzVHJhbnNsYXRpb25LZXlcbiAgICAgICAgICAgICAgPyAobm9SZXN1bHRzVHJhbnNsYXRpb25LZXkgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKCdpbnRlcmZhY2Uubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQ2VsbCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPHRkICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIGNsYXNzPVwidi10YWJsZV9fY2VsbFwiPlxuICAgIDxzcGFuIGNsYXNzPVwidi10YWJsZV9fY2VsbC1jb250ZW50XCI+XG4gICAgICB7eyBpdGVtW2NvbHVtbi5kYXRhS2V5XSB9fVxuICAgIDwvc3Bhbj5cbiAgPC90ZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVFZGl0QnV0dG9uQ2VsbCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPHRkICpuZ0lmPVwic2hvd0VkaXRCdXR0b25zXCIgY2xhc3M9XCJ2LXRhYmxlX19jZWxsIHYtdGFibGVfX2NlbGwtLXdpdGgtYnV0dG9uXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ2LXRhYmxlX19jZWxsLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgIDx2LWJ1dHRvbiB0eXBlPVwic2Vjb25kYXJ5XCIgKGNsaWNrRXZlbnQpPVwiZWRpdEJ1dHRvbkNsaWNrZWQuZW1pdChpdGVtKVwiPnt7XG4gICAgICAgIGVkaXRCdXR0b25UcmFuc2xhdGlvbktleSB8fCAnaW50ZXJmYWNlLmVkaXQnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvdi1idXR0b24+XG4gICAgPC9zcGFuPlxuICA8L3RkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUJvZHlMb2FkaW5nPlxuICA8dGJvZHkgY2xhc3M9XCJ2LXRhYmxlX19ib2R5XCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEFycmF5T2ZMZW5ndGgoYW1vdW50T2ZMb2FkaW5nUm93cylcIiBjbGFzcz1cInYtdGFibGVfX3Jvd1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQ2VsbExvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUVkaXRCdXR0b25DZWxsTG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQ2VsbExvYWRpbmc+XG4gIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIiBjbGFzcz1cInYtdGFibGVfX2NlbGxcIj5cbiAgICA8c3BhbiBjbGFzcz1cInYtdGFibGVfX2NlbGwtY29udGVudFwiXG4gICAgICA+PG5neC1za2VsZXRvbi1sb2FkZXJcbiAgICAgICAgYXBwZWFyYW5jZT1cImxpbmVcIlxuICAgICAgICBbdGhlbWVdPVwie1xuICAgICAgICAgIHdpZHRoOiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLXdpZHRoKScsXG4gICAgICAgICAgaGVpZ2h0OiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLWxpbmUtaGVpZ2h0KScsXG4gICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLWJnLWNvbG9yKSdcbiAgICAgICAgfVwiXG4gICAgICA+PC9uZ3gtc2tlbGV0b24tbG9hZGVyXG4gICAgPjwvc3Bhbj5cbiAgPC90ZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVFZGl0QnV0dG9uQ2VsbExvYWRpbmc+XG4gIDx0ZCAqbmdJZj1cInNob3dFZGl0QnV0dG9uc1wiIGNsYXNzPVwidi10YWJsZV9fY2VsbCB2LXRhYmxlX19jZWxsLS13aXRoLWJ1dHRvblwiPlxuICAgIDxzcGFuIGNsYXNzPVwidi10YWJsZV9fY2VsbC1idXR0b24tY29udGFpbmVyXCI+XG4gICAgICA8di1idXR0b24gdHlwZT1cInNlY29uZGFyeVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+e3tcbiAgICAgICAgZWRpdEJ1dHRvblRyYW5zbGF0aW9uS2V5IHx8ICdpbnRlcmZhY2UuZWRpdCcgfCB0cmFuc2xhdGVcbiAgICAgIH19PC92LWJ1dHRvbj5cbiAgICA8L3NwYW4+XG4gIDwvdGQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BhZ2luYXRpb25Db250YWluZXIgbGV0LXRhYmxlSXRlbXM9XCJ0YWJsZUl0ZW1zXCI+XG4gIDxkaXYgKm5nSWY9XCJwYWdpbmF0aW9uJCB8IGFzeW5jIGFzIHBhZ2luYXRpb25PYmplY3RcIiBjbGFzcz1cInYtdGFibGVfX3BhZ2luYXRpb24tY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInYtdGFibGVfX3BhZ2luYXRpb24tc2l6ZS1jb250YWluZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdpbmF0aW9uU2l6ZVNlbGVjdDsgY29udGV4dDoge3BhZ2luYXRpb25PYmplY3Q6IHBhZ2luYXRpb25PYmplY3R9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICBwYWdpbmF0aW9uU2l6ZUFtb3VudFRleHQ7XG4gICAgICAgICAgY29udGV4dDoge3BhZ2luYXRpb25PYmplY3Q6IHBhZ2luYXRpb25PYmplY3QsIHRhYmxlSXRlbXM6IHRhYmxlSXRlbXN9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdpbmF0aW9uTmF2aWdhdGlvbjsgY29udGV4dDoge3BhZ2luYXRpb25PYmplY3Q6IHBhZ2luYXRpb25PYmplY3R9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwYWdpbmF0aW9uU2l6ZVNlbGVjdCBsZXQtcGFnaW5hdGlvbk9iamVjdD1cInBhZ2luYXRpb25PYmplY3RcIj5cbiAgPHNwYW4gY2xhc3M9XCJ2LXRhYmxlX19wYWdpbmF0aW9uLXNpemUtdGV4dFwiPnt7ICdpbnRlcmZhY2Uuc2hvdycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwidi10YWJsZV9fcGFnaW5hdGlvbi1zaXplLXNlbGVjdFwiPlxuICAgIDx2LXNlbGVjdFxuICAgICAgW2l0ZW1zXT1cInBhZ2luYXRpb25PcHRpb25zXCJcbiAgICAgIFtjbGVhcmFibGVdPVwiZmFsc2VcIlxuICAgICAgW2RlZmF1bHRTZWxlY3Rpb25dPVwiKGRlZmF1bHRQYWdpbmF0aW9uU2l6ZSQgfCBhc3luYykgfHwgcGFnaW5hdGlvbk9wdGlvbnNbMF1cIlxuICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNldFBhZ2luYXRpb25TaXplKCRldmVudClcIlxuICAgID48L3Ytc2VsZWN0PlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwidi10YWJsZV9fcGFnaW5hdGlvbi1zaXplLXRleHRcIj57e1xuICAgIGl0ZW1zVHJhbnNsYXRpb25LZXkgPyAoaXRlbXNUcmFuc2xhdGlvbktleSB8IHRyYW5zbGF0ZSkgOiAoJ2ludGVyZmFjZS5pdGVtcycgfCB0cmFuc2xhdGUpXG4gIH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNwYWdpbmF0aW9uU2l6ZUFtb3VudFRleHRcbiAgbGV0LXBhZ2luYXRpb25PYmplY3Q9XCJwYWdpbmF0aW9uT2JqZWN0XCJcbiAgbGV0LXRhYmxlSXRlbXM9XCJ0YWJsZUl0ZW1zXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2luYXRpb25TaXplQW1vdW50VGV4dExvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cInYtdGFibGVfX3BhZ2luYXRpb24tYW1vdW50LXRleHRcIlxuICAgICpuZ0lmPVwiIWxvYWRpbmcgJiYgdGFibGVJdGVtcyAmJiBwYWdpbmF0aW9uT2JqZWN0XCJcbiAgICA+e3tcbiAgICAgIHRhYmxlSXRlbXMubGVuZ3RoICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKCdpbnRlcmZhY2Uub2YnIHwgdHJhbnNsYXRlKSArXG4gICAgICAgICcgJyArXG4gICAgICAgIHBhZ2luYXRpb25PYmplY3QuY29sbGVjdGlvblNpemUgK1xuICAgICAgICAnICcgK1xuICAgICAgICAoaXRlbXNUcmFuc2xhdGlvbktleVxuICAgICAgICAgID8gKGl0ZW1zVHJhbnNsYXRpb25LZXkgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ2ludGVyZmFjZS5pdGVtcycgfCB0cmFuc2xhdGUpKSArXG4gICAgICAgICcgJyArXG4gICAgICAgICgnaW50ZXJmYWNlLnZpc2libGUnIHwgdHJhbnNsYXRlKVxuICAgIH19PC9zcGFuXG4gID5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnaW5hdGlvblNpemVBbW91bnRUZXh0TG9hZGluZz5cbiAgPHNwYW4gY2xhc3M9XCJ2LXRhYmxlX19wYWdpbmF0aW9uLWFtb3VudC10ZXh0XCIgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICA+PG5neC1za2VsZXRvbi1sb2FkZXJcbiAgICAgIGFwcGVhcmFuY2U9XCJsaW5lXCJcbiAgICAgIFt0aGVtZV09XCJ7XG4gICAgICAgIHdpZHRoOiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLXdpZHRoKScsXG4gICAgICAgIGhlaWdodDogJ3ZhcigtLXYtdGFibGUtbG9hZGluZy1za2VsZXRvbi1saW5lLWhlaWdodCknLFxuICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLXBhZ2luYXRpb24tc2l6ZS1iZy1jb2xvciknXG4gICAgICB9XCJcbiAgICA+PC9uZ3gtc2tlbGV0b24tbG9hZGVyXG4gID48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BhZ2luYXRpb25OYXZpZ2F0aW9uIGxldC1wYWdpbmF0aW9uT2JqZWN0PVwicGFnaW5hdGlvbk9iamVjdFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ2LXRhYmxlX19wYWdpbmF0aW9uLW5hdmlnYXRpb24tY29udGFpbmVyXCJcbiAgICAqbmdJZj1cInBhZ2luYXRpb25PYmplY3QgJiYgcGFnaW5hdGlvbk9iamVjdC5jb2xsZWN0aW9uU2l6ZSA+IHBhZ2luYXRpb25PYmplY3Quc2l6ZVwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInBhZ2luYXRpb25PYmplY3QucGFnZSA+IDFcIj5cbiAgICAgIDx2LWJ1dHRvbiAoY2xpY2tFdmVudCk9XCJzZXRQYWdlKCdwcmV2aW91cycpXCIgdHlwZT1cInRleHRcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPnt7XG4gICAgICAgICdpbnRlcmZhY2UucHJldmlvdXMnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvdi1idXR0b24+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwicGFnaW5hdGlvbk9iamVjdC5wYWdlICogcGFnaW5hdGlvbk9iamVjdC5zaXplIDwgcGFnaW5hdGlvbk9iamVjdC5jb2xsZWN0aW9uU2l6ZVwiPlxuICAgICAgPHYtYnV0dG9uIChjbGlja0V2ZW50KT1cInNldFBhZ2UoJ25leHQnKVwiIHR5cGU9XCJ0ZXh0XCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj57e1xuICAgICAgICAnaW50ZXJmYWNlLm5leHRBcnJvdycgfCB0cmFuc2xhdGVcbiAgICAgIH19PC92LWJ1dHRvbj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFbEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBRTlDOztHQUVHO0FBTUgsTUFBTSxPQUFPLGNBQWM7SUFDekIsSUFDSSxLQUFLLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQVdELElBQ0ksY0FBYyxDQUFDLGNBQWlEO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUNJLElBQUksQ0FBQyxJQUE2QjtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFDSSxJQUFJLENBQUMsSUFBNkI7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQThDRCxZQUE2QixrQkFB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MUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NlbGVjdEl0ZW0sIFRhYmxlQ29sdW1uLCBUYWJsZVBhZ2luYXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge21hcCwgdGFrZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTWlncmF0ZSBvbGQgZGVzaWduIHRvIENhcmJvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8b2JqZWN0Pikge1xuICAgIHRoaXMuaXRlbXMkLm5leHQoaXRlbXMpO1xuICB9XG4gIEBJbnB1dCgpIGNvbHVtbnMhOiBBcnJheTxUYWJsZUNvbHVtbj47XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0VkaXRCdXR0b25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0aW9uID0gdHJ1ZTtcbiAgQElucHV0KCkgZWRpdEJ1dHRvblRyYW5zbGF0aW9uS2V5ITogc3RyaW5nO1xuICBASW5wdXQoKSBpdGVtc1RyYW5zbGF0aW9uS2V5ITogc3RyaW5nO1xuICBASW5wdXQoKSBub1Jlc3VsdHNUcmFuc2xhdGlvbktleSE6IHN0cmluZztcbiAgQElucHV0KCkgbW9iaWxlQnJlYWtwb2ludFB4ID0gNzY4O1xuICBASW5wdXQoKSBhbW91bnRPZkxvYWRpbmdSb3dzID0gMztcblxuICBASW5wdXQoKVxuICBzZXQgY29sbGVjdGlvblNpemUoY29sbGVjdGlvblNpemU6IFRhYmxlUGFnaW5hdGlvblsnY29sbGVjdGlvblNpemUnXSkge1xuICAgIHRoaXMuY29sbGVjdGlvblNpemUkLm5leHQoY29sbGVjdGlvblNpemUpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBwYWdlKHBhZ2U6IFRhYmxlUGFnaW5hdGlvblsncGFnZSddKSB7XG4gICAgdGhpcy5wYWdlJC5uZXh0KHBhZ2UpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBzaXplKHNpemU6IFRhYmxlUGFnaW5hdGlvblsnc2l6ZSddKSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgQE91dHB1dCgpIGVkaXRCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25TaXplU2V0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25QYWdlU2V0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBkZWZhdWx0UGFnaW5hdGlvblNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWxlY3RJdGVtIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc01vYmlsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbGxlY3Rpb25TaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVQYWdpbmF0aW9uWydjb2xsZWN0aW9uU2l6ZSddPigwKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVQYWdpbmF0aW9uWydwYWdlJ10+KDApO1xuICBwcml2YXRlIHJlYWRvbmx5IHNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVBhZ2luYXRpb25bJ3NpemUnXT4oMCk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbGxlY3Rpb25TaXplJCwgdGhpcy5wYWdlJCwgdGhpcy5zaXplJF0pLnBpcGUoXG4gICAgbWFwKChbY29sbGVjdGlvblNpemUsIHBhZ2UsIHNpemVdKSA9PiAoe1xuICAgICAgY29sbGVjdGlvblNpemUsXG4gICAgICBwYWdlLFxuICAgICAgc2l6ZSxcbiAgICB9KSksXG4gICAgdGFwKCh7Y29sbGVjdGlvblNpemUsIHBhZ2UsIHNpemV9KSA9PiB7XG4gICAgICBjb25zdCBhbW91bnRPZlBhZ2VzQXZhaWxhYmxlID0gTWF0aC5jZWlsKGNvbGxlY3Rpb25TaXplIC8gc2l6ZSk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuc2tpcHBpbmdUb1ByZXZpb3VzUGFnZSAmJlxuICAgICAgICBhbW91bnRPZlBhZ2VzQXZhaWxhYmxlID4gMCAmJlxuICAgICAgICBwYWdlID4gYW1vdW50T2ZQYWdlc0F2YWlsYWJsZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2tpcHBpbmdUb1ByZXZpb3VzUGFnZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0UGFnZShhbW91bnRPZlBhZ2VzQXZhaWxhYmxlKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8b2JqZWN0Pj4oW10pO1xuXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25PcHRpb25zOiBBcnJheTxTZWxlY3RJdGVtPiA9IFtcbiAgICB7aWQ6IDEwLCB0ZXh0OiAnMTAnfSxcbiAgICB7aWQ6IDI1LCB0ZXh0OiAnMjUnfSxcbiAgICB7aWQ6IDUwLCB0ZXh0OiAnNTAnfSxcbiAgICB7aWQ6IDEwMCwgdGV4dDogJzEwMCd9LFxuICBdO1xuXG4gIHByaXZhdGUgYnJlYWtwb2ludFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNraXBwaW5nVG9QcmV2aW91c1BhZ2UgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0RGVmYXVsdFBhZ2luYXRpb25TaXplKCk7XG4gICAgdGhpcy5vcGVuQnJlYWtwb2ludFN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5icmVha3BvaW50U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0QXJyYXlPZkxlbmd0aChsZW5ndGg6IG51bWJlcik6IEFycmF5PDA+IHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGxlbmd0aCkuZmlsbCgwKTtcbiAgfVxuXG4gIHNldFBhZ2Uoc2V0VG86ICdwcmV2aW91cycgfCAnbmV4dCcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2luYXRpb24kLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHBhZ2luYXRpb24gPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBwYWdpbmF0aW9uPy5wYWdlO1xuXG4gICAgICBpZiAoY3VycmVudFBhZ2UpIHtcbiAgICAgICAgbGV0IG5ld1BhZ2VOdW1iZXIgPSAwO1xuXG4gICAgICAgIGlmIChzZXRUbyA9PT0gJ3ByZXZpb3VzJykge1xuICAgICAgICAgIG5ld1BhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZSAtIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoc2V0VG8gPT09ICduZXh0Jykge1xuICAgICAgICAgIG5ld1BhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZSArIDE7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNldFRvID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIG5ld1BhZ2VOdW1iZXIgPSBzZXRUbztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblBhZ2VTZXQuZW1pdChuZXdQYWdlTnVtYmVyKTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ld1BhZ2VOdW1iZXIpO1xuICAgICAgICB0aGlzLnNraXBwaW5nVG9QcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldFBhZ2luYXRpb25TaXplKG5ld1BhZ2VTaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2luYXRpb25TaXplU2V0LmVtaXQobmV3UGFnZVNpemUpO1xuICAgIHRoaXMuc2l6ZSQubmV4dChuZXdQYWdlU2l6ZSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5CcmVha3BvaW50U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuYnJlYWtwb2ludFN1YnNjcmlwdGlvbiA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAub2JzZXJ2ZShbYChtaW4td2lkdGg6ICR7dGhpcy5tb2JpbGVCcmVha3BvaW50UHh9cHgpYF0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogQnJlYWtwb2ludFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChzdGF0ZS5tYXRjaGVzKSB7XG4gICAgICAgICAgdGhpcy5pc01vYmlsZSQubmV4dChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc01vYmlsZSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRQYWdpbmF0aW9uU2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNpemUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNpemUgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFBhZ2luYXRpb25PcHRpb24gPVxuICAgICAgICBzaXplICYmIHRoaXMucGFnaW5hdGlvbk9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLmlkID09PSBzaXplKTtcblxuICAgICAgaWYgKGRlZmF1bHRQYWdpbmF0aW9uT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFBhZ2luYXRpb25TaXplJC5uZXh0KGRlZmF1bHRQYWdpbmF0aW9uT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwie2l0ZW1zOiBpdGVtcyQgfCBhc3luY30gYXMgb2JzXCI+XG4gIDxkaXYgY2xhc3M9XCJ2LXRhYmxlLWNvbnRhaW5lclwiPlxuICAgIDx0YWJsZSBjbGFzcz1cInYtdGFibGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUhlYWRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUJvZHk7IGNvbnRleHQ6IHt0YWJsZUl0ZW1zOiBvYnMuaXRlbXN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVCb2R5TG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQm9keU5vUmVzdWx0czsgY29udGV4dDoge3RhYmxlSXRlbXM6IG9icy5pdGVtc31cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvdGFibGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdpbmF0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnaW5hdGlvbkNvbnRhaW5lcjsgY29udGV4dDoge3RhYmxlSXRlbXM6IG9icy5pdGVtc31cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlSGVhZD5cbiAgPHRoZWFkICpuZ0lmPVwiY29sdW1uc1wiPlxuICAgIDx0cj5cbiAgICAgIDx0aCBjbGFzcz1cInYtdGFibGVfX2hlYWRlclwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgICB7eyBjb2x1bW4ubGFiZWxUcmFuc2xhdGlvbktleSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cInNob3dFZGl0QnV0dG9uc1wiIGNsYXNzPVwidi10YWJsZV9faGVhZGVyXCI+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUJvZHkgbGV0LXRhYmxlSXRlbXM9XCJ0YWJsZUl0ZW1zXCI+XG4gIDx0Ym9keSBjbGFzcz1cInYtdGFibGVfX2JvZHlcIiAqbmdJZj1cIiFsb2FkaW5nICYmIHRhYmxlSXRlbXMgJiYgdGFibGVJdGVtcz8ubGVuZ3RoID4gMFwiPlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0YWJsZUl0ZW1zXCIgY2xhc3M9XCJ2LXRhYmxlX19yb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUNlbGw7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlRWRpdEJ1dHRvbkNlbGw7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQm9keU5vUmVzdWx0cyBsZXQtdGFibGVJdGVtcz1cInRhYmxlSXRlbXNcIj5cbiAgPHRib2R5IGNsYXNzPVwidi10YWJsZV9fYm9keVwiICpuZ0lmPVwiIWxvYWRpbmcgJiYgdGFibGVJdGVtcyAmJiB0YWJsZUl0ZW1zPy5sZW5ndGggPT09IDBcIj5cbiAgICA8dHIgY2xhc3M9XCJ2LXRhYmxlX19yb3dcIj5cbiAgICAgIDx0ZCBjbGFzcz1cInYtdGFibGVfX2NlbGxcIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpID09PSAwXCIgY2xhc3M9XCJ2LXRhYmxlX19jZWxsLWNvbnRlbnRcIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgbm9SZXN1bHRzVHJhbnNsYXRpb25LZXlcbiAgICAgICAgICAgICAgPyAobm9SZXN1bHRzVHJhbnNsYXRpb25LZXkgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKCdpbnRlcmZhY2Uubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQ2VsbCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPHRkICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIGNsYXNzPVwidi10YWJsZV9fY2VsbFwiPlxuICAgIDxzcGFuIGNsYXNzPVwidi10YWJsZV9fY2VsbC1jb250ZW50XCI+XG4gICAgICB7eyBpdGVtW2NvbHVtbi5kYXRhS2V5XSB9fVxuICAgIDwvc3Bhbj5cbiAgPC90ZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVFZGl0QnV0dG9uQ2VsbCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPHRkICpuZ0lmPVwic2hvd0VkaXRCdXR0b25zXCIgY2xhc3M9XCJ2LXRhYmxlX19jZWxsIHYtdGFibGVfX2NlbGwtLXdpdGgtYnV0dG9uXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ2LXRhYmxlX19jZWxsLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgIDx2LWJ1dHRvbiB0eXBlPVwic2Vjb25kYXJ5XCIgKGNsaWNrRXZlbnQpPVwiZWRpdEJ1dHRvbkNsaWNrZWQuZW1pdChpdGVtKVwiPnt7XG4gICAgICAgIGVkaXRCdXR0b25UcmFuc2xhdGlvbktleSB8fCAnaW50ZXJmYWNlLmVkaXQnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvdi1idXR0b24+XG4gICAgPC9zcGFuPlxuICA8L3RkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUJvZHlMb2FkaW5nPlxuICA8dGJvZHkgY2xhc3M9XCJ2LXRhYmxlX19ib2R5XCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEFycmF5T2ZMZW5ndGgoYW1vdW50T2ZMb2FkaW5nUm93cylcIiBjbGFzcz1cInYtdGFibGVfX3Jvd1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQ2VsbExvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUVkaXRCdXR0b25DZWxsTG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQ2VsbExvYWRpbmc+XG4gIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIiBjbGFzcz1cInYtdGFibGVfX2NlbGxcIj5cbiAgICA8c3BhbiBjbGFzcz1cInYtdGFibGVfX2NlbGwtY29udGVudFwiXG4gICAgICA+PG5neC1za2VsZXRvbi1sb2FkZXJcbiAgICAgICAgYXBwZWFyYW5jZT1cImxpbmVcIlxuICAgICAgICBbdGhlbWVdPVwie1xuICAgICAgICAgIHdpZHRoOiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLXdpZHRoKScsXG4gICAgICAgICAgaGVpZ2h0OiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLWxpbmUtaGVpZ2h0KScsXG4gICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAndmFyKC0tdi10YWJsZS1sb2FkaW5nLXNrZWxldG9uLWJnLWNvbG9yKScsXG4gICAgICAgIH1cIlxuICAgICAgPjwvbmd4LXNrZWxldG9uLWxvYWRlclxuICAgID48L3NwYW4+XG4gIDwvdGQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlRWRpdEJ1dHRvbkNlbGxMb2FkaW5nPlxuICA8dGQgKm5nSWY9XCJzaG93RWRpdEJ1dHRvbnNcIiBjbGFzcz1cInYtdGFibGVfX2NlbGwgdi10YWJsZV9fY2VsbC0td2l0aC1idXR0b25cIj5cbiAgICA8c3BhbiBjbGFzcz1cInYtdGFibGVfX2NlbGwtYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgPHYtYnV0dG9uIHR5cGU9XCJzZWNvbmRhcnlcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPnt7XG4gICAgICAgIGVkaXRCdXR0b25UcmFuc2xhdGlvbktleSB8fCAnaW50ZXJmYWNlLmVkaXQnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvdi1idXR0b24+XG4gICAgPC9zcGFuPlxuICA8L3RkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwYWdpbmF0aW9uQ29udGFpbmVyIGxldC10YWJsZUl0ZW1zPVwidGFibGVJdGVtc1wiPlxuICA8ZGl2ICpuZ0lmPVwicGFnaW5hdGlvbiQgfCBhc3luYyBhcyBwYWdpbmF0aW9uT2JqZWN0XCIgY2xhc3M9XCJ2LXRhYmxlX19wYWdpbmF0aW9uLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2LXRhYmxlX19wYWdpbmF0aW9uLXNpemUtY29udGFpbmVyXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnaW5hdGlvblNpemVTZWxlY3Q7IGNvbnRleHQ6IHtwYWdpbmF0aW9uT2JqZWN0OiBwYWdpbmF0aW9uT2JqZWN0fVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgcGFnaW5hdGlvblNpemVBbW91bnRUZXh0O1xuICAgICAgICAgIGNvbnRleHQ6IHtwYWdpbmF0aW9uT2JqZWN0OiBwYWdpbmF0aW9uT2JqZWN0LCB0YWJsZUl0ZW1zOiB0YWJsZUl0ZW1zfVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnaW5hdGlvbk5hdmlnYXRpb247IGNvbnRleHQ6IHtwYWdpbmF0aW9uT2JqZWN0OiBwYWdpbmF0aW9uT2JqZWN0fVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnaW5hdGlvblNpemVTZWxlY3QgbGV0LXBhZ2luYXRpb25PYmplY3Q9XCJwYWdpbmF0aW9uT2JqZWN0XCI+XG4gIDxzcGFuIGNsYXNzPVwidi10YWJsZV9fcGFnaW5hdGlvbi1zaXplLXRleHRcIj57eyAnaW50ZXJmYWNlLnNob3cnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInYtdGFibGVfX3BhZ2luYXRpb24tc2l6ZS1zZWxlY3RcIj5cbiAgICA8di1zZWxlY3RcbiAgICAgIFtpdGVtc109XCJwYWdpbmF0aW9uT3B0aW9uc1wiXG4gICAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcbiAgICAgIFtkZWZhdWx0U2VsZWN0aW9uXT1cIihkZWZhdWx0UGFnaW5hdGlvblNpemUkIHwgYXN5bmMpIHx8IHBhZ2luYXRpb25PcHRpb25zWzBdXCJcbiAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJzZXRQYWdpbmF0aW9uU2l6ZSgkZXZlbnQpXCJcbiAgICA+PC92LXNlbGVjdD5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInYtdGFibGVfX3BhZ2luYXRpb24tc2l6ZS10ZXh0XCI+e3tcbiAgICBpdGVtc1RyYW5zbGF0aW9uS2V5ID8gKGl0ZW1zVHJhbnNsYXRpb25LZXkgfCB0cmFuc2xhdGUpIDogKCdpbnRlcmZhY2UuaXRlbXMnIHwgdHJhbnNsYXRlKVxuICB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjcGFnaW5hdGlvblNpemVBbW91bnRUZXh0XG4gIGxldC1wYWdpbmF0aW9uT2JqZWN0PVwicGFnaW5hdGlvbk9iamVjdFwiXG4gIGxldC10YWJsZUl0ZW1zPVwidGFibGVJdGVtc1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdpbmF0aW9uU2l6ZUFtb3VudFRleHRMb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJ2LXRhYmxlX19wYWdpbmF0aW9uLWFtb3VudC10ZXh0XCJcbiAgICAqbmdJZj1cIiFsb2FkaW5nICYmIHRhYmxlSXRlbXMgJiYgcGFnaW5hdGlvbk9iamVjdFwiXG4gICAgPnt7XG4gICAgICB0YWJsZUl0ZW1zLmxlbmd0aCArXG4gICAgICAgICcgJyArXG4gICAgICAgICgnaW50ZXJmYWNlLm9mJyB8IHRyYW5zbGF0ZSkgK1xuICAgICAgICAnICcgK1xuICAgICAgICBwYWdpbmF0aW9uT2JqZWN0LmNvbGxlY3Rpb25TaXplICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKGl0ZW1zVHJhbnNsYXRpb25LZXlcbiAgICAgICAgICA/IChpdGVtc1RyYW5zbGF0aW9uS2V5IHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKCdpbnRlcmZhY2UuaXRlbXMnIHwgdHJhbnNsYXRlKSkgK1xuICAgICAgICAnICcgK1xuICAgICAgICAoJ2ludGVyZmFjZS52aXNpYmxlJyB8IHRyYW5zbGF0ZSlcbiAgICB9fTwvc3BhblxuICA+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BhZ2luYXRpb25TaXplQW1vdW50VGV4dExvYWRpbmc+XG4gIDxzcGFuIGNsYXNzPVwidi10YWJsZV9fcGFnaW5hdGlvbi1hbW91bnQtdGV4dFwiICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgPjxuZ3gtc2tlbGV0b24tbG9hZGVyXG4gICAgICBhcHBlYXJhbmNlPVwibGluZVwiXG4gICAgICBbdGhlbWVdPVwie1xuICAgICAgICB3aWR0aDogJ3ZhcigtLXYtdGFibGUtbG9hZGluZy1za2VsZXRvbi13aWR0aCknLFxuICAgICAgICBoZWlnaHQ6ICd2YXIoLS12LXRhYmxlLWxvYWRpbmctc2tlbGV0b24tbGluZS1oZWlnaHQpJyxcbiAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJ3ZhcigtLXYtdGFibGUtbG9hZGluZy1za2VsZXRvbi1wYWdpbmF0aW9uLXNpemUtYmctY29sb3IpJyxcbiAgICAgIH1cIlxuICAgID48L25neC1za2VsZXRvbi1sb2FkZXJcbiAgPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnaW5hdGlvbk5hdmlnYXRpb24gbGV0LXBhZ2luYXRpb25PYmplY3Q9XCJwYWdpbmF0aW9uT2JqZWN0XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInYtdGFibGVfX3BhZ2luYXRpb24tbmF2aWdhdGlvbi1jb250YWluZXJcIlxuICAgICpuZ0lmPVwicGFnaW5hdGlvbk9iamVjdCAmJiBwYWdpbmF0aW9uT2JqZWN0LmNvbGxlY3Rpb25TaXplID4gcGFnaW5hdGlvbk9iamVjdC5zaXplXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwicGFnaW5hdGlvbk9iamVjdC5wYWdlID4gMVwiPlxuICAgICAgPHYtYnV0dG9uIChjbGlja0V2ZW50KT1cInNldFBhZ2UoJ3ByZXZpb3VzJylcIiB0eXBlPVwidGV4dFwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+e3tcbiAgICAgICAgJ2ludGVyZmFjZS5wcmV2aW91cycgfCB0cmFuc2xhdGVcbiAgICAgIH19PC92LWJ1dHRvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJwYWdpbmF0aW9uT2JqZWN0LnBhZ2UgKiBwYWdpbmF0aW9uT2JqZWN0LnNpemUgPCBwYWdpbmF0aW9uT2JqZWN0LmNvbGxlY3Rpb25TaXplXCI+XG4gICAgICA8di1idXR0b24gKGNsaWNrRXZlbnQpPVwic2V0UGFnZSgnbmV4dCcpXCIgdHlwZT1cInRleHRcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPnt7XG4gICAgICAgICdpbnRlcmZhY2UubmV4dEFycm93JyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3YtYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -40,11 +40,11 @@ export class TitleComponent {
40
40
  }
41
41
  }
42
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TitleComponent, selector: "v-title", inputs: { type: "type", margin: "margin", fullWidth: "fullWidth", center: "center" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<h1\n *ngIf=\"isH1\"\n class=\"v-title--h1\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n<h2\n *ngIf=\"isH2\"\n class=\"v-title--h2\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".v-title--h1{color:var(--v-title-h1-color);font-size:var(--v-title-h1-font-size);font-weight:var(--v-title-h1-font-weight);line-height:var(--v-title-h1-line-height);margin:0;margin-block-end:var(--v-title-h1-margin-block-end)}.v-title--h2{color:var(--v-title-h2-color);font-size:var(--v-title-h2-font-size);font-weight:var(--v-title-h2-font-weight);line-height:var(--v-title-h2-line-height);margin:0;margin-block-end:var(--v-title-h2-margin-block-end)}.v-title--no-margin{margin:0}.v-title--full-width{width:100%}.v-title--center{text-align:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TitleComponent, selector: "v-title", inputs: { type: "type", margin: "margin", fullWidth: "fullWidth", center: "center" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<h1\n *ngIf=\"isH1\"\n class=\"v-title--h1\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center,\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n<h2\n *ngIf=\"isH2\"\n class=\"v-title--h2\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center,\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".v-title--h1{color:var(--v-title-h1-color);font-size:var(--v-title-h1-font-size);font-weight:var(--v-title-h1-font-weight);line-height:var(--v-title-h1-line-height);margin:0;margin-block-end:var(--v-title-h1-margin-block-end)}.v-title--h2{color:var(--v-title-h2-color);font-size:var(--v-title-h2-font-size);font-weight:var(--v-title-h2-font-weight);line-height:var(--v-title-h2-line-height);margin:0;margin-block-end:var(--v-title-h2-margin-block-end)}.v-title--no-margin{margin:0}.v-title--full-width{width:100%}.v-title--center{text-align:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
44
44
  }
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleComponent, decorators: [{
46
46
  type: Component,
47
- args: [{ selector: 'v-title', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<h1\n *ngIf=\"isH1\"\n class=\"v-title--h1\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n<h2\n *ngIf=\"isH2\"\n class=\"v-title--h2\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".v-title--h1{color:var(--v-title-h1-color);font-size:var(--v-title-h1-font-size);font-weight:var(--v-title-h1-font-weight);line-height:var(--v-title-h1-line-height);margin:0;margin-block-end:var(--v-title-h1-margin-block-end)}.v-title--h2{color:var(--v-title-h2-color);font-size:var(--v-title-h2-font-size);font-weight:var(--v-title-h2-font-weight);line-height:var(--v-title-h2-line-height);margin:0;margin-block-end:var(--v-title-h2-margin-block-end)}.v-title--no-margin{margin:0}.v-title--full-width{width:100%}.v-title--center{text-align:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
47
+ args: [{ selector: 'v-title', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<h1\n *ngIf=\"isH1\"\n class=\"v-title--h1\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center,\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h1>\n<h2\n *ngIf=\"isH2\"\n class=\"v-title--h2\"\n [ngClass]=\"{\n 'v-title--no-margin': !margin,\n 'v-title--full-width': fullWidth,\n 'v-title--center': center,\n }\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</h2>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".v-title--h1{color:var(--v-title-h1-color);font-size:var(--v-title-h1-font-size);font-weight:var(--v-title-h1-font-weight);line-height:var(--v-title-h1-line-height);margin:0;margin-block-end:var(--v-title-h1-margin-block-end)}.v-title--h2{color:var(--v-title-h2-color);font-size:var(--v-title-h2-font-size);font-weight:var(--v-title-h2-font-weight);line-height:var(--v-title-h2-line-height);margin:0;margin-block-end:var(--v-title-h2-margin-block-end)}.v-title--no-margin{margin:0}.v-title--full-width{width:100%}.v-title--center{text-align:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
48
48
  }], propDecorators: { type: [{
49
49
  type: Input
50
50
  }], margin: [{
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
54
54
  }], center: [{
55
55
  type: Input
56
56
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90aXRsZS90aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RpdGxlL3RpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7OztBQUd2RDs7R0FFRztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBTVcsU0FBSSxHQUFjLElBQUksQ0FBQztRQUN2QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsS0FBSyxDQUFDO0tBbUJ6QjtJQWRDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxJQUFJO2dCQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsS0FBSyxJQUFJO2dCQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7K0dBdEJVLGNBQWM7bUdBQWQsY0FBYyxxSUMzQjNCLCtzQ0EwQ0E7OzRGRGZhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsU0FBUzs4QkFLVixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaXRsZVR5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTWlncmF0ZSBvbGQgZGVzaWduIHRvIENhcmJvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2LXRpdGxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpdGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGl0bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0eXBlOiBUaXRsZVR5cGUgPSAnaDEnO1xuICBASW5wdXQoKSBtYXJnaW4gPSB0cnVlO1xuICBASW5wdXQoKSBmdWxsV2lkdGggPSBmYWxzZTtcbiAgQElucHV0KCkgY2VudGVyID0gZmFsc2U7XG5cbiAgaXNIMSE6IGJvb2xlYW47XG4gIGlzSDIhOiBib29sZWFuO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VGl0bGVUeXBlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFRpdGxlVHlwZSgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSAnaDEnOlxuICAgICAgICB0aGlzLmlzSDEgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2gyJzpcbiAgICAgICAgdGhpcy5pc0gyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxoMVxuICAqbmdJZj1cImlzSDFcIlxuICBjbGFzcz1cInYtdGl0bGUtLWgxXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICd2LXRpdGxlLS1uby1tYXJnaW4nOiAhbWFyZ2luLFxuICAgICd2LXRpdGxlLS1mdWxsLXdpZHRoJzogZnVsbFdpZHRoLFxuICAgICd2LXRpdGxlLS1jZW50ZXInOiBjZW50ZXJcbiAgfVwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L2gxPlxuPGgyXG4gICpuZ0lmPVwiaXNIMlwiXG4gIGNsYXNzPVwidi10aXRsZS0taDJcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3YtdGl0bGUtLW5vLW1hcmdpbic6ICFtYXJnaW4sXG4gICAgJ3YtdGl0bGUtLWZ1bGwtd2lkdGgnOiBmdWxsV2lkdGgsXG4gICAgJ3YtdGl0bGUtLWNlbnRlcic6IGNlbnRlclxuICB9XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvaDI+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90aXRsZS90aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RpdGxlL3RpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7OztBQUd2RDs7R0FFRztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBTVcsU0FBSSxHQUFjLElBQUksQ0FBQztRQUN2QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsS0FBSyxDQUFDO0tBbUJ6QjtJQWRDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxJQUFJO2dCQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsS0FBSyxJQUFJO2dCQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7K0dBdEJVLGNBQWM7bUdBQWQsY0FBYyxxSUMzQjNCLGl0Q0EwQ0E7OzRGRGZhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsU0FBUzs4QkFLVixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaXRsZVR5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTWlncmF0ZSBvbGQgZGVzaWduIHRvIENhcmJvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2LXRpdGxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpdGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGl0bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0eXBlOiBUaXRsZVR5cGUgPSAnaDEnO1xuICBASW5wdXQoKSBtYXJnaW4gPSB0cnVlO1xuICBASW5wdXQoKSBmdWxsV2lkdGggPSBmYWxzZTtcbiAgQElucHV0KCkgY2VudGVyID0gZmFsc2U7XG5cbiAgaXNIMSE6IGJvb2xlYW47XG4gIGlzSDIhOiBib29sZWFuO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VGl0bGVUeXBlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFRpdGxlVHlwZSgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSAnaDEnOlxuICAgICAgICB0aGlzLmlzSDEgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2gyJzpcbiAgICAgICAgdGhpcy5pc0gyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxoMVxuICAqbmdJZj1cImlzSDFcIlxuICBjbGFzcz1cInYtdGl0bGUtLWgxXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICd2LXRpdGxlLS1uby1tYXJnaW4nOiAhbWFyZ2luLFxuICAgICd2LXRpdGxlLS1mdWxsLXdpZHRoJzogZnVsbFdpZHRoLFxuICAgICd2LXRpdGxlLS1jZW50ZXInOiBjZW50ZXIsXG4gIH1cIlxuPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9oMT5cbjxoMlxuICAqbmdJZj1cImlzSDJcIlxuICBjbGFzcz1cInYtdGl0bGUtLWgyXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICd2LXRpdGxlLS1uby1tYXJnaW4nOiAhbWFyZ2luLFxuICAgICd2LXRpdGxlLS1mdWxsLXdpZHRoJzogZnVsbFdpZHRoLFxuICAgICd2LXRpdGxlLS1jZW50ZXInOiBjZW50ZXIsXG4gIH1cIlxuPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9oMj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19