@alauda/ui 6.5.10-beta.8 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/autocomplete/suggestion/suggestion.component.d.ts +5 -5
  2. package/back-top/back-top.component.d.ts +1 -0
  3. package/back-top/back-top.module.d.ts +2 -1
  4. package/button/button.types.d.ts +0 -2
  5. package/card/helper-directives.d.ts +1 -2
  6. package/checkbox/checkbox-group/checkbox-group.component.d.ts +2 -2
  7. package/date-picker/calendar/date-picker-panel/component.d.ts +2 -0
  8. package/date-picker/date-picker.type.d.ts +2 -2
  9. package/dropdown/dropdown-button/dropdown-button.component.d.ts +2 -3
  10. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +9 -9
  11. package/esm2022/accordion/accordion.component.mjs +3 -3
  12. package/esm2022/accordion/accordion.module.mjs +4 -4
  13. package/esm2022/anchor/anchor.component.mjs +15 -15
  14. package/esm2022/anchor/anchor.directive.mjs +9 -9
  15. package/esm2022/anchor/anchor.module.mjs +4 -4
  16. package/esm2022/autocomplete/autocomplete-placeholder.component.mjs +3 -3
  17. package/esm2022/autocomplete/autocomplete.component.mjs +6 -6
  18. package/esm2022/autocomplete/autocomplete.directive.mjs +16 -12
  19. package/esm2022/autocomplete/autocomplete.module.mjs +6 -6
  20. package/esm2022/autocomplete/helper-directives.mjs +3 -3
  21. package/esm2022/autocomplete/suggestion/suggestion.component.mjs +12 -20
  22. package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +3 -3
  23. package/esm2022/back-top/back-top.component.mjs +24 -8
  24. package/esm2022/back-top/back-top.module.mjs +7 -6
  25. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +3 -3
  26. package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
  27. package/esm2022/breadcrumb/breadcrumb.module.mjs +4 -4
  28. package/esm2022/button/button-group/button-group.component.mjs +3 -3
  29. package/esm2022/button/button.component.mjs +3 -3
  30. package/esm2022/button/button.module.mjs +4 -4
  31. package/esm2022/button/button.types.mjs +1 -3
  32. package/esm2022/card/card.component.mjs +3 -3
  33. package/esm2022/card/card.module.mjs +4 -4
  34. package/esm2022/card/helper-directives.mjs +12 -15
  35. package/esm2022/card/section.component.mjs +3 -3
  36. package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
  37. package/esm2022/checkbox/checkbox.component.mjs +3 -3
  38. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  39. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  40. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  41. package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +43 -7
  42. package/esm2022/date-picker/calendar/footer/component.mjs +3 -3
  43. package/esm2022/date-picker/calendar/header/component.mjs +6 -5
  44. package/esm2022/date-picker/calendar/panel/picker-panel.mjs +6 -6
  45. package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +3 -3
  46. package/esm2022/date-picker/calendar/util.mjs +3 -3
  47. package/esm2022/date-picker/date-picker/date-picker.component.mjs +3 -3
  48. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  49. package/esm2022/date-picker/date-picker.type.mjs +1 -1
  50. package/esm2022/date-picker/range-picker/range-picker.component.mjs +3 -3
  51. package/esm2022/date-picker/trigger/trigger.component.mjs +7 -7
  52. package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +10 -7
  53. package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +3 -3
  54. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +3 -3
  55. package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +3 -3
  56. package/esm2022/dialog/dialog-content/dialog-header.component.mjs +3 -3
  57. package/esm2022/dialog/dialog.component.mjs +3 -3
  58. package/esm2022/dialog/dialog.module.mjs +4 -4
  59. package/esm2022/dialog/dialog.service.mjs +3 -3
  60. package/esm2022/drawer/component/drawer.component.mjs +5 -5
  61. package/esm2022/drawer/component/helper-directives.mjs +9 -9
  62. package/esm2022/drawer/drawer.module.mjs +4 -4
  63. package/esm2022/drawer/drawer.service.mjs +3 -3
  64. package/esm2022/dropdown/dropdown-active.directive.mjs +3 -3
  65. package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +8 -13
  66. package/esm2022/dropdown/dropdown.directive.mjs +3 -3
  67. package/esm2022/dropdown/dropdown.module.mjs +7 -7
  68. package/esm2022/dropdown/helper-directives.mjs +3 -3
  69. package/esm2022/dropdown/menu/menu-content.directive.mjs +3 -3
  70. package/esm2022/dropdown/menu/menu.component.mjs +3 -3
  71. package/esm2022/dropdown/menu-group/menu-group.component.mjs +3 -3
  72. package/esm2022/dropdown/menu-item/menu-item.component.mjs +3 -3
  73. package/esm2022/dropdown/submenu/submenu.component.mjs +3 -3
  74. package/esm2022/form/common-form.mjs +4 -5
  75. package/esm2022/form/form-item/form-item.component.mjs +3 -3
  76. package/esm2022/form/form.directive.mjs +3 -3
  77. package/esm2022/form/form.module.mjs +4 -4
  78. package/esm2022/form/helper-directives.mjs +19 -24
  79. package/esm2022/i18n/i18n.module.mjs +4 -4
  80. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  81. package/esm2022/i18n/i18n.service.mjs +8 -6
  82. package/esm2022/i18n/language/en.mjs +2 -2
  83. package/esm2022/icon/icon-register.service.mjs +3 -3
  84. package/esm2022/icon/icon.component.mjs +3 -3
  85. package/esm2022/icon/icon.module.mjs +4 -4
  86. package/esm2022/icon/icons.mjs +2 -2
  87. package/esm2022/inline-alert/helper-directives.mjs +3 -3
  88. package/esm2022/inline-alert/inline-alert.component.mjs +12 -8
  89. package/esm2022/inline-alert/inline-alert.module.mjs +4 -4
  90. package/esm2022/input/autosize.directive.mjs +3 -3
  91. package/esm2022/input/helper-directives.mjs +12 -12
  92. package/esm2022/input/input-group/input-group.component.mjs +4 -4
  93. package/esm2022/input/input.component.mjs +4 -4
  94. package/esm2022/input/input.module.mjs +4 -4
  95. package/esm2022/input/number-input/number-input.component.mjs +16 -10
  96. package/esm2022/input/search/search.component.mjs +3 -3
  97. package/esm2022/input/tags-input/tags-input.component.mjs +7 -7
  98. package/esm2022/input/tags-input/with-max-row-count.mjs +15 -8
  99. package/esm2022/message/message-wrapper.component.mjs +3 -3
  100. package/esm2022/message/message.component.mjs +3 -3
  101. package/esm2022/message/message.module.mjs +4 -4
  102. package/esm2022/message/message.service.mjs +3 -3
  103. package/esm2022/notification/notification-wrapper.component.mjs +3 -3
  104. package/esm2022/notification/notification.component.mjs +5 -5
  105. package/esm2022/notification/notification.module.mjs +4 -4
  106. package/esm2022/notification/notification.service.mjs +3 -3
  107. package/esm2022/paginator/paginator-intl.mjs +3 -3
  108. package/esm2022/paginator/paginator.component.mjs +23 -21
  109. package/esm2022/paginator/paginator.module.mjs +4 -4
  110. package/esm2022/radio/base-radio.mjs +3 -3
  111. package/esm2022/radio/radio-button/radio-button.component.mjs +3 -3
  112. package/esm2022/radio/radio-group/radio-group.component.mjs +4 -9
  113. package/esm2022/radio/radio.component.mjs +3 -3
  114. package/esm2022/radio/radio.module.mjs +4 -4
  115. package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +3 -3
  116. package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +3 -3
  117. package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +3 -3
  118. package/esm2022/scrolling/scrolling.module.mjs +4 -4
  119. package/esm2022/scrolling/virtual-for-of.directive.mjs +3 -3
  120. package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +3 -3
  121. package/esm2022/select/base-select.mjs +23 -35
  122. package/esm2022/select/helper-directives.mjs +6 -6
  123. package/esm2022/select/multi-select/multi-select.component.mjs +21 -28
  124. package/esm2022/select/option/option.component.mjs +3 -3
  125. package/esm2022/select/option-group/option-group.component.mjs +3 -3
  126. package/esm2022/select/option-placeholder.component.mjs +3 -3
  127. package/esm2022/select/select.component.mjs +5 -5
  128. package/esm2022/select/select.module.mjs +6 -6
  129. package/esm2022/select/validators.mjs +8 -8
  130. package/esm2022/shared/click-outside.directive.mjs +3 -3
  131. package/esm2022/shared/shared.module.mjs +4 -4
  132. package/esm2022/sort/sort-header.component.mjs +3 -3
  133. package/esm2022/sort/sort.directive.mjs +8 -8
  134. package/esm2022/sort/sort.module.mjs +4 -4
  135. package/esm2022/status-bar/status-bar.component.mjs +3 -3
  136. package/esm2022/status-bar/status-bar.module.mjs +4 -4
  137. package/esm2022/steps/steps.component.mjs +16 -30
  138. package/esm2022/steps/steps.module.mjs +4 -4
  139. package/esm2022/steps/types.mjs +1 -1
  140. package/esm2022/switch/switch.component.mjs +3 -3
  141. package/esm2022/switch/switch.module.mjs +4 -4
  142. package/esm2022/table/table-cell-def.directive.mjs +3 -3
  143. package/esm2022/table/table-cell.component.mjs +6 -6
  144. package/esm2022/table/table-cell.directive.mjs +3 -3
  145. package/esm2022/table/table-column-def.directive.mjs +3 -3
  146. package/esm2022/table/table-header-cell-def.directive.mjs +3 -3
  147. package/esm2022/table/table-header-cell.directive.mjs +3 -3
  148. package/esm2022/table/table-header-row-def.directive.mjs +3 -3
  149. package/esm2022/table/table-header-row.component.mjs +3 -3
  150. package/esm2022/table/table-placeholder.directive.mjs +6 -6
  151. package/esm2022/table/table-row-def.directive.mjs +3 -3
  152. package/esm2022/table/table-row.component.mjs +3 -3
  153. package/esm2022/table/table-scroll.directive.mjs +6 -6
  154. package/esm2022/table/table.component.mjs +3 -3
  155. package/esm2022/table/table.module.mjs +4 -4
  156. package/esm2022/table-of-contents/table-of-contents.module.mjs +4 -4
  157. package/esm2022/table-of-contents/toc-container.directive.mjs +4 -4
  158. package/esm2022/table-of-contents/toc-content.directive.mjs +3 -3
  159. package/esm2022/table-of-contents/toc-link.directive.mjs +3 -3
  160. package/esm2022/tabs/tab-body.component.mjs +25 -30
  161. package/esm2022/tabs/tab-context.service.mjs +3 -3
  162. package/esm2022/tabs/tab-group.component.mjs +6 -6
  163. package/esm2022/tabs/tab-header-active-indicator.component.mjs +7 -12
  164. package/esm2022/tabs/tab-header.component.mjs +14 -13
  165. package/esm2022/tabs/tab.component.mjs +7 -12
  166. package/esm2022/tabs/tabs.module.mjs +4 -4
  167. package/esm2022/tag/check-tag/check-tag.component.mjs +3 -3
  168. package/esm2022/tag/tag.component.mjs +3 -3
  169. package/esm2022/tag/tag.module.mjs +4 -4
  170. package/esm2022/theme/theme.module.mjs +4 -4
  171. package/esm2022/theme/theme.pipe.mjs +12 -12
  172. package/esm2022/theme/theme.service.mjs +12 -8
  173. package/esm2022/time-picker/component.mjs +14 -12
  174. package/esm2022/time-picker/panel/panel.component.mjs +14 -14
  175. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  176. package/esm2022/time-picker/time-picker.type.mjs +5 -5
  177. package/esm2022/tooltip/base-tooltip.mjs +12 -8
  178. package/esm2022/tooltip/tooltip-active.directive.mjs +3 -3
  179. package/esm2022/tooltip/tooltip-copy.directive.mjs +3 -3
  180. package/esm2022/tooltip/tooltip-intl.mjs +3 -3
  181. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  182. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  183. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  184. package/esm2022/tooltip/utils/index.mjs +4 -4
  185. package/esm2022/tree-select/tree-node-placeholder.component.mjs +3 -3
  186. package/esm2022/tree-select/tree-select.component.mjs +24 -45
  187. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  188. package/esm2022/utils/coercion.mjs +5 -13
  189. package/esm2022/utils/fn.mjs +1 -4
  190. package/fesm2022/alauda-ui.mjs +2164 -2184
  191. package/fesm2022/alauda-ui.mjs.map +1 -1
  192. package/form/common-form.d.ts +0 -1
  193. package/form/helper-directives.d.ts +2 -3
  194. package/icon/icons.d.ts +1 -1
  195. package/input/input.component.d.ts +1 -1
  196. package/input/number-input/number-input.component.d.ts +4 -2
  197. package/package.json +1 -1
  198. package/paginator/paginator.component.d.ts +8 -11
  199. package/radio/radio-group/radio-group.component.d.ts +1 -2
  200. package/select/base-select.d.ts +6 -9
  201. package/select/multi-select/multi-select.component.d.ts +2 -3
  202. package/steps/steps.component.d.ts +1 -2
  203. package/steps/types.d.ts +0 -1
  204. package/table-of-contents/toc-container.directive.d.ts +1 -1
  205. package/tabs/tab-body.component.d.ts +2 -3
  206. package/tabs/tab-group.component.d.ts +2 -2
  207. package/tabs/tab.component.d.ts +2 -3
  208. package/theme/_mixin.scss +10 -0
  209. package/tree-select/tree-select.component.d.ts +9 -13
  210. package/utils/coercion.d.ts +4 -4
  211. package/utils/fn.d.ts +0 -1
@@ -75,15 +75,15 @@ export class TimePickerPanelComponent extends CommonFormControl {
75
75
  return true;
76
76
  }
77
77
  if (type === TimePickerControlType.Hour) {
78
- return (!this.disableHours ? [] : this.disableHours()).includes(value);
78
+ return (this.disableHours ? this.disableHours() : []).includes(value);
79
79
  }
80
80
  if (type === TimePickerControlType.Minute) {
81
- return (!this.disableMinutes ? [] : this.disableMinutes(currentValue?.hour())).includes(value);
81
+ return (this.disableMinutes ? this.disableMinutes(currentValue?.hour()) : []).includes(value);
82
82
  }
83
83
  if (type === TimePickerControlType.Second) {
84
- return (!this.disableSeconds
85
- ? []
86
- : this.disableSeconds(currentValue?.hour(), currentValue?.minute())).includes(value);
84
+ return (this.disableSeconds
85
+ ? this.disableSeconds(currentValue?.hour(), currentValue?.minute())
86
+ : []).includes(value);
87
87
  }
88
88
  }
89
89
  ngOnChanges({ hourStep, minuteStep, secondStep }) {
@@ -100,7 +100,7 @@ export class TimePickerPanelComponent extends CommonFormControl {
100
100
  }
101
101
  writeValue(value) {
102
102
  super.writeValue(value);
103
- this.syncScrollOffset(!this.firstScrolled ? 0 : 120, value);
103
+ this.syncScrollOffset(this.firstScrolled ? 120 : 0, value);
104
104
  }
105
105
  selectValue(value, type) {
106
106
  if (this.isDisabled(value, type)) {
@@ -156,10 +156,7 @@ export class TimePickerPanelComponent extends CommonFormControl {
156
156
  if (currentTop === targetOffset) {
157
157
  return;
158
158
  }
159
- if (!duration) {
160
- element.scrollTop = targetOffset;
161
- }
162
- else {
159
+ if (duration) {
163
160
  const difference = targetOffset - currentTop;
164
161
  const perTick = (difference / duration) * 10;
165
162
  requestAnimationFrame(() => {
@@ -170,6 +167,9 @@ export class TimePickerPanelComponent extends CommonFormControl {
170
167
  this.scrollByValue(element, value, divideBy, duration - 10);
171
168
  });
172
169
  }
170
+ else {
171
+ element.scrollTop = targetOffset;
172
+ }
173
173
  }
174
174
  matchValue(value, type, currDate) {
175
175
  return currDate?.get(type) === value;
@@ -188,8 +188,8 @@ export class TimePickerPanelComponent extends CommonFormControl {
188
188
  trackBy(_index, content) {
189
189
  return content;
190
190
  }
191
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TimePickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
192
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: TimePickerPanelComponent, selector: "aui-time-picker-panel", inputs: { format: "format", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", footerTemplate: "footerTemplate", disableHours: "disableHours", disableMinutes: "disableMinutes", disableSeconds: "disableSeconds" }, outputs: { confirm: "confirm" }, host: { listeners: { "mousedown": "onMousedown()" } }, providers: [
191
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
192
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TimePickerPanelComponent, selector: "aui-time-picker-panel", inputs: { format: "format", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", footerTemplate: "footerTemplate", disableHours: "disableHours", disableMinutes: "disableMinutes", disableSeconds: "disableSeconds" }, outputs: { confirm: "confirm" }, host: { listeners: { "mousedown": "onMousedown()" } }, providers: [
193
193
  {
194
194
  provide: NG_VALUE_ACCESSOR,
195
195
  useExisting: forwardRef(() => TimePickerPanelComponent),
@@ -197,7 +197,7 @@ export class TimePickerPanelComponent extends CommonFormControl {
197
197
  },
198
198
  ], viewQueries: [{ propertyName: "hourRef", first: true, predicate: ["hourRef"], descendants: true }, { propertyName: "minuteRef", first: true, predicate: ["minuteRef"], descendants: true }, { propertyName: "secondRef", first: true, predicate: ["secondRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"enabledColumns\"\n [class]=\"bem.block()\"\n [style.width.px]=\"totalWidth\"\n>\n <div [class]=\"bem.element('content')\">\n <div\n [class]=\"bem.element('column')\"\n #hourRef\n *ngIf=\"hourEnabled\"\n >\n <ul>\n <li\n *ngFor=\"let item of getControlTypeConfig(TimePickerControlType.Hour)\"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Hour),\n selected: matchValue(item, TimePickerControlType.Hour, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Hour)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #minuteRef\n *ngIf=\"minuteEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Minute);\n trackBy: trackBy\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Minute),\n selected: matchValue(item, TimePickerControlType.Minute, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Minute)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #secondRef\n *ngIf=\"secondEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Second)\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Second),\n selected: matchValue(item, TimePickerControlType.Second, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Second)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!footerTemplate; else customFooter\">\n <div [class]=\"bem.element('footer')\">\n <button\n aui-button=\"inline\"\n (click)=\"selectNow()\"\n [size]=\"ComponentSize.Small\"\n >\n {{ 'now' | auiI18n }}\n </button>\n <button\n aui-button=\"primary\"\n [size]=\"ComponentSize.Small\"\n (click)=\"$event.stopImmediatePropagation(); confirm.next()\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </div>\n </ng-container>\n <ng-template #customFooter>\n <ng-container [ngTemplateOutlet]=\"footerTemplate\"></ng-container>\n </ng-template>\n</div>\n", styles: [".aui-time-picker-panel{display:flex;flex-direction:column;background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m);overflow:hidden;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}:root .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-time-picker-panel ul,.aui-time-picker-panel li{border:none}.aui-time-picker-panel__content{display:flex;flex-direction:row;height:252px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:9px}.aui-time-picker-panel__column{flex:1;align-self:stretch;text-align:center;overflow:auto}.aui-time-picker-panel__column::-webkit-scrollbar{width:4px;height:4px}.aui-time-picker-panel__column::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-time-picker-panel__column::-webkit-scrollbar-corner{background-color:transparent}.aui-time-picker-panel__column ul{min-height:252px;list-style:none;padding:0;margin:0}.aui-time-picker-panel__column-strut{height:224px;width:1px;visibility:hidden}.aui-time-picker-panel__column+.aui-time-picker-panel__column{border-left:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__cell{flex:none;width:100%;height:28px;color:rgb(var(--aui-color-main-text));line-height:28px;cursor:pointer}.aui-time-picker-panel__cell:hover{background-color:rgb(var(--aui-color-p-6));color:rgb(var(--aui-color-primary))}.aui-time-picker-panel__cell.selected{background-color:rgb(var(--aui-color-p-7));color:rgb(var(--aui-color-primary));font-weight:var(--aui-font-weight-bold)}.aui-time-picker-panel__cell.disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
199
199
  }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TimePickerPanelComponent, decorators: [{
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerPanelComponent, decorators: [{
201
201
  type: Component,
202
202
  args: [{ selector: 'aui-time-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
203
203
  {
@@ -237,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
237
237
  type: ViewChild,
238
238
  args: ['secondRef', { static: false }]
239
239
  }] } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci9wYW5lbC9wYW5lbC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUU1RCxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQWdCOUMsTUFBTSxPQUFPLHdCQUNYLFNBQVEsaUJBQXdCO0lBb0ZEO0lBakYvQixJQUNJLE1BQU0sQ0FBQyxLQUFhO1FBQ3RCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixJQUFJLENBQUMsT0FB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcblxuaW1wb3J0IHsgdXBkYXRlRGF0ZUJ5VGltZU1vZGVsIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIvY2FsZW5kYXIvdXRpbCc7XG5pbXBvcnQgeyBDb21tb25Gb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2Zvcm0vY29tbW9uLWZvcm0nO1xuaW1wb3J0IHsgQ29tcG9uZW50U2l6ZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGJ1aWxkQmVtIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgQ09OVFJPTF9JVEVNX0hFSUdIVCxcbiAgSE9VUl9JVEVNUyxcbiAgTUlOVVRFX0lURU1TLFxuICBTRUNPTkRfSVRFTVMsXG59IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7IFRpbWVQaWNrZXJDb250cm9sVHlwZSB9IGZyb20gJy4uL3RpbWUtcGlja2VyLnR5cGUnO1xuXG5jb25zdCBUSU1FX1BJQ0tFUl9DT0xVTU5fV0lEVEggPSA4MDtcbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktdGltZS1waWNrZXItcGFuZWwnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXRpbWUtcGlja2VyLXBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhbmVsLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYW5lbC5zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRpbWVQaWNrZXJQYW5lbENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyUGFuZWxDb21wb25lbnRcbiAgZXh0ZW5kcyBDb21tb25Gb3JtQ29udHJvbDxEYXlqcz5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcbiAgQElucHV0KClcbiAgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2Zvcm1hdCA9IHZhbHVlO1xuICAgICAgY29uc3QgY2hhclNldCA9IG5ldyBTZXQodmFsdWUpO1xuICAgICAgdGhpcy5ob3VyRW5hYmxlZCA9IGNoYXJTZXQuaGFzKCdIJykgfHwgY2hhclNldC5oYXMoJ2gnKTtcbiAgICAgIHRoaXMubWludXRlRW5hYmxlZCA9IGNoYXJTZXQuaGFzKCdtJyk7XG4gICAgICB0aGlzLnNlY29uZEVuYWJsZWQgPSBjaGFyU2V0LmhhcygncycpO1xuICAgICAgdGhpcy5lbmFibGVkQ29sdW1ucyA9IFtcbiAgICAgICAgdGhpcy5ob3VyRW5hYmxlZCxcbiAgICAgICAgdGhpcy5taW51dGVFbmFibGVkLFxuICAgICAgICB0aGlzLnNlY29uZEVuYWJsZWQsXG4gICAgICBdLmZpbHRlcihCb29sZWFuKS5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XG4gIH1cblxuICBwcml2YXRlIF9mb3JtYXQ6IHN0cmluZztcblxuICBnZXQgdG90YWxXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVkQ29sdW1ucyAqIFRJTUVfUElDS0VSX0NPTFVNTl9XSURUSDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicpIG9uTW91c2Vkb3duKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGhvdXJTdGVwID0gMTtcblxuICBASW5wdXQoKVxuICBtaW51dGVTdGVwID0gMTtcblxuICBASW5wdXQoKVxuICBzZWNvbmRTdGVwID0gMTtcblxuICBASW5wdXQoKVxuICBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgQE91dHB1dCgpXG4gIGNvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZUhvdXJzOiAoKSA9PiBudW1iZXJbXTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlTWludXRlczogKGhvdXI/OiBudW1iZXIpID0+IG51bWJlcltdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVTZWNvbmRzOiAoaG91cj86IG51bWJlciwgbWludXRlPzogbnVtYmVyKSA9PiBudW1iZXJbXTtcblxuICBob3VyRW5hYmxlZDogYm9vbGVhbjtcbiAgbWludXRlRW5hYmxlZDogYm9vbGVhbjtcbiAgc2Vjb25kRW5hYmxlZDogYm9vbGVhbjtcblxuICBUaW1lUGlja2VyQ29udHJvbFR5cGUgPSBUaW1lUGlja2VyQ29udHJvbFR5cGU7XG4gIEhPVVJfSVRFTV9DT05GSUcgPSBIT1VSX0lURU1TO1xuICBNSU5VVEVfSVRFTV9DT05GSUcgPSBNSU5VVEVfSVRFTVM7XG4gIFNFQ09ORF9JVEVNX0NPTkZJRyA9IFNFQ09ORF9JVEVNUztcblxuICBDT05UUk9MX0lURU1fSEVJR0hUID0gQ09OVFJPTF9JVEVNX0hFSUdIVDtcbiAgQ29tcG9uZW50U2l6ZSA9IENvbXBvbmVudFNpemU7XG4gIGJlbSA9IGJlbTtcblxuICBAVmlld0NoaWxkKCdob3VyUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGhvdXJSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ21pbnV0ZVJlZicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtaW51dGVSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlY29uZFJlZicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBzZWNvbmRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGVuYWJsZWRDb2x1bW5zID0gMDtcblxuICAvLyDnlKjkuo7mjqfliLbliJ3mrKHmu5rliqjvvIzmmK/lkKblsZXnpLrmu5rliqjliqjnlLvmlYjmnpxcbiAgZmlyc3RTY3JvbGxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoY2RyKTtcbiAgICB0aGlzLm1vZGVsJC5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQodmFsdWU6IG51bWJlciwgdHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5tb2RlbDtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSBUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91cikge1xuICAgICAgcmV0dXJuICghdGhpcy5kaXNhYmxlSG91cnMgPyBbXSA6IHRoaXMuZGlzYWJsZUhvdXJzKCkpLmluY2x1ZGVzKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICF0aGlzLmRpc2FibGVNaW51dGVzID8gW10gOiB0aGlzLmRpc2FibGVNaW51dGVzKGN1cnJlbnRWYWx1ZT8uaG91cigpKVxuICAgICAgKS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSBUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhdGhpcy5kaXNhYmxlU2Vjb25kc1xuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IHRoaXMuZGlzYWJsZVNlY29uZHMoY3VycmVudFZhbHVlPy5ob3VyKCksIGN1cnJlbnRWYWx1ZT8ubWludXRlKCkpXG4gICAgICApLmluY2x1ZGVzKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyh7IGhvdXJTdGVwLCBtaW51dGVTdGVwLCBzZWNvbmRTdGVwIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoaG91clN0ZXA/LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMuSE9VUl9JVEVNX0NPTkZJRyA9IEhPVVJfSVRFTVMuZmlsdGVyKFxuICAgICAgICBpID0+IGkgJSBob3VyU3RlcC5jdXJyZW50VmFsdWUgPT09IDAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAobWludXRlU3RlcD8uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgdGhpcy5NSU5VVEVfSVRFTV9DT05GSUcgPSBNSU5VVEVfSVRFTVMuZmlsdGVyKFxuICAgICAgICBpID0+IGkgJSBtaW51dGVTdGVwLmN1cnJlbnRWYWx1ZSA9PT0gMCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChzZWNvbmRTdGVwPy5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLlNFQ09ORF9JVEVNX0NPTkZJRyA9IFNFQ09ORF9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIHNlY29uZFN0ZXAuY3VycmVudFZhbHVlID09PSAwLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBEYXlqcykge1xuICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMuc3luY1Njcm9sbE9mZnNldCghdGhpcy5maXJzdFNjcm9sbGVkID8gMCA6IDEyMCwgdmFsdWUpO1xuICB9XG5cbiAgc2VsZWN0VmFsdWUodmFsdWU6IG51bWJlciwgdHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCh2YWx1ZSwgdHlwZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5maXJzdFNjcm9sbGVkID0gdHJ1ZTtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnN5bmNWYWx1ZSh2YWx1ZSwgdHlwZSwgdGhpcy5tb2RlbCk7XG4gICAgdGhpcy5zeW5jU2Nyb2xsT2Zmc2V0KDEyMCwgcmVzdWx0KTtcbiAgfVxuXG4gIHN5bmNWYWx1ZSh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUsIGN1cnJlbnRWYWx1ZTogRGF5anMpIHtcbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gKFxuICAgICAgY3VycmVudFZhbHVlIHx8XG4gICAgICB1cGRhdGVEYXRlQnlUaW1lTW9kZWwoZGF5anMoKSwgeyBob3VyOiAwLCBtaW51dGU6IDAsIHNlY29uZDogMCB9KVxuICAgICkuc2V0KHR5cGUsIHZhbHVlKTtcbiAgICB0aGlzLmVtaXRNb2RlbChyZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzeW5jU2Nyb2xsT2Zmc2V0KGR1cmF0aW9uOiBudW1iZXIsIHZhbHVlOiBEYXlqcykge1xuICAgIGNvbnN0IGVtcHR5ID0gIXZhbHVlO1xuICAgIGNvbnN0IGNvbmZpZyA9IFtcbiAgICAgIHtcbiAgICAgICAgcmVmOiB0aGlzLmhvdXJSZWYsXG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuaG91ckVuYWJsZWQsXG4gICAgICAgIHN0ZXA6IHRoaXMuaG91clN0ZXAsXG4gICAgICAgIHR5cGU6ICdob3VyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJlZjogdGhpcy5taW51dGVSZWYsXG4gICAgICAgIGVuYWJsZWQ6IHRoaXMubWludXRlRW5hYmxlZCxcbiAgICAgICAgc3RlcDogdGhpcy5taW51dGVTdGVwLFxuICAgICAgICB0eXBlOiAnbWludXRlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJlZjogdGhpcy5zZWNvbmRSZWYsXG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuc2Vjb25kRW5hYmxlZCxcbiAgICAgICAgc3RlcDogdGhpcy5zZWNvbmRTdGVwLFxuICAgICAgICB0eXBlOiAnc2Vjb25kJyxcbiAgICAgIH0sXG4gICAgXSBhcyBjb25zdDtcblxuICAgIGNvbmZpZy5mb3JFYWNoKGNmID0+IHtcbiAgICAgIGlmIChjZi5lbmFibGVkICYmIGNmLnJlZikge1xuICAgICAgICB0aGlzLnNjcm9sbEJ5VmFsdWUoXG4gICAgICAgICAgY2YucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgZW1wdHkgPyAwIDogdmFsdWUuZ2V0KGNmLnR5cGUpLFxuICAgICAgICAgIGNmLnN0ZXAsXG4gICAgICAgICAgZW1wdHkgPyAwIDogZHVyYXRpb24sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFlbXB0eSkge1xuICAgICAgdGhpcy5maXJzdFNjcm9sbGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbEJ5VmFsdWUoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICBkaXZpZGVCeTogbnVtYmVyLFxuICAgIGR1cmF0aW9uOiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IHRhcmdldE9mZnNldCA9ICh2YWx1ZSAqIENPTlRST0xfSVRFTV9IRUlHSFQpIC8gZGl2aWRlQnk7XG4gICAgY29uc3QgY3VycmVudFRvcCA9IGVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIGlmIChjdXJyZW50VG9wID09PSB0YXJnZXRPZmZzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFkdXJhdGlvbikge1xuICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSB0YXJnZXRPZmZzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0YXJnZXRPZmZzZXQgLSBjdXJyZW50VG9wO1xuICAgICAgLy8g5q+P5LiqdGlja+a7muWKqOi3neemu1xuICAgICAgY29uc3QgcGVyVGljayA9IChkaWZmZXJlbmNlIC8gZHVyYXRpb24pICogMTA7XG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsVG9wID0gY3VycmVudFRvcCArIHBlclRpY2s7XG4gICAgICAgIGlmIChlbGVtZW50LnNjcm9sbFRvcCA9PT0gdGFyZ2V0T2Zmc2V0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Nyb2xsQnlWYWx1ZShlbGVtZW50LCB2YWx1ZSwgZGl2aWRlQnksIGR1cmF0aW9uIC0gMTApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbWF0Y2hWYWx1ZShcbiAgICB2YWx1ZTogbnVtYmVyLFxuICAgIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSxcbiAgICBjdXJyRGF0ZTogRGF5anMsXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjdXJyRGF0ZT8uZ2V0KHR5cGUpID09PSB2YWx1ZTtcbiAgfVxuXG4gIGdldENvbnRyb2xUeXBlQ29uZmlnKHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSk6IG51bWJlcltdIHtcbiAgICByZXR1cm4ge1xuICAgICAgW1RpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyXTogdGhpcy5IT1VSX0lURU1fQ09ORklHLFxuICAgICAgW1RpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGVdOiB0aGlzLk1JTlVURV9JVEVNX0NPTkZJRyxcbiAgICAgIFtUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kXTogdGhpcy5TRUNPTkRfSVRFTV9DT05GSUcsXG4gICAgfVt0eXBlXTtcbiAgfVxuXG4gIHNlbGVjdE5vdygpIHtcbiAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIHRoaXMuZW1pdE1vZGVsKGRheWpzKCkpO1xuICB9XG5cbiAgdHJhY2tCeShfaW5kZXg6IG51bWJlciwgY29udGVudDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJlbmFibGVkQ29sdW1uc1wiXG4gIFtjbGFzc109XCJiZW0uYmxvY2soKVwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJ0b3RhbFdpZHRoXCJcbj5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRlbnQnKVwiPlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uJylcIlxuICAgICAgI2hvdXJSZWZcbiAgICAgICpuZ0lmPVwiaG91ckVuYWJsZWRcIlxuICAgID5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0Q29udHJvbFR5cGVDb25maWcoVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIpXCJcbiAgICAgICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJDT05UUk9MX0lURU1fSEVJR0hUXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZChpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91ciksXG4gICAgICAgICAgICBzZWxlY3RlZDogbWF0Y2hWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91ciwgbW9kZWwpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpdGVtIHwgbnVtYmVyOiAnMi4wLTAnIH19XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbi1zdHJ1dCcpXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4nKVwiXG4gICAgICAjbWludXRlUmVmXG4gICAgICAqbmdJZj1cIm1pbnV0ZUVuYWJsZWRcIlxuICAgID5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgaXRlbSBvZiBnZXRDb250cm9sVHlwZUNvbmZpZyhUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlKTtcbiAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IG1hdGNoVmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSwgbW9kZWwpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbicpXCJcbiAgICAgICNzZWNvbmRSZWZcbiAgICAgICpuZ0lmPVwic2Vjb25kRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBpdGVtIG9mIGdldENvbnRyb2xUeXBlQ29uZmlnKFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJDT05UUk9MX0lURU1fSEVJR0hUXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZChpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBtYXRjaFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQsIG1vZGVsKVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpdGVtIHwgbnVtYmVyOiAnMi4wLTAnIH19XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbi1zdHJ1dCcpXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZm9vdGVyVGVtcGxhdGU7IGVsc2UgY3VzdG9tRm9vdGVyXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2Zvb3RlcicpXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b249XCJpbmxpbmVcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Tm93KClcIlxuICAgICAgICBbc2l6ZV09XCJDb21wb25lbnRTaXplLlNtYWxsXCJcbiAgICAgID5cbiAgICAgICAge3sgJ25vdycgfCBhdWlJMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICBbc2l6ZV09XCJDb21wb25lbnRTaXplLlNtYWxsXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsgY29uZmlybS5uZXh0KClcIlxuICAgICAgPlxuICAgICAgICB7eyAnY29uZmlybScgfCBhdWlJMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9tRm9vdGVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci9wYW5lbC9wYW5lbC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUU1RCxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQWdCOUMsTUFBTSxPQUFPLHdCQUNYLFNBQVEsaUJBQXdCO0lBb0ZEO0lBakYvQixJQUNJLE1BQU0sQ0FBQyxLQUFhO1FBQ3RCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixJQUFJLENBQUMsT0FB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IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyB1cGRhdGVEYXRlQnlUaW1lTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci9jYWxlbmRhci91dGlsJztcbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vZm9ybS9jb21tb24tZm9ybSc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBDT05UUk9MX0lURU1fSEVJR0hULFxuICBIT1VSX0lURU1TLFxuICBNSU5VVEVfSVRFTVMsXG4gIFNFQ09ORF9JVEVNUyxcbn0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgVGltZVBpY2tlckNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vdGltZS1waWNrZXIudHlwZSc7XG5cbmNvbnN0IFRJTUVfUElDS0VSX0NPTFVNTl9XSURUSCA9IDgwO1xuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS10aW1lLXBpY2tlci1wYW5lbCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGltZS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhbmVsLnN0eWxlLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZVBpY2tlclBhbmVsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVQaWNrZXJQYW5lbENvbXBvbmVudFxuICBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPERheWpzPlxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKVxuICBzZXQgZm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XG4gICAgICBjb25zdCBjaGFyU2V0ID0gbmV3IFNldCh2YWx1ZSk7XG4gICAgICB0aGlzLmhvdXJFbmFibGVkID0gY2hhclNldC5oYXMoJ0gnKSB8fCBjaGFyU2V0LmhhcygnaCcpO1xuICAgICAgdGhpcy5taW51dGVFbmFibGVkID0gY2hhclNldC5oYXMoJ20nKTtcbiAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCA9IGNoYXJTZXQuaGFzKCdzJyk7XG4gICAgICB0aGlzLmVuYWJsZWRDb2x1bW5zID0gW1xuICAgICAgICB0aGlzLmhvdXJFbmFibGVkLFxuICAgICAgICB0aGlzLm1pbnV0ZUVuYWJsZWQsXG4gICAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCxcbiAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBnZXQgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdDogc3RyaW5nO1xuXG4gIGdldCB0b3RhbFdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRDb2x1bW5zICogVElNRV9QSUNLRVJfQ09MVU1OX1dJRFRIO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJykgb25Nb3VzZWRvd24oKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQElucHV0KClcbiAgaG91clN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIG1pbnV0ZVN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIHNlY29uZFN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBAT3V0cHV0KClcbiAgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlSG91cnM6ICgpID0+IG51bWJlcltdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVNaW51dGVzOiAoaG91cj86IG51bWJlcikgPT4gbnVtYmVyW107XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZVNlY29uZHM6IChob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIpID0+IG51bWJlcltdO1xuXG4gIGhvdXJFbmFibGVkOiBib29sZWFuO1xuICBtaW51dGVFbmFibGVkOiBib29sZWFuO1xuICBzZWNvbmRFbmFibGVkOiBib29sZWFuO1xuXG4gIFRpbWVQaWNrZXJDb250cm9sVHlwZSA9IFRpbWVQaWNrZXJDb250cm9sVHlwZTtcbiAgSE9VUl9JVEVNX0NPTkZJRyA9IEhPVVJfSVRFTVM7XG4gIE1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUztcbiAgU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TO1xuXG4gIENPTlRST0xfSVRFTV9IRUlHSFQgPSBDT05UUk9MX0lURU1fSEVJR0hUO1xuICBDb21wb25lbnRTaXplID0gQ29tcG9uZW50U2l6ZTtcbiAgYmVtID0gYmVtO1xuXG4gIEBWaWV3Q2hpbGQoJ2hvdXJSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgaG91clJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnbWludXRlUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1pbnV0ZVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnc2Vjb25kUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHNlY29uZFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgZW5hYmxlZENvbHVtbnMgPSAwO1xuXG4gIC8vIOeUqOS6juaOp+WItuWIneasoea7muWKqO+8jOaYr+WQpuWxleekuua7muWKqOWKqOeUu+aViOaenFxuICBmaXJzdFNjcm9sbGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjZHIpO1xuICAgIHRoaXMubW9kZWwkLnN1YnNjcmliZShfID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgaXNEaXNhYmxlZCh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLm1vZGVsO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKSB7XG4gICAgICByZXR1cm4gKHRoaXMuZGlzYWJsZUhvdXJzID8gdGhpcy5kaXNhYmxlSG91cnMoKSA6IFtdKS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSBUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLmRpc2FibGVNaW51dGVzID8gdGhpcy5kaXNhYmxlTWludXRlcyhjdXJyZW50VmFsdWU/LmhvdXIoKSkgOiBbXVxuICAgICAgKS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSBUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLmRpc2FibGVTZWNvbmRzXG4gICAgICAgICAgPyB0aGlzLmRpc2FibGVTZWNvbmRzKGN1cnJlbnRWYWx1ZT8uaG91cigpLCBjdXJyZW50VmFsdWU/Lm1pbnV0ZSgpKVxuICAgICAgICAgIDogW11cbiAgICAgICkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgaG91clN0ZXAsIG1pbnV0ZVN0ZXAsIHNlY29uZFN0ZXAgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChob3VyU3RlcD8uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgdGhpcy5IT1VSX0lURU1fQ09ORklHID0gSE9VUl9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIGhvdXJTdGVwLmN1cnJlbnRWYWx1ZSA9PT0gMCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChtaW51dGVTdGVwPy5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLk1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIG1pbnV0ZVN0ZXAuY3VycmVudFZhbHVlID09PSAwLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHNlY29uZFN0ZXA/LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMuU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TLmZpbHRlcihcbiAgICAgICAgaSA9PiBpICUgc2Vjb25kU3RlcC5jdXJyZW50VmFsdWUgPT09IDAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IERheWpzKSB7XG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jU2Nyb2xsT2Zmc2V0KHRoaXMuZmlyc3RTY3JvbGxlZCA/IDEyMCA6IDAsIHZhbHVlKTtcbiAgfVxuXG4gIHNlbGVjdFZhbHVlKHZhbHVlOiBudW1iZXIsIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQodmFsdWUsIHR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlyc3RTY3JvbGxlZCA9IHRydWU7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5zeW5jVmFsdWUodmFsdWUsIHR5cGUsIHRoaXMubW9kZWwpO1xuICAgIHRoaXMuc3luY1Njcm9sbE9mZnNldCgxMjAsIHJlc3VsdCk7XG4gIH1cblxuICBzeW5jVmFsdWUodmFsdWU6IG51bWJlciwgdHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlLCBjdXJyZW50VmFsdWU6IERheWpzKSB7XG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IChcbiAgICAgIGN1cnJlbnRWYWx1ZSB8fFxuICAgICAgdXBkYXRlRGF0ZUJ5VGltZU1vZGVsKGRheWpzKCksIHsgaG91cjogMCwgbWludXRlOiAwLCBzZWNvbmQ6IDAgfSlcbiAgICApLnNldCh0eXBlLCB2YWx1ZSk7XG4gICAgdGhpcy5lbWl0TW9kZWwocmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3luY1Njcm9sbE9mZnNldChkdXJhdGlvbjogbnVtYmVyLCB2YWx1ZTogRGF5anMpIHtcbiAgICBjb25zdCBlbXB0eSA9ICF2YWx1ZTtcbiAgICBjb25zdCBjb25maWcgPSBbXG4gICAgICB7XG4gICAgICAgIHJlZjogdGhpcy5ob3VyUmVmLFxuICAgICAgICBlbmFibGVkOiB0aGlzLmhvdXJFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLmhvdXJTdGVwLFxuICAgICAgICB0eXBlOiAnaG91cicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByZWY6IHRoaXMubWludXRlUmVmLFxuICAgICAgICBlbmFibGVkOiB0aGlzLm1pbnV0ZUVuYWJsZWQsXG4gICAgICAgIHN0ZXA6IHRoaXMubWludXRlU3RlcCxcbiAgICAgICAgdHlwZTogJ21pbnV0ZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByZWY6IHRoaXMuc2Vjb25kUmVmLFxuICAgICAgICBlbmFibGVkOiB0aGlzLnNlY29uZEVuYWJsZWQsXG4gICAgICAgIHN0ZXA6IHRoaXMuc2Vjb25kU3RlcCxcbiAgICAgICAgdHlwZTogJ3NlY29uZCcsXG4gICAgICB9LFxuICAgIF0gYXMgY29uc3Q7XG5cbiAgICBjb25maWcuZm9yRWFjaChjZiA9PiB7XG4gICAgICBpZiAoY2YuZW5hYmxlZCAmJiBjZi5yZWYpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxCeVZhbHVlKFxuICAgICAgICAgIGNmLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIGVtcHR5ID8gMCA6IHZhbHVlLmdldChjZi50eXBlKSxcbiAgICAgICAgICBjZi5zdGVwLFxuICAgICAgICAgIGVtcHR5ID8gMCA6IGR1cmF0aW9uLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghZW1wdHkpIHtcbiAgICAgIHRoaXMuZmlyc3RTY3JvbGxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxCeVZhbHVlKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgZGl2aWRlQnk6IG51bWJlcixcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCB0YXJnZXRPZmZzZXQgPSAodmFsdWUgKiBDT05UUk9MX0lURU1fSEVJR0hUKSAvIGRpdmlkZUJ5O1xuICAgIGNvbnN0IGN1cnJlbnRUb3AgPSBlbGVtZW50LnNjcm9sbFRvcDtcbiAgICBpZiAoY3VycmVudFRvcCA9PT0gdGFyZ2V0T2Zmc2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHRhcmdldE9mZnNldCAtIGN1cnJlbnRUb3A7XG4gICAgICAvLyDmr4/kuKp0aWNr5rua5Yqo6Led56a7XG4gICAgICBjb25zdCBwZXJUaWNrID0gKGRpZmZlcmVuY2UgLyBkdXJhdGlvbikgKiAxMDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSBjdXJyZW50VG9wICsgcGVyVGljaztcbiAgICAgICAgaWYgKGVsZW1lbnQuc2Nyb2xsVG9wID09PSB0YXJnZXRPZmZzZXQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxCeVZhbHVlKGVsZW1lbnQsIHZhbHVlLCBkaXZpZGVCeSwgZHVyYXRpb24gLSAxMCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSB0YXJnZXRPZmZzZXQ7XG4gICAgfVxuICB9XG5cbiAgbWF0Y2hWYWx1ZShcbiAgICB2YWx1ZTogbnVtYmVyLFxuICAgIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSxcbiAgICBjdXJyRGF0ZTogRGF5anMsXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjdXJyRGF0ZT8uZ2V0KHR5cGUpID09PSB2YWx1ZTtcbiAgfVxuXG4gIGdldENvbnRyb2xUeXBlQ29uZmlnKHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSk6IG51bWJlcltdIHtcbiAgICByZXR1cm4ge1xuICAgICAgW1RpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyXTogdGhpcy5IT1VSX0lURU1fQ09ORklHLFxuICAgICAgW1RpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGVdOiB0aGlzLk1JTlVURV9JVEVNX0NPTkZJRyxcbiAgICAgIFtUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kXTogdGhpcy5TRUNPTkRfSVRFTV9DT05GSUcsXG4gICAgfVt0eXBlXTtcbiAgfVxuXG4gIHNlbGVjdE5vdygpIHtcbiAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIHRoaXMuZW1pdE1vZGVsKGRheWpzKCkpO1xuICB9XG5cbiAgdHJhY2tCeShfaW5kZXg6IG51bWJlciwgY29udGVudDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJlbmFibGVkQ29sdW1uc1wiXG4gIFtjbGFzc109XCJiZW0uYmxvY2soKVwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJ0b3RhbFdpZHRoXCJcbj5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRlbnQnKVwiPlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uJylcIlxuICAgICAgI2hvdXJSZWZcbiAgICAgICpuZ0lmPVwiaG91ckVuYWJsZWRcIlxuICAgID5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0Q29udHJvbFR5cGVDb25maWcoVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIpXCJcbiAgICAgICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJDT05UUk9MX0lURU1fSEVJR0hUXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZChpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91ciksXG4gICAgICAgICAgICBzZWxlY3RlZDogbWF0Y2hWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91ciwgbW9kZWwpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpdGVtIHwgbnVtYmVyOiAnMi4wLTAnIH19XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbi1zdHJ1dCcpXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4nKVwiXG4gICAgICAjbWludXRlUmVmXG4gICAgICAqbmdJZj1cIm1pbnV0ZUVuYWJsZWRcIlxuICAgID5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgaXRlbSBvZiBnZXRDb250cm9sVHlwZUNvbmZpZyhUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlKTtcbiAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IG1hdGNoVmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSwgbW9kZWwpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbicpXCJcbiAgICAgICNzZWNvbmRSZWZcbiAgICAgICpuZ0lmPVwic2Vjb25kRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBpdGVtIG9mIGdldENvbnRyb2xUeXBlQ29uZmlnKFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJDT05UUk9MX0lURU1fSEVJR0hUXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZChpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBtYXRjaFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQsIG1vZGVsKVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpdGVtIHwgbnVtYmVyOiAnMi4wLTAnIH19XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbi1zdHJ1dCcpXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZm9vdGVyVGVtcGxhdGU7IGVsc2UgY3VzdG9tRm9vdGVyXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2Zvb3RlcicpXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b249XCJpbmxpbmVcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Tm93KClcIlxuICAgICAgICBbc2l6ZV09XCJDb21wb25lbnRTaXplLlNtYWxsXCJcbiAgICAgID5cbiAgICAgICAge3sgJ25vdycgfCBhdWlJMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICBbc2l6ZV09XCJDb21wb25lbnRTaXplLlNtYWxsXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsgY29uZmlybS5uZXh0KClcIlxuICAgICAgPlxuICAgICAgICB7eyAnY29uZmlybScgfCBhdWlJMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9tRm9vdGVyPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -12,8 +12,8 @@ import { TimePickerComponent } from './component';
12
12
  import { TimePickerPanelComponent } from './panel/panel.component';
13
13
  import * as i0 from "@angular/core";
14
14
  export class TimePickerModule {
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: TimePickerModule, declarations: [TimePickerComponent, TimePickerPanelComponent], imports: [FormsModule,
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, declarations: [TimePickerComponent, TimePickerPanelComponent], imports: [FormsModule,
17
17
  ReactiveFormsModule,
18
18
  PortalModule,
19
19
  OverlayModule,
@@ -23,7 +23,7 @@ export class TimePickerModule {
23
23
  IconModule,
24
24
  ButtonModule,
25
25
  I18nModule], exports: [TimePickerComponent, TimePickerPanelComponent] });
26
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TimePickerModule, imports: [FormsModule,
26
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, imports: [FormsModule,
27
27
  ReactiveFormsModule,
28
28
  PortalModule,
29
29
  OverlayModule,
@@ -34,7 +34,7 @@ export class TimePickerModule {
34
34
  ButtonModule,
35
35
  I18nModule] });
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TimePickerModule, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, decorators: [{
38
38
  type: NgModule,
39
39
  args: [{
40
40
  imports: [
@@ -1,4 +1,4 @@
1
- import { _isNumberValue } from '../utils';
1
+ import { isNumberValue } from '../utils';
2
2
  export var TimePickerControlType;
3
3
  (function (TimePickerControlType) {
4
4
  TimePickerControlType["Hour"] = "hour";
@@ -6,8 +6,8 @@ export var TimePickerControlType;
6
6
  TimePickerControlType["Second"] = "second";
7
7
  })(TimePickerControlType || (TimePickerControlType = {}));
8
8
  export function isTimePickerModel(item) {
9
- return (_isNumberValue(item?.second) ||
10
- _isNumberValue(item?.minute) ||
11
- _isNumberValue(item?.hour));
9
+ return (isNumberValue(item?.second) ||
10
+ isNumberValue(item?.minute) ||
11
+ isNumberValue(item?.hour));
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUMsTUFBTSxDQUFOLElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsMENBQWlCLENBQUE7SUFDakIsMENBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFJaEM7QUFVRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBUztJQUN6QyxPQUFPLENBQ0wsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDNUIsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDNUIsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDM0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdUeXBlIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyBfaXNOdW1iZXJWYWx1ZSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGVudW0gVGltZVBpY2tlckNvbnRyb2xUeXBlIHtcbiAgSG91ciA9ICdob3VyJyxcbiAgTWludXRlID0gJ21pbnV0ZScsXG4gIFNlY29uZCA9ICdzZWNvbmQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVQaWNrZXJNb2RlbCB7XG4gIGhvdXI/OiBudW1iZXI7XG4gIG1pbnV0ZT86IG51bWJlcjtcbiAgc2Vjb25kPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBUaW1lUGlja2VyRGF0YUxpa2UgPSBDb25maWdUeXBlIHwgVGltZVBpY2tlck1vZGVsO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNUaW1lUGlja2VyTW9kZWwoaXRlbTogYW55KTogaXRlbSBpcyBUaW1lUGlja2VyTW9kZWwge1xuICByZXR1cm4gKFxuICAgIF9pc051bWJlclZhbHVlKGl0ZW0/LnNlY29uZCkgfHxcbiAgICBfaXNOdW1iZXJWYWx1ZShpdGVtPy5taW51dGUpIHx8XG4gICAgX2lzTnVtYmVyVmFsdWUoaXRlbT8uaG91cilcbiAgKTtcbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsTUFBTSxDQUFOLElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsMENBQWlCLENBQUE7SUFDakIsMENBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFJaEM7QUFVRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBUztJQUN6QyxPQUFPLENBQ0wsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDM0IsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDM0IsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdUeXBlIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyBpc051bWJlclZhbHVlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZW51bSBUaW1lUGlja2VyQ29udHJvbFR5cGUge1xuICBIb3VyID0gJ2hvdXInLFxuICBNaW51dGUgPSAnbWludXRlJyxcbiAgU2Vjb25kID0gJ3NlY29uZCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZVBpY2tlck1vZGVsIHtcbiAgaG91cj86IG51bWJlcjtcbiAgbWludXRlPzogbnVtYmVyO1xuICBzZWNvbmQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFRpbWVQaWNrZXJEYXRhTGlrZSA9IENvbmZpZ1R5cGUgfCBUaW1lUGlja2VyTW9kZWw7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RpbWVQaWNrZXJNb2RlbChpdGVtOiBhbnkpOiBpdGVtIGlzIFRpbWVQaWNrZXJNb2RlbCB7XG4gIHJldHVybiAoXG4gICAgaXNOdW1iZXJWYWx1ZShpdGVtPy5zZWNvbmQpIHx8XG4gICAgaXNOdW1iZXJWYWx1ZShpdGVtPy5taW51dGUpIHx8XG4gICAgaXNOdW1iZXJWYWx1ZShpdGVtPy5ob3VyKVxuICApO1xufVxuIl19
@@ -241,17 +241,21 @@ export class BaseTooltip {
241
241
  updateListeners() {
242
242
  this.clearListeners();
243
243
  switch (this.trigger) {
244
- case TooltipTrigger.Click:
244
+ case TooltipTrigger.Click: {
245
245
  this.listeners.push(this.renderer.listen(this.elRef.nativeElement, 'click', this.onClick.bind(this)));
246
246
  break;
247
- case TooltipTrigger.Hover:
247
+ }
248
+ case TooltipTrigger.Hover: {
248
249
  this.listeners.push(this.renderer.listen(this.elRef.nativeElement, 'mouseenter', this.onMouseEnter.bind(this)), this.renderer.listen(this.elRef.nativeElement, 'mouseleave', this.onMouseLeave.bind(this)));
249
250
  break;
250
- case TooltipTrigger.Focus:
251
+ }
252
+ case TooltipTrigger.Focus: {
251
253
  this.listeners.push(this.renderer.listen(this.elRef.nativeElement, 'focus', this.onFocus.bind(this)), this.renderer.listen(this.elRef.nativeElement, 'blur', this.onBlur.bind(this)));
252
254
  break;
253
- case TooltipTrigger.Manual:
255
+ }
256
+ case TooltipTrigger.Manual: {
254
257
  break;
258
+ }
255
259
  }
256
260
  }
257
261
  clearListeners() {
@@ -320,10 +324,10 @@ export class BaseTooltip {
320
324
  onBlur() {
321
325
  this.hide();
322
326
  }
323
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BaseTooltip, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
324
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: BaseTooltip, ngImport: i0 });
327
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: BaseTooltip, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
328
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: BaseTooltip, ngImport: i0 });
325
329
  }
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: BaseTooltip, decorators: [{
330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: BaseTooltip, decorators: [{
327
331
  type: Directive
328
332
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; } });
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvYmFzZS10b29sdGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxHQU1iLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFjaEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBY2hDLE1BQU0sT0FBTyxXQUFXO0lBNkdWO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQS9HWixJQUFJLE9BQU8sQ0FBQyxLQUFnQztRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFR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Q0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7dUdBN1pVLFdBQVc7MkZBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3RlZFBvc2l0aW9uLFxuICBPdmVybGF5LFxuICBPdmVybGF5Q29uZmlnLFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVwbGF5U3ViamVjdCxcbiAgbWVyZ2UsXG4gIGRlYm91bmNlVGltZSxcbiAgdGFrZVVudGlsLFxuICBmaXJzdCxcbiAgZmlsdGVyLFxuICBTdWJqZWN0LFxuICBkZWxheSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwVHJpZ2dlciwgVG9vbHRpcFR5cGUgfSBmcm9tICcuL3Rvb2x0aXAudHlwZXMnO1xuaW1wb3J0IHsgZ2V0T3JpZ2luUG9zaXRpb24sIGdldE92ZXJsYXlQb3NpdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2x0aXBJbnRlcmZhY2Uge1xuICBjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBjb250ZXh0OiBhbnk7XG4gIGNsYXNzOiBzdHJpbmc7XG4gIHR5cGU6IFRvb2x0aXBUeXBlO1xuICBwb3NpdGlvbjogc3RyaW5nO1xuICB0cmlnZ2VyOiBUb29sdGlwVHJpZ2dlcjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIGhpZGVPbkNsaWNrOiBib29sZWFuO1xuICB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBjb25zdCBESVNQTEFZX0RFTEFZID0gNTA7XG5leHBvcnQgY29uc3QgSElEREVOX0RFTEFZID0gMTUwO1xuXG4vLyBAdHMtaWdub3JlXG5pbnRlcmZhY2UgSGFja092ZXJsYXlSZWYgZXh0ZW5kcyBPdmVybGF5UmVmIHtcbiAgX3Bvc2l0aW9uU3RyYXRlZ3k6IHtcbiAgICBfaGFzRXhhY3RQb3NpdGlvbjogKCkgPT4gYm9vbGVhbjtcbiAgICBfcGFuZTogSFRNTEVsZW1lbnQ7XG4gICAgX2xhc3RQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gfCBudWxsO1xuICAgIF9ib3VuZGluZ0JveDogSFRNTEVsZW1lbnQ7XG4gICAgX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yOiBzdHJpbmc7XG4gIH07XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VUb29sdGlwPFQgPSBhbnk+XG4gIGltcGxlbWVudHMgVG9vbHRpcEludGVyZmFjZSwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHNldCBjb250ZW50KHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fY29udGVudCA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250ZW50JCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgfVxuXG4gIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgdGhpcy5fY29udGV4dCA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250ZXh0JCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuXG4gIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbnB1dENsYXNzJCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXQgdHlwZSh2YWx1ZTogVG9vbHRpcFR5cGUpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5wdXRUeXBlJCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXQgcG9zaXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMuX3Bvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Bvc2l0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dFBvc2l0aW9uJCQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgfVxuXG4gIGdldCBwb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cblxuICBzZXQgdHJpZ2dlcih2YWx1ZSkge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMuX3RyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5uZ1pvbmUucnVuKHRoaXMudXBkYXRlTGlzdGVuZXJzLCB0aGlzKTtcbiAgfVxuXG4gIGdldCB0cmlnZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIGhpZGVPbkNsaWNrID0gZmFsc2U7XG4gIGRpc2FibGVBbmltYXRpb24gPSB0cnVlO1xuXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJvdGVjdGVkIGNvbXBvbmVudENsYXNzOiBDb21wb25lbnRUeXBlPGFueT4gPSBUb29sdGlwQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgY29tcG9uZW50SW5zOiBUb29sdGlwQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgaG9zdEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHRvb2x0aXBIb3ZlcmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBsaXN0ZW5lcnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG4gIHByb3RlY3RlZCB1bmxpc3RlbkJvZHk6ICgpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGlucHV0Q29udGVudCQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pj4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dFR5cGUkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRvb2x0aXBUeXBlPigxKTtcbiAgcHJvdGVjdGVkIGlucHV0UG9zaXRpb24kJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dENsYXNzJCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICBwcm90ZWN0ZWQgaW5wdXRDb250ZXh0JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuXG4gIHByb3RlY3RlZCB0b29sdGlwQ2hhbmdlZCQgPSBtZXJnZShcbiAgICB0aGlzLmlucHV0Q29udGVudCQkLFxuICAgIHRoaXMuaW5wdXRUeXBlJCQsXG4gICAgdGhpcy5pbnB1dFBvc2l0aW9uJCQsXG4gICAgdGhpcy5pbnB1dENsYXNzJCQsXG4gICAgdGhpcy5pbnB1dENvbnRleHQkJCxcbiAgKTtcblxuICBwcm90ZWN0ZWQgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByb3RlY3RlZCBfcG9zaXRpb24gPSAndG9wJztcbiAgcHJvdGVjdGVkIF90cmlnZ2VyID0gVG9vbHRpcFRyaWdnZXIuSG92ZXI7XG4gIHByb3RlY3RlZCBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9jb250ZXh0OiBUO1xuICBwcm90ZWN0ZWQgX2NvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGdldCBpc0NyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVybGF5UmVmO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgdGhpcy50b29sdGlwQ2hhbmdlZCQucGlwZShkZWJvdW5jZVRpbWUoMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVUcmFuc2Zvcm1PcmlnaW4oKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXlSZWYgYXMgSGFja092ZXJsYXlSZWY7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IG92ZXJsYXlSZWYuX3Bvc2l0aW9uU3RyYXRlZ3k7XG4gICAgY29uc3QgaGFzRXhhY3RQb3NpdGlvbiA9IHBvc2l0aW9uU3RyYXRlZ3kuX2hhc0V4YWN0UG9zaXRpb24oKTsgLy8g5piv5LiN5piv5bqU55So5LqG57K+56Gu5a6a5L2NXG4gICAgaWYgKCFoYXNFeGFjdFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIOWmguaenOaYr+eyvuehruWumuS9je+8jOS5n+WwseaYr+mihOiuvuS9jee9ruepuumXtOS4jei2s+S7peaJv+i9veW8ueWHuuWFg+e0oO+8jOiiq+mHjeaWsOaMh+WumuaWsOeahOW8ueWHuuS9jee9rlxuICAgIGNvbnN0IHBhbmVSZWN0ID0gcG9zaXRpb25TdHJhdGVneS5fcGFuZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgLy8g5by55Ye6cGFuZeWFg+e0oFJlY3RcbiAgICBjb25zdCB0cmlnZ2VyRWxSZWFjdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgLy8g6Kem5Y+R54K5UmVjdFxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBwb3NpdGlvblN0cmF0ZWd5Ll9sYXN0UG9zaXRpb247IC8vIOW9k+WJjeetlueVpeS9jee9ru+8iOiwg+aVtOWQjueahOacgOS9s+eahO+8iVxuICAgIGxldCB4T3JpZ2luOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG4gICAgY29uc3QgeU9yaWdpbjogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInID0gcG9zaXRpb24ub3ZlcmxheVk7XG4gICAgaWYgKHBvc2l0aW9uLm92ZXJsYXlYID09PSAnY2VudGVyJykge1xuICAgICAgeE9yaWdpbiA9ICdjZW50ZXInO1xuICAgIH0gZWxzZSB7XG4gICAgICB4T3JpZ2luID0gcG9zaXRpb24ub3ZlcmxheVggPT09ICdzdGFydCcgPyAnbGVmdCcgOiAncmlnaHQnO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbnM6IHN0cmluZ1tdID0gW3hPcmlnaW4sIHlPcmlnaW5dO1xuICAgIGlmIChcbiAgICAgIHhPcmlnaW4gPT09ICdjZW50ZXInIHx8XG4gICAgICAoeE9yaWdpbiA9PT0gJ2xlZnQnICYmXG4gICAgICAgICFbdHJpZ2dlckVsUmVhY3QucmlnaHQsIHRyaWdnZXJFbFJlYWN0LmxlZnRdLmluY2x1ZGVzKHBhbmVSZWN0LmxlZnQpKSB8fFxuICAgICAgKHhPcmlnaW4gPT09ICdyaWdodCcgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5yaWdodCwgdHJpZ2dlckVsUmVhY3QubGVmdF0uaW5jbHVkZXMocGFuZVJlY3QucmlnaHQpKVxuICAgICkge1xuICAgICAgY29uc3Qgb3JpZ2luTGVmdCA9XG4gICAgICAgIHRyaWdnZXJFbFJlYWN0LmxlZnQgLSBwYW5lUmVjdC5sZWZ0ICsgdHJpZ2dlckVsUmVhY3Qud2lkdGggLyAyO1xuICAgICAgb3JpZ2luc1swXSA9IE1hdGgubWluKG9yaWdpbkxlZnQsIHBhbmVSZWN0LndpZHRoKSArICdweCc7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHlPcmlnaW4gPT09ICdjZW50ZXInIHx8XG4gICAgICAoeU9yaWdpbiA9PT0gJ3RvcCcgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5ib3R0b20sIHRyaWdnZXJFbFJlYWN0LnRvcF0uaW5jbHVkZXMocGFuZVJlY3QudG9wKSkgfHwgLy8g5L2N572u5rKh5pyJ6KKr5a6M5YWo6KKr6aKg5YCS55qEXG4gICAgICAoeU9yaWdpbiA9PT0gJ2JvdHRvbScgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5ib3R0b20sIHRyaWdnZXJFbFJlYWN0LnRvcF0uaW5jbHVkZXMocGFuZVJlY3QuYm90dG9tKSkgLy8g5L2N572u5rKh5pyJ6KKr5a6M5YWo6KKr6aKg5YCS55qEXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmlnaW5Ub3AgPVxuICAgICAgICB0cmlnZ2VyRWxSZWFjdC50b3AgLSBwYW5lUmVjdC50b3AgKyB0cmlnZ2VyRWxSZWFjdC5oZWlnaHQgLyAyO1xuICAgICAgb3JpZ2luc1sxXSA9IE1hdGgubWluKG9yaWdpblRvcCwgcGFuZVJlY3QuaGVpZ2h0KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGFuaUVscyA9IHBvc2l0aW9uU3RyYXRlZ3kuX2JvdW5kaW5nQm94LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxuICAgICAgcG9zaXRpb25TdHJhdGVneS5fdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IsXG4gICAgKTtcbiAgICBBcnJheS5mcm9tKGFuaUVscykuZm9yRWFjaChlbCA9PiB7XG4gICAgICBlbC5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBvcmlnaW5zLmpvaW4oJyAnKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9jcmVhdGVUb29sdGlwKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgIHRoaXMuY29tcG9uZW50Q2xhc3MsXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgKTtcbiAgICB0aGlzLmNvbXBvbmVudElucyA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKS5pbnN0YW5jZTtcbiAgICB0aGlzLmNvbXBvbmVudElucy5zZXR1cElucHV0cyh7XG4gICAgICBpbnB1dENsYXNzJDogdGhpcy5pbnB1dENsYXNzJCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBpbnB1dENvbnRlbnQkOiB0aGlzLmlucHV0Q29udGVudCQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRDb250ZXh0JDogdGhpcy5pbnB1dENvbnRleHQkJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0UG9zaXRpb24kOiB0aGlzLmlucHV0UG9zaXRpb24kJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0VHlwZSQ6IHRoaXMuaW5wdXRUeXBlJCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uOiB0aGlzLmRpc2FibGVBbmltYXRpb24sXG4gICAgfSk7XG4gICAgdGhpcy5jb21wb25lbnRJbnMuaGlkZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLmNvbXBvbmVudElucy5iZWZvcmVIaWRlJCxcbiAgICAgICAgdGhpcy5jb21wb25lbnRJbnMuYmVmb3JlU2hvdyQucGlwZShkZWxheSgwKSksXG4gICAgICApXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUcmFuc2Zvcm1PcmlnaW4uYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuSG92ZXIpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zLmhvdmVyJFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnRJbnMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKGhvdmVyZWQgPT4ge1xuICAgICAgICAgIHRoaXMub25Ub29sdGlwSG92ZXJlZChob3ZlcmVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuSG92ZXIgfHxcbiAgICAgIHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuQ2xpY2tcbiAgICApIHtcbiAgICAgIHRoaXMudW5saXN0ZW5Cb2R5ID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICdib2R5JyxcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgdGhpcy5vbkJvZHlDbGljay5iaW5kKHRoaXMpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudElucz8uc2hvdygpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBfZGlzcG9zZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5jb21wb25lbnRJbnM/LmFuaW1hdGluZyQkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGFuaW1hdGluZyA9PiAhYW5pbWF0aW5nKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50SW5zID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHRoaXMudW5saXN0ZW5Cb2R5KSB7XG4gICAgICAgICAgICB0aGlzLnVubGlzdGVuQm9keSgpO1xuICAgICAgICAgICAgdGhpcy51bmxpc3RlbkJvZHkgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgLy8g5aaC5p6c56aB55So5LqG5Yqo55S75bCx56uL5Y2z6ZSA5q+B77yM6ICM5LiN5piv562J5Yqo55S75a6M5oiQ5LqL5Lu25ZCO5omN6ZSA5q+BXG4gICAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElucz8uaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3Zlcikge1xuICAgICAgdGhpcy51cGRhdGVMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gICAgc3dpdGNoICh0aGlzLnRyaWdnZXIpIHtcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuQ2xpY2s6XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnY2xpY2snLFxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuSG92ZXI6XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnbW91c2VlbnRlcicsXG4gICAgICAgICAgICB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpIGFzICgpID0+IHZvaWQsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuRm9jdXM6XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnZm9jdXMnLFxuICAgICAgICAgICAgdGhpcy5vbkZvY3VzLmJpbmQodGhpcyksXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdibHVyJyxcbiAgICAgICAgICAgIHRoaXMub25CbHVyLmJpbmQodGhpcyksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRvb2x0aXBUcmlnZ2VyLk1hbnVhbDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyTGlzdGVuZXJzKCkge1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2godW5MaXN0ZW4gPT4ge1xuICAgICAgdW5MaXN0ZW4oKTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU92ZXJsYXkoKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3JpZ2luUG9zaXRpb24gPSBnZXRPcmlnaW5Qb3NpdGlvbih0aGlzLnBvc2l0aW9uKTtcbiAgICBjb25zdCBvdmVybGF5UG9zaXRpb24gPSBnZXRPdmVybGF5UG9zaXRpb24odGhpcy5wb3NpdGlvbik7XG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbFJlZilcbiAgICAgIC53aXRoR3Jvd0FmdGVyT3Blbih0cnVlKVxuICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbignLmF1aS10b29sdGlwJylcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgeyAuLi5vcmlnaW5Qb3NpdGlvbi5tYWluLCAuLi5vdmVybGF5UG9zaXRpb24ubWFpbiB9LFxuICAgICAgICB7IC4uLm9yaWdpblBvc2l0aW9uLmZhbGxiYWNrLCAuLi5vdmVybGF5UG9zaXRpb24uZmFsbGJhY2sgfSxcbiAgICAgIF0pO1xuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG5cbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvbk1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5ob3N0SG92ZXJlZCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgYXdhaXQgc2xlZXAoRElTUExBWV9ERUxBWSk7XG4gICAgICBpZiAodGhpcy5ob3N0SG92ZXJlZCkge1xuICAgICAgICB0aGlzLl9jcmVhdGVUb29sdGlwKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhvc3RIb3ZlcmVkID0gZmFsc2U7XG4gICAgYXdhaXQgc2xlZXAoSElEREVOX0RFTEFZKTtcbiAgICBpZiAoIXRoaXMudG9vbHRpcEhvdmVyZWQgJiYgIXRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvblRvb2x0aXBIb3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvb2x0aXBIb3ZlcmVkID0gaG92ZXJlZDtcbiAgICBpZiAoIWhvdmVyZWQpIHtcbiAgICAgIGF3YWl0IHNsZWVwKEhJRERFTl9ERUxBWSk7XG4gICAgICBpZiAoIXRoaXMudG9vbHRpcEhvdmVyZWQgJiYgIXRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xpY2soKSB7XG4gICAgdGhpcy50b2dnbGVUb29sdGlwKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Cb2R5Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICh0aGlzLmhpZGVPbkNsaWNrIHx8XG4gICAgICAgICF0aGlzLmNvbXBvbmVudElucy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSlcbiAgICApIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZvY3VzKCkge1xuICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJsdXIoKSB7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cbn1cbiJdfQ==
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvYmFzZS10b29sdGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxHQU1iLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFjaEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBY2hDLE1BQU0sT0FBTyxXQUFXO0lBNkdWO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQS9HWixJQUFJLE9BQU8sQ0FBQyxLQUFnQztRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFR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QUNmLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsTUFBTTtRQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7dUdBamFVLFdBQVc7MkZBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3RlZFBvc2l0aW9uLFxuICBPdmVybGF5LFxuICBPdmVybGF5Q29uZmlnLFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVwbGF5U3ViamVjdCxcbiAgbWVyZ2UsXG4gIGRlYm91bmNlVGltZSxcbiAgdGFrZVVudGlsLFxuICBmaXJzdCxcbiAgZmlsdGVyLFxuICBTdWJqZWN0LFxuICBkZWxheSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwVHJpZ2dlciwgVG9vbHRpcFR5cGUgfSBmcm9tICcuL3Rvb2x0aXAudHlwZXMnO1xuaW1wb3J0IHsgZ2V0T3JpZ2luUG9zaXRpb24sIGdldE92ZXJsYXlQb3NpdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2x0aXBJbnRlcmZhY2Uge1xuICBjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBjb250ZXh0OiBhbnk7XG4gIGNsYXNzOiBzdHJpbmc7XG4gIHR5cGU6IFRvb2x0aXBUeXBlO1xuICBwb3NpdGlvbjogc3RyaW5nO1xuICB0cmlnZ2VyOiBUb29sdGlwVHJpZ2dlcjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIGhpZGVPbkNsaWNrOiBib29sZWFuO1xuICB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBjb25zdCBESVNQTEFZX0RFTEFZID0gNTA7XG5leHBvcnQgY29uc3QgSElEREVOX0RFTEFZID0gMTUwO1xuXG4vLyBAdHMtaWdub3JlXG5pbnRlcmZhY2UgSGFja092ZXJsYXlSZWYgZXh0ZW5kcyBPdmVybGF5UmVmIHtcbiAgX3Bvc2l0aW9uU3RyYXRlZ3k6IHtcbiAgICBfaGFzRXhhY3RQb3NpdGlvbjogKCkgPT4gYm9vbGVhbjtcbiAgICBfcGFuZTogSFRNTEVsZW1lbnQ7XG4gICAgX2xhc3RQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gfCBudWxsO1xuICAgIF9ib3VuZGluZ0JveDogSFRNTEVsZW1lbnQ7XG4gICAgX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yOiBzdHJpbmc7XG4gIH07XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VUb29sdGlwPFQgPSBhbnk+XG4gIGltcGxlbWVudHMgVG9vbHRpcEludGVyZmFjZSwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHNldCBjb250ZW50KHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fY29udGVudCA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250ZW50JCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgfVxuXG4gIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgdGhpcy5fY29udGV4dCA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250ZXh0JCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuXG4gIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbnB1dENsYXNzJCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXQgdHlwZSh2YWx1ZTogVG9vbHRpcFR5cGUpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5wdXRUeXBlJCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXQgcG9zaXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMuX3Bvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Bvc2l0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dFBvc2l0aW9uJCQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgfVxuXG4gIGdldCBwb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cblxuICBzZXQgdHJpZ2dlcih2YWx1ZSkge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMuX3RyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5uZ1pvbmUucnVuKHRoaXMudXBkYXRlTGlzdGVuZXJzLCB0aGlzKTtcbiAgfVxuXG4gIGdldCB0cmlnZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIGhpZGVPbkNsaWNrID0gZmFsc2U7XG4gIGRpc2FibGVBbmltYXRpb24gPSB0cnVlO1xuXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJvdGVjdGVkIGNvbXBvbmVudENsYXNzOiBDb21wb25lbnRUeXBlPGFueT4gPSBUb29sdGlwQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgY29tcG9uZW50SW5zOiBUb29sdGlwQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgaG9zdEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHRvb2x0aXBIb3ZlcmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBsaXN0ZW5lcnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG4gIHByb3RlY3RlZCB1bmxpc3RlbkJvZHk6ICgpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGlucHV0Q29udGVudCQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pj4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dFR5cGUkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRvb2x0aXBUeXBlPigxKTtcbiAgcHJvdGVjdGVkIGlucHV0UG9zaXRpb24kJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dENsYXNzJCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICBwcm90ZWN0ZWQgaW5wdXRDb250ZXh0JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuXG4gIHByb3RlY3RlZCB0b29sdGlwQ2hhbmdlZCQgPSBtZXJnZShcbiAgICB0aGlzLmlucHV0Q29udGVudCQkLFxuICAgIHRoaXMuaW5wdXRUeXBlJCQsXG4gICAgdGhpcy5pbnB1dFBvc2l0aW9uJCQsXG4gICAgdGhpcy5pbnB1dENsYXNzJCQsXG4gICAgdGhpcy5pbnB1dENvbnRleHQkJCxcbiAgKTtcblxuICBwcm90ZWN0ZWQgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByb3RlY3RlZCBfcG9zaXRpb24gPSAndG9wJztcbiAgcHJvdGVjdGVkIF90cmlnZ2VyID0gVG9vbHRpcFRyaWdnZXIuSG92ZXI7XG4gIHByb3RlY3RlZCBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9jb250ZXh0OiBUO1xuICBwcm90ZWN0ZWQgX2NvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGdldCBpc0NyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVybGF5UmVmO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgdGhpcy50b29sdGlwQ2hhbmdlZCQucGlwZShkZWJvdW5jZVRpbWUoMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVUcmFuc2Zvcm1PcmlnaW4oKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXlSZWYgYXMgSGFja092ZXJsYXlSZWY7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IG92ZXJsYXlSZWYuX3Bvc2l0aW9uU3RyYXRlZ3k7XG4gICAgY29uc3QgaGFzRXhhY3RQb3NpdGlvbiA9IHBvc2l0aW9uU3RyYXRlZ3kuX2hhc0V4YWN0UG9zaXRpb24oKTsgLy8g5piv5LiN5piv5bqU55So5LqG57K+56Gu5a6a5L2NXG4gICAgaWYgKCFoYXNFeGFjdFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIOWmguaenOaYr+eyvuehruWumuS9je+8jOS5n+WwseaYr+mihOiuvuS9jee9ruepuumXtOS4jei2s+S7peaJv+i9veW8ueWHuuWFg+e0oO+8jOiiq+mHjeaWsOaMh+WumuaWsOeahOW8ueWHuuS9jee9rlxuICAgIGNvbnN0IHBhbmVSZWN0ID0gcG9zaXRpb25TdHJhdGVneS5fcGFuZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgLy8g5by55Ye6cGFuZeWFg+e0oFJlY3RcbiAgICBjb25zdCB0cmlnZ2VyRWxSZWFjdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgLy8g6Kem5Y+R54K5UmVjdFxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBwb3NpdGlvblN0cmF0ZWd5Ll9sYXN0UG9zaXRpb247IC8vIOW9k+WJjeetlueVpeS9jee9ru+8iOiwg+aVtOWQjueahOacgOS9s+eahO+8iVxuICAgIGxldCB4T3JpZ2luOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG4gICAgY29uc3QgeU9yaWdpbjogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInID0gcG9zaXRpb24ub3ZlcmxheVk7XG4gICAgaWYgKHBvc2l0aW9uLm92ZXJsYXlYID09PSAnY2VudGVyJykge1xuICAgICAgeE9yaWdpbiA9ICdjZW50ZXInO1xuICAgIH0gZWxzZSB7XG4gICAgICB4T3JpZ2luID0gcG9zaXRpb24ub3ZlcmxheVggPT09ICdzdGFydCcgPyAnbGVmdCcgOiAncmlnaHQnO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbnM6IHN0cmluZ1tdID0gW3hPcmlnaW4sIHlPcmlnaW5dO1xuICAgIGlmIChcbiAgICAgIHhPcmlnaW4gPT09ICdjZW50ZXInIHx8XG4gICAgICAoeE9yaWdpbiA9PT0gJ2xlZnQnICYmXG4gICAgICAgICFbdHJpZ2dlckVsUmVhY3QucmlnaHQsIHRyaWdnZXJFbFJlYWN0LmxlZnRdLmluY2x1ZGVzKHBhbmVSZWN0LmxlZnQpKSB8fFxuICAgICAgKHhPcmlnaW4gPT09ICdyaWdodCcgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5yaWdodCwgdHJpZ2dlckVsUmVhY3QubGVmdF0uaW5jbHVkZXMocGFuZVJlY3QucmlnaHQpKVxuICAgICkge1xuICAgICAgY29uc3Qgb3JpZ2luTGVmdCA9XG4gICAgICAgIHRyaWdnZXJFbFJlYWN0LmxlZnQgLSBwYW5lUmVjdC5sZWZ0ICsgdHJpZ2dlckVsUmVhY3Qud2lkdGggLyAyO1xuICAgICAgb3JpZ2luc1swXSA9IE1hdGgubWluKG9yaWdpbkxlZnQsIHBhbmVSZWN0LndpZHRoKSArICdweCc7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHlPcmlnaW4gPT09ICdjZW50ZXInIHx8XG4gICAgICAoeU9yaWdpbiA9PT0gJ3RvcCcgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5ib3R0b20sIHRyaWdnZXJFbFJlYWN0LnRvcF0uaW5jbHVkZXMocGFuZVJlY3QudG9wKSkgfHwgLy8g5L2N572u5rKh5pyJ6KKr5a6M5YWo6KKr6aKg5YCS55qEXG4gICAgICAoeU9yaWdpbiA9PT0gJ2JvdHRvbScgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5ib3R0b20sIHRyaWdnZXJFbFJlYWN0LnRvcF0uaW5jbHVkZXMocGFuZVJlY3QuYm90dG9tKSkgLy8g5L2N572u5rKh5pyJ6KKr5a6M5YWo6KKr6aKg5YCS55qEXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmlnaW5Ub3AgPVxuICAgICAgICB0cmlnZ2VyRWxSZWFjdC50b3AgLSBwYW5lUmVjdC50b3AgKyB0cmlnZ2VyRWxSZWFjdC5oZWlnaHQgLyAyO1xuICAgICAgb3JpZ2luc1sxXSA9IE1hdGgubWluKG9yaWdpblRvcCwgcGFuZVJlY3QuaGVpZ2h0KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGFuaUVscyA9IHBvc2l0aW9uU3RyYXRlZ3kuX2JvdW5kaW5nQm94LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxuICAgICAgcG9zaXRpb25TdHJhdGVneS5fdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IsXG4gICAgKTtcbiAgICBBcnJheS5mcm9tKGFuaUVscykuZm9yRWFjaChlbCA9PiB7XG4gICAgICBlbC5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBvcmlnaW5zLmpvaW4oJyAnKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9jcmVhdGVUb29sdGlwKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgIHRoaXMuY29tcG9uZW50Q2xhc3MsXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgKTtcbiAgICB0aGlzLmNvbXBvbmVudElucyA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKS5pbnN0YW5jZTtcbiAgICB0aGlzLmNvbXBvbmVudElucy5zZXR1cElucHV0cyh7XG4gICAgICBpbnB1dENsYXNzJDogdGhpcy5pbnB1dENsYXNzJCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBpbnB1dENvbnRlbnQkOiB0aGlzLmlucHV0Q29udGVudCQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRDb250ZXh0JDogdGhpcy5pbnB1dENvbnRleHQkJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0UG9zaXRpb24kOiB0aGlzLmlucHV0UG9zaXRpb24kJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0VHlwZSQ6IHRoaXMuaW5wdXRUeXBlJCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uOiB0aGlzLmRpc2FibGVBbmltYXRpb24sXG4gICAgfSk7XG4gICAgdGhpcy5jb21wb25lbnRJbnMuaGlkZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLmNvbXBvbmVudElucy5iZWZvcmVIaWRlJCxcbiAgICAgICAgdGhpcy5jb21wb25lbnRJbnMuYmVmb3JlU2hvdyQucGlwZShkZWxheSgwKSksXG4gICAgICApXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUcmFuc2Zvcm1PcmlnaW4uYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuSG92ZXIpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zLmhvdmVyJFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnRJbnMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKGhvdmVyZWQgPT4ge1xuICAgICAgICAgIHRoaXMub25Ub29sdGlwSG92ZXJlZChob3ZlcmVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuSG92ZXIgfHxcbiAgICAgIHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuQ2xpY2tcbiAgICApIHtcbiAgICAgIHRoaXMudW5saXN0ZW5Cb2R5ID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICdib2R5JyxcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgdGhpcy5vbkJvZHlDbGljay5iaW5kKHRoaXMpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudElucz8uc2hvdygpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBfZGlzcG9zZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5jb21wb25lbnRJbnM/LmFuaW1hdGluZyQkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGFuaW1hdGluZyA9PiAhYW5pbWF0aW5nKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50SW5zID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHRoaXMudW5saXN0ZW5Cb2R5KSB7XG4gICAgICAgICAgICB0aGlzLnVubGlzdGVuQm9keSgpO1xuICAgICAgICAgICAgdGhpcy51bmxpc3RlbkJvZHkgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgLy8g5aaC5p6c56aB55So5LqG5Yqo55S75bCx56uL5Y2z6ZSA5q+B77yM6ICM5LiN5piv562J5Yqo55S75a6M5oiQ5LqL5Lu25ZCO5omN6ZSA5q+BXG4gICAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElucz8uaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3Zlcikge1xuICAgICAgdGhpcy51cGRhdGVMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gICAgc3dpdGNoICh0aGlzLnRyaWdnZXIpIHtcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuQ2xpY2s6IHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdjbGljaycsXG4gICAgICAgICAgICB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuSG92ZXI6IHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdtb3VzZWVudGVyJyxcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5Gb2N1czoge1xuICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ2ZvY3VzJyxcbiAgICAgICAgICAgIHRoaXMub25Gb2N1cy5iaW5kKHRoaXMpLFxuICAgICAgICAgICksXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnYmx1cicsXG4gICAgICAgICAgICB0aGlzLm9uQmx1ci5iaW5kKHRoaXMpLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5NYW51YWw6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyTGlzdGVuZXJzKCkge1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2godW5MaXN0ZW4gPT4ge1xuICAgICAgdW5MaXN0ZW4oKTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU92ZXJsYXkoKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3JpZ2luUG9zaXRpb24gPSBnZXRPcmlnaW5Qb3NpdGlvbih0aGlzLnBvc2l0aW9uKTtcbiAgICBjb25zdCBvdmVybGF5UG9zaXRpb24gPSBnZXRPdmVybGF5UG9zaXRpb24odGhpcy5wb3NpdGlvbik7XG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbFJlZilcbiAgICAgIC53aXRoR3Jvd0FmdGVyT3Blbih0cnVlKVxuICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbignLmF1aS10b29sdGlwJylcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgeyAuLi5vcmlnaW5Qb3NpdGlvbi5tYWluLCAuLi5vdmVybGF5UG9zaXRpb24ubWFpbiB9LFxuICAgICAgICB7IC4uLm9yaWdpblBvc2l0aW9uLmZhbGxiYWNrLCAuLi5vdmVybGF5UG9zaXRpb24uZmFsbGJhY2sgfSxcbiAgICAgIF0pO1xuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG5cbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvbk1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5ob3N0SG92ZXJlZCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgYXdhaXQgc2xlZXAoRElTUExBWV9ERUxBWSk7XG4gICAgICBpZiAodGhpcy5ob3N0SG92ZXJlZCkge1xuICAgICAgICB0aGlzLl9jcmVhdGVUb29sdGlwKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhvc3RIb3ZlcmVkID0gZmFsc2U7XG4gICAgYXdhaXQgc2xlZXAoSElEREVOX0RFTEFZKTtcbiAgICBpZiAoIXRoaXMudG9vbHRpcEhvdmVyZWQgJiYgIXRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvblRvb2x0aXBIb3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvb2x0aXBIb3ZlcmVkID0gaG92ZXJlZDtcbiAgICBpZiAoIWhvdmVyZWQpIHtcbiAgICAgIGF3YWl0IHNsZWVwKEhJRERFTl9ERUxBWSk7XG4gICAgICBpZiAoIXRoaXMudG9vbHRpcEhvdmVyZWQgJiYgIXRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xpY2soKSB7XG4gICAgdGhpcy50b2dnbGVUb29sdGlwKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Cb2R5Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICh0aGlzLmhpZGVPbkNsaWNrIHx8XG4gICAgICAgICF0aGlzLmNvbXBvbmVudElucy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSlcbiAgICApIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZvY3VzKCkge1xuICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJsdXIoKSB7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -36,10 +36,10 @@ export class TooltipActiveDirective {
36
36
  this.renderer.removeClass(this.el.nativeElement, name);
37
37
  });
38
38
  }
39
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipActiveDirective, deps: [{ token: i1.BaseTooltip }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
40
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: TooltipActiveDirective, selector: "[auiTooltipActive]", inputs: { customClass: ["auiTooltipActive", "customClass"] }, ngImport: i0 });
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipActiveDirective, deps: [{ token: i1.BaseTooltip }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
40
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: TooltipActiveDirective, selector: "[auiTooltipActive]", inputs: { customClass: ["auiTooltipActive", "customClass"] }, ngImport: i0 });
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipActiveDirective, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipActiveDirective, decorators: [{
43
43
  type: Directive,
44
44
  args: [{
45
45
  selector: '[auiTooltipActive]',
@@ -57,10 +57,10 @@ export class TooltipCopyDirective extends BaseTooltip {
57
57
  }
58
58
  }
59
59
  }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipCopyDirective, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.TooltipCopyIntl }], target: i0.ɵɵFactoryTarget.Directive });
61
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: TooltipCopyDirective, selector: "[auiTooltipCopy]", inputs: { position: ["auiTooltipPosition", "position"], disabled: ["auiTooltipDisabled", "disabled"], disableAnimation: ["auiDisableAnimation", "disableAnimation"], auiTooltipCopy: "auiTooltipCopy", auiTooltipCopyTip: "auiTooltipCopyTip", auiTooltipCopySuccessTip: "auiTooltipCopySuccessTip", auiTooltipCopyFailTip: "auiTooltipCopyFailTip" }, host: { listeners: { "click": "onSourceClick()" }, properties: { "class.aui-tooltip-copy": "this.className" } }, usesInheritance: true, ngImport: i0 });
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipCopyDirective, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.TooltipCopyIntl }], target: i0.ɵɵFactoryTarget.Directive });
61
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: TooltipCopyDirective, selector: "[auiTooltipCopy]", inputs: { position: ["auiTooltipPosition", "position"], disabled: ["auiTooltipDisabled", "disabled"], disableAnimation: ["auiDisableAnimation", "disableAnimation"], auiTooltipCopy: "auiTooltipCopy", auiTooltipCopyTip: "auiTooltipCopyTip", auiTooltipCopySuccessTip: "auiTooltipCopySuccessTip", auiTooltipCopyFailTip: "auiTooltipCopyFailTip" }, host: { listeners: { "click": "onSourceClick()" }, properties: { "class.aui-tooltip-copy": "this.className" } }, usesInheritance: true, ngImport: i0 });
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipCopyDirective, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipCopyDirective, decorators: [{
64
64
  type: Directive,
65
65
  args: [{
66
66
  selector: '[auiTooltipCopy]',
@@ -4,10 +4,10 @@ export class TooltipCopyIntl {
4
4
  copyTip = 'Click to copy';
5
5
  copySuccessTip = 'Copied to clipboard';
6
6
  copyFailTip = 'Copy failed';
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipCopyIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipCopyIntl });
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipCopyIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipCopyIntl });
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipCopyIntl, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipCopyIntl, decorators: [{
11
11
  type: Injectable
12
12
  }] });
13
13
  export function TOOLTIP_COPY_INTL_PROVIDER_FACTORY(parentIntl) {
@@ -80,8 +80,8 @@ export class TooltipComponent {
80
80
  this.showHide = 'hide';
81
81
  this.cdr.markForCheck();
82
82
  }
83
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
84
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: TooltipComponent, selector: "aui-tooltip", ngImport: i0, template: "<div\n *ngIf=\"inputContent$ | async\"\n [class]=\"class$ | async\"\n (mouseenter)=\"hover$.next(true)\"\n (mouseleave)=\"hover$.next(false)\"\n [@.disabled]=\"disableAnimation\"\n [@showHide]=\"showHide\"\n (@showHide.start)=\"onAnimation($event)\"\n (@showHide.done)=\"onAnimation($event)\"\n>\n {{ text$ | async }}\n <ng-container\n *ngIf=\"template$ | async\"\n [ngTemplateOutlet]=\"template$ | async\"\n [ngTemplateOutletContext]=\"context$ | async\"\n ></ng-container>\n</div>\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.aui-tooltip{position:relative;padding:var(--aui-spacing-xl);border-radius:var(--aui-border-radius-m);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal);max-width:400px;word-wrap:break-word}:root .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tooltip--default{padding:var(--aui-spacing-m) var(--aui-spacing-xl)}:root .aui-tooltip--default{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-1))}html[aui-theme-mode=light] .aui-tooltip--default{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-1))}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tooltip--default{color:rgb(var(--aui-color-n-1));background-color:rgb(var(--aui-color-popper-bg))}}html[aui-theme-mode=dark] .aui-tooltip--default{color:rgb(var(--aui-color-n-1));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--info{color:rgb(var(--aui-color-n-1));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--top,.aui-tooltip--bottom{margin:var(--aui-spacing-s) 0}.aui-tooltip--start,.aui-tooltip--end{margin:0 var(--aui-spacing-s)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
84
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TooltipComponent, selector: "aui-tooltip", ngImport: i0, template: "<div\n *ngIf=\"inputContent$ | async\"\n [class]=\"class$ | async\"\n (mouseenter)=\"hover$.next(true)\"\n (mouseleave)=\"hover$.next(false)\"\n [@.disabled]=\"disableAnimation\"\n [@showHide]=\"showHide\"\n (@showHide.start)=\"onAnimation($event)\"\n (@showHide.done)=\"onAnimation($event)\"\n>\n {{ text$ | async }}\n <ng-container\n *ngIf=\"template$ | async\"\n [ngTemplateOutlet]=\"template$ | async\"\n [ngTemplateOutletContext]=\"context$ | async\"\n ></ng-container>\n</div>\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.aui-tooltip{position:relative;padding:var(--aui-spacing-xl);border-radius:var(--aui-border-radius-m);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal);max-width:400px;word-wrap:break-word}:root .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-tooltip{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-tooltip--default{padding:var(--aui-spacing-m) var(--aui-spacing-xl)}:root .aui-tooltip--default{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-1))}html[aui-theme-mode=light] .aui-tooltip--default{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-1))}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-tooltip--default{color:rgb(var(--aui-color-n-1));background-color:rgb(var(--aui-color-popper-bg))}}html[aui-theme-mode=dark] .aui-tooltip--default{color:rgb(var(--aui-color-n-1));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--info{color:rgb(var(--aui-color-n-1));background-color:rgb(var(--aui-color-popper-bg))}.aui-tooltip--top,.aui-tooltip--bottom{margin:var(--aui-spacing-s) 0}.aui-tooltip--start,.aui-tooltip--end{margin:0 var(--aui-spacing-s)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
85
85
  trigger('showHide', [
86
86
  state('show', style({
87
87
  opacity: 1,
@@ -98,7 +98,7 @@ export class TooltipComponent {
98
98
  ]),
99
99
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
100
100
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipComponent, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipComponent, decorators: [{
102
102
  type: Component,
103
103
  args: [{ selector: 'aui-tooltip', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, animations: [
104
104
  trigger('showHide', [
@@ -4,15 +4,15 @@ import * as i0 from "@angular/core";
4
4
  export class TooltipDirective extends BaseTooltip {
5
5
  visibleChange = new EventEmitter();
6
6
  disableAnimation = false;
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
8
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: TooltipDirective, selector: "[auiTooltip]", inputs: { content: ["auiTooltip", "content"], context: ["auiTooltipContext", "context"], class: ["auiTooltipClass", "class"], type: ["auiTooltipType", "type"], position: ["auiTooltipPosition", "position"], trigger: ["auiTooltipTrigger", "trigger"], disabled: ["auiTooltipDisabled", "disabled"], hideOnClick: ["auiTooltipHideOnClick", "hideOnClick"], disableAnimation: ["auiDisableAnimation", "disableAnimation"] }, outputs: { visibleChange: "auiTooltipVisibleChange" }, providers: [
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
8
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: TooltipDirective, selector: "[auiTooltip]", inputs: { content: ["auiTooltip", "content"], context: ["auiTooltipContext", "context"], class: ["auiTooltipClass", "class"], type: ["auiTooltipType", "type"], position: ["auiTooltipPosition", "position"], trigger: ["auiTooltipTrigger", "trigger"], disabled: ["auiTooltipDisabled", "disabled"], hideOnClick: ["auiTooltipHideOnClick", "hideOnClick"], disableAnimation: ["auiDisableAnimation", "disableAnimation"] }, outputs: { visibleChange: "auiTooltipVisibleChange" }, providers: [
9
9
  {
10
10
  provide: BaseTooltip,
11
11
  useExisting: TooltipDirective,
12
12
  },
13
13
  ], exportAs: ["auiTooltip"], usesInheritance: true, ngImport: i0 });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: '[auiTooltip]',
@@ -8,14 +8,14 @@ import { TooltipComponent } from './tooltip.component';
8
8
  import { TooltipDirective } from './tooltip.directive';
9
9
  import * as i0 from "@angular/core";
10
10
  export class TooltipModule {
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, declarations: [TooltipDirective,
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, declarations: [TooltipDirective,
13
13
  TooltipComponent,
14
14
  TooltipActiveDirective,
15
15
  TooltipCopyDirective], imports: [CommonModule, OverlayModule], exports: [TooltipDirective, TooltipActiveDirective, TooltipCopyDirective] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, providers: [TOOLTIP_COPY_INTL_INTL_PROVIDER], imports: [CommonModule, OverlayModule] });
16
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, providers: [TOOLTIP_COPY_INTL_INTL_PROVIDER], imports: [CommonModule, OverlayModule] });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [CommonModule, OverlayModule],