@alauda-fe/common 1.0.3 → 1.1.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 (185) hide show
  1. package/a-chart/base-chart.d.ts +2 -2
  2. package/a-chart/chart.component.d.ts +3 -2
  3. package/a-chart/types.d.ts +5 -0
  4. package/a-metric-chart/a-metric-chart.component.d.ts +45 -2
  5. package/a-metric-chart/a-metric-chart.module.d.ts +2 -2
  6. package/a-metric-chart/utils/util.d.ts +1 -1
  7. package/api/acp-common-api.service.d.ts +26 -0
  8. package/api/cluster-version.service.d.ts +0 -3
  9. package/api/project-api.service.d.ts +5 -0
  10. package/api/public-api.d.ts +1 -0
  11. package/assets/icons/prod-icons.js +1 -1
  12. package/core/constants/patterns.d.ts +5 -0
  13. package/core/constants/status-icons.d.ts +1 -0
  14. package/core/directives/aui-code-editor.directive.d.ts +13 -0
  15. package/core/directives/feature-gate.directive.d.ts +1 -1
  16. package/core/directives/public-api.d.ts +2 -0
  17. package/core/guards/feature.guard.d.ts +1 -1
  18. package/core/module.d.ts +10 -10
  19. package/core/pipes/k8s-util.pipe.d.ts +13 -13
  20. package/core/pipes/k8s-util.pipe.module.d.ts +6 -1
  21. package/core/pipes/public-api.d.ts +3 -0
  22. package/{scm/pure-pipe/module.d.ts → core/pipes/pure.pipe.module.d.ts} +3 -0
  23. package/core/services/context.service.d.ts +1 -1
  24. package/core/utils/unit.d.ts +1 -0
  25. package/disabled-container/disabled-container.component.d.ts +1 -1
  26. package/disabled-container/disabled-container.module.d.ts +4 -4
  27. package/effect-directive/module.d.ts +1 -1
  28. package/esm2022/a-chart/a-chart.module.mjs +1 -1
  29. package/esm2022/a-chart/base-chart.mjs +7 -7
  30. package/esm2022/a-chart/chart.component.mjs +11 -3
  31. package/esm2022/a-chart/types.mjs +7 -2
  32. package/esm2022/a-metric-chart/a-metric-chart.component.mjs +38 -13
  33. package/esm2022/a-metric-chart/a-metric-chart.module.mjs +6 -8
  34. package/esm2022/a-metric-chart/bar-gauge/bar-gauge.component.mjs +6 -5
  35. package/esm2022/a-metric-chart/stat-chart/stat-chart.component.mjs +26 -12
  36. package/esm2022/a-metric-chart/table-chart/table-chart.component.mjs +3 -3
  37. package/esm2022/a-metric-chart/utils/util.mjs +6 -5
  38. package/esm2022/api/acp-common-api.service.mjs +34 -0
  39. package/esm2022/api/cluster-version.service.mjs +1 -7
  40. package/esm2022/api/project-api.service.mjs +17 -4
  41. package/esm2022/api/public-api.mjs +2 -1
  42. package/esm2022/array-form-table/form/component.mjs +2 -2
  43. package/esm2022/array-form-table/key-value-table/component.mjs +2 -2
  44. package/esm2022/business/resource-select/module.mjs +2 -2
  45. package/esm2022/chart/chart.module.mjs +1 -1
  46. package/esm2022/core/constants/patterns.mjs +6 -1
  47. package/esm2022/core/constants/status-icons.mjs +2 -1
  48. package/esm2022/core/directives/aui-code-editor.directive.mjs +30 -0
  49. package/esm2022/core/directives/declare.directive.mjs +27 -0
  50. package/esm2022/core/directives/feature-gate.directive.mjs +3 -3
  51. package/esm2022/core/directives/public-api.mjs +3 -1
  52. package/esm2022/core/guards/feature.guard.mjs +3 -5
  53. package/esm2022/core/module.mjs +19 -17
  54. package/esm2022/core/pipes/calc.pipe.mjs +21 -0
  55. package/esm2022/core/pipes/k8s-util.pipe.mjs +27 -27
  56. package/esm2022/core/pipes/k8s-util.pipe.module.mjs +8 -5
  57. package/esm2022/core/pipes/public-api.mjs +4 -1
  58. package/esm2022/core/pipes/pure.pipe.mjs +26 -0
  59. package/esm2022/core/pipes/pure.pipe.module.mjs +21 -0
  60. package/esm2022/core/services/context.service.mjs +5 -3
  61. package/esm2022/core/utils/common.mjs +3 -3
  62. package/esm2022/core/utils/unit.mjs +5 -1
  63. package/esm2022/disabled-container/disabled-container.component.mjs +7 -5
  64. package/esm2022/disabled-container/disabled-container.module.mjs +7 -11
  65. package/esm2022/effect-directive/module.mjs +4 -5
  66. package/esm2022/exec/module.mjs +3 -4
  67. package/esm2022/form/errors-mapper/errors-mapper.module.mjs +13 -4
  68. package/esm2022/form/labels-editor/component.mjs +8 -8
  69. package/esm2022/form/taints-editor/component.mjs +4 -6
  70. package/esm2022/form/validators/strong-password/strong-password-validator.directive.mjs +9 -10
  71. package/esm2022/form/validators/utils.mjs +47 -2
  72. package/esm2022/graphql/graphql.module.mjs +62 -0
  73. package/esm2022/graphql/graphql.service.mjs +45 -0
  74. package/esm2022/graphql/public-api.mjs +4 -0
  75. package/esm2022/graphql/queries.mjs +29 -0
  76. package/esm2022/graphql/types.mjs +6 -0
  77. package/esm2022/grid-layout/utils/grid.utils.mjs +2 -20
  78. package/esm2022/help-document/directive.mjs +3 -2
  79. package/esm2022/help-document/module.mjs +6 -4
  80. package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +3 -2
  81. package/esm2022/license/license-error/module.mjs +1 -1
  82. package/esm2022/multi-search/action-input/component.mjs +6 -7
  83. package/esm2022/multi-search/form/component.mjs +3 -4
  84. package/esm2022/multi-search/multi-search-tags/component.mjs +9 -9
  85. package/esm2022/overview-banner/overview-banner.component.mjs +5 -5
  86. package/esm2022/overview-banner/overview-banner.module.mjs +7 -7
  87. package/esm2022/page-guard/module.mjs +7 -4
  88. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.mjs +3 -2
  89. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +23 -5
  90. package/esm2022/page-scaffold/navigation/breadcrumb/module.mjs +16 -31
  91. package/esm2022/page-scaffold/navigation/lottie-icons/lottie-icon.directive.mjs +3 -2
  92. package/esm2022/page-scaffold/navigation/lottie-icons/module.mjs +6 -3
  93. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +4 -4
  94. package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +5 -7
  95. package/esm2022/page-scaffold/page-header/header-notify/header-notify.module.mjs +4 -4
  96. package/esm2022/page-scaffold/page-header/help-menu/module.mjs +13 -14
  97. package/esm2022/pie-derivative-chart/pie-derivative-chart.module.mjs +2 -2
  98. package/esm2022/public-api.mjs +2 -2
  99. package/esm2022/searchable-selector/module.mjs +1 -1
  100. package/esm2022/skeleton/module.mjs +1 -1
  101. package/esm2022/table/module.mjs +5 -5
  102. package/esm2022/translate/en.json +44 -1
  103. package/esm2022/translate/translate.directive.mjs +7 -7
  104. package/esm2022/translate/translate.module.mjs +18 -17
  105. package/esm2022/translate/translate.pipe.mjs +4 -3
  106. package/esm2022/translate/zh.json +42 -1
  107. package/esm2022/widget/card-section/card-section.component.mjs +23 -6
  108. package/esm2022/widget/current-time/component.mjs +6 -4
  109. package/esm2022/widget/date-range-picker/component.mjs +12 -9
  110. package/esm2022/widget/foldable-item-in-table/component.mjs +28 -6
  111. package/esm2022/widget/password-input/component.mjs +283 -0
  112. package/esm2022/widget/public-api.mjs +8 -1
  113. package/esm2022/widget/resource-multi-select/component.mjs +211 -0
  114. package/esm2022/widget/resource-multi-select/util.mjs +24 -0
  115. package/esm2022/{scm → widget}/search-panel/component.mjs +1 -1
  116. package/esm2022/{scm → widget}/search-panel/helper.directive.mjs +1 -1
  117. package/esm2022/{scm → widget}/search-panel/search-item/component.mjs +1 -1
  118. package/esm2022/widget/status-icon/status-icon.component.mjs +2 -2
  119. package/esm2022/widget/tags-label/component.mjs +2 -3
  120. package/esm2022/widget/terminating-tag/component.mjs +7 -4
  121. package/esm2022/{scm → widget}/text-ellipsis/component.mjs +1 -1
  122. package/esm2022/widget/text-with-url/component.mjs +6 -4
  123. package/esm2022/widget/widget.module.mjs +54 -86
  124. package/esm2022/widget/zero-state/zero-state.component.mjs +6 -6
  125. package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +102 -65
  126. package/exec/module.d.ts +1 -1
  127. package/form/errors-mapper/errors-mapper.module.d.ts +6 -0
  128. package/form/validators/strong-password/strong-password-validator.directive.d.ts +3 -3
  129. package/form/validators/utils.d.ts +3 -0
  130. package/graphql/graphql.module.d.ts +12 -0
  131. package/graphql/graphql.service.d.ts +14 -0
  132. package/graphql/public-api.d.ts +3 -0
  133. package/graphql/queries.d.ts +5 -0
  134. package/graphql/types.d.ts +46 -0
  135. package/help-document/directive.d.ts +1 -1
  136. package/help-document/module.d.ts +7 -7
  137. package/overview-banner/overview-banner.component.d.ts +1 -1
  138. package/overview-banner/overview-banner.module.d.ts +4 -3
  139. package/package.json +1 -1
  140. package/page-guard/module.d.ts +4 -1
  141. package/page-scaffold/navigation/breadcrumb/breadcrumb-slot.directive.d.ts +1 -1
  142. package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts +1 -1
  143. package/page-scaffold/navigation/breadcrumb/module.d.ts +8 -6
  144. package/page-scaffold/navigation/lottie-icons/lottie-icon.directive.d.ts +1 -1
  145. package/page-scaffold/navigation/lottie-icons/module.d.ts +4 -1
  146. package/page-scaffold/page-header/common-layout/common-layout.module.d.ts +2 -2
  147. package/page-scaffold/page-header/help-menu/module.d.ts +6 -5
  148. package/public-api.d.ts +1 -1
  149. package/styles/tailwind-preset.scss +1 -1
  150. package/translate/translate.directive.d.ts +3 -3
  151. package/translate/translate.module.d.ts +97 -4
  152. package/translate/translate.pipe.d.ts +1 -1
  153. package/widget/card-section/card-section.component.d.ts +4 -2
  154. package/widget/current-time/component.d.ts +1 -1
  155. package/widget/foldable-item-in-table/component.d.ts +1 -1
  156. package/{scm → widget}/password-input/component.d.ts +1 -1
  157. package/widget/public-api.d.ts +7 -0
  158. package/widget/terminating-tag/component.d.ts +1 -1
  159. package/widget/text-with-url/component.d.ts +1 -1
  160. package/widget/widget.module.d.ts +37 -21
  161. package/xterm/xterm-terminal/xterm-terminal.component.d.ts +14 -1
  162. package/esm2022/scm/declare.directive.mjs +0 -27
  163. package/esm2022/scm/password-input/component.mjs +0 -261
  164. package/esm2022/scm/password-input/module.mjs +0 -67
  165. package/esm2022/scm/password-input/public-api.mjs +0 -3
  166. package/esm2022/scm/public-api.mjs +0 -10
  167. package/esm2022/scm/pure-pipe/calc.pipe.mjs +0 -21
  168. package/esm2022/scm/pure-pipe/module.mjs +0 -18
  169. package/esm2022/scm/pure-pipe/public-api.mjs +0 -4
  170. package/esm2022/scm/pure-pipe/pure.pipe.mjs +0 -26
  171. package/esm2022/scm/resource-multi-select/component.mjs +0 -212
  172. package/esm2022/scm/resource-multi-select/util.mjs +0 -24
  173. package/scm/password-input/module.d.ts +0 -14
  174. package/scm/password-input/public-api.d.ts +0 -2
  175. package/scm/public-api.d.ts +0 -9
  176. package/scm/pure-pipe/public-api.d.ts +0 -3
  177. /package/{scm → core/directives}/declare.directive.d.ts +0 -0
  178. /package/{scm/pure-pipe → core/pipes}/calc.pipe.d.ts +0 -0
  179. /package/{scm/pure-pipe → core/pipes}/pure.pipe.d.ts +0 -0
  180. /package/{scm → widget}/resource-multi-select/component.d.ts +0 -0
  181. /package/{scm → widget}/resource-multi-select/util.d.ts +0 -0
  182. /package/{scm → widget}/search-panel/component.d.ts +0 -0
  183. /package/{scm → widget}/search-panel/helper.directive.d.ts +0 -0
  184. /package/{scm → widget}/search-panel/search-item/component.d.ts +0 -0
  185. /package/{scm → widget}/text-ellipsis/component.d.ts +0 -0
@@ -3,10 +3,9 @@ import { IconComponent, InputComponent, TagComponent } from '@alauda/ui';
3
3
  import { AsyncPipe, NgClass, NgFor, NgIf } from '@angular/common';
4
4
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
5
5
  import { FormsModule } from '@angular/forms';
6
- import { cloneDeep, isEmpty, isEqual, set } from 'lodash-es';
6
+ import { cloneDeep, isEmpty, set } from 'lodash-es';
7
7
  import { BehaviorSubject, combineLatest, distinctUntilChanged, fromEvent, map, merge, Observable, scan, Subject, take, takeUntil, tap, } from 'rxjs';
8
- import { ObservableInput, publishRef } from '../../core/public-api';
9
- import { PurePipe } from '../../scm/public-api';
8
+ import { isEqual, ObservableInput, publishRef, PurePipe, } from '../../core/public-api';
10
9
  import { MultiSearchActionInputComponent } from '../action-input/component';
11
10
  import { MultiSearchTagsComponent } from '../multi-search-tags/component';
12
11
  import * as i0 from "@angular/core";
@@ -376,4 +375,4 @@ __decorate([
376
375
  type: ViewChild,
377
376
  args: ['multiSearch', { static: true }]
378
377
  }] }); })();
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdELE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE9BQU8sRUFDUCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFB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LEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbkNvbXBvbmVudCwgSW5wdXRDb21wb25lbnQsIFRhZ0NvbXBvbmVudCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFbXB0eSwgaXNFcXVhbCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgT2JzZXJ2YWJsZSxcbiAgc2NhbixcbiAgU3ViamVjdCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIHB1Ymxpc2hSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgUHVyZVBpcGUgfSBmcm9tICcuLi8uLi9zY20vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWlucHV0L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgU2VhcmNoQ29uZGl0aW9uQ29uZmlnLFxuICBTZWFyY2hDb25kaXRpb24sXG4gIFNlYXJjaENvbmRpdGlvbk1vZGVsLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09QRVJBVE9SOiBzdHJpbmcgPSAnPSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1tdWx0aS1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBBc3luY1BpcGUsXG4gICAgVGFnQ29tcG9uZW50LFxuICAgIFB1cmVQaXBlLFxuICAgIE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQsXG4gICAgTXVsdGlTZWFyY2hUYWdzQ29tcG9uZW50LFxuICAgIE5nRm9yLFxuICAgIE5nSWYsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uQ3JlYXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gc2VhcmNoIHZhbHVlXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbltdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25zJCE6IE9ic2VydmFibGU8U2VhcmNoQ29uZGl0aW9uW10+O1xuXG4gIC8vIOexu+ebrumFjee9rlxuICBASW5wdXQoKVxuICBjb25kaXRpb25Db25maWc6IFNlYXJjaENvbmRpdGlvbkNvbmZpZ1tdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25Db25maWckITogT2JzZXJ2YWJsZTxTZWFyY2hDb25kaXRpb25Db25maWdbXT47XG5cbiAgLy8g5pCc57Si5pON5L2cXG4gIEBPdXRwdXQoKVxuICBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaENvbmRpdGlvbltdPigpO1xuXG4gIC8vIOadoeS7tuWPmOWMllxuICBAT3V0cHV0KClcbiAgY29uZGl0aW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uW10+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKVxuICBub3JtYWxJbnB1dENvbXBvbmVudDogTXVsdGlTZWFyY2hBY3Rpb25JbnB1dENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCd0YWdzUmVmJylcbiAgdGFnc0NvbXBvbmVudDogTXVsdGlTZWFyY2hUYWdzQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VhcmNoJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgbXVsdGlTZWFyY2hSZWY6IEVsZW1lbnRSZWY7XG5cbiAgYWRkZWRDb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsO1xuXG4gIC8vIOW9k+WJjW11bHRpLXNlYXJjaOe7hOS7tuaYr+WQpmZvY3VzXG4gIGZvY3VzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGFjdGlvblNjYW5uZXIkJCA9IG5ldyBTdWJqZWN0PFxuICAgIChpdGVtczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4gU2VhcmNoQ29uZGl0aW9uTW9kZWxbXVxuICA+KCk7XG5cbiAgZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdID0gW107XG4gIGV4aXN0aW5nQ29uZGl0aW9ucyQgPSBtZXJnZShcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbmRpdGlvbnMkLCB0aGlzLmNvbmRpdGlvbkNvbmZpZyRdKS5waXBlKFxuICAgICAgbWFwKChbY29uZGl0aW9ucywgY29uZGl0aW9uQ29uZmlnXSkgPT4ge1xuICAgICAgICBjb25zdCByZXMgPVxuICAgICAgICAgIGNvbmRpdGlvbnM/Lm1hcChjb25kaXRpb24gPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhpc3QgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucz8uZmluZChcbiAgICAgICAgICAgICAgZXhpc3QgPT4gZXhpc3QuY29uZGl0aW9uLnZhbHVlID09PSBjb25kaXRpb24uY29uZGl0aW9uLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGNvbmRpdGlvbkNvbmZpZz8uZmluZChcbiAgICAgICAgICAgICAgY29uZmlnID0+IGNvbmZpZy5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24sXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyDmiYDnu6fmib/nmoTmlbDmja7vvIzoi6Xlt7LlrZjlnKhleGlzdO+8jOWImee7p+aJv2V4aXN077yb6Iul5LiN5a2Y5Zyo77yM5YiZ57un5om/Y29uZmlnXG4gICAgICAgICAgICAvLyDmraTlpITnmoTnu6fmib/mmK/kuLrkuobpmLLmraLlpJbnlYxjb25kaXRpb25z5pWw5o2u55qE5Y+Y5YyW5a+86Ie05pON5L2c54q25oCB5Yi35pawXG4gICAgICAgICAgICAvLyDlm6DmraTvvIzpmaTkuoZjb25kaXRpb25z5pWw5o2u5aSW55qE6ZmE5Yqg5pWw5o2u77yM6YO95bqU6K+l57un5om/XG4gICAgICAgICAgICBjb25zdCBpbmhlcml0ID0ge1xuICAgICAgICAgICAgICAuLi5leGlzdCxcbiAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoaW5oZXJpdClcbiAgICAgICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiB7IHZhbHVlOiBjb25kaXRpb24uY29uZGl0aW9uIH0sXG4gICAgICAgICAgICAgICAgICBvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM6IGNvbmRpdGlvbi52YWx1ZXM/Lm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICB9IGFzIFNlYXJjaENvbmRpdGlvbk1vZGVsKVxuICAgICAgICAgICAgICA6ICh7XG4gICAgICAgICAgICAgICAgICAuLi5pbmhlcml0LFxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IGNvbmRpdGlvbi5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzOiBjb25kaXRpb24udmFsdWVzPy5tYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaW5kID0gaW5oZXJpdC52YWx1ZXM/LmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdFZhbHVlID0+IGluaGVyaXRWYWx1ZS52YWx1ZSA9PT0gdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaW5kXG4gICAgICAgICAgICAgICAgICAgICAgPyB7IC4uLmZpbmQgfVxuICAgICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9IGFzIFNlYXJjaENvbmRpdGlvbk1vZGVsKTtcbiAgICAgICAgICB9KSB8fCBbXTtcbiAgICAgICAgcmV0dXJuIChfOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiByZXM7XG4gICAgICB9KSxcbiAgICApLFxuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLFxuICApLnBpcGUoXG4gICAgc2NhbigoYWNjLCBjdXIpID0+IGN1cihhY2MpLCBbXSBhcyBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSxcbiAgICB0YXAoZXhpc3RpbmdDb25kaXRpb25zID0+IHtcbiAgICAgIHRoaXMuZXhpc3RpbmdDb25kaXRpb25zID0gZXhpc3RpbmdDb25kaXRpb25zO1xuICAgIH0pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBub0VkaXRpbmdDb25kaXRpb246IGJvb2xlYW4gPSB0cnVlO1xuICBub0VkaXRpbmdDb25kaXRpb24kID0gdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkLnBpcGUoXG4gICAgbWFwKGV4aXN0aW5nQ29uZGl0aW9ucyA9PlxuICAgICAgZXhpc3RpbmdDb25kaXRpb25zPy5ldmVyeShjb25kaXRpb24gPT4gIWNvbmRpdGlvbi5pc0VkaXRpbmcpLFxuICAgICksXG4gICAgdGFwKG5vRWRpdGluZ0NvbmRpdGlvbiA9PiAodGhpcy5ub0VkaXRpbmdDb25kaXRpb24gPSBub0VkaXRpbmdDb25kaXRpb24pKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgbm9EZWxldGluZ0NvbmRpdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIG5vRGVsZXRpbmdDb25kaXRpb24kID0gdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkLnBpcGUoXG4gICAgbWFwKGV4aXN0aW5nQ29uZGl0aW9ucyA9PlxuICAgICAgZXhpc3RpbmdDb25kaXRpb25zPy5ldmVyeShjb25kaXRpb24gPT4gIWNvbmRpdGlvbi5pc0RlbGV0aW5nKSxcbiAgICApLFxuICAgIHRhcChcbiAgICAgIG5vRGVsZXRpbmdDb25kaXRpb24gPT4gKHRoaXMubm9EZWxldGluZ0NvbmRpdGlvbiA9IG5vRGVsZXRpbmdDb25kaXRpb24pLFxuICAgICksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGFkZGVkSW5wdXRTaG91bGRIaWRkZW4kID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5ub0VkaXRpbmdDb25kaXRpb24kLFxuICAgIHRoaXMubm9EZWxldGluZ0NvbmRpdGlvbiQsXG4gICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW25vRWRpdGluZ0NvbmRpdGlvbiwgbm9EZWxldGluZ0NvbmRpdGlvbiwgZXhpc3RpbmdDb25kaXRpb25zXSkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKCFub0VkaXRpbmdDb25kaXRpb24gfHwgIW5vRGVsZXRpbmdDb25kaXRpb24pICYmXG4gICAgICAgIGV4aXN0aW5nQ29uZGl0aW9ucy5sZW5ndGggIT09IDBcbiAgICAgICk7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGdldCBpbnB1dENvbXBvbmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uICYmIHRoaXMubm9FZGl0aW5nQ29uZGl0aW9uXG4gICAgICA/IHRoaXMubm9ybWFsSW5wdXRDb21wb25lbnRcbiAgICAgIDogdGhpcy50YWdzQ29tcG9uZW50Py5pbnB1dENvbXBvbmVudDtcbiAgfVxuXG4gIENMRUFSX0lDT05fQ0xBU1MgPSAnc2VhcmNoLWNsZWFyLWljb24nO1xuXG4gIFNFQVJDSF9JQ09OX0NMQVNTID0gJ3NlYXJjaC1pY29uJztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuZXhpc3RpbmdDb25kaXRpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhPy5sZW5ndGggPT09IGI/Lmxlbmd0aCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV4aXN0aW5nQ29uZGl0aW9ucyA9PiB7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uc0NoYW5nZS5lbWl0KHRoaXMuZ2V0Q29uZGl0aW9uTW9kZWwoZXhpc3RpbmdDb25kaXRpb25zKSk7XG4gICAgICB9KTtcbiAgICAvLyDmraTlpITnmoRjbGlja+S6i+S7tuebkeWQrOS9v+eUqOS6huaNleiOt+iAjOmdnuWGkuazoe+8jOaYr+S4uuS6huiuqeS6i+S7tuinpuWPkeeahOaXtuacuuWFiOS6jnRhZy5jbGlja1xuICAgIC8vIOiLpXRhZy5jbGlja+WFiOinpuWPke+8jOS8muWvvOiHtGVsZW1lbnQuY29udGFpbnMoKeWIpOaWreWHuumUmVxuICAgIGZyb21FdmVudChkb2N1bWVudC5ib2R5LCAnY2xpY2snLCB7IGNhcHR1cmU6IHRydWUgfSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZWFyY2hCdG4odGFyZ2V0KSkge1xuICAgICAgICAgIHRoaXMubWFudWFsQ29tcGxldGUoZmFsc2UsIHRydWUpO1xuICAgICAgICAgIHRoaXMuaW5wdXRDb21wb25lbnQudG9vbFRpcEhpZGUoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgIGlmICh0aGlzLm11bHRpU2VhcmNoUmVmPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgLy8g5b2T54K55Ye75Yy65Z+f5Li6bXVsdGktc2VhcmNo57uE5Lu277yM6Ieq5Yqo6IGa54SmXG5cbiAgICAgICAgICAvLyDlr7nkuo7mk43kvZzmjInpkq7vvIzlj6rlgZpoaWRkZW4gdG9vbFRpcFxuICAgICAgICAgIGlmICh0aGlzLm5vdEFjdGlvbkVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRoaXMuaW5wdXRDb21wb25lbnQ/LmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICBjb25zdCBpc0ZvY3VzID0gdGhpcy5mb2N1cyQkLnZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKGlzRm9jdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwU2hvdygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKHRydWUpO1xuXG4gICAgICAgICAgICAvLyB0aGlzLmlucHV0Q29tcG9uZW50LnRvb2xUaXBIaWRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIOW9k+eCueWHu+WMuuWfn+S4uumdnnRvb2x0aXDnmoTlhbbku5bljLrln5/ml7bvvIzoh6rliqjmlLbnvKlcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm5vdFRvb2x0aXBDb250ZW50KHRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLm1hbnVhbEJsdXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzU2VhcmNoQnRuKGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0VsZW1lbnQoZWxlbWVudCwgZWxlbWVudCA9PlxuICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKHRoaXMuU0VBUkNIX0lDT05fQ0xBU1MpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdEFjdGlvbkVsZW1lbnQoZWxlbWVudDogRWxlbWVudCkge1xuICAgIHJldHVybiAhdGhpcy5jaGVja0VsZW1lbnQoXG4gICAgICBlbGVtZW50LFxuICAgICAgZWxlbWVudCA9PlxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5DTEVBUl9JQ09OX0NMQVNTKSB8fFxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5TRUFSQ0hfSUNPTl9DTEFTUykgfHxcbiAgICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKCdhdWktdGFnX19jbG9zZScpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdFRvb2x0aXBDb250ZW50KGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gIXRoaXMuY2hlY2tFbGVtZW50KFxuICAgICAgZWxlbWVudCxcbiAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC50YWdOYW1lID09PSAnQVVJLVRPT0xUSVAnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRWxlbWVudChlbGVtZW50OiBFbGVtZW50LCBmbjogKGU6IEVsZW1lbnQpID0+IGJvb2xlYW4pIHtcbiAgICB3aGlsZSAoZWxlbWVudCAmJiAhZm4oZWxlbWVudCkpIHtcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhZWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgbWFudWFsQ29tcGxldGUoXG4gICAgdG9Db250aW51ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG1hbnVhbEZvY3VzOiBib29sZWFuID0gZmFsc2UsXG4gICkge1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/LmlmQ29tcGxldGUodG9Db250aW51ZSwgbWFudWFsRm9jdXMpO1xuICB9XG5cbiAgbWFudWFsRm9jdXMoc2lsZW5jZT86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldEZvY3VzKHRydWUpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEZvY3VzKHNpbGVuY2UpO1xuICB9XG5cbiAgc2V0Rm9jdXMoZm9jdXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvY3VzJCQubmV4dChmb2N1cyk7XG4gIH1cblxuICBtYW51YWxCbHVyKCkge1xuICAgIHRoaXMuc2V0Rm9jdXMoZmFsc2UpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEJsdXIoKTtcbiAgfVxuXG4gIC8vIOaQnOe0ouaTjeS9nFxuICBkb1NlYXJjaCgpIHtcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyRcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCkpXG4gICAgICAuc3Vic2NyaWJlKGV4aXN0cyA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoLmVtaXQoXG4gICAgICAgICAgdGhpcy5nZXRDb25kaXRpb25Nb2RlbChcbiAgICAgICAgICAgIGV4aXN0cz8uZmlsdGVyKGV4aXN0ID0+ICF0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGV4aXN0KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8g5riF6Zmk5omA5pyJ5bey6YCJ5p2h5Lu2XG4gIGNsZWFyQ29uZGl0aW9ucygpIHtcbiAgICB0aGlzLmFkZGVkQ29uZGl0aW9uID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KChfOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBbXSk7XG4gIH1cblxuICAvLyDnp7vpmaTlvZPliY3mnaHku7ZcbiAgcmVtb3ZlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCByZW1vdmUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBjb25zdCBpZHggPSBleGlzdGluZ0NvbmRpdGlvbnMuZmluZEluZGV4KFxuICAgICAgICBjb24gPT4gY29uLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgICk7XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KHJlbW92ZSk7XG4gIH1cblxuICAvLyDmm7TmlrDmnaHku7ZcbiAgdXBkYXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBfdXBkYXRlID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGluZGV4LCAxLCBjb25kaXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcblxuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX3VwZGF0ZSk7XG4gIH1cblxuICAvLyDmt7vliqBjb25kaXRpb25cbiAgYWRkQ29uZGl0aW9uKGFjdGl2ZUNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCBfYWRkID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnB1c2goYWN0aXZlQ29uZGl0aW9uKTtcbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChfYWRkKTtcbiAgfVxuXG4gIC8vIOiuvue9rmNvbmRpdGlvbueahOeKtuaAgeS4uue8lui+keaAgVxuICBzZXRDb25kaXRpb25FZGl0aW5nKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBpZiAodGhpcy5pc0dyYW1tYXJDdXN0b21Db25kaXRpb24oY29uZGl0aW9uKSkgcmV0dXJuO1xuICAgIGNvbnN0IF91cGRhdGUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBpZiAoIWV4aXN0aW5nQ29uZGl0aW9ucykgcmV0dXJuO1xuICAgICAgY29uc3QgaWR4ID0gZXhpc3RpbmdDb25kaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgY29uID0+IGNvbi5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24udmFsdWUsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25kaXRpb25zRXhjZXB0Q3VyID0gW1xuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKDAsIGlkeCkgfHwgW10pLFxuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKGlkeCArIDEpIHx8IFtdKSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGFscmVhZHlIYXZlQWN0aW9uID0gY29uZGl0aW9uc0V4Y2VwdEN1ci5zb21lKGNvbiA9PlxuICAgICAgICB0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGNvbiksXG4gICAgICApO1xuICAgICAgLy8g5b2T5bey57uP5a2Y5Zyo5pON5L2c5Lit55qEY29uZGl0aW9u5pe277yM5Lya57un57ut57u05oqk5LmL5YmN5pON5L2c77yM5Lit5q2i5paw55qE5pON5L2c6KGM5Li6XG4gICAgICAvLyDkuIrov7DlpITnkIbpgLvovpHkuLvopoHmmK/kuLrkuobpgb/lhY3mk43kvZzliLDkuIDljYrvvIjmr5TlpoLmnKrpgInmi6lvcGVyYXRvcuOAgeacqumAieaLqWNvbmRpdGlvbuaXtu+8ieWwseWIh+aNouiHs+WPpuS4gOS4qmNvbmRpdGlvbuaTjeS9nO+8jOatpOaXtuivpeacquWujOaIkOeahOaTjeS9nOW6lOivpeWmguS9leWkhOeQhu+8jOaaguacque7meWumuOAglxuICAgICAgaWYgKGFscmVhZHlIYXZlQWN0aW9uIHx8IHRoaXMuYWRkZWRDb25kaXRpb24pIHJldHVybiBleGlzdGluZ0NvbmRpdGlvbnM7XG5cbiAgICAgIGNvbnN0IGZpbmQgPSBleGlzdGluZ0NvbmRpdGlvbnNbaWR4XTtcbiAgICAgIC8vIOWwhuW9k+WJjeaJgOaTjeS9nGNvbmRpdGlvbueahOeKtuaAgemHjee9ruS4umVkaXRpbmdcbiAgICAgIGZpbmQuaXNEZWxldGluZyA9IGZhbHNlO1xuICAgICAgZmluZC5pc0VkaXRpbmcgPSB0cnVlO1xuXG4gICAgICBmaW5kLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGZpbmQpO1xuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG5cbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KF91cGRhdGUpO1xuICB9XG5cbiAgLy8g6K6+572uY29uZGl0aW9u55qE54q25oCB5Li65Yig6Zmk5oCBXG4gIHNldENvbmRpdGlvbkRlbGV0aW5nKGluZGV4PzogbnVtYmVyKSB7XG4gICAgY29uc3QgX2RlbGV0ZSA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IE51bWJlci5pc0ludGVnZXIoaW5kZXgpXG4gICAgICAgID8gZXhpc3RpbmdDb25kaXRpb25zW2luZGV4XVxuICAgICAgICA6IGV4aXN0aW5nQ29uZGl0aW9ucy5hdCgtMSk7XG5cbiAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgc2V0KGNvbmRpdGlvbiwgJ2lzRGVsZXRpbmcnLCB0cnVlKTtcbiAgICAgICAgY29uZGl0aW9uLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGNvbmRpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX2RlbGV0ZSk7XG4gIH1cblxuICBjb21wbGV0ZSh7XG4gICAgYWN0aXZlQ29uZGl0aW9uLFxuICAgIHRvQ29udGludWUsXG4gICAgbWFudWFsRm9jdXMsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICBhY3RpdmVDb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsO1xuICAgIHRvQ29udGludWU/OiBib29sZWFuO1xuICAgIG1hbnVhbEZvY3VzPzogYm9vbGVhbjtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkge1xuICAgIGlmIChhY3RpdmVDb25kaXRpb24pIHtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0RlbGV0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKE51bWJlci5pc0ludGVnZXIoaW5kZXgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbmRpdGlvbihhY3RpdmVDb25kaXRpb24sIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUNvbmRpdGlvbikge1xuICAgICAgdGhpcy5hZGRDb25kaXRpb24oYWN0aXZlQ29uZGl0aW9uKTtcbiAgICB9XG4gICAgLy8g6Ieq5Yqo6IGa54SmXG4gICAgaWYgKG1hbnVhbEZvY3VzKSB7XG4gICAgICB0aGlzLm1hbnVhbEZvY3VzKCF0b0NvbnRpbnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzR3JhbW1hckN1c3RvbUNvbmRpdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5Db25maWcgPSB0aGlzLmNvbmRpdGlvbkNvbmZpZy5zb21lKGNvbmZpZyA9PlxuICAgICAgaXNFcXVhbChjb25kaXRpb24uY29uZGl0aW9uLCBjb25maWcuY29uZGl0aW9uKSxcbiAgICApO1xuICAgIC8vIOWmguaenOW9k+WJjWNvbmRpdGlvbuS4jeWcqGNvbmZpZ+S4re+8jOS4lG9wZXJhdG9y5LiN5Li66buY6K6k5YC877yM5YiZ5Luj6KGo5b2T5YmNY29uZGl0aW9u5piv55So5oi36YCa6L+H6K+t5rOV6Ieq5a6a5LmJ55qE77yM5q2k5pe25LiN5YWB6K646YCa6L+HVUnkv67mlLlcbiAgICAvLyDogIPomZHliLDmnKrmnaXkvJrlhYHorrjnlKjmiLfovpPlhaXliJvlu7pjb25kaXRpb27vvIzmraTml7bmmK/lhYHorrjnlKjmiLfpgJrov4dVSeWGjeasoeS/ruaUueeahOOAguatpOexu+aDheWGteeahOeJueaAp++8miFpbkNvbmZpZyAmJiBvcGVyYXRvciA9PT0gREVGQVVMVF9PUEVSQVRPUlxuICAgIHJldHVybiAhaW5Db25maWcgJiYgY29uZGl0aW9uLm9wZXJhdG9yICE9PSBERUZBVUxUX09QRVJBVE9SO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25kaXRpb25Nb2RlbChjb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbnM/Lm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICB2YWx1ZXM6IGNvbmRpdGlvbi5zZWxlY3RlZFZhbHVlcz8ubWFwKHZhbHVlID0+IHZhbHVlLnZhbHVlKSB8fCBbXSxcbiAgICB9KSk7XG4gIH1cblxuICBjb25kaXRpb25JbkFjdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbi5pc0VkaXRpbmcgfHwgY29uZGl0aW9uLmlzRGVsZXRpbmc7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhdWktaW5wdXQgbXVsdGktc2VhcmNoXCJcbiAgI211bHRpU2VhcmNoXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2VhcmNoLWZvY3VzJzogZm9jdXMkJCB8IGFzeW5jXG4gIH1cIlxuPlxuICA8IS0tIOW3sumAieaLqeexu+ebrnRhZ3MgLS0+XG4gIDxhY2wtbXVsdGktc2VhcmNoLXRhZ3NcbiAgICAjdGFnc1JlZlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICd0YWdzLXdpZHRoLXdpdGgtZGVsZXRlJzogJGFueShleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmMpPy5sZW5ndGgsXG4gICAgICAndGFncy13aWR0aCc6ICEoJGFueShleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmMpPy5sZW5ndGgpLFxuICAgIH1cIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2NvbmRpdGlvbkNyZWF0YWJsZV09XCJjb25kaXRpb25DcmVhdGFibGVcIlxuICAgIFtleGlzdGluZ0NvbmRpdGlvbnNdPVwiZXhpc3RpbmdDb25kaXRpb25zXCJcbiAgICBbY29uZGl0aW9uQ29uZmlnXT1cImNvbmRpdGlvbkNvbmZpZ1wiXG4gICAgKHJlbW92ZUNvbmRpdGlvbik9XCJyZW1vdmVDb25kaXRpb24oJGV2ZW50KVwiXG4gICAgKHNldENvbmRpdGlvbkVkaXRpbmcpPVwic2V0Q29uZGl0aW9uRWRpdGluZygkZXZlbnQpXCJcbiAgICAoc2V0Q29uZGl0aW9uRGVsZXRpbmcpPVwic2V0Q29uZGl0aW9uRGVsZXRpbmcoJGV2ZW50KVwiXG4gICAgKHNlYXJjaCk9XCJkb1NlYXJjaCgpXCJcbiAgICAoY29tcGxldGVkKT1cImNvbXBsZXRlKCRldmVudClcIlxuICA+XG4gICAgPCEtLSDmnKvlsL7ovpPlhaXmoYYgLS0+XG4gICAgPGFjbC1tdWx0aS1zZWFyY2gtYWN0aW9uLWlucHV0XG4gICAgICAjaW5wdXRSZWZcbiAgICAgIGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiXG4gICAgICBbaXNFZGl0aW5nXT1cInRydWVcIlxuICAgICAgW2hpZGRlbl09XCJhZGRlZElucHV0U2hvdWxkSGlkZGVuJCB8IGFzeW5jXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbY29uZGl0aW9uQ3JlYXRhYmxlXT1cImNvbmRpdGlvbkNyZWF0YWJsZVwiXG4gICAgICBbY29uZGl0aW9uQ29uZmlnXT1cImNvbmRpdGlvbkNvbmZpZ1wiXG4gICAgICBbZXhpc3RpbmdDb25kaXRpb25zXT1cImV4aXN0aW5nQ29uZGl0aW9ucyQgfCBhc3luY1wiXG4gICAgICBbKG5nTW9kZWwpXT1cImFkZGVkQ29uZGl0aW9uXCJcbiAgICAgIChjb21wbGV0ZWQpPVwiY29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAoZGVsZXRlKT1cInNldENvbmRpdGlvbkRlbGV0aW5nKClcIlxuICAgICAgKHNlYXJjaCk9XCJkb1NlYXJjaCgpXCJcbiAgICA+PC9hY2wtbXVsdGktc2VhcmNoLWFjdGlvbi1pbnB1dD5cbiAgPC9hY2wtbXVsdGktc2VhcmNoLXRhZ3M+XG5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1zdWZmaXhcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiRhbnkoZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwic2VhcmNoLWNsZWFyXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LW4tNCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIkNMRUFSX0lDT05fQ0xBU1NcIlxuICAgICAgICBpY29uPVwieG1hcmtfc21hbGxcIlxuICAgICAgICBzaXplPVwiMTRcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJDb25kaXRpb25zKCk7IGRvU2VhcmNoKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXN1ZmZpeFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN1ZmZpeC13cmFwcGVyXCI+XG4gICAgICAgIDxhdWktaWNvblxuICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1uLTQgdHctY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIlNFQVJDSF9JQ09OX0NMQVNTXCJcbiAgICAgICAgICBpY29uPVwibWFnbmlmaWVyXCJcbiAgICAgICAgICAoY2xpY2spPVwiZG9TZWFyY2goKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLE9BQU8sRUFDUCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztJ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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbkNvbXBvbmVudCwgSW5wdXRDb21wb25lbnQsIFRhZ0NvbXBvbmVudCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFbXB0eSwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgT2JzZXJ2YWJsZSxcbiAgc2NhbixcbiAgU3ViamVjdCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBpc0VxdWFsLFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIHB1Ymxpc2hSZWYsXG4gIFB1cmVQaXBlLFxufSBmcm9tICcuLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTXVsdGlTZWFyY2hBY3Rpb25JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2FjdGlvbi1pbnB1dC9jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlTZWFyY2hUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VhcmNoLXRhZ3MvY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFNlYXJjaENvbmRpdGlvbkNvbmZpZyxcbiAgU2VhcmNoQ29uZGl0aW9uLFxuICBTZWFyY2hDb25kaXRpb25Nb2RlbCxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PUEVSQVRPUjogc3RyaW5nID0gJz0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbXVsdGktc2VhcmNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRhZ0NvbXBvbmVudCxcbiAgICBQdXJlUGlwZSxcbiAgICBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50LFxuICAgIE11bHRpU2VhcmNoVGFnc0NvbXBvbmVudCxcbiAgICBOZ0ZvcixcbiAgICBOZ0lmLFxuICAgIElucHV0Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbkNyZWF0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIHNlYXJjaCB2YWx1ZVxuICBASW5wdXQoKVxuICBjb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25bXTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgY29uZGl0aW9ucyQhOiBPYnNlcnZhYmxlPFNlYXJjaENvbmRpdGlvbltdPjtcblxuICAvLyDnsbvnm67phY3nva5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uQ29uZmlnOiBTZWFyY2hDb25kaXRpb25Db25maWdbXTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgY29uZGl0aW9uQ29uZmlnJCE6IE9ic2VydmFibGU8U2VhcmNoQ29uZGl0aW9uQ29uZmlnW10+O1xuXG4gIC8vIOaQnOe0ouaTjeS9nFxuICBAT3V0cHV0KClcbiAgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25bXT4oKTtcblxuICAvLyDmnaHku7blj5jljJZcbiAgQE91dHB1dCgpXG4gIGNvbmRpdGlvbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaENvbmRpdGlvbltdPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJylcbiAgbm9ybWFsSW5wdXRDb21wb25lbnQ6IE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgndGFnc1JlZicpXG4gIHRhZ3NDb21wb25lbnQ6IE11bHRpU2VhcmNoVGFnc0NvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdtdWx0aVNlYXJjaCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIG11bHRpU2VhcmNoUmVmOiBFbGVtZW50UmVmO1xuXG4gIGFkZGVkQ29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbDtcblxuICAvLyDlvZPliY1tdWx0aS1zZWFyY2jnu4Tku7bmmK/lkKZmb2N1c1xuICBmb2N1cyQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBhY3Rpb25TY2FubmVyJCQgPSBuZXcgU3ViamVjdDxcbiAgICAoaXRlbXM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IFNlYXJjaENvbmRpdGlvbk1vZGVsW11cbiAgPigpO1xuXG4gIGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSA9IFtdO1xuICBleGlzdGluZ0NvbmRpdGlvbnMkID0gbWVyZ2UoXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5jb25kaXRpb25zJCwgdGhpcy5jb25kaXRpb25Db25maWckXSkucGlwZShcbiAgICAgIG1hcCgoW2NvbmRpdGlvbnMsIGNvbmRpdGlvbkNvbmZpZ10pID0+IHtcbiAgICAgICAgY29uc3QgcmVzID1cbiAgICAgICAgICBjb25kaXRpb25zPy5tYXAoY29uZGl0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0ID0gdGhpcy5leGlzdGluZ0NvbmRpdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgIGV4aXN0ID0+IGV4aXN0LmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBjb25kaXRpb25Db25maWc/LmZpbmQoXG4gICAgICAgICAgICAgIGNvbmZpZyA9PiBjb25maWcuY29uZGl0aW9uLnZhbHVlID09PSBjb25kaXRpb24uY29uZGl0aW9uLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8g5omA57un5om/55qE5pWw5o2u77yM6Iul5bey5a2Y5ZyoZXhpc3TvvIzliJnnu6fmib9leGlzdO+8m+iLpeS4jeWtmOWcqO+8jOWImee7p+aJv2NvbmZpZ1xuICAgICAgICAgICAgLy8g5q2k5aSE55qE57un5om/5piv5Li65LqG6Ziy5q2i5aSW55WMY29uZGl0aW9uc+aVsOaNrueahOWPmOWMluWvvOiHtOaTjeS9nOeKtuaAgeWIt+aWsFxuICAgICAgICAgICAgLy8g5Zug5q2k77yM6Zmk5LqGY29uZGl0aW9uc+aVsOaNruWklueahOmZhOWKoOaVsOaNru+8jOmDveW6lOivpee7p+aJv1xuICAgICAgICAgICAgY29uc3QgaW5oZXJpdCA9IHtcbiAgICAgICAgICAgICAgLi4uZXhpc3QsXG4gICAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBpc0VtcHR5KGluaGVyaXQpXG4gICAgICAgICAgICAgID8gKHtcbiAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogeyB2YWx1ZTogY29uZGl0aW9uLmNvbmRpdGlvbiB9LFxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IGNvbmRpdGlvbi5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzOiBjb25kaXRpb24udmFsdWVzPy5tYXAodmFsdWUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgfSBhcyBTZWFyY2hDb25kaXRpb25Nb2RlbClcbiAgICAgICAgICAgICAgOiAoe1xuICAgICAgICAgICAgICAgICAgLi4uaW5oZXJpdCxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlczogY29uZGl0aW9uLnZhbHVlcz8ubWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmluZCA9IGluaGVyaXQudmFsdWVzPy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRWYWx1ZSA9PiBpbmhlcml0VmFsdWUudmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmluZFxuICAgICAgICAgICAgICAgICAgICAgID8geyAuLi5maW5kIH1cbiAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfSBhcyBTZWFyY2hDb25kaXRpb25Nb2RlbCk7XG4gICAgICAgICAgfSkgfHwgW107XG4gICAgICAgIHJldHVybiAoXzogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4gcmVzO1xuICAgICAgfSksXG4gICAgKSxcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJCxcbiAgKS5waXBlKFxuICAgIHNjYW4oKGFjYywgY3VyKSA9PiBjdXIoYWNjKSwgW10gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSksXG4gICAgdGFwKGV4aXN0aW5nQ29uZGl0aW9ucyA9PiB7XG4gICAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyA9IGV4aXN0aW5nQ29uZGl0aW9ucztcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgbm9FZGl0aW5nQ29uZGl0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgbm9FZGl0aW5nQ29uZGl0aW9uJCA9IHRoaXMuZXhpc3RpbmdDb25kaXRpb25zJC5waXBlKFxuICAgIG1hcChleGlzdGluZ0NvbmRpdGlvbnMgPT5cbiAgICAgIGV4aXN0aW5nQ29uZGl0aW9ucz8uZXZlcnkoY29uZGl0aW9uID0+ICFjb25kaXRpb24uaXNFZGl0aW5nKSxcbiAgICApLFxuICAgIHRhcChub0VkaXRpbmdDb25kaXRpb24gPT4gKHRoaXMubm9FZGl0aW5nQ29uZGl0aW9uID0gbm9FZGl0aW5nQ29uZGl0aW9uKSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIG5vRGVsZXRpbmdDb25kaXRpb246IGJvb2xlYW4gPSB0cnVlO1xuICBub0RlbGV0aW5nQ29uZGl0aW9uJCA9IHRoaXMuZXhpc3RpbmdDb25kaXRpb25zJC5waXBlKFxuICAgIG1hcChleGlzdGluZ0NvbmRpdGlvbnMgPT5cbiAgICAgIGV4aXN0aW5nQ29uZGl0aW9ucz8uZXZlcnkoY29uZGl0aW9uID0+ICFjb25kaXRpb24uaXNEZWxldGluZyksXG4gICAgKSxcbiAgICB0YXAoXG4gICAgICBub0RlbGV0aW5nQ29uZGl0aW9uID0+ICh0aGlzLm5vRGVsZXRpbmdDb25kaXRpb24gPSBub0RlbGV0aW5nQ29uZGl0aW9uKSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBhZGRlZElucHV0U2hvdWxkSGlkZGVuJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubm9FZGl0aW5nQ29uZGl0aW9uJCxcbiAgICB0aGlzLm5vRGVsZXRpbmdDb25kaXRpb24kLFxuICAgIHRoaXMuZXhpc3RpbmdDb25kaXRpb25zJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtub0VkaXRpbmdDb25kaXRpb24sIG5vRGVsZXRpbmdDb25kaXRpb24sIGV4aXN0aW5nQ29uZGl0aW9uc10pID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICghbm9FZGl0aW5nQ29uZGl0aW9uIHx8ICFub0RlbGV0aW5nQ29uZGl0aW9uKSAmJlxuICAgICAgICBleGlzdGluZ0NvbmRpdGlvbnMubGVuZ3RoICE9PSAwXG4gICAgICApO1xuICAgIH0pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBnZXQgaW5wdXRDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9EZWxldGluZ0NvbmRpdGlvbiAmJiB0aGlzLm5vRWRpdGluZ0NvbmRpdGlvblxuICAgICAgPyB0aGlzLm5vcm1hbElucHV0Q29tcG9uZW50XG4gICAgICA6IHRoaXMudGFnc0NvbXBvbmVudD8uaW5wdXRDb21wb25lbnQ7XG4gIH1cblxuICBDTEVBUl9JQ09OX0NMQVNTID0gJ3NlYXJjaC1jbGVhci1pY29uJztcblxuICBTRUFSQ0hfSUNPTl9DTEFTUyA9ICdzZWFyY2gtaWNvbic7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYT8ubGVuZ3RoID09PSBiPy5sZW5ndGgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShleGlzdGluZ0NvbmRpdGlvbnMgPT4ge1xuICAgICAgICB0aGlzLmNvbmRpdGlvbnNDaGFuZ2UuZW1pdCh0aGlzLmdldENvbmRpdGlvbk1vZGVsKGV4aXN0aW5nQ29uZGl0aW9ucykpO1xuICAgICAgfSk7XG4gICAgLy8g5q2k5aSE55qEY2xpY2vkuovku7bnm5HlkKzkvb/nlKjkuobmjZXojrfogIzpnZ7lhpLms6HvvIzmmK/kuLrkuoborqnkuovku7bop6blj5HnmoTml7bmnLrlhYjkuo50YWcuY2xpY2tcbiAgICAvLyDoi6V0YWcuY2xpY2vlhYjop6blj5HvvIzkvJrlr7zoh7RlbGVtZW50LmNvbnRhaW5zKCnliKTmlq3lh7rplJlcbiAgICBmcm9tRXZlbnQoZG9jdW1lbnQuYm9keSwgJ2NsaWNrJywgeyBjYXB0dXJlOiB0cnVlIH0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50O1xuXG4gICAgICAgIGlmICh0aGlzLmlzU2VhcmNoQnRuKHRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLm1hbnVhbENvbXBsZXRlKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICB0aGlzLmlucHV0Q29tcG9uZW50LnRvb2xUaXBIaWRlKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbFxuICAgICAgICBpZiAodGhpcy5tdWx0aVNlYXJjaFJlZj8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgIC8vIOW9k+eCueWHu+WMuuWfn+S4um11bHRpLXNlYXJjaOe7hOS7tu+8jOiHquWKqOiBmueEplxuXG4gICAgICAgICAgLy8g5a+55LqO5pON5L2c5oyJ6ZKu77yM5Y+q5YGaaGlkZGVuIHRvb2xUaXBcbiAgICAgICAgICBpZiAodGhpcy5ub3RBY3Rpb25FbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSB0aGlzLmlucHV0Q29tcG9uZW50Py5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgY29uc3QgaXNGb2N1cyA9IHRoaXMuZm9jdXMkJC52YWx1ZTtcbiAgICAgICAgICAgICAgdGhpcy5tYW51YWxGb2N1cyhpc0ZvY3VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5wdXRDb21wb25lbnQudG9vbFRpcFNob3coKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tYW51YWxGb2N1cyh0cnVlKTtcblxuICAgICAgICAgICAgLy8gdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwSGlkZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyDlvZPngrnlh7vljLrln5/kuLrpnZ50b29sdGlw55qE5YW25LuW5Yy65Z+f5pe277yM6Ieq5Yqo5pS257ypXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5ub3RUb29sdGlwQ29udGVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5tYW51YWxCbHVyKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NlYXJjaEJ0bihlbGVtZW50OiBFbGVtZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tFbGVtZW50KGVsZW1lbnQsIGVsZW1lbnQgPT5cbiAgICAgIGVsZW1lbnQ/LmNsYXNzTmFtZT8uaW5jbHVkZXM/Lih0aGlzLlNFQVJDSF9JQ09OX0NMQVNTKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBub3RBY3Rpb25FbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gIXRoaXMuY2hlY2tFbGVtZW50KFxuICAgICAgZWxlbWVudCxcbiAgICAgIGVsZW1lbnQgPT5cbiAgICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKHRoaXMuQ0xFQVJfSUNPTl9DTEFTUykgfHxcbiAgICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKHRoaXMuU0VBUkNIX0lDT05fQ0xBU1MpIHx8XG4gICAgICAgIGVsZW1lbnQ/LmNsYXNzTmFtZT8uaW5jbHVkZXM/LignYXVpLXRhZ19fY2xvc2UnKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBub3RUb29sdGlwQ29udGVudChlbGVtZW50OiBFbGVtZW50KSB7XG4gICAgcmV0dXJuICF0aGlzLmNoZWNrRWxlbWVudChcbiAgICAgIGVsZW1lbnQsXG4gICAgICBlbGVtZW50ID0+IGVsZW1lbnQudGFnTmFtZSA9PT0gJ0FVSS1UT09MVElQJyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0VsZW1lbnQoZWxlbWVudDogRWxlbWVudCwgZm46IChlOiBFbGVtZW50KSA9PiBib29sZWFuKSB7XG4gICAgd2hpbGUgKGVsZW1lbnQgJiYgIWZuKGVsZW1lbnQpKSB7XG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIH1cblxuICAgIHJldHVybiAhIWVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIG1hbnVhbENvbXBsZXRlKFxuICAgIHRvQ29udGludWU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBtYW51YWxGb2N1czogYm9vbGVhbiA9IGZhbHNlLFxuICApIHtcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50Py5pZkNvbXBsZXRlKHRvQ29udGludWUsIG1hbnVhbEZvY3VzKTtcbiAgfVxuXG4gIG1hbnVhbEZvY3VzKHNpbGVuY2U/OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRGb2N1cyh0cnVlKTtcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50Py5tYW51YWxGb2N1cyhzaWxlbmNlKTtcbiAgfVxuXG4gIHNldEZvY3VzKGZvY3VzOiBib29sZWFuKSB7XG4gICAgdGhpcy5mb2N1cyQkLm5leHQoZm9jdXMpO1xuICB9XG5cbiAgbWFudWFsQmx1cigpIHtcbiAgICB0aGlzLnNldEZvY3VzKGZhbHNlKTtcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50Py5tYW51YWxCbHVyKCk7XG4gIH1cblxuICAvLyDmkJzntKLmk43kvZxcbiAgZG9TZWFyY2goKSB7XG4gICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkXG4gICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKVxuICAgICAgLnN1YnNjcmliZShleGlzdHMgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaC5lbWl0KFxuICAgICAgICAgIHRoaXMuZ2V0Q29uZGl0aW9uTW9kZWwoXG4gICAgICAgICAgICBleGlzdHM/LmZpbHRlcihleGlzdCA9PiAhdGhpcy5jb25kaXRpb25JbkFjdGlvbihleGlzdCkpLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIOa4hemZpOaJgOacieW3sumAieadoeS7tlxuICBjbGVhckNvbmRpdGlvbnMoKSB7XG4gICAgdGhpcy5hZGRlZENvbmRpdGlvbiA9IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dCgoXzogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4gW10pO1xuICB9XG5cbiAgLy8g56e76Zmk5b2T5YmN5p2h5Lu2XG4gIHJlbW92ZUNvbmRpdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgY29uc3QgcmVtb3ZlID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgY29uc3QgaWR4ID0gZXhpc3RpbmdDb25kaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgY29uID0+IGNvbi5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24udmFsdWUsXG4gICAgICApO1xuICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnNwbGljZShpZHgsIDEpO1xuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChyZW1vdmUpO1xuICB9XG5cbiAgLy8g5pu05paw5p2h5Lu2XG4gIHVwZGF0ZUNvbmRpdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgX3VwZGF0ZSA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnNwbGljZShpbmRleCwgMSwgY29uZGl0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aXN0aW5nQ29uZGl0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG5cbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KF91cGRhdGUpO1xuICB9XG5cbiAgLy8g5re75YqgY29uZGl0aW9uXG4gIGFkZENvbmRpdGlvbihhY3RpdmVDb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgY29uc3QgX2FkZCA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGV4aXN0aW5nQ29uZGl0aW9ucy5wdXNoKGFjdGl2ZUNvbmRpdGlvbik7XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcblxuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX2FkZCk7XG4gIH1cblxuICAvLyDorr7nva5jb25kaXRpb27nmoTnirbmgIHkuLrnvJbovpHmgIFcbiAgc2V0Q29uZGl0aW9uRWRpdGluZyhjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgaWYgKHRoaXMuaXNHcmFtbWFyQ3VzdG9tQ29uZGl0aW9uKGNvbmRpdGlvbikpIHJldHVybjtcbiAgICBjb25zdCBfdXBkYXRlID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgaWYgKCFleGlzdGluZ0NvbmRpdGlvbnMpIHJldHVybjtcbiAgICAgIGNvbnN0IGlkeCA9IGV4aXN0aW5nQ29uZGl0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIGNvbiA9PiBjb24uY29uZGl0aW9uLnZhbHVlID09PSBjb25kaXRpb24uY29uZGl0aW9uLnZhbHVlLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgY29uZGl0aW9uc0V4Y2VwdEN1ciA9IFtcbiAgICAgICAgLi4uKGV4aXN0aW5nQ29uZGl0aW9ucy5zbGljZSgwLCBpZHgpIHx8IFtdKSxcbiAgICAgICAgLi4uKGV4aXN0aW5nQ29uZGl0aW9ucy5zbGljZShpZHggKyAxKSB8fCBbXSksXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBhbHJlYWR5SGF2ZUFjdGlvbiA9IGNvbmRpdGlvbnNFeGNlcHRDdXIuc29tZShjb24gPT5cbiAgICAgICAgdGhpcy5jb25kaXRpb25JbkFjdGlvbihjb24pLFxuICAgICAgKTtcbiAgICAgIC8vIOW9k+W3sue7j+WtmOWcqOaTjeS9nOS4reeahGNvbmRpdGlvbuaXtu+8jOS8mue7p+e7ree7tOaKpOS5i+WJjeaTjeS9nO+8jOS4reatouaWsOeahOaTjeS9nOihjOS4ulxuICAgICAgLy8g5LiK6L+w5aSE55CG6YC76L6R5Li76KaB5piv5Li65LqG6YG/5YWN5pON5L2c5Yiw5LiA5Y2K77yI5q+U5aaC5pyq6YCJ5oupb3BlcmF0b3LjgIHmnKrpgInmi6ljb25kaXRpb27ml7bvvInlsLHliIfmjaLoh7Plj6bkuIDkuKpjb25kaXRpb27mk43kvZzvvIzmraTml7bor6XmnKrlrozmiJDnmoTmk43kvZzlupTor6XlpoLkvZXlpITnkIbvvIzmmoLmnKrnu5nlrprjgIJcbiAgICAgIGlmIChhbHJlYWR5SGF2ZUFjdGlvbiB8fCB0aGlzLmFkZGVkQ29uZGl0aW9uKSByZXR1cm4gZXhpc3RpbmdDb25kaXRpb25zO1xuXG4gICAgICBjb25zdCBmaW5kID0gZXhpc3RpbmdDb25kaXRpb25zW2lkeF07XG4gICAgICAvLyDlsIblvZPliY3miYDmk43kvZxjb25kaXRpb27nmoTnirbmgIHph43nva7kuLplZGl0aW5nXG4gICAgICBmaW5kLmlzRGVsZXRpbmcgPSBmYWxzZTtcbiAgICAgIGZpbmQuaXNFZGl0aW5nID0gdHJ1ZTtcblxuICAgICAgZmluZC5hY3Rpb25Nb2RlbCA9IGNsb25lRGVlcChmaW5kKTtcbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChfdXBkYXRlKTtcbiAgfVxuXG4gIC8vIOiuvue9rmNvbmRpdGlvbueahOeKtuaAgeS4uuWIoOmZpOaAgVxuICBzZXRDb25kaXRpb25EZWxldGluZyhpbmRleD86IG51bWJlcikge1xuICAgIGNvbnN0IF9kZWxldGUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBjb25zdCBjb25kaXRpb24gPSBOdW1iZXIuaXNJbnRlZ2VyKGluZGV4KVxuICAgICAgICA/IGV4aXN0aW5nQ29uZGl0aW9uc1tpbmRleF1cbiAgICAgICAgOiBleGlzdGluZ0NvbmRpdGlvbnMuYXQoLTEpO1xuXG4gICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgIHNldChjb25kaXRpb24sICdpc0RlbGV0aW5nJywgdHJ1ZSk7XG4gICAgICAgIGNvbmRpdGlvbi5hY3Rpb25Nb2RlbCA9IGNsb25lRGVlcChjb25kaXRpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KF9kZWxldGUpO1xuICB9XG5cbiAgY29tcGxldGUoe1xuICAgIGFjdGl2ZUNvbmRpdGlvbixcbiAgICB0b0NvbnRpbnVlLFxuICAgIG1hbnVhbEZvY3VzLFxuICAgIGluZGV4LFxuICB9OiB7XG4gICAgYWN0aXZlQ29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbDtcbiAgICB0b0NvbnRpbnVlPzogYm9vbGVhbjtcbiAgICBtYW51YWxGb2N1cz86IGJvb2xlYW47XG4gICAgaW5kZXg/OiBudW1iZXI7XG4gIH0pIHtcbiAgICBpZiAoYWN0aXZlQ29uZGl0aW9uKSB7XG4gICAgICBhY3RpdmVDb25kaXRpb24uaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgICBhY3RpdmVDb25kaXRpb24uaXNEZWxldGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGluZGV4KSkge1xuICAgICAgdGhpcy51cGRhdGVDb25kaXRpb24oYWN0aXZlQ29uZGl0aW9uLCBpbmRleCk7XG4gICAgfSBlbHNlIGlmIChhY3RpdmVDb25kaXRpb24pIHtcbiAgICAgIHRoaXMuYWRkQ29uZGl0aW9uKGFjdGl2ZUNvbmRpdGlvbik7XG4gICAgfVxuICAgIC8vIOiHquWKqOiBmueEplxuICAgIGlmIChtYW51YWxGb2N1cykge1xuICAgICAgdGhpcy5tYW51YWxGb2N1cyghdG9Db250aW51ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0dyYW1tYXJDdXN0b21Db25kaXRpb24oY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGluQ29uZmlnID0gdGhpcy5jb25kaXRpb25Db25maWcuc29tZShjb25maWcgPT5cbiAgICAgIGlzRXF1YWwoY29uZGl0aW9uLmNvbmRpdGlvbiwgY29uZmlnLmNvbmRpdGlvbiksXG4gICAgKTtcbiAgICAvLyDlpoLmnpzlvZPliY1jb25kaXRpb27kuI3lnKhjb25maWfkuK3vvIzkuJRvcGVyYXRvcuS4jeS4uum7mOiupOWAvO+8jOWImeS7o+ihqOW9k+WJjWNvbmRpdGlvbuaYr+eUqOaIt+mAmui/h+ivreazleiHquWumuS5ieeahO+8jOatpOaXtuS4jeWFgeiuuOmAmui/h1VJ5L+u5pS5XG4gICAgLy8g6ICD6JmR5Yiw5pyq5p2l5Lya5YWB6K6455So5oi36L6T5YWl5Yib5bu6Y29uZGl0aW9u77yM5q2k5pe25piv5YWB6K6455So5oi36YCa6L+HVUnlho3mrKHkv67mlLnnmoTjgILmraTnsbvmg4XlhrXnmoTnibnmgKfvvJohaW5Db25maWcgJiYgb3BlcmF0b3IgPT09IERFRkFVTFRfT1BFUkFUT1JcbiAgICByZXR1cm4gIWluQ29uZmlnICYmIGNvbmRpdGlvbi5vcGVyYXRvciAhPT0gREVGQVVMVF9PUEVSQVRPUjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uTW9kZWwoY29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkge1xuICAgIHJldHVybiBjb25kaXRpb25zPy5tYXAoY29uZGl0aW9uID0+ICh7XG4gICAgICBjb25kaXRpb246IGNvbmRpdGlvbi5jb25kaXRpb24udmFsdWUsXG4gICAgICBvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgdmFsdWVzOiBjb25kaXRpb24uc2VsZWN0ZWRWYWx1ZXM/Lm1hcCh2YWx1ZSA9PiB2YWx1ZS52YWx1ZSkgfHwgW10sXG4gICAgfSkpO1xuICB9XG5cbiAgY29uZGl0aW9uSW5BY3Rpb24oY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIHJldHVybiBjb25kaXRpb24uaXNFZGl0aW5nIHx8IGNvbmRpdGlvbi5pc0RlbGV0aW5nO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXVpLWlucHV0IG11bHRpLXNlYXJjaFwiXG4gICNtdWx0aVNlYXJjaFxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NlYXJjaC1mb2N1cyc6IGZvY3VzJCQgfCBhc3luY1xuICB9XCJcbj5cbiAgPCEtLSDlt7LpgInmi6nnsbvnm650YWdzIC0tPlxuICA8YWNsLW11bHRpLXNlYXJjaC10YWdzXG4gICAgI3RhZ3NSZWZcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndGFncy13aWR0aC13aXRoLWRlbGV0ZSc6ICRhbnkoZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jKT8ubGVuZ3RoLFxuICAgICAgJ3RhZ3Mtd2lkdGgnOiAhKCRhbnkoZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jKT8ubGVuZ3RoKSxcbiAgICB9XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtjb25kaXRpb25DcmVhdGFibGVdPVwiY29uZGl0aW9uQ3JlYXRhYmxlXCJcbiAgICBbZXhpc3RpbmdDb25kaXRpb25zXT1cImV4aXN0aW5nQ29uZGl0aW9uc1wiXG4gICAgW2NvbmRpdGlvbkNvbmZpZ109XCJjb25kaXRpb25Db25maWdcIlxuICAgIChyZW1vdmVDb25kaXRpb24pPVwicmVtb3ZlQ29uZGl0aW9uKCRldmVudClcIlxuICAgIChzZXRDb25kaXRpb25FZGl0aW5nKT1cInNldENvbmRpdGlvbkVkaXRpbmcoJGV2ZW50KVwiXG4gICAgKHNldENvbmRpdGlvbkRlbGV0aW5nKT1cInNldENvbmRpdGlvbkRlbGV0aW5nKCRldmVudClcIlxuICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgKGNvbXBsZXRlZCk9XCJjb21wbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICAgIDwhLS0g5pyr5bC+6L6T5YWl5qGGIC0tPlxuICAgIDxhY2wtbXVsdGktc2VhcmNoLWFjdGlvbi1pbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImlucHV0LXdyYXBwZXJcIlxuICAgICAgW2lzRWRpdGluZ109XCJ0cnVlXCJcbiAgICAgIFtoaWRkZW5dPVwiYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgfCBhc3luY1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2NvbmRpdGlvbkNyZWF0YWJsZV09XCJjb25kaXRpb25DcmVhdGFibGVcIlxuICAgICAgW2NvbmRpdGlvbkNvbmZpZ109XCJjb25kaXRpb25Db25maWdcIlxuICAgICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgWyhuZ01vZGVsKV09XCJhZGRlZENvbmRpdGlvblwiXG4gICAgICAoY29tcGxldGVkKT1cImNvbXBsZXRlKCRldmVudClcIlxuICAgICAgKGRlbGV0ZSk9XCJzZXRDb25kaXRpb25EZWxldGluZygpXCJcbiAgICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgPjwvYWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXQ+XG4gIDwvYWNsLW11bHRpLXNlYXJjaC10YWdzPlxuXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtc3VmZml4XCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIkYW55KGV4aXN0aW5nQ29uZGl0aW9ucyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgICBjbGFzcz1cInNlYXJjaC1jbGVhclwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwidHctdGV4dC1uLTQgdHctY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJDTEVBUl9JQ09OX0NMQVNTXCJcbiAgICAgICAgaWNvbj1cInhtYXJrX3NtYWxsXCJcbiAgICAgICAgc2l6ZT1cIjE0XCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyQ29uZGl0aW9ucygpOyBkb1NlYXJjaCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1zdWZmaXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdWZmaXgtd3JhcHBlclwiPlxuICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICBjbGFzcz1cInR3LXRleHQtbi00IHR3LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJTRUFSQ0hfSUNPTl9DTEFTU1wiXG4gICAgICAgICAgaWNvbj1cIm1hZ25pZmllclwiXG4gICAgICAgICAgKGNsaWNrKT1cImRvU2VhcmNoKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID48L2F1aS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -2,12 +2,11 @@ import { TagModule } from '@alauda/ui';
2
2
  import { NgClass, NgFor, NgIf } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
4
4
  import { FormsModule } from '@angular/forms';
5
- import { PurePipeModule } from '../../scm/public-api';
5
+ import { PurePipe } from '../../public-api';
6
6
  import { MultiSearchActionInputComponent } from '../action-input/component';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@alauda/ui";
9
- import * as i2 from "../../scm/pure-pipe/pure.pipe";
10
- import * as i3 from "@angular/forms";
9
+ import * as i2 from "@angular/forms";
11
10
  const _c0 = ["inputRef"];
12
11
  function MultiSearchTagsComponent_ng_container_1_aui_tag_1_Template(rf, ctx) { if (rf & 1) {
13
12
  const _r8 = i0.ɵɵgetCurrentView();
@@ -70,7 +69,7 @@ export class MultiSearchTagsComponent {
70
69
  getValueContent(condition) {
71
70
  return condition?.selectedValues
72
71
  ?.map(value => value.label || value.value)
73
- ?.join(condition.separator ?? '|');
72
+ ?.join(condition.separator ?? ' | ');
74
73
  }
75
74
  static { this.ɵfac = function MultiSearchTagsComponent_Factory(t) { return new (t || MultiSearchTagsComponent)(); }; }
76
75
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MultiSearchTagsComponent, selectors: [["acl-multi-search-tags"]], viewQuery: function MultiSearchTagsComponent_Query(rf, ctx) { if (rf & 1) {
@@ -90,8 +89,9 @@ export class MultiSearchTagsComponent {
90
89
  } }, dependencies: [NgIf,
91
90
  NgFor,
92
91
  TagModule, i1.TagComponent, NgClass,
93
- PurePipeModule, i2.PurePipe, MultiSearchActionInputComponent,
94
- FormsModule, i3.NgControlStatus, i3.NgModel], styles: ["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%]{width:100%;min-height:30px;max-height:160px;padding-top:4px;flex:1;display:flex;flex-wrap:wrap;align-items:center}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%] aui-tag{max-width:calc(100% - 8px)}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%] .aui-tag{margin-left:0;max-width:100%}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%] .input-wrapper{padding-bottom:4px;max-width:100%;width:max-content;min-width:180px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis;flex-grow:1;flex-shrink:0}"], changeDetection: 0 }); }
92
+ PurePipe,
93
+ MultiSearchActionInputComponent,
94
+ FormsModule, i2.NgControlStatus, i2.NgModel], styles: ["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%]{width:100%;min-height:30px;max-height:160px;flex:1;display:flex;flex-wrap:wrap;align-items:center}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%] aui-tag{max-width:calc(100% - 8px)}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%] .aui-tag{margin-left:0;max-width:100%}[_nghost-%COMP%] .search-content[_ngcontent-%COMP%] .input-wrapper{padding-bottom:4px;max-width:100%;width:max-content;min-width:180px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis;flex-grow:1;flex-shrink:0}"], changeDetection: 0 }); }
95
95
  }
96
96
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultiSearchTagsComponent, [{
97
97
  type: Component,
@@ -100,10 +100,10 @@ export class MultiSearchTagsComponent {
100
100
  NgFor,
101
101
  TagModule,
102
102
  NgClass,
103
- PurePipeModule,
103
+ PurePipe,
104
104
  MultiSearchActionInputComponent,
105
105
  FormsModule,
106
- ], template: "<div class=\"search-content\">\n <ng-container *ngFor=\"let condition of existingConditions; let index = index\">\n <aui-tag\n *ngIf=\"!conditionInAction(condition); else inAction\"\n class=\"tw-ml-6 tw-h-[22px] tw-mb-4\"\n [ngClass]=\"condition.tagClass\"\n [type]=\"condition.tagType || 'info'\"\n [border]=\"true\"\n [closeable]=\"true\"\n (close)=\"removeCondition.emit(condition); search.emit()\"\n (click)=\"setConditionEditing.emit(condition)\"\n size=\"mini\"\n >\n <span\n [title]=\"\n (condition | pure: getConditionLabel) +\n ' ' +\n condition.operator +\n ' ' +\n (condition | pure: getValueContent)\n \"\n >\n {{ condition | pure: getConditionLabel }}\n {{ condition.operator }}\n {{ condition | pure: getValueContent }}\n </span>\n </aui-tag>\n\n <ng-template #inAction>\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [ngClass]=\"{ 'deleting-input': condition.isDeleting }\"\n [isEditing]=\"condition.isEditing\"\n [conditionCreatable]=\"conditionCreatable\"\n [placeholder]=\"placeholder\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions\"\n [(ngModel)]=\"condition.actionModel\"\n (completed)=\"\n completed.emit({\n activeCondition: $event.activeCondition,\n toContinue: $event.toContinue,\n manualFocus: $event.manualFocus,\n index: index\n })\n \"\n (delete)=\"setConditionDeleting.emit(index - 1)\"\n (editing)=\"setConditionEditing.emit(condition)\"\n (search)=\"search.emit()\"\n ></acl-multi-search-action-input>\n </ng-template>\n </ng-container>\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}:host .search-content{width:100%;min-height:30px;max-height:160px;padding-top:4px;flex:1;display:flex;flex-wrap:wrap;align-items:center}:host .search-content ::ng-deep aui-tag{max-width:calc(100% - 8px)}:host .search-content ::ng-deep .aui-tag{margin-left:0;max-width:100%}:host .search-content ::ng-deep .input-wrapper{padding-bottom:4px;max-width:100%;width:max-content;min-width:180px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis;flex-grow:1;flex-shrink:0}\n"] }]
106
+ ], template: "<div class=\"search-content\">\n <ng-container *ngFor=\"let condition of existingConditions; let index = index\">\n <aui-tag\n *ngIf=\"!conditionInAction(condition); else inAction\"\n class=\"tw-ml-6 tw-h-[22px] tw-mb-4\"\n [ngClass]=\"condition.tagClass\"\n [type]=\"condition.tagType || 'info'\"\n [border]=\"true\"\n [closeable]=\"true\"\n (close)=\"removeCondition.emit(condition); search.emit()\"\n (click)=\"setConditionEditing.emit(condition)\"\n size=\"mini\"\n >\n <span\n [title]=\"\n (condition | pure: getConditionLabel) +\n ' ' +\n condition.operator +\n ' ' +\n (condition | pure: getValueContent)\n \"\n >\n {{ condition | pure: getConditionLabel }}\n {{ condition.operator }}\n {{ condition | pure: getValueContent }}\n </span>\n </aui-tag>\n\n <ng-template #inAction>\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [ngClass]=\"{ 'deleting-input': condition.isDeleting }\"\n [isEditing]=\"condition.isEditing\"\n [conditionCreatable]=\"conditionCreatable\"\n [placeholder]=\"placeholder\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions\"\n [(ngModel)]=\"condition.actionModel\"\n (completed)=\"\n completed.emit({\n activeCondition: $event.activeCondition,\n toContinue: $event.toContinue,\n manualFocus: $event.manualFocus,\n index: index\n })\n \"\n (delete)=\"setConditionDeleting.emit(index - 1)\"\n (editing)=\"setConditionEditing.emit(condition)\"\n (search)=\"search.emit()\"\n ></acl-multi-search-action-input>\n </ng-template>\n </ng-container>\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}:host .search-content{width:100%;min-height:30px;max-height:160px;flex:1;display:flex;flex-wrap:wrap;align-items:center}:host .search-content ::ng-deep aui-tag{max-width:calc(100% - 8px)}:host .search-content ::ng-deep .aui-tag{margin-left:0;max-width:100%}:host .search-content ::ng-deep .input-wrapper{padding-bottom:4px;max-width:100%;width:max-content;min-width:180px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis;flex-grow:1;flex-shrink:0}\n"] }]
107
107
  }], null, { placeholder: [{
108
108
  type: Input
109
109
  }], conditionCreatable: [{
@@ -126,4 +126,4 @@ export class MultiSearchTagsComponent {
126
126
  type: ViewChild,
127
127
  args: ['inputRef']
128
128
  }] }); })();
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbXVsdGktc2VhcmNoL211bHRpLXNlYXJjaC10YWdzL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7SUNYeEUsa0NBVUM7SUFIQyxxT0FBUyx5Q0FBK0IsU0FBRSxlQUFBLG9CQUFhLENBQUEsSUFBQywrTkFDL0MsZUFBQSw2Q0FBbUMsQ0FBQSxJQURZO0lBSXhELCtCQVFDOzs7SUFDQyxZQUdGOzs7SUFBQSxpQkFBTyxFQUFBOzs7O0lBcEJQLCtDQUE4Qix3Q0FBQSxnQkFBQSxtQkFBQTtJQVM1QixlQU1DO0lBTkQsc0xBTUM7SUFFRCxlQUdGO0lBSEUsNExBR0Y7Ozs7O0lBSUEsMkRBcUJDO0lBWkMsMFBBQWEsaURBQ2YsSUFEcUMsaVFBRXRCLGVBQUEsb0pBT3JCLENBQUEsSUFUMkMscVBBU3pCLGVBQUEsNkNBQWtDLENBQUMsQ0FBQyxDQUFBLElBVFgsK1BBVXhCLGVBQUEsOENBQW1DLENBQUEsSUFWWCwyTUFXekIsZUFBQSxxQkFBYSxDQUFBLElBWFk7SUFZcEMsaUJBQWdDOzs7O0lBbEIvQiw2RUFBc0QscUNBQUEsaURBQUEsbUNBQUEsMkNBQUEsaURBQUEscUNBQUE7OztJQS9CNUQsNkJBQThFO0lBQzVFLGlHQXdCVTtJQUVWLHlJQXVCYztJQUNoQiwwQkFBZTs7Ozs7SUFqRFYsZUFBcUM7SUFBckMsOERBQXFDLGlCQUFBOzs7QUQ2QjVDLE1BQU0sT0FBTyx3QkFBd0I7SUFoQnJDO1FBOEJFLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFHM0Qsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFHL0QseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdsQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBS3hCLENBQUM7S0FrQk47SUFiQyxpQkFBaUIsQ0FBQyxTQUErQjtRQUMvQyxPQUFPLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBK0I7UUFDL0MsT0FBTyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssSUFBSSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztJQUNwRSxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQStCO1FBQzdDLE9BQU8sU0FBUyxFQUFFLGNBQWM7WUFDOUIsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDMUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO3lGQWhEVSx3QkFBd0I7b0VBQXhCLHdCQUF3Qjs7Ozs7OztZQ2hDckMsOEJBQTRCO1lBQzFCLDJGQW1EZTtZQUNmLGtCQUF5QjtZQUMzQixpQkFBTTs7WUFyRGdDLGVBQXVCO1lBQXZCLGdEQUF1Qjs0QkRzQnpELElBQUk7WUFDSixLQUFLO1lBQ0wsU0FBUyxtQkFDVCxPQUFPO1lBQ1AsY0FBYyxlQUNkLCtCQUErQjtZQUMvQixXQUFXOzt1RkFHRix3QkFBd0I7Y0FoQnBDLFNBQVM7MkJBQ0UsdUJBQXVCLGNBQ3JCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QztvQkFDUCxJQUFJO29CQUNKLEtBQUs7b0JBQ0wsU0FBUztvQkFDVCxPQUFPO29CQUNQLGNBQWM7b0JBQ2QsK0JBQStCO29CQUMvQixXQUFXO2lCQUNaO2dCQUlELFdBQVc7a0JBRFYsS0FBSztZQUlOLGtCQUFrQjtrQkFEakIsS0FBSztZQUlOLGVBQWU7a0JBRGQsS0FBSztZQUlOLGtCQUFrQjtrQkFEakIsS0FBSztZQUlOLGVBQWU7a0JBRGQsTUFBTTtZQUlQLG1CQUFtQjtrQkFEbEIsTUFBTTtZQUlQLG9CQUFvQjtrQkFEbkIsTUFBTTtZQUlQLE1BQU07a0JBREwsTUFBTTtZQUlQLFNBQVM7a0JBRFIsTUFBTTtZQVNQLGNBQWM7a0JBRGIsU0FBUzttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUHVyZVBpcGVNb2R1bGUgfSBmcm9tICcuLi8uLi9zY20vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWlucHV0L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb25kaXRpb25Db25maWcsIFNlYXJjaENvbmRpdGlvbk1vZGVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbXVsdGktc2VhcmNoLXRhZ3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBUYWdNb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgICBQdXJlUGlwZU1vZHVsZSxcbiAgICBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbkNyZWF0YWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBjb25kaXRpb25Db25maWc6IFNlYXJjaENvbmRpdGlvbkNvbmZpZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlQ29uZGl0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25Nb2RlbD4oKTtcblxuICBAT3V0cHV0KClcbiAgc2V0Q29uZGl0aW9uRWRpdGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uTW9kZWw+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNldENvbmRpdGlvbkRlbGV0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgYWN0aXZlQ29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbDtcbiAgICB0b0NvbnRpbnVlOiBib29sZWFuO1xuICAgIG1hbnVhbEZvY3VzOiBib29sZWFuO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJylcbiAgaW5wdXRDb21wb25lbnQ6IE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQ7XG5cbiAgY29uZGl0aW9uSW5BY3Rpb24oY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIHJldHVybiBjb25kaXRpb24uaXNFZGl0aW5nIHx8IGNvbmRpdGlvbi5pc0RlbGV0aW5nO1xuICB9XG5cbiAgZ2V0Q29uZGl0aW9uTGFiZWwoY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIHJldHVybiBjb25kaXRpb24/LmNvbmRpdGlvbj8ubGFiZWwgPz8gY29uZGl0aW9uPy5jb25kaXRpb24/LnZhbHVlO1xuICB9XG5cbiAgZ2V0VmFsdWVDb250ZW50KGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICByZXR1cm4gY29uZGl0aW9uPy5zZWxlY3RlZFZhbHVlc1xuICAgICAgPy5tYXAodmFsdWUgPT4gdmFsdWUubGFiZWwgfHwgdmFsdWUudmFsdWUpXG4gICAgICA/LmpvaW4oY29uZGl0aW9uLnNlcGFyYXRvciA/PyAnfCcpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIGV4aXN0aW5nQ29uZGl0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICA8YXVpLXRhZ1xuICAgICAgKm5nSWY9XCIhY29uZGl0aW9uSW5BY3Rpb24oY29uZGl0aW9uKTsgZWxzZSBpbkFjdGlvblwiXG4gICAgICBjbGFzcz1cInR3LW1sLTYgdHctaC1bMjJweF0gdHctbWItNFwiXG4gICAgICBbbmdDbGFzc109XCJjb25kaXRpb24udGFnQ2xhc3NcIlxuICAgICAgW3R5cGVdPVwiY29uZGl0aW9uLnRhZ1R5cGUgfHwgJ2luZm8nXCJcbiAgICAgIFtib3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbY2xvc2VhYmxlXT1cInRydWVcIlxuICAgICAgKGNsb3NlKT1cInJlbW92ZUNvbmRpdGlvbi5lbWl0KGNvbmRpdGlvbik7IHNlYXJjaC5lbWl0KClcIlxuICAgICAgKGNsaWNrKT1cInNldENvbmRpdGlvbkVkaXRpbmcuZW1pdChjb25kaXRpb24pXCJcbiAgICAgIHNpemU9XCJtaW5pXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgKGNvbmRpdGlvbiB8IHB1cmU6IGdldENvbmRpdGlvbkxhYmVsKSArXG4gICAgICAgICAgJyAnICtcbiAgICAgICAgICBjb25kaXRpb24ub3BlcmF0b3IgK1xuICAgICAgICAgICcgJyArXG4gICAgICAgICAgKGNvbmRpdGlvbiB8IHB1cmU6IGdldFZhbHVlQ29udGVudClcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgY29uZGl0aW9uIHwgcHVyZTogZ2V0Q29uZGl0aW9uTGFiZWwgfX1cbiAgICAgICAge3sgY29uZGl0aW9uLm9wZXJhdG9yIH19XG4gICAgICAgIHt7IGNvbmRpdGlvbiB8IHB1cmU6IGdldFZhbHVlQ29udGVudCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvYXVpLXRhZz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaW5BY3Rpb24+XG4gICAgICA8YWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXRcbiAgICAgICAgI2lucHV0UmVmXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2RlbGV0aW5nLWlucHV0JzogY29uZGl0aW9uLmlzRGVsZXRpbmcgfVwiXG4gICAgICAgIFtpc0VkaXRpbmddPVwiY29uZGl0aW9uLmlzRWRpdGluZ1wiXG4gICAgICAgIFtjb25kaXRpb25DcmVhdGFibGVdPVwiY29uZGl0aW9uQ3JlYXRhYmxlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2NvbmRpdGlvbkNvbmZpZ109XCJjb25kaXRpb25Db25maWdcIlxuICAgICAgICBbZXhpc3RpbmdDb25kaXRpb25zXT1cImV4aXN0aW5nQ29uZGl0aW9uc1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY29uZGl0aW9uLmFjdGlvbk1vZGVsXCJcbiAgICAgICAgKGNvbXBsZXRlZCk9XCJcbiAgICAgICAgICBjb21wbGV0ZWQuZW1pdCh7XG4gICAgICAgICAgICBhY3RpdmVDb25kaXRpb246ICRldmVudC5hY3RpdmVDb25kaXRpb24sXG4gICAgICAgICAgICB0b0NvbnRpbnVlOiAkZXZlbnQudG9Db250aW51ZSxcbiAgICAgICAgICAgIG1hbnVhbEZvY3VzOiAkZXZlbnQubWFudWFsRm9jdXMsXG4gICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICB9KVxuICAgICAgICBcIlxuICAgICAgICAoZGVsZXRlKT1cInNldENvbmRpdGlvbkRlbGV0aW5nLmVtaXQoaW5kZXggLSAxKVwiXG4gICAgICAgIChlZGl0aW5nKT1cInNldENvbmRpdGlvbkVkaXRpbmcuZW1pdChjb25kaXRpb24pXCJcbiAgICAgICAgKHNlYXJjaCk9XCJzZWFyY2guZW1pdCgpXCJcbiAgICAgID48L2FjbC1tdWx0aS1zZWFyY2gtYWN0aW9uLWlucHV0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbXVsdGktc2VhcmNoL211bHRpLXNlYXJjaC10YWdzL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7OztJQ1h4RSxrQ0FVQztJQUhDLHFPQUFTLHlDQUErQixTQUFFLGVBQUEsb0JBQWEsQ0FBQSxJQUFDLCtOQUMvQyxlQUFBLDZDQUFtQyxDQUFBLElBRFk7SUFJeEQsK0JBUUM7OztJQUNDLFlBR0Y7OztJQUFBLGlCQUFPLEVBQUE7Ozs7SUFwQlAsK0NBQThCLHdDQUFBLGdCQUFBLG1CQUFBO0lBUzVCLGVBTUM7SUFORCxzTEFNQztJQUVELGVBR0Y7SUFIRSw0TEFHRjs7Ozs7SUFJQSwyREFxQkM7SUFaQywwUEFBYSxpREFDZixJQURxQyxpUUFFdEIsZUFBQSxvSkFPckIsQ0FBQSxJQVQyQyxxUEFTekIsZUFBQSw2Q0FBa0MsQ0FBQyxDQUFDLENBQUEsSUFUWCwrUEFVeEIsZUFBQSw4Q0FBbUMsQ0FBQSxJQVZYLDJNQVd6QixlQUFBLHFCQUFhLENBQUEsSUFYWTtJQVlwQyxpQkFBZ0M7Ozs7SUFsQi9CLDZFQUFzRCxxQ0FBQSxpREFBQSxtQ0FBQSwyQ0FBQSxpREFBQSxxQ0FBQTs7O0lBL0I1RCw2QkFBOEU7SUFDNUUsaUdBd0JVO0lBRVYseUlBdUJjO0lBQ2hCLDBCQUFlOzs7OztJQWpEVixlQUFxQztJQUFyQyw4REFBcUMsaUJBQUE7OztBRDZCNUMsTUFBTSxPQUFPLHdCQUF3QjtJQWhCckM7UUE4QkUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUczRCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUcvRCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR2xELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR2xDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFLeEIsQ0FBQztLQWtCTjtJQWJDLGlCQUFpQixDQUFDLFNBQStCO1FBQy9DLE9BQU8sU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3JELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUErQjtRQUMvQyxPQUFPLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxJQUFJLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBK0I7UUFDN0MsT0FBTyxTQUFTLEVBQUUsY0FBYztZQUM5QixFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMxQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7eUZBaERVLHdCQUF3QjtvRUFBeEIsd0JBQXdCOzs7Ozs7O1lDaENyQyw4QkFBNEI7WUFDMUIsMkZBbURlO1lBQ2Ysa0JBQXlCO1lBQzNCLGlCQUFNOztZQXJEZ0MsZUFBdUI7WUFBdkIsZ0RBQXVCOzRCRHNCekQsSUFBSTtZQUNKLEtBQUs7WUFDTCxTQUFTLG1CQUNULE9BQU87WUFDUCxRQUFRO1lBQ1IsK0JBQStCO1lBQy9CLFdBQVc7O3VGQUdGLHdCQUF3QjtjQWhCcEMsU0FBUzsyQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO29CQUNQLElBQUk7b0JBQ0osS0FBSztvQkFDTCxTQUFTO29CQUNULE9BQU87b0JBQ1AsUUFBUTtvQkFDUiwrQkFBK0I7b0JBQy9CLFdBQVc7aUJBQ1o7Z0JBSUQsV0FBVztrQkFEVixLQUFLO1lBSU4sa0JBQWtCO2tCQURqQixLQUFLO1lBSU4sZUFBZTtrQkFEZCxLQUFLO1lBSU4sa0JBQWtCO2tCQURqQixLQUFLO1lBSU4sZUFBZTtrQkFEZCxNQUFNO1lBSVAsbUJBQW1CO2tCQURsQixNQUFNO1lBSVAsb0JBQW9CO2tCQURuQixNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNO1lBSVAsU0FBUztrQkFEUixNQUFNO1lBU1AsY0FBYztrQkFEYixTQUFTO21CQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWdNb2R1bGUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQdXJlUGlwZSB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTXVsdGlTZWFyY2hBY3Rpb25JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2FjdGlvbi1pbnB1dC9jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQ29uZGl0aW9uQ29uZmlnLCBTZWFyY2hDb25kaXRpb25Nb2RlbCB9IGZyb20gJy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW11bHRpLXNlYXJjaC10YWdzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgVGFnTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgUHVyZVBpcGUsXG4gICAgTXVsdGlTZWFyY2hBY3Rpb25JbnB1dENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWFyY2hUYWdzQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBjb25kaXRpb25DcmVhdGFibGU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uQ29uZmlnOiBTZWFyY2hDb25kaXRpb25Db25maWdbXTtcblxuICBASW5wdXQoKVxuICBleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW107XG5cbiAgQE91dHB1dCgpXG4gIHJlbW92ZUNvbmRpdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uTW9kZWw+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNldENvbmRpdGlvbkVkaXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaENvbmRpdGlvbk1vZGVsPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzZXRDb25kaXRpb25EZWxldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGFjdGl2ZUNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWw7XG4gICAgdG9Db250aW51ZTogYm9vbGVhbjtcbiAgICBtYW51YWxGb2N1czogYm9vbGVhbjtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfT4oKTtcblxuICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXG4gIGlucHV0Q29tcG9uZW50OiBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50O1xuXG4gIGNvbmRpdGlvbkluQWN0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICByZXR1cm4gY29uZGl0aW9uLmlzRWRpdGluZyB8fCBjb25kaXRpb24uaXNEZWxldGluZztcbiAgfVxuXG4gIGdldENvbmRpdGlvbkxhYmVsKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICByZXR1cm4gY29uZGl0aW9uPy5jb25kaXRpb24/LmxhYmVsID8/IGNvbmRpdGlvbj8uY29uZGl0aW9uPy52YWx1ZTtcbiAgfVxuXG4gIGdldFZhbHVlQ29udGVudChjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbj8uc2VsZWN0ZWRWYWx1ZXNcbiAgICAgID8ubWFwKHZhbHVlID0+IHZhbHVlLmxhYmVsIHx8IHZhbHVlLnZhbHVlKVxuICAgICAgPy5qb2luKGNvbmRpdGlvbi5zZXBhcmF0b3IgPz8gJyB8ICcpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIGV4aXN0aW5nQ29uZGl0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICA8YXVpLXRhZ1xuICAgICAgKm5nSWY9XCIhY29uZGl0aW9uSW5BY3Rpb24oY29uZGl0aW9uKTsgZWxzZSBpbkFjdGlvblwiXG4gICAgICBjbGFzcz1cInR3LW1sLTYgdHctaC1bMjJweF0gdHctbWItNFwiXG4gICAgICBbbmdDbGFzc109XCJjb25kaXRpb24udGFnQ2xhc3NcIlxuICAgICAgW3R5cGVdPVwiY29uZGl0aW9uLnRhZ1R5cGUgfHwgJ2luZm8nXCJcbiAgICAgIFtib3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbY2xvc2VhYmxlXT1cInRydWVcIlxuICAgICAgKGNsb3NlKT1cInJlbW92ZUNvbmRpdGlvbi5lbWl0KGNvbmRpdGlvbik7IHNlYXJjaC5lbWl0KClcIlxuICAgICAgKGNsaWNrKT1cInNldENvbmRpdGlvbkVkaXRpbmcuZW1pdChjb25kaXRpb24pXCJcbiAgICAgIHNpemU9XCJtaW5pXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgKGNvbmRpdGlvbiB8IHB1cmU6IGdldENvbmRpdGlvbkxhYmVsKSArXG4gICAgICAgICAgJyAnICtcbiAgICAgICAgICBjb25kaXRpb24ub3BlcmF0b3IgK1xuICAgICAgICAgICcgJyArXG4gICAgICAgICAgKGNvbmRpdGlvbiB8IHB1cmU6IGdldFZhbHVlQ29udGVudClcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgY29uZGl0aW9uIHwgcHVyZTogZ2V0Q29uZGl0aW9uTGFiZWwgfX1cbiAgICAgICAge3sgY29uZGl0aW9uLm9wZXJhdG9yIH19XG4gICAgICAgIHt7IGNvbmRpdGlvbiB8IHB1cmU6IGdldFZhbHVlQ29udGVudCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvYXVpLXRhZz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaW5BY3Rpb24+XG4gICAgICA8YWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXRcbiAgICAgICAgI2lucHV0UmVmXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2RlbGV0aW5nLWlucHV0JzogY29uZGl0aW9uLmlzRGVsZXRpbmcgfVwiXG4gICAgICAgIFtpc0VkaXRpbmddPVwiY29uZGl0aW9uLmlzRWRpdGluZ1wiXG4gICAgICAgIFtjb25kaXRpb25DcmVhdGFibGVdPVwiY29uZGl0aW9uQ3JlYXRhYmxlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2NvbmRpdGlvbkNvbmZpZ109XCJjb25kaXRpb25Db25maWdcIlxuICAgICAgICBbZXhpc3RpbmdDb25kaXRpb25zXT1cImV4aXN0aW5nQ29uZGl0aW9uc1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY29uZGl0aW9uLmFjdGlvbk1vZGVsXCJcbiAgICAgICAgKGNvbXBsZXRlZCk9XCJcbiAgICAgICAgICBjb21wbGV0ZWQuZW1pdCh7XG4gICAgICAgICAgICBhY3RpdmVDb25kaXRpb246ICRldmVudC5hY3RpdmVDb25kaXRpb24sXG4gICAgICAgICAgICB0b0NvbnRpbnVlOiAkZXZlbnQudG9Db250aW51ZSxcbiAgICAgICAgICAgIG1hbnVhbEZvY3VzOiAkZXZlbnQubWFudWFsRm9jdXMsXG4gICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICB9KVxuICAgICAgICBcIlxuICAgICAgICAoZGVsZXRlKT1cInNldENvbmRpdGlvbkRlbGV0aW5nLmVtaXQoaW5kZXggLSAxKVwiXG4gICAgICAgIChlZGl0aW5nKT1cInNldENvbmRpdGlvbkVkaXRpbmcuZW1pdChjb25kaXRpb24pXCJcbiAgICAgICAgKHNlYXJjaCk9XCJzZWFyY2guZW1pdCgpXCJcbiAgICAgID48L2FjbC1tdWx0aS1zZWFyY2gtYWN0aW9uLWlucHV0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -1,12 +1,12 @@
1
+ import { IconComponent } from '@alauda/ui';
1
2
  import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
3
  import * as i0 from "@angular/core";
3
- import * as i1 from "@alauda/ui";
4
4
  export class OverviewBannerComponent {
5
5
  constructor() {
6
6
  this.option = {};
7
7
  }
8
8
  static { this.ɵfac = function OverviewBannerComponent_Factory(t) { return new (t || OverviewBannerComponent)(); }; }
9
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OverviewBannerComponent, selectors: [["acl-overview-banner"]], inputs: { option: "option" }, decls: 9, vars: 3, consts: [[1, "overview-banner--wrapper"], [1, "overview-banner"], [1, "overview-banner__icon"], [1, "acl-colorful-icon", "highlight", 3, "icon"], [1, "overview-banner__content"], [1, "overview-banner__title"], [1, "overview-banner__description"]], template: function OverviewBannerComponent_Template(rf, ctx) { if (rf & 1) {
9
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OverviewBannerComponent, selectors: [["acl-overview-banner"]], inputs: { option: "option" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 9, vars: 3, consts: [[1, "overview-banner--wrapper"], [1, "overview-banner"], [1, "overview-banner__icon"], [1, "acl-colorful-icon", "highlight", 3, "icon"], [1, "overview-banner__content"], [1, "overview-banner__title"], [1, "overview-banner__description"]], template: function OverviewBannerComponent_Template(rf, ctx) { if (rf & 1) {
10
10
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
11
11
  i0.ɵɵelement(3, "aui-icon", 3);
12
12
  i0.ɵɵelementEnd();
@@ -23,12 +23,12 @@ export class OverviewBannerComponent {
23
23
  i0.ɵɵtextInterpolate1(" ", ctx.option == null ? null : ctx.option.title, " ");
24
24
  i0.ɵɵadvance(2);
25
25
  i0.ɵɵtextInterpolate1(" ", ctx.option == null ? null : ctx.option.description, " ");
26
- } }, dependencies: [i1.IconComponent], styles: [".overview-banner[_ngcontent-%COMP%]{display:flex;align-items:center;padding:24px}.overview-banner--wrapper[_ngcontent-%COMP%]{border-radius:var(--aui-border-radius-l);margin-bottom:var(--aui-spacing-xl);background-color:rgb(var(--aui-color-primary));background-image:url(^images/overview-banner.svg);background-size:cover;background-position:center}.overview-banner__icon[_ngcontent-%COMP%]{margin-right:20px}.overview-banner__icon[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{display:flex;font-size:56px;width:1em;height:1em}.overview-banner__content[_ngcontent-%COMP%]{color:#fff}.overview-banner__title[_ngcontent-%COMP%]{font-size:24px;line-height:36px;font-weight:var(--aui-font-weight-bolder)}.overview-banner__description[_ngcontent-%COMP%]{margin-top:4px;font-size:var(--aui-font-size-m)}"], changeDetection: 0 }); }
26
+ } }, dependencies: [IconComponent], styles: [".overview-banner[_ngcontent-%COMP%]{display:flex;align-items:center;padding:24px}.overview-banner--wrapper[_ngcontent-%COMP%]{border-radius:var(--aui-border-radius-l);margin-bottom:var(--aui-spacing-xl);background-color:rgb(var(--aui-color-primary));background-image:url(^images/overview-banner.svg);background-size:cover;background-position:center}.overview-banner__icon[_ngcontent-%COMP%]{margin-right:20px}.overview-banner__icon[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{display:flex;font-size:56px;width:1em;height:1em}.overview-banner__content[_ngcontent-%COMP%]{color:#fff}.overview-banner__title[_ngcontent-%COMP%]{font-size:24px;line-height:36px;font-weight:var(--aui-font-weight-bolder)}.overview-banner__description[_ngcontent-%COMP%]{margin-top:4px;font-size:var(--aui-font-size-m)}"], changeDetection: 0 }); }
27
27
  }
28
28
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OverviewBannerComponent, [{
29
29
  type: Component,
30
- args: [{ selector: 'acl-overview-banner', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"overview-banner--wrapper\">\n <div class=\"overview-banner\">\n <div class=\"overview-banner__icon\">\n <aui-icon\n class=\"acl-colorful-icon highlight\"\n [icon]=\"'bicolor:' + option?.icon\"\n ></aui-icon>\n </div>\n <div class=\"overview-banner__content\">\n <div class=\"overview-banner__title\">\n {{ option?.title }}\n </div>\n <div class=\"overview-banner__description\">\n {{ option?.description }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".overview-banner{display:flex;align-items:center;padding:24px}.overview-banner--wrapper{border-radius:var(--aui-border-radius-l);margin-bottom:var(--aui-spacing-xl);background-color:rgb(var(--aui-color-primary));background-image:url(^images/overview-banner.svg);background-size:cover;background-position:center}.overview-banner__icon{margin-right:20px}.overview-banner__icon aui-icon{display:flex;font-size:56px;width:1em;height:1em}.overview-banner__content{color:#fff}.overview-banner__title{font-size:24px;line-height:36px;font-weight:var(--aui-font-weight-bolder)}.overview-banner__description{margin-top:4px;font-size:var(--aui-font-size-m)}\n"] }]
30
+ args: [{ selector: 'acl-overview-banner', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div class=\"overview-banner--wrapper\">\n <div class=\"overview-banner\">\n <div class=\"overview-banner__icon\">\n <aui-icon\n class=\"acl-colorful-icon highlight\"\n [icon]=\"'bicolor:' + option?.icon\"\n ></aui-icon>\n </div>\n <div class=\"overview-banner__content\">\n <div class=\"overview-banner__title\">\n {{ option?.title }}\n </div>\n <div class=\"overview-banner__description\">\n {{ option?.description }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".overview-banner{display:flex;align-items:center;padding:24px}.overview-banner--wrapper{border-radius:var(--aui-border-radius-l);margin-bottom:var(--aui-spacing-xl);background-color:rgb(var(--aui-color-primary));background-image:url(^images/overview-banner.svg);background-size:cover;background-position:center}.overview-banner__icon{margin-right:20px}.overview-banner__icon aui-icon{display:flex;font-size:56px;width:1em;height:1em}.overview-banner__content{color:#fff}.overview-banner__title{font-size:24px;line-height:36px;font-weight:var(--aui-font-weight-bolder)}.overview-banner__description{margin-top:4px;font-size:var(--aui-font-size-m)}\n"] }]
31
31
  }], null, { option: [{
32
32
  type: Input
33
33
  }] }); })();
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9vdmVydmlldy1iYW5uZXIvb3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9vdmVydmlldy1iYW5uZXIvb3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFXMUUsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVNFLFdBQU0sR0FBRyxFQUEwQixDQUFDO0tBQ3JDO3dGQUhZLHVCQUF1QjtvRUFBdkIsdUJBQXVCO1lDWHBDLDhCQUFzQyxhQUFBLGFBQUE7WUFHaEMsOEJBR1k7WUFDZCxpQkFBTTtZQUNOLDhCQUFzQyxhQUFBO1lBRWxDLFlBQ0Y7WUFBQSxpQkFBTTtZQUNOLDhCQUEwQztZQUN4QyxZQUNGO1lBQUEsaUJBQU0sRUFBQSxFQUFBLEVBQUE7O1lBVEosZUFBa0M7WUFBbEMsaUZBQWtDO1lBS2xDLGVBQ0Y7WUFERSw2RUFDRjtZQUVFLGVBQ0Y7WUFERSxtRkFDRjs7O3VGREhPLHVCQUF1QjtjQVBuQyxTQUFTOzJCQUNFLHFCQUFxQix1QkFHVixLQUFLLG1CQUNULHVCQUF1QixDQUFDLE1BQU07Z0JBSS9DLE1BQU07a0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJ2aWV3QmFubmVyT3B0aW9uIH0gZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW92ZXJ2aWV3LWJhbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnb3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ292ZXJ2aWV3LWJhbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJ2aWV3QmFubmVyQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgb3B0aW9uID0ge30gYXMgT3ZlcnZpZXdCYW5uZXJPcHRpb247XG59XG4iLCI8ZGl2IGNsYXNzPVwib3ZlcnZpZXctYmFubmVyLS13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctYmFubmVyX19pY29uXCI+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhY2wtY29sb3JmdWwtaWNvbiBoaWdobGlnaHRcIlxuICAgICAgICBbaWNvbl09XCInYmljb2xvcjonICsgb3B0aW9uPy5pY29uXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXJfX2NvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXJfX3RpdGxlXCI+XG4gICAgICAgIHt7IG9wdGlvbj8udGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWJhbm5lcl9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAge3sgb3B0aW9uPy5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9vdmVydmlldy1iYW5uZXIvb3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9vdmVydmlldy1iYW5uZXIvb3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYTFFLE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFXRSxXQUFNLEdBQUcsRUFBMEIsQ0FBQztLQUNyQzt3RkFIWSx1QkFBdUI7b0VBQXZCLHVCQUF1QjtZQ2RwQyw4QkFBc0MsYUFBQSxhQUFBO1lBR2hDLDhCQUdZO1lBQ2QsaUJBQU07WUFDTiw4QkFBc0MsYUFBQTtZQUVsQyxZQUNGO1lBQUEsaUJBQU07WUFDTiw4QkFBMEM7WUFDeEMsWUFDRjtZQUFBLGlCQUFNLEVBQUEsRUFBQSxFQUFBOztZQVRKLGVBQWtDO1lBQWxDLGlGQUFrQztZQUtsQyxlQUNGO1lBREUsNkVBQ0Y7WUFFRSxlQUNGO1lBREUsbUZBQ0Y7NEJERk0sYUFBYTs7dUZBRVosdUJBQXVCO2NBVG5DLFNBQVM7MkJBQ0UscUJBQXFCLHVCQUdWLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxhQUFhLENBQUM7Z0JBSXhCLE1BQU07a0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJ2aWV3QmFubmVyT3B0aW9uIH0gZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW92ZXJ2aWV3LWJhbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnb3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ292ZXJ2aWV3LWJhbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcnZpZXdCYW5uZXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBvcHRpb24gPSB7fSBhcyBPdmVydmlld0Jhbm5lck9wdGlvbjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXItLXdyYXBwZXJcIj5cbiAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWJhbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1iYW5uZXJfX2ljb25cIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cImFjbC1jb2xvcmZ1bC1pY29uIGhpZ2hsaWdodFwiXG4gICAgICAgIFtpY29uXT1cIidiaWNvbG9yOicgKyBvcHRpb24/Lmljb25cIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWJhbm5lcl9fY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWJhbm5lcl9fdGl0bGVcIj5cbiAgICAgICAge3sgb3B0aW9uPy50aXRsZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctYmFubmVyX19kZXNjcmlwdGlvblwiPlxuICAgICAgICB7eyBvcHRpb24/LmRlc2NyaXB0aW9uIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,20 +1,20 @@
1
- import { IconModule } from '@alauda/ui';
2
- import { CommonModule } from '@angular/common';
3
1
  import { NgModule } from '@angular/core';
4
2
  import { OverviewBannerComponent } from './overview-banner.component';
5
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ * @deprecated use `OverviewBannerComponent`
6
+ */
6
7
  export class OverviewBannerModule {
7
8
  static { this.ɵfac = function OverviewBannerModule_Factory(t) { return new (t || OverviewBannerModule)(); }; }
8
9
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: OverviewBannerModule }); }
9
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, IconModule] }); }
10
+ static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [OverviewBannerComponent] }); }
10
11
  }
11
12
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OverviewBannerModule, [{
12
13
  type: NgModule,
13
14
  args: [{
14
- imports: [CommonModule, IconModule],
15
- declarations: [OverviewBannerComponent],
15
+ imports: [OverviewBannerComponent],
16
16
  exports: [OverviewBannerComponent],
17
17
  }]
18
18
  }], null, null); })();
19
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(OverviewBannerModule, { declarations: [OverviewBannerComponent], imports: [CommonModule, IconModule], exports: [OverviewBannerComponent] }); })();
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnZpZXctYmFubmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9vdmVydmlldy1iYW5uZXIvb3ZlcnZpZXctYmFubmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU90RSxNQUFNLE9BQU8sb0JBQW9CO3FGQUFwQixvQkFBb0I7bUVBQXBCLG9CQUFvQjt1RUFKckIsWUFBWSxFQUFFLFVBQVU7O3VGQUl2QixvQkFBb0I7Y0FMaEMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7Z0JBQ25DLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzthQUNuQzs7d0ZBQ1ksb0JBQW9CLG1CQUhoQix1QkFBdUIsYUFENUIsWUFBWSxFQUFFLFVBQVUsYUFFeEIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJ2aWV3QmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVydmlldy1iYW5uZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW092ZXJ2aWV3QmFubmVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW092ZXJ2aWV3QmFubmVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcnZpZXdCYW5uZXJNb2R1bGUge31cbiJdfQ==
19
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(OverviewBannerModule, { imports: [OverviewBannerComponent], exports: [OverviewBannerComponent] }); })();
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnZpZXctYmFubmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9vdmVydmlldy1iYW5uZXIvb3ZlcnZpZXctYmFubmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUV0RTs7R0FFRztBQUtILE1BQU0sT0FBTyxvQkFBb0I7cUZBQXBCLG9CQUFvQjttRUFBcEIsb0JBQW9CO3VFQUhyQix1QkFBdUI7O3VGQUd0QixvQkFBb0I7Y0FKaEMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzthQUNuQzs7d0ZBQ1ksb0JBQW9CLGNBSHJCLHVCQUF1QixhQUN2Qix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPdmVydmlld0Jhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcnZpZXctYmFubmVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIGBPdmVydmlld0Jhbm5lckNvbXBvbmVudGBcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW092ZXJ2aWV3QmFubmVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW092ZXJ2aWV3QmFubmVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcnZpZXdCYW5uZXJNb2R1bGUge31cbiJdfQ==
@@ -6,13 +6,16 @@ import { NgModule } from '@angular/core';
6
6
  import { PageGuardComponent } from './component/component';
7
7
  import { PageGuardContentDirective, PageGuardDescriptionDirective, PageGuardOperationDirective, PageGuardImageDirective, } from './component/helper-directives';
8
8
  import * as i0 from "@angular/core";
9
- export const PAGE_GUARD_COMPONENTS = [
9
+ export const PAGE_GUARD_MODULE = [
10
10
  PageGuardComponent,
11
11
  PageGuardContentDirective,
12
12
  PageGuardDescriptionDirective,
13
13
  PageGuardOperationDirective,
14
14
  PageGuardImageDirective,
15
15
  ];
16
+ /**
17
+ * @deprecated use `PAGE_GUARD_MODULE`
18
+ */
16
19
  export class PageGuardModule {
17
20
  static { this.ɵfac = function PageGuardModule_Factory(t) { return new (t || PageGuardModule)(); }; }
18
21
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PageGuardModule }); }
@@ -21,8 +24,8 @@ export class PageGuardModule {
21
24
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageGuardModule, [{
22
25
  type: NgModule,
23
26
  args: [{
24
- imports: [...PAGE_GUARD_COMPONENTS],
25
- exports: [...PAGE_GUARD_COMPONENTS],
27
+ imports: [...PAGE_GUARD_MODULE],
28
+ exports: [...PAGE_GUARD_MODULE],
26
29
  }]
27
30
  }], null, null); })();
28
31
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PageGuardModule, { imports: [PageGuardComponent,
@@ -34,4 +37,4 @@ export class PageGuardModule {
34
37
  PageGuardDescriptionDirective,
35
38
  PageGuardOperationDirective,
36
39
  PageGuardImageDirective] }); })();
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2UtZ3VhcmQvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsMkJBQTJCLEVBQzNCLHVCQUF1QixHQUN4QixNQUFNLCtCQUErQixDQUFDOztBQUV2QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QiwyQkFBMkI7SUFDM0IsdUJBQXVCO0NBQ2YsQ0FBQztBQU1YLE1BQU0sT0FBTyxlQUFlO2dGQUFmLGVBQWU7bUVBQWYsZUFBZTt1RUFYMUIsa0JBQWtCOzt1RkFXUCxlQUFlO2NBSjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO2FBQ3BDOzt3RkFDWSxlQUFlLGNBWDFCLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIsNkJBQTZCO1FBQzdCLDJCQUEyQjtRQUMzQix1QkFBdUIsYUFKdkIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6Qiw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHBhZ2UtZ3VhcmRcbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUGFnZUd1YXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFBhZ2VHdWFyZENvbnRlbnREaXJlY3RpdmUsXG4gIFBhZ2VHdWFyZERlc2NyaXB0aW9uRGlyZWN0aXZlLFxuICBQYWdlR3VhcmRPcGVyYXRpb25EaXJlY3RpdmUsXG4gIFBhZ2VHdWFyZEltYWdlRGlyZWN0aXZlLFxufSBmcm9tICcuL2NvbXBvbmVudC9oZWxwZXItZGlyZWN0aXZlcyc7XG5cbmV4cG9ydCBjb25zdCBQQUdFX0dVQVJEX0NPTVBPTkVOVFMgPSBbXG4gIFBhZ2VHdWFyZENvbXBvbmVudCxcbiAgUGFnZUd1YXJkQ29udGVudERpcmVjdGl2ZSxcbiAgUGFnZUd1YXJkRGVzY3JpcHRpb25EaXJlY3RpdmUsXG4gIFBhZ2VHdWFyZE9wZXJhdGlvbkRpcmVjdGl2ZSxcbiAgUGFnZUd1YXJkSW1hZ2VEaXJlY3RpdmUsXG5dIGFzIGNvbnN0O1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uUEFHRV9HVUFSRF9DT01QT05FTlRTXSxcbiAgZXhwb3J0czogWy4uLlBBR0VfR1VBUkRfQ09NUE9ORU5UU10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VHdWFyZE1vZHVsZSB7fVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2UtZ3VhcmQvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsMkJBQTJCLEVBQzNCLHVCQUF1QixHQUN4QixNQUFNLCtCQUErQixDQUFDOztBQUV2QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QiwyQkFBMkI7SUFDM0IsdUJBQXVCO0NBQ2YsQ0FBQztBQUVYOztHQUVHO0FBS0gsTUFBTSxPQUFPLGVBQWU7Z0ZBQWYsZUFBZTttRUFBZixlQUFlO3VFQWQxQixrQkFBa0I7O3VGQWNQLGVBQWU7Y0FKM0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7Z0JBQy9CLE9BQU8sRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7YUFDaEM7O3dGQUNZLGVBQWUsY0FkMUIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6Qiw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLHVCQUF1QixhQUp2QixrQkFBa0I7UUFDbEIseUJBQXlCO1FBQ3pCLDZCQUE2QjtRQUM3QiwyQkFBMkI7UUFDM0IsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgcGFnZS1ndWFyZFxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQYWdlR3VhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC9jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgUGFnZUd1YXJkQ29udGVudERpcmVjdGl2ZSxcbiAgUGFnZUd1YXJkRGVzY3JpcHRpb25EaXJlY3RpdmUsXG4gIFBhZ2VHdWFyZE9wZXJhdGlvbkRpcmVjdGl2ZSxcbiAgUGFnZUd1YXJkSW1hZ2VEaXJlY3RpdmUsXG59IGZyb20gJy4vY29tcG9uZW50L2hlbHBlci1kaXJlY3RpdmVzJztcblxuZXhwb3J0IGNvbnN0IFBBR0VfR1VBUkRfTU9EVUxFID0gW1xuICBQYWdlR3VhcmRDb21wb25lbnQsXG4gIFBhZ2VHdWFyZENvbnRlbnREaXJlY3RpdmUsXG4gIFBhZ2VHdWFyZERlc2NyaXB0aW9uRGlyZWN0aXZlLFxuICBQYWdlR3VhcmRPcGVyYXRpb25EaXJlY3RpdmUsXG4gIFBhZ2VHdWFyZEltYWdlRGlyZWN0aXZlLFxuXSBhcyBjb25zdDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgYFBBR0VfR1VBUkRfTU9EVUxFYFxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uUEFHRV9HVUFSRF9NT0RVTEVdLFxuICBleHBvcnRzOiBbLi4uUEFHRV9HVUFSRF9NT0RVTEVdLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlR3VhcmRNb2R1bGUge31cbiJdfQ==
@@ -15,12 +15,13 @@ export class BreadcrumbSlotDirective {
15
15
  this.service.unregisterSlot();
16
16
  }
17
17
  static { this.ɵfac = function BreadcrumbSlotDirective_Factory(t) { return new (t || BreadcrumbSlotDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i1.BreadcrumbService)); }; }
18
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BreadcrumbSlotDirective, selectors: [["", "aclBreadcrumbSlot", ""]] }); }
18
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BreadcrumbSlotDirective, selectors: [["", "aclBreadcrumbSlot", ""]], standalone: true }); }
19
19
  }
20
20
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BreadcrumbSlotDirective, [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[aclBreadcrumbSlot]',
24
+ standalone: true,
24
25
  }]
25
26
  }], function () { return [{ type: i0.TemplateRef }, { type: i1.BreadcrumbService }]; }, null); })();
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1zbG90LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9wYWdlLXNjYWZmb2xkL25hdmlnYXRpb24vYnJlYWRjcnVtYi9icmVhZGNydW1iLXNsb3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBS3pELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDbUIsUUFBOEIsRUFDOUIsT0FBMEI7UUFEMUIsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFFM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDaEMsQ0FBQzt3RkFkVSx1QkFBdUI7b0VBQXZCLHVCQUF1Qjs7dUZBQXZCLHVCQUF1QjtjQUhuQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjthQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi9icmVhZGNydW1iLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQnJlYWRjcnVtYlNsb3RdJyxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlNsb3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuc2VydmljZS5wcmVwYXJlU2xvdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnJlZ2lzdGVyU2xvdCh0aGlzLnRlbXBsYXRlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VydmljZS51bnJlZ2lzdGVyU2xvdCgpO1xuICB9XG59XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1zbG90LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9wYWdlLXNjYWZmb2xkL25hdmlnYXRpb24vYnJlYWRjcnVtYi9icmVhZGNydW1iLXNsb3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTXpELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDbUIsUUFBOEIsRUFDOUIsT0FBMEI7UUFEMUIsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFFM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDaEMsQ0FBQzt3RkFkVSx1QkFBdUI7b0VBQXZCLHVCQUF1Qjs7dUZBQXZCLHVCQUF1QjtjQUpuQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsVUFBVSxFQUFFLElBQUk7YUFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCcmVhZGNydW1iU2VydmljZSB9IGZyb20gJy4vYnJlYWRjcnVtYi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEJyZWFkY3J1bWJTbG90XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJTbG90RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnNlcnZpY2UucHJlcGFyZVNsb3QoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VydmljZS5yZWdpc3RlclNsb3QodGhpcy50ZW1wbGF0ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlcnZpY2UudW5yZWdpc3RlclNsb3QoKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,16 @@
1
+ import { BREADCRUMB_MODULE } from '@alauda/ui';
2
+ import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
1
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, isDevMode, ViewChild, } from '@angular/core';
2
- import { NavigationEnd, Router } from '@angular/router';
4
+ import { NavigationEnd, Router, RouterLink } from '@angular/router';
3
5
  import { filter } from 'rxjs';
6
+ import { TranslatePipe } from '../../../public-api';
7
+ import { NavLottieIconDirective } from '../public-api';
4
8
  import { findNavPath } from '../utils';
5
9
  import { BreadcrumbService, } from './breadcrumb.service';
6
10
  import * as i0 from "@angular/core";
7
11
  import * as i1 from "@angular/router";
8
12
  import * as i2 from "./breadcrumb.service";
13
+ import * as i3 from "@alauda/ui";
9
14
  const _c0 = ["icon"];
10
15
  function BreadcrumbComponent_aui_breadcrumb_0_aui_breadcrumb_item_1_a_1_acl_nav_lottie_icon_1_Template(rf, ctx) { if (rf & 1) {
11
16
  i0.ɵɵelement(0, "acl-nav-lottie-icon", 7);
@@ -233,15 +238,28 @@ export class BreadcrumbComponent {
233
238
  } if (rf & 2) {
234
239
  let _t;
235
240
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.iconRef = _t.first);
236
- } }, inputs: { configs: "configs", groups: "groups", activatedKey: "activatedKey", _subItems: ["subItems", "_subItems"] }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[4, "ngIf"], [4, "ngFor", "ngForOf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["class", "item", 3, "routerLink", 4, "ngIf", "ngIfElse"], ["plain", ""], [1, "item", 3, "routerLink"], ["class", "tw-size-[16px] tw-mr-4", 3, "frame", "animDataKey", 4, "ngIf"], [1, "tw-size-[16px]", "tw-mr-4", 3, "frame", "animDataKey"], [1, "item"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "routerLink", 4, "ngIf", "ngIfElse"], [3, "routerLink"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
241
+ } }, inputs: { configs: "configs", groups: "groups", activatedKey: "activatedKey", _subItems: ["subItems", "_subItems"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [[4, "ngIf"], [4, "ngFor", "ngForOf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["class", "item", 3, "routerLink", 4, "ngIf", "ngIfElse"], ["plain", ""], [1, "item", 3, "routerLink"], ["class", "tw-size-[16px] tw-mr-4", 3, "frame", "animDataKey", 4, "ngIf"], [1, "tw-size-[16px]", "tw-mr-4", 3, "frame", "animDataKey"], [1, "item"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "routerLink", 4, "ngIf", "ngIfElse"], [3, "routerLink"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
237
242
  i0.ɵɵtemplate(0, BreadcrumbComponent_aui_breadcrumb_0_Template, 4, 3, "aui-breadcrumb", 0);
238
243
  } if (rf & 2) {
239
244
  i0.ɵɵproperty("ngIf", ctx.activatedPath == null ? null : ctx.activatedPath.length);
240
- } }, styles: [".item[_ngcontent-%COMP%]{display:inline-flex;align-items:center;vertical-align:bottom}"], changeDetection: 0 }); }
245
+ } }, dependencies: [i3.BreadcrumbComponent, i3.BreadcrumbItemComponent, NgIf,
246
+ NgFor,
247
+ RouterLink,
248
+ NavLottieIconDirective,
249
+ NgTemplateOutlet,
250
+ TranslatePipe], styles: [".item[_ngcontent-%COMP%]{display:inline-flex;align-items:center;vertical-align:bottom}"], changeDetection: 0 }); }
241
251
  }
242
252
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BreadcrumbComponent, [{
243
253
  type: Component,
244
- args: [{ selector: 'acl-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-breadcrumb *ngIf=\"activatedPath?.length\">\n <aui-breadcrumb-item *ngFor=\"let item of activatedPath\">\n <a\n *ngIf=\"item.routerLink && !isSameUrl(item.routerLink); else plain\"\n class=\"item\"\n [routerLink]=\"item.routerLink\"\n >\n <acl-nav-lottie-icon\n *ngIf=\"item.icon\"\n [frame]=\"-1\"\n [animDataKey]=\"item.icon\"\n class=\"tw-size-[16px] tw-mr-4\"\n >\n </acl-nav-lottie-icon>\n <span>{{ item.name | translate }}</span>\n </a>\n <ng-template #plain>\n <span class=\"item\">\n <acl-nav-lottie-icon\n *ngIf=\"item.icon\"\n [frame]=\"0\"\n [animDataKey]=\"item.icon\"\n class=\"tw-size-[16px] tw-mr-4\"\n >\n </acl-nav-lottie-icon>\n <span>{{ item.name | translate }}</span>\n </span>\n </ng-template>\n </aui-breadcrumb-item>\n <ng-container\n *ngIf=\"customTemplateState === 'ready'\"\n [ngTemplateOutlet]=\"customTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: rootPath() }\"\n ></ng-container>\n <ng-container *ngIf=\"customTemplateState !== 'initialing' && !customTemplate\">\n <aui-breadcrumb-item *ngFor=\"let item of subItems()\">\n <a\n *ngIf=\"item.routerLink; else plain\"\n [routerLink]=\"item.routerLink\"\n >{{ item.translate ? (item.name | translate) : item.name }}</a\n >\n <ng-template #plain>\n <span>{{ item.translate ? (item.name | translate) : item.name }}</span>\n </ng-template>\n </aui-breadcrumb-item>\n </ng-container>\n</aui-breadcrumb>\n", styles: [".item{display:inline-flex;align-items:center;vertical-align:bottom}\n"] }]
254
+ args: [{ selector: 'acl-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
255
+ BREADCRUMB_MODULE,
256
+ NgIf,
257
+ NgFor,
258
+ RouterLink,
259
+ NavLottieIconDirective,
260
+ NgTemplateOutlet,
261
+ TranslatePipe,
262
+ ], template: "<aui-breadcrumb *ngIf=\"activatedPath?.length\">\n <aui-breadcrumb-item *ngFor=\"let item of activatedPath\">\n <a\n *ngIf=\"item.routerLink && !isSameUrl(item.routerLink); else plain\"\n class=\"item\"\n [routerLink]=\"item.routerLink\"\n >\n <acl-nav-lottie-icon\n *ngIf=\"item.icon\"\n [frame]=\"-1\"\n [animDataKey]=\"item.icon\"\n class=\"tw-size-[16px] tw-mr-4\"\n >\n </acl-nav-lottie-icon>\n <span>{{ item.name | translate }}</span>\n </a>\n <ng-template #plain>\n <span class=\"item\">\n <acl-nav-lottie-icon\n *ngIf=\"item.icon\"\n [frame]=\"0\"\n [animDataKey]=\"item.icon\"\n class=\"tw-size-[16px] tw-mr-4\"\n >\n </acl-nav-lottie-icon>\n <span>{{ item.name | translate }}</span>\n </span>\n </ng-template>\n </aui-breadcrumb-item>\n <ng-container\n *ngIf=\"customTemplateState === 'ready'\"\n [ngTemplateOutlet]=\"customTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: rootPath() }\"\n ></ng-container>\n <ng-container *ngIf=\"customTemplateState !== 'initialing' && !customTemplate\">\n <aui-breadcrumb-item *ngFor=\"let item of subItems()\">\n <a\n *ngIf=\"item.routerLink; else plain\"\n [routerLink]=\"item.routerLink\"\n >{{ item.translate ? (item.name | translate) : item.name }}</a\n >\n <ng-template #plain>\n <span>{{ item.translate ? (item.name | translate) : item.name }}</span>\n </ng-template>\n </aui-breadcrumb-item>\n </ng-container>\n</aui-breadcrumb>\n", styles: [".item{display:inline-flex;align-items:center;vertical-align:bottom}\n"] }]
245
263
  }], function () { return [{ type: i1.Router }, { type: i0.ChangeDetectorRef }, { type: i2.BreadcrumbService }]; }, { configs: [{
246
264
  type: Input
247
265
  }], groups: [{
@@ -263,4 +281,4 @@ function findIndex(compare, value) {
263
281
  }
264
282
  return -1;
265
283
  }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFLVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7SUNoQnhCLHlDQU1zQjs7O0lBSnBCLDBCQUFZLDZCQUFBOzs7SUFQaEIsNEJBSUM7SUFDQywrSUFNc0I7SUFDdEIsNEJBQU07SUFBQSxZQUEyQjs7SUFBQSxpQkFBTyxFQUFBOzs7SUFUeEMsK0NBQThCO0lBRzNCLGVBQWU7SUFBZixtQ0FBZTtJQU1aLGVBQTJCO0lBQTNCLHdEQUEyQjs7O0lBSS9CLHlDQU1zQjs7O0lBSnBCLHlCQUFXLDZCQUFBOzs7SUFIZiwrQkFBbUI7SUFDakIseUpBTXNCO0lBQ3RCLDRCQUFNO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU8sRUFBQTs7O0lBTnJDLGVBQWU7SUFBZixtQ0FBZTtJQU1aLGVBQTJCO0lBQTNCLHdEQUEyQjs7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bUJBQUMsVUFBVTtZQVdqQixPQUFPO2tCQUROLFNBQVM7bUJBQUMsTUFBTTs7QUFnSm5CLFNBQVMsU0FBUyxDQUFDLE9BQStCLEVBQUUsS0FBYTtJQUMvRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUIsT0FBTyxDQUFDLENBQUM7U0FDVjtLQUNGO0lBRUQsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTmF2R3JvdXBDb25maWcsIE5hdkl0ZW1Db25maWcgfSBmcm9tICcuLi9uYXYtbWVudS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IGZpbmROYXZQYXRoIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQge1xuICBCcmVhZGNydW1iU2VydmljZSxcbiAgQnJlYWRjcnVtYlRlbXBsYXRlU3RhdGUsXG59IGZyb20gJy4vYnJlYWRjcnVtYi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBjb25maWdzOiBOYXZJdGVtQ29uZmlnW107XG5cbiAgQElucHV0KClcbiAgZ3JvdXBzOiBOYXZHcm91cENvbmZpZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2YXRlZEtleTogc3RyaW5nO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc3ViSXRlbXMnKVxuICBfc3ViSXRlbXM6IChcbiAgICByZXN0OiBzdHJpbmdbXSxcbiAgICBsYXN0Um91dGVMaW5rOiBBcnJheTxzdHJpbmcgfCBTdHJpbmdNYXA+LFxuICApID0+IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHJhbnNsYXRlPzogYm9vbGVhbjtcbiAgICByb3V0ZXJMaW5rPzogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddO1xuICB9PiB8IHZvaWQ7XG5cbiAgQFZpZXdDaGlsZCgnaWNvbicpXG4gIGljb25SZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGFjdGl2YXRlZFBhdGg6IE5hdkl0ZW1Db25maWdbXTtcbiAgY3VzdG9tVGVtcGxhdGVTdGF0ZTogQnJlYWRjcnVtYlRlbXBsYXRlU3RhdGU7XG4gIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBwcml2YXRlIGludGVybmFsQ29uZmlnczogTmF2SXRlbUNvbmZpZ1tdID0gW107XG4gIHByaXZhdGUgdXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy51cmwgPSByb3V0ZXIudXJsO1xuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICB0aGlzLnVybCA9IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlU3RhdGUkLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlU3RhdGUgPSBzdGF0ZTtcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGUgPSB0aGlzLnNlcnZpY2UudGVtcGxhdGU7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jb25maWdzIHx8IGNoYW5nZXMuZ3JvdXBzKSB7XG4gICAgICB0aGlzLmludGVybmFsQ29uZmlncyA9XG4gICAgICAgIHRoaXMuY29uZmlncyA/P1xuICAgICAgICB0aGlzLmdyb3Vwcz8ucmVkdWNlKFxuICAgICAgICAgIChhY2MsIGdyb3VwKSA9PiBhY2MuY29uY2F0KGdyb3VwLml0ZW1zKSxcbiAgICAgICAgICBbXSBhcyBOYXZJdGVtQ29uZmlnW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVBY3RpdmF0ZWRQYXRoKCk7XG4gIH1cblxuICBpc1NhbWVVcmwobGluazogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzdCA9IHRoaXMucmVzdE5vZGUobGluayk7XG4gICAgcmV0dXJuIHJlc3QubGVuZ3RoID09PSAwIHx8IHJlc3QgPT09ICdsaXN0JztcbiAgfVxuXG4gIHN1Ykl0ZW1zKCk6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHJhbnNsYXRlPzogYm9vbGVhbjtcbiAgICByb3V0ZXJMaW5rPzogTmF2SXRlbUNvbmZpZ1sncm91dGVyTGluayddO1xuICB9PiB7XG4gICAgaWYgKCF0aGlzLmFjdGl2YXRlZFBhdGg/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByb3V0ZXJMaW5rID0gdGhpcy5hY3RpdmF0ZWRQYXRoLmF0KC0xKS5yb3V0ZXJMaW5rO1xuXG4gICAgY29uc3QgcmVzdCA9IHRoaXMucmVzdE5vZGUocm91dGVyTGluaylcbiAgICAgIC5zcGxpdCgnLycpXG4gICAgICAuZmlsdGVyKHYgPT4gISF2KTtcblxuICAgIGlmICh0aGlzLl9zdWJJdGVtcykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fc3ViSXRlbXMocmVzdCwgcm91dGVyTGluayk7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHJlc3RbMF0gPT09ICdsaXN0Jykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAocmVzdFswXSA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgICAgcmV0dXJuIFt7IG5hbWU6ICdjcmVhdGUnLCB0cmFuc2xhdGU6IHRydWUgfV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAyICYmIHJlc3RbMF0gPT09ICd1cGRhdGUnKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogcmVzdFsxXSxcbiAgICAgICAgICByb3V0ZXJMaW5rOiByb3V0ZXJMaW5rLmNvbmNhdChbJ2RldGFpbCcsIHJlc3RbMV1dKSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBuYW1lOiAndXBkYXRlJywgdHJhbnNsYXRlOiB0cnVlIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICBpZiAocmVzdC5sZW5ndGggPT09IDIgJiYgcmVzdFswXSA9PT0gJ2RldGFpbCcpIHtcbiAgICAgIHJldHVybiBbeyBuYW1lOiByZXN0WzFdIH1dO1xuICAgIH1cblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIlVSTCBjYW4ndCBtYXRjaCBhbnkgZGVmYXVsdCBicmVhZGNydW1iOlwiLCB0aGlzLnVybCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcm9vdFBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubGlua1RvVXJsKHRoaXMuYWN0aXZhdGVkUGF0aC5hdCgtMSkucm91dGVyTGluayk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFjdGl2YXRlZFBhdGgoKSB7XG4gICAgdGhpcy5hY3RpdmF0ZWRQYXRoID1cbiAgICAgIHRoaXMuYWN0aXZhdGVkS2V5ICYmIHRoaXMuaW50ZXJuYWxDb25maWdzXG4gICAgICAgID8gZmluZE5hdlBhdGg8TmF2SXRlbUNvbmZpZz4oaXRlbSA9PiBpdGVtLmtleSA9PT0gdGhpcy5hY3RpdmF0ZWRLZXkpKFxuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbENvbmZpZ3MsXG4gICAgICAgICAgKVxuICAgICAgICA6IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZXN0Tm9kZShsaW5rOiBOYXZJdGVtQ29uZmlnWydyb3V0ZXJMaW5rJ10pIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmxpbmtUb1VybChsaW5rKTtcbiAgICBpZiAoIXRoaXMudXJsLnN0YXJ0c1dpdGgodXJsKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBlbmRJbmRleCA9IGZpbmRJbmRleChjID0+IGMgPT09ICc/JyB8fCBjID09PSAnIycsIHRoaXMudXJsKTtcbiAgICByZXR1cm4gdGhpcy51cmwuc2xpY2UoXG4gICAgICB1cmwubGVuZ3RoICsgMSxcbiAgICAgIGVuZEluZGV4ID09PSAtMSA/IHRoaXMudXJsLmxlbmd0aCA6IGVuZEluZGV4LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxpbmtUb1VybChsaW5rOiBOYXZJdGVtQ29uZmlnWydyb3V0ZXJMaW5rJ10pOiBzdHJpbmcge1xuICAgIHJldHVybiBsaW5rLnJlZHVjZVJpZ2h0PHN0cmluZz4oKGFjYywgY3VycikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjdXJyID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICc7JyArXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoY3VyciBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KVxuICAgICAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgICAgIC5qb2luKCcnKSArXG4gICAgICAgICAgYWNjXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3Vyci5zdGFydHNXaXRoKCcvJykgPyBjdXJyICsgYWNjIDogJy8nICsgY3VyciArIGFjYztcbiAgICB9LCAnJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEluZGV4KGNvbXBhcmU6ICh2OiBzdHJpbmcpID0+IGJvb2xlYW4sIHZhbHVlOiBzdHJpbmcpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChjb21wYXJlKHZhbHVlLmNoYXJBdChpKSkpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cbiIsIjxhdWktYnJlYWRjcnVtYiAqbmdJZj1cImFjdGl2YXRlZFBhdGg/Lmxlbmd0aFwiPlxuICA8YXVpLWJyZWFkY3J1bWItaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3RpdmF0ZWRQYXRoXCI+XG4gICAgPGFcbiAgICAgICpuZ0lmPVwiaXRlbS5yb3V0ZXJMaW5rICYmICFpc1NhbWVVcmwoaXRlbS5yb3V0ZXJMaW5rKTsgZWxzZSBwbGFpblwiXG4gICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICA+XG4gICAgICA8YWNsLW5hdi1sb3R0aWUtaWNvblxuICAgICAgICAqbmdJZj1cIml0ZW0uaWNvblwiXG4gICAgICAgIFtmcmFtZV09XCItMVwiXG4gICAgICAgIFthbmltRGF0YUtleV09XCJpdGVtLmljb25cIlxuICAgICAgICBjbGFzcz1cInR3LXNpemUtWzE2cHhdIHR3LW1yLTRcIlxuICAgICAgPlxuICAgICAgPC9hY2wtbmF2LWxvdHRpZS1pY29uPlxuICAgICAgPHNwYW4+e3sgaXRlbS5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvYT5cbiAgICA8bmctdGVtcGxhdGUgI3BsYWluPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtXCI+XG4gICAgICAgIDxhY2wtbmF2LWxvdHRpZS1pY29uXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmljb25cIlxuICAgICAgICAgIFtmcmFtZV09XCIwXCJcbiAgICAgICAgICBbYW5pbURhdGFLZXldPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICBjbGFzcz1cInR3LXNpemUtWzE2cHhdIHR3LW1yLTRcIlxuICAgICAgICA+XG4gICAgICAgIDwvYWNsLW5hdi1sb3R0aWUtaWNvbj5cbiAgICAgICAgPHNwYW4+e3sgaXRlbS5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvYXVpLWJyZWFkY3J1bWItaXRlbT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiY3VzdG9tVGVtcGxhdGVTdGF0ZSA9PT0gJ3JlYWR5J1wiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tVGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm9vdFBhdGgoKSB9XCJcbiAgPjwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tVGVtcGxhdGVTdGF0ZSAhPT0gJ2luaXRpYWxpbmcnICYmICFjdXN0b21UZW1wbGF0ZVwiPlxuICAgIDxhdWktYnJlYWRjcnVtYi1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1Ykl0ZW1zKClcIj5cbiAgICAgIDxhXG4gICAgICAgICpuZ0lmPVwiaXRlbS5yb3V0ZXJMaW5rOyBlbHNlIHBsYWluXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgPnt7IGl0ZW0udHJhbnNsYXRlID8gKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSkgOiBpdGVtLm5hbWUgfX08L2FcbiAgICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjcGxhaW4+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW0udHJhbnNsYXRlID8gKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSkgOiBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYXVpLWJyZWFkY3J1bWItaXRlbT5cbiAgPC9uZy1jb250YWluZXI+XG48L2F1aS1icmVhZGNydW1iPlxuIl19
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFLVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0lDcEJ4Qix5Q0FNc0I7OztJQUpwQiwwQkFBWSw2QkFBQTs7O0lBUGhCLDRCQUlDO0lBQ0MsK0lBTXNCO0lBQ3RCLDRCQUFNO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU8sRUFBQTs7O0lBVHhD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bUJBQW1CO29FQUFuQixtQkFBbUI7Ozs7OztZQzdDaEMsMEZBOENpQjs7WUE5Q0Esa0ZBQTJCO2dGRHFDeEMsSUFBSTtZQUNKLEtBQUs7WUFDTCxVQUFVO1lBQ1Ysc0JBQXNCO1lBQ3RCLGdCQUFnQjtZQUNoQixhQUFhOzt1RkFHSixtQkFBbUI7Y0FoQi9CLFNBQVM7MkJBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO29CQUNQLGlCQUFpQjtvQkFDakIsSUFBSTtvQkFDSixLQUFLO29CQUNMLFVBQVU7b0JBQ1Ysc0JBQXNCO29CQUN0QixnQkFBZ0I7b0JBQ2hCLGFBQWE7aUJBQ2Q7eUhBSUQsT0FBTztrQkFETixLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sWUFBWTtrQkFEWCxLQUFLO1lBS04sU0FBUztrQkFEUixLQUFLO21CQUFDLFVBQVU7WUFXakIsT0FBTztrQkFETixTQUFTO21CQUFDLE1BQU07O0FBZ0puQixTQUFTLFNBQVMsQ0FBQyxPQUErQixFQUFFLEtBQWE7SUFDL0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDckMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7S0FDRjtJQUVELE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQlJFQURDUlVNQl9NT0RVTEUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IE5nRm9yLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgaXNEZXZNb2RlLFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBOYXZHcm91cENvbmZpZywgTmF2SXRlbUNvbmZpZyB9IGZyb20gJy4uL25hdi1tZW51L3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTmF2TG90dGllSWNvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZmluZE5hdlBhdGggfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICBCcmVhZGNydW1iVGVtcGxhdGVTdGF0ZSxcbn0gZnJvbSAnLi9icmVhZGNydW1iLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtYnJlYWRjcnVtYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9icmVhZGNydW1iLnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBCUkVBRENSVU1CX01PRFVMRSxcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIFJvdXRlckxpbmssXG4gICAgTmF2TG90dGllSWNvbkRpcmVjdGl2ZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZ3M6IE5hdkl0ZW1Db25maWdbXTtcblxuICBASW5wdXQoKVxuICBncm91cHM6IE5hdkdyb3VwQ29uZmlnW107XG5cbiAgQElucHV0KClcbiAgYWN0aXZhdGVkS2V5OiBzdHJpbmc7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzdWJJdGVtcycpXG4gIF9zdWJJdGVtczogKFxuICAgIHJlc3Q6IHN0cmluZ1tdLFxuICAgIGxhc3RSb3V0ZUxpbms6IEFycmF5PHN0cmluZyB8IFN0cmluZ01hcD4sXG4gICkgPT4gQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0cmFuc2xhdGU/OiBib29sZWFuO1xuICAgIHJvdXRlckxpbms/OiBOYXZJdGVtQ29uZmlnWydyb3V0ZXJMaW5rJ107XG4gIH0+IHwgdm9pZDtcblxuICBAVmlld0NoaWxkKCdpY29uJylcbiAgaWNvblJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgYWN0aXZhdGVkUGF0aDogTmF2SXRlbUNvbmZpZ1tdO1xuICBjdXN0b21UZW1wbGF0ZVN0YXRlOiBCcmVhZGNydW1iVGVtcGxhdGVTdGF0ZTtcbiAgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIHByaXZhdGUgaW50ZXJuYWxDb25maWdzOiBOYXZJdGVtQ29uZmlnW10gPSBbXTtcbiAgcHJpdmF0ZSB1cmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnVybCA9IHJvdXRlci51cmw7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG4gICAgICAgIHRoaXMudXJsID0gZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHM7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlcnZpY2UudGVtcGxhdGVTdGF0ZSQuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVTdGF0ZSA9IHN0YXRlO1xuICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZSA9IHRoaXMuc2VydmljZS50ZW1wbGF0ZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmNvbmZpZ3MgfHwgY2hhbmdlcy5ncm91cHMpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxDb25maWdzID1cbiAgICAgICAgdGhpcy5jb25maWdzID8/XG4gICAgICAgIHRoaXMuZ3JvdXBzPy5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgZ3JvdXApID0+IGFjYy5jb25jYXQoZ3JvdXAuaXRlbXMpLFxuICAgICAgICAgIFtdIGFzIE5hdkl0ZW1Db25maWdbXSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUFjdGl2YXRlZFBhdGgoKTtcbiAgfVxuXG4gIGlzU2FtZVVybChsaW5rOiBOYXZJdGVtQ29uZmlnWydyb3V0ZXJMaW5rJ10pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXN0ID0gdGhpcy5yZXN0Tm9kZShsaW5rKTtcbiAgICByZXR1cm4gcmVzdC5sZW5ndGggPT09IDAgfHwgcmVzdCA9PT0gJ2xpc3QnO1xuICB9XG5cbiAgc3ViSXRlbXMoKTogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0cmFuc2xhdGU/OiBib29sZWFuO1xuICAgIHJvdXRlckxpbms/OiBOYXZJdGVtQ29uZmlnWydyb3V0ZXJMaW5rJ107XG4gIH0+IHtcbiAgICBpZiAoIXRoaXMuYWN0aXZhdGVkUGF0aD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJvdXRlckxpbmsgPSB0aGlzLmFjdGl2YXRlZFBhdGguYXQoLTEpLnJvdXRlckxpbms7XG5cbiAgICBjb25zdCByZXN0ID0gdGhpcy5yZXN0Tm9kZShyb3V0ZXJMaW5rKVxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maWx0ZXIodiA9PiAhIXYpO1xuXG4gICAgaWYgKHRoaXMuX3N1Ykl0ZW1zKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9zdWJJdGVtcyhyZXN0LCByb3V0ZXJMaW5rKTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAocmVzdFswXSA9PT0gJ2xpc3QnKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN0WzBdID09PSAnY3JlYXRlJykge1xuICAgICAgICByZXR1cm4gW3sgbmFtZTogJ2NyZWF0ZScsIHRyYW5zbGF0ZTogdHJ1ZSB9XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdC5sZW5ndGggPT09IDIgJiYgcmVzdFswXSA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByZXN0WzFdLFxuICAgICAgICAgIHJvdXRlckxpbms6IHJvdXRlckxpbmsuY29uY2F0KFsnZGV0YWlsJywgcmVzdFsxXV0pLFxuICAgICAgICB9LFxuICAgICAgICB7IG5hbWU6ICd1cGRhdGUnLCB0cmFuc2xhdGU6IHRydWUgfSxcbiAgICAgIF07XG4gICAgfVxuICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMiAmJiByZXN0WzBdID09PSAnZGV0YWlsJykge1xuICAgICAgcmV0dXJuIFt7IG5hbWU6IHJlc3RbMV0gfV07XG4gICAgfVxuXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiVVJMIGNhbid0IG1hdGNoIGFueSBkZWZhdWx0IGJyZWFkY3J1bWI6XCIsIHRoaXMudXJsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICByb290UGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5saW5rVG9VcmwodGhpcy5hY3RpdmF0ZWRQYXRoLmF0KC0xKS5yb3V0ZXJMaW5rKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQWN0aXZhdGVkUGF0aCgpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFBhdGggPVxuICAgICAgdGhpcy5hY3RpdmF0ZWRLZXkgJiYgdGhpcy5pbnRlcm5hbENvbmZpZ3NcbiAgICAgICAgPyBmaW5kTmF2UGF0aDxOYXZJdGVtQ29uZmlnPihpdGVtID0+IGl0ZW0ua2V5ID09PSB0aGlzLmFjdGl2YXRlZEtleSkoXG4gICAgICAgICAgICB0aGlzLmludGVybmFsQ29uZmlncyxcbiAgICAgICAgICApXG4gICAgICAgIDogW107XG4gIH1cblxuICBwcml2YXRlIHJlc3ROb2RlKGxpbms6IE5hdkl0ZW1Db25maWdbJ3JvdXRlckxpbmsnXSkge1xuICAgIGNvbnN0IHVybCA9IHRoaXMubGlua1RvVXJsKGxpbmspO1xuICAgIGlmICghdGhpcy51cmwuc3RhcnRzV2l0aCh1cmwpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGVuZEluZGV4ID0gZmluZEluZGV4KGMgPT4gYyA9PT0gJz8nIHx8IGMgPT09ICcjJywgdGhpcy51cmwpO1xuICAgIHJldHVybiB0aGlzLnVybC5zbGljZShcbiAgICAgIHVybC5sZW5ndGggKyAxLFxuICAgICAgZW5kSW5kZXggPT09IC0xID8gdGhpcy51cmwubGVuZ3RoIDogZW5kSW5kZXgsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlua1RvVXJsKGxpbms6IE5hdkl0ZW1Db25maWdbJ3JvdXRlckxpbmsnXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxpbmsucmVkdWNlUmlnaHQ8c3RyaW5nPigoYWNjLCBjdXJyKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGN1cnIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgJzsnICtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhjdXJyIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pXG4gICAgICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKVxuICAgICAgICAgICAgLmpvaW4oJycpICtcbiAgICAgICAgICBhY2NcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyLnN0YXJ0c1dpdGgoJy8nKSA/IGN1cnIgKyBhY2MgOiAnLycgKyBjdXJyICsgYWNjO1xuICAgIH0sICcnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSW5kZXgoY29tcGFyZTogKHY6IHN0cmluZykgPT4gYm9vbGVhbiwgdmFsdWU6IHN0cmluZykge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGNvbXBhcmUodmFsdWUuY2hhckF0KGkpKSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuIiwiPGF1aS1icmVhZGNydW1iICpuZ0lmPVwiYWN0aXZhdGVkUGF0aD8ubGVuZ3RoXCI+XG4gIDxhdWktYnJlYWRjcnVtYi1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGl2YXRlZFBhdGhcIj5cbiAgICA8YVxuICAgICAgKm5nSWY9XCJpdGVtLnJvdXRlckxpbmsgJiYgIWlzU2FtZVVybChpdGVtLnJvdXRlckxpbmspOyBlbHNlIHBsYWluXCJcbiAgICAgIGNsYXNzPVwiaXRlbVwiXG4gICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgID5cbiAgICAgIDxhY2wtbmF2LWxvdHRpZS1pY29uXG4gICAgICAgICpuZ0lmPVwiaXRlbS5pY29uXCJcbiAgICAgICAgW2ZyYW1lXT1cIi0xXCJcbiAgICAgICAgW2FuaW1EYXRhS2V5XT1cIml0ZW0uaWNvblwiXG4gICAgICAgIGNsYXNzPVwidHctc2l6ZS1bMTZweF0gdHctbXItNFwiXG4gICAgICA+XG4gICAgICA8L2FjbC1uYXYtbG90dGllLWljb24+XG4gICAgICA8c3Bhbj57eyBpdGVtLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPC9hPlxuICAgIDxuZy10ZW1wbGF0ZSAjcGxhaW4+XG4gICAgICA8c3BhbiBjbGFzcz1cIml0ZW1cIj5cbiAgICAgICAgPGFjbC1uYXYtbG90dGllLWljb25cbiAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgW2ZyYW1lXT1cIjBcIlxuICAgICAgICAgIFthbmltRGF0YUtleV09XCJpdGVtLmljb25cIlxuICAgICAgICAgIGNsYXNzPVwidHctc2l6ZS1bMTZweF0gdHctbXItNFwiXG4gICAgICAgID5cbiAgICAgICAgPC9hY2wtbmF2LWxvdHRpZS1pY29uPlxuICAgICAgICA8c3Bhbj57eyBpdGVtLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hdWktYnJlYWRjcnVtYi1pdGVtPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJjdXN0b21UZW1wbGF0ZVN0YXRlID09PSAncmVhZHknXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21UZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb290UGF0aCgpIH1cIlxuICA+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21UZW1wbGF0ZVN0YXRlICE9PSAnaW5pdGlhbGluZycgJiYgIWN1c3RvbVRlbXBsYXRlXCI+XG4gICAgPGF1aS1icmVhZGNydW1iLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3ViSXRlbXMoKVwiPlxuICAgICAgPGFcbiAgICAgICAgKm5nSWY9XCJpdGVtLnJvdXRlckxpbms7IGVsc2UgcGxhaW5cIlxuICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICA+e3sgaXRlbS50cmFuc2xhdGUgPyAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSA6IGl0ZW0ubmFtZSB9fTwvYVxuICAgICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICNwbGFpbj5cbiAgICAgICAgPHNwYW4+e3sgaXRlbS50cmFuc2xhdGUgPyAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSA6IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9hdWktYnJlYWRjcnVtYi1pdGVtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYXVpLWJyZWFkY3J1bWI+XG4iXX0=