@seniorsistemas/data-seniorx-core 1.7.0 → 1.8.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 (104) hide show
  1. package/core/types/card.type.d.ts +1 -15
  2. package/core/types/filters.type.d.ts +9 -6
  3. package/core/types/row-card.type.d.ts +1 -7
  4. package/core/types/sidebar.type.d.ts +6 -0
  5. package/core/utils/array.util.d.ts +1 -0
  6. package/esm2022/core/config/card.type.config.mjs +3 -3
  7. package/esm2022/core/config/row-card.type.config.mjs +2 -1
  8. package/esm2022/core/handlers/sqlFormatter.mjs +2 -2
  9. package/esm2022/core/types/card.type.mjs +2 -39
  10. package/esm2022/core/types/filters.type.mjs +1 -1
  11. package/esm2022/core/types/row-card.type.mjs +1 -1
  12. package/esm2022/core/types/sidebar.type.mjs +2 -0
  13. package/esm2022/core/types/table.type.mjs +28 -0
  14. package/esm2022/core/utils/array.util.mjs +4 -0
  15. package/esm2022/features/button/button.component.mjs +4 -4
  16. package/esm2022/features/card-list/card/card.component.mjs +5 -5
  17. package/esm2022/features/card-list/card-list.component.mjs +8 -8
  18. package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
  19. package/esm2022/features/combobox/combobox.component.mjs +10 -7
  20. package/esm2022/features/confirm/confirm.component.mjs +3 -3
  21. package/esm2022/features/filters/filters.component.mjs +35 -9
  22. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  23. package/esm2022/features/inputs.mjs +3 -3
  24. package/esm2022/features/list/list.component.mjs +3 -3
  25. package/esm2022/features/modal/modal.component.mjs +3 -3
  26. package/esm2022/features/modalc/modalc.component.mjs +4 -4
  27. package/esm2022/features/paginator/paginator.component.mjs +81 -33
  28. package/esm2022/features/panel/panel.component.mjs +26 -16
  29. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +29 -18
  30. package/esm2022/features/row-card-list/row-card-list.component.mjs +10 -10
  31. package/esm2022/features/scaffold/scaffold.component.mjs +43 -14
  32. package/esm2022/features/searchbox/searchbox.component.mjs +4 -4
  33. package/esm2022/features/sidebar/sidebar.component.mjs +3 -3
  34. package/esm2022/features/spinner/spinner.component.mjs +3 -3
  35. package/esm2022/features/spinner/spinner.service.mjs +3 -3
  36. package/esm2022/features/sql-editor/sql-editor.component.mjs +3 -3
  37. package/esm2022/features/tab/tab-item.component.mjs +3 -3
  38. package/esm2022/features/tab/tab.component.mjs +5 -5
  39. package/esm2022/features/table/table.component.mjs +6 -6
  40. package/esm2022/features/textbox/textbox.component.mjs +3 -3
  41. package/esm2022/features/toast/toast.component.mjs +4 -4
  42. package/esm2022/features/toast/toast.service.mjs +4 -4
  43. package/esm2022/providers/styles.provider.mjs +32 -0
  44. package/esm2022/public-api.mjs +28 -6
  45. package/features/button/button.component.d.ts +1 -1
  46. package/features/card-list/card/card.component.d.ts +2 -2
  47. package/features/card-list/card-list.component.d.ts +1 -1
  48. package/features/combobox/combobox.component.d.ts +3 -2
  49. package/features/filters/filters.component.d.ts +5 -2
  50. package/features/modalc/modalc.component.d.ts +1 -1
  51. package/features/paginator/paginator.component.d.ts +29 -8
  52. package/features/panel/panel.component.d.ts +8 -2
  53. package/features/row-card-list/row-card/row-card.component.d.ts +7 -4
  54. package/features/row-card-list/row-card-list.component.d.ts +3 -3
  55. package/features/scaffold/scaffold.component.d.ts +12 -4
  56. package/features/searchbox/searchbox.component.d.ts +1 -1
  57. package/features/tab/tab.component.d.ts +1 -1
  58. package/features/table/table.component.d.ts +2 -2
  59. package/features/toast/toast.component.d.ts +1 -1
  60. package/features/toast/toast.service.d.ts +1 -1
  61. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +479 -199
  62. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  63. package/package.json +19 -14
  64. package/providers/styles.provider.d.ts +2 -0
  65. package/public-api.d.ts +20 -5
  66. package/src/locales/en.json +15 -0
  67. package/src/locales/es-CO.json +15 -0
  68. package/src/locales/pt.json +15 -0
  69. package/styles/domain-filter.scss +10 -0
  70. package/styles/fields.scss +17 -0
  71. package/styles/hyperlink.scss +11 -0
  72. package/styles/sdc-card.scss +34 -0
  73. package/styles/sdc-global-variables.scss +73 -0
  74. package/styles/sql-editor.scss +3 -0
  75. package/styles.css +20161 -2
  76. package/styles.scss +6 -0
  77. package/webfonts/fa-brands-400.eot +0 -0
  78. package/webfonts/fa-brands-400.svg +3717 -0
  79. package/webfonts/fa-brands-400.ttf +0 -0
  80. package/webfonts/fa-brands-400.woff +0 -0
  81. package/webfonts/fa-brands-400.woff2 +0 -0
  82. package/webfonts/fa-duotone-900.eot +0 -0
  83. package/webfonts/fa-duotone-900.svg +15328 -0
  84. package/webfonts/fa-duotone-900.ttf +0 -0
  85. package/webfonts/fa-duotone-900.woff +0 -0
  86. package/webfonts/fa-duotone-900.woff2 +0 -0
  87. package/webfonts/fa-light-300.eot +0 -0
  88. package/webfonts/fa-light-300.svg +12423 -0
  89. package/webfonts/fa-light-300.ttf +0 -0
  90. package/webfonts/fa-light-300.woff +0 -0
  91. package/webfonts/fa-light-300.woff2 +0 -0
  92. package/webfonts/fa-regular-400.eot +0 -0
  93. package/webfonts/fa-regular-400.svg +11323 -0
  94. package/webfonts/fa-regular-400.ttf +0 -0
  95. package/webfonts/fa-regular-400.woff +0 -0
  96. package/webfonts/fa-regular-400.woff2 +0 -0
  97. package/webfonts/fa-solid-900.eot +0 -0
  98. package/webfonts/fa-solid-900.svg +9653 -0
  99. package/webfonts/fa-solid-900.ttf +0 -0
  100. package/webfonts/fa-solid-900.woff +0 -0
  101. package/webfonts/fa-solid-900.woff2 +0 -0
  102. package/esm2022/core/types/table.types.mjs +0 -28
  103. package/styles.css.map +0 -1
  104. /package/core/types/{table.types.d.ts → table.type.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { isMobile } from 'lib/src/core/utils/layout.util';
2
+ import { isMobile } from '../../core/utils/layout.util';
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, NgZone, Output, ViewChild, numberAttribute, signal, computed, effect, inject, ViewEncapsulation, } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TabComponent {
@@ -142,10 +142,10 @@ export class TabComponent {
142
142
  const s = v.trim().toLowerCase();
143
143
  return s === '' || s === 'true' || s === '1';
144
144
  }
145
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
146
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabComponent, isStandalone: true, selector: "sdc-tab", inputs: { activeIndex: ["activeIndex", "activeIndex", numberAttribute] }, outputs: { activeIndexChange: "activeIndexChange" }, viewQueries: [{ propertyName: "headersRef", first: true, predicate: ["headersRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-tab\" [class.sdc-tab-stack]=\"isMobile\">\n <div #headersRef class=\"sdc-tab-headers\" role=\"tablist\" aria-label=\"Tabs\">\n @for (h of headers(); let i = $index; track i) {\n <button\n class=\"sdc-tab-header\"\n [class.sdc-tab-header-active]=\"i === activeIndex\"\n [class.sdc-tab-header-disabled]=\"h.disabled\"\n role=\"tab\"\n type=\"button\"\n [disabled]=\"h.disabled\"\n [attr.aria-selected]=\"i === activeIndex\"\n [attr.aria-controls]=\"h.id + '-panel'\"\n [attr.aria-disabled]=\"h.disabled\"\n [id]=\"h.id\"\n [tabindex]=\"h.disabled ? -1 : (i === activeIndex ? 0 : -1)\"\n (click)=\"select(i)\"\n (keydown)=\"onHeaderKeydown($event, i)\">\n <span class=\"sdc-tab-label\">{{ h.label }}</span>\n </button>\n }\n </div>\n\n <div class=\"sdc-tab-panels\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sdc-tab{border:0;border-radius:0;background:none;display:flex;flex-direction:column}.sdc-tab .sdc-tab-label{font-size:15px}.sdc-tab-headers{display:flex;white-space:nowrap;overflow-x:auto;overflow-y:hidden;padding:0;margin:0;border-bottom:1px solid var(--sdc-tab-border);position:relative}.sdc-tab-header{position:relative;appearance:none;background:transparent;border:0;margin:0;padding:10px 15px;color:var(--sdc-tab-primary);cursor:pointer;border-bottom:5px solid transparent;transition:color .2s ease-out,border-color .2s ease-out;border-radius:0;flex:0 0 auto}.sdc-tab-header:hover{color:var(--sdc-tab-primary-hover)}.sdc-tab-header:focus{outline:none;background-color:var(--sdc-tab-focus)}.sdc-tab-header[disabled],.sdc-tab-header-disabled{cursor:not-allowed;opacity:.6}.sdc-tab-header-active{color:var(--sdc-tab-text);font-weight:600;border-bottom-color:var(--sdc-tab-primary)}.sdc-tab-header-active:hover{color:#4d4d4d;border-bottom-color:var(--sdc-tab-primary-hover)}.sdc-tab-header>.sds-badge-error{position:absolute;top:16px;left:1px}.sdc-tab-panels{padding:10px 0 0;width:100%;min-width:0}.sdc-tab-panel{outline:0;list-style:none;margin:0}[hidden]{display:none!important}@media (max-width: 750px){.sdc-tab,.sdc-tab *{box-sizing:border-box}.sdc-tab.sdc-tab-stack{display:flex;flex-direction:column;width:100vw;max-width:100vw;overflow:hidden}.sdc-tab.sdc-tab-stack .sdc-tab-headers{flex-direction:row;border-right:0;border-bottom:1px solid var(--sdc-tab-border);width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges;gap:.25rem;padding:0;margin:0}.sdc-tab.sdc-tab-stack .sdc-tab-header{flex:0 0 auto;white-space:nowrap;border-right:0;border-bottom:5px solid transparent;width:auto;text-align:left}.sdc-tab.sdc-tab-stack .sdc-tab-panels{padding:10px 15px 0 0;width:100%;max-width:100%;min-width:0;overflow-x:hidden}.sdc-tab.sdc-tab-stack .sdc-tab-panel{max-width:100%;overflow-wrap:anywhere;word-break:break-word}img,video,canvas,svg{max-width:100%;height:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
146
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TabComponent, isStandalone: true, selector: "sdc-tab", inputs: { activeIndex: ["activeIndex", "activeIndex", numberAttribute] }, outputs: { activeIndexChange: "activeIndexChange" }, viewQueries: [{ propertyName: "headersRef", first: true, predicate: ["headersRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-tab\" [class.sdc-tab-stack]=\"isMobile\">\n <div #headersRef class=\"sdc-tab-headers\" role=\"tablist\" aria-label=\"Tabs\">\n @for (h of headers(); let i = $index; track i) {\n <button\n class=\"sdc-tab-header\"\n [class.sdc-tab-header-active]=\"i === activeIndex\"\n [class.sdc-tab-header-disabled]=\"h.disabled\"\n role=\"tab\"\n type=\"button\"\n [disabled]=\"h.disabled\"\n [attr.aria-selected]=\"i === activeIndex\"\n [attr.aria-controls]=\"h.id + '-panel'\"\n [attr.aria-disabled]=\"h.disabled\"\n [id]=\"h.id\"\n [tabindex]=\"h.disabled ? -1 : (i === activeIndex ? 0 : -1)\"\n (click)=\"select(i)\"\n (keydown)=\"onHeaderKeydown($event, i)\">\n <span class=\"sdc-tab-label\">{{ h.label }}</span>\n </button>\n }\n </div>\n\n <div class=\"sdc-tab-panels\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sdc-tab{border:0;border-radius:0;background:none;display:flex;flex-direction:column}.sdc-tab .sdc-tab-label{font-size:15px}.sdc-tab-headers{display:flex;white-space:nowrap;overflow-x:auto;overflow-y:hidden;padding:0;margin:0;border-bottom:1px solid var(--sdc-tab-border);position:relative}.sdc-tab-header{position:relative;appearance:none;background:transparent;border:0;margin:0;padding:10px 15px;color:var(--sdc-tab-primary);cursor:pointer;border-bottom:5px solid transparent;transition:color .2s ease-out,border-color .2s ease-out;border-radius:0;flex:0 0 auto}.sdc-tab-header:hover{color:var(--sdc-tab-primary-hover)}.sdc-tab-header:focus{outline:none;background-color:var(--sdc-tab-focus)}.sdc-tab-header[disabled],.sdc-tab-header-disabled{cursor:not-allowed;opacity:.6}.sdc-tab-header-active{color:var(--sdc-tab-text);font-weight:600;border-bottom-color:var(--sdc-tab-primary)}.sdc-tab-header-active:hover{color:#4d4d4d;border-bottom-color:var(--sdc-tab-primary-hover)}.sdc-tab-header>.sds-badge-error{position:absolute;top:16px;left:1px}.sdc-tab-panels{padding:10px 0 0;width:100%;min-width:0}.sdc-tab-panel{outline:0;list-style:none;margin:0}[hidden]{display:none!important}@media (max-width: 750px){.sdc-tab,.sdc-tab *{box-sizing:border-box}.sdc-tab.sdc-tab-stack{display:flex;flex-direction:column;width:100vw;max-width:100vw;overflow:hidden}.sdc-tab.sdc-tab-stack .sdc-tab-headers{flex-direction:row;border-right:0;border-bottom:1px solid var(--sdc-tab-border);width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges;gap:.25rem;padding:0;margin:0}.sdc-tab.sdc-tab-stack .sdc-tab-header{flex:0 0 auto;white-space:nowrap;border-right:0;border-bottom:5px solid transparent;width:auto;text-align:left}.sdc-tab.sdc-tab-stack .sdc-tab-panels{padding:10px 15px 0 0;width:100%;max-width:100%;min-width:0;overflow-x:hidden}.sdc-tab.sdc-tab-stack .sdc-tab-panel{max-width:100%;overflow-wrap:anywhere;word-break:break-word}img,video,canvas,svg{max-width:100%;height:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
147
147
  }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, decorators: [{
149
149
  type: Component,
150
150
  args: [{ selector: 'sdc-tab', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-tab\" [class.sdc-tab-stack]=\"isMobile\">\n <div #headersRef class=\"sdc-tab-headers\" role=\"tablist\" aria-label=\"Tabs\">\n @for (h of headers(); let i = $index; track i) {\n <button\n class=\"sdc-tab-header\"\n [class.sdc-tab-header-active]=\"i === activeIndex\"\n [class.sdc-tab-header-disabled]=\"h.disabled\"\n role=\"tab\"\n type=\"button\"\n [disabled]=\"h.disabled\"\n [attr.aria-selected]=\"i === activeIndex\"\n [attr.aria-controls]=\"h.id + '-panel'\"\n [attr.aria-disabled]=\"h.disabled\"\n [id]=\"h.id\"\n [tabindex]=\"h.disabled ? -1 : (i === activeIndex ? 0 : -1)\"\n (click)=\"select(i)\"\n (keydown)=\"onHeaderKeydown($event, i)\">\n <span class=\"sdc-tab-label\">{{ h.label }}</span>\n </button>\n }\n </div>\n\n <div class=\"sdc-tab-panels\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sdc-tab{border:0;border-radius:0;background:none;display:flex;flex-direction:column}.sdc-tab .sdc-tab-label{font-size:15px}.sdc-tab-headers{display:flex;white-space:nowrap;overflow-x:auto;overflow-y:hidden;padding:0;margin:0;border-bottom:1px solid var(--sdc-tab-border);position:relative}.sdc-tab-header{position:relative;appearance:none;background:transparent;border:0;margin:0;padding:10px 15px;color:var(--sdc-tab-primary);cursor:pointer;border-bottom:5px solid transparent;transition:color .2s ease-out,border-color .2s ease-out;border-radius:0;flex:0 0 auto}.sdc-tab-header:hover{color:var(--sdc-tab-primary-hover)}.sdc-tab-header:focus{outline:none;background-color:var(--sdc-tab-focus)}.sdc-tab-header[disabled],.sdc-tab-header-disabled{cursor:not-allowed;opacity:.6}.sdc-tab-header-active{color:var(--sdc-tab-text);font-weight:600;border-bottom-color:var(--sdc-tab-primary)}.sdc-tab-header-active:hover{color:#4d4d4d;border-bottom-color:var(--sdc-tab-primary-hover)}.sdc-tab-header>.sds-badge-error{position:absolute;top:16px;left:1px}.sdc-tab-panels{padding:10px 0 0;width:100%;min-width:0}.sdc-tab-panel{outline:0;list-style:none;margin:0}[hidden]{display:none!important}@media (max-width: 750px){.sdc-tab,.sdc-tab *{box-sizing:border-box}.sdc-tab.sdc-tab-stack{display:flex;flex-direction:column;width:100vw;max-width:100vw;overflow:hidden}.sdc-tab.sdc-tab-stack .sdc-tab-headers{flex-direction:row;border-right:0;border-bottom:1px solid var(--sdc-tab-border);width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges;gap:.25rem;padding:0;margin:0}.sdc-tab.sdc-tab-stack .sdc-tab-header{flex:0 0 auto;white-space:nowrap;border-right:0;border-bottom:5px solid transparent;width:auto;text-align:left}.sdc-tab.sdc-tab-stack .sdc-tab-panels{padding:10px 15px 0 0;width:100%;max-width:100%;min-width:0;overflow-x:hidden}.sdc-tab.sdc-tab-stack .sdc-tab-panel{max-width:100%;overflow-wrap:anywhere;word-break:break-word}img,video,canvas,svg{max-width:100%;height:auto}}\n"] }]
151
151
  }], propDecorators: { headersRef: [{
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
157
157
  }], activeIndexChange: [{
158
158
  type: Output
159
159
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvdGFiL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RhYi90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7O0FBV3ZCLE1BQU0sT0FBTyxZQUFZO0lBQ2YsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQTRCLENBQUM7SUFDckQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFZixVQUFVLENBQThCO0lBRXpELFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakMsSUFDSSxXQUFXLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUFFLE9BQU87WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFUyxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXpDLFFBQVEsR0FBRyxRQUFRLEVBQUUsQ0FBQztJQUU5QixLQUFLLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUN2QixPQUFPLEdBQUcsUUFBUSxDQUFjLEdBQUcsRUFBRSxDQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQixLQUFLLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsRUFBRTtRQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxFQUFFO0tBQ3hDLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFFTSxFQUFFLENBQW9CO0lBRWIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDNUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sTUFBTSxDQUFDLENBQVM7UUFDckIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQ3JDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxDQUFnQixFQUFFLENBQVM7UUFDaEQsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUM5QyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFTO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3RCLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFTO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3RCLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ25DLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsQ0FBUztRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQWtDLENBQUM7UUFDOUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBa0IsQ0FBQztRQUNsRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUNyRCxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMvQixJQUFJLEdBQUc7Z0JBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztnQkFDdkMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLENBQVM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFnQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDL0MsQ0FBQzt3R0F2SlUsWUFBWTs0RkFBWixZQUFZLGlHQVNILGVBQWUsNExDekNyQyxzN0JBMEJBLHNpRURBWSxZQUFZOzs0RkFNWCxZQUFZO2tCQVR4QixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFPaEIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUtuQixXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQWUzQixpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFiSGVhZGVyIH0gZnJvbSAnbGliL3NyYy9jb3JlL3R5cGVzL3RhYi50eXBlJztcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnbGliL3NyYy9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgc2lnbmFsLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXRhYicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgVGFiQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcnNSZWYnKSBoZWFkZXJzUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHJpdmF0ZSBfYWN0aXZlSW5kZXggPSBzaWduYWwoMCk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgc2V0IGFjdGl2ZUluZGV4KHY6IG51bWJlcikge1xuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgY29uc3QgaWR4ID0gdGhpcy5ub3JtYWxpemVJbmRleCh2KTtcbiAgICAgIGlmIChpZHggPT09IHRoaXMuX2FjdGl2ZUluZGV4KCkpIHJldHVybjtcbiAgICAgIHRoaXMuX2FjdGl2ZUluZGV4LnNldChpZHgpO1xuICAgICAgdGhpcy5zeW5jSGlkZGVuQW5kQXJpYSgpO1xuICAgICAgdGhpcy5hY3RpdmVJbmRleENoYW5nZS5lbWl0KHRoaXMuX2FjdGl2ZUluZGV4KCkpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG4gIGdldCBhY3RpdmVJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVJbmRleCgpO1xuICB9XG5cbiAgQE91dHB1dCgpIGFjdGl2ZUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzTW9iaWxlID0gaXNNb2JpbGUoKTtcblxuICBwcml2YXRlIHdjRWxzID0gc2lnbmFsPEhUTUxFbGVtZW50W10+KFtdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhlYWRlcnMgPSBjb21wdXRlZDxUYWJIZWFkZXJbXT4oKCkgPT5cbiAgICB0aGlzLndjRWxzKCkubWFwKChlbCwgaSkgPT4gKHtcbiAgICAgIGxhYmVsOiBlbC5nZXRBdHRyaWJ1dGUoJ2xhYmVsJykgPz8gYFRhYiAke2l9YCxcbiAgICAgIGRpc2FibGVkOiB0aGlzLnBhcnNlQm9vbChlbC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpLFxuICAgICAgaWQ6IGVsLmdldEF0dHJpYnV0ZSgnaWQnKSA/PyBgdGFiLSR7aX1gLFxuICAgIH0pKVxuICApO1xuXG4gIHByaXZhdGUgbW8/OiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hlYWRlcnNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuaGVhZGVycygpO1xuICAgIHRoaXMuc3luY0hpZGRlbkFuZEFyaWEoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaENoaWxkcmVuKCk7XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5tbyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRoaXMucmVmcmVzaENoaWxkcmVuKCkpO1xuICAgICAgdGhpcy5tby5vYnNlcnZlKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KGk6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGhzID0gdGhpcy5oZWFkZXJzKCk7XG4gICAgaWYgKCFoc1tpXSB8fCBoc1tpXS5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmIChpICE9PSB0aGlzLl9hY3RpdmVJbmRleCgpKSB7XG4gICAgICB0aGlzLl9hY3RpdmVJbmRleC5zZXQoaSk7XG4gICAgICB0aGlzLnN5bmNIaWRkZW5BbmRBcmlhKCk7XG4gICAgICB0aGlzLmFjdGl2ZUluZGV4Q2hhbmdlLmVtaXQoaSk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSGVhZGVyS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50LCBpOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5mb2N1c05leHQoaSk7XG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuZm9jdXNQcmV2KGkpO1xuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdIb21lJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5mb2N1c0luZGV4KDApO1xuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFbmQnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmZvY3VzSW5kZXgodGhpcy5oZWFkZXJzKCkubGVuZ3RoIC0gMSk7XG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJyAnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNlbGVjdChpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dChpOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBocyA9IHRoaXMuaGVhZGVycygpO1xuICAgIGNvbnN0IGxlbiA9IGhzLmxlbmd0aDtcbiAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSBsZW47IHN0ZXArKykge1xuICAgICAgY29uc3QgaWR4ID0gKGkgKyBzdGVwKSAlIGxlbjtcbiAgICAgIGlmICghaHNbaWR4XS5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvY3VzSW5kZXgoaWR4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1ByZXYoaTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgaHMgPSB0aGlzLmhlYWRlcnMoKTtcbiAgICBjb25zdCBsZW4gPSBocy5sZW5ndGg7XG4gICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gbGVuOyBzdGVwKyspIHtcbiAgICAgIGNvbnN0IGlkeCA9IChpIC0gc3RlcCArIGxlbikgJSBsZW47XG4gICAgICBpZiAoIWhzW2lkeF0uZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0luZGV4KGlkeCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNJbmRleChpOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5oZWFkZXJzUmVmPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPVwidGFiXCJdJykgYXMgTm9kZUxpc3RPZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gICAgbGlzdD8uW2ldPy5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgY29uc3QgZWxzID0gQXJyYXkuZnJvbSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzZGMtdGFiLWl0ZW0nKSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICB0aGlzLndjRWxzLnNldChlbHMpO1xuICAgIHRoaXMuX2FjdGl2ZUluZGV4LnNldCh0aGlzLm5vcm1hbGl6ZUluZGV4KHRoaXMuX2FjdGl2ZUluZGV4KCkpKTtcbiAgICB0aGlzLnN5bmNIaWRkZW5BbmRBcmlhKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNIaWRkZW5BbmRBcmlhKCk6IHZvaWQge1xuICAgIGNvbnN0IGlkeCA9IHRoaXMuX2FjdGl2ZUluZGV4KCk7XG4gICAgY29uc3QgZWxzID0gdGhpcy53Y0VscygpO1xuICAgIGNvbnN0IGhzID0gdGhpcy5oZWFkZXJzKCk7XG4gICAgZWxzLmZvckVhY2goKGVsLCBpKSA9PiB7XG4gICAgICBjb25zdCBoZHIgPSBoc1tpXTtcbiAgICAgIGNvbnN0IHBhbmVsSWQgPSAoKGhkcj8uaWQgPz8gYHRhYi0ke2l9YCkgKyAnLXBhbmVsJyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAndGFicGFuZWwnKTtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnaWQnLCBwYW5lbElkKTtcbiAgICAgIGlmIChoZHIpIGVsLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JywgaGRyLmlkKTtcbiAgICAgIGlmIChpID09PSBpZHgpIGVsLnJlbW92ZUF0dHJpYnV0ZSgnaGlkZGVuJyk7XG4gICAgICBlbHNlIGVsLnNldEF0dHJpYnV0ZSgnaGlkZGVuJywgJycpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVJbmRleCh2OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGxlbiA9IHRoaXMud2NFbHMoKS5sZW5ndGg7XG4gICAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIDA7XG4gICAgY29uc3QgbiA9IE51bWJlci5pc0Zpbml0ZSh2KSA/IE1hdGgudHJ1bmModikgOiAwO1xuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCgwLCBuKSwgbGVuIC0gMSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQm9vbCh2OiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKHYgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IHMgPSB2LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBzID09PSAnJyB8fCBzID09PSAndHJ1ZScgfHwgcyA9PT0gJzEnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLXRhYlwiIFtjbGFzcy5zZGMtdGFiLXN0YWNrXT1cImlzTW9iaWxlXCI+XG4gIDxkaXYgI2hlYWRlcnNSZWYgY2xhc3M9XCJzZGMtdGFiLWhlYWRlcnNcIiByb2xlPVwidGFibGlzdFwiIGFyaWEtbGFiZWw9XCJUYWJzXCI+XG4gICAgQGZvciAoaCBvZiBoZWFkZXJzKCk7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2RjLXRhYi1oZWFkZXJcIlxuICAgICAgICBbY2xhc3Muc2RjLXRhYi1oZWFkZXItYWN0aXZlXT1cImkgPT09IGFjdGl2ZUluZGV4XCJcbiAgICAgICAgW2NsYXNzLnNkYy10YWItaGVhZGVyLWRpc2FibGVkXT1cImguZGlzYWJsZWRcIlxuICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJoLmRpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpID09PSBhY3RpdmVJbmRleFwiXG4gICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaC5pZCArICctcGFuZWwnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJoLmRpc2FibGVkXCJcbiAgICAgICAgW2lkXT1cImguaWRcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiaC5kaXNhYmxlZCA/IC0xIDogKGkgPT09IGFjdGl2ZUluZGV4ID8gMCA6IC0xKVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoaSlcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbkhlYWRlcktleWRvd24oJGV2ZW50LCBpKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWItbGFiZWxcIj57eyBoLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic2RjLXRhYi1wYW5lbHNcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvdGFiL3RhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RhYi90YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7O0FBV3ZCLE1BQU0sT0FBTyxZQUFZO0lBQ2YsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQTRCLENBQUM7SUFDckQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFZixVQUFVLENBQThCO0lBRXpELFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakMsSUFDSSxXQUFXLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUFFLE9BQU87WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFUyxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXpDLFFBQVEsR0FBRyxRQUFRLEVBQUUsQ0FBQztJQUU5QixLQUFLLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUN2QixPQUFPLEdBQUcsUUFBUSxDQUFjLEdBQUcsRUFBRSxDQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQixLQUFLLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsRUFBRTtRQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxFQUFFO0tBQ3hDLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFFTSxFQUFFLENBQW9CO0lBRWIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDNUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sTUFBTSxDQUFDLENBQVM7UUFDckIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQ3JDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxDQUFnQixFQUFFLENBQVM7UUFDaEQsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUM5QyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFTO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3RCLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFTO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3RCLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ25DLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsQ0FBUztRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQWtDLENBQUM7UUFDOUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBa0IsQ0FBQztRQUNsRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUNyRCxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMvQixJQUFJLEdBQUc7Z0JBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztnQkFDdkMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLENBQVM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFnQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDL0MsQ0FBQzt3R0F2SlUsWUFBWTs0RkFBWixZQUFZLGlHQVNILGVBQWUsNExDekNyQyxzN0JBMEJBLHNpRURBWSxZQUFZOzs0RkFNWCxZQUFZO2tCQVR4QixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFPaEIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUtuQixXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQWUzQixpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFiSGVhZGVyIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy90YWIudHlwZSc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtdGFiJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGhvc3QgPSBpbmplY3QoRWxlbWVudFJlZikgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgQFZpZXdDaGlsZCgnaGVhZGVyc1JlZicpIGhlYWRlcnNSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlIF9hY3RpdmVJbmRleCA9IHNpZ25hbCgwKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBzZXQgYWN0aXZlSW5kZXgodjogbnVtYmVyKSB7XG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICBjb25zdCBpZHggPSB0aGlzLm5vcm1hbGl6ZUluZGV4KHYpO1xuICAgICAgaWYgKGlkeCA9PT0gdGhpcy5fYWN0aXZlSW5kZXgoKSkgcmV0dXJuO1xuICAgICAgdGhpcy5fYWN0aXZlSW5kZXguc2V0KGlkeCk7XG4gICAgICB0aGlzLnN5bmNIaWRkZW5BbmRBcmlhKCk7XG4gICAgICB0aGlzLmFjdGl2ZUluZGV4Q2hhbmdlLmVtaXQodGhpcy5fYWN0aXZlSW5kZXgoKSk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cbiAgZ2V0IGFjdGl2ZUluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUluZGV4KCk7XG4gIH1cblxuICBAT3V0cHV0KCkgYWN0aXZlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNNb2JpbGUgPSBpc01vYmlsZSgpO1xuXG4gIHByaXZhdGUgd2NFbHMgPSBzaWduYWw8SFRNTEVsZW1lbnRbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVhZGVycyA9IGNvbXB1dGVkPFRhYkhlYWRlcltdPigoKSA9PlxuICAgIHRoaXMud2NFbHMoKS5tYXAoKGVsLCBpKSA9PiAoe1xuICAgICAgbGFiZWw6IGVsLmdldEF0dHJpYnV0ZSgnbGFiZWwnKSA/PyBgVGFiICR7aX1gLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMucGFyc2VCb29sKGVsLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSksXG4gICAgICBpZDogZWwuZ2V0QXR0cmlidXRlKCdpZCcpID8/IGB0YWItJHtpfWAsXG4gICAgfSkpXG4gICk7XG5cbiAgcHJpdmF0ZSBtbz86IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaGVhZGVyc0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy5oZWFkZXJzKCk7XG4gICAgdGhpcy5zeW5jSGlkZGVuQW5kQXJpYSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9KTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoQ2hpbGRyZW4oKTtcblxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLm1vID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gdGhpcy5yZWZyZXNoQ2hpbGRyZW4oKSk7XG4gICAgICB0aGlzLm1vLm9ic2VydmUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiBmYWxzZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubW8/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoaTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgaHMgPSB0aGlzLmhlYWRlcnMoKTtcbiAgICBpZiAoIWhzW2ldIHx8IGhzW2ldLmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKGkgIT09IHRoaXMuX2FjdGl2ZUluZGV4KCkpIHtcbiAgICAgIHRoaXMuX2FjdGl2ZUluZGV4LnNldChpKTtcbiAgICAgIHRoaXMuc3luY0hpZGRlbkFuZEFyaWEoKTtcbiAgICAgIHRoaXMuYWN0aXZlSW5kZXhDaGFuZ2UuZW1pdChpKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25IZWFkZXJLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQsIGk6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmZvY3VzTmV4dChpKTtcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5mb2N1c1ByZXYoaSk7XG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmZvY3VzSW5kZXgoMCk7XG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0VuZCcpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuZm9jdXNJbmRleCh0aGlzLmhlYWRlcnMoKS5sZW5ndGggLSAxKTtcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0KGkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNOZXh0KGk6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGhzID0gdGhpcy5oZWFkZXJzKCk7XG4gICAgY29uc3QgbGVuID0gaHMubGVuZ3RoO1xuICAgIGZvciAobGV0IHN0ZXAgPSAxOyBzdGVwIDw9IGxlbjsgc3RlcCsrKSB7XG4gICAgICBjb25zdCBpZHggPSAoaSArIHN0ZXApICUgbGVuO1xuICAgICAgaWYgKCFoc1tpZHhdLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbmRleChpZHgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzUHJldihpOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBocyA9IHRoaXMuaGVhZGVycygpO1xuICAgIGNvbnN0IGxlbiA9IGhzLmxlbmd0aDtcbiAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSBsZW47IHN0ZXArKykge1xuICAgICAgY29uc3QgaWR4ID0gKGkgLSBzdGVwICsgbGVuKSAlIGxlbjtcbiAgICAgIGlmICghaHNbaWR4XS5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvY3VzSW5kZXgoaWR4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0luZGV4KGk6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmhlYWRlcnNSZWY/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW3JvbGU9XCJ0YWJcIl0nKSBhcyBOb2RlTGlzdE9mPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBsaXN0Py5baV0/LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hDaGlsZHJlbigpOiB2b2lkIHtcbiAgICBjb25zdCBlbHMgPSBBcnJheS5mcm9tKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NkYy10YWItaXRlbScpKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIHRoaXMud2NFbHMuc2V0KGVscyk7XG4gICAgdGhpcy5fYWN0aXZlSW5kZXguc2V0KHRoaXMubm9ybWFsaXplSW5kZXgodGhpcy5fYWN0aXZlSW5kZXgoKSkpO1xuICAgIHRoaXMuc3luY0hpZGRlbkFuZEFyaWEoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0hpZGRlbkFuZEFyaWEoKTogdm9pZCB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5fYWN0aXZlSW5kZXgoKTtcbiAgICBjb25zdCBlbHMgPSB0aGlzLndjRWxzKCk7XG4gICAgY29uc3QgaHMgPSB0aGlzLmhlYWRlcnMoKTtcbiAgICBlbHMuZm9yRWFjaCgoZWwsIGkpID0+IHtcbiAgICAgIGNvbnN0IGhkciA9IGhzW2ldO1xuICAgICAgY29uc3QgcGFuZWxJZCA9ICgoaGRyPy5pZCA/PyBgdGFiLSR7aX1gKSArICctcGFuZWwnKTtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgncm9sZScsICd0YWJwYW5lbCcpO1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCdpZCcsIHBhbmVsSWQpO1xuICAgICAgaWYgKGhkcikgZWwuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknLCBoZHIuaWQpO1xuICAgICAgaWYgKGkgPT09IGlkeCkgZWwucmVtb3ZlQXR0cmlidXRlKCdoaWRkZW4nKTtcbiAgICAgIGVsc2UgZWwuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAnJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUluZGV4KHY6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbGVuID0gdGhpcy53Y0VscygpLmxlbmd0aDtcbiAgICBpZiAobGVuID09PSAwKSByZXR1cm4gMDtcbiAgICBjb25zdCBuID0gTnVtYmVyLmlzRmluaXRlKHYpID8gTWF0aC50cnVuYyh2KSA6IDA7XG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KDAsIG4pLCBsZW4gLSAxKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VCb29sKHY6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAodiA9PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcyA9IHYudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHMgPT09ICcnIHx8IHMgPT09ICd0cnVlJyB8fCBzID09PSAnMSc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtdGFiXCIgW2NsYXNzLnNkYy10YWItc3RhY2tdPVwiaXNNb2JpbGVcIj5cbiAgPGRpdiAjaGVhZGVyc1JlZiBjbGFzcz1cInNkYy10YWItaGVhZGVyc1wiIHJvbGU9XCJ0YWJsaXN0XCIgYXJpYS1sYWJlbD1cIlRhYnNcIj5cbiAgICBAZm9yIChoIG9mIGhlYWRlcnMoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGkpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzZGMtdGFiLWhlYWRlclwiXG4gICAgICAgIFtjbGFzcy5zZGMtdGFiLWhlYWRlci1hY3RpdmVdPVwiaSA9PT0gYWN0aXZlSW5kZXhcIlxuICAgICAgICBbY2xhc3Muc2RjLXRhYi1oZWFkZXItZGlzYWJsZWRdPVwiaC5kaXNhYmxlZFwiXG4gICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImguZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImkgPT09IGFjdGl2ZUluZGV4XCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJoLmlkICsgJy1wYW5lbCdcIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImguZGlzYWJsZWRcIlxuICAgICAgICBbaWRdPVwiaC5pZFwiXG4gICAgICAgIFt0YWJpbmRleF09XCJoLmRpc2FibGVkID8gLTEgOiAoaSA9PT0gYWN0aXZlSW5kZXggPyAwIDogLTEpXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdChpKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uSGVhZGVyS2V5ZG93bigkZXZlbnQsIGkpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYi1sYWJlbFwiPnt7IGgubGFiZWwgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtdGFiLXBhbmVsc1wiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,12 +1,12 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { isMobile } from 'lib/src/core/utils/layout.util';
2
+ import { isMobile } from '../../core/utils/layout.util';
3
3
  import { SearchboxComponent } from '../searchbox/searchbox.component';
4
4
  import { ButtonComponent } from '../button/button.component';
5
5
  import { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';
6
6
  import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
7
7
  import { PaginatorComponent } from '../paginator/paginator.component';
8
8
  import { Component, EventEmitter, Input, Output, signal, computed, ViewEncapsulation } from '@angular/core';
9
- import { DEFAULT_TABLE_OPTIONS } from 'lib/src/core/types/table.types';
9
+ import { DEFAULT_TABLE_OPTIONS } from '../../core/types/table.type';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/common";
12
12
  import * as i2 from "@seniorsistemas/angular-components/loading-state";
@@ -244,10 +244,10 @@ export class TableComponent {
244
244
  const actVal = actKey ? String(this._(row, actKey) ?? '') : '';
245
245
  return [String(opt?.label ?? ''), String(opt?.icon ?? ''), String(opt?.priority ?? ''), String(opt?.size ?? ''), String(opt?.tooltip ?? ''), actVal].join('|');
246
246
  }
247
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
248
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TableComponent, isStandalone: true, selector: "sdc-table", inputs: { cols: "cols", data: "data", loading: "loading", config: "config" }, outputs: { action: "action" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sdc-table\"\n [class.sdc-table-stack]=\"isMobile ? 'stack' : 'grid'\"\n [class.sdc-table-filtered]=\"!!globalFilter().trim()\"\n>\n <div class=\"sdc-table-caption\" *ngIf=\"showSearch()\">\n <div [style.width]=\"isMobile ? '100%' : '20%'\">\n <sdc-searchbox\n [disabled]=\"loading\"\n [placeholder]=\"searchPlaceholder()\"\n [triggerMode]=\"triggerMode()\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onClearSearch()\"\n />\n </div>\n </div>\n\n <table class=\"sdc-table-grid\">\n <thead>\n <tr>\n @for (col of cols; let i = $index; track i) {\n <th\n [class.sdc-table-th-checkbox]=\"col.type === 'checkbox-selection'\"\n (click)=\"toggleSort(col.field!, col.sortable !== false)\"\n [class.sdc-table-sortable]=\"col.sortable !== false\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n >\n <div class=\"sdc-table-th-inner\" [class.sdc-table-sortable]=\"col.sortable !== false\">\n @switch (col.type) { @case ('checkbox-selection') {\n <span class=\"sdc-table-th-label\">{{ col.header }}</span>\n } @default {\n <span class=\"sdc-table-th-label\">{{ col.header }}</span>\n <span class=\"sdc-table-sort-icons sdc-table-sort-overlay\" *ngIf=\"col.sortable !== false\">\n <ng-container [ngTemplateOutlet]=\"sortIconsTpl\" [ngTemplateOutletContext]=\"{ col: col }\"></ng-container>\n </span>\n } }\n </div>\n <span\n class=\"sdc-table-th-center\"\n *ngIf=\"col.type === 'checkbox-selection' && (cellCfg('checkbox').selectAll ?? true)\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isPageFullySelected()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectPage(getCheckedValue($event))\"\n />\n </span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (loading) { } @else { @for (row of pageData(); let r = $index; track r) {\n <tr>\n @for (col of cols; let c = $index; track c) {\n <ng-container *ngIf=\"isMobile; else desktopContent\">\n <div class=\"sdc-table-td-mobile\">\n <ng-container [ngTemplateOutlet]=\"sortIconsTpl\" [ngTemplateOutletContext]=\"{ col: col }\"></ng-container>\n <td\n class=\"sdc-table-td sdc-table-tdc sdc-table-mobile-td\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.data-title]=\"col.header\"\n (click)=\"toggleSort(col.field!, col.sortable !== false)\"\n >\n <div class=\"sdc-table-td-val\">\n <ng-container\n [ngTemplateOutlet]=\"cellTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, col: col }\"\n ></ng-container>\n </div>\n </td>\n </div>\n </ng-container>\n <ng-template #desktopContent>\n <td\n class=\"sdc-table-td sdc-table-tdc\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.data-title]=\"col.header\"\n >\n <div class=\"sdc-table-td-val\">\n <ng-container\n [ngTemplateOutlet]=\"cellTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, col: col }\"\n ></ng-container>\n </div>\n </td>\n </ng-template>\n }\n </tr>\n } }\n </tbody>\n </table>\n\n <s-empty-state\n *ngIf=\"!loading && options().empty?.show !== false && totalRecords() === 0\"\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n >\n </s-empty-state>\n\n <s-loading-state *ngIf=\"loading\" [loading]=\"loading\" [blockWindow]=\"false\" class=\"sdc-table-loading-state\">\n </s-loading-state>\n\n <div class=\"sdc-table-paginator\" *ngIf=\"showPaginator()\">\n <sdc-paginator\n [first]=\"first()\"\n [rows]=\"rows()\"\n [totalRecords]=\"totalRecords()\"\n [rowsPerPageOptions]=\"isMobile ? undefined : rowsPerPageOptions()\"\n [isMobile]=\"isMobile\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onPageChange($event)\"\n ></sdc-paginator>\n </div>\n\n <ng-template #cellTpl let-row let-col=\"col\">\n @switch (col.type) { @case ('checkbox-selection') {\n <ng-container *ngIf=\"cellCfg('checkbox') as checkboxOptions\">\n <div class=\"sdc-table-checkbox\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"onToggleRow(row, getCheckedValue($event))\" />\n <label>{{ _(row, col.field) }}</label>\n </div>\n </ng-container>\n } @case ('date') {\n {{ formatDate(_(row, col.field), col.format || 'shortDate') }}\n } @case ('strong') {\n <div class=\"sdc-table-strong-label\">{{ _(row, col.field) }}</div>\n } @case ('code') {\n <code class=\"sdc-table-code-label\">{{ _(row, col.field) }}</code>\n } @case ('currency') {\n {{ formatCurrency(_(row, col.field), col.format || 'BRL') }}\n } @case ('tag') {\n <ng-container *ngIf=\"cellCfg('tag') as tagOptions\">\n <div class=\"sdc-table-tags\">\n @for (tag of tagsOf(row, col); let t = $index; track t) {\n <span\n class=\"sdc-table-tag\"\n [style.background]=\"tagOptions.backgroundColor || null\"\n [style.color]=\"tagOptions.color || null\"\n [attr.title]=\"tagOptions.tooltip\"\n >\n <i *ngIf=\"tagOptions.icon\" [class]=\"tagOptions.icon\"></i>\n {{ tag }}\n </span>\n }\n </div>\n </ng-container>\n } @case ('button') {\n <ng-container *ngIf=\"cellCfg('button') as buttonOptions\">\n <ng-container *ngFor=\"let __k of [buttonKey(row, col, buttonOptions)]\">\n <div class=\"sdc-table-button\">\n <sdc-button\n style=\"max-width: 70%\"\n [size]=\"buttonOptions.size\"\n [priority]=\"buttonOptions.priority || 'primary'\"\n [icon]=\"buttonOptions.icon\"\n [label]=\"buttonOptions.label\"\n [disabled]=\"buttonOptions.disabled\"\n [title]=\"buttonOptions.tooltip\"\n [attr.size]=\"buttonOptions.size\"\n [attr.priority]=\"buttonOptions.priority || 'primary'\"\n [attr.severity]=\"buttonOptions.priority || 'primary'\"\n [attr.icon]=\"buttonOptions.icon\"\n [attr.label]=\"buttonOptions.label\"\n [attr.disabled]=\"buttonOptions.disabled ? '' : null\"\n [attr.title]=\"buttonOptions.tooltip || null\"\n [attr.data-key]=\"__k\"\n (click)=\"buttonOptions.disabled ? null : onButtonClick(row, col)\"\n ></sdc-button>\n </div>\n </ng-container>\n </ng-container>\n } @default { {{ _(row, col.field) }} } }\n </ng-template>\n</div>\n\n<ng-template #sortIconsTpl let-col=\"col\">\n <span *ngIf=\"col.sortable !== false && col.type !== 'checkbox-selection'\" class=\"sdc-table-sort-indicator\">\n <i *ngIf=\"sortField() !== col.field\" class=\"fas fa-sort-alt sdc-table-sort-neutral\"></i>\n <i\n *ngIf=\"sortField() === col.field && sortOrder() === 1\"\n class=\"fas fa-sort-amount-up-alt sdc-table-sort-active\"\n ></i>\n <i\n *ngIf=\"sortField() === col.field && sortOrder() === -1\"\n class=\"fas fa-sort-amount-down sdc-table-sort-active\"\n ></i>\n </span>\n <span\n *ngIf=\"col.sortable === false || col.type === 'checkbox-selection'\"\n class=\"sdc-table-sort-indicator sdc-table-sort-indicator-placeholder\"\n ></span>\n</ng-template>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}@media (max-width: 750px){.sdc-table-tag{font-size:.7rem;padding:.6rem .8rem}.sdc-table-sort-indicator-placeholder{display:none!important;width:0!important;height:0!important;min-width:0!important}.sdc-table-paginator{justify-content:center!important}.sdc-table-sort-indicator{gap:.15rem;min-width:1.2rem;position:absolute;left:21px}.sdc-table-sort-indicator i{font-size:.75rem;width:.65rem}.sdc-table-td-val{background:none!important;height:100%;padding:1rem;justify-content:end;border-left:1px solid var(--sdc-formfield-default-border);display:flex;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.sdc-table-td-mobile{border-top:1px solid var(--sdc-formfield-default-border);display:flex;align-items:center;padding-left:10px}.sdc-table.sdc-table-stack thead{display:none}.sdc-table.sdc-table-stack .sdc-table-grid,.sdc-table.sdc-table-stack .sdc-table-grid tbody,.sdc-table.sdc-table-stack .sdc-table-grid tr,.sdc-table.sdc-table-stack .sdc-table-grid td{display:block;width:100%;box-sizing:border-box}.sdc-table.sdc-table-stack .sdc-table-grid tr{border-top:1px solid var(--sdc-formfield-default-border);background:var(--sdc-table-bg-card)}.sdc-table.sdc-table-stack .sdc-table-td{position:relative;padding:0;border-bottom:1px solid var(--sdc-table-border-gray);display:grid!important;grid-template-columns:45% 55%;align-items:center;gap:var(--sdc-table-gap-th-inner)}.sdc-table.sdc-table-stack .sdc-table-td:before{content:attr(data-title);font-weight:600;padding:var(--sdc-table-padding-cell) .5rem var(--sdc-table-padding-cell) var(--sdc-table-padding-cell);border-right:0px solid var(--sdc-formfield-default-border);word-break:break-word}.sdc-table.sdc-table-stack .sdc-table-td>*{grid-column:2;min-width:0}.sdc-table.sdc-table-stack .sdc-table-grid tr .sdc-table-td:last-child{border-bottom:0}.sdc-table.sdc-table-stack .sdc-table-sort-icons{flex-direction:column;line-height:.8}.sdc-table-paginator{border-top:1px solid var(--sdc-table-border-gray)}::ng-deep .p-paginator .p-paginator-next{border-width:1px 1px 1px 1px!important}}@media (min-width: 750px){.sdc-table-tag{font-size:.8rem;padding:.6rem 1.7rem}.sdc-table-sort-indicator-placeholder{width:1.4rem;height:1rem;display:inline-block}.sdc-table-grid thead th+th{border-left:1px solid var(--sdc-formfield-default-border)}}.sdc-table{width:100%;box-sizing:border-box;overflow:hidden;background:var(--sdc-table-bg-card)}.sdc-table .sdc-table-strong-label{font-weight:500;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.sdc-table .sdc-table-code-label{color:var(--sdc-tab-primary);overflow-wrap:anywhere;word-break:break-word;white-space:normal;max-width:100%;display:inline-block}.sdc-table-caption{width:100%;justify-content:end;display:flex;padding:.75rem 0}.sdc-table-grid{width:100%;border-collapse:collapse;table-layout:fixed}thead th{padding:var(--sdc-table-padding-cell);background:var(--sdc-table-bg-card);border-bottom:1px solid var(--sdc-formfield-default-border);-webkit-user-select:none;user-select:none;transition:background var(--sdc-table-transition-fast),border var(--sdc-table-transition-fast)}thead th.sdc-table-sortable{cursor:pointer}thead th.sdc-table-sortable:hover{background:var(--sdc-table-th-hover-bg)}thead th.sdc-table-is-selected{background:var(--sdc-table-th-selected-bg)!important}.sdc-table-sort-neutral{color:var(--sdc-table-sort-neutral)}.sdc-table-sort-active{color:var(--sdc-table-sort-active)}.sdc-table-th-inner{display:flex;align-items:center;gap:var(--sdc-table-gap-th-inner)}.sdc-table-sort-icons i{font-size:inherit;transition:color var(--sdc-table-transition-fast),transform var(--sdc-table-transition-fast),opacity var(--sdc-table-transition-fast)}tbody td{padding:var(--sdc-table-padding-cell);border-bottom:1px solid var(--sdc-table-border-gray);vertical-align:middle}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:var(--sdc-table-gap-tags)}.sdc-table-tag{display:inline-flex;align-items:center;gap:.25rem;border-radius:6px;background:var(--sdc-table-tag-bg)}.sdc-table-sort-indicator{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:1.7rem}.sdc-table-sort-indicator i{width:.75rem;text-align:center}.sdc-table-sort-overlay{position:relative}.sdc-table-paginator{padding:.5rem 0}.sdc-table-button,.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-empty-state{display:block;padding:12rem}.sdc-table-loading-state{background:var(--sdc-table-bg-loading);display:block;border-bottom:1px solid var(--sdc-formfield-default-border);min-width:10rem;padding:18.8rem 0rem}thead th.sdc-table-th-checkbox{position:relative}thead th.sdc-table-th-checkbox .sdc-table-th-center{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}thead th.sdc-table-th-checkbox .sdc-table-th-center input{pointer-events:auto}thead th.sdc-table-th-checkbox .sdc-table-th-inner{padding-right:.5rem}thead th.sdc-table-th-checkbox .sdc-table-th-label,thead .sdc-table-th-label{color:#333!important;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode"], outputs: ["onSearch", "onClear"] }, { kind: "component", type: PaginatorComponent, selector: "sdc-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "isMobile", "totalRecordsLabel"], outputs: ["pageChange"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["disabled", "width", "icon", "id", "label", "priority", "size", "type"], outputs: ["onClick"] }, { kind: "ngmodule", type: LoadingStateModule }, { kind: "component", type: i2.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }, { kind: "ngmodule", type: EmptyStateModule }, { kind: "component", type: i3.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }] });
247
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
248
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableComponent, isStandalone: true, selector: "sdc-table", inputs: { cols: "cols", data: "data", loading: "loading", config: "config" }, outputs: { action: "action" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sdc-table\"\n [class.sdc-table-stack]=\"isMobile ? 'stack' : 'grid'\"\n [class.sdc-table-filtered]=\"!!globalFilter().trim()\"\n>\n <div class=\"sdc-table-caption\" *ngIf=\"showSearch()\">\n <div [style.width]=\"isMobile ? '100%' : '20%'\">\n <sdc-searchbox\n [disabled]=\"loading\"\n [placeholder]=\"searchPlaceholder()\"\n [triggerMode]=\"triggerMode()\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onClearSearch()\"\n />\n </div>\n </div>\n\n <table class=\"sdc-table-grid\">\n <thead>\n <tr>\n @for (col of cols; let i = $index; track i) {\n <th\n [class.sdc-table-th-checkbox]=\"col.type === 'checkbox-selection'\"\n (click)=\"toggleSort(col.field!, col.sortable !== false)\"\n [class.sdc-table-sortable]=\"col.sortable !== false\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n >\n <div class=\"sdc-table-th-inner\" [class.sdc-table-sortable]=\"col.sortable !== false\">\n @switch (col.type) { @case ('checkbox-selection') {\n <span class=\"sdc-table-th-label\">{{ col.header }}</span>\n } @default {\n <span class=\"sdc-table-th-label\">{{ col.header }}</span>\n <span class=\"sdc-table-sort-icons sdc-table-sort-overlay\" *ngIf=\"col.sortable !== false\">\n <ng-container [ngTemplateOutlet]=\"sortIconsTpl\" [ngTemplateOutletContext]=\"{ col: col }\"></ng-container>\n </span>\n } }\n </div>\n <span\n class=\"sdc-table-th-center\"\n *ngIf=\"col.type === 'checkbox-selection' && (cellCfg('checkbox').selectAll ?? true)\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isPageFullySelected()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectPage(getCheckedValue($event))\"\n />\n </span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (loading) { } @else { @for (row of pageData(); let r = $index; track r) {\n <tr>\n @for (col of cols; let c = $index; track c) {\n <ng-container *ngIf=\"isMobile; else desktopContent\">\n <div class=\"sdc-table-td-mobile\">\n <ng-container [ngTemplateOutlet]=\"sortIconsTpl\" [ngTemplateOutletContext]=\"{ col: col }\"></ng-container>\n <td\n class=\"sdc-table-td sdc-table-tdc sdc-table-mobile-td\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.data-title]=\"col.header\"\n (click)=\"toggleSort(col.field!, col.sortable !== false)\"\n >\n <div class=\"sdc-table-td-val\">\n <ng-container\n [ngTemplateOutlet]=\"cellTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, col: col }\"\n ></ng-container>\n </div>\n </td>\n </div>\n </ng-container>\n <ng-template #desktopContent>\n <td\n class=\"sdc-table-td sdc-table-tdc\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.data-title]=\"col.header\"\n >\n <div class=\"sdc-table-td-val\">\n <ng-container\n [ngTemplateOutlet]=\"cellTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, col: col }\"\n ></ng-container>\n </div>\n </td>\n </ng-template>\n }\n </tr>\n } }\n </tbody>\n </table>\n\n <s-empty-state\n *ngIf=\"!loading && options().empty?.show !== false && totalRecords() === 0\"\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n >\n </s-empty-state>\n\n <s-loading-state *ngIf=\"loading\" [loading]=\"loading\" [blockWindow]=\"false\" class=\"sdc-table-loading-state\">\n </s-loading-state>\n\n <div class=\"sdc-table-paginator\" *ngIf=\"showPaginator()\">\n <sdc-paginator\n [first]=\"first()\"\n [rows]=\"rows()\"\n [totalRecords]=\"totalRecords()\"\n [rowsPerPageOptions]=\"isMobile ? undefined : rowsPerPageOptions()\"\n [isMobile]=\"isMobile\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onPageChange($event)\"\n ></sdc-paginator>\n </div>\n\n <ng-template #cellTpl let-row let-col=\"col\">\n @switch (col.type) { @case ('checkbox-selection') {\n <ng-container *ngIf=\"cellCfg('checkbox') as checkboxOptions\">\n <div class=\"sdc-table-checkbox\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"onToggleRow(row, getCheckedValue($event))\" />\n <label>{{ _(row, col.field) }}</label>\n </div>\n </ng-container>\n } @case ('date') {\n {{ formatDate(_(row, col.field), col.format || 'shortDate') }}\n } @case ('strong') {\n <div class=\"sdc-table-strong-label\">{{ _(row, col.field) }}</div>\n } @case ('code') {\n <code class=\"sdc-table-code-label\">{{ _(row, col.field) }}</code>\n } @case ('currency') {\n {{ formatCurrency(_(row, col.field), col.format || 'BRL') }}\n } @case ('tag') {\n <ng-container *ngIf=\"cellCfg('tag') as tagOptions\">\n <div class=\"sdc-table-tags\">\n @for (tag of tagsOf(row, col); let t = $index; track t) {\n <span\n class=\"sdc-table-tag\"\n [style.background]=\"tagOptions.backgroundColor || null\"\n [style.color]=\"tagOptions.color || null\"\n [attr.title]=\"tagOptions.tooltip\"\n >\n <i *ngIf=\"tagOptions.icon\" [class]=\"tagOptions.icon\"></i>\n {{ tag }}\n </span>\n }\n </div>\n </ng-container>\n } @case ('button') {\n <ng-container *ngIf=\"cellCfg('button') as buttonOptions\">\n <ng-container *ngFor=\"let __k of [buttonKey(row, col, buttonOptions)]\">\n <div class=\"sdc-table-button\">\n <sdc-button\n style=\"max-width: 70%\"\n [size]=\"buttonOptions.size\"\n [priority]=\"buttonOptions.priority || 'primary'\"\n [icon]=\"buttonOptions.icon\"\n [label]=\"buttonOptions.label\"\n [disabled]=\"buttonOptions.disabled\"\n [title]=\"buttonOptions.tooltip\"\n [attr.size]=\"buttonOptions.size\"\n [attr.priority]=\"buttonOptions.priority || 'primary'\"\n [attr.severity]=\"buttonOptions.priority || 'primary'\"\n [attr.icon]=\"buttonOptions.icon\"\n [attr.label]=\"buttonOptions.label\"\n [attr.disabled]=\"buttonOptions.disabled ? '' : null\"\n [attr.title]=\"buttonOptions.tooltip || null\"\n [attr.data-key]=\"__k\"\n (click)=\"buttonOptions.disabled ? null : onButtonClick(row, col)\"\n ></sdc-button>\n </div>\n </ng-container>\n </ng-container>\n } @default { {{ _(row, col.field) }} } }\n </ng-template>\n</div>\n\n<ng-template #sortIconsTpl let-col=\"col\">\n <span *ngIf=\"col.sortable !== false && col.type !== 'checkbox-selection'\" class=\"sdc-table-sort-indicator\">\n <i *ngIf=\"sortField() !== col.field\" class=\"fas fa-sort-alt sdc-table-sort-neutral\"></i>\n <i\n *ngIf=\"sortField() === col.field && sortOrder() === 1\"\n class=\"fas fa-sort-amount-up-alt sdc-table-sort-active\"\n ></i>\n <i\n *ngIf=\"sortField() === col.field && sortOrder() === -1\"\n class=\"fas fa-sort-amount-down sdc-table-sort-active\"\n ></i>\n </span>\n <span\n *ngIf=\"col.sortable === false || col.type === 'checkbox-selection'\"\n class=\"sdc-table-sort-indicator sdc-table-sort-indicator-placeholder\"\n ></span>\n</ng-template>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}@media (max-width: 750px){.sdc-table-tag{font-size:.7rem;padding:.6rem .8rem}.sdc-table-sort-indicator-placeholder{display:none!important;width:0!important;height:0!important;min-width:0!important}.sdc-table-paginator{justify-content:center!important}.sdc-table-sort-indicator{gap:.15rem;min-width:1.2rem;position:absolute;left:21px}.sdc-table-sort-indicator i{font-size:.75rem;width:.65rem}.sdc-table-td-val{background:none!important;height:100%;padding:1rem;justify-content:end;border-left:1px solid var(--sdc-formfield-default-border);display:flex;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.sdc-table-td-mobile{border-top:1px solid var(--sdc-formfield-default-border);display:flex;align-items:center;padding-left:10px}.sdc-table.sdc-table-stack thead{display:none}.sdc-table.sdc-table-stack .sdc-table-grid,.sdc-table.sdc-table-stack .sdc-table-grid tbody,.sdc-table.sdc-table-stack .sdc-table-grid tr,.sdc-table.sdc-table-stack .sdc-table-grid td{display:block;width:100%;box-sizing:border-box}.sdc-table.sdc-table-stack .sdc-table-grid tr{border-top:1px solid var(--sdc-formfield-default-border);background:var(--sdc-table-bg-card)}.sdc-table.sdc-table-stack .sdc-table-td{position:relative;padding:0;border-bottom:1px solid var(--sdc-table-border-gray);display:grid!important;grid-template-columns:45% 55%;align-items:center;gap:var(--sdc-table-gap-th-inner)}.sdc-table.sdc-table-stack .sdc-table-td:before{content:attr(data-title);font-weight:600;padding:var(--sdc-table-padding-cell) .5rem var(--sdc-table-padding-cell) var(--sdc-table-padding-cell);border-right:0px solid var(--sdc-formfield-default-border);word-break:break-word}.sdc-table.sdc-table-stack .sdc-table-td>*{grid-column:2;min-width:0}.sdc-table.sdc-table-stack .sdc-table-grid tr .sdc-table-td:last-child{border-bottom:0}.sdc-table.sdc-table-stack .sdc-table-sort-icons{flex-direction:column;line-height:.8}.sdc-table-paginator{border-top:1px solid var(--sdc-table-border-gray)}::ng-deep .p-paginator .p-paginator-next{border-width:1px 1px 1px 1px!important}}@media (min-width: 750px){.sdc-table-tag{font-size:.8rem;padding:.6rem 1.7rem}.sdc-table-sort-indicator-placeholder{width:1.4rem;height:1rem;display:inline-block}.sdc-table-grid thead th+th{border-left:1px solid var(--sdc-formfield-default-border)}}.sdc-table{width:100%;box-sizing:border-box;overflow:hidden;background:var(--sdc-table-bg-card)}.sdc-table .sdc-table-strong-label{font-weight:500;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.sdc-table .sdc-table-code-label{color:var(--sdc-tab-primary);overflow-wrap:anywhere;word-break:break-word;white-space:normal;max-width:100%;display:inline-block}.sdc-table-caption{width:100%;justify-content:end;display:flex;padding:.75rem 0}.sdc-table-grid{width:100%;border-collapse:collapse;table-layout:fixed}thead th{padding:var(--sdc-table-padding-cell);background:var(--sdc-table-bg-card);border-bottom:1px solid var(--sdc-formfield-default-border);-webkit-user-select:none;user-select:none;transition:background var(--sdc-table-transition-fast),border var(--sdc-table-transition-fast)}thead th.sdc-table-sortable{cursor:pointer}thead th.sdc-table-sortable:hover{background:var(--sdc-table-th-hover-bg)}thead th.sdc-table-is-selected{background:var(--sdc-table-th-selected-bg)!important}.sdc-table-sort-neutral{color:var(--sdc-table-sort-neutral)}.sdc-table-sort-active{color:var(--sdc-table-sort-active)}.sdc-table-th-inner{display:flex;align-items:center;gap:var(--sdc-table-gap-th-inner)}.sdc-table-sort-icons i{font-size:inherit;transition:color var(--sdc-table-transition-fast),transform var(--sdc-table-transition-fast),opacity var(--sdc-table-transition-fast)}tbody td{padding:var(--sdc-table-padding-cell);border-bottom:1px solid var(--sdc-table-border-gray);vertical-align:middle}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:var(--sdc-table-gap-tags)}.sdc-table-tag{display:inline-flex;align-items:center;gap:.25rem;border-radius:6px;background:var(--sdc-table-tag-bg)}.sdc-table-sort-indicator{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:1.7rem}.sdc-table-sort-indicator i{width:.75rem;text-align:center}.sdc-table-sort-overlay{position:relative}.sdc-table-paginator{padding:.5rem 0}.sdc-table-button,.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-empty-state{display:block;padding:12rem}.sdc-table-loading-state{background:var(--sdc-table-bg-loading);display:block;border-bottom:1px solid var(--sdc-formfield-default-border);min-width:10rem;padding:18.8rem 0rem}thead th.sdc-table-th-checkbox{position:relative}thead th.sdc-table-th-checkbox .sdc-table-th-center{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}thead th.sdc-table-th-checkbox .sdc-table-th-center input{pointer-events:auto}thead th.sdc-table-th-checkbox .sdc-table-th-inner{padding-right:.5rem}thead th.sdc-table-th-checkbox .sdc-table-th-label,thead .sdc-table-th-label{color:#333!important;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode"], outputs: ["onSearch", "onClear"] }, { kind: "component", type: PaginatorComponent, selector: "sdc-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "isMobile", "totalRecordsLabel"], outputs: ["pageChange"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["disabled", "width", "icon", "id", "label", "priority", "size", "type"], outputs: ["onClick"] }, { kind: "ngmodule", type: LoadingStateModule }, { kind: "component", type: i2.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }, { kind: "ngmodule", type: EmptyStateModule }, { kind: "component", type: i3.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }] });
249
249
  }
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableComponent, decorators: [{
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableComponent, decorators: [{
251
251
  type: Component,
252
252
  args: [{ selector: 'sdc-table', standalone: true, imports: [CommonModule, SearchboxComponent, PaginatorComponent, ButtonComponent, LoadingStateModule, EmptyStateModule], encapsulation: ViewEncapsulation.Emulated, template: "<div\n class=\"sdc-table\"\n [class.sdc-table-stack]=\"isMobile ? 'stack' : 'grid'\"\n [class.sdc-table-filtered]=\"!!globalFilter().trim()\"\n>\n <div class=\"sdc-table-caption\" *ngIf=\"showSearch()\">\n <div [style.width]=\"isMobile ? '100%' : '20%'\">\n <sdc-searchbox\n [disabled]=\"loading\"\n [placeholder]=\"searchPlaceholder()\"\n [triggerMode]=\"triggerMode()\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onClearSearch()\"\n />\n </div>\n </div>\n\n <table class=\"sdc-table-grid\">\n <thead>\n <tr>\n @for (col of cols; let i = $index; track i) {\n <th\n [class.sdc-table-th-checkbox]=\"col.type === 'checkbox-selection'\"\n (click)=\"toggleSort(col.field!, col.sortable !== false)\"\n [class.sdc-table-sortable]=\"col.sortable !== false\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n >\n <div class=\"sdc-table-th-inner\" [class.sdc-table-sortable]=\"col.sortable !== false\">\n @switch (col.type) { @case ('checkbox-selection') {\n <span class=\"sdc-table-th-label\">{{ col.header }}</span>\n } @default {\n <span class=\"sdc-table-th-label\">{{ col.header }}</span>\n <span class=\"sdc-table-sort-icons sdc-table-sort-overlay\" *ngIf=\"col.sortable !== false\">\n <ng-container [ngTemplateOutlet]=\"sortIconsTpl\" [ngTemplateOutletContext]=\"{ col: col }\"></ng-container>\n </span>\n } }\n </div>\n <span\n class=\"sdc-table-th-center\"\n *ngIf=\"col.type === 'checkbox-selection' && (cellCfg('checkbox').selectAll ?? true)\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isPageFullySelected()\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectPage(getCheckedValue($event))\"\n />\n </span>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (loading) { } @else { @for (row of pageData(); let r = $index; track r) {\n <tr>\n @for (col of cols; let c = $index; track c) {\n <ng-container *ngIf=\"isMobile; else desktopContent\">\n <div class=\"sdc-table-td-mobile\">\n <ng-container [ngTemplateOutlet]=\"sortIconsTpl\" [ngTemplateOutletContext]=\"{ col: col }\"></ng-container>\n <td\n class=\"sdc-table-td sdc-table-tdc sdc-table-mobile-td\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.data-title]=\"col.header\"\n (click)=\"toggleSort(col.field!, col.sortable !== false)\"\n >\n <div class=\"sdc-table-td-val\">\n <ng-container\n [ngTemplateOutlet]=\"cellTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, col: col }\"\n ></ng-container>\n </div>\n </td>\n </div>\n </ng-container>\n <ng-template #desktopContent>\n <td\n class=\"sdc-table-td sdc-table-tdc\"\n [class.sdc-table-td-checkbox]=\"col.type === 'checkbox-selection'\"\n [class.sdc-table-is-selected]=\"sortField() === col.field\"\n [attr.data-title]=\"col.header\"\n >\n <div class=\"sdc-table-td-val\">\n <ng-container\n [ngTemplateOutlet]=\"cellTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, col: col }\"\n ></ng-container>\n </div>\n </td>\n </ng-template>\n }\n </tr>\n } }\n </tbody>\n </table>\n\n <s-empty-state\n *ngIf=\"!loading && options().empty?.show !== false && totalRecords() === 0\"\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle()\"\n [description]=\"emptyText()\"\n class=\"sdc-table-empty-state\"\n >\n </s-empty-state>\n\n <s-loading-state *ngIf=\"loading\" [loading]=\"loading\" [blockWindow]=\"false\" class=\"sdc-table-loading-state\">\n </s-loading-state>\n\n <div class=\"sdc-table-paginator\" *ngIf=\"showPaginator()\">\n <sdc-paginator\n [first]=\"first()\"\n [rows]=\"rows()\"\n [totalRecords]=\"totalRecords()\"\n [rowsPerPageOptions]=\"isMobile ? undefined : rowsPerPageOptions()\"\n [isMobile]=\"isMobile\"\n [totalRecordsLabel]=\"totalRecordsLabel()\"\n (pageChange)=\"onPageChange($event)\"\n ></sdc-paginator>\n </div>\n\n <ng-template #cellTpl let-row let-col=\"col\">\n @switch (col.type) { @case ('checkbox-selection') {\n <ng-container *ngIf=\"cellCfg('checkbox') as checkboxOptions\">\n <div class=\"sdc-table-checkbox\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"onToggleRow(row, getCheckedValue($event))\" />\n <label>{{ _(row, col.field) }}</label>\n </div>\n </ng-container>\n } @case ('date') {\n {{ formatDate(_(row, col.field), col.format || 'shortDate') }}\n } @case ('strong') {\n <div class=\"sdc-table-strong-label\">{{ _(row, col.field) }}</div>\n } @case ('code') {\n <code class=\"sdc-table-code-label\">{{ _(row, col.field) }}</code>\n } @case ('currency') {\n {{ formatCurrency(_(row, col.field), col.format || 'BRL') }}\n } @case ('tag') {\n <ng-container *ngIf=\"cellCfg('tag') as tagOptions\">\n <div class=\"sdc-table-tags\">\n @for (tag of tagsOf(row, col); let t = $index; track t) {\n <span\n class=\"sdc-table-tag\"\n [style.background]=\"tagOptions.backgroundColor || null\"\n [style.color]=\"tagOptions.color || null\"\n [attr.title]=\"tagOptions.tooltip\"\n >\n <i *ngIf=\"tagOptions.icon\" [class]=\"tagOptions.icon\"></i>\n {{ tag }}\n </span>\n }\n </div>\n </ng-container>\n } @case ('button') {\n <ng-container *ngIf=\"cellCfg('button') as buttonOptions\">\n <ng-container *ngFor=\"let __k of [buttonKey(row, col, buttonOptions)]\">\n <div class=\"sdc-table-button\">\n <sdc-button\n style=\"max-width: 70%\"\n [size]=\"buttonOptions.size\"\n [priority]=\"buttonOptions.priority || 'primary'\"\n [icon]=\"buttonOptions.icon\"\n [label]=\"buttonOptions.label\"\n [disabled]=\"buttonOptions.disabled\"\n [title]=\"buttonOptions.tooltip\"\n [attr.size]=\"buttonOptions.size\"\n [attr.priority]=\"buttonOptions.priority || 'primary'\"\n [attr.severity]=\"buttonOptions.priority || 'primary'\"\n [attr.icon]=\"buttonOptions.icon\"\n [attr.label]=\"buttonOptions.label\"\n [attr.disabled]=\"buttonOptions.disabled ? '' : null\"\n [attr.title]=\"buttonOptions.tooltip || null\"\n [attr.data-key]=\"__k\"\n (click)=\"buttonOptions.disabled ? null : onButtonClick(row, col)\"\n ></sdc-button>\n </div>\n </ng-container>\n </ng-container>\n } @default { {{ _(row, col.field) }} } }\n </ng-template>\n</div>\n\n<ng-template #sortIconsTpl let-col=\"col\">\n <span *ngIf=\"col.sortable !== false && col.type !== 'checkbox-selection'\" class=\"sdc-table-sort-indicator\">\n <i *ngIf=\"sortField() !== col.field\" class=\"fas fa-sort-alt sdc-table-sort-neutral\"></i>\n <i\n *ngIf=\"sortField() === col.field && sortOrder() === 1\"\n class=\"fas fa-sort-amount-up-alt sdc-table-sort-active\"\n ></i>\n <i\n *ngIf=\"sortField() === col.field && sortOrder() === -1\"\n class=\"fas fa-sort-amount-down sdc-table-sort-active\"\n ></i>\n </span>\n <span\n *ngIf=\"col.sortable === false || col.type === 'checkbox-selection'\"\n class=\"sdc-table-sort-indicator sdc-table-sort-indicator-placeholder\"\n ></span>\n</ng-template>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}@media (max-width: 750px){.sdc-table-tag{font-size:.7rem;padding:.6rem .8rem}.sdc-table-sort-indicator-placeholder{display:none!important;width:0!important;height:0!important;min-width:0!important}.sdc-table-paginator{justify-content:center!important}.sdc-table-sort-indicator{gap:.15rem;min-width:1.2rem;position:absolute;left:21px}.sdc-table-sort-indicator i{font-size:.75rem;width:.65rem}.sdc-table-td-val{background:none!important;height:100%;padding:1rem;justify-content:end;border-left:1px solid var(--sdc-formfield-default-border);display:flex;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.sdc-table-td-mobile{border-top:1px solid var(--sdc-formfield-default-border);display:flex;align-items:center;padding-left:10px}.sdc-table.sdc-table-stack thead{display:none}.sdc-table.sdc-table-stack .sdc-table-grid,.sdc-table.sdc-table-stack .sdc-table-grid tbody,.sdc-table.sdc-table-stack .sdc-table-grid tr,.sdc-table.sdc-table-stack .sdc-table-grid td{display:block;width:100%;box-sizing:border-box}.sdc-table.sdc-table-stack .sdc-table-grid tr{border-top:1px solid var(--sdc-formfield-default-border);background:var(--sdc-table-bg-card)}.sdc-table.sdc-table-stack .sdc-table-td{position:relative;padding:0;border-bottom:1px solid var(--sdc-table-border-gray);display:grid!important;grid-template-columns:45% 55%;align-items:center;gap:var(--sdc-table-gap-th-inner)}.sdc-table.sdc-table-stack .sdc-table-td:before{content:attr(data-title);font-weight:600;padding:var(--sdc-table-padding-cell) .5rem var(--sdc-table-padding-cell) var(--sdc-table-padding-cell);border-right:0px solid var(--sdc-formfield-default-border);word-break:break-word}.sdc-table.sdc-table-stack .sdc-table-td>*{grid-column:2;min-width:0}.sdc-table.sdc-table-stack .sdc-table-grid tr .sdc-table-td:last-child{border-bottom:0}.sdc-table.sdc-table-stack .sdc-table-sort-icons{flex-direction:column;line-height:.8}.sdc-table-paginator{border-top:1px solid var(--sdc-table-border-gray)}::ng-deep .p-paginator .p-paginator-next{border-width:1px 1px 1px 1px!important}}@media (min-width: 750px){.sdc-table-tag{font-size:.8rem;padding:.6rem 1.7rem}.sdc-table-sort-indicator-placeholder{width:1.4rem;height:1rem;display:inline-block}.sdc-table-grid thead th+th{border-left:1px solid var(--sdc-formfield-default-border)}}.sdc-table{width:100%;box-sizing:border-box;overflow:hidden;background:var(--sdc-table-bg-card)}.sdc-table .sdc-table-strong-label{font-weight:500;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.sdc-table .sdc-table-code-label{color:var(--sdc-tab-primary);overflow-wrap:anywhere;word-break:break-word;white-space:normal;max-width:100%;display:inline-block}.sdc-table-caption{width:100%;justify-content:end;display:flex;padding:.75rem 0}.sdc-table-grid{width:100%;border-collapse:collapse;table-layout:fixed}thead th{padding:var(--sdc-table-padding-cell);background:var(--sdc-table-bg-card);border-bottom:1px solid var(--sdc-formfield-default-border);-webkit-user-select:none;user-select:none;transition:background var(--sdc-table-transition-fast),border var(--sdc-table-transition-fast)}thead th.sdc-table-sortable{cursor:pointer}thead th.sdc-table-sortable:hover{background:var(--sdc-table-th-hover-bg)}thead th.sdc-table-is-selected{background:var(--sdc-table-th-selected-bg)!important}.sdc-table-sort-neutral{color:var(--sdc-table-sort-neutral)}.sdc-table-sort-active{color:var(--sdc-table-sort-active)}.sdc-table-th-inner{display:flex;align-items:center;gap:var(--sdc-table-gap-th-inner)}.sdc-table-sort-icons i{font-size:inherit;transition:color var(--sdc-table-transition-fast),transform var(--sdc-table-transition-fast),opacity var(--sdc-table-transition-fast)}tbody td{padding:var(--sdc-table-padding-cell);border-bottom:1px solid var(--sdc-table-border-gray);vertical-align:middle}.sdc-table-tags{display:flex;flex-wrap:wrap;gap:var(--sdc-table-gap-tags)}.sdc-table-tag{display:inline-flex;align-items:center;gap:.25rem;border-radius:6px;background:var(--sdc-table-tag-bg)}.sdc-table-sort-indicator{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:1.7rem}.sdc-table-sort-indicator i{width:.75rem;text-align:center}.sdc-table-sort-overlay{position:relative}.sdc-table-paginator{padding:.5rem 0}.sdc-table-button,.sdc-table-checkbox{display:flex;align-items:center;justify-content:center}.sdc-table-empty-state{display:block;padding:12rem}.sdc-table-loading-state{background:var(--sdc-table-bg-loading);display:block;border-bottom:1px solid var(--sdc-formfield-default-border);min-width:10rem;padding:18.8rem 0rem}thead th.sdc-table-th-checkbox{position:relative}thead th.sdc-table-th-checkbox .sdc-table-th-center{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}thead th.sdc-table-th-checkbox .sdc-table-th-center input{pointer-events:auto}thead th.sdc-table-th-checkbox .sdc-table-th-inner{padding-right:.5rem}thead th.sdc-table-th-checkbox .sdc-table-th-label,thead .sdc-table-th-label{color:#333!important;white-space:nowrap}\n"] }]
253
253
  }], propDecorators: { cols: [{
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
265
265
  }], action: [{
266
266
  type: Output
267
267
  }] } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBOEQsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEssT0FBTyxFQUFFLHFCQUFxQixFQUFxRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQVcxSSxNQUFNLE9BQU8sY0FBYztJQUNFLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQ3pCLElBQUksR0FBUSxFQUFFLENBQUM7SUFDZCxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLE1BQU0sR0FBaUIscUJBQXFCLENBQUM7SUFFL0QsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFtRCxDQUFDO0lBRXBFLFFBQVEsR0FBWSxRQUFRLEVBQUUsQ0FBQztJQUUvQixVQUFVLEdBQUcsUUFBUSxDQUFVLEdBQUcs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RSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNHLE9BQU87c0JBQWxDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNFLE1BQU07c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICdsaWIvc3JjL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwnO1xuaW1wb3J0IHsgU2VhcmNoYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdG9yU3RhdGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9lbXB0eS1zdGF0ZSc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUnO1xuaW1wb3J0IHsgUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIHNpZ25hbCwgY29tcHV0ZWQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgRG9DaGVjaywgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBERUZBVUxUX1RBQkxFX09QVElPTlMsIHR5cGUgUm93QmFzZSwgdHlwZSBTb3J0T3JkZXIsIHR5cGUgVGFibGVDb2x1bW4sIHR5cGUgVGFibGVPcHRpb25zIH0gZnJvbSAnbGliL3NyYy9jb3JlL3R5cGVzL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IHR5cGUgU2VhcmNoVHJpZ2dlck1vZGUgfSBmcm9tICdsaWIvc3JjL2NvcmUvdHlwZXMvc2VhcmNoYm94LnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTZWFyY2hib3hDb21wb25lbnQsIFBhZ2luYXRvckNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBMb2FkaW5nU3RhdGVNb2R1bGUsIEVtcHR5U3RhdGVNb2R1bGVdLFxuICBzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgRG9DaGVjayB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbHM6IFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZGF0YTogVFtdID0gW107XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBjb25maWc6IFRhYmxlT3B0aW9ucyA9IERFRkFVTFRfVEFCTEVfT1BUSU9OUztcblxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IGNvbHVtbjogVGFibGVDb2x1bW47IHJvdzogVDsgdmFsdWU6IHVua25vd24gfT4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4gPSBpc01vYmlsZSgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93U2VhcmNoID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKCkuc2VhcmNoPy5zaG93ID8/IGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dQYWdpbmF0b3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5wYWdpbmF0aW9uPy5zaG93ID8/IGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm93c1BlclBhZ2VPcHRpb25zID0gY29tcHV0ZWQ8bnVtYmVyW10+KCgpID0+IHRoaXMub3B0aW9ucygpLnBhZ2luYXRpb24/LnJvd3NQZXJQYWdlT3B0aW9ucyA/PyBbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWFyY2hQbGFjZWhvbGRlciA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKCkuc2VhcmNoPy5wbGFjZWhvbGRlciA/PyAnJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0cmlnZ2VyTW9kZSA9IGNvbXB1dGVkPFNlYXJjaFRyaWdnZXJNb2RlPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5zZWFyY2g/LnR5cGUgPz8gJ2F1dG8nKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvdGFsUmVjb3Jkc0xhYmVsID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKS50YWJsZT8udG90YWxSZWNvcmRzTGFiZWwgPz8gJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1wdHlUaXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKCkuZW1wdHk/LnRpdGxlID8/ICcnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVtcHR5VGV4dCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKCkuZW1wdHk/LnRleHQgPz8gJycpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gc2lnbmFsPFRhYmxlT3B0aW9ucz4oREVGQVVMVF9UQUJMRV9PUFRJT05TKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdsb2JhbEZpbHRlciA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNvcnRGaWVsZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNvcnRPcmRlciA9IHNpZ25hbDxTb3J0T3JkZXI+KDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0aW9uID0gc2lnbmFsPFRbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlyc3QgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvd3MgPSBzaWduYWw8bnVtYmVyPihERUZBVUxUX1RBQkxFX09QVElPTlMucGFnaW5hdGlvbj8ucm93c1BlclBhZ2UgPz8gMTApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmaWx0ZXJlZERhdGEgPSBjb21wdXRlZDxUW10+KCgpID0+IHtcbiAgICBjb25zdCBxID0gdGhpcy5nbG9iYWxGaWx0ZXIoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXEpIHsgcmV0dXJuIHRoaXMuZGF0YTsgfVxuICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuY29scy5maWx0ZXIoYyA9PiAoYyBhcyBhbnkpLnNlYXJjaGFibGUgPz8gdHJ1ZSkuZmlsdGVyKGMgPT4gISFjLmZpZWxkKS5tYXAoYyA9PiBjLmZpZWxkISkgYXMgc3RyaW5nW107XG4gICAgaWYgKGZpZWxkcy5sZW5ndGggPT09IDApIHsgcmV0dXJuIHRoaXMuZGF0YTsgfVxuICAgIHJldHVybiB0aGlzLmRhdGEuZmlsdGVyKHJvdyA9PlxuICAgICAgZmllbGRzLnNvbWUoZiA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLl8ocm93LCBmKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHsgcmV0dXJuIHYuam9pbignICcpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSk7IH1cbiAgICAgICAgcmV0dXJuIFN0cmluZyh2ID8/ICcnKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpO1xuICAgICAgfSlcbiAgICApO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydGVkRGF0YSA9IGNvbXB1dGVkPFRbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5zb3J0RmllbGQoKTtcbiAgICBjb25zdCBvcmRlciA9IHRoaXMuc29ydE9yZGVyKCk7XG4gICAgY29uc3QgYXJyID0gWy4uLnRoaXMuZmlsdGVyZWREYXRhKCldO1xuICAgIGlmICghZmllbGQgfHwgb3JkZXIgPT09IDApIHsgcmV0dXJuIGFycjsgfVxuICAgIHJldHVybiBhcnIuc29ydCgoYSwgYikgPT4ge1xuICAgICAgY29uc3QgdmEgPSB0aGlzLl8oYSwgZmllbGQpO1xuICAgICAgY29uc3QgdmIgPSB0aGlzLl8oYiwgZmllbGQpO1xuICAgICAgaWYgKHZhID09IG51bGwgJiYgdmIgPT0gbnVsbCkgeyByZXR1cm4gMDsgfVxuICAgICAgaWYgKHZhID09IG51bGwpIHsgcmV0dXJuIC1vcmRlcjsgfVxuICAgICAgaWYgKHZiID09IG51bGwpIHsgcmV0dXJuIG9yZGVyOyB9XG4gICAgICBpZiAodHlwZW9mIHZhID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmIgPT09ICdudW1iZXInKSB7IHJldHVybiAodmEgLSB2YikgKiBvcmRlcjsgfVxuICAgICAgcmV0dXJuIFN0cmluZyh2YSkubG9jYWxlQ29tcGFyZShTdHJpbmcodmIpKSAqIG9yZGVyO1xuICAgIH0pO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG90YWxSZWNvcmRzID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB0aGlzLnNvcnRlZERhdGEoKS5sZW5ndGgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYWdlRGF0YSA9IGNvbXB1dGVkPFRbXT4oKCkgPT4ge1xuICAgIGlmICghdGhpcy5zaG93UGFnaW5hdG9yKCkpIHJldHVybiB0aGlzLnNvcnRlZERhdGEoKTtcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuZmlyc3QoKTtcbiAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMucm93cygpO1xuICAgIHJldHVybiB0aGlzLnNvcnRlZERhdGEoKS5zbGljZShzdGFydCwgZW5kKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBjb25maWdIYXNoID0gJyc7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydjb25maWcnXSkge1xuICAgICAgdGhpcy5hcHBseUNvbmZpZ09wdGlvbnMoKTtcbiAgICAgIHRoaXMucm93cy5zZXQodGhpcy5vcHRpb25zKCkucGFnaW5hdGlvbj8ucm93c1BlclBhZ2UgPz8gMTApO1xuICAgICAgdGhpcy5maXJzdC5zZXQoMCk7XG4gICAgICB0aGlzLmNvbmZpZ0hhc2ggPSB0aGlzLnN0YWJsZVN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRIYXNoID0gdGhpcy5zdGFibGVTdHJpbmdpZnkodGhpcy5jb25maWcpO1xuICAgIGlmIChuZXh0SGFzaCAhPT0gdGhpcy5jb25maWdIYXNoKSB7XG4gICAgICB0aGlzLmNvbmZpZ0hhc2ggPSBuZXh0SGFzaDtcbiAgICAgIHRoaXMuYXBwbHlDb25maWdPcHRpb25zKCk7XG4gICAgICB0aGlzLnJvd3Muc2V0KHRoaXMub3B0aW9ucygpLnBhZ2luYXRpb24/LnJvd3NQZXJQYWdlID8/IDEwKTtcbiAgICAgIHRoaXMuZmlyc3Quc2V0KDApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvblNlYXJjaFRlcm0oZXZPclZhbDogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IHRlcm0gPSB0eXBlb2YgZXZPclZhbCA9PT0gJ3N0cmluZycgPyBldk9yVmFsIDogKGV2T3JWYWwgYXMgYW55KT8uZGV0YWlsID8/ICcnO1xuICAgIHRoaXMuZ2xvYmFsRmlsdGVyLnNldChTdHJpbmcodGVybSkpO1xuICAgIHRoaXMuZmlyc3Quc2V0KDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xlYXJTZWFyY2goX2V2PzogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuZ2xvYmFsRmlsdGVyLnNldCgnJyk7XG4gICAgdGhpcy5maXJzdC5zZXQoMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlU29ydChmaWVsZDogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmICghZW5hYmxlZCkgeyByZXR1cm47IH1cbiAgICBpZiAodGhpcy5zb3J0RmllbGQoKSAhPT0gZmllbGQpIHtcbiAgICAgIHRoaXMuc29ydEZpZWxkLnNldChmaWVsZCk7XG4gICAgICB0aGlzLnNvcnRPcmRlci5zZXQoMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5zb3J0T3JkZXIoKTtcbiAgICAgIGlmIChvcmRlciA9PT0gMSkgeyB0aGlzLnNvcnRPcmRlci5zZXQoLTEpOyB9XG4gICAgICBlbHNlIGlmIChvcmRlciA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5zb3J0T3JkZXIuc2V0KDApO1xuICAgICAgICB0aGlzLnNvcnRGaWVsZC5zZXQobnVsbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRPcmRlci5zZXQoMSk7XG4gICAgICAgIHRoaXMuc29ydEZpZWxkLnNldChmaWVsZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZmlyc3Quc2V0KDApO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGU6IFBhZ2luYXRvclN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5maXJzdC5zZXQoZS5maXJzdCA/PyAwKTtcbiAgICB0aGlzLnJvd3Muc2V0KGUucm93cyA/PyB0aGlzLm9wdGlvbnMoKS5wYWdpbmF0aW9uPy5yb3dzUGVyUGFnZSA/PyAxMCk7XG4gIH1cblxuICBnZXRDaGVja2VkVmFsdWUoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblRvZ2dsZVJvdyhyb3c6IFQsIGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBzZWwgPSBuZXcgU2V0KHRoaXMuc2VsZWN0aW9uKCkpO1xuICAgIGNoZWNrZWQgPyBzZWwuYWRkKHJvdykgOiBzZWwuZGVsZXRlKHJvdyk7XG4gICAgdGhpcy5zZWxlY3Rpb24uc2V0KFsuLi5zZWxdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1Jvd1NlbGVjdGVkKHJvdzogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbigpLmluY2x1ZGVzKHJvdyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlU2VsZWN0UGFnZShjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsID0gbmV3IFNldCh0aGlzLnNlbGVjdGlvbigpKTtcbiAgICB0aGlzLnBhZ2VEYXRhKCkuZm9yRWFjaChyID0+IChjaGVja2VkID8gc2VsLmFkZChyKSA6IHNlbC5kZWxldGUocikpKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5zZXQoWy4uLnNlbF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzUGFnZUZ1bGx5U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmlzaWJsZSA9IHRoaXMucGFnZURhdGEoKTtcbiAgICByZXR1cm4gdmlzaWJsZS5sZW5ndGggPiAwICYmIHZpc2libGUuZXZlcnkociA9PiB0aGlzLnNlbGVjdGlvbigpLmluY2x1ZGVzKHIpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjZWxsQ2ZnPEsgZXh0ZW5kcyAnY2hlY2tib3gnIHwgJ2J1dHRvbicgfCAndGFnJz4oa2luZDogSyk6IGFueSB7XG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMoKS5jZWxscz8uW2tpbmRdID8/IHt9KSBhcyBhbnk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdGFnc09mKHJvdzogVCwgY29sOiBUYWJsZUNvbHVtbik6IGFueVtdIHtcbiAgICBjb25zdCByYXcgPSB0aGlzLl8ocm93LCBjb2wuZmllbGQhKSBhcyBhbnk7XG4gICAgY29uc3QgYXJyID0gQXJyYXkuaXNBcnJheShyYXcpID8gcmF3IDogW107XG4gICAgY29uc3QgbWF4ID0gdGhpcy5vcHRpb25zKCkuY2VsbHM/LnRhZz8ubWF4SXRlbXMgYXMgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiB0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyA/IGFyci5zbGljZSgwLCBtYXgpIDogYXJyO1xuICB9XG5cbiAgcHJvdGVjdGVkIF8gPSAob2JqOiBULCBwYXRoOiBzdHJpbmcpOiB1bmtub3duID0+XG4gICAgcGF0aC5zcGxpdCgnLicpLnJlZHVjZTx1bmtub3duPigoYWNjLCBwYXJ0KSA9PiB7XG4gICAgICBpZiAoYWNjICE9PSBudWxsICYmIHR5cGVvZiBhY2MgPT09ICdvYmplY3QnKSB7IHJldHVybiAoYWNjIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtwYXJ0XTsgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LCBvYmopO1xuXG4gIHByb3RlY3RlZCBmb3JtYXREYXRlKHZhbHVlOiB1bmtub3duLCBfZm9ybWF0OiBzdHJpbmcgPSAnc2hvcnREYXRlJyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh1bmRlZmluZWQpLmZvcm1hdChuZXcgRGF0ZSh2YWx1ZSBhcyB1bmtub3duIGFzIHN0cmluZykpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSA/PyAnJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGZvcm1hdEN1cnJlbmN5KHZhbHVlOiB1bmtub3duLCBjdXJyZW5jeTogc3RyaW5nID0gJ0JSTCcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG4gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obikpIHsgcmV0dXJuIFN0cmluZyh2YWx1ZSA/PyAnJyk7IH1cbiAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KHVuZGVmaW5lZCwgeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3kgfSkuZm9ybWF0KG4pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbmZpZ09wdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgY2ZnOiBUYWJsZU9wdGlvbnMgPSB0aGlzLmNvbmZpZyB8fCBERUZBVUxUX1RBQkxFX09QVElPTlM7XG4gICAgdGhpcy5vcHRpb25zLnNldCh7XG4gICAgICAuLi5ERUZBVUxUX1RBQkxFX09QVElPTlMsXG4gICAgICAuLi5jZmcsXG4gICAgICBzZWFyY2g6IHsgLi4uREVGQVVMVF9UQUJMRV9PUFRJT05TLnNlYXJjaCwgLi4uY2ZnLnNlYXJjaCB9LFxuICAgICAgdGFibGU6IHsgLi4uREVGQVVMVF9UQUJMRV9PUFRJT05TLnRhYmxlLCAuLi5jZmcudGFibGUgfSxcbiAgICAgIGVtcHR5OiB7IC4uLkRFRkFVTFRfVEFCTEVfT1BUSU9OUy5lbXB0eSwgLi4uY2ZnLmVtcHR5IH0sXG4gICAgICBwYWdpbmF0aW9uOiB7IC4uLkRFRkFVTFRfVEFCTEVfT1BUSU9OUy5wYWdpbmF0aW9uLCAuLi5jZmcucGFnaW5hdGlvbiB9LFxuICAgICAgY2VsbHM6IHtcbiAgICAgICAgY2hlY2tib3g6IHsgLi4uKERFRkFVTFRfVEFCTEVfT1BUSU9OUy5jZWxscz8uY2hlY2tib3ggPz8ge30pLCAuLi4oY2ZnLmNlbGxzPy5jaGVja2JveCA/PyB7fSkgfSxcbiAgICAgICAgYnV0dG9uOiB7IC4uLihERUZBVUxUX1RBQkxFX09QVElPTlMuY2VsbHM/LmJ1dHRvbiA/PyB7fSksIC4uLihjZmcuY2VsbHM/LmJ1dHRvbiA/PyB7fSkgfSxcbiAgICAgICAgdGFnOiB7IC4uLihERUZBVUxUX1RBQkxFX09QVElPTlMuY2VsbHM/LnRhZyA/PyB7fSksIC4uLihjZmcuY2VsbHM/LnRhZyA/PyB7fSkgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YWJsZVN0cmluZ2lmeShvYmo6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldDxvYmplY3Q+KCk7XG4gICAgY29uc3QgcmVwbGFjZXIgPSAoX2s6IHN0cmluZywgdjogdW5rbm93bik6IHVua25vd24gPT4ge1xuICAgICAgaWYgKHYgJiYgdHlwZW9mIHYgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGFzT2JqID0gdiBhcyBvYmplY3Q7XG4gICAgICAgIGlmIChzZWVuLmhhcyhhc09iaikpIHsgcmV0dXJuOyB9XG4gICAgICAgIHNlZW4uYWRkKGFzT2JqKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHsgcmV0dXJuIHY7IH1cbiAgICAgICAgY29uc3QgbyA9IHYgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvKS5zb3J0KCkucmVkdWNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgICBhY2Nba2V5XSA9IG9ba2V5XTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHYgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICAgIHJldHVybiB2O1xuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmogPz8ge30sIHJlcGxhY2VyIGFzIChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHVua25vd24pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiA/PyB7fSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQnV0dG9uQ2xpY2socm93OiBULCBjb2w6IFRhYmxlQ29sdW1uKTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gKGNvbC5hY3Rpb25GaWVsZCA/PyBjb2wuZmllbGQpIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB2YWx1ZSA9IGtleSA/IHRoaXMuXyhyb3csIGtleSkgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5hY3Rpb24uZW1pdCh7IGNvbHVtbjogY29sLCByb3csIHZhbHVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1dHRvbktleShyb3c6IFQsIGNvbDogVGFibGVDb2x1bW4sIG9wdDogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCBhY3RLZXkgPSAoY29sLmFjdGlvbkZpZWxkID8/IGNvbC5maWVsZCA/PyAnJykgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGFjdFZhbCA9IGFjdEtleSA/IFN0cmluZyh0aGlzLl8ocm93LCBhY3RLZXkpID8/ICcnKSA6ICcnO1xuICAgIHJldHVybiBbU3RyaW5nKG9wdD8ubGFiZWwgPz8gJycpLCBTdHJpbmcob3B0Py5pY29uID8/ICcnKSwgU3RyaW5nKG9wdD8ucHJpb3JpdHkgPz8gJycpLCBTdHJpbmcob3B0Py5zaXplID8/ICcnKSwgU3RyaW5nKG9wdD8udG9vbHRpcCA/PyAnJyksIGFjdFZhbF0uam9pbignfCcpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2RjLXRhYmxlXCJcbiAgW2NsYXNzLnNkYy10YWJsZS1zdGFja109XCJpc01vYmlsZSA/ICdzdGFjaycgOiAnZ3JpZCdcIlxuICBbY2xhc3Muc2RjLXRhYmxlLWZpbHRlcmVkXT1cIiEhZ2xvYmFsRmlsdGVyKCkudHJpbSgpXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1jYXB0aW9uXCIgKm5nSWY9XCJzaG93U2VhcmNoKClcIj5cbiAgICA8ZGl2IFtzdHlsZS53aWR0aF09XCJpc01vYmlsZSA/ICcxMDAlJyA6ICcyMCUnXCI+XG4gICAgICA8c2RjLXNlYXJjaGJveFxuICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgW3RyaWdnZXJNb2RlXT1cInRyaWdnZXJNb2RlKClcIlxuICAgICAgICAob25TZWFyY2gpPVwib25TZWFyY2hUZXJtKCRldmVudClcIlxuICAgICAgICAob25DbGVhcik9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHRhYmxlIGNsYXNzPVwic2RjLXRhYmxlLWdyaWRcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIEBmb3IgKGNvbCBvZiBjb2xzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgICAgICA8dGhcbiAgICAgICAgICBbY2xhc3Muc2RjLXRhYmxlLXRoLWNoZWNrYm94XT1cImNvbC50eXBlID09PSAnY2hlY2tib3gtc2VsZWN0aW9uJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNvcnQoY29sLmZpZWxkISwgY29sLnNvcnRhYmxlICE9PSBmYWxzZSlcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtdGFibGUtc29ydGFibGVdPVwiY29sLnNvcnRhYmxlICE9PSBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS1pcy1zZWxlY3RlZF09XCJzb3J0RmllbGQoKSA9PT0gY29sLmZpZWxkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtdGFibGUtdGgtaW5uZXJcIiBbY2xhc3Muc2RjLXRhYmxlLXNvcnRhYmxlXT1cImNvbC5zb3J0YWJsZSAhPT0gZmFsc2VcIj5cbiAgICAgICAgICAgIEBzd2l0Y2ggKGNvbC50eXBlKSB7IEBjYXNlICgnY2hlY2tib3gtc2VsZWN0aW9uJykge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGFibGUtdGgtbGFiZWxcIj57eyBjb2wuaGVhZGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgfSBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10aC1sYWJlbFwiPnt7IGNvbC5oZWFkZXIgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS1zb3J0LWljb25zIHNkYy10YWJsZS1zb3J0LW92ZXJsYXlcIiAqbmdJZj1cImNvbC5zb3J0YWJsZSAhPT0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzb3J0SWNvbnNUcGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb2w6IGNvbCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9IH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtdGFibGUtdGgtY2VudGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29sLnR5cGUgPT09ICdjaGVja2JveC1zZWxlY3Rpb24nICYmIChjZWxsQ2ZnKCdjaGVja2JveCcpLnNlbGVjdEFsbCA/PyB0cnVlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzUGFnZUZ1bGx5U2VsZWN0ZWQoKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdFBhZ2UoZ2V0Q2hlY2tlZFZhbHVlKCRldmVudCkpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3RoPlxuICAgICAgICB9XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG5cbiAgICA8dGJvZHk+XG4gICAgICBAaWYgKGxvYWRpbmcpIHsgfSBAZWxzZSB7IEBmb3IgKHJvdyBvZiBwYWdlRGF0YSgpOyBsZXQgciA9ICRpbmRleDsgdHJhY2sgcikge1xuICAgICAgPHRyPlxuICAgICAgICBAZm9yIChjb2wgb2YgY29sczsgbGV0IGMgPSAkaW5kZXg7IHRyYWNrIGMpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTW9iaWxlOyBlbHNlIGRlc2t0b3BDb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS10ZC1tb2JpbGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic29ydEljb25zVHBsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29sOiBjb2wgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLXRkIHNkYy10YWJsZS10ZGMgc2RjLXRhYmxlLW1vYmlsZS10ZFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zZGMtdGFibGUtdGQtY2hlY2tib3hdPVwiY29sLnR5cGUgPT09ICdjaGVja2JveC1zZWxlY3Rpb24nXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS1pcy1zZWxlY3RlZF09XCJzb3J0RmllbGQoKSA9PT0gY29sLmZpZWxkXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10aXRsZV09XCJjb2wuaGVhZGVyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNvcnQoY29sLmZpZWxkISwgY29sLnNvcnRhYmxlICE9PSBmYWxzZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLXRkLXZhbFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUcGxcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3csIGNvbDogY29sIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZXNrdG9wQ29udGVudD5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLXRkIHNkYy10YWJsZS10ZGNcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10ZC1jaGVja2JveF09XCJjb2wudHlwZSA9PT0gJ2NoZWNrYm94LXNlbGVjdGlvbidcIlxuICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS1pcy1zZWxlY3RlZF09XCJzb3J0RmllbGQoKSA9PT0gY29sLmZpZWxkXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiY29sLmhlYWRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS10ZC12YWxcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUcGxcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm93LCBjb2w6IGNvbCB9XCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICAgIH0gfVxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG5cbiAgPHMtZW1wdHktc3RhdGVcbiAgICAqbmdJZj1cIiFsb2FkaW5nICYmIG9wdGlvbnMoKS5lbXB0eT8uc2hvdyAhPT0gZmFsc2UgJiYgdG90YWxSZWNvcmRzKCkgPT09IDBcIlxuICAgIGlkPVwibXktZW1wdHktc3RhdGVcIlxuICAgIGljb25DbGFzcz1cImZhIGZhLWluYm94XCJcbiAgICBbdGl0bGVdPVwiZW1wdHlUaXRsZSgpXCJcbiAgICBbZGVzY3JpcHRpb25dPVwiZW1wdHlUZXh0KClcIlxuICAgIGNsYXNzPVwic2RjLXRhYmxlLWVtcHR5LXN0YXRlXCJcbiAgPlxuICA8L3MtZW1wdHktc3RhdGU+XG5cbiAgPHMtbG9hZGluZy1zdGF0ZSAqbmdJZj1cImxvYWRpbmdcIiBbbG9hZGluZ109XCJsb2FkaW5nXCIgW2Jsb2NrV2luZG93XT1cImZhbHNlXCIgY2xhc3M9XCJzZGMtdGFibGUtbG9hZGluZy1zdGF0ZVwiPlxuICA8L3MtbG9hZGluZy1zdGF0ZT5cblxuICA8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLXBhZ2luYXRvclwiICpuZ0lmPVwic2hvd1BhZ2luYXRvcigpXCI+XG4gICAgPHNkYy1wYWdpbmF0b3JcbiAgICAgIFtmaXJzdF09XCJmaXJzdCgpXCJcbiAgICAgIFtyb3dzXT1cInJvd3MoKVwiXG4gICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3JkcygpXCJcbiAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiaXNNb2JpbGUgPyB1bmRlZmluZWQgOiByb3dzUGVyUGFnZU9wdGlvbnMoKVwiXG4gICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgW3RvdGFsUmVjb3Jkc0xhYmVsXT1cInRvdGFsUmVjb3Jkc0xhYmVsKClcIlxuICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgID48L3NkYy1wYWdpbmF0b3I+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZSAjY2VsbFRwbCBsZXQtcm93IGxldC1jb2w9XCJjb2xcIj5cbiAgICBAc3dpdGNoIChjb2wudHlwZSkgeyBAY2FzZSAoJ2NoZWNrYm94LXNlbGVjdGlvbicpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENmZygnY2hlY2tib3gnKSBhcyBjaGVja2JveE9wdGlvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtdGFibGUtY2hlY2tib3hcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzUm93U2VsZWN0ZWQocm93KVwiIChjaGFuZ2UpPVwib25Ub2dnbGVSb3cocm93LCBnZXRDaGVja2VkVmFsdWUoJGV2ZW50KSlcIiAvPlxuICAgICAgICA8bGFiZWw+e3sgXyhyb3csIGNvbC5maWVsZCkgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgfSBAY2FzZSAoJ2RhdGUnKSB7XG4gICAge3sgZm9ybWF0RGF0ZShfKHJvdywgY29sLmZpZWxkKSwgY29sLmZvcm1hdCB8fCAnc2hvcnREYXRlJykgfX1cbiAgICB9IEBjYXNlICgnc3Ryb25nJykge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtdGFibGUtc3Ryb25nLWxhYmVsXCI+e3sgXyhyb3csIGNvbC5maWVsZCkgfX08L2Rpdj5cbiAgICB9IEBjYXNlICgnY29kZScpIHtcbiAgICA8Y29kZSBjbGFzcz1cInNkYy10YWJsZS1jb2RlLWxhYmVsXCI+e3sgXyhyb3csIGNvbC5maWVsZCkgfX08L2NvZGU+XG4gICAgfSBAY2FzZSAoJ2N1cnJlbmN5Jykge1xuICAgIHt7IGZvcm1hdEN1cnJlbmN5KF8ocm93LCBjb2wuZmllbGQpLCBjb2wuZm9ybWF0IHx8ICdCUkwnKSB9fVxuICAgIH0gQGNhc2UgKCd0YWcnKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNlbGxDZmcoJ3RhZycpIGFzIHRhZ09wdGlvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtdGFibGUtdGFnc1wiPlxuICAgICAgICBAZm9yICh0YWcgb2YgdGFnc09mKHJvdywgY29sKTsgbGV0IHQgPSAkaW5kZXg7IHRyYWNrIHQpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS10YWdcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInRhZ09wdGlvbnMuYmFja2dyb3VuZENvbG9yIHx8IG51bGxcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJ0YWdPcHRpb25zLmNvbG9yIHx8IG51bGxcIlxuICAgICAgICAgIFthdHRyLnRpdGxlXT1cInRhZ09wdGlvbnMudG9vbHRpcFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSAqbmdJZj1cInRhZ09wdGlvbnMuaWNvblwiIFtjbGFzc109XCJ0YWdPcHRpb25zLmljb25cIj48L2k+XG4gICAgICAgICAge3sgdGFnIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgfSBAY2FzZSAoJ2J1dHRvbicpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENmZygnYnV0dG9uJykgYXMgYnV0dG9uT3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgX19rIG9mIFtidXR0b25LZXkocm93LCBjb2wsIGJ1dHRvbk9wdGlvbnMpXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLWJ1dHRvblwiPlxuICAgICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogNzAlXCJcbiAgICAgICAgICAgIFtzaXplXT1cImJ1dHRvbk9wdGlvbnMuc2l6ZVwiXG4gICAgICAgICAgICBbcHJpb3JpdHldPVwiYnV0dG9uT3B0aW9ucy5wcmlvcml0eSB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgICAgW2ljb25dPVwiYnV0dG9uT3B0aW9ucy5pY29uXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidXR0b25PcHRpb25zLmxhYmVsXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXR0b25PcHRpb25zLmRpc2FibGVkXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJidXR0b25PcHRpb25zLnRvb2x0aXBcIlxuICAgICAgICAgICAgW2F0dHIuc2l6ZV09XCJidXR0b25PcHRpb25zLnNpemVcIlxuICAgICAgICAgICAgW2F0dHIucHJpb3JpdHldPVwiYnV0dG9uT3B0aW9ucy5wcmlvcml0eSB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgICAgW2F0dHIuc2V2ZXJpdHldPVwiYnV0dG9uT3B0aW9ucy5wcmlvcml0eSB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgICAgW2F0dHIuaWNvbl09XCJidXR0b25PcHRpb25zLmljb25cIlxuICAgICAgICAgICAgW2F0dHIubGFiZWxdPVwiYnV0dG9uT3B0aW9ucy5sYWJlbFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJidXR0b25PcHRpb25zLmRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImJ1dHRvbk9wdGlvbnMudG9vbHRpcCB8fCBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEta2V5XT1cIl9fa1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uT3B0aW9ucy5kaXNhYmxlZCA/IG51bGwgOiBvbkJ1dHRvbkNsaWNrKHJvdywgY29sKVwiXG4gICAgICAgICAgPjwvc2RjLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICB9IEBkZWZhdWx0IHsge3sgXyhyb3csIGNvbC5maWVsZCkgfX0gfSB9XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzb3J0SWNvbnNUcGwgbGV0LWNvbD1cImNvbFwiPlxuICA8c3BhbiAqbmdJZj1cImNvbC5zb3J0YWJsZSAhPT0gZmFsc2UgJiYgY29sLnR5cGUgIT09ICdjaGVja2JveC1zZWxlY3Rpb24nXCIgY2xhc3M9XCJzZGMtdGFibGUtc29ydC1pbmRpY2F0b3JcIj5cbiAgICA8aSAqbmdJZj1cInNvcnRGaWVsZCgpICE9PSBjb2wuZmllbGRcIiBjbGFzcz1cImZhcyBmYS1zb3J0LWFsdCBzZGMtdGFibGUtc29ydC1uZXV0cmFsXCI+PC9pPlxuICAgIDxpXG4gICAgICAqbmdJZj1cInNvcnRGaWVsZCgpID09PSBjb2wuZmllbGQgJiYgc29ydE9yZGVyKCkgPT09IDFcIlxuICAgICAgY2xhc3M9XCJmYXMgZmEtc29ydC1hbW91bnQtdXAtYWx0IHNkYy10YWJsZS1zb3J0LWFjdGl2ZVwiXG4gICAgPjwvaT5cbiAgICA8aVxuICAgICAgKm5nSWY9XCJzb3J0RmllbGQoKSA9PT0gY29sLmZpZWxkICYmIHNvcnRPcmRlcigpID09PSAtMVwiXG4gICAgICBjbGFzcz1cImZhcyBmYS1zb3J0LWFtb3VudC1kb3duIHNkYy10YWJsZS1zb3J0LWFjdGl2ZVwiXG4gICAgPjwvaT5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ0lmPVwiY29sLnNvcnRhYmxlID09PSBmYWxzZSB8fCBjb2wudHlwZSA9PT0gJ2NoZWNrYm94LXNlbGVjdGlvbidcIlxuICAgIGNsYXNzPVwic2RjLXRhYmxlLXNvcnQtaW5kaWNhdG9yIHNkYy10YWJsZS1zb3J0LWluZGljYXRvci1wbGFjZWhvbGRlclwiXG4gID48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBOEQsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEssT0FBTyxFQUFFLHFCQUFxQixFQUFxRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQVd2SSxNQUFNLE9BQU8sY0FBYztJQUNFLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQ3pCLElBQUksR0FBUSxFQUFFLENBQUM7SUFDZCxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLE1BQU0sR0FBaUIscUJBQXFCLENBQUM7SUFFL0QsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFtRCxDQUFDO0lBRXBFLFFBQVEsR0FBWSxRQUFRLEVBQUUsQ0FBQztJQUUvQixVQUFVLEdBQUcsUUFBUSxDQUFVLEdBQUcs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RSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNHLE9BQU87c0JBQWxDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNFLE1BQU07c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IFNlYXJjaGJveENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaGJveC9zZWFyY2hib3guY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvZW1wdHktc3RhdGUnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2FkaW5nLXN0YXRlJztcbmltcG9ydCB7IFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBzaWduYWwsIGNvbXB1dGVkLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIERvQ2hlY2ssIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREVGQVVMVF9UQUJMRV9PUFRJT05TLCB0eXBlIFJvd0Jhc2UsIHR5cGUgU29ydE9yZGVyLCB0eXBlIFRhYmxlQ29sdW1uLCB0eXBlIFRhYmxlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdGFibGUudHlwZSc7XG5pbXBvcnQgeyB0eXBlIFNlYXJjaFRyaWdnZXJNb2RlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZWFyY2hib3gudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy10YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNlYXJjaGJveENvbXBvbmVudCwgUGFnaW5hdG9yQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIExvYWRpbmdTdGF0ZU1vZHVsZSwgRW1wdHlTdGF0ZU1vZHVsZV0sXG4gIHN0eWxlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgUm93QmFzZSA9IFJvd0Jhc2U+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBEb0NoZWNrIHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29sczogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhOiBUW10gPSBbXTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGNvbmZpZzogVGFibGVPcHRpb25zID0gREVGQVVMVF9UQUJMRV9PUFRJT05TO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgY29sdW1uOiBUYWJsZUNvbHVtbjsgcm93OiBUOyB2YWx1ZTogdW5rbm93biB9PigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbiA9IGlzTW9iaWxlKCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dTZWFyY2ggPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5zZWFyY2g/LnNob3cgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1BhZ2luYXRvciA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpLnBhZ2luYXRpb24/LnNob3cgPz8gZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByb3dzUGVyUGFnZU9wdGlvbnMgPSBjb21wdXRlZDxudW1iZXJbXT4oKCkgPT4gdGhpcy5vcHRpb25zKCkucGFnaW5hdGlvbj8ucm93c1BlclBhZ2VPcHRpb25zID8/IFtdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlYXJjaFBsYWNlaG9sZGVyID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5zZWFyY2g/LnBsYWNlaG9sZGVyID8/ICcnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyaWdnZXJNb2RlID0gY29tcHV0ZWQ8U2VhcmNoVHJpZ2dlck1vZGU+KCgpID0+IHRoaXMub3B0aW9ucygpLnNlYXJjaD8udHlwZSA/PyAnYXV0bycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG90YWxSZWNvcmRzTGFiZWwgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpLnRhYmxlPy50b3RhbFJlY29yZHNMYWJlbCA/PyAnJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlbXB0eVRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5lbXB0eT8udGl0bGUgPz8gJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1wdHlUZXh0ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5lbXB0eT8udGV4dCA/PyAnJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBzaWduYWw8VGFibGVPcHRpb25zPihERUZBVUxUX1RBQkxFX09QVElPTlMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2xvYmFsRmlsdGVyID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydEZpZWxkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydE9yZGVyID0gc2lnbmFsPFNvcnRPcmRlcj4oMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3Rpb24gPSBzaWduYWw8VFtdPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmaXJzdCA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm93cyA9IHNpZ25hbDxudW1iZXI+KERFRkFVTFRfVEFCTEVfT1BUSU9OUy5wYWdpbmF0aW9uPy5yb3dzUGVyUGFnZSA/PyAxMCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbHRlcmVkRGF0YSA9IGNvbXB1dGVkPFRbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLmdsb2JhbEZpbHRlcigpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghcSkgeyByZXR1cm4gdGhpcy5kYXRhOyB9XG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5jb2xzLmZpbHRlcihjID0+IChjIGFzIGFueSkuc2VhcmNoYWJsZSA/PyB0cnVlKS5maWx0ZXIoYyA9PiAhIWMuZmllbGQpLm1hcChjID0+IGMuZmllbGQhKSBhcyBzdHJpbmdbXTtcbiAgICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gdGhpcy5kYXRhOyB9XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5maWx0ZXIocm93ID0+XG4gICAgICBmaWVsZHMuc29tZShmID0+IHtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuXyhyb3csIGYpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkgeyByZXR1cm4gdi5qb2luKCcgJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKTsgfVxuICAgICAgICByZXR1cm4gU3RyaW5nKHYgPz8gJycpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSk7XG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzb3J0ZWREYXRhID0gY29tcHV0ZWQ8VFtdPigoKSA9PiB7XG4gICAgY29uc3QgZmllbGQgPSB0aGlzLnNvcnRGaWVsZCgpO1xuICAgIGNvbnN0IG9yZGVyID0gdGhpcy5zb3J0T3JkZXIoKTtcbiAgICBjb25zdCBhcnIgPSBbLi4udGhpcy5maWx0ZXJlZERhdGEoKV07XG4gICAgaWYgKCFmaWVsZCB8fCBvcmRlciA9PT0gMCkgeyByZXR1cm4gYXJyOyB9XG4gICAgcmV0dXJuIGFyci5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCB2YSA9IHRoaXMuXyhhLCBmaWVsZCk7XG4gICAgICBjb25zdCB2YiA9IHRoaXMuXyhiLCBmaWVsZCk7XG4gICAgICBpZiAodmEgPT0gbnVsbCAmJiB2YiA9PSBudWxsKSB7IHJldHVybiAwOyB9XG4gICAgICBpZiAodmEgPT0gbnVsbCkgeyByZXR1cm4gLW9yZGVyOyB9XG4gICAgICBpZiAodmIgPT0gbnVsbCkgeyByZXR1cm4gb3JkZXI7IH1cbiAgICAgIGlmICh0eXBlb2YgdmEgPT09ICdudW1iZXInICYmIHR5cGVvZiB2YiA9PT0gJ251bWJlcicpIHsgcmV0dXJuICh2YSAtIHZiKSAqIG9yZGVyOyB9XG4gICAgICByZXR1cm4gU3RyaW5nKHZhKS5sb2NhbGVDb21wYXJlKFN0cmluZyh2YikpICogb3JkZXI7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0b3RhbFJlY29yZHMgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMuc29ydGVkRGF0YSgpLmxlbmd0aCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZ2VEYXRhID0gY29tcHV0ZWQ8VFtdPigoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnNob3dQYWdpbmF0b3IoKSkgcmV0dXJuIHRoaXMuc29ydGVkRGF0YSgpO1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5maXJzdCgpO1xuICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5yb3dzKCk7XG4gICAgcmV0dXJuIHRoaXMuc29ydGVkRGF0YSgpLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICB9KTtcblxuICBwcml2YXRlIGNvbmZpZ0hhc2ggPSAnJztcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddKSB7XG4gICAgICB0aGlzLmFwcGx5Q29uZmlnT3B0aW9ucygpO1xuICAgICAgdGhpcy5yb3dzLnNldCh0aGlzLm9wdGlvbnMoKS5wYWdpbmF0aW9uPy5yb3dzUGVyUGFnZSA/PyAxMCk7XG4gICAgICB0aGlzLmZpcnN0LnNldCgwKTtcbiAgICAgIHRoaXMuY29uZmlnSGFzaCA9IHRoaXMuc3RhYmxlU3RyaW5naWZ5KHRoaXMuY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dEhhc2ggPSB0aGlzLnN0YWJsZVN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XG4gICAgaWYgKG5leHRIYXNoICE9PSB0aGlzLmNvbmZpZ0hhc2gpIHtcbiAgICAgIHRoaXMuY29uZmlnSGFzaCA9IG5leHRIYXNoO1xuICAgICAgdGhpcy5hcHBseUNvbmZpZ09wdGlvbnMoKTtcbiAgICAgIHRoaXMucm93cy5zZXQodGhpcy5vcHRpb25zKCkucGFnaW5hdGlvbj8ucm93c1BlclBhZ2UgPz8gMTApO1xuICAgICAgdGhpcy5maXJzdC5zZXQoMCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uU2VhcmNoVGVybShldk9yVmFsOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgdGVybSA9IHR5cGVvZiBldk9yVmFsID09PSAnc3RyaW5nJyA/IGV2T3JWYWwgOiAoZXZPclZhbCBhcyBhbnkpPy5kZXRhaWwgPz8gJyc7XG4gICAgdGhpcy5nbG9iYWxGaWx0ZXIuc2V0KFN0cmluZyh0ZXJtKSk7XG4gICAgdGhpcy5maXJzdC5zZXQoMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DbGVhclNlYXJjaChfZXY/OiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5nbG9iYWxGaWx0ZXIuc2V0KCcnKTtcbiAgICB0aGlzLmZpcnN0LnNldCgwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTb3J0KGZpZWxkOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKCFlbmFibGVkKSB7IHJldHVybjsgfVxuICAgIGlmICh0aGlzLnNvcnRGaWVsZCgpICE9PSBmaWVsZCkge1xuICAgICAgdGhpcy5zb3J0RmllbGQuc2V0KGZpZWxkKTtcbiAgICAgIHRoaXMuc29ydE9yZGVyLnNldCgxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3JkZXIgPSB0aGlzLnNvcnRPcmRlcigpO1xuICAgICAgaWYgKG9yZGVyID09PSAxKSB7IHRoaXMuc29ydE9yZGVyLnNldCgtMSk7IH1cbiAgICAgIGVsc2UgaWYgKG9yZGVyID09PSAtMSkge1xuICAgICAgICB0aGlzLnNvcnRPcmRlci5zZXQoMCk7XG4gICAgICAgIHRoaXMuc29ydEZpZWxkLnNldChudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc29ydE9yZGVyLnNldCgxKTtcbiAgICAgICAgdGhpcy5zb3J0RmllbGQuc2V0KGZpZWxkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5maXJzdC5zZXQoMCk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZTogUGFnaW5hdG9yU3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpcnN0LnNldChlLmZpcnN0ID8/IDApO1xuICAgIHRoaXMucm93cy5zZXQoZS5yb3dzID8/IHRoaXMub3B0aW9ucygpLnBhZ2luYXRpb24/LnJvd3NQZXJQYWdlID8/IDEwKTtcbiAgfVxuXG4gIGdldENoZWNrZWRWYWx1ZShldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uVG9nZ2xlUm93KHJvdzogVCwgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHNlbCA9IG5ldyBTZXQodGhpcy5zZWxlY3Rpb24oKSk7XG4gICAgY2hlY2tlZCA/IHNlbC5hZGQocm93KSA6IHNlbC5kZWxldGUocm93KTtcbiAgICB0aGlzLnNlbGVjdGlvbi5zZXQoWy4uLnNlbF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzUm93U2VsZWN0ZWQocm93OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uKCkuaW5jbHVkZXMocm93KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTZWxlY3RQYWdlKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBzZWwgPSBuZXcgU2V0KHRoaXMuc2VsZWN0aW9uKCkpO1xuICAgIHRoaXMucGFnZURhdGEoKS5mb3JFYWNoKHIgPT4gKGNoZWNrZWQgPyBzZWwuYWRkKHIpIDogc2VsLmRlbGV0ZShyKSkpO1xuICAgIHRoaXMuc2VsZWN0aW9uLnNldChbLi4uc2VsXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNQYWdlRnVsbHlTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB2aXNpYmxlID0gdGhpcy5wYWdlRGF0YSgpO1xuICAgIHJldHVybiB2aXNpYmxlLmxlbmd0aCA+IDAgJiYgdmlzaWJsZS5ldmVyeShyID0+IHRoaXMuc2VsZWN0aW9uKCkuaW5jbHVkZXMocikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNlbGxDZmc8SyBleHRlbmRzICdjaGVja2JveCcgfCAnYnV0dG9uJyB8ICd0YWcnPihraW5kOiBLKTogYW55IHtcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucygpLmNlbGxzPy5ba2luZF0gPz8ge30pIGFzIGFueTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0YWdzT2Yocm93OiBULCBjb2w6IFRhYmxlQ29sdW1uKTogYW55W10ge1xuICAgIGNvbnN0IHJhdyA9IHRoaXMuXyhyb3csIGNvbC5maWVsZCEpIGFzIGFueTtcbiAgICBjb25zdCBhcnIgPSBBcnJheS5pc0FycmF5KHJhdykgPyByYXcgOiBbXTtcbiAgICBjb25zdCBtYXggPSB0aGlzLm9wdGlvbnMoKS5jZWxscz8udGFnPy5tYXhJdGVtcyBhcyBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHR5cGVvZiBtYXggPT09ICdudW1iZXInID8gYXJyLnNsaWNlKDAsIG1heCkgOiBhcnI7XG4gIH1cblxuICBwcm90ZWN0ZWQgXyA9IChvYmo6IFQsIHBhdGg6IHN0cmluZyk6IHVua25vd24gPT5cbiAgICBwYXRoLnNwbGl0KCcuJykucmVkdWNlPHVua25vd24+KChhY2MsIHBhcnQpID0+IHtcbiAgICAgIGlmIChhY2MgIT09IG51bGwgJiYgdHlwZW9mIGFjYyA9PT0gJ29iamVjdCcpIHsgcmV0dXJuIChhY2MgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW3BhcnRdOyB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sIG9iaik7XG5cbiAgcHJvdGVjdGVkIGZvcm1hdERhdGUodmFsdWU6IHVua25vd24sIF9mb3JtYXQ6IHN0cmluZyA9ICdzaG9ydERhdGUnKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHVuZGVmaW5lZCkuZm9ybWF0KG5ldyBEYXRlKHZhbHVlIGFzIHVua25vd24gYXMgc3RyaW5nKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlID8/ICcnKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0Q3VycmVuY3kodmFsdWU6IHVua25vd24sIGN1cnJlbmN5OiBzdHJpbmcgPSAnQlJMJyk6IHN0cmluZyB7XG4gICAgY29uc3QgbiA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKE51bWJlci5pc05hTihuKSkgeyByZXR1cm4gU3RyaW5nKHZhbHVlID8/ICcnKTsgfVxuICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQodW5kZWZpbmVkLCB7IHN0eWxlOiAnY3VycmVuY3knLCBjdXJyZW5jeSB9KS5mb3JtYXQobik7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29uZmlnT3B0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBjZmc6IFRhYmxlT3B0aW9ucyA9IHRoaXMuY29uZmlnIHx8IERFRkFVTFRfVEFCTEVfT1BUSU9OUztcbiAgICB0aGlzLm9wdGlvbnMuc2V0KHtcbiAgICAgIC4uLkRFRkFVTFRfVEFCTEVfT1BUSU9OUyxcbiAgICAgIC4uLmNmZyxcbiAgICAgIHNlYXJjaDogeyAuLi5ERUZBVUxUX1RBQkxFX09QVElPTlMuc2VhcmNoLCAuLi5jZmcuc2VhcmNoIH0sXG4gICAgICB0YWJsZTogeyAuLi5ERUZBVUxUX1RBQkxFX09QVElPTlMudGFibGUsIC4uLmNmZy50YWJsZSB9LFxuICAgICAgZW1wdHk6IHsgLi4uREVGQVVMVF9UQUJMRV9PUFRJT05TLmVtcHR5LCAuLi5jZmcuZW1wdHkgfSxcbiAgICAgIHBhZ2luYXRpb246IHsgLi4uREVGQVVMVF9UQUJMRV9PUFRJT05TLnBhZ2luYXRpb24sIC4uLmNmZy5wYWdpbmF0aW9uIH0sXG4gICAgICBjZWxsczoge1xuICAgICAgICBjaGVja2JveDogeyAuLi4oREVGQVVMVF9UQUJMRV9PUFRJT05TLmNlbGxzPy5jaGVja2JveCA/PyB7fSksIC4uLihjZmcuY2VsbHM/LmNoZWNrYm94ID8/IHt9KSB9LFxuICAgICAgICBidXR0b246IHsgLi4uKERFRkFVTFRfVEFCTEVfT1BUSU9OUy5jZWxscz8uYnV0dG9uID8/IHt9KSwgLi4uKGNmZy5jZWxscz8uYnV0dG9uID8/IHt9KSB9LFxuICAgICAgICB0YWc6IHsgLi4uKERFRkFVTFRfVEFCTEVfT1BUSU9OUy5jZWxscz8udGFnID8/IHt9KSwgLi4uKGNmZy5jZWxscz8udGFnID8/IHt9KSB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhYmxlU3RyaW5naWZ5KG9iajogdW5rbm93bik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0PG9iamVjdD4oKTtcbiAgICBjb25zdCByZXBsYWNlciA9IChfazogc3RyaW5nLCB2OiB1bmtub3duKTogdW5rbm93biA9PiB7XG4gICAgICBpZiAodiAmJiB0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgYXNPYmogPSB2IGFzIG9iamVjdDtcbiAgICAgICAgaWYgKHNlZW4uaGFzKGFzT2JqKSkgeyByZXR1cm47IH1cbiAgICAgICAgc2Vlbi5hZGQoYXNPYmopO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkgeyByZXR1cm4gdjsgfVxuICAgICAgICBjb25zdCBvID0gdiBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG8pLnNvcnQoKS5yZWR1Y2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gb1trZXldO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdiA9PT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICAgICAgcmV0dXJuIHY7XG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiA/PyB7fSwgcmVwbGFjZXIgYXMgKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikgPT4gdW5rbm93bik7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqID8/IHt9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25CdXR0b25DbGljayhyb3c6IFQsIGNvbDogVGFibGVDb2x1bW4pOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSAoY29sLmFjdGlvbkZpZWxkID8/IGNvbC5maWVsZCkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHZhbHVlID0ga2V5ID8gdGhpcy5fKHJvdywga2V5KSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgY29sdW1uOiBjb2wsIHJvdywgdmFsdWUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnV0dG9uS2V5KHJvdzogVCwgY29sOiBUYWJsZUNvbHVtbiwgb3B0OiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFjdEtleSA9IChjb2wuYWN0aW9uRmllbGQgPz8gY29sLmZpZWxkID8/ICcnKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgYWN0VmFsID0gYWN0S2V5ID8gU3RyaW5nKHRoaXMuXyhyb3csIGFjdEtleSkgPz8gJycpIDogJyc7XG4gICAgcmV0dXJuIFtTdHJpbmcob3B0Py5sYWJlbCA/PyAnJyksIFN0cmluZyhvcHQ/Lmljb24gPz8gJycpLCBTdHJpbmcob3B0Py5wcmlvcml0eSA/PyAnJyksIFN0cmluZyhvcHQ/LnNpemUgPz8gJycpLCBTdHJpbmcob3B0Py50b29sdGlwID8/ICcnKSwgYWN0VmFsXS5qb2luKCd8Jyk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtdGFibGVcIlxuICBbY2xhc3Muc2RjLXRhYmxlLXN0YWNrXT1cImlzTW9iaWxlID8gJ3N0YWNrJyA6ICdncmlkJ1wiXG4gIFtjbGFzcy5zZGMtdGFibGUtZmlsdGVyZWRdPVwiISFnbG9iYWxGaWx0ZXIoKS50cmltKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLWNhcHRpb25cIiAqbmdJZj1cInNob3dTZWFyY2goKVwiPlxuICAgIDxkaXYgW3N0eWxlLndpZHRoXT1cImlzTW9iaWxlID8gJzEwMCUnIDogJzIwJSdcIj5cbiAgICAgIDxzZGMtc2VhcmNoYm94XG4gICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbdHJpZ2dlck1vZGVdPVwidHJpZ2dlck1vZGUoKVwiXG4gICAgICAgIChvblNlYXJjaCk9XCJvblNlYXJjaFRlcm0oJGV2ZW50KVwiXG4gICAgICAgIChvbkNsZWFyKT1cIm9uQ2xlYXJTZWFyY2goKVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8dGFibGUgY2xhc3M9XCJzZGMtdGFibGUtZ3JpZFwiPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgQGZvciAoY29sIG9mIGNvbHM7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7XG4gICAgICAgIDx0aFxuICAgICAgICAgIFtjbGFzcy5zZGMtdGFibGUtdGgtY2hlY2tib3hdPVwiY29sLnR5cGUgPT09ICdjaGVja2JveC1zZWxlY3Rpb24nXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU29ydChjb2wuZmllbGQhLCBjb2wuc29ydGFibGUgIT09IGZhbHNlKVwiXG4gICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS1zb3J0YWJsZV09XCJjb2wuc29ydGFibGUgIT09IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLXRhYmxlLWlzLXNlbGVjdGVkXT1cInNvcnRGaWVsZCgpID09PSBjb2wuZmllbGRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS10aC1pbm5lclwiIFtjbGFzcy5zZGMtdGFibGUtc29ydGFibGVdPVwiY29sLnNvcnRhYmxlICE9PSBmYWxzZVwiPlxuICAgICAgICAgICAgQHN3aXRjaCAoY29sLnR5cGUpIHsgQGNhc2UgKCdjaGVja2JveC1zZWxlY3Rpb24nKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy10YWJsZS10aC1sYWJlbFwiPnt7IGNvbC5oZWFkZXIgfX08L3NwYW4+XG4gICAgICAgICAgICB9IEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLXRoLWxhYmVsXCI+e3sgY29sLmhlYWRlciB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRhYmxlLXNvcnQtaWNvbnMgc2RjLXRhYmxlLXNvcnQtb3ZlcmxheVwiICpuZ0lmPVwiY29sLnNvcnRhYmxlICE9PSBmYWxzZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNvcnRJY29uc1RwbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbDogY29sIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH0gfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNkYy10YWJsZS10aC1jZW50ZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJjb2wudHlwZSA9PT0gJ2NoZWNrYm94LXNlbGVjdGlvbicgJiYgKGNlbGxDZmcoJ2NoZWNrYm94Jykuc2VsZWN0QWxsID8/IHRydWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNQYWdlRnVsbHlTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlU2VsZWN0UGFnZShnZXRDaGVja2VkVmFsdWUoJGV2ZW50KSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIH1cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cblxuICAgIDx0Ym9keT5cbiAgICAgIEBpZiAobG9hZGluZykgeyB9IEBlbHNlIHsgQGZvciAocm93IG9mIHBhZ2VEYXRhKCk7IGxldCByID0gJGluZGV4OyB0cmFjayByKSB7XG4gICAgICA8dHI+XG4gICAgICAgIEBmb3IgKGNvbCBvZiBjb2xzOyBsZXQgYyA9ICRpbmRleDsgdHJhY2sgYykge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNb2JpbGU7IGVsc2UgZGVza3RvcENvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLXRkLW1vYmlsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzb3J0SWNvbnNUcGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb2w6IGNvbCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtdGFibGUtdGQgc2RjLXRhYmxlLXRkYyBzZGMtdGFibGUtbW9iaWxlLXRkXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnNkYy10YWJsZS10ZC1jaGVja2JveF09XCJjb2wudHlwZSA9PT0gJ2NoZWNrYm94LXNlbGVjdGlvbidcIlxuICAgICAgICAgICAgICBbY2xhc3Muc2RjLXRhYmxlLWlzLXNlbGVjdGVkXT1cInNvcnRGaWVsZCgpID09PSBjb2wuZmllbGRcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRpdGxlXT1cImNvbC5oZWFkZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU29ydChjb2wuZmllbGQhLCBjb2wuc29ydGFibGUgIT09IGZhbHNlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtdGFibGUtdGQtdmFsXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2VsbFRwbFwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgY29sOiBjb2wgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Rlc2t0b3BDb250ZW50PlxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtdGFibGUtdGQgc2RjLXRhYmxlLXRkY1wiXG4gICAgICAgICAgICBbY2xhc3Muc2RjLXRhYmxlLXRkLWNoZWNrYm94XT1cImNvbC50eXBlID09PSAnY2hlY2tib3gtc2VsZWN0aW9uJ1wiXG4gICAgICAgICAgICBbY2xhc3Muc2RjLXRhYmxlLWlzLXNlbGVjdGVkXT1cInNvcnRGaWVsZCgpID09PSBjb2wuZmllbGRcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS10aXRsZV09XCJjb2wuaGVhZGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLXRhYmxlLXRkLXZhbFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2VsbFRwbFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3csIGNvbDogY29sIH1cIlxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgICA8L3RyPlxuICAgICAgfSB9XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cblxuICA8cy1lbXB0eS1zdGF0ZVxuICAgICpuZ0lmPVwiIWxvYWRpbmcgJiYgb3B0aW9ucygpLmVtcHR5Py5zaG93ICE9PSBmYWxzZSAmJiB0b3RhbFJlY29yZHMoKSA9PT0gMFwiXG4gICAgaWQ9XCJteS1lbXB0eS1zdGF0ZVwiXG4gICAgaWNvbkNsYXNzPVwiZmEgZmEtaW5ib3hcIlxuICAgIFt0aXRsZV09XCJlbXB0eVRpdGxlKClcIlxuICAgIFtkZXNjcmlwdGlvbl09XCJlbXB0eVRleHQoKVwiXG4gICAgY2xhc3M9XCJzZGMtdGFibGUtZW1wdHktc3RhdGVcIlxuICA+XG4gIDwvcy1lbXB0eS1zdGF0ZT5cblxuICA8cy1sb2FkaW5nLXN0YXRlICpuZ0lmPVwibG9hZGluZ1wiIFtsb2FkaW5nXT1cImxvYWRpbmdcIiBbYmxvY2tXaW5kb3ddPVwiZmFsc2VcIiBjbGFzcz1cInNkYy10YWJsZS1sb2FkaW5nLXN0YXRlXCI+XG4gIDwvcy1sb2FkaW5nLXN0YXRlPlxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtdGFibGUtcGFnaW5hdG9yXCIgKm5nSWY9XCJzaG93UGFnaW5hdG9yKClcIj5cbiAgICA8c2RjLXBhZ2luYXRvclxuICAgICAgW2ZpcnN0XT1cImZpcnN0KClcIlxuICAgICAgW3Jvd3NdPVwicm93cygpXCJcbiAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzKClcIlxuICAgICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJpc01vYmlsZSA/IHVuZGVmaW5lZCA6IHJvd3NQZXJQYWdlT3B0aW9ucygpXCJcbiAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXG4gICAgICBbdG90YWxSZWNvcmRzTGFiZWxdPVwidG90YWxSZWNvcmRzTGFiZWwoKVwiXG4gICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvc2RjLXBhZ2luYXRvcj5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNjZWxsVHBsIGxldC1yb3cgbGV0LWNvbD1cImNvbFwiPlxuICAgIEBzd2l0Y2ggKGNvbC50eXBlKSB7IEBjYXNlICgnY2hlY2tib3gtc2VsZWN0aW9uJykge1xuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsQ2ZnKCdjaGVja2JveCcpIGFzIGNoZWNrYm94T3B0aW9uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1jaGVja2JveFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNSb3dTZWxlY3RlZChyb3cpXCIgKGNoYW5nZSk9XCJvblRvZ2dsZVJvdyhyb3csIGdldENoZWNrZWRWYWx1ZSgkZXZlbnQpKVwiIC8+XG4gICAgICAgIDxsYWJlbD57eyBfKHJvdywgY29sLmZpZWxkKSB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICB9IEBjYXNlICgnZGF0ZScpIHtcbiAgICB7eyBmb3JtYXREYXRlKF8ocm93LCBjb2wuZmllbGQpLCBjb2wuZm9ybWF0IHx8ICdzaG9ydERhdGUnKSB9fVxuICAgIH0gQGNhc2UgKCdzdHJvbmcnKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS1zdHJvbmctbGFiZWxcIj57eyBfKHJvdywgY29sLmZpZWxkKSB9fTwvZGl2PlxuICAgIH0gQGNhc2UgKCdjb2RlJykge1xuICAgIDxjb2RlIGNsYXNzPVwic2RjLXRhYmxlLWNvZGUtbGFiZWxcIj57eyBfKHJvdywgY29sLmZpZWxkKSB9fTwvY29kZT5cbiAgICB9IEBjYXNlICgnY3VycmVuY3knKSB7XG4gICAge3sgZm9ybWF0Q3VycmVuY3koXyhyb3csIGNvbC5maWVsZCksIGNvbC5mb3JtYXQgfHwgJ0JSTCcpIH19XG4gICAgfSBAY2FzZSAoJ3RhZycpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENmZygndGFnJykgYXMgdGFnT3B0aW9uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy10YWJsZS10YWdzXCI+XG4gICAgICAgIEBmb3IgKHRhZyBvZiB0YWdzT2Yocm93LCBjb2wpOyBsZXQgdCA9ICRpbmRleDsgdHJhY2sgdCkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRhYmxlLXRhZ1wiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwidGFnT3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IgfHwgbnVsbFwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRhZ09wdGlvbnMuY29sb3IgfHwgbnVsbFwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwidGFnT3B0aW9ucy50b29sdGlwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpICpuZ0lmPVwidGFnT3B0aW9ucy5pY29uXCIgW2NsYXNzXT1cInRhZ09wdGlvbnMuaWNvblwiPjwvaT5cbiAgICAgICAgICB7eyB0YWcgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICB9IEBjYXNlICgnYnV0dG9uJykge1xuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsQ2ZnKCdidXR0b24nKSBhcyBidXR0b25PcHRpb25zXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBfX2sgb2YgW2J1dHRvbktleShyb3csIGNvbCwgYnV0dG9uT3B0aW9ucyldXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtdGFibGUtYnV0dG9uXCI+XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOiA3MCVcIlxuICAgICAgICAgICAgW3NpemVdPVwiYnV0dG9uT3B0aW9ucy5zaXplXCJcbiAgICAgICAgICAgIFtwcmlvcml0eV09XCJidXR0b25PcHRpb25zLnByaW9yaXR5IHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICBbaWNvbl09XCJidXR0b25PcHRpb25zLmljb25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cImJ1dHRvbk9wdGlvbnMubGFiZWxcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbk9wdGlvbnMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImJ1dHRvbk9wdGlvbnMudG9vbHRpcFwiXG4gICAgICAgICAgICBbYXR0ci5zaXplXT1cImJ1dHRvbk9wdGlvbnMuc2l6ZVwiXG4gICAgICAgICAgICBbYXR0ci5wcmlvcml0eV09XCJidXR0b25PcHRpb25zLnByaW9yaXR5IHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICBbYXR0ci5zZXZlcml0eV09XCJidXR0b25PcHRpb25zLnByaW9yaXR5IHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICBbYXR0ci5pY29uXT1cImJ1dHRvbk9wdGlvbnMuaWNvblwiXG4gICAgICAgICAgICBbYXR0ci5sYWJlbF09XCJidXR0b25PcHRpb25zLmxhYmVsXCJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImJ1dHRvbk9wdGlvbnMuZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiYnV0dG9uT3B0aW9ucy50b29sdGlwIHx8IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1rZXldPVwiX19rXCJcbiAgICAgICAgICAgIChjbGljayk9XCJidXR0b25PcHRpb25zLmRpc2FibGVkID8gbnVsbCA6IG9uQnV0dG9uQ2xpY2socm93LCBjb2wpXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIH0gQGRlZmF1bHQgeyB7eyBfKHJvdywgY29sLmZpZWxkKSB9fSB9IH1cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NvcnRJY29uc1RwbCBsZXQtY29sPVwiY29sXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29sLnNvcnRhYmxlICE9PSBmYWxzZSAmJiBjb2wudHlwZSAhPT0gJ2NoZWNrYm94LXNlbGVjdGlvbidcIiBjbGFzcz1cInNkYy10YWJsZS1zb3J0LWluZGljYXRvclwiPlxuICAgIDxpICpuZ0lmPVwic29ydEZpZWxkKCkgIT09IGNvbC5maWVsZFwiIGNsYXNzPVwiZmFzIGZhLXNvcnQtYWx0IHNkYy10YWJsZS1zb3J0LW5ldXRyYWxcIj48L2k+XG4gICAgPGlcbiAgICAgICpuZ0lmPVwic29ydEZpZWxkKCkgPT09IGNvbC5maWVsZCAmJiBzb3J0T3JkZXIoKSA9PT0gMVwiXG4gICAgICBjbGFzcz1cImZhcyBmYS1zb3J0LWFtb3VudC11cC1hbHQgc2RjLXRhYmxlLXNvcnQtYWN0aXZlXCJcbiAgICA+PC9pPlxuICAgIDxpXG4gICAgICAqbmdJZj1cInNvcnRGaWVsZCgpID09PSBjb2wuZmllbGQgJiYgc29ydE9yZGVyKCkgPT09IC0xXCJcbiAgICAgIGNsYXNzPVwiZmFzIGZhLXNvcnQtYW1vdW50LWRvd24gc2RjLXRhYmxlLXNvcnQtYWN0aXZlXCJcbiAgICA+PC9pPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJjb2wuc29ydGFibGUgPT09IGZhbHNlIHx8IGNvbC50eXBlID09PSAnY2hlY2tib3gtc2VsZWN0aW9uJ1wiXG4gICAgY2xhc3M9XCJzZGMtdGFibGUtc29ydC1pbmRpY2F0b3Igc2RjLXRhYmxlLXNvcnQtaW5kaWNhdG9yLXBsYWNlaG9sZGVyXCJcbiAgPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -11,8 +11,8 @@ import * as i2 from "primeng/inputtext";
11
11
  import * as i3 from "primeng/keyfilter";
12
12
  import * as i4 from "primeng/tooltip";
13
13
  export class TextboxComponent extends InputsComponent {
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextboxComponent, isStandalone: true, selector: "sdc-textbox", providers: [
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextboxComponent, isStandalone: true, selector: "sdc-textbox", providers: [
16
16
  {
17
17
  provide: NG_VALUE_ACCESSOR,
18
18
  useExisting: forwardRef(() => TextboxComponent),
@@ -20,7 +20,7 @@ export class TextboxComponent extends InputsComponent {
20
20
  },
21
21
  ], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-textbox\">\n <div *ngIf=\"label || infoIcon\" class=\"flex align-items-center\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span class=\"required-field\" *ngIf=\"required\"> &bull;</span>\n </label>\n <i *ngIf=\"infoIcon\" class=\"fas fa-info-circle ml-3\" \n [pTooltip]=\"tooltipIcon\" \n tooltipZIndex=\"999999999999\"></i>\n </div>\n\n <input\n (input)=\"onInput($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [value]=\"value\"\n pInputText\n type=\"text\"\n [attr.maxlength]=\"maxlength\"\n [pKeyFilter]=\"keyFilter\"\n />\n\n <small\n *ngIf=\"message\"\n [ngClass]=\"getInvalidMessageClass()\"\n >{{ message }}</small>\n</div>\n", styles: [".sdc-textbox label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:7px;padding-bottom:7px}.sdc-textbox .required-field{margin-left:.25rem}.sdc-textbox ::ng-deep input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important;border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-textbox ::ng-deep input:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: KeyFilterModule }, { kind: "directive", type: i3.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextboxComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextboxComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'sdc-textbox', standalone: true, imports: [
26
26
  CommonModule,
@@ -27,10 +27,10 @@ export class ToastComponent {
27
27
  this.isLeaving = true;
28
28
  setTimeout(() => this.dismiss.emit(), 300);
29
29
  }
30
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ToastComponent, isStandalone: true, selector: "s-toast", inputs: { toast: "toast" }, outputs: { dismiss: "dismiss" }, host: { properties: { "class.toast--leaving": "this.isLeaving" } }, ngImport: i0, template: "<div\n class=\"toast\"\n [class.toast--info]=\"toast.severity === 'info'\"\n [class.toast--success]=\"toast.severity === 'success'\"\n [class.toast--warning]=\"toast.severity === 'warning'\"\n [class.toast--error]=\"toast.severity === 'error'\"\n>\n <div class=\"toast-content\">\n <i\n class=\"toast-icon fas fa-info\"\n [class.fa-info]=\"toast.severity === 'info'\"\n [class.fa-check]=\"toast.severity === 'success'\"\n [class.fa-exclamation-triangle]=\"toast.severity === 'warning'\"\n [class.fa-times]=\"toast.severity === 'error'\"\n ></i>\n <div class=\"text-container\">\n <span *ngIf=\"toast.title\" class=\"toast-summary\" [innerHTML]=\"toast.title\"></span>\n <span *ngIf=\"toast.text\" [innerHTML]=\"toast.text\"></span>\n </div>\n </div>\n <button *ngIf=\"toast.closable\" class=\"toast-close-button\" (click)=\"dismissToast()\"><i class=\"fas fa-times\"></i></button>\n</div>\n", styles: [":host{display:block}.toast{align-items:center;animation:fadeInDown .3s forwards;border-left:3px solid #428bca;border-radius:3px;box-shadow:0 1px 5px #00000040;color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;opacity:0;padding:10px 15px;position:relative;transform:translateY(-20px);width:400px}.toast .toast-content{align-items:center;flex-grow:1;display:flex;gap:15px}.toast .toast-content .toast-icon{align-items:center;background-color:#428bca;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.toast .toast-content .text-container{display:flex;flex-direction:column}.toast .toast-content .text-container .toast-summary{font-weight:700}.toast--success{background-color:#e0f0f0;border-left:3px solid #0c9348}.toast--success .toast-content .toast-icon{background-color:#0c9348}.toast--error{background-color:#fef0f0;border-left:3px solid #c13018}.toast--error .toast-content .toast-icon{background-color:#c13018}.toast--info{background-color:#f1f7f8;border-left:3px solid #428bca}.toast--info .toast-content .toast-icon{background-color:#428bca}.toast--warning{background-color:#fef4e3;border-left:3px solid #fcbf10}.toast--warning .toast-content .toast-icon{background-color:#fcbf10;color:#212533}.toast-close-button{background:none;border:none;color:#212533;font-size:1rem;cursor:pointer;margin-left:15px;transition:transform .2s ease-in-out}.toast-close-button:hover{transform:scale(1.1)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}:host.toast--leaving{animation:fadeOutUp .3s forwards}@media (max-width: 440px){.toast{width:calc(100% - 40px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastComponent, isStandalone: true, selector: "s-toast", inputs: { toast: "toast" }, outputs: { dismiss: "dismiss" }, host: { properties: { "class.toast--leaving": "this.isLeaving" } }, ngImport: i0, template: "<div\n class=\"toast\"\n [class.toast--info]=\"toast.severity === 'info'\"\n [class.toast--success]=\"toast.severity === 'success'\"\n [class.toast--warning]=\"toast.severity === 'warning'\"\n [class.toast--error]=\"toast.severity === 'error'\"\n>\n <div class=\"toast-content\">\n <i\n class=\"toast-icon fas fa-info\"\n [class.fa-info]=\"toast.severity === 'info'\"\n [class.fa-check]=\"toast.severity === 'success'\"\n [class.fa-exclamation-triangle]=\"toast.severity === 'warning'\"\n [class.fa-times]=\"toast.severity === 'error'\"\n ></i>\n <div class=\"text-container\">\n <span *ngIf=\"toast.title\" class=\"toast-summary\" [innerHTML]=\"toast.title\"></span>\n <span *ngIf=\"toast.text\" [innerHTML]=\"toast.text\"></span>\n </div>\n </div>\n <button *ngIf=\"toast.closable\" class=\"toast-close-button\" (click)=\"dismissToast()\"><i class=\"fas fa-times\"></i></button>\n</div>\n", styles: [":host{display:block}.toast{align-items:center;animation:fadeInDown .3s forwards;border-left:3px solid #428bca;border-radius:3px;box-shadow:0 1px 5px #00000040;color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;opacity:0;padding:10px 15px;position:relative;transform:translateY(-20px);width:400px}.toast .toast-content{align-items:center;flex-grow:1;display:flex;gap:15px}.toast .toast-content .toast-icon{align-items:center;background-color:#428bca;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.toast .toast-content .text-container{display:flex;flex-direction:column}.toast .toast-content .text-container .toast-summary{font-weight:700}.toast--success{background-color:#e0f0f0;border-left:3px solid #0c9348}.toast--success .toast-content .toast-icon{background-color:#0c9348}.toast--error{background-color:#fef0f0;border-left:3px solid #c13018}.toast--error .toast-content .toast-icon{background-color:#c13018}.toast--info{background-color:#f1f7f8;border-left:3px solid #428bca}.toast--info .toast-content .toast-icon{background-color:#428bca}.toast--warning{background-color:#fef4e3;border-left:3px solid #fcbf10}.toast--warning .toast-content .toast-icon{background-color:#fcbf10;color:#212533}.toast-close-button{background:none;border:none;color:#212533;font-size:1rem;cursor:pointer;margin-left:15px;transition:transform .2s ease-in-out}.toast-close-button:hover{transform:scale(1.1)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}:host.toast--leaving{animation:fadeOutUp .3s forwards}@media (max-width: 440px){.toast{width:calc(100% - 40px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToastComponent, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ selector: 's-toast', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n class=\"toast\"\n [class.toast--info]=\"toast.severity === 'info'\"\n [class.toast--success]=\"toast.severity === 'success'\"\n [class.toast--warning]=\"toast.severity === 'warning'\"\n [class.toast--error]=\"toast.severity === 'error'\"\n>\n <div class=\"toast-content\">\n <i\n class=\"toast-icon fas fa-info\"\n [class.fa-info]=\"toast.severity === 'info'\"\n [class.fa-check]=\"toast.severity === 'success'\"\n [class.fa-exclamation-triangle]=\"toast.severity === 'warning'\"\n [class.fa-times]=\"toast.severity === 'error'\"\n ></i>\n <div class=\"text-container\">\n <span *ngIf=\"toast.title\" class=\"toast-summary\" [innerHTML]=\"toast.title\"></span>\n <span *ngIf=\"toast.text\" [innerHTML]=\"toast.text\"></span>\n </div>\n </div>\n <button *ngIf=\"toast.closable\" class=\"toast-close-button\" (click)=\"dismissToast()\"><i class=\"fas fa-times\"></i></button>\n</div>\n", styles: [":host{display:block}.toast{align-items:center;animation:fadeInDown .3s forwards;border-left:3px solid #428bca;border-radius:3px;box-shadow:0 1px 5px #00000040;color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;opacity:0;padding:10px 15px;position:relative;transform:translateY(-20px);width:400px}.toast .toast-content{align-items:center;flex-grow:1;display:flex;gap:15px}.toast .toast-content .toast-icon{align-items:center;background-color:#428bca;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.toast .toast-content .text-container{display:flex;flex-direction:column}.toast .toast-content .text-container .toast-summary{font-weight:700}.toast--success{background-color:#e0f0f0;border-left:3px solid #0c9348}.toast--success .toast-content .toast-icon{background-color:#0c9348}.toast--error{background-color:#fef0f0;border-left:3px solid #c13018}.toast--error .toast-content .toast-icon{background-color:#c13018}.toast--info{background-color:#f1f7f8;border-left:3px solid #428bca}.toast--info .toast-content .toast-icon{background-color:#428bca}.toast--warning{background-color:#fef4e3;border-left:3px solid #fcbf10}.toast--warning .toast-content .toast-icon{background-color:#fcbf10;color:#212533}.toast-close-button{background:none;border:none;color:#212533;font-size:1rem;cursor:pointer;margin-left:15px;transition:transform .2s ease-in-out}.toast-close-button:hover{transform:scale(1.1)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}:host.toast--leaving{animation:fadeOutUp .3s forwards}@media (max-width: 440px){.toast{width:calc(100% - 40px)}}\n"] }]
36
36
  }], propDecorators: { toast: [{
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41
41
  type: HostBinding,
42
42
  args: ['class.toast--leaving']
43
43
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFdBQVcsRUFHWCx1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDOzs7QUFXdkIsTUFBTSxPQUFPLGNBQWM7SUFDZCxLQUFLLENBQVM7SUFFYixPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUd0QyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWpCLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBRXBDLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBc0IsQ0FBQztRQUMxRyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7d0dBaENRLGNBQWM7NEZBQWQsY0FBYyxvTUN2QjNCLDYvQkFzQkEsc3pERExjLFlBQVk7OzRGQU1iLGNBQWM7a0JBVDFCLFNBQVM7K0JBQ0ksU0FBUyxjQUNQLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUdoQyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFHQSxTQUFTO3NCQURmLFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnbGliL3NyYy9jb3JlL3R5cGVzL3RvYXN0LnR5cGUnO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXRvYXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgdG9hc3QhOiBUb2FzdDtcblxuICAgIEBPdXRwdXQoKSBkaXNtaXNzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50b2FzdC0tbGVhdmluZycpXG4gICAgcHVibGljIGlzTGVhdmluZyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0aW1lcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRvYXN0LnN0aWNreSAmJiB0aGlzLnRvYXN0LmR1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnN0YXJ0RGlzbWlzc0FuaW1hdGlvbigpLCB0aGlzLnRvYXN0LmR1cmF0aW9uKSBhcyB1bmtub3duIGFzIG51bWJlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRpc21pc3NUb2FzdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXJ0RGlzbWlzc0FuaW1hdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGFydERpc21pc3NBbmltYXRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMZWF2aW5nID0gdHJ1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmRpc21pc3MuZW1pdCgpLCAzMDApO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInRvYXN0XCJcbiAgICBbY2xhc3MudG9hc3QtLWluZm9dPVwidG9hc3Quc2V2ZXJpdHkgPT09ICdpbmZvJ1wiXG4gICAgW2NsYXNzLnRvYXN0LS1zdWNjZXNzXT1cInRvYXN0LnNldmVyaXR5ID09PSAnc3VjY2VzcydcIlxuICAgIFtjbGFzcy50b2FzdC0td2FybmluZ109XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ3dhcm5pbmcnXCJcbiAgICBbY2xhc3MudG9hc3QtLWVycm9yXT1cInRvYXN0LnNldmVyaXR5ID09PSAnZXJyb3InXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwidG9hc3QtY29udGVudFwiPlxuICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJ0b2FzdC1pY29uIGZhcyBmYS1pbmZvXCJcbiAgICAgICAgICAgIFtjbGFzcy5mYS1pbmZvXT1cInRvYXN0LnNldmVyaXR5ID09PSAnaW5mbydcIlxuICAgICAgICAgICAgW2NsYXNzLmZhLWNoZWNrXT1cInRvYXN0LnNldmVyaXR5ID09PSAnc3VjY2VzcydcIlxuICAgICAgICAgICAgW2NsYXNzLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXT1cInRvYXN0LnNldmVyaXR5ID09PSAnd2FybmluZydcIlxuICAgICAgICAgICAgW2NsYXNzLmZhLXRpbWVzXT1cInRvYXN0LnNldmVyaXR5ID09PSAnZXJyb3InXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvYXN0LnRpdGxlXCIgY2xhc3M9XCJ0b2FzdC1zdW1tYXJ5XCIgW2lubmVySFRNTF09XCJ0b2FzdC50aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG9hc3QudGV4dFwiIFtpbm5lckhUTUxdPVwidG9hc3QudGV4dFwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiAqbmdJZj1cInRvYXN0LmNsb3NhYmxlXCIgY2xhc3M9XCJ0b2FzdC1jbG9zZS1idXR0b25cIiAoY2xpY2spPVwiZGlzbWlzc1RvYXN0KClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cbjwvZGl2PlxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFdBQVcsRUFHWCx1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDOzs7QUFXdkIsTUFBTSxPQUFPLGNBQWM7SUFDZCxLQUFLLENBQVM7SUFFYixPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUd0QyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWpCLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBRXBDLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBc0IsQ0FBQztRQUMxRyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7d0dBaENRLGNBQWM7NEZBQWQsY0FBYyxvTUN2QjNCLDYvQkFzQkEsc3pERExjLFlBQVk7OzRGQU1iLGNBQWM7a0JBVDFCLFNBQVM7K0JBQ0ksU0FBUyxjQUNQLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUdoQyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFHQSxTQUFTO3NCQURmLFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy90b2FzdC50eXBlJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy10b2FzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RvYXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHRvYXN0ITogVG9hc3Q7XG5cbiAgICBAT3V0cHV0KCkgZGlzbWlzcyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudG9hc3QtLWxlYXZpbmcnKVxuICAgIHB1YmxpYyBpc0xlYXZpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgdGltZXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50b2FzdC5zdGlja3kgJiYgdGhpcy50b2FzdC5kdXJhdGlvbikge1xuICAgICAgICAgICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdGFydERpc21pc3NBbmltYXRpb24oKSwgdGhpcy50b2FzdC5kdXJhdGlvbikgYXMgdW5rbm93biBhcyBudW1iZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkaXNtaXNzVG9hc3QoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFydERpc21pc3NBbmltYXRpb24oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhcnREaXNtaXNzQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTGVhdmluZyA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kaXNtaXNzLmVtaXQoKSwgMzAwKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ0b2FzdFwiXG4gICAgW2NsYXNzLnRvYXN0LS1pbmZvXT1cInRvYXN0LnNldmVyaXR5ID09PSAnaW5mbydcIlxuICAgIFtjbGFzcy50b2FzdC0tc3VjY2Vzc109XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICBbY2xhc3MudG9hc3QtLXdhcm5pbmddPVwidG9hc3Quc2V2ZXJpdHkgPT09ICd3YXJuaW5nJ1wiXG4gICAgW2NsYXNzLnRvYXN0LS1lcnJvcl09XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ2Vycm9yJ1wiXG4+XG4gICAgPGRpdiBjbGFzcz1cInRvYXN0LWNvbnRlbnRcIj5cbiAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwidG9hc3QtaWNvbiBmYXMgZmEtaW5mb1wiXG4gICAgICAgICAgICBbY2xhc3MuZmEtaW5mb109XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ2luZm8nXCJcbiAgICAgICAgICAgIFtjbGFzcy5mYS1jaGVja109XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICAgICAgICAgIFtjbGFzcy5mYS1leGNsYW1hdGlvbi10cmlhbmdsZV09XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ3dhcm5pbmcnXCJcbiAgICAgICAgICAgIFtjbGFzcy5mYS10aW1lc109XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ2Vycm9yJ1wiXG4gICAgICAgID48L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0b2FzdC50aXRsZVwiIGNsYXNzPVwidG9hc3Qtc3VtbWFyeVwiIFtpbm5lckhUTUxdPVwidG9hc3QudGl0bGVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvYXN0LnRleHRcIiBbaW5uZXJIVE1MXT1cInRvYXN0LnRleHRcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gKm5nSWY9XCJ0b2FzdC5jbG9zYWJsZVwiIGNsYXNzPVwidG9hc3QtY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cImRpc21pc3NUb2FzdCgpXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==