ngx-tethys 18.1.1 → 18.2.0-next.1

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 (265) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/alert/styles/mixin.scss +1 -1
  3. package/anchor/style/anchor.scss +4 -2
  4. package/autocomplete/autocomplete.component.d.ts +2 -1
  5. package/avatar/styles/avatar.scss +1 -1
  6. package/back-top/styles/back-top.scss +3 -3
  7. package/button/styles/button-group.scss +9 -9
  8. package/button/styles/button.scss +2 -6
  9. package/button/styles/mixin.scss +6 -53
  10. package/calendar/calendar-header.component.d.ts +2 -0
  11. package/calendar/styles/calendar.scss +3 -11
  12. package/card/styles/card.scss +3 -3
  13. package/carousel/styles/carousel.scss +10 -10
  14. package/cascader/cascader.component.d.ts +1 -0
  15. package/cascader/styles/cascader.scss +3 -2
  16. package/collapse/styles/collapse.scss +4 -2
  17. package/color-picker/color-picker-panel.component.d.ts +3 -1
  18. package/color-picker/styles/alpha.scss +1 -1
  19. package/color-picker/styles/color-picker-panel.scss +1 -1
  20. package/color-picker/styles/hue.scss +1 -1
  21. package/color-picker/styles/saturation.scss +1 -1
  22. package/comment/styles/mixin.scss +1 -1
  23. package/copy/copy.directive.d.ts +1 -0
  24. package/core/index.d.ts +1 -0
  25. package/core/theme/index.d.ts +2 -0
  26. package/core/theme/store.d.ts +12 -0
  27. package/core/theme/theme.d.ts +5 -0
  28. package/date-picker/abstract-picker.component.d.ts +3 -1
  29. package/date-picker/date-helper.service.d.ts +3 -0
  30. package/date-picker/date-picker.config.d.ts +7 -1
  31. package/date-picker/lib/calendar/calendar-footer.component.d.ts +3 -1
  32. package/date-picker/lib/calendar/calendar-header.component.d.ts +3 -1
  33. package/date-picker/lib/calendar/calendar-table.component.d.ts +3 -1
  34. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +4 -1
  35. package/date-picker/lib/popups/date-popup.component.d.ts +3 -1
  36. package/date-picker/lib/popups/inner-popup.component.d.ts +3 -1
  37. package/date-picker/styles/calendar.scss +1 -1
  38. package/date-picker/styles/decade-panel.scss +1 -1
  39. package/date-picker/styles/picker.scss +1 -1
  40. package/date-picker/styles/range-picker.scss +3 -3
  41. package/date-picker/styles/year-panel.scss +2 -2
  42. package/date-range/date-range.component.d.ts +2 -0
  43. package/date-range/optional-dates/optional-dates.component.d.ts +1 -0
  44. package/dialog/confirm/confirm.component.d.ts +1 -0
  45. package/dialog/confirm.config.d.ts +14 -7
  46. package/dialog/styles/dialog.scss +6 -6
  47. package/dropdown/styles/dropdown.scss +3 -3
  48. package/empty/empty.component.d.ts +14 -9
  49. package/empty/empty.config.d.ts +3 -0
  50. package/empty/styles/empty.scss +22 -2
  51. package/esm2022/autocomplete/autocomplete.component.mjs +5 -3
  52. package/esm2022/calendar/calendar-header.component.mjs +9 -5
  53. package/esm2022/carousel/carousel.component.mjs +3 -3
  54. package/esm2022/cascader/cascader.component.mjs +5 -3
  55. package/esm2022/checkbox/checkbox.component.mjs +1 -1
  56. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -3
  57. package/esm2022/copy/copy.directive.mjs +7 -5
  58. package/esm2022/core/index.mjs +2 -1
  59. package/esm2022/core/theme/index.mjs +3 -0
  60. package/esm2022/core/theme/store.mjs +42 -0
  61. package/esm2022/core/theme/theme.mjs +2 -0
  62. package/esm2022/date-picker/abstract-picker.component.mjs +4 -2
  63. package/esm2022/date-picker/base-picker.component.mjs +2 -2
  64. package/esm2022/date-picker/date-helper.service.mjs +4 -2
  65. package/esm2022/date-picker/date-picker.component.mjs +1 -1
  66. package/esm2022/date-picker/date-picker.config.mjs +55 -2
  67. package/esm2022/date-picker/date-picker.directive.mjs +1 -1
  68. package/esm2022/date-picker/date-picker.service.mjs +3 -3
  69. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -3
  70. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -1
  71. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -1
  72. package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -5
  73. package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
  74. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +9 -4
  75. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
  76. package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
  77. package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -2
  78. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +5 -3
  79. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -3
  80. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
  81. package/esm2022/date-picker/month-picker.component.mjs +1 -1
  82. package/esm2022/date-picker/quarter-picker.component.mjs +1 -1
  83. package/esm2022/date-picker/range-picker.component.mjs +1 -1
  84. package/esm2022/date-picker/range-picker.directive.mjs +1 -1
  85. package/esm2022/date-picker/week-picker.component.mjs +1 -1
  86. package/esm2022/date-picker/year-picker.component.mjs +1 -1
  87. package/esm2022/date-range/date-range.component.mjs +7 -4
  88. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -2
  89. package/esm2022/dialog/confirm/confirm.component.mjs +14 -3
  90. package/esm2022/dialog/confirm.config.mjs +17 -2
  91. package/esm2022/empty/empty.component.mjs +7 -2
  92. package/esm2022/empty/empty.config.mjs +4 -1
  93. package/esm2022/empty/svgs.mjs +103 -8
  94. package/esm2022/form/form-validator-loader.mjs +17 -15
  95. package/esm2022/guider/guider-hint/guider-hint.component.mjs +5 -3
  96. package/esm2022/i18n/i18n.mjs +2 -0
  97. package/esm2022/i18n/i18n.service.mjs +39 -0
  98. package/esm2022/i18n/i18n.token.mjs +8 -0
  99. package/esm2022/i18n/index.mjs +7 -0
  100. package/esm2022/i18n/locale.mjs +14 -0
  101. package/esm2022/i18n/locales/en-us.mjs +147 -0
  102. package/esm2022/i18n/locales/zh-cn.mjs +127 -0
  103. package/esm2022/i18n/ngx-tethys-i18n.mjs +5 -0
  104. package/esm2022/notify/notify.component.mjs +3 -3
  105. package/esm2022/pagination/pagination.component.mjs +22 -5
  106. package/esm2022/pagination/pagination.module.mjs +26 -5
  107. package/esm2022/pagination/pagination.pipe.mjs +22 -1
  108. package/esm2022/radio/button/radio-button.component.mjs +1 -1
  109. package/esm2022/radio/radio.component.mjs +1 -1
  110. package/esm2022/result/result.component.mjs +3 -3
  111. package/esm2022/select/custom-select/custom-select.component.mjs +9 -3
  112. package/esm2022/strength/strength.component.mjs +21 -20
  113. package/esm2022/table/table-skeleton.component.mjs +3 -3
  114. package/esm2022/time-picker/time-picker-panel.component.mjs +5 -3
  115. package/esm2022/time-picker/time-picker.component.mjs +4 -2
  116. package/esm2022/transfer/transfer-list.component.mjs +5 -3
  117. package/esm2022/tree-select/tree-select.component.mjs +5 -3
  118. package/esm2022/version.mjs +2 -2
  119. package/esm2022/watermark/config.mjs +2 -2
  120. package/esm2022/watermark/watermark.directive.mjs +18 -10
  121. package/fesm2022/ngx-tethys-autocomplete.mjs +4 -2
  122. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  123. package/fesm2022/ngx-tethys-calendar.mjs +8 -5
  124. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  125. package/fesm2022/ngx-tethys-carousel.mjs +2 -2
  126. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  127. package/fesm2022/ngx-tethys-cascader.mjs +4 -2
  128. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  129. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-color-picker.mjs +4 -2
  131. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-copy.mjs +6 -4
  133. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-core.mjs +42 -2
  135. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-date-picker.mjs +95 -30
  137. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-date-range.mjs +8 -4
  139. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-dialog.mjs +27 -2
  141. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-empty.mjs +111 -8
  143. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-form.mjs +16 -14
  145. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-guider.mjs +4 -2
  147. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  148. package/fesm2022/ngx-tethys-i18n.mjs +338 -0
  149. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -0
  150. package/fesm2022/ngx-tethys-notify.mjs +2 -2
  151. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  152. package/fesm2022/ngx-tethys-pagination.mjs +66 -7
  153. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  154. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-result.mjs +2 -2
  156. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-select.mjs +8 -2
  158. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-strength.mjs +20 -19
  160. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-table.mjs +2 -2
  162. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-time-picker.mjs +6 -3
  164. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-transfer.mjs +4 -2
  166. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tree-select.mjs +4 -2
  168. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-watermark.mjs +18 -10
  170. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys.mjs +1 -1
  172. package/fesm2022/ngx-tethys.mjs.map +1 -1
  173. package/form/form-validator-loader.d.ts +2 -0
  174. package/form/styles/form-check.scss +1 -1
  175. package/form/styles/forms.scss +2 -3
  176. package/form/styles/mixin.scss +6 -5
  177. package/guider/guider-hint/guider-hint.component.d.ts +3 -1
  178. package/guider/styles/guider-tip.scss +2 -1
  179. package/i18n/i18n.d.ts +143 -0
  180. package/i18n/i18n.service.d.ts +19 -0
  181. package/i18n/i18n.token.d.ts +5 -0
  182. package/i18n/index.d.ts +6 -0
  183. package/i18n/locale.d.ts +4 -0
  184. package/i18n/locales/en-us.d.ts +147 -0
  185. package/i18n/locales/zh-cn.d.ts +126 -0
  186. package/icon/examples/all/all.component.scss +3 -1
  187. package/image/styles/image.scss +15 -11
  188. package/input/styles/input-group.scss +1 -1
  189. package/input/styles/input.scss +2 -2
  190. package/layout/examples/sidebar/sidebar.component.scss +1 -1
  191. package/layout/styles/layout.scss +3 -3
  192. package/menu/examples/theme/theme.component.scss +0 -8
  193. package/menu/styles/theme.scss +4 -4
  194. package/message/styles/message.scss +1 -1
  195. package/nav/examples/basic/basic.component.scss +1 -1
  196. package/nav/examples/extra/extra.component.scss +1 -1
  197. package/nav/examples/fill/fill.component.scss +1 -1
  198. package/nav/examples/lite/lite.component.scss +1 -1
  199. package/nav/examples/pills/pills.component.scss +1 -1
  200. package/nav/examples/responsive/responsive.component.scss +1 -1
  201. package/nav/examples/size/size.component.scss +1 -1
  202. package/nav/examples/tabs/tabs.component.scss +1 -1
  203. package/nav/examples/type/type.component.scss +1 -1
  204. package/nav/examples/vertical/vertical.component.scss +1 -1
  205. package/notify/styles/notify.scss +4 -4
  206. package/package.json +7 -1
  207. package/pagination/pagination.component.d.ts +4 -1
  208. package/pagination/pagination.module.d.ts +1 -1
  209. package/pagination/pagination.pipe.d.ts +6 -0
  210. package/pagination/styles/pagination.scss +2 -2
  211. package/popover/styles.scss +3 -3
  212. package/property/styles/properties.scss +1 -1
  213. package/radio/radio.component.d.ts +0 -2
  214. package/resizable/examples/line/line.component.scss +3 -1
  215. package/resizable/examples/style.scss +7 -5
  216. package/result/styles/result.scss +25 -1
  217. package/schematics/version.d.ts +1 -1
  218. package/schematics/version.js +1 -1
  219. package/segment/styles/mixin.scss +2 -3
  220. package/segment/styles/segment.scss +1 -1
  221. package/select/custom-select/custom-select.component.d.ts +1 -0
  222. package/select/styles/select.scss +1 -1
  223. package/shared/option/styles/option.mixin.scss +1 -1
  224. package/shared/select/styles/select.mixin.scss +2 -2
  225. package/slide/examples/drawer-container/drawer-container.component.scss +1 -1
  226. package/slide/examples/layout/layout.component.scss +4 -2
  227. package/slide/styles/slide.scss +3 -2
  228. package/slider/slider.scss +2 -2
  229. package/stepper/examples/basic/basic.component.scss +3 -1
  230. package/stepper/examples/icon/icon.component.scss +3 -1
  231. package/stepper/styles/stepper.scss +7 -3
  232. package/strength/strength.component.d.ts +21 -2
  233. package/styles/bootstrap/_variables.scss +14 -876
  234. package/styles/bootstrap/utilities/_background.scss +27 -5
  235. package/styles/bootstrap/utilities/_text.scss +29 -31
  236. package/styles/index.scss +2 -1
  237. package/styles/mixins/background-variant.scss +2 -10
  238. package/styles/mixins/utilities.scss +2 -11
  239. package/styles/modules/cdk/drag-drop.scss +6 -8
  240. package/styles/modules/close.scss +1 -1
  241. package/styles/modules/reboot.scss +1 -1
  242. package/styles/modules/tables.scss +1 -1
  243. package/styles/modules/utils.scss +0 -17
  244. package/styles/theme/dark.scss +70 -0
  245. package/styles/theme/default.scss +70 -0
  246. package/styles/theme/index.scss +2 -0
  247. package/styles/variables.scss +114 -76
  248. package/switch/styles/mixin.scss +0 -13
  249. package/table/styles/table.scss +7 -19
  250. package/tabs/styles/tabs.scss +1 -1
  251. package/tag/styles/mixin.scss +7 -42
  252. package/tag/styles/tag.scss +2 -2
  253. package/time-picker/styles/time-panel.scss +1 -1
  254. package/time-picker/time-picker-panel.component.d.ts +3 -1
  255. package/time-picker/time-picker.component.d.ts +3 -1
  256. package/timeline/styles/timeline.scss +2 -2
  257. package/tooltip/styles.scss +4 -4
  258. package/transfer/styles/transfer.scss +2 -2
  259. package/transfer/transfer-list.component.d.ts +3 -1
  260. package/tree/styles/tree.scss +3 -5
  261. package/tree-select/tree-select.component.d.ts +1 -0
  262. package/watermark/config.d.ts +1 -1
  263. package/watermark/watermark.directive.d.ts +23 -2
  264. package/carousel/styles/index.scss +0 -1
  265. package/carousel/styles/variables.scss +0 -5
@@ -5,6 +5,7 @@ import { ThyColor } from './helpers/color.class';
5
5
  import { ThyIcon } from 'ngx-tethys/icon';
6
6
  import { NgClass, NgTemplateOutlet, NgStyle } from '@angular/common';
7
7
  import { coerceBooleanProperty } from 'ngx-tethys/util';
8
+ import { injectLocale } from 'ngx-tethys/i18n';
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * @internal
@@ -14,6 +15,7 @@ export class ThyColorPickerPanel {
14
15
  this.thyPopover = inject(ThyPopover);
15
16
  this.viewContainerRef = inject(ViewContainerRef);
16
17
  this.thyPopoverRef = inject(ThyPopoverRef);
18
+ this.locale = injectLocale('colorPicker');
17
19
  this.className = true;
18
20
  this.recentColors = [];
19
21
  }
@@ -73,13 +75,13 @@ export class ThyColorPickerPanel {
73
75
  return hsp > 192 ? 'black' : 'white';
74
76
  }
75
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyColorPickerPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyColorPickerPanel, isStandalone: true, selector: "thy-color-picker-panel", inputs: { color: "color", colorChange: "colorChange", defaultColor: "defaultColor", transparentColorSelectable: ["transparentColorSelectable", "transparentColorSelectable", coerceBooleanProperty], defaultColors: "defaultColors" }, host: { properties: { "class.pt-4": "!transparentColorSelectable", "class.thy-color-picker-panel": "this.className" } }, ngImport: i0, template: "@if (customDefaultColor) {\n <div class=\"quick-color\" [ngClass]=\"transparentColorSelectable ? ' mb-0 pb-0' : ''\" (click)=\"selectColor(defaultColor)\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: defaultColor }\"></ng-template>\n <span class=\"ml-2 font-size-sm text-secondary\">\u9ED8\u8BA4\u989C\u8272</span>\n </div>\n}\n@if (transparentColorSelectable) {\n <div class=\"quick-color\" [ngClass]=\"customDefaultColor ? 'mt-0 pt-0' : ''\" (click)=\"selectColor('transparent')\">\n <div class=\"color-block\"></div>\n <span class=\"ml-2 font-size-sm text-secondary\">\u65E0\u586B\u5145\u8272</span>\n </div>\n}\n<div class=\"main-content\">\n <div class=\"default-color\">\n @for (item of defaultColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n </div>\n <p class=\"font-size-sm text-secondary recent-text\">\u6700\u8FD1\u4F7F\u7528\u81EA\u5B9A\u4E49\u989C\u8272</p>\n <div class=\"recent-color-container\">\n @for (item of recentColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (recentColors.length === 0) {\n <div class=\"font-size-sm px-1 text-muted\">\u6682\u65E0</div>\n }\n </div>\n</div>\n<div class=\"more-color\" (click)=\"showMoreColor($event)\">\n <thy-icon thyIconName=\"palette\" class=\"mr-2\"></thy-icon>\n <span class=\"font-size-sm custom-text\">\u81EA\u5B9A\u4E49\u989C\u8272</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\"></thy-icon>\n</div>\n\n<ng-template #checkIconTpl let-colorItem>\n <div\n class=\"color-item\"\n [ngStyle]=\"{ background: colorItem }\"\n [ngClass]=\"colorItem === '#FFFFFF' ? 'item-border' : ''\"\n (click)=\"selectColor(colorItem)\">\n <thy-icon\n thyIconName=\"check-thick\"\n class=\"check-icon\"\n [ngClass]=\"\n color === colorItem ? (getIconColor(colorItem) === 'white' ? 'checked white-check' : 'checked black-check') : ''\n \"></thy-icon>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyColorPickerPanel, isStandalone: true, selector: "thy-color-picker-panel", inputs: { color: "color", colorChange: "colorChange", defaultColor: "defaultColor", transparentColorSelectable: ["transparentColorSelectable", "transparentColorSelectable", coerceBooleanProperty], defaultColors: "defaultColors" }, host: { properties: { "class.pt-4": "!transparentColorSelectable", "class.thy-color-picker-panel": "this.className" } }, ngImport: i0, template: "@if (customDefaultColor) {\n <div class=\"quick-color\" [ngClass]=\"transparentColorSelectable ? ' mb-0 pb-0' : ''\" (click)=\"selectColor(defaultColor)\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: defaultColor }\"></ng-template>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().defaultColor }}</span>\n </div>\n}\n@if (transparentColorSelectable) {\n <div class=\"quick-color\" [ngClass]=\"customDefaultColor ? 'mt-0 pt-0' : ''\" (click)=\"selectColor('transparent')\">\n <div class=\"color-block\"></div>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().noFillColor }}</span>\n </div>\n}\n<div class=\"main-content\">\n <div class=\"default-color\">\n @for (item of defaultColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n </div>\n <p class=\"font-size-sm text-secondary recent-text\">{{ locale().recentUsedColor }}</p>\n <div class=\"recent-color-container\">\n @for (item of recentColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (recentColors.length === 0) {\n <div class=\"font-size-sm px-1 text-muted\">{{ locale().none }}</div>\n }\n </div>\n</div>\n<div class=\"more-color\" (click)=\"showMoreColor($event)\">\n <thy-icon thyIconName=\"palette\" class=\"mr-2\"></thy-icon>\n <span class=\"font-size-sm custom-text\">{{ locale().customColor }}</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\"></thy-icon>\n</div>\n\n<ng-template #checkIconTpl let-colorItem>\n <div\n class=\"color-item\"\n [ngStyle]=\"{ background: colorItem }\"\n [ngClass]=\"colorItem === '#FFFFFF' ? 'item-border' : ''\"\n (click)=\"selectColor(colorItem)\">\n <thy-icon\n thyIconName=\"check-thick\"\n class=\"check-icon\"\n [ngClass]=\"\n color === colorItem ? (getIconColor(colorItem) === 'white' ? 'checked white-check' : 'checked black-check') : ''\n \"></thy-icon>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
77
79
  }
78
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyColorPickerPanel, decorators: [{
79
81
  type: Component,
80
82
  args: [{ selector: 'thy-color-picker-panel', changeDetection: ChangeDetectionStrategy.OnPush, host: {
81
83
  '[class.pt-4]': '!transparentColorSelectable'
82
- }, standalone: true, imports: [NgClass, NgTemplateOutlet, ThyIcon, NgStyle], template: "@if (customDefaultColor) {\n <div class=\"quick-color\" [ngClass]=\"transparentColorSelectable ? ' mb-0 pb-0' : ''\" (click)=\"selectColor(defaultColor)\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: defaultColor }\"></ng-template>\n <span class=\"ml-2 font-size-sm text-secondary\">\u9ED8\u8BA4\u989C\u8272</span>\n </div>\n}\n@if (transparentColorSelectable) {\n <div class=\"quick-color\" [ngClass]=\"customDefaultColor ? 'mt-0 pt-0' : ''\" (click)=\"selectColor('transparent')\">\n <div class=\"color-block\"></div>\n <span class=\"ml-2 font-size-sm text-secondary\">\u65E0\u586B\u5145\u8272</span>\n </div>\n}\n<div class=\"main-content\">\n <div class=\"default-color\">\n @for (item of defaultColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n </div>\n <p class=\"font-size-sm text-secondary recent-text\">\u6700\u8FD1\u4F7F\u7528\u81EA\u5B9A\u4E49\u989C\u8272</p>\n <div class=\"recent-color-container\">\n @for (item of recentColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (recentColors.length === 0) {\n <div class=\"font-size-sm px-1 text-muted\">\u6682\u65E0</div>\n }\n </div>\n</div>\n<div class=\"more-color\" (click)=\"showMoreColor($event)\">\n <thy-icon thyIconName=\"palette\" class=\"mr-2\"></thy-icon>\n <span class=\"font-size-sm custom-text\">\u81EA\u5B9A\u4E49\u989C\u8272</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\"></thy-icon>\n</div>\n\n<ng-template #checkIconTpl let-colorItem>\n <div\n class=\"color-item\"\n [ngStyle]=\"{ background: colorItem }\"\n [ngClass]=\"colorItem === '#FFFFFF' ? 'item-border' : ''\"\n (click)=\"selectColor(colorItem)\">\n <thy-icon\n thyIconName=\"check-thick\"\n class=\"check-icon\"\n [ngClass]=\"\n color === colorItem ? (getIconColor(colorItem) === 'white' ? 'checked white-check' : 'checked black-check') : ''\n \"></thy-icon>\n </div>\n</ng-template>\n" }]
84
+ }, standalone: true, imports: [NgClass, NgTemplateOutlet, ThyIcon, NgStyle], template: "@if (customDefaultColor) {\n <div class=\"quick-color\" [ngClass]=\"transparentColorSelectable ? ' mb-0 pb-0' : ''\" (click)=\"selectColor(defaultColor)\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: defaultColor }\"></ng-template>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().defaultColor }}</span>\n </div>\n}\n@if (transparentColorSelectable) {\n <div class=\"quick-color\" [ngClass]=\"customDefaultColor ? 'mt-0 pt-0' : ''\" (click)=\"selectColor('transparent')\">\n <div class=\"color-block\"></div>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().noFillColor }}</span>\n </div>\n}\n<div class=\"main-content\">\n <div class=\"default-color\">\n @for (item of defaultColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n </div>\n <p class=\"font-size-sm text-secondary recent-text\">{{ locale().recentUsedColor }}</p>\n <div class=\"recent-color-container\">\n @for (item of recentColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (recentColors.length === 0) {\n <div class=\"font-size-sm px-1 text-muted\">{{ locale().none }}</div>\n }\n </div>\n</div>\n<div class=\"more-color\" (click)=\"showMoreColor($event)\">\n <thy-icon thyIconName=\"palette\" class=\"mr-2\"></thy-icon>\n <span class=\"font-size-sm custom-text\">{{ locale().customColor }}</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\"></thy-icon>\n</div>\n\n<ng-template #checkIconTpl let-colorItem>\n <div\n class=\"color-item\"\n [ngStyle]=\"{ background: colorItem }\"\n [ngClass]=\"colorItem === '#FFFFFF' ? 'item-border' : ''\"\n (click)=\"selectColor(colorItem)\">\n <thy-icon\n thyIconName=\"check-thick\"\n class=\"check-icon\"\n [ngClass]=\"\n color === colorItem ? (getIconColor(colorItem) === 'white' ? 'checked white-check' : 'checked black-check') : ''\n \"></thy-icon>\n </div>\n</ng-template>\n" }]
83
85
  }], propDecorators: { className: [{
84
86
  type: HostBinding,
85
87
  args: ['class.thy-color-picker-panel']
@@ -95,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
95
97
  }], defaultColors: [{
96
98
  type: Input
97
99
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXhEOztHQUVHO0FBV0gsTUFBTSxPQUFPLG1CQUFtQjtJQVZoQztRQVdZLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsa0JBQWEsR0FBRyxNQUFNLENBQXFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFvQjlELGlCQUFZLEdBQWEsRUFBRSxDQUFDO0tBMEQvQjtJQXhFRyxJQUFhLFlBQVksQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxrQkFBa0Is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QUFHLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RFLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekMsQ0FBQzs4R0FsRlEsbUJBQW1CO2tHQUFuQixtQkFBbUIsdU9BbUJSLHFCQUFxQixzTEN4QzdDLHFwRUFnREEsNENEN0JjLE9BQU8sb0ZBQUUsZ0JBQWdCLG9KQUFFLE9BQU8sc01BQUUsT0FBTzs7MkZBRTVDLG1CQUFtQjtrQkFWL0IsU0FBUzsrQkFDSSx3QkFBd0IsbUJBRWpCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsY0FBYyxFQUFFLDZCQUE2QjtxQkFDaEQsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQzs4QkFPVCxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDhCQUE4QjtnQkFFbEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRU8sWUFBWTtzQkFBeEIsS0FBSztnQkFRdUMsMEJBQTBCO3NCQUF0RSxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUVsQyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciwgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBUaHlDb2xvclBpY2tlckN1c3RvbVBhbmVsIH0gZnJvbSAnLi9jb2xvci1waWNrZXItY3VzdG9tLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlDb2xvciB9IGZyb20gJy4vaGVscGVycy9jb2xvci5jbGFzcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktY29sb3ItcGlja2VyLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucHQtNF0nOiAnIXRyYW5zcGFyZW50Q29sb3JTZWxlY3RhYmxlJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCwgVGh5SWNvbiwgTmdTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5Q29sb3JQaWNrZXJQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSB0aHlQb3BvdmVyID0gaW5qZWN0KFRoeVBvcG92ZXIpO1xuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwcml2YXRlIHRoeVBvcG92ZXJSZWYgPSBpbmplY3Q8VGh5UG9wb3ZlclJlZjxUaHlDb2xvclBpY2tlclBhbmVsPj4oVGh5UG9wb3ZlclJlZik7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1jb2xvci1waWNrZXItcGFuZWwnKSBjbGFzc05hbWUgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgY29sb3I6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGNvbG9yQ2hhbmdlOiAoY29sb3I6IHN0cmluZykgPT4ge307XG5cbiAgICBASW5wdXQoKSBzZXQgZGVmYXVsdENvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jdXN0b21EZWZhdWx0Q29sb3IgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGVmYXVsdENvbG9yKCkge1xuICAgICAgICByZXR1cm4gbmV3IFRoeUNvbG9yKHRoaXMuY3VzdG9tRGVmYXVsdENvbG9yKS50b0hleFN0cmluZyh0cnVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0cmFuc3BhcmVudENvbG9yU2VsZWN0YWJsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGRlZmF1bHRDb2xvcnM6IHN0cmluZ1tdO1xuXG4gICAgcHVibGljIGN1c3RvbURlZmF1bHRDb2xvcjogc3RyaW5nO1xuXG4gICAgcmVjZW50Q29sb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgbmV3Q29sb3I6IHN0cmluZztcblxuICAgIGN1c3RvbVBhbmVsUG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxUaHlDb2xvclBpY2tlckN1c3RvbVBhbmVsPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2xvcnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVjZW50Q29sb3JzJyk7XG4gICAgICAgIGlmIChjb2xvcnMpIHtcbiAgICAgICAgICAgIHRoaXMucmVjZW50Q29sb3JzID0gSlNPTi5wYXJzZShjb2xvcnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0Q29sb3IoY29sb3I6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7XG4gICAgICAgIHRoaXMuY29sb3JDaGFuZ2UodGhpcy5jb2xvcik7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIHNob3dNb3JlQ29sb3IoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5jdXN0b21QYW5lbFBvcG92ZXJSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tUGFuZWxQb3BvdmVyUmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4oVGh5Q29sb3JQaWNrZXJDdXN0b21QYW5lbCwge1xuICAgICAgICAgICAgICAgIG9yaWdpbjogZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IC00LFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ3JpZ2h0Qm90dG9tJyxcbiAgICAgICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMjYwcHgnLFxuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgb3JpZ2luQWN0aXZlQ2xhc3M6ICd0aHktY29sb3ItcGlja2VyLWFjdGl2ZScsXG4gICAgICAgICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgICBwaWNrZXJDb2xvckNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV3Q29sb3IgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXN0b21QYW5lbFBvcG92ZXJSZWY/LmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5ld0NvbG9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnJlY2VudENvbG9ycy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSB0aGlzLm5ld0NvbG9yKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVjZW50Q29sb3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucmVjZW50Q29sb3JzLnVuc2hpZnQodGhpcy5uZXdDb2xvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWNlbnRDb2xvcnMgPSB0aGlzLnJlY2VudENvbG9ycy5zbGljZSgwLCAxMCk7XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlY2VudENvbG9ycycsIEpTT04uc3RyaW5naWZ5KHRoaXMucmVjZW50Q29sb3JzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SWNvbkNvbG9yKGl0ZW06IHN0cmluZykge1xuICAgICAgICBjb25zdCByZ2JhID0gbmV3IFRoeUNvbG9yKGl0ZW0pLnJnYmE7XG4gICAgICAgIGNvbnN0IGhzcCA9IDAuMjk5ICogcmdiYS5yZWQgKyAwLjU4NyAqIHJnYmEuZ3JlZW4gKyAwLjExNCAqIHJnYmEuYmx1ZTtcbiAgICAgICAgcmV0dXJuIGhzcCA+IDE5MiA/ICdibGFjaycgOiAnd2hpdGUnO1xuICAgIH1cbn1cbiIsIkBpZiAoY3VzdG9tRGVmYXVsdENvbG9yKSB7XG4gIDxkaXYgY2xhc3M9XCJxdWljay1jb2xvclwiIFtuZ0NsYXNzXT1cInRyYW5zcGFyZW50Q29sb3JTZWxlY3RhYmxlID8gJyBtYi0wIHBiLTAnIDogJydcIiAoY2xpY2spPVwic2VsZWN0Q29sb3IoZGVmYXVsdENvbG9yKVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGVja0ljb25UcGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGRlZmF1bHRDb2xvciB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cIm1sLTIgZm9udC1zaXplLXNtIHRleHQtc2Vjb25kYXJ5XCI+6buY6K6k6aKc6ImyPC9zcGFuPlxuICA8L2Rpdj5cbn1cbkBpZiAodHJhbnNwYXJlbnRDb2xvclNlbGVjdGFibGUpIHtcbiAgPGRpdiBjbGFzcz1cInF1aWNrLWNvbG9yXCIgW25nQ2xhc3NdPVwiY3VzdG9tRGVmYXVsdENvbG9yID8gJ210LTAgcHQtMCcgOiAnJ1wiIChjbGljayk9XCJzZWxlY3RDb2xvcigndHJhbnNwYXJlbnQnKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xvci1ibG9ja1wiPjwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwibWwtMiBmb250LXNpemUtc20gdGV4dC1zZWNvbmRhcnlcIj7ml6DloavlhYXoibI8L3NwYW4+XG4gIDwvZGl2PlxufVxuPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1jb2xvclwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgZGVmYXVsdENvbG9yczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hlY2tJY29uVHBsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxwIGNsYXNzPVwiZm9udC1zaXplLXNtIHRleHQtc2Vjb25kYXJ5IHJlY2VudC10ZXh0XCI+5pyA6L+R5L2/55So6Ieq5a6a5LmJ6aKc6ImyPC9wPlxuICA8ZGl2IGNsYXNzPVwicmVjZW50LWNvbG9yLWNvbnRhaW5lclwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgcmVjZW50Q29sb3JzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGVja0ljb25UcGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAocmVjZW50Q29sb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2l6ZS1zbSBweC0xIHRleHQtbXV0ZWRcIj7mmoLml6A8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9yZS1jb2xvclwiIChjbGljayk9XCJzaG93TW9yZUNvbG9yKCRldmVudClcIj5cbiAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwicGFsZXR0ZVwiIGNsYXNzPVwibXItMlwiPjwvdGh5LWljb24+XG4gIDxzcGFuIGNsYXNzPVwiZm9udC1zaXplLXNtIGN1c3RvbS10ZXh0XCI+6Ieq5a6a5LmJ6aKc6ImyPC9zcGFuPlxuICA8dGh5LWljb24gdGh5RHJvcGRvd25NZW51SXRlbUV4dGVuZEljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiPjwvdGh5LWljb24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjaGVja0ljb25UcGwgbGV0LWNvbG9ySXRlbT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29sb3ItaXRlbVwiXG4gICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBjb2xvckl0ZW0gfVwiXG4gICAgW25nQ2xhc3NdPVwiY29sb3JJdGVtID09PSAnI0ZGRkZGRicgPyAnaXRlbS1ib3JkZXInIDogJydcIlxuICAgIChjbGljayk9XCJzZWxlY3RDb2xvcihjb2xvckl0ZW0pXCI+XG4gICAgPHRoeS1pY29uXG4gICAgICB0aHlJY29uTmFtZT1cImNoZWNrLXRoaWNrXCJcbiAgICAgIGNsYXNzPVwiY2hlY2staWNvblwiXG4gICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgY29sb3IgPT09IGNvbG9ySXRlbSA/IChnZXRJY29uQ29sb3IoY29sb3JJdGVtKSA9PT0gJ3doaXRlJyA/ICdjaGVja2VkIHdoaXRlLWNoZWNrJyA6ICdjaGVja2VkIGJsYWNrLWNoZWNrJykgOiAnJ1xuICAgICAgXCI+PC90aHktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0saUJBQWlCLENBQUM7O0FBRXJFOztHQUVHO0FBV0gsTUFBTSxPQUFPLG1CQUFtQjtJQVZoQztRQVdZLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsa0JBQWEsR0FBRyxNQUFNLENBQXFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xGLFdBQU0sR0FBaUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRCLGNBQVMsR0FBRyxJQUFJLENB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SUFBSSxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RFLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekMsQ0FBQzs4R0FuRlEsbUJBQW1CO2tHQUFuQixtQkFBbUIsdU9Bb0JSLHFCQUFxQixzTEMxQzdDLHFvRUFnREEsNENENUJjLE9BQU8sb0ZBQUUsZ0JBQWdCLG9KQUFFLE9BQU8sc01BQUUsT0FBTzs7MkZBRTVDLG1CQUFtQjtrQkFWL0IsU0FBUzsrQkFDSSx3QkFBd0IsbUJBRWpCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsY0FBYyxFQUFFLDZCQUE2QjtxQkFDaEQsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQzs4QkFRVCxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDhCQUE4QjtnQkFFbEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRU8sWUFBWTtzQkFBeEIsS0FBSztnQkFRdUMsMEJBQTBCO3NCQUF0RSxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUVsQyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIFNpZ25hbCwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeUNvbG9yUGlja2VyQ3VzdG9tUGFuZWwgfSBmcm9tICcuL2NvbG9yLXBpY2tlci1jdXN0b20tcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUNvbG9yIH0gZnJvbSAnLi9oZWxwZXJzL2NvbG9yLmNsYXNzJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCwgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgaW5qZWN0TG9jYWxlLCBUaHlDb2xvclBpY2tlckxvY2FsZSB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWNvbG9yLXBpY2tlci1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnB0LTRdJzogJyF0cmFuc3BhcmVudENvbG9yU2VsZWN0YWJsZSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeUljb24sIE5nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNvbG9yUGlja2VyUGFuZWwgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgdGh5UG9wb3ZlciA9IGluamVjdChUaHlQb3BvdmVyKTtcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gICAgcHJpdmF0ZSB0aHlQb3BvdmVyUmVmID0gaW5qZWN0PFRoeVBvcG92ZXJSZWY8VGh5Q29sb3JQaWNrZXJQYW5lbD4+KFRoeVBvcG92ZXJSZWYpO1xuICAgIGxvY2FsZTogU2lnbmFsPFRoeUNvbG9yUGlja2VyTG9jYWxlPiA9IGluamVjdExvY2FsZSgnY29sb3JQaWNrZXInKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWNvbG9yLXBpY2tlci1wYW5lbCcpIGNsYXNzTmFtZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgY29sb3JDaGFuZ2U6IChjb2xvcjogc3RyaW5nKSA9PiB7fTtcblxuICAgIEBJbnB1dCgpIHNldCBkZWZhdWx0Q29sb3IodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmN1c3RvbURlZmF1bHRDb2xvciA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0Q29sb3IoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVGh5Q29sb3IodGhpcy5jdXN0b21EZWZhdWx0Q29sb3IpLnRvSGV4U3RyaW5nKHRydWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRyYW5zcGFyZW50Q29sb3JTZWxlY3RhYmxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgZGVmYXVsdENvbG9yczogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY3VzdG9tRGVmYXVsdENvbG9yOiBzdHJpbmc7XG5cbiAgICByZWNlbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBuZXdDb2xvcjogc3RyaW5nO1xuXG4gICAgY3VzdG9tUGFuZWxQb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPFRoeUNvbG9yUGlja2VyQ3VzdG9tUGFuZWw+O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbG9ycyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZWNlbnRDb2xvcnMnKTtcbiAgICAgICAgaWYgKGNvbG9ycykge1xuICAgICAgICAgICAgdGhpcy5yZWNlbnRDb2xvcnMgPSBKU09OLnBhcnNlKGNvbG9ycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcjtcbiAgICAgICAgdGhpcy5jb2xvckNoYW5nZSh0aGlzLmNvbG9yKTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgc2hvd01vcmVDb2xvcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbVBhbmVsUG9wb3ZlclJlZikge1xuICAgICAgICAgICAgdGhpcy5jdXN0b21QYW5lbFBvcG92ZXJSZWYgPSB0aGlzLnRoeVBvcG92ZXIub3BlbihUaHlDb2xvclBpY2tlckN1c3RvbVBhbmVsLCB7XG4gICAgICAgICAgICAgICAgb3JpZ2luOiBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIG9mZnNldDogLTQsXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiAncmlnaHRCb3R0b20nLFxuICAgICAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWUsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcyNjBweCcsXG4gICAgICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgICBvcmlnaW5BY3RpdmVDbGFzczogJ3RoeS1jb2xvci1waWNrZXItYWN0aXZlJyxcbiAgICAgICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRoaXMuY29sb3IsXG4gICAgICAgICAgICAgICAgICAgIHBpY2tlckNvbG9yQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdDb2xvciA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1c3RvbVBhbmVsUG9wb3ZlclJlZj8uYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubmV3Q29sb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucmVjZW50Q29sb3JzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHRoaXMubmV3Q29sb3IpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNlbnRDb2xvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5yZWNlbnRDb2xvcnMudW5zaGlmdCh0aGlzLm5ld0NvbG9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2VudENvbG9ycyA9IHRoaXMucmVjZW50Q29sb3JzLnNsaWNlKDAsIDEwKTtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncmVjZW50Q29sb3JzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yZWNlbnRDb2xvcnMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRJY29uQ29sb3IoaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHJnYmEgPSBuZXcgVGh5Q29sb3IoaXRlbSkucmdiYTtcbiAgICAgICAgY29uc3QgaHNwID0gMC4yOTkgKiByZ2JhLnJlZCArIDAuNTg3ICogcmdiYS5ncmVlbiArIDAuMTE0ICogcmdiYS5ibHVlO1xuICAgICAgICByZXR1cm4gaHNwID4gMTkyID8gJ2JsYWNrJyA6ICd3aGl0ZSc7XG4gICAgfVxufVxuIiwiQGlmIChjdXN0b21EZWZhdWx0Q29sb3IpIHtcbiAgPGRpdiBjbGFzcz1cInF1aWNrLWNvbG9yXCIgW25nQ2xhc3NdPVwidHJhbnNwYXJlbnRDb2xvclNlbGVjdGFibGUgPyAnIG1iLTAgcGItMCcgOiAnJ1wiIChjbGljayk9XCJzZWxlY3RDb2xvcihkZWZhdWx0Q29sb3IpXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoZWNrSWNvblRwbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZGVmYXVsdENvbG9yIH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDxzcGFuIGNsYXNzPVwibWwtMiBmb250LXNpemUtc20gdGV4dC1zZWNvbmRhcnlcIj57eyBsb2NhbGUoKS5kZWZhdWx0Q29sb3IgfX08L3NwYW4+XG4gIDwvZGl2PlxufVxuQGlmICh0cmFuc3BhcmVudENvbG9yU2VsZWN0YWJsZSkge1xuICA8ZGl2IGNsYXNzPVwicXVpY2stY29sb3JcIiBbbmdDbGFzc109XCJjdXN0b21EZWZhdWx0Q29sb3IgPyAnbXQtMCBwdC0wJyA6ICcnXCIgKGNsaWNrKT1cInNlbGVjdENvbG9yKCd0cmFuc3BhcmVudCcpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yLWJsb2NrXCI+PC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJtbC0yIGZvbnQtc2l6ZS1zbSB0ZXh0LXNlY29uZGFyeVwiPnt7IGxvY2FsZSgpLm5vRmlsbENvbG9yIH19PC9zcGFuPlxuICA8L2Rpdj5cbn1cbjxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImRlZmF1bHQtY29sb3JcIj5cbiAgICBAZm9yIChpdGVtIG9mIGRlZmF1bHRDb2xvcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoZWNrSWNvblRwbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIDwvZGl2PlxuICA8cCBjbGFzcz1cImZvbnQtc2l6ZS1zbSB0ZXh0LXNlY29uZGFyeSByZWNlbnQtdGV4dFwiPnt7IGxvY2FsZSgpLnJlY2VudFVzZWRDb2xvciB9fTwvcD5cbiAgPGRpdiBjbGFzcz1cInJlY2VudC1jb2xvci1jb250YWluZXJcIj5cbiAgICBAZm9yIChpdGVtIG9mIHJlY2VudENvbG9yczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hlY2tJY29uVHBsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICBAaWYgKHJlY2VudENvbG9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNpemUtc20gcHgtMSB0ZXh0LW11dGVkXCI+e3sgbG9jYWxlKCkubm9uZSB9fTwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb3JlLWNvbG9yXCIgKGNsaWNrKT1cInNob3dNb3JlQ29sb3IoJGV2ZW50KVwiPlxuICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwYWxldHRlXCIgY2xhc3M9XCJtci0yXCI+PC90aHktaWNvbj5cbiAgPHNwYW4gY2xhc3M9XCJmb250LXNpemUtc20gY3VzdG9tLXRleHRcIj57eyBsb2NhbGUoKS5jdXN0b21Db2xvciB9fTwvc3Bhbj5cbiAgPHRoeS1pY29uIHRoeURyb3Bkb3duTWVudUl0ZW1FeHRlbmRJY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY2hlY2tJY29uVHBsIGxldC1jb2xvckl0ZW0+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbG9yLWl0ZW1cIlxuICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogY29sb3JJdGVtIH1cIlxuICAgIFtuZ0NsYXNzXT1cImNvbG9ySXRlbSA9PT0gJyNGRkZGRkYnID8gJ2l0ZW0tYm9yZGVyJyA6ICcnXCJcbiAgICAoY2xpY2spPVwic2VsZWN0Q29sb3IoY29sb3JJdGVtKVwiPlxuICAgIDx0aHktaWNvblxuICAgICAgdGh5SWNvbk5hbWU9XCJjaGVjay10aGlja1wiXG4gICAgICBjbGFzcz1cImNoZWNrLWljb25cIlxuICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGNvbG9yID09PSBjb2xvckl0ZW0gPyAoZ2V0SWNvbkNvbG9yKGNvbG9ySXRlbSkgPT09ICd3aGl0ZScgPyAnY2hlY2tlZCB3aGl0ZS1jaGVjaycgOiAnY2hlY2tlZCBibGFjay1jaGVjaycpIDogJydcbiAgICAgIFwiPjwvdGh5LWljb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -4,6 +4,7 @@ import { coerceElement } from '@angular/cdk/coercion';
4
4
  import { ThyNotifyService } from 'ngx-tethys/notify';
5
5
  import { ThyTooltipDirective } from 'ngx-tethys/tooltip';
6
6
  import { coerceBooleanProperty } from 'ngx-tethys/util';
7
+ import { injectLocale } from 'ngx-tethys/i18n';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "ngx-tethys/tooltip";
9
10
  /**
@@ -14,6 +15,7 @@ export class ThyCopyDirective {
14
15
  this.document = inject(DOCUMENT);
15
16
  this.tooltipDirective = inject(ThyTooltipDirective);
16
17
  this.notifyService = inject(ThyNotifyService);
18
+ this.locale = injectLocale('copy');
17
19
  /**
18
20
  * 默认为点击标签,可传复制目标标签
19
21
  */
@@ -21,18 +23,18 @@ export class ThyCopyDirective {
21
23
  /**
22
24
  * 复制成功时的文案
23
25
  */
24
- this.thyCopySuccessText = '复制成功';
26
+ this.thyCopySuccessText = this.locale().success;
25
27
  /**
26
28
  * 提示文案
27
29
  */
28
- this.thyCopyTips = '点击复制';
30
+ this.thyCopyTips = this.locale().tips;
29
31
  /**
30
32
  * 是否展示通知
31
33
  */
32
34
  this.thyShowNotify = true;
33
35
  }
34
36
  ngOnInit() {
35
- this.tooltipDirective.content = this.thyCopyTips ? this.thyCopyTips : '点击复制';
37
+ this.tooltipDirective.content = this.thyCopyTips ? this.thyCopyTips : this.locale().tips;
36
38
  this.tooltipDirective.tooltipOffset = this.thyCopyTipsOffset;
37
39
  }
38
40
  getContent(event) {
@@ -59,7 +61,7 @@ export class ThyCopyDirective {
59
61
  catch (err) {
60
62
  this.thyCopy.emit({ isSuccess: false, event });
61
63
  if (this.thyShowNotify) {
62
- this.notifyService.error('复制失败');
64
+ this.notifyService.error(this.locale().error);
63
65
  }
64
66
  }
65
67
  finally {
@@ -96,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
96
98
  type: HostListener,
97
99
  args: ['click', ['$event']]
98
100
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29weS9jb3B5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU94RDs7R0FFRztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUFNWSxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDTyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFckQ7O1dBRUc7UUFDTSx1QkFBa0IsR0FBRyxNQUFNLENBQUM7UUFFckM7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLE1BQU0sQ0FBQztRQVk5Qjs7V0FFRztRQUMwQyxrQkFBYSxHQUFHLElBQUksQ0FBQztLQXlDckU7SUF2Q0csUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzdFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2pFLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBWTtRQUMzQixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3ZGLE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0lBR00sT0FBTyxDQUFDLEtBQVk7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDO1lBQ0QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN4RCxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMvQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNMLENBQUM7Z0JBQVMsQ0FBQztZQUNQLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0F6RVEsZ0JBQWdCO2tHQUFoQixnQkFBZ0IseVBBaUNMLHFCQUFxQjs7MkZBakNoQyxnQkFBZ0I7a0JBTDVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBU2EsT0FBTztzQkFBaEIsTUFBTTtnQkFLRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLdUMsYUFBYTtzQkFBekQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFpQnBDLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFRoeU5vdGlmeVNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL25vdGlmeSc7XG5pbXBvcnQgeyBUaHlUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy90b29sdGlwJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGh5Q29weUV2ZW50IHtcbiAgICBpc1N1Y2Nlc3M6IGJvb2xlYW47XG4gICAgZXZlbnQ6IEV2ZW50O1xufVxuXG4vKipcbiAqIEBuYW1lIHRoeUNvcHlcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5Q29weV0nLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVGh5VG9vbHRpcERpcmVjdGl2ZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlDb3B5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIHRvb2x0aXBEaXJlY3RpdmUgPSBpbmplY3QoVGh5VG9vbHRpcERpcmVjdGl2ZSk7XG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlID0gaW5qZWN0KFRoeU5vdGlmeVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog6buY6K6k5Li654K55Ye75qCH562+77yM5Y+v5Lyg5aSN5Yi255uu5qCH5qCH562+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUNvcHkgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeUNvcHlFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOWkjeWItuaIkOWKn+aXtueahOaWh+ahiFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvcHlTdWNjZXNzVGV4dCA9ICflpI3liLbmiJDlip8nO1xuXG4gICAgLyoqXG4gICAgICog5o+Q56S65paH5qGIXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29weVRpcHMgPSAn54K55Ye75aSN5Yi2JztcblxuICAgIC8qKlxuICAgICAqIOWBj+enu+mHj1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvcHlUaXBzT2Zmc2V0OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDlvZPkuLogc3RyaW5nIOaXtu+8jOWkjeWItueahOaYr+S8oOWFpeeahOWGheWuue+8m+W9k+S4uiBFbGVtZW50UmVmIHwgSFRNTEVsZW1lbnQg5pe277yM5aSN5Yi255qE5pivIGRvbSDoioLngrnnmoQgdmFsdWUg5oiW6ICFIHRleHRDb250ZW50XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29weUNvbnRlbnQ6IHN0cmluZyB8IEVsZW1lbnRSZWYgfCBIVE1MRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuumAmuefpVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVNob3dOb3RpZnkgPSB0cnVlO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudG9vbHRpcERpcmVjdGl2ZS5jb250ZW50ID0gdGhpcy50aHlDb3B5VGlwcyA/IHRoaXMudGh5Q29weVRpcHMgOiAn54K55Ye75aSN5Yi2JztcbiAgICAgICAgdGhpcy50b29sdGlwRGlyZWN0aXZlLnRvb2x0aXBPZmZzZXQgPSB0aGlzLnRoeUNvcHlUaXBzT2Zmc2V0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29udGVudChldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRoeUNvcHlDb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5Q29weUNvbnRlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRoeUNvcHlDb250ZW50ID8gY29lcmNlRWxlbWVudCh0aGlzLnRoeUNvcHlDb250ZW50KSA6IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgfHwgdGFyZ2V0LnRleHRDb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCB0ZXh0YXJlYSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKTtcbiAgICAgICAgdGV4dGFyZWEudmFsdWUgPSB0aGlzLmdldENvbnRlbnQoZXZlbnQpO1xuICAgICAgICB0ZXh0YXJlYS5zZWxlY3QoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5JywgZmFsc2UsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy50aHlDb3B5LmVtaXQoeyBpc1N1Y2Nlc3M6IHRydWUsIGV2ZW50IH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5U2hvd05vdGlmeSkge1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5zdWNjZXNzKHRoaXMudGh5Q29weVN1Y2Nlc3NUZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUNvcHkuZW1pdCh7IGlzU3VjY2VzczogZmFsc2UsIGV2ZW50IH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5U2hvd05vdGlmeSkge1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5lcnJvcign5aSN5Yi25aSx6LSlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0ZXh0YXJlYS5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnRvb2x0aXBEaXJlY3RpdmUuaGlkZSgpO1xuICAgIH1cbn1cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29weS9jb3B5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTzlEOztHQUVHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1ZLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6QyxXQUFNLEdBQTBCLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3RDs7V0FFRztRQUNPLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVyRDs7V0FFRztRQUNNLHVCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFFcEQ7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFZMUM7O1dBRUc7UUFDMEMsa0JBQWEs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QUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2lnbmFsLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgVGh5Tm90aWZ5U2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvbm90aWZ5JztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGluamVjdExvY2FsZSwgVGh5Q29weUxvY2FsZSB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGh5Q29weUV2ZW50IHtcbiAgICBpc1N1Y2Nlc3M6IGJvb2xlYW47XG4gICAgZXZlbnQ6IEV2ZW50O1xufVxuXG4vKipcbiAqIEBuYW1lIHRoeUNvcHlcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5Q29weV0nLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVGh5VG9vbHRpcERpcmVjdGl2ZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlDb3B5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIHRvb2x0aXBEaXJlY3RpdmUgPSBpbmplY3QoVGh5VG9vbHRpcERpcmVjdGl2ZSk7XG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlID0gaW5qZWN0KFRoeU5vdGlmeVNlcnZpY2UpO1xuICAgIHByaXZhdGUgbG9jYWxlOiBTaWduYWw8VGh5Q29weUxvY2FsZT4gPSBpbmplY3RMb2NhbGUoJ2NvcHknKTtcblxuICAgIC8qKlxuICAgICAqIOm7mOiupOS4uueCueWHu+agh+etvu+8jOWPr+S8oOWkjeWItuebruagh+agh+etvlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlDb3B5ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlDb3B5RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlpI3liLbmiJDlip/ml7bnmoTmlofmoYhcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlDb3B5U3VjY2Vzc1RleHQgPSB0aGlzLmxvY2FsZSgpLnN1Y2Nlc3M7XG5cbiAgICAvKipcbiAgICAgKiDmj5DnpLrmlofmoYhcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlDb3B5VGlwcyA9IHRoaXMubG9jYWxlKCkudGlwcztcblxuICAgIC8qKlxuICAgICAqIOWBj+enu+mHj1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvcHlUaXBzT2Zmc2V0OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDlvZPkuLogc3RyaW5nIOaXtu+8jOWkjeWItueahOaYr+S8oOWFpeeahOWGheWuue+8m+W9k+S4uiBFbGVtZW50UmVmIHwgSFRNTEVsZW1lbnQg5pe277yM5aSN5Yi255qE5pivIGRvbSDoioLngrnnmoQgdmFsdWUg5oiW6ICFIHRleHRDb250ZW50XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29weUNvbnRlbnQ6IHN0cmluZyB8IEVsZW1lbnRSZWYgfCBIVE1MRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuumAmuefpVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVNob3dOb3RpZnkgPSB0cnVlO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudG9vbHRpcERpcmVjdGl2ZS5jb250ZW50ID0gdGhpcy50aHlDb3B5VGlwcyA/IHRoaXMudGh5Q29weVRpcHMgOiB0aGlzLmxvY2FsZSgpLnRpcHM7XG4gICAgICAgIHRoaXMudG9vbHRpcERpcmVjdGl2ZS50b29sdGlwT2Zmc2V0ID0gdGhpcy50aHlDb3B5VGlwc09mZnNldDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aHlDb3B5Q29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeUNvcHlDb250ZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50aHlDb3B5Q29udGVudCA/IGNvZXJjZUVsZW1lbnQodGhpcy50aHlDb3B5Q29udGVudCkgOiBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlIHx8IHRhcmdldC50ZXh0Q29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0YXJlYSk7XG4gICAgICAgIHRleHRhcmVhLnZhbHVlID0gdGhpcy5nZXRDb250ZW50KGV2ZW50KTtcbiAgICAgICAgdGV4dGFyZWEuc2VsZWN0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScsIGZhbHNlLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMudGh5Q29weS5lbWl0KHsgaXNTdWNjZXNzOiB0cnVlLCBldmVudCB9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVNob3dOb3RpZnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeVNlcnZpY2Uuc3VjY2Vzcyh0aGlzLnRoeUNvcHlTdWNjZXNzVGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy50aHlDb3B5LmVtaXQoeyBpc1N1Y2Nlc3M6IGZhbHNlLCBldmVudCB9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVNob3dOb3RpZnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeVNlcnZpY2UuZXJyb3IodGhpcy5sb2NhbGUoKS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0ZXh0YXJlYS5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnRvb2x0aXBEaXJlY3RpdmUuaGlkZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -5,6 +5,7 @@ export * from './event-dispatchers/index';
5
5
  export * from './request-animation';
6
6
  export * from './scroll';
7
7
  export * from './animation';
8
+ export * from './theme';
8
9
  export * from './overlay/index';
9
10
  export * from './update-host-class.service';
10
11
  export * from './translate';
@@ -12,4 +13,4 @@ export * from './store';
12
13
  export * from './color';
13
14
  export * from './spacing';
14
15
  export * from './debounce-time';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iZWhhdmlvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtdG8uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrLXBvc2l0aW9uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1kaXNwYXRjaGVycy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QtYW5pbWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsJztcbmV4cG9ydCAqIGZyb20gJy4vYW5pbWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vb3ZlcmxheS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3VwZGF0ZS1ob3N0LWNsYXNzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3BhY2luZyc7XG5leHBvcnQgKiBmcm9tICcuL2RlYm91bmNlLXRpbWUnO1xuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iZWhhdmlvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtdG8uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrLXBvc2l0aW9uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1kaXNwYXRjaGVycy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QtYW5pbWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsJztcbmV4cG9ydCAqIGZyb20gJy4vYW5pbWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGhlbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkYXRlLWhvc3QtY2xhc3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vY29sb3InO1xuZXhwb3J0ICogZnJvbSAnLi9zcGFjaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vZGVib3VuY2UtdGltZSc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './theme';
2
+ export * from './store';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS90aGVtZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGhlbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZSc7XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { computed, Injectable, signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ThyThemeStore {
4
+ constructor() {
5
+ this.theme = signal("light" /* ThyTheme.light */);
6
+ this.isDark = computed(() => {
7
+ const theme = this.theme();
8
+ return (theme === "dark" /* ThyTheme.dark */ ||
9
+ (theme === "system" /* ThyTheme.system */ && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches));
10
+ });
11
+ }
12
+ setTheme(theme) {
13
+ this.theme.set(theme);
14
+ }
15
+ normalizeColor(color) {
16
+ if (typeof color === 'string') {
17
+ return color;
18
+ }
19
+ if (Array.isArray(color)) {
20
+ if (color.length === 1) {
21
+ return color[0];
22
+ }
23
+ if (color.length > 1) {
24
+ if (this.isDark()) {
25
+ return color[1];
26
+ }
27
+ else {
28
+ return color[0];
29
+ }
30
+ }
31
+ }
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyThemeStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyThemeStore, providedIn: 'root' }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyThemeStore, decorators: [{
37
+ type: Injectable,
38
+ args: [{
39
+ providedIn: 'root'
40
+ }]
41
+ }], ctorParameters: () => [] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS90aGVtZS9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXJFLE1BQU0sT0FBTyxhQUFhO0lBV3RCO1FBVlMsVUFBSyxHQUFHLE1BQU0sOEJBQTBCLENBQUM7UUFFekMsV0FBTSxHQUFvQixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQ0gsS0FBSywrQkFBa0I7Z0JBQ3ZCLENBQUMsS0FBSyxtQ0FBb0IsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FDaEgsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBRVksQ0FBQztJQUVoQixRQUFRLENBQUMsS0FBZTtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXdCO1FBQ25DLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsQ0FBQztZQUVELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztvQkFDaEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0FsQ1EsYUFBYTtrSEFBYixhQUFhLGNBRlYsTUFBTTs7MkZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0YWJsZSwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVRoZW1lIH0gZnJvbSAnLi90aGVtZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGh5VGhlbWVTdG9yZSB7XG4gICAgcmVhZG9ubHkgdGhlbWUgPSBzaWduYWw8VGh5VGhlbWU+KFRoeVRoZW1lLmxpZ2h0KTtcblxuICAgIHJlYWRvbmx5IGlzRGFyazogU2lnbmFsPGJvb2xlYW4+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0aGVtZSA9IHRoaXMudGhlbWUoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoZW1lID09PSBUaHlUaGVtZS5kYXJrIHx8XG4gICAgICAgICAgICAodGhlbWUgPT09IFRoeVRoZW1lLnN5c3RlbSAmJiB3aW5kb3cubWF0Y2hNZWRpYSAmJiB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpLm1hdGNoZXMpXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBzZXRUaGVtZSh0aGVtZTogVGh5VGhlbWUpIHtcbiAgICAgICAgdGhpcy50aGVtZS5zZXQodGhlbWUpO1xuICAgIH1cblxuICAgIG5vcm1hbGl6ZUNvbG9yKGNvbG9yOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29sb3IpKSB7XG4gICAgICAgICAgICBpZiAoY29sb3IubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yWzBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29sb3IubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGFyaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xvclsxXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sb3JbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS90aGVtZS90aGVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gVGh5VGhlbWUge1xuICAgIGxpZ2h0ID0gJ2xpZ2h0JyxcbiAgICBkYXJrID0gJ2RhcmsnLFxuICAgIHN5c3RlbSA9ICdzeXN0ZW0nXG59XG4iXX0=
@@ -5,6 +5,7 @@ import { ChangeDetectorRef, Directive, EventEmitter, inject, Input, Output, View
5
5
  import { ThyPicker } from './picker.component';
6
6
  import { makeValue, setValueByTimestampPrecision, transformDateValue } from './picker.util';
7
7
  import { ThyDatePickerConfigService } from './date-picker.service';
8
+ import { injectLocale } from 'ngx-tethys/i18n';
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * @private
@@ -58,6 +59,7 @@ export class AbstractPickerComponent extends TabIndexDisabledControlValueAccesso
58
59
  constructor() {
59
60
  super();
60
61
  this.cdr = inject(ChangeDetectorRef);
62
+ this.locale = injectLocale('datePicker');
61
63
  this._panelMode = 'date';
62
64
  this.datePickerConfigService = inject(ThyDatePickerConfigService);
63
65
  /**
@@ -241,7 +243,7 @@ export class AbstractPickerComponent extends TabIndexDisabledControlValueAccesso
241
243
  }
242
244
  setDefaultPlaceHolder() {
243
245
  if (!this.isCustomPlaceHolder) {
244
- this.thyPlaceHolder = this.isRange ? ['开始日期', '结束日期'] : '请选择日期';
246
+ this.thyPlaceHolder = this.isRange ? [this.locale().startDate, this.locale().endDate] : this.locale().placeholder;
245
247
  }
246
248
  this.cdr.markForCheck();
247
249
  }
@@ -313,4 +315,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
313
315
  type: Input,
314
316
  args: [{ transform: coerceBooleanProperty }]
315
317
  }] } });
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9hYnN0cmFjdC1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVk1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHbkU7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLHVCQUNsQixTQUFRLHlDQUF5QztJQVdqRDs7O09BR0c7SUFDSCxJQUFhLE9BQU8sQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBNkZEOzs7T0FHRztJQUNILElBQWEsbUJBQW1CLENBQUMsUUFBNkI7UUFDMUQsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBYSxrQkFBa0IsQ0FBQyxPQUEwQjtRQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBV0Q7OztPQUdHO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFxQkQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF0TFosUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSWhDLGVBQVUsR0FBaUIsTUFBTSxDQUFDO1FBRTFCLDRCQUF1QixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBY3JFOztXQUVHO1FBQzBDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRWxFOzs7V0FHRztRQUMwQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQXdDbEU7OztXQUdHO1FBQ00sWUFBTyxHQUEwQyxTQUFTLENBQUM7UUFFcEU7OztXQUdHO1FBQ00sMEJBQXFCLEdBQStCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLElBQUksU0FBUyxDQUFDO1FBUWxJOzs7O1dBSUc7UUFDMEMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRXhFOzs7V0FHRztRQUNNLDBCQUFxQixHQUFtQyxJQUFJLENBQUM7UUFFdEU7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLFVBQVUsQ0FBQztRQTBCcEM7O1dBRUc7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUV2RCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFnQi9ELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIscUJBQWdCLEdBQXdCLE1BQU0sQ0FBQztRQVlyQyxlQUFVLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBMEk3QixlQUFVLEdBQWtGLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBekh6RyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDO0lBQ2hELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUF5QjtRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDN0csSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFlLEVBQUUsR0FBYTtRQUNsRCxJQUFJLEtBQXFDLENBQUM7UUFDMUMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsS0FBSyxNQUFNO2dCQUNQLEtBQUssR0FBRztvQkFDSixLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDdkMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7aUJBQ3BDLENBQUM7Z0JBQ0YsTUFBTTtZQUNWLEtBQUssTUFBTTtnQkFDUCxLQUFLLEdBQUc7b0JBQ0osS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUU7b0JBQ3hDLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFO2lCQUNyQyxDQUFDO2dCQUNGLE1BQU07WUFDVixLQUFLLE9BQU87Z0JBQ1IsS0FBSyxHQUFHO29CQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFFO29CQUN6QyxHQUFHLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRTtpQkFDdEMsQ0FBQztnQkFDRixNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLEtBQUssR0FBRztvQkFDSixLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDeEMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUU7aUJBQ3JDLENBQUM7Z0JBQ0YsTUFBTTtZQUNWO2dCQUNJLEtBQUssR0FBRztvQkFDSixLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDdkMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7aUJBQ3BDLENBQUM7Z0JBQ0YsTUFBTTtRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQW1EO1FBQzdELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsTUFBTSxRQUFRLEdBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNwQyxJQUFJLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBdUIsQ0FBQztZQUM1RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxRQUFzQixDQUFDO2dCQUM1QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUMxQixLQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDckQsQ0FBQztxQkFBTSxDQUFDO29CQUNKLEtBQUssR0FBRzt3QkFDSixLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRTt3QkFDMUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUU7cUJBQ3pCLENBQUM7Z0JBQ04sQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQWEsQ0FBQztZQUNqRixJQUFJLENBQUMsVUFBVSxDQUNYLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDM0gsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBZSxDQUFDO1lBQzVFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixLQUFLLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQyxRQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNELENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBVyxDQUFDLENBQUM7WUFDcEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ2xDLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBYTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBSUQsVUFBVSxDQUFDLGFBQWlEO1FBQ3hELE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLElBQUssS0FBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7WUFDekMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sUUFBUSxLQUFLLFdBQVcsQ0FBQztRQUNwRCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBcUI7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBK0U7UUFDdkcsT0FBTyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN6RixDQUFDOzhHQTdWaUIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsa0ZBMkJyQixxQkFBcUIsa0RBTXJCLHFCQUFxQixtQ0FFckIscUJBQXFCLHlLQTBCckIscUJBQXFCLGtQQW1DckIscUJBQXFCLDJJQWlCckIscUJBQXFCLHFJQWlDckIscUJBQXFCLGtKQU45QixTQUFTOzsyRkE1SUYsdUJBQXVCO2tCQUQ1QyxTQUFTO3dEQWlCTyxPQUFPO3NCQUFuQixLQUFLO2dCQVd1QyxhQUFhO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1FLFlBQVk7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBRUUsT0FBTztzQkFBbkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFFbEMsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFNdUMsV0FBVztzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFLbEMsa0JBQWtCO3NCQUExQixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT3VDLGtCQUFrQjtzQkFBOUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNbEMscUJBQXFCO3NCQUE3QixLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTXVDLGVBQWU7c0JBQTNELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTTlCLG1CQUFtQjtzQkFBL0IsS0FBSztnQkFVTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBT2EsYUFBYTtzQkFBL0IsTUFBTTtnQkFFWSxhQUFhO3NCQUEvQixNQUFNO2dCQUV3QyxNQUFNO3NCQUFwRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBT2xDLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlQWR2YW5jZWRWYWx1ZSB9IGZyb20gJy4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgVGh5UGlja2VyIH0gZnJvbSAnLi9waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IG1ha2VWYWx1ZSwgc2V0VmFsdWVCeVRpbWVzdGFtcFByZWNpc2lvbiwgdHJhbnNmb3JtRGF0ZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQge1xuICAgIENvbXBhdGlibGVEYXRlLFxuICAgIERhdGVFbnRyeSxcbiAgICBEaXNhYmxlZERhdGVGbixcbiAgICBUaHlEYXRlUmFuZ2VFbnRyeSxcbiAgICBUaHlQYW5lbE1vZGUsXG4gICAgVGh5U2hvcnRjdXRQb3NpdGlvbixcbiAgICBDb21wYXRpYmxlUHJlc2V0cyxcbiAgICBUaHlEYXRlR3JhbnVsYXJpdHksXG4gICAgVGh5RGF0ZUNoYW5nZUV2ZW50XG59IGZyb20gJy4vc3RhbmRhcmQtdHlwZXMnO1xuaW1wb3J0IHsgVGh5RGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2RhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2FmZUFueSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UGlja2VyQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBUYWJJbmRleERpc2FibGVkQ29udHJvbFZhbHVlQWNjZXNzb3JNaXhpblxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgdGh5VmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IG51bGw7XG5cbiAgICBfcGFuZWxNb2RlOiBUaHlQYW5lbE1vZGUgPSAnZGF0ZSc7XG5cbiAgICBwcml2YXRlIGRhdGVQaWNrZXJDb25maWdTZXJ2aWNlID0gaW5qZWN0KFRoeURhdGVQaWNrZXJDb25maWdTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIOaooeW8j1xuICAgICAqIEB0eXBlIGRlY2FkZSB8IHllYXIgfCBtb250aCB8IGRhdGUgfCB3ZWVrIHwgZmxleGlibGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TW9kZSh2YWx1ZTogVGh5UGFuZWxNb2RlKSB7XG4gICAgICAgIHRoaXMuX3BhbmVsTW9kZSA9IHZhbHVlID8/ICdkYXRlJztcbiAgICB9XG5cbiAgICBnZXQgdGh5TW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVsTW9kZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmL7npLrmuIXpmaTmjInpkq5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlBbGxvd0NsZWFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuiHquWKqOiOt+WPlueEpueCuVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5QXV0b0ZvY3VzID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlPcGVuOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdGh5RGlzYWJsZWREYXRlOiBEaXNhYmxlZERhdGVGbjtcblxuICAgIC8qKlxuICAgICAqIOacgOWwj+WAvFxuICAgICAqIEB0eXBlIERhdGUgfCBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlNaW5EYXRlOiBEYXRlIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn5YC8XG4gICAgICogQHR5cGUgRGF0ZSB8IG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1heERhdGU6IERhdGUgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYbmj5DnpLrmloflrZdcbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBzdHJpbmdbXVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlSG9sZGVyOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWPquivu1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5UmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDpgInmi6nlmaggY2xhc3NOYW1lXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5T3JpZ2luQ2xhc3NOYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rlsYIgY2xhc3NOYW1lXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGFuZWxDbGFzc05hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhueahOWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGxnIHwgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6ICdsZycgfCAnbWQnIHwgJ3NtJyB8ICd4cycgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7ml7bpl7TmiLPnsr7luqZcbiAgICAgKiBAZGVmYXVsdCBzZWNvbmRzIDEw5L2NXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGltZXN0YW1wUHJlY2lzaW9uOiAnc2Vjb25kcycgfCAnbWlsbGlzZWNvbmRzJyA9IHRoaXMuZGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2UuY29uZmlnPy50aW1lc3RhbXBQcmVjaXNpb24gfHwgJ3NlY29uZHMnO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S655qE5pel5pyf5qC85byPXG4gICAgICogQGRlZmF1bHQgeXl5eS1NTS1kZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUZvcm1hdDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uLmVuLXVzIG9ubHkgZm9yIHJhbmdlIHBpY2tlciwgV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IHRha2UgdGhlIGJlZ2lubmluZyBhbmQgZW5kaW5nIHVuaXhUaW1lIG9mIHRoZSBkYXlcbiAgICAgKiBAZGVzY3JpcHRpb24uemgtY24g5piv5ZCm5Y+W5YC85byA5aeL5pel5pyf55qEMDA6MDDku6Xlj4rmiKrmraLml6XmnJ/nmoQyNDowMFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5QXV0b1N0YXJ0QW5kRW5kID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDpnaLmnb/pu5jorqTml6XmnJ9cbiAgICAgKiBAdHlwZSBDb21wYXRpYmxlRGF0ZSB8IG51bWJlciB8IG51bGxcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEZWZhdWx0UGlja2VyVmFsdWU6IENvbXBhdGlibGVEYXRlIHwgbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnnmoTlkI7nvIDlm77moIdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTdWZmaXhJY29uID0gJ2NhbGVuZGFyJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuuW/q+aNt+mAiemhuemdouadv1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5U2hvd1Nob3J0Y3V0OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5b+r5o236YCJ6aG56Z2i5p2/55qE5pi+56S65L2N572uXG4gICAgICogQHR5cGUgbGVmdCB8IGJvdHRvbVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlTaG9ydGN1dFBvc2l0aW9uKHBvc2l0aW9uOiBUaHlTaG9ydGN1dFBvc2l0aW9uKSB7XG4gICAgICAgIGlmICghIXBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNob3J0Y3V0UG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieW/q+aNt+mAiemhuVxuICAgICAqIEB0eXBlIFRoeVNob3J0Y3V0UHJlc2V0W11cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5U2hvcnRjdXRQcmVzZXRzKHByZXNldHM6IENvbXBhdGlibGVQcmVzZXRzKSB7XG4gICAgICAgIHRoaXMuc2hvcnRjdXRQcmVzZXRzID0gcHJlc2V0cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDml6XmnJ/lj5jljJbnmoTlm57osINcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5RGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5RGF0ZUNoYW5nZUV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeU9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAVmlld0NoaWxkKFRoeVBpY2tlciwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHBpY2tlcjogVGh5UGlja2VyO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55SoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB0aHlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIHNob3J0Y3V0UG9zaXRpb246IFRoeVNob3J0Y3V0UG9zaXRpb24gPSAnbGVmdCc7XG5cbiAgICBzaG9ydGN1dFByZXNldHM6IENvbXBhdGlibGVQcmVzZXRzO1xuXG4gICAgaXNSYW5nZTogYm9vbGVhbjtcblxuICAgIHdpdGhUaW1lOiBib29sZWFuO1xuXG4gICAgZmxleGlibGU6IGJvb2xlYW47XG5cbiAgICBmbGV4aWJsZURhdGVHcmFudWxhcml0eTogVGh5RGF0ZUdyYW51bGFyaXR5O1xuXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHByb3RlY3RlZCBpc0N1c3RvbVBsYWNlSG9sZGVyID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBvbmx5RW1pdERhdGUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgb3JpZ2luV2l0aFRpbWU6IGJvb2xlYW47XG5cbiAgICBnZXQgcmVhbE9wZW5TdGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyLnJlYWxPcGVuU3RhdGU7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2hvd0RhdGVQb3B1cCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyLmlzU2hvd0RhdGVQb3B1cDtcbiAgICB9XG5cbiAgICBpbml0VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5VmFsdWUgPSB0aGlzLmlzUmFuZ2UgPyBbXSA6IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFBsYWNlSG9sZGVyKCk7XG4gICAgICAgIHRoaXMuaW5pdFZhbHVlKCk7XG4gICAgICAgIHRoaXMuaXNGbGV4aWJsZSgpO1xuICAgIH1cblxuICAgIGlzRmxleGlibGUoKSB7XG4gICAgICAgIHRoaXMuZmxleGlibGUgPSB0aGlzLnRoeU1vZGUgPT09ICdmbGV4aWJsZSc7XG4gICAgfVxuXG4gICAgb25EYXRlVmFsdWVDaGFuZ2UoZXZlbnQ6IFRoeURhdGVDaGFuZ2VFdmVudCkge1xuICAgICAgICB0aGlzLnRoeURhdGVDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy50aHlQbGFjZUhvbGRlciAmJiBjaGFuZ2VzLnRoeVBsYWNlSG9sZGVyLmZpcnN0Q2hhbmdlICYmIHR5cGVvZiB0aGlzLnRoeVBsYWNlSG9sZGVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5pc0N1c3RvbVBsYWNlSG9sZGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjbG9zZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGlja2VyLmhpZGVPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgZ2V0QXV0b1N0YXJ0QW5kRW5kVmFsdWUoYmVnaW46IFRpbnlEYXRlLCBlbmQ6IFRpbnlEYXRlKSB7XG4gICAgICAgIGxldCB2YWx1ZTogeyBiZWdpbjogbnVtYmVyOyBlbmQ6IG51bWJlciB9O1xuICAgICAgICBzd2l0Y2ggKHRoaXMudGh5TW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiBiZWdpbi5zdGFydE9mRGF5KCkuZ2V0VW5peFRpbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiBlbmQuZW5kT2ZEYXkoKS5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIHZhbHVlID0ge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogYmVnaW4uc3RhcnRPZldlZWsoKS5nZXRVbml4VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IGVuZC5lbmRPZldlZWsoKS5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IGJlZ2luLnN0YXJ0T2ZNb250aCgpLmdldFVuaXhUaW1lKCksXG4gICAgICAgICAgICAgICAgICAgIGVuZDogZW5kLmVuZE9mTW9udGgoKS5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHZhbHVlID0ge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogYmVnaW4uc3RhcnRPZlllYXIoKS5nZXRVbml4VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IGVuZC5lbmRPZlllYXIoKS5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiBiZWdpbi5zdGFydE9mRGF5KCkuZ2V0VW5peFRpbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiBlbmQuZW5kT2ZEYXkoKS5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZShvcmlnaW5hbFZhbHVlOiBDb21wYXRpYmxlVmFsdWUgfCBSYW5nZUFkdmFuY2VkVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRGb3JtYXRSdWxlKCk7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHdpdGhUaW1lLCBmbGV4aWJsZURhdGVHcmFudWxhcml0eSB9ID0gdHJhbnNmb3JtRGF0ZVZhbHVlKG9yaWdpbmFsVmFsdWUpO1xuICAgICAgICB0aGlzLmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ID0gZmxleGlibGVEYXRlR3JhbnVsYXJpdHk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCB2QXNSYW5nZTogYW55ID0gdGhpcy50aHlWYWx1ZTtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IHsgYmVnaW46IG51bGwsIGVuZDogbnVsbCB9IGFzIFRoeURhdGVSYW5nZUVudHJ5O1xuICAgICAgICAgICAgaWYgKHZBc1JhbmdlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtiZWdpbiwgZW5kXSA9IHZBc1JhbmdlIGFzIFRpbnlEYXRlW107XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGh5QXV0b1N0YXJ0QW5kRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXRBdXRvU3RhcnRBbmRFbmRWYWx1ZShiZWdpbiwgZW5kKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBiZWdpbi5nZXRVbml4VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBlbmQuZ2V0VW5peFRpbWUoKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IFtiZWdpblVuaXhUaW1lLCBlbmRVbml4VGltZV0gPSB0aGlzLnNldFZhbHVlQnlQcmVjaXNpb24odmFsdWUpIGFzIG51bWJlcltdO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKFxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeyBiZWdpbjogYmVnaW5Vbml4VGltZSwgZW5kOiBlbmRVbml4VGltZSB9LCB0aGlzLmZsZXhpYmxlID8geyBncmFudWxhcml0eTogZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgfSA6IHt9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0geyBkYXRlOiBudWxsLCB3aXRoX3RpbWU6IHRoaXMud2l0aFRpbWUgPyAxIDogMCB9IGFzIERhdGVFbnRyeTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUuZGF0ZSA9ICh0aGlzLnRoeVZhbHVlIGFzIFRpbnlEYXRlKS5nZXRVbml4VGltZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMub25seUVtaXREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHRoaXMuc2V0VmFsdWVCeVByZWNpc2lvbih2YWx1ZS5kYXRlKSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oT2JqZWN0LmFzc2lnbih2YWx1ZSwgeyBkYXRlOiB0aGlzLnNldFZhbHVlQnlQcmVjaXNpb24odmFsdWUuZGF0ZSkgYXMgbnVtYmVyIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEZvcm1hdFJ1bGUoKSB7XG4gICAgICAgIGlmICghdGhpcy50aHlGb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLndpdGhUaW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlGb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vbmx5RW1pdERhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHlGb3JtYXQgPSAneXl5eS1NTS1kZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aHlPcGVuID0gb3BlbjtcbiAgICAgICAgdGhpcy50aHlPcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gICAgfVxuXG4gICAgb25DaGFuZ2VGbjogKHZhbDogQ29tcGF0aWJsZURhdGUgfCBEYXRlRW50cnkgfCBUaHlEYXRlUmFuZ2VFbnRyeSB8IG51bWJlciB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICB3cml0ZVZhbHVlKG9yaWdpbmFsVmFsdWU6IENvbXBhdGlibGVEYXRlIHwgVGh5RGF0ZVJhbmdlRW50cnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgd2l0aFRpbWUsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5IH0gPSB0cmFuc2Zvcm1EYXRlVmFsdWUob3JpZ2luYWxWYWx1ZSk7XG4gICAgICAgIHRoaXMuZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgPSBmbGV4aWJsZURhdGVHcmFudWxhcml0eTtcbiAgICAgICAgaWYgKHRoaXMuZmxleGlibGUgJiYgdmFsdWUgJiYgKHZhbHVlIGFzIERhdGVbXSkubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZmxleGlibGVEYXRlR3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ID0gJ2RheSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRUaW1lUGlja2VyU3RhdGUod2l0aFRpbWUpO1xuICAgICAgICB0aGlzLm9ubHlFbWl0RGF0ZSA9IHR5cGVvZiB3aXRoVGltZSA9PT0gJ3VuZGVmaW5lZCc7XG4gICAgICAgIHRoaXMub3JpZ2luV2l0aFRpbWUgPSB3aXRoVGltZTtcbiAgICAgICAgdGhpcy5zZXRGb3JtYXRSdWxlKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHNldFRpbWVQaWNrZXJTdGF0ZSh3aXRoVGltZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLndpdGhUaW1lID0gd2l0aFRpbWU7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeURpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdFBsYWNlSG9sZGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNDdXN0b21QbGFjZUhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy50aHlQbGFjZUhvbGRlciA9IHRoaXMuaXNSYW5nZSA/IFsn5byA5aeL5pel5pyfJywgJ+e7k+adn+aXpeacnyddIDogJ+ivt+mAieaLqeaXpeacnyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBDb21wYXRpYmxlRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeVZhbHVlID0gbWFrZVZhbHVlKHZhbHVlLCB0aGlzLmlzUmFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVCeVByZWNpc2lvbih2YWx1ZTogQ29tcGF0aWJsZURhdGUgfCBudW1iZXIgfCBEYXRlIHwgRGF0ZUVudHJ5IHwgVGh5RGF0ZVJhbmdlRW50cnkgfCBTYWZlQW55KTogbnVtYmVyIHwgbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gc2V0VmFsdWVCeVRpbWVzdGFtcFByZWNpc2lvbih2YWx1ZSwgdGhpcy5pc1JhbmdlLCB0aGlzLnRoeVRpbWVzdGFtcFByZWNpc2lvbik7XG4gICAgfVxufVxuIl19
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9hYnN0cmFjdC1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVk1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLGlCQUFpQixDQUFDOztBQUVwRTs7R0FFRztBQUVILE1BQU0sT0FBZ0IsdUJBQ2xCLFNBQVEseUNBQXlDO0lBYWpEOzs7T0FHRztJQUNILElBQWEsT0FBTyxDQUFDLEtBQW1CO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxJQUFJLE1BQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUE2RkQ7OztPQUdHO0lBQ0gsSUFBYSxtQkFBbUIsQ0FBQyxRQUE2QjtRQUMxRCxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFR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O3NCQUFuRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUVsQyxlQUFlO3NCQUF2QixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxjQUFjO3NCQUF0QixLQUFLO2dCQU11QyxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUtsQyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFNRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFPdUMsa0JBQWtCO3NCQUE5RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1sQyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFNdUMsZUFBZTtzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNOUIsbUJBQW1CO3NCQUEvQixLQUFLO2dCQVVPLGtCQUFrQjtzQkFBOUIsS0FBSztnQkFPYSxhQUFhO3NCQUEvQixNQUFNO2dCQUVZLGFBQWE7c0JBQS9CLE1BQU07Z0JBRXdDLE1BQU07c0JBQXBELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPbEMsV0FBVztzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW4gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpZ25hbCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlQWR2YW5jZWRWYWx1ZSB9IGZyb20gJy4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgVGh5UGlja2VyIH0gZnJvbSAnLi9waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IG1ha2VWYWx1ZSwgc2V0VmFsdWVCeVRpbWVzdGFtcFByZWNpc2lvbiwgdHJhbnNmb3JtRGF0ZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQge1xuICAgIENvbXBhdGlibGVEYXRlLFxuICAgIERhdGVFbnRyeSxcbiAgICBEaXNhYmxlZERhdGVGbixcbiAgICBUaHlEYXRlUmFuZ2VFbnRyeSxcbiAgICBUaHlQYW5lbE1vZGUsXG4gICAgVGh5U2hvcnRjdXRQb3NpdGlvbixcbiAgICBDb21wYXRpYmxlUHJlc2V0cyxcbiAgICBUaHlEYXRlR3JhbnVsYXJpdHksXG4gICAgVGh5RGF0ZUNoYW5nZUV2ZW50XG59IGZyb20gJy4vc3RhbmRhcmQtdHlwZXMnO1xuaW1wb3J0IHsgVGh5RGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2RhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2FmZUFueSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHsgaW5qZWN0TG9jYWxlLCBUaHlEYXRlUGlja2VyTG9jYWxlIH0gZnJvbSAnbmd4LXRldGh5cy9pMThuJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBpY2tlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIGxvY2FsZTogU2lnbmFsPFRoeURhdGVQaWNrZXJMb2NhbGU+ID0gaW5qZWN0TG9jYWxlKCdkYXRlUGlja2VyJyk7XG5cbiAgICB0aHlWYWx1ZTogQ29tcGF0aWJsZVZhbHVlIHwgbnVsbDtcblxuICAgIF9wYW5lbE1vZGU6IFRoeVBhbmVsTW9kZSA9ICdkYXRlJztcblxuICAgIHByaXZhdGUgZGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoVGh5RGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog5qih5byPXG4gICAgICogQHR5cGUgZGVjYWRlIHwgeWVhciB8IG1vbnRoIHwgZGF0ZSB8IHdlZWsgfCBmbGV4aWJsZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlNb2RlKHZhbHVlOiBUaHlQYW5lbE1vZGUpIHtcbiAgICAgICAgdGhpcy5fcGFuZWxNb2RlID0gdmFsdWUgPz8gJ2RhdGUnO1xuICAgIH1cblxuICAgIGdldCB0aHlNb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWxNb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuua4hemZpOaMiemSrlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFsbG93Q2xlYXIgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6Ieq5Yqo6I635Y+W54Sm54K5XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlBdXRvRm9jdXMgPSBmYWxzZTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeU9wZW46IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSB0aHlEaXNhYmxlZERhdGU6IERpc2FibGVkRGF0ZUZuO1xuXG4gICAgLyoqXG4gICAgICog5pyA5bCP5YC8XG4gICAgICogQHR5cGUgRGF0ZSB8IG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1pbkRhdGU6IERhdGUgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlpKflgLxcbiAgICAgKiBAdHlwZSBEYXRlIHwgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TWF4RGF0ZTogRGF0ZSB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuaPkOekuuaWh+Wtl1xuICAgICAqIEB0eXBlIHN0cmluZyB8IHN0cmluZ1tdXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2VIb2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5Y+q6K+7XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlSZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOmAieaLqeWZqCBjbGFzc05hbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlPcmlnaW5DbGFzc05hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuWxgiBjbGFzc05hbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQYW5lbENsYXNzTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG55qE5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGcgfCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogJ2xnJyB8ICdtZCcgfCAnc20nIHwgJ3hzJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruaXtumXtOaIs+eyvuW6plxuICAgICAqIEBkZWZhdWx0IHNlY29uZHMgMTDkvY1cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaW1lc3RhbXBQcmVjaXNpb246ICdzZWNvbmRzJyB8ICdtaWxsaXNlY29uZHMnID0gdGhpcy5kYXRlUGlja2VyQ29uZmlnU2VydmljZS5jb25maWc/LnRpbWVzdGFtcFByZWNpc2lvbiB8fCAnc2Vjb25kcyc7XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrnmoTml6XmnJ/moLzlvI9cbiAgICAgKiBAZGVmYXVsdCB5eXl5LU1NLWRkXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Rm9ybWF0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgb25seSBmb3IgcmFuZ2UgcGlja2VyLCBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgYmVnaW5uaW5nIGFuZCBlbmRpbmcgdW5peFRpbWUgb2YgdGhlIGRheVxuICAgICAqIEBkZXNjcmlwdGlvbi56aC1jbiDmmK/lkKblj5blgLzlvIDlp4vml6XmnJ/nmoQwMDowMOS7peWPiuaIquatouaXpeacn+eahDI0OjAwXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlBdXRvU3RhcnRBbmRFbmQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOmdouadv+m7mOiupOaXpeacn1xuICAgICAqIEB0eXBlIENvbXBhdGlibGVEYXRlIHwgbnVtYmVyIHwgbnVsbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeURlZmF1bHRQaWNrZXJWYWx1ZTogQ29tcGF0aWJsZURhdGUgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieeahOWQjue8gOWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVN1ZmZpeEljb24gPSAnY2FsZW5kYXInO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5bGV56S65b+r5o236YCJ6aG56Z2i5p2/XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlTaG93U2hvcnRjdXQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlv6vmjbfpgInpobnpnaLmnb/nmoTmmL7npLrkvY3nva5cbiAgICAgKiBAdHlwZSBsZWZ0IHwgYm90dG9tXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVNob3J0Y3V0UG9zaXRpb24ocG9zaXRpb246IFRoeVNob3J0Y3V0UG9zaXRpb24pIHtcbiAgICAgICAgaWYgKCEhcG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2hvcnRjdXRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5b+r5o236YCJ6aG5XG4gICAgICogQHR5cGUgVGh5U2hvcnRjdXRQcmVzZXRbXVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlTaG9ydGN1dFByZXNldHMocHJlc2V0czogQ29tcGF0aWJsZVByZXNldHMpIHtcbiAgICAgICAgdGhpcy5zaG9ydGN1dFByZXNldHMgPSBwcmVzZXRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaXpeacn+WPmOWMlueahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlEYXRlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBWaWV3Q2hpbGQoVGh5UGlja2VyLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgcGlja2VyOiBUaHlQaWNrZXI7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHRoeURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgc2hvcnRjdXRQb3NpdGlvbjogVGh5U2hvcnRjdXRQb3NpdGlvbiA9ICdsZWZ0JztcblxuICAgIHNob3J0Y3V0UHJlc2V0czogQ29tcGF0aWJsZVByZXNldHM7XG5cbiAgICBpc1JhbmdlOiBib29sZWFuO1xuXG4gICAgd2l0aFRpbWU6IGJvb2xlYW47XG5cbiAgICBmbGV4aWJsZTogYm9vbGVhbjtcblxuICAgIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHk7XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJvdGVjdGVkIGlzQ3VzdG9tUGxhY2VIb2xkZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIG9ubHlFbWl0RGF0ZSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBvcmlnaW5XaXRoVGltZTogYm9vbGVhbjtcblxuICAgIGdldCByZWFsT3BlblN0YXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXIucmVhbE9wZW5TdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgaXNTaG93RGF0ZVBvcHVwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXIuaXNTaG93RGF0ZVBvcHVwO1xuICAgIH1cblxuICAgIGluaXRWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aHlWYWx1ZSA9IHRoaXMuaXNSYW5nZSA/IFtdIDogbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0UGxhY2VIb2xkZXIoKTtcbiAgICAgICAgdGhpcy5pbml0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5pc0ZsZXhpYmxlKCk7XG4gICAgfVxuXG4gICAgaXNGbGV4aWJsZSgpIHtcbiAgICAgICAgdGhpcy5mbGV4aWJsZSA9IHRoaXMudGh5TW9kZSA9PT0gJ2ZsZXhpYmxlJztcbiAgICB9XG5cbiAgICBvbkRhdGVWYWx1ZUNoYW5nZShldmVudDogVGh5RGF0ZUNoYW5nZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5RGF0ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnRoeVBsYWNlSG9sZGVyICYmIGNoYW5nZXMudGh5UGxhY2VIb2xkZXIuZmlyc3RDaGFuZ2UgJiYgdHlwZW9mIHRoaXMudGh5UGxhY2VIb2xkZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ3VzdG9tUGxhY2VIb2xkZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGNsb3NlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waWNrZXIuaGlkZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBnZXRBdXRvU3RhcnRBbmRFbmRWYWx1ZShiZWdpbjogVGlueURhdGUsIGVuZDogVGlueURhdGUpIHtcbiAgICAgICAgbGV0IHZhbHVlOiB7IGJlZ2luOiBudW1iZXI7IGVuZDogbnVtYmVyIH07XG4gICAgICAgIHN3aXRjaCAodGhpcy50aHlNb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IGJlZ2luLnN0YXJ0T2ZEYXkoKS5nZXRVbml4VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IGVuZC5lbmRPZkRheSgpLmdldFVuaXhUaW1lKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiBiZWdpbi5zdGFydE9mV2VlaygpLmdldFVuaXhUaW1lKCksXG4gICAgICAgICAgICAgICAgICAgIGVuZDogZW5kLmVuZE9mV2VlaygpLmdldFVuaXhUaW1lKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHZhbHVlID0ge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogYmVnaW4uc3RhcnRPZk1vbnRoKCkuZ2V0VW5peFRpbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiBlbmQuZW5kT2ZNb250aCgpLmdldFVuaXhUaW1lKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiBiZWdpbi5zdGFydE9mWWVhcigpLmdldFVuaXhUaW1lKCksXG4gICAgICAgICAgICAgICAgICAgIGVuZDogZW5kLmVuZE9mWWVhcigpLmdldFVuaXhUaW1lKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IGJlZ2luLnN0YXJ0T2ZEYXkoKS5nZXRVbml4VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IGVuZC5lbmRPZkRheSgpLmdldFVuaXhUaW1lKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKG9yaWdpbmFsVmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IFJhbmdlQWR2YW5jZWRWYWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEZvcm1hdFJ1bGUoKTtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgd2l0aFRpbWUsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5IH0gPSB0cmFuc2Zvcm1EYXRlVmFsdWUob3JpZ2luYWxWYWx1ZSk7XG4gICAgICAgIHRoaXMuZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgPSBmbGV4aWJsZURhdGVHcmFudWxhcml0eTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZBc1JhbmdlOiBhbnkgPSB0aGlzLnRoeVZhbHVlO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0geyBiZWdpbjogbnVsbCwgZW5kOiBudWxsIH0gYXMgVGh5RGF0ZVJhbmdlRW50cnk7XG4gICAgICAgICAgICBpZiAodkFzUmFuZ2UubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2JlZ2luLCBlbmRdID0gdkFzUmFuZ2UgYXMgVGlueURhdGVbXTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aHlBdXRvU3RhcnRBbmRFbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdldEF1dG9TdGFydEFuZEVuZFZhbHVlKGJlZ2luLCBlbmQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IGJlZ2luLmdldFVuaXhUaW1lKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IGVuZC5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgW2JlZ2luVW5peFRpbWUsIGVuZFVuaXhUaW1lXSA9IHRoaXMuc2V0VmFsdWVCeVByZWNpc2lvbih2YWx1ZSkgYXMgbnVtYmVyW107XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7IGJlZ2luOiBiZWdpblVuaXhUaW1lLCBlbmQ6IGVuZFVuaXhUaW1lIH0sIHRoaXMuZmxleGlibGUgPyB7IGdyYW51bGFyaXR5OiBmbGV4aWJsZURhdGVHcmFudWxhcml0eSB9IDoge30pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB7IGRhdGU6IG51bGwsIHdpdGhfdGltZTogdGhpcy53aXRoVGltZSA/IDEgOiAwIH0gYXMgRGF0ZUVudHJ5O1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5kYXRlID0gKHRoaXMudGh5VmFsdWUgYXMgVGlueURhdGUpLmdldFVuaXhUaW1lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5vbmx5RW1pdERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy5zZXRWYWx1ZUJ5UHJlY2lzaW9uKHZhbHVlLmRhdGUpIGFzIG51bWJlcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihPYmplY3QuYXNzaWduKHZhbHVlLCB7IGRhdGU6IHRoaXMuc2V0VmFsdWVCeVByZWNpc2lvbih2YWx1ZS5kYXRlKSBhcyBudW1iZXIgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0Rm9ybWF0UnVsZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoeUZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMud2l0aFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeUZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9ubHlFbWl0RGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeUZvcm1hdCA9ICd5eXl5LU1NLWRkJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeU9wZW4gPSBvcGVuO1xuICAgICAgICB0aGlzLnRoeU9wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZUZuOiAodmFsOiBDb21wYXRpYmxlRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5IHwgbnVtYmVyIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcblxuICAgIHdyaXRlVmFsdWUob3JpZ2luYWxWYWx1ZTogQ29tcGF0aWJsZURhdGUgfCBUaHlEYXRlUmFuZ2VFbnRyeSk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHZhbHVlLCB3aXRoVGltZSwgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgfSA9IHRyYW5zZm9ybURhdGVWYWx1ZShvcmlnaW5hbFZhbHVlKTtcbiAgICAgICAgdGhpcy5mbGV4aWJsZURhdGVHcmFudWxhcml0eSA9IGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5O1xuICAgICAgICBpZiAodGhpcy5mbGV4aWJsZSAmJiB2YWx1ZSAmJiAodmFsdWUgYXMgRGF0ZVtdKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5mbGV4aWJsZURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgPSAnZGF5JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFRpbWVQaWNrZXJTdGF0ZSh3aXRoVGltZSk7XG4gICAgICAgIHRoaXMub25seUVtaXREYXRlID0gdHlwZW9mIHdpdGhUaW1lID09PSAndW5kZWZpbmVkJztcbiAgICAgICAgdGhpcy5vcmlnaW5XaXRoVGltZSA9IHdpdGhUaW1lO1xuICAgICAgICB0aGlzLnNldEZvcm1hdFJ1bGUoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgc2V0VGltZVBpY2tlclN0YXRlKHdpdGhUaW1lOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2l0aFRpbWUgPSB3aXRoVGltZTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5RGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0UGxhY2VIb2xkZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0N1c3RvbVBsYWNlSG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnRoeVBsYWNlSG9sZGVyID0gdGhpcy5pc1JhbmdlID8gW3RoaXMubG9jYWxlKCkuc3RhcnREYXRlLCB0aGlzLmxvY2FsZSgpLmVuZERhdGVdIDogdGhpcy5sb2NhbGUoKS5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IENvbXBhdGlibGVEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5VmFsdWUgPSBtYWtlVmFsdWUodmFsdWUsIHRoaXMuaXNSYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZUJ5UHJlY2lzaW9uKHZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IG51bWJlciB8IERhdGUgfCBEYXRlRW50cnkgfCBUaHlEYXRlUmFuZ2VFbnRyeSB8IFNhZmVBbnkpOiBudW1iZXIgfCBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBzZXRWYWx1ZUJ5VGltZXN0YW1wUHJlY2lzaW9uKHZhbHVlLCB0aGlzLmlzUmFuZ2UsIHRoaXMudGh5VGltZXN0YW1wUHJlY2lzaW9uKTtcbiAgICB9XG59XG4iXX0=
@@ -131,7 +131,7 @@ export class BasePicker extends AbstractPickerComponent {
131
131
  year: 'yyyy',
132
132
  quarter: 'yyyy-qqq',
133
133
  month: 'yyyy-MM',
134
- week: 'yyyy-ww周',
134
+ week: this.locale().weekThFormat,
135
135
  date: this.thyShowTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd'
136
136
  };
137
137
  this.thyFormat = this.flexible ? inputFormats['date'] : inputFormats[value];
@@ -246,4 +246,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
246
246
  }], thyOnOk: [{
247
247
  type: Output
248
248
  }] } });
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2Jhc2UtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFnQixRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5RSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sV0FBVyxFQUVYLFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOztHQUVHO0FBVUgsTUFBTSxPQUFPLFVBQVcsU0FBUSx1QkFBdUI7SUFUdkQ7O1FBVWMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBdUJqQjs7O1dBR0c7UUFDMEMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFbkU7O1dBRUc7UUFDZ0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQWlDLENBQUM7UUFFeEY7O1dBRUc7UUFD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RSxxQkFBcUIsRUFBRTtnQkFNbEMsWUFBWTtzQkFBcEIsS0FBSztnQkFLYSxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGh5Q2xpY2tEaXNwYXRjaGVyLCBUaHlQbGFjZW1lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgZWxlbWVudE1hdGNoQ2xvc2VzdCwgRnVuY3Rpb25Qcm9wLCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlQWR2YW5jZWRWYWx1ZSB9IGZyb20gJy4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgQ29tcGF0aWJsZURhdGUsIFRoeVBhbmVsTW9kZSB9IGZyb20gJy4vc3RhbmRhcmQtdHlwZXMnO1xuaW1wb3J0IHsgVGh5UGlja2VyIH0gZnJvbSAnLi9waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGhhc1RpbWVJblN0cmluZ0RhdGUsIGlzVmFsaWRTdHJpbmdEYXRlLCBwYXJzZVN0cmluZ0RhdGUsIHRyYW5zZm9ybURhdGVWYWx1ZSB9IGZyb20gJy4vcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiBgdGFiSW5kZXhgLFxuICAgICAgICAnKGZvY3VzKSc6ICdvbkZvY3VzKCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ29uQmx1cigkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFzZVBpY2tlciBleHRlbmRzIEFic3RyYWN0UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByb3RlY3RlZCBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgc2hvd1dlZWsgPSBmYWxzZTtcblxuICAgIHBhbmVsTW9kZTogVGh5UGFuZWxNb2RlIHwgVGh5UGFuZWxNb2RlW107XG5cbiAgICBpbml0aWFsaXplZDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgaW5uZXJQcmV2aW91c0RhdGU6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGQoJ3RoeVBpY2tlcicsIHsgc3RhdGljOiB0cnVlIH0pIHRoeVBpY2tlcjogVGh5UGlja2VyO1xuXG4gICAgQElucHV0KCkgdGh5RGF0ZVJlbmRlcjogRnVuY3Rpb25Qcm9wPFRlbXBsYXRlUmVmPERhdGU+IHwgc3RyaW5nPjtcblxuICAgIEBJbnB1dCgpIHNldCB0aHlNb2RlKHZhbHVlOiBUaHlQYW5lbE1vZGUpIHtcbiAgICAgICAgdGhpcy5fcGFuZWxNb2RlID0gdmFsdWUgPz8gJ2RhdGUnO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0VGltZVBpY2tlclN0YXRlKHRoaXMuX3BhbmVsTW9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVsTW9kZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmnInluZXluINcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5SGFzQmFja2Ryb3AgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeVBhbmVsTW9kZSB8IFRoeVBhbmVsTW9kZVtdPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPblBhbmVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlQYW5lbE1vZGUgfCBUaHlQYW5lbE1vZGVbXT4oKTtcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxEYXRlW10+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeU9uQ2FsZW5kYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcblxuICAgIHByaXZhdGUgX3Nob3dUaW1lOiBvYmplY3QgfCBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5aKe5Yqg5pe26Ze06YCJ5oup5Yqf6IO9XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgdGh5U2hvd1RpbWUoKTogb2JqZWN0IHwgYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93VGltZTtcbiAgICB9XG4gICAgc2V0IHRoeVNob3dUaW1lKHZhbHVlOiBvYmplY3QgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Nob3dUaW1lID0gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IHZhbHVlIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrml7bpl7Qo5pe244CB5YiGKVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5TXVzdFNob3dUaW1lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rkvY3nva5cbiAgICAgKiBAdHlwZSB0b3AgfCB0b3BMZWZ0IHwgdG9wUmlnaHQgfCBib3R0b20gfCBib3R0b21MZWZ0IHwgYm90dG9tUmlnaHQgfCBsZWZ0IHwgbGVmdFRvcCB8IGxlZnRCb3R0b20gfCByaWdodCB8IHJpZ2h0VG9wIHwgcmlnaHRCb3R0b21cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQbGFjZW1lbnQ6IFRoeVBsYWNlbWVudCA9ICdib3R0b21MZWZ0JztcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxDb21wYXRpYmxlRGF0ZSB8IG51bGw+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeU9uT2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBhdGlibGVEYXRlIHwgbnVsbD4oKTtcblxuICAgIHRha2VVbnRpbERlc3Ryb3llZCA9IHRha2VVbnRpbERlc3Ryb3llZCgpO1xuXG4gICAgdGh5Q2xpY2tEaXNwYXRjaGVyID0gaW5qZWN0KFRoeUNsaWNrRGlzcGF0Y2hlcik7XG5cbiAgICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFRpbWVQaWNrZXJTdGF0ZSh0aGlzLl9wYW5lbE1vZGUpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy50aHlDbGlja0Rpc3BhdGNoZXJcbiAgICAgICAgICAgICAgICAuY2xpY2tlZCgwKVxuICAgICAgICAgICAgICAgIC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMudGh5UGlja2VyPy5vdmVybGF5Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFsT3BlblN0YXRlXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IFJhbmdlQWR2YW5jZWRWYWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeVBpY2tlci5lbnRlcmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc3RvcmVUaW1lUGlja2VyU3RhdGUodmFsdWUgYXMgQ29tcGF0aWJsZVZhbHVlKTtcbiAgICAgICAgc3VwZXIub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIGlmICghdGhpcy5mbGV4aWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVyUHJldmlvdXNEYXRlID0gdGhpcy50aHlQaWNrZXIuZ2V0UmVhZGFibGVWYWx1ZSh0aGlzLnRoeVZhbHVlKTtcbiAgICB9XG5cbiAgICBvbklucHV0VmFsdWVDaGFuZ2UoZm9ybWF0RGF0ZTogc3RyaW5nIHwgbnVsbCB8IEFycmF5PG51bGw+KSB7XG4gICAgICAgIGlmICghZm9ybWF0RGF0ZSB8fCAhZm9ybWF0RGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhdGlibGVWYWx1ZSA9IGZvcm1hdERhdGUgPyAoZm9ybWF0RGF0ZSBhcyBDb21wYXRpYmxlVmFsdWUpIDogbnVsbDtcbiAgICAgICAgICAgIHRoaXMucmVzdG9yZVRpbWVQaWNrZXJTdGF0ZShjb21wYXRpYmxlVmFsdWUpO1xuICAgICAgICAgICAgc3VwZXIub25WYWx1ZUNoYW5nZShjb21wYXRpYmxlVmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCB2YWx1ZSA9IGZvcm1hdERhdGUgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCB2YWx1ZVZhbGlkID0gaXNWYWxpZFN0cmluZ0RhdGUodmFsdWUpO1xuICAgICAgICBjb25zdCB2YWx1ZUxpbWl0VmFsaWQgPSB2YWx1ZVZhbGlkID8gdGhpcy5pc1ZhbGlkRGF0ZUxpbWl0KHBhcnNlU3RyaW5nRGF0ZSh2YWx1ZSkpIDogZmFsc2U7XG4gICAgICAgIGlmICh2YWx1ZVZhbGlkICYmIHZhbHVlTGltaXRWYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclByZXZpb3VzRGF0ZSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmlubmVyUHJldmlvdXNEYXRlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRpbnlEYXRlID0gdmFsdWUgPyAodGhpcy50aHlTaG93VGltZSA/IHBhcnNlU3RyaW5nRGF0ZSh2YWx1ZSkgOiBwYXJzZVN0cmluZ0RhdGUodmFsdWUpLnN0YXJ0T2ZEYXkoKSkgOiBudWxsO1xuICAgICAgICB0aGlzLnJlc3RvcmVUaW1lUGlja2VyU3RhdGUodGlueURhdGUpO1xuICAgICAgICBzdXBlci5vblZhbHVlQ2hhbmdlKHRpbnlEYXRlKTtcbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5cyB0aGUgdGltZSBkaXJlY3RseSB3aGVuIHRoZSB0aW1lIG11c3QgYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHRcbiAgICBzZXREZWZhdWx0VGltZVBpY2tlclN0YXRlKHZhbHVlOiBUaHlQYW5lbE1vZGUpIHtcbiAgICAgICAgdGhpcy53aXRoVGltZSA9IHRoaXMudGh5TXVzdFNob3dUaW1lO1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsTW9kZSA9IHRoaXMuZmxleGlibGUgPyBbJ2RhdGUnLCAnZGF0ZSddIDogW3ZhbHVlLCB2YWx1ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsTW9kZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd1dlZWsgPSB2YWx1ZSA9PT0gJ3dlZWsnO1xuICAgICAgICBpZiAoIXRoaXMudGh5Rm9ybWF0KSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvcm1hdHM6IHsgW2tleSBpbiBUaHlQYW5lbE1vZGVdPzogc3RyaW5nIH0gPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogJ3l5eXknLFxuICAgICAgICAgICAgICAgIHF1YXJ0ZXI6ICd5eXl5LXFxcScsXG4gICAgICAgICAgICAgICAgbW9udGg6ICd5eXl5LU1NJyxcbiAgICAgICAgICAgICAgICB3ZWVrOiAneXl5eS13d+WRqCcsXG4gICAgICAgICAgICAgICAgZGF0ZTogdGhpcy50aHlTaG93VGltZSA/ICd5eXl5LU1NLWRkIEhIOm1tJyA6ICd5eXl5LU1NLWRkJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudGh5Rm9ybWF0ID0gdGhpcy5mbGV4aWJsZSA/IGlucHV0Rm9ybWF0c1snZGF0ZSddIDogaW5wdXRGb3JtYXRzW3ZhbHVlXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3RvcmUgYWZ0ZXIgY2xlYXJpbmcgdGltZSB0byBzZWxlY3Qgd2hldGhlciB0aGUgb3JpZ2luYWwgcGlja2VyIHRpbWUgaXMgZGlzcGxheWVkIG9yIG5vdFxuICAgIHJlc3RvcmVUaW1lUGlja2VyU3RhdGUodmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IG51bGwpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53aXRoVGltZSA9IHRoaXMudGh5TXVzdFNob3dUaW1lIHx8IHRoaXMub3JpZ2luV2l0aFRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbWl0IHRoeU9uQ2FsZW5kYXJDaGFuZ2Ugd2hlbiBzZWxlY3QgZGF0ZSBieSB0aHktcmFuZ2UtcGlja2VyXG4gICAgb25DYWxlbmRhckNoYW5nZSh2YWx1ZTogVGlueURhdGVbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZVZhbHVlID0gdmFsdWUubWFwKHggPT4geC5uYXRpdmVEYXRlKTtcbiAgICAgICAgICAgIHRoaXMudGh5T25DYWxlbmRhckNoYW5nZS5lbWl0KHJhbmdlVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TaG93VGltZVBpY2tlckNoYW5nZShzaG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2l0aFRpbWUgPSBzaG93O1xuICAgIH1cblxuICAgIG9uUmVzdWx0T2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy50aHlWYWx1ZSBhcyBUaW55RGF0ZVtdO1xuICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5T25Pay5lbWl0KFt2YWx1ZVswXS5uYXRpdmVEYXRlLCB2YWx1ZVsxXS5uYXRpdmVEYXRlXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5T25Pay5lbWl0KFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlPbk9rLmVtaXQoKHRoaXMudGh5VmFsdWUgYXMgVGlueURhdGUpLm5hdGl2ZURhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeU9uT2suZW1pdChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5T3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICAgICAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMucGlja2VyLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25CbHVyKGV2ZW50PzogRm9jdXNFdmVudCkge1xuICAgICAgICAvLyBUYWIg6IGa54Sm5ZCO6Ieq5Yqo6IGa54Sm5YiwIGlucHV0IOi+k+WFpeahhu+8jOatpOWIhuaUr+S4i+ebtOaOpei/lOWbnu+8jOaXoOmcgOinpuWPkSBvblRvdWNoZWRGblxuICAgICAgICBpZiAoZWxlbWVudE1hdGNoQ2xvc2VzdChldmVudD8ucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCwgWydkYXRlLXBvcHVwJywgJ3RoeS1waWNrZXInXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgfVxuXG4gICAgb25JbnB1dERhdGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgJiYgaXNWYWxpZFN0cmluZ0RhdGUodmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlTaG93VGltZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud2l0aFRpbWUgPSBoYXNUaW1lSW5TdHJpbmdEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGh5VmFsdWUgPSBwYXJzZVN0cmluZ0RhdGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkRGF0ZUxpbWl0KGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBkaXNhYmxlID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkRGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkaXNhYmxlID0gdGhpcy50aHlEaXNhYmxlZERhdGUoZGF0ZS5uYXRpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaW5EYXRlID0gdGhpcy50aHlNaW5EYXRlID8gbmV3IFRpbnlEYXRlKHRyYW5zZm9ybURhdGVWYWx1ZSh0aGlzLnRoeU1pbkRhdGUpLnZhbHVlIGFzIERhdGUpIDogbnVsbDtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMudGh5TWF4RGF0ZSA/IG5ldyBUaW55RGF0ZSh0cmFuc2Zvcm1EYXRlVmFsdWUodGhpcy50aHlNYXhEYXRlKS52YWx1ZSBhcyBEYXRlKSA6IG51bGw7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoIW1pbkRhdGUgfHwgZGF0ZS5zdGFydE9mRGF5KCkubmF0aXZlRGF0ZSA+PSBtaW5EYXRlLnN0YXJ0T2ZEYXkoKS5uYXRpdmVEYXRlKSAmJlxuICAgICAgICAgICAgKCFtYXhEYXRlIHx8IGRhdGUuc3RhcnRPZkRheSgpLm5hdGl2ZURhdGUgPD0gbWF4RGF0ZS5zdGFydE9mRGF5KCkubmF0aXZlRGF0ZSkgJiZcbiAgICAgICAgICAgICFkaXNhYmxlXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2Jhc2UtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFnQixRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5RSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sV0FBVyxFQUVYLFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOztHQUVHO0FBVUgsTUFBTSxPQUFPLFVBQVcsU0FBUSx1QkFBdUI7SUFUdkQ7O1FBVWMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBdUJqQjs7O1dBR0c7UUFDMEMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFbkU7O1dBRUc7UUFDZ0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQWlDLENBQUM7UUFFeEY7O1dBRUc7UUFD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LEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWxDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS2EsT0FBTztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoeUNsaWNrRGlzcGF0Y2hlciwgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGVsZW1lbnRNYXRjaENsb3Nlc3QsIEZ1bmN0aW9uUHJvcCwgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGF0aWJsZVZhbHVlLCBSYW5nZUFkdmFuY2VkVmFsdWUgfSBmcm9tICcuL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IENvbXBhdGlibGVEYXRlLCBUaHlQYW5lbE1vZGUgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcbmltcG9ydCB7IFRoeVBpY2tlciB9IGZyb20gJy4vcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBoYXNUaW1lSW5TdHJpbmdEYXRlLCBpc1ZhbGlkU3RyaW5nRGF0ZSwgcGFyc2VTdHJpbmdEYXRlLCB0cmFuc2Zvcm1EYXRlVmFsdWUgfSBmcm9tICcuL3BpY2tlci51dGlsJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogYHRhYkluZGV4YCxcbiAgICAgICAgJyhmb2N1cyknOiAnb25Gb2N1cygkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdvbkJsdXIoJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEJhc2VQaWNrZXIgZXh0ZW5kcyBBYnN0cmFjdFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBwcm90ZWN0ZWQgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIHNob3dXZWVrID0gZmFsc2U7XG5cbiAgICBwYW5lbE1vZGU6IFRoeVBhbmVsTW9kZSB8IFRoeVBhbmVsTW9kZVtdO1xuXG4gICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGlubmVyUHJldmlvdXNEYXRlOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCd0aHlQaWNrZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSB0aHlQaWNrZXI6IFRoeVBpY2tlcjtcblxuICAgIEBJbnB1dCgpIHRoeURhdGVSZW5kZXI6IEZ1bmN0aW9uUHJvcDxUZW1wbGF0ZVJlZjxEYXRlPiB8IHN0cmluZz47XG5cbiAgICBASW5wdXQoKSBzZXQgdGh5TW9kZSh2YWx1ZTogVGh5UGFuZWxNb2RlKSB7XG4gICAgICAgIHRoaXMuX3BhbmVsTW9kZSA9IHZhbHVlID8/ICdkYXRlJztcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdFRpbWVQaWNrZXJTdGF0ZSh0aGlzLl9wYW5lbE1vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeU1vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYW5lbE1vZGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pyJ5bmV5biDXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUhhc0JhY2tkcm9wID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxUaHlQYW5lbE1vZGUgfCBUaHlQYW5lbE1vZGVbXT5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T25QYW5lbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5UGFuZWxNb2RlIHwgVGh5UGFuZWxNb2RlW10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8RGF0ZVtdPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPbkNhbGVuZGFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10+KCk7XG5cbiAgICBwcml2YXRlIF9zaG93VGltZTogb2JqZWN0IHwgYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWinuWKoOaXtumXtOmAieaLqeWKn+iDvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHRoeVNob3dUaW1lKCk6IG9iamVjdCB8IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1RpbWU7XG4gICAgfVxuICAgIHNldCB0aHlTaG93VGltZSh2YWx1ZTogb2JqZWN0IHwgYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93VGltZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyB2YWx1ZSA6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5bGV56S65pe26Ze0KOaXtuOAgeWIhilcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeU11c3RTaG93VGltZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5by55Ye65L2N572uXG4gICAgICogQHR5cGUgdG9wIHwgdG9wTGVmdCB8IHRvcFJpZ2h0IHwgYm90dG9tIHwgYm90dG9tTGVmdCB8IGJvdHRvbVJpZ2h0IHwgbGVmdCB8IGxlZnRUb3AgfCBsZWZ0Qm90dG9tIHwgcmlnaHQgfCByaWdodFRvcCB8IHJpZ2h0Qm90dG9tXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2VtZW50OiBUaHlQbGFjZW1lbnQgPSAnYm90dG9tTGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8Q29tcGF0aWJsZURhdGUgfCBudWxsPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPbk9rID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wYXRpYmxlRGF0ZSB8IG51bGw+KCk7XG5cbiAgICB0YWtlVW50aWxEZXN0cm95ZWQgPSB0YWtlVW50aWxEZXN0cm95ZWQoKTtcblxuICAgIHRoeUNsaWNrRGlzcGF0Y2hlciA9IGluamVjdChUaHlDbGlja0Rpc3BhdGNoZXIpO1xuXG4gICAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldERlZmF1bHRUaW1lUGlja2VyU3RhdGUodGhpcy5fcGFuZWxNb2RlKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMudGh5Q2xpY2tEaXNwYXRjaGVyXG4gICAgICAgICAgICAgICAgLmNsaWNrZWQoMClcbiAgICAgICAgICAgICAgICAucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnRoeVBpY2tlcj8ub3ZlcmxheUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVhbE9wZW5TdGF0ZVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBDb21wYXRpYmxlVmFsdWUgfCBSYW5nZUFkdmFuY2VkVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aHlQaWNrZXIuZW50ZXJpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXN0b3JlVGltZVBpY2tlclN0YXRlKHZhbHVlIGFzIENvbXBhdGlibGVWYWx1ZSk7XG4gICAgICAgIHN1cGVyLm9uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMuZmxleGlibGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbm5lclByZXZpb3VzRGF0ZSA9IHRoaXMudGh5UGlja2VyLmdldFJlYWRhYmxlVmFsdWUodGhpcy50aHlWYWx1ZSk7XG4gICAgfVxuXG4gICAgb25JbnB1dFZhbHVlQ2hhbmdlKGZvcm1hdERhdGU6IHN0cmluZyB8IG51bGwgfCBBcnJheTxudWxsPikge1xuICAgICAgICBpZiAoIWZvcm1hdERhdGUgfHwgIWZvcm1hdERhdGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wYXRpYmxlVmFsdWUgPSBmb3JtYXREYXRlID8gKGZvcm1hdERhdGUgYXMgQ29tcGF0aWJsZVZhbHVlKSA6IG51bGw7XG4gICAgICAgICAgICB0aGlzLnJlc3RvcmVUaW1lUGlja2VyU3RhdGUoY29tcGF0aWJsZVZhbHVlKTtcbiAgICAgICAgICAgIHN1cGVyLm9uVmFsdWVDaGFuZ2UoY29tcGF0aWJsZVZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdmFsdWUgPSBmb3JtYXREYXRlIGFzIHN0cmluZztcbiAgICAgICAgY29uc3QgdmFsdWVWYWxpZCA9IGlzVmFsaWRTdHJpbmdEYXRlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgdmFsdWVMaW1pdFZhbGlkID0gdmFsdWVWYWxpZCA/IHRoaXMuaXNWYWxpZERhdGVMaW1pdChwYXJzZVN0cmluZ0RhdGUodmFsdWUpKSA6IGZhbHNlO1xuICAgICAgICBpZiAodmFsdWVWYWxpZCAmJiB2YWx1ZUxpbWl0VmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJQcmV2aW91c0RhdGUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5pbm5lclByZXZpb3VzRGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0aW55RGF0ZSA9IHZhbHVlID8gKHRoaXMudGh5U2hvd1RpbWUgPyBwYXJzZVN0cmluZ0RhdGUodmFsdWUpIDogcGFyc2VTdHJpbmdEYXRlKHZhbHVlKS5zdGFydE9mRGF5KCkpIDogbnVsbDtcbiAgICAgICAgdGhpcy5yZXN0b3JlVGltZVBpY2tlclN0YXRlKHRpbnlEYXRlKTtcbiAgICAgICAgc3VwZXIub25WYWx1ZUNoYW5nZSh0aW55RGF0ZSk7XG4gICAgfVxuXG4gICAgLy8gRGlzcGxheXMgdGhlIHRpbWUgZGlyZWN0bHkgd2hlbiB0aGUgdGltZSBtdXN0IGJlIGRpc3BsYXllZCBieSBkZWZhdWx0XG4gICAgc2V0RGVmYXVsdFRpbWVQaWNrZXJTdGF0ZSh2YWx1ZTogVGh5UGFuZWxNb2RlKSB7XG4gICAgICAgIHRoaXMud2l0aFRpbWUgPSB0aGlzLnRoeU11c3RTaG93VGltZTtcbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wYW5lbE1vZGUgPSB0aGlzLmZsZXhpYmxlID8gWydkYXRlJywgJ2RhdGUnXSA6IFt2YWx1ZSwgdmFsdWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYW5lbE1vZGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dXZWVrID0gdmFsdWUgPT09ICd3ZWVrJztcbiAgICAgICAgaWYgKCF0aGlzLnRoeUZvcm1hdCkge1xuICAgICAgICAgICAgY29uc3QgaW5wdXRGb3JtYXRzOiB7IFtrZXkgaW4gVGh5UGFuZWxNb2RlXT86IHN0cmluZyB9ID0ge1xuICAgICAgICAgICAgICAgIHllYXI6ICd5eXl5JyxcbiAgICAgICAgICAgICAgICBxdWFydGVyOiAneXl5eS1xcXEnLFxuICAgICAgICAgICAgICAgIG1vbnRoOiAneXl5eS1NTScsXG4gICAgICAgICAgICAgICAgd2VlazogdGhpcy5sb2NhbGUoKS53ZWVrVGhGb3JtYXQsXG4gICAgICAgICAgICAgICAgZGF0ZTogdGhpcy50aHlTaG93VGltZSA/ICd5eXl5LU1NLWRkIEhIOm1tJyA6ICd5eXl5LU1NLWRkJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudGh5Rm9ybWF0ID0gdGhpcy5mbGV4aWJsZSA/IGlucHV0Rm9ybWF0c1snZGF0ZSddIDogaW5wdXRGb3JtYXRzW3ZhbHVlXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3RvcmUgYWZ0ZXIgY2xlYXJpbmcgdGltZSB0byBzZWxlY3Qgd2hldGhlciB0aGUgb3JpZ2luYWwgcGlja2VyIHRpbWUgaXMgZGlzcGxheWVkIG9yIG5vdFxuICAgIHJlc3RvcmVUaW1lUGlja2VyU3RhdGUodmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IG51bGwpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53aXRoVGltZSA9IHRoaXMudGh5TXVzdFNob3dUaW1lIHx8IHRoaXMub3JpZ2luV2l0aFRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbWl0IHRoeU9uQ2FsZW5kYXJDaGFuZ2Ugd2hlbiBzZWxlY3QgZGF0ZSBieSB0aHktcmFuZ2UtcGlja2VyXG4gICAgb25DYWxlbmRhckNoYW5nZSh2YWx1ZTogVGlueURhdGVbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZVZhbHVlID0gdmFsdWUubWFwKHggPT4geC5uYXRpdmVEYXRlKTtcbiAgICAgICAgICAgIHRoaXMudGh5T25DYWxlbmRhckNoYW5nZS5lbWl0KHJhbmdlVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TaG93VGltZVBpY2tlckNoYW5nZShzaG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2l0aFRpbWUgPSBzaG93O1xuICAgIH1cblxuICAgIG9uUmVzdWx0T2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy50aHlWYWx1ZSBhcyBUaW55RGF0ZVtdO1xuICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5T25Pay5lbWl0KFt2YWx1ZVswXS5uYXRpdmVEYXRlLCB2YWx1ZVsxXS5uYXRpdmVEYXRlXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5T25Pay5lbWl0KFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlPbk9rLmVtaXQoKHRoaXMudGh5VmFsdWUgYXMgVGlueURhdGUpLm5hdGl2ZURhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeU9uT2suZW1pdChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5T3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICAgICAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMucGlja2VyLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25CbHVyKGV2ZW50PzogRm9jdXNFdmVudCkge1xuICAgICAgICAvLyBUYWIg6IGa54Sm5ZCO6Ieq5Yqo6IGa54Sm5YiwIGlucHV0IOi+k+WFpeahhu+8jOatpOWIhuaUr+S4i+ebtOaOpei/lOWbnu+8jOaXoOmcgOinpuWPkSBvblRvdWNoZWRGblxuICAgICAgICBpZiAoZWxlbWVudE1hdGNoQ2xvc2VzdChldmVudD8ucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCwgWydkYXRlLXBvcHVwJywgJ3RoeS1waWNrZXInXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgfVxuXG4gICAgb25JbnB1dERhdGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgJiYgaXNWYWxpZFN0cmluZ0RhdGUodmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlTaG93VGltZSkge1xuICAgICAgICAgICAgICAgIHRoaXMud2l0aFRpbWUgPSBoYXNUaW1lSW5TdHJpbmdEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGh5VmFsdWUgPSBwYXJzZVN0cmluZ0RhdGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkRGF0ZUxpbWl0KGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBkaXNhYmxlID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkRGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkaXNhYmxlID0gdGhpcy50aHlEaXNhYmxlZERhdGUoZGF0ZS5uYXRpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaW5EYXRlID0gdGhpcy50aHlNaW5EYXRlID8gbmV3IFRpbnlEYXRlKHRyYW5zZm9ybURhdGVWYWx1ZSh0aGlzLnRoeU1pbkRhdGUpLnZhbHVlIGFzIERhdGUpIDogbnVsbDtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMudGh5TWF4RGF0ZSA/IG5ldyBUaW55RGF0ZSh0cmFuc2Zvcm1EYXRlVmFsdWUodGhpcy50aHlNYXhEYXRlKS52YWx1ZSBhcyBEYXRlKSA6IG51bGw7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoIW1pbkRhdGUgfHwgZGF0ZS5zdGFydE9mRGF5KCkubmF0aXZlRGF0ZSA+PSBtaW5EYXRlLnN0YXJ0T2ZEYXkoKS5uYXRpdmVEYXRlKSAmJlxuICAgICAgICAgICAgKCFtYXhEYXRlIHx8IGRhdGUuc3RhcnRPZkRheSgpLm5hdGl2ZURhdGUgPD0gbWF4RGF0ZS5zdGFydE9mRGF5KCkubmF0aXZlRGF0ZSkgJiZcbiAgICAgICAgICAgICFkaXNhYmxlXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { useLocale } from 'ngx-tethys/i18n';
2
3
  import { formatDate } from '@angular/common';
3
4
  import * as i0 from "@angular/core";
4
5
  export function DATE_HELPER_SERVICE_FACTORY() {
@@ -9,6 +10,7 @@ export function DATE_HELPER_SERVICE_FACTORY() {
9
10
  */
10
11
  export class DateHelperService {
11
12
  constructor() {
13
+ this.locale = useLocale();
12
14
  this.relyOnDatePipe = this instanceof DateHelperByDatePipe;
13
15
  }
14
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DateHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -26,10 +28,10 @@ export class DateHelperByDatePipe extends DateHelperService {
26
28
  return +this.format(date, 'w');
27
29
  }
28
30
  format(date, formatStr) {
29
- return date ? formatDate(date, formatStr, 'zh-Hans') : '';
31
+ return date ? formatDate(date, formatStr, this.locale().id) : '';
30
32
  }
31
33
  transCompatFormat(format) {
32
34
  return format && format.replace(/Y/g, 'y').replace(/D/g, 'd');
33
35
  }
34
36
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9kYXRlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUU3QyxNQUFNLFVBQVUsMkJBQTJCO0lBQ3ZDLE9BQU8sSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7R0FFRztBQUtILE1BQU0sT0FBZ0IsaUJBQWlCO0lBSnZDO1FBS0ksbUJBQWMsR0FBWSxJQUFJLFlBQVksb0JBQW9CLENBQUM7S0FHbEU7OEdBSnFCLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBSHZCLE1BQU0sY0FDTiwyQkFBMkI7OzJGQUVyQixpQkFBaUI7a0JBSnRDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLFVBQVUsRUFBRSwyQkFBMkI7aUJBQzFDOztBQU9ELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxpQkFBaUI7SUFDdkQsVUFBVSxDQUFDLElBQVU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBaUIsRUFBRSxTQUFpQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBYztRQUM1QixPQUFPLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gREFURV9IRUxQRVJfU0VSVklDRV9GQUNUT1JZKCk6IERhdGVIZWxwZXJTZXJ2aWNlIHtcbiAgICByZXR1cm4gbmV3IERhdGVIZWxwZXJCeURhdGVQaXBlKCk7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICB1c2VGYWN0b3J5OiBEQVRFX0hFTFBFUl9TRVJWSUNFX0ZBQ1RPUllcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUhlbHBlclNlcnZpY2Uge1xuICAgIHJlbHlPbkRhdGVQaXBlOiBib29sZWFuID0gdGhpcyBpbnN0YW5jZW9mIERhdGVIZWxwZXJCeURhdGVQaXBlO1xuICAgIGFic3RyYWN0IGdldElTT1dlZWsoZGF0ZTogRGF0ZSk6IG51bWJlcjtcbiAgICBhYnN0cmFjdCBmb3JtYXQoZGF0ZTogRGF0ZSwgZm9ybWF0U3RyOiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlSGVscGVyQnlEYXRlUGlwZSBleHRlbmRzIERhdGVIZWxwZXJTZXJ2aWNlIHtcbiAgICBnZXRJU09XZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gK3RoaXMuZm9ybWF0KGRhdGUsICd3Jyk7XG4gICAgfVxuXG4gICAgZm9ybWF0KGRhdGU6IERhdGUgfCBudWxsLCBmb3JtYXRTdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlID8gZm9ybWF0RGF0ZShkYXRlLCBmb3JtYXRTdHIsICd6aC1IYW5zJykgOiAnJztcbiAgICB9XG5cbiAgICB0cmFuc0NvbXBhdEZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBmb3JtYXQgJiYgZm9ybWF0LnJlcGxhY2UoL1kvZywgJ3knKS5yZXBsYWNlKC9EL2csICdkJyk7XG4gICAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9kYXRlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTdDLE1BQU0sVUFBVSwyQkFBMkI7SUFDdkMsT0FBTyxJQUFJLG9CQUFvQixFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVEOztHQUVHO0FBS0gsTUFBTSxPQUFnQixpQkFBaUI7SUFKdkM7UUFLSSxXQUFNLEdBQTBCLFNBQVMsRUFBRSxDQUFDO1FBQzVDLG1CQUFjLEdBQVksSUFBSSxZQUFZLG9CQUFvQixDQUFDO0tBR2xFOzhHQUxxQixpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUh2QixNQUFNLGNBQ04sMkJBQTJCOzsyRkFFckIsaUJBQWlCO2tCQUp0QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO29CQUNsQixVQUFVLEVBQUUsMkJBQTJCO2lCQUMxQzs7QUFRRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsaUJBQWlCO0lBQ3ZELFVBQVUsQ0FBQyxJQUFVO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQWlCLEVBQUUsU0FBaUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFjO1FBQzVCLE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJMThuTG9jYWxlLCB1c2VMb2NhbGUgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBEQVRFX0hFTFBFUl9TRVJWSUNFX0ZBQ1RPUlkoKTogRGF0ZUhlbHBlclNlcnZpY2Uge1xuICAgIHJldHVybiBuZXcgRGF0ZUhlbHBlckJ5RGF0ZVBpcGUoKTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIHVzZUZhY3Rvcnk6IERBVEVfSEVMUEVSX1NFUlZJQ0VfRkFDVE9SWVxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlSGVscGVyU2VydmljZSB7XG4gICAgbG9jYWxlOiBTaWduYWw8VGh5STE4bkxvY2FsZT4gPSB1c2VMb2NhbGUoKTtcbiAgICByZWx5T25EYXRlUGlwZTogYm9vbGVhbiA9IHRoaXMgaW5zdGFuY2VvZiBEYXRlSGVscGVyQnlEYXRlUGlwZTtcbiAgICBhYnN0cmFjdCBnZXRJU09XZWVrKGRhdGU6IERhdGUpOiBudW1iZXI7XG4gICAgYWJzdHJhY3QgZm9ybWF0KGRhdGU6IERhdGUsIGZvcm1hdFN0cjogc3RyaW5nKTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0ZUhlbHBlckJ5RGF0ZVBpcGUgZXh0ZW5kcyBEYXRlSGVscGVyU2VydmljZSB7XG4gICAgZ2V0SVNPV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICt0aGlzLmZvcm1hdChkYXRlLCAndycpO1xuICAgIH1cblxuICAgIGZvcm1hdChkYXRlOiBEYXRlIHwgbnVsbCwgZm9ybWF0U3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGF0ZSA/IGZvcm1hdERhdGUoZGF0ZSwgZm9ybWF0U3RyLCB0aGlzLmxvY2FsZSgpLmlkKSA6ICcnO1xuICAgIH1cblxuICAgIHRyYW5zQ29tcGF0Rm9ybWF0KGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdCAmJiBmb3JtYXQucmVwbGFjZSgvWS9nLCAneScpLnJlcGxhY2UoL0QvZywgJ2QnKTtcbiAgICB9XG59XG4iXX0=