@fundamental-ngx/platform 0.47.4 → 0.48.0-rc.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 (405) hide show
  1. package/esm2022/action-bar/action-bar.component.mjs +8 -9
  2. package/esm2022/action-bar/action-bar.module.mjs +4 -4
  3. package/esm2022/action-button-group/action-button-group.component.mjs +4 -4
  4. package/esm2022/action-button-group/action-button-group.module.mjs +4 -4
  5. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +6 -11
  6. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +6 -8
  7. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +5 -6
  8. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +5 -5
  9. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +8 -11
  10. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +6 -8
  11. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +5 -7
  12. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +5 -6
  13. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +6 -6
  14. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +6 -7
  15. package/esm2022/approval-flow/approval-flow.component.mjs +8 -10
  16. package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
  17. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
  18. package/esm2022/button/button.component.mjs +5 -5
  19. package/esm2022/button/button.module.mjs +4 -4
  20. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
  21. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
  22. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +5 -5
  23. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +5 -5
  24. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
  25. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
  26. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
  27. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +4 -4
  28. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
  29. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
  30. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
  31. package/esm2022/dynamic-page/dynamic-page.component.mjs +8 -10
  32. package/esm2022/dynamic-page/dynamic-page.config.mjs +4 -4
  33. package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
  34. package/esm2022/dynamic-page/dynamic-page.service.mjs +3 -3
  35. package/esm2022/feed-input/feed-input.component.mjs +6 -7
  36. package/esm2022/feed-input/feed-input.module.mjs +4 -4
  37. package/esm2022/form/auto-complete/auto-complete.directive.mjs +5 -5
  38. package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
  39. package/esm2022/form/checkbox/checkbox.component.mjs +6 -6
  40. package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
  41. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +8 -8
  42. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
  43. package/esm2022/form/combobox/combobox/combobox.component.mjs +9 -11
  44. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +13 -15
  45. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
  46. package/esm2022/form/combobox/combobox.config.mjs +4 -4
  47. package/esm2022/form/combobox/combobox.module.mjs +4 -4
  48. package/esm2022/form/combobox/commons/base-combobox.mjs +8 -6
  49. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
  50. package/esm2022/form/date-picker/date-picker.component.mjs +6 -6
  51. package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
  52. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -6
  53. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
  54. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
  55. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +4 -4
  56. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +4 -4
  57. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +4 -4
  58. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
  59. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +4 -4
  60. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +3 -3
  61. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +4 -4
  62. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +4 -4
  63. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +4 -4
  64. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +5 -5
  65. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +6 -6
  66. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
  67. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +9 -11
  68. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
  69. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +7 -8
  70. package/esm2022/form/form-generator/form-generator.service.mjs +5 -5
  71. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +5 -5
  72. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
  73. package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
  74. package/esm2022/form/form-group/form-field/form-field.component.mjs +10 -10
  75. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +6 -6
  76. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +6 -6
  77. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +5 -5
  78. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
  79. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +6 -6
  80. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -6
  81. package/esm2022/form/form-group/form-group.component.mjs +8 -10
  82. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
  83. package/esm2022/form/form-group/services/form-field-layout.service.mjs +5 -5
  84. package/esm2022/form/input/fdp-input.module.mjs +4 -4
  85. package/esm2022/form/input/input.component.mjs +6 -6
  86. package/esm2022/form/input-group/addon-body.component.mjs +5 -5
  87. package/esm2022/form/input-group/addon.component.mjs +5 -5
  88. package/esm2022/form/input-group/input-group.component.mjs +12 -12
  89. package/esm2022/form/input-group/input-group.config.mjs +4 -4
  90. package/esm2022/form/input-group/input-group.module.mjs +4 -4
  91. package/esm2022/form/input-group/input.component.mjs +3 -3
  92. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +7 -7
  93. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +6 -6
  94. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +10 -12
  95. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +8 -9
  96. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
  97. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +4 -4
  98. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
  99. package/esm2022/form/multi-input/base-multi-input.mjs +6 -6
  100. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +12 -12
  101. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
  102. package/esm2022/form/multi-input/multi-input.component.mjs +9 -11
  103. package/esm2022/form/multi-input/multi-input.config.mjs +4 -4
  104. package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
  105. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +6 -6
  106. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +4 -4
  107. package/esm2022/form/radio-group/radio/radio.component.mjs +8 -8
  108. package/esm2022/form/radio-group/radio-group.component.mjs +8 -8
  109. package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
  110. package/esm2022/form/select/commons/base-select.mjs +6 -6
  111. package/esm2022/form/select/select/select.component.mjs +8 -8
  112. package/esm2022/form/select/select.config.mjs +4 -4
  113. package/esm2022/form/select/select.module.mjs +4 -4
  114. package/esm2022/form/step-input/base.step-input.mjs +5 -5
  115. package/esm2022/form/step-input/number/number-step-input.component.mjs +9 -10
  116. package/esm2022/form/step-input/step-input-action-button.mjs +3 -3
  117. package/esm2022/form/step-input/step-input-control.directive.mjs +6 -6
  118. package/esm2022/form/step-input/step-input-decrement.directive.mjs +5 -5
  119. package/esm2022/form/step-input/step-input-increment.directive.mjs +5 -5
  120. package/esm2022/form/step-input/step-input.config.mjs +3 -3
  121. package/esm2022/form/step-input/step-input.module.mjs +4 -4
  122. package/esm2022/form/switch/switch/switch.component.mjs +6 -6
  123. package/esm2022/form/switch/switch/switch.config.mjs +3 -3
  124. package/esm2022/form/switch/switch.module.mjs +4 -4
  125. package/esm2022/form/text-area/text-area.component.mjs +8 -9
  126. package/esm2022/form/text-area/text-area.config.mjs +3 -3
  127. package/esm2022/form/text-area/text-area.module.mjs +4 -4
  128. package/esm2022/form/time-picker/time-picker.component.mjs +6 -6
  129. package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
  130. package/esm2022/fundamental-ngx.module.mjs +5 -5
  131. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +3 -3
  132. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +5 -9
  133. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +6 -8
  134. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +6 -8
  135. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +5 -8
  136. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +7 -9
  137. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +6 -15
  138. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +5 -9
  139. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +6 -8
  140. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +5 -5
  141. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +5 -5
  142. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +5 -5
  143. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +8 -9
  144. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +4 -4
  145. package/esm2022/info-label/info-label.component.mjs +5 -5
  146. package/esm2022/info-label/info-label.module.mjs +4 -4
  147. package/esm2022/link/link.component.mjs +5 -5
  148. package/esm2022/link/link.module.mjs +4 -4
  149. package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
  150. package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
  151. package/esm2022/list/base-list-item.mjs +11 -11
  152. package/esm2022/list/display-list-item/display-list-item.component.mjs +6 -7
  153. package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
  154. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +4 -4
  155. package/esm2022/list/list-group-footer.component.mjs +3 -3
  156. package/esm2022/list/list-group-header.component.mjs +3 -3
  157. package/esm2022/list/list.component.mjs +9 -11
  158. package/esm2022/list/list.config.mjs +3 -3
  159. package/esm2022/list/list.module.mjs +4 -4
  160. package/esm2022/list/load-more-content.directive.mjs +4 -4
  161. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +4 -4
  162. package/esm2022/list/object-list-item/object-list-item.component.mjs +6 -7
  163. package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
  164. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +6 -7
  165. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
  166. package/esm2022/menu/menu-item.component.mjs +7 -7
  167. package/esm2022/menu/menu-trigger.directive.mjs +6 -6
  168. package/esm2022/menu/menu.component.mjs +6 -6
  169. package/esm2022/menu/menu.module.mjs +4 -4
  170. package/esm2022/menu-button/menu-button.component.mjs +5 -5
  171. package/esm2022/menu-button/menu-button.module.mjs +4 -4
  172. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +6 -6
  173. package/esm2022/message-popover/components/message-view/message-view.component.mjs +8 -10
  174. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +6 -6
  175. package/esm2022/message-popover/message-popover.component.mjs +7 -9
  176. package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
  177. package/esm2022/object-marker/object-marker.component.mjs +6 -7
  178. package/esm2022/object-marker/object-marker.module.mjs +4 -4
  179. package/esm2022/object-status/object-status.component.mjs +8 -8
  180. package/esm2022/object-status/object-status.module.mjs +4 -4
  181. package/esm2022/page-footer/page-footer.component.mjs +6 -6
  182. package/esm2022/page-footer/page-footer.module.mjs +4 -4
  183. package/esm2022/panel/panel-actions.component.mjs +3 -3
  184. package/esm2022/panel/panel-content/panel-content.component.mjs +4 -4
  185. package/esm2022/panel/panel.component.mjs +5 -5
  186. package/esm2022/panel/panel.config.mjs +4 -4
  187. package/esm2022/panel/panel.module.mjs +4 -4
  188. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +8 -9
  189. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +4 -4
  190. package/esm2022/search-field/search-field.component.mjs +16 -18
  191. package/esm2022/search-field/search-field.module.mjs +4 -4
  192. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +9 -16
  193. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
  194. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -6
  195. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +6 -9
  196. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +6 -8
  197. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +7 -7
  198. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
  199. package/esm2022/settings-generator/settings-generator.component.mjs +9 -9
  200. package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
  201. package/esm2022/settings-generator/settings-generator.service.mjs +4 -4
  202. package/esm2022/shared/base.mjs +5 -5
  203. package/esm2022/shared/form/base.input.mjs +6 -6
  204. package/esm2022/shared/form/collection-base.input.mjs +6 -6
  205. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +13 -13
  206. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
  207. package/esm2022/shared/pipes/pipe.module.mjs +4 -4
  208. package/esm2022/shared/platform.config.mjs +3 -3
  209. package/esm2022/slider/slider.component.mjs +6 -6
  210. package/esm2022/slider/slider.module.mjs +4 -4
  211. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +4 -4
  212. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +4 -4
  213. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -9
  214. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +7 -9
  215. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +3 -3
  216. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +5 -5
  217. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +4 -4
  218. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
  219. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +8 -10
  220. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
  221. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +4 -4
  222. package/esm2022/split-menu-button/split-menu-button.component.mjs +6 -6
  223. package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
  224. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
  225. package/esm2022/table/components/reset-button/reset-button.component.mjs +5 -5
  226. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +6 -8
  227. package/esm2022/table/components/table-column/table-column.component.mjs +6 -6
  228. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +6 -6
  229. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +5 -15
  230. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +7 -7
  231. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +6 -6
  232. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +11 -13
  233. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +7 -9
  234. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +9 -11
  235. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +6 -9
  236. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +6 -8
  237. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +9 -11
  238. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
  239. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +5 -5
  240. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
  241. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
  242. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
  243. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -9
  244. package/esm2022/table/components/table-row/table-row.component.mjs +8 -12
  245. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
  246. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
  247. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +7 -8
  248. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +6 -6
  249. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +5 -6
  250. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +5 -14
  251. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +5 -8
  252. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +5 -7
  253. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +7 -10
  254. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +6 -8
  255. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +6 -9
  256. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +5 -5
  257. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
  258. package/esm2022/table/table.component.mjs +9 -14
  259. package/esm2022/table/table.module.mjs +4 -4
  260. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +6 -6
  261. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
  262. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +5 -5
  263. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
  264. package/esm2022/table-helpers/directives/table-cell.directive.mjs +16 -16
  265. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -3
  266. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
  267. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
  268. package/esm2022/table-helpers/directives/table-header.directive.mjs +7 -7
  269. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +3 -3
  270. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
  271. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +4 -4
  272. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
  273. package/esm2022/table-helpers/enums/collection-filter.enum.mjs +16 -1
  274. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
  275. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
  276. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
  277. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
  278. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
  279. package/esm2022/table-helpers/services/table-column-resize.service.mjs +5 -5
  280. package/esm2022/table-helpers/services/table-responsive.service.mjs +5 -5
  281. package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
  282. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
  283. package/esm2022/table-helpers/services/table.service.mjs +3 -3
  284. package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
  285. package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +6 -8
  286. package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +8 -8
  287. package/esm2022/thumbnail/thumbnail.component.mjs +7 -8
  288. package/esm2022/thumbnail/thumbnail.module.mjs +4 -4
  289. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +6 -9
  290. package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +6 -8
  291. package/esm2022/upload-collection/directives/upload-collection-dragndrop.directive.mjs +5 -5
  292. package/esm2022/upload-collection/services/files-validator.service.mjs +3 -3
  293. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +7 -11
  294. package/esm2022/upload-collection/upload-collection.module.mjs +4 -4
  295. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +5 -5
  296. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +6 -10
  297. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +13 -15
  298. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +3 -3
  299. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +5 -5
  300. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +12 -17
  301. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
  302. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +5 -5
  303. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -8
  304. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
  305. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +4 -4
  306. package/esm2022/variant-management/variant-management.component.mjs +8 -10
  307. package/esm2022/variant-management/variant-management.module.mjs +4 -4
  308. package/esm2022/wizard-generator/base-wizard-generator.mjs +5 -5
  309. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +7 -8
  310. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +7 -9
  311. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +6 -7
  312. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +6 -7
  313. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +5 -6
  314. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +7 -7
  315. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
  316. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
  317. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
  318. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
  319. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +4 -4
  320. package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
  321. package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
  322. package/fesm2022/fundamental-ngx-platform-action-bar.mjs +11 -12
  323. package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +1 -1
  324. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs +8 -8
  325. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +62 -74
  326. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  327. package/fesm2022/fundamental-ngx-platform-button.mjs +8 -8
  328. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  329. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +54 -56
  330. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  331. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -10
  332. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  333. package/fesm2022/fundamental-ngx-platform-form.mjs +453 -464
  334. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  335. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +59 -87
  336. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  337. package/fesm2022/fundamental-ngx-platform-info-label.mjs +8 -8
  338. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  339. package/fesm2022/fundamental-ngx-platform-link.mjs +8 -8
  340. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  341. package/fesm2022/fundamental-ngx-platform-list.mjs +73 -78
  342. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  343. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -8
  344. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  345. package/fesm2022/fundamental-ngx-platform-menu.mjs +20 -20
  346. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  347. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +29 -33
  348. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  349. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +9 -10
  350. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  351. package/fesm2022/fundamental-ngx-platform-object-status.mjs +12 -12
  352. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  353. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +9 -9
  354. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  355. package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -19
  356. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  357. package/fesm2022/fundamental-ngx-platform-search-field.mjs +29 -32
  358. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  359. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +45 -56
  360. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  361. package/fesm2022/fundamental-ngx-platform-shared.mjs +36 -36
  362. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  363. package/fesm2022/fundamental-ngx-platform-slider.mjs +9 -9
  364. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  365. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +48 -53
  366. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  367. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +9 -9
  368. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  369. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +115 -100
  370. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  371. package/fesm2022/fundamental-ngx-platform-table.mjs +168 -218
  372. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  373. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +22 -23
  374. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +1 -1
  375. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +27 -34
  376. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  377. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +41 -52
  378. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  379. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +28 -31
  380. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  381. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +58 -61
  382. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  383. package/fesm2022/fundamental-ngx-platform.mjs +5 -5
  384. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +2 -2
  385. package/form/form-group/form-group.component.d.ts +1 -1
  386. package/form/input-group/input-group.component.d.ts +2 -2
  387. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +1 -1
  388. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
  389. package/fundamental-ngx-platform-v0.48.0-rc.0.tgz +0 -0
  390. package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +0 -2
  391. package/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.d.ts +0 -2
  392. package/list/list.component.d.ts +1 -1
  393. package/package.json +4 -4
  394. package/page-footer/page-footer.component.d.ts +1 -1
  395. package/schematics/ng-add/index.js +1 -1
  396. package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +1 -1
  397. package/settings-generator/settings-generator.component.d.ts +2 -2
  398. package/table/components/table-p13-dialog/filtering/filter-rule.component.d.ts +2 -0
  399. package/table/table.component.d.ts +1 -1
  400. package/table-helpers/enums/collection-filter.enum.d.ts +2 -0
  401. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +1 -1
  402. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +1 -1
  403. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +2 -2
  404. package/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.d.ts +2 -2
  405. package/fundamental-ngx-platform-v0.47.4.tgz +0 -0
@@ -215,15 +215,15 @@ export class PlatformDatePickerComponent extends BaseInput {
215
215
  }
216
216
  this._changeDetectorRef.markForCheck();
217
217
  }
218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, self: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }, { token: i2.DatetimeAdapter, optional: true }, { token: DATE_TIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
219
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: PlatformDatePickerComponent, isStandalone: true, selector: "fdp-date-picker", inputs: { value: "value", type: "type", selectedDate: "selectedDate", selectedRangeDate: "selectedRangeDate", startingDayOfWeek: "startingDayOfWeek", rangeHoverEffect: "rangeHoverEffect", useValidation: "useValidation", showTodayButton: "showTodayButton", todayButtonLabel: "todayButtonLabel", allowNull: "allowNull", activeView: "activeView", placement: "placement", appendTo: "appendTo", closeOnDateChoose: "closeOnDateChoose", state: "state", buttonFocusable: "buttonFocusable", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", markWeekends: "markWeekends", showWeekNumbers: "showWeekNumbers", isOpen: "isOpen", inline: "inline", processInputOnBlur: "processInputOnBlur", preventScrollOnFocus: "preventScrollOnFocus", mobile: "mobile", mobileConfig: "mobileConfig", mobileLandscape: "mobileLandscape", mobilePortrait: "mobilePortrait", disableFunction: "disableFunction", disableRangeStartFunction: "disableRangeStartFunction", disableRangeEndFunction: "disableRangeEndFunction" }, outputs: { isOpenChange: "isOpenChange", selectedDateChange: "selectedDateChange", selectedRangeDateChange: "selectedRangeDateChange", activeViewChange: "activeViewChange" }, host: { listeners: { "blur": "onTouched()" } }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformDatePickerComponent, multi: true }], viewQueries: [{ propertyName: "fdDatePickerComponent", first: true, predicate: FdDatePickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-date-picker\n [inputId]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [type]=\"type\"\n [state]=\"state\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [selectedDate]=\"selectedDate\"\n [showTodayButton]=\"showTodayButton\"\n [todayButtonLabel]=\"todayButtonLabel\"\n [selectedRangeDate]=\"selectedRangeDate\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [useValidation]=\"useValidation\"\n [allowNull]=\"allowNull\"\n [activeView]=\"activeView\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n [disabled]=\"disabled\"\n [closeOnDateChoose]=\"closeOnDateChoose\"\n [buttonFocusable]=\"buttonFocusable\"\n [specialDaysRules]=\"specialDaysRules\"\n [yearGrid]=\"yearGrid\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [markWeekends]=\"markWeekends\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [isOpen]=\"isOpen\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [inline]=\"inline\"\n [processInputOnBlur]=\"processInputOnBlur\"\n [preventScrollOnFocus]=\"preventScrollOnFocus\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [mobileLandscape]=\"mobileLandscape\"\n [mobilePortrait]=\"mobilePortrait\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"handleDateChange($event)\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (selectedDateChange)=\"handleSelectedDateChange($event)\"\n (selectedRangeDateChange)=\"handleSelectedRangeDateChange($event)\"\n>\n <ng-content></ng-content>\n</fd-date-picker>\n", dependencies: [{ kind: "component", type: DatePickerComponent, selector: "fd-date-picker", inputs: ["type", "placeholder", "inputId", "required", "message", "messageTriggers", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "allowNull", "activeView", "placement", "appendTo", "disabled", "closeOnDateChoose", "showTodayButton", "todayButtonLabel", "previousButtonDisableFunction", "nextButtonDisableFunction", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "isOpen", "inline", "ariaLabelledBy", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedRangeDateChange", "activeViewChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
218
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, self: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }, { token: i2.DatetimeAdapter, optional: true }, { token: DATE_TIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
219
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: PlatformDatePickerComponent, isStandalone: true, selector: "fdp-date-picker", inputs: { value: "value", type: "type", selectedDate: "selectedDate", selectedRangeDate: "selectedRangeDate", startingDayOfWeek: "startingDayOfWeek", rangeHoverEffect: "rangeHoverEffect", useValidation: "useValidation", showTodayButton: "showTodayButton", todayButtonLabel: "todayButtonLabel", allowNull: "allowNull", activeView: "activeView", placement: "placement", appendTo: "appendTo", closeOnDateChoose: "closeOnDateChoose", state: "state", buttonFocusable: "buttonFocusable", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", markWeekends: "markWeekends", showWeekNumbers: "showWeekNumbers", isOpen: "isOpen", inline: "inline", processInputOnBlur: "processInputOnBlur", preventScrollOnFocus: "preventScrollOnFocus", mobile: "mobile", mobileConfig: "mobileConfig", mobileLandscape: "mobileLandscape", mobilePortrait: "mobilePortrait", disableFunction: "disableFunction", disableRangeStartFunction: "disableRangeStartFunction", disableRangeEndFunction: "disableRangeEndFunction" }, outputs: { isOpenChange: "isOpenChange", selectedDateChange: "selectedDateChange", selectedRangeDateChange: "selectedRangeDateChange", activeViewChange: "activeViewChange" }, host: { listeners: { "blur": "onTouched()" } }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformDatePickerComponent, multi: true }], viewQueries: [{ propertyName: "fdDatePickerComponent", first: true, predicate: FdDatePickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-date-picker\n [inputId]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [type]=\"type\"\n [state]=\"state\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [selectedDate]=\"selectedDate\"\n [showTodayButton]=\"showTodayButton\"\n [todayButtonLabel]=\"todayButtonLabel\"\n [selectedRangeDate]=\"selectedRangeDate\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [useValidation]=\"useValidation\"\n [allowNull]=\"allowNull\"\n [activeView]=\"activeView\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n [disabled]=\"disabled\"\n [closeOnDateChoose]=\"closeOnDateChoose\"\n [buttonFocusable]=\"buttonFocusable\"\n [specialDaysRules]=\"specialDaysRules\"\n [yearGrid]=\"yearGrid\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [markWeekends]=\"markWeekends\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [isOpen]=\"isOpen\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [inline]=\"inline\"\n [processInputOnBlur]=\"processInputOnBlur\"\n [preventScrollOnFocus]=\"preventScrollOnFocus\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [mobileLandscape]=\"mobileLandscape\"\n [mobilePortrait]=\"mobilePortrait\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"handleDateChange($event)\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (selectedDateChange)=\"handleSelectedDateChange($event)\"\n (selectedRangeDateChange)=\"handleSelectedRangeDateChange($event)\"\n>\n <ng-content></ng-content>\n</fd-date-picker>\n", dependencies: [{ kind: "component", type: DatePickerComponent, selector: "fd-date-picker", inputs: ["type", "placeholder", "inputId", "required", "message", "messageTriggers", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "allowNull", "activeView", "placement", "appendTo", "disabled", "closeOnDateChoose", "showTodayButton", "todayButtonLabel", "previousButtonDisableFunction", "nextButtonDisableFunction", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "isOpen", "inline", "ariaLabelledBy", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedRangeDateChange", "activeViewChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
220
220
  }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatePickerComponent, decorators: [{
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatePickerComponent, decorators: [{
222
222
  type: Component,
223
223
  args: [{ selector: 'fdp-date-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformDatePickerComponent, multi: true }], host: {
224
224
  '(blur)': 'onTouched()'
225
225
  }, standalone: true, imports: [DatePickerComponent, FormsModule], template: "<fd-date-picker\n [inputId]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [type]=\"type\"\n [state]=\"state\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [selectedDate]=\"selectedDate\"\n [showTodayButton]=\"showTodayButton\"\n [todayButtonLabel]=\"todayButtonLabel\"\n [selectedRangeDate]=\"selectedRangeDate\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [useValidation]=\"useValidation\"\n [allowNull]=\"allowNull\"\n [activeView]=\"activeView\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n [disabled]=\"disabled\"\n [closeOnDateChoose]=\"closeOnDateChoose\"\n [buttonFocusable]=\"buttonFocusable\"\n [specialDaysRules]=\"specialDaysRules\"\n [yearGrid]=\"yearGrid\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [markWeekends]=\"markWeekends\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [isOpen]=\"isOpen\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [inline]=\"inline\"\n [processInputOnBlur]=\"processInputOnBlur\"\n [preventScrollOnFocus]=\"preventScrollOnFocus\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [mobileLandscape]=\"mobileLandscape\"\n [mobilePortrait]=\"mobilePortrait\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"handleDateChange($event)\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (selectedDateChange)=\"handleSelectedDateChange($event)\"\n (selectedRangeDateChange)=\"handleSelectedRangeDateChange($event)\"\n>\n <ng-content></ng-content>\n</fd-date-picker>\n" }]
226
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
226
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
227
227
  type: Optional
228
228
  }, {
229
229
  type: Self
@@ -260,7 +260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
260
260
  }, {
261
261
  type: Inject,
262
262
  args: [DATE_TIME_FORMATS]
263
- }] }]; }, propDecorators: { value: [{
263
+ }] }], propDecorators: { value: [{
264
264
  type: Input
265
265
  }], type: [{
266
266
  type: Input
@@ -346,4 +346,4 @@ export function createMissingDateImplementationError(provider) {
346
346
  `modules at your application root: FdDateModule, or provide a ` +
347
347
  `custom implementation.`);
348
348
  }
349
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBRTlGLE9BQU8sRUFBa0MsU0FBUyxFQUE4QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQW1CLE1BQU0sZ0NBQWdDLENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRzFHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUV4RTs7Ozs7Ozs7OztHQVVHO0FBY0gsTUFBTSxPQUFPLDJCQUErQixTQUFRLFNB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LEtBQUs7O1FBUU4sNkRBQTZEO1FBQzdELHVCQUF1QjtzQkFGdEIsS0FBSzs7QUEyRFYsY0FBYztBQUNkLE1BQU0sVUFBVSxvQ0FBb0MsQ0FBQyxRQUFnQjtJQUNqRSxPQUFPLEtBQUssQ0FDUix3Q0FBd0MsUUFBUSx5Q0FBeUM7UUFDckYsK0RBQStEO1FBQy9ELHdCQUF3QixDQUMvQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgTmdGb3JtLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJUeXBlLCBDYWxlbmRhclllYXJHcmlkLCBEYXRlUmFuZ2UsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NhbGVuZGFyJztcbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IGFzIEZkRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBQbGFjZW1lbnQsIFNwZWNpYWxEYXlSdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE1vYmlsZU1vZGVDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRlLXBpY2tlcic7XG5cbi8qKlxuICogVGhlIFBsYXRmb3JtIGRhdGUgcGlja2VyIGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIGZkLWRhdGUtcGlja2VyIHVzaW5nIHBsYXRmb3JtIGZvcm0uXG4gKiBJdCBpcyBhYmxlIHRvIHByb3ZpZGUgZm9ybSBmaWVsZCBmdW5jdGlvbmFsaXRpZXMgYXMgd2VsbCBhbG9uZyB3aXRoIGZkLWRhdGUtcGlja2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiA8ZmRwLWZvcm0tZ3JvdXAgI2ZmZyBbZm9ybUdyb3VwXT1cImRhdGVQaWNrZXJGb3JtXCI+XG4gKiAgICAgIDxmZHAtZm9ybS1maWVsZCAjZmZsMSBpZD1cImJpcnRoZGF5XCI+XG4gKiAgICAgICAgICA8ZmRwLWRhdGUtcGlja2VyIG5hbWU9XCJiaXJ0aGRheVwiIHR5cGU9XCJzaW5nbGVcIiBbZm9ybUNvbnRyb2xdPVwiZmZsMS5mb3JtQ29udHJvbFwiPjwvZmRwLWRhdGUtcGlja2VyPlxuICogICAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICogPC9mZHAtZm9ybS1ncm91cD5cbiAqXG4gKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgdXNlRXhpc3Rpbmc6IFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRGF0ZVBpY2tlckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudDxEPiBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgLyoqXG4gICAgICogZGF0ZS1waWNrZXIgdmFsdWUgc2V0IGFzIGNvbnRyb2xsZXIgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVJhbmdlPEQ+IHwgRCkge1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBEYXRlUmFuZ2U8RD4gfCBEIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIGJlbG93IGNvZGUgdGFrZW4gZnJvbSBjb3JlL2RhdGUtcGlja2VyICovXG4gICAgLyoqIFRoZSB0eXBlIG9mIGNhbGVuZGFyLCAnc2luZ2xlJyBmb3Igc2luZ2xlIGRhdGUgc2VsZWN0aW9uIG9yICdyYW5nZScgZm9yIGEgcmFuZ2Ugb2YgZGF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBDYWxlbmRhclR5cGUgPSAnc2luZ2xlJztcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIENhbGVuZGFyRGF5IG1vZGVsICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IEQ7XG5cbiAgICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBGZERhdGVzIG1vZGVsIHN0YXJ0IGFuZCBlbmQgaW4gcmFuZ2UgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkUmFuZ2VEYXRlOiBEYXRlUmFuZ2U8RD4gPSB7IHN0YXJ0OiBudWxsLCBlbmQ6IG51bGwgfTtcblxuICAgIC8qKiBUaGUgZGF5IG9mIHRoZSB3ZWVrIHRoZSBjYWxlbmRhciBzaG91bGQgc3RhcnQgb24uIDEgcmVwcmVzZW50cyBTdW5kYXksIDIgaXMgTW9uZGF5LCAzIGlzIFR1ZXNkYXksIGFuZCBzbyBvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXJ0aW5nRGF5T2ZXZWVrOiBEYXlzT2ZXZWVrO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgZGF5IGNlbGxzIG9uIGhvdmVyLlxuICAgICAqIFdvcmtzIG9ubHkgb24gcmFuZ2UgbW9kZSwgd2hlbiBzdGFydCBkYXRlIGlzIHNlbGVjdGVkIG9uIERheSBWaWV3LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmFuZ2VIb3ZlckVmZmVjdCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIGRhdGUgcGlja2VyIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXNlVmFsaWRhdGlvbiA9IHRydWU7XG5cbiAgICAvKiogRW5hYmxlcyBUb2RheS1TZWxlY3Rpb24tQnV0dG9uIGlmIHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb2RheUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIExhYmVsIGZvciBUb2RheS1TZWxlY3Rpb24tQnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICB0b2RheUJ1dHRvbkxhYmVsID0gJ1RvZGF5JztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInIGluIGNhbGVuZGFyIGNvbXBvbmVudCovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKiBEZWZpbmVzIGlmIGRhdGUgcGlja2VyIHNob3VsZCBiZSBjbG9zZWQgYWZ0ZXIgZGF0ZSBjaG9vc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25EYXRlQ2hvb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0ZShzdGF0ZTogRm9ybVN0YXRlcykge1xuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cbiAgICBnZXQgc3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIGlmICh0aGlzLmZkRGF0ZVBpY2tlckNvbXBvbmVudD8uX2lzSW52YWxpZERhdGVJbnB1dCB8fCAhdGhpcy5fZGF0ZVBpY2tlclZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5zdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIEFkZE9uIEJ1dHRvbiBzaG91bGQgYmUgZm9jdXNhYmxlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uRm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9faXRlbS0tbGVnZW5kLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRmREYXRlIG9iamVjdCBhcyBhIHBhcmFtZXRlci4gZXg6XG4gICAgICogYHJ1bGU6IChmZERhdGU6IEZkRGF0ZSkgPT4gZmREYXRlLmdldERheSgpID09PSAxYCwgd2hpY2ggd2lsbCBtYXJrIGFsbCBzdW5kYXlzIGFzIHNwZWNpYWwgZGF5LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3BlY2lhbERheXNSdWxlczogU3BlY2lhbERheVJ1bGU8RD5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IHRvIGN1c3RvbWl6ZSB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgeWVhckdyaWQ6IENhbGVuZGFyWWVhckdyaWQgPSB7XG4gICAgICAgIHJvd3M6IDQsXG4gICAgICAgIGNvbHM6IDUsXG4gICAgICAgIHllYXJNYXBwaW5nOiAobnVtOiBudW1iZXIpID0+IG51bS50b1N0cmluZygpXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgYWdncmVnYXRlZCB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWdncmVnYXRlZFllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiAzLFxuICAgICAgICB5ZWFyTWFwcGluZzogKG51bTogbnVtYmVyKSA9PiBudW0udG9TdHJpbmcoKVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIHNob3cgd2VlayBudW1iZXJzIG5leHQgdG8gZGF5c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1dlZWtOdW1iZXJzID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkYXRlIHBpY2tlciBpcyBvcGVuLiBDYW4gYmUgdXNlZCB0aHJvdWdoIHR3by13YXkgYmluZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFNob3VsZCBkYXRlIHBpY2tlciBiZSBpbmxpbmVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gcmVjYWxjdWxhdGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgYXMgdXNlciB0eXBlcyBvciBvbiBibHVyLlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwZGF0ZXMgdGhlIHZhbHVlIGFzIHVzZXIgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnB1dE9uQmx1ciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBwcmV2ZW50IHBhZ2Ugc2Nyb2xsaW5nIHdoZW4gZm9jdXNpbmcgZGF0ZSBwaWNrZXIgaW5wdXQgZmllbGQgYWZ0ZXIgY2FsZW5kYXIgaGFzIGJlZW4gY2xvc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFNjcm9sbE9uRm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGRhdGUgcGlja2VyIHNob3VsZCByZW5kZXJlZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1vYmlsZSBtb2RlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWc7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBpc09wZW4gcHJvcGVydHkgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRmlyZWQgd2hlbiBhIG5ldyBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnVsbGFibGU8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZmlyc3Qgb3IgbGFzdCBkYXRlIGluIHJhbmdlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlUmFuZ2U8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgY2FsZW5kYXIgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBjb3JlIGRhdGUtcGlja2VyIGFzIGNoaWxkXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChGZERhdGVQaWNrZXJDb21wb25lbnQpXG4gICAgZmREYXRlUGlja2VyQ29tcG9uZW50OiBGZERhdGVQaWNrZXJDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RhdGVQaWNrZXJWYWxpZCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RhdGVUaW1lQWRhcHRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RBVEVfVElNRV9GT1JNQVRTJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlRnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2Ugc3RhcnQgc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2UgZW5kIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbjogKHZhbHVlOiBEKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IEQgfCBEYXRlUmFuZ2U8RD4gfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsaWRhdGVzIGRhdGUgb24gZGF0ZSBjaGFuZ2UuXG4gICAgICogQHBhcmFtIHZhbHVlIEQgfCBEYXRlUmFuZ2U8RD5cbiAgICAgKi9cbiAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbHVlOiBEIHwgRGF0ZVJhbmdlPEQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnc2luZ2xlJyAmJiAhdGhpcy52YWx1ZSAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGVQaWNrZXJWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3JhbmdlJyAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVSYW5nZSA9IHRoaXMudmFsdWUgYXMgRGF0ZVJhbmdlPEQ+O1xuICAgICAgICAgICAgdGhpcy5fZGF0ZVBpY2tlclZhbGlkID0gISFkYXRlUmFuZ2Uuc3RhcnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRlUGlja2VyVmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZGF0ZSBwaWNrZXI6IGhhbmRsZURhdGVJbnB1dENoYW5nZScpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkRGF0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZXMgY2hhbmdlcyB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICAgKi9cbiAgICBoYW5kbGVPcGVuQ2hhbmdlID0gKG9wZW46IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVTZWxlY3RlZERhdGVDaGFuZ2UgPSAoZmREYXRlOiBOdWxsYWJsZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGZkRGF0ZSk7XG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlU2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UgPSAoZmRSYW5nZURhdGU6IERhdGVSYW5nZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlLmVtaXQoZmRSYW5nZURhdGUpO1xuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UgPSAoZmRDYWxlbmRhclZpZXc6IEZkQ2FsZW5kYXJWaWV3KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGZkQ2FsZW5kYXJWaWV3KTtcbiAgICB9O1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvcihwcm92aWRlcjogc3RyaW5nKTogRXJyb3Ige1xuICAgIHJldHVybiBFcnJvcihcbiAgICAgICAgYEZkcERhdGVQaWNrZXI6IE5vIHByb3ZpZGVyIGZvdW5kIGZvciAke3Byb3ZpZGVyfS4gWW91IG11c3QgaW1wb3J0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGAgK1xuICAgICAgICAgICAgYG1vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBGZERhdGVNb2R1bGUsIG9yIHByb3ZpZGUgYSBgICtcbiAgICAgICAgICAgIGBjdXN0b20gaW1wbGVtZW50YXRpb24uYFxuICAgICk7XG59XG4iLCI8ZmQtZGF0ZS1waWNrZXJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgW3Nob3dUb2RheUJ1dHRvbl09XCJzaG93VG9kYXlCdXR0b25cIlxuICAgIFt0b2RheUJ1dHRvbkxhYmVsXT1cInRvZGF5QnV0dG9uTGFiZWxcIlxuICAgIFtzZWxlY3RlZFJhbmdlRGF0ZV09XCJzZWxlY3RlZFJhbmdlRGF0ZVwiXG4gICAgW3N0YXJ0aW5nRGF5T2ZXZWVrXT1cInN0YXJ0aW5nRGF5T2ZXZWVrXCJcbiAgICBbcmFuZ2VIb3ZlckVmZmVjdF09XCJyYW5nZUhvdmVyRWZmZWN0XCJcbiAgICBbdXNlVmFsaWRhdGlvbl09XCJ1c2VWYWxpZGF0aW9uXCJcbiAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW2FjdGl2ZVZpZXddPVwiYWN0aXZlVmlld1wiXG4gICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbY2xvc2VPbkRhdGVDaG9vc2VdPVwiY2xvc2VPbkRhdGVDaG9vc2VcIlxuICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICBbeWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFthZ2dyZWdhdGVkWWVhckdyaWRdPVwiYWdncmVnYXRlZFllYXJHcmlkXCJcbiAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgW3Nob3dXZWVrTnVtYmVyc109XCJzaG93V2Vla051bWJlcnNcIlxuICAgIFtpc09wZW5dPVwiaXNPcGVuXCJcbiAgICBbZGlzYWJsZUZ1bmN0aW9uXT1cImRpc2FibGVGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb25dPVwiZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXCJcbiAgICBbaW5saW5lXT1cImlubGluZVwiXG4gICAgW3Byb2Nlc3NJbnB1dE9uQmx1cl09XCJwcm9jZXNzSW5wdXRPbkJsdXJcIlxuICAgIFtwcmV2ZW50U2Nyb2xsT25Gb2N1c109XCJwcmV2ZW50U2Nyb2xsT25Gb2N1c1wiXG4gICAgW21vYmlsZV09XCJtb2JpbGVcIlxuICAgIFttb2JpbGVDb25maWddPVwibW9iaWxlQ29uZmlnXCJcbiAgICBbbW9iaWxlTGFuZHNjYXBlXT1cIm1vYmlsZUxhbmRzY2FwZVwiXG4gICAgW21vYmlsZVBvcnRyYWl0XT1cIm1vYmlsZVBvcnRyYWl0XCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0ZWREYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2ZkLWRhdGUtcGlja2VyPlxuIl19
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBRTlGLE9BQU8sRUFBa0MsU0FBUyxFQUE4QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQW1CLE1BQU0sZ0NBQWdDLENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRzFHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUV4RTs7Ozs7Ozs7OztHQVVHO0FBY0gsTUFBTSxPQUFPLDJCQUErQixTQUFRLFNBQVM7SUFDekQ7O09BRUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUF1QjtRQUM3QixLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBNkREOzs7T0FHRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWlCO1FBQ3ZCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzRSxPQUFPLE9BQU8sQ0FBQztTQUNsQjtRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBb0hELGNBQWM7SUFDZCxZQUNjLGtCQUFxQyxFQUMvQyxVQUFzQixFQUNLLFNBQW9CLEVBQ3ZCLGdCQUFrQyxFQUMvQixNQUFjLEVBQ2MsU0FBNEIsRUFDcEIsV0FBcUMsRUFDaEYsZ0JBQW9DLEVBQ1QsZ0JBQWlDO1FBRWhGLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFWekYsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUVwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRXBCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUNULHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUF2TXBGLDZDQUE2QztRQUM3QyxnR0FBZ0c7UUFFaEcsU0FBSSxHQUFpQixRQUFRLENBQUM7UUFNOUIsd0VBQXdFO1FBRXhFLHNCQUFpQixHQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1FBTTdEOzs7V0FHRztRQUVILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixpREFBaUQ7UUFFakQsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsNkNBQTZDO1FBRTdDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLHVDQUF1QztRQUV2QyxxQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFFM0IsZ0RBQWdEO1FBRWhELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakIsc0ZBQXNGO1FBRXRGLGVBQVUsR0FBbUIsS0FBSyxDQUFDO1FBRW5DOzs7V0FHRztRQUVILGNBQVMsR0FBYyxjQUFjLENBQUM7UUFNdEMsZ0VBQWdFO1FBRWhFLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQWtCekI7OztXQUdHO1FBRUgsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkI7Ozs7OztXQU1HO1FBRUgscUJBQWdCLEdBQXdCLEVBQUUsQ0FBQztRQUUzQzs7O1dBR0c7UUFFSCxhQUFRLEdBQXFCO1lBQ3pCLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLENBQUM7WUFDUCxXQUFXLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7U0FDL0MsQ0FBQztRQUVGOzs7V0FHRztRQUVILHVCQUFrQixHQUFxQjtZQUNuQyxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1lBQ1AsV0FBVyxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO1NBQy9DLENBQUM7UUFFRjs7V0FFRztRQUVILGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXBCOztXQUVHO1FBRUgsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsNEVBQTRFO1FBRTVFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixxQ0FBcUM7UUFFckMsV0FBTSxHQUFHLElBQUksQ0FBQztRQUVkOzs7O1dBSUc7UUFFSCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFM0I7O1dBRUc7UUFFSCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFFN0IsMERBQTBEO1FBRTFELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFNZix3R0FBd0c7UUFFeEcsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsOERBQThEO1FBRTlELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLG1FQUFtRTtRQUUxRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFcEQseUNBQXlDO1FBRWhDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFFOUQsbUZBQW1GO1FBRTFFLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRXBFLDhEQUE4RDtRQUVyRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQVEvRCxjQUFjO1FBQ04scUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBd0JoQzs7V0FFRztRQUVILG9CQUFlLEdBQTBCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUVyRDs7V0FFRztRQUdILDhCQUF5QixHQUEwQixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFFL0Q7O1dBRUc7UUFHSCw0QkFBdUIsR0FBMEIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBa0M3RDs7V0FFRztRQUNILHFCQUFnQixHQUFHLENBQUMsSUFBYSxFQUFRLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBRUYsY0FBYztRQUNkLDZCQUF3QixHQUFHLENBQUMsTUFBbUIsRUFBUSxFQUFFO1lBQ3JELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDO1FBRUYsY0FBYztRQUNkLGtDQUE2QixHQUFHLENBQUMsV0FBeUIsRUFBUSxFQUFFO1lBQ2hFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDO1FBRUYsY0FBYztRQUNkLDJCQUFzQixHQUFHLENBQUMsY0FBOEIsRUFBUSxFQUFFO1lBQzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDO1FBaEZFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDeEIsTUFBTSxvQ0FBb0MsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixNQUFNLG9DQUFvQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDbkU7SUFDTCxDQUFDO0lBc0JELGNBQWM7SUFDZCxVQUFVLENBQUMsS0FBOEI7UUFDckMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEtBQXVCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMxRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQXFCLENBQUM7WUFDN0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1NBQzdDO2FBQU07WUFDSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUU3RCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEQ7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQzlCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM5RDtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzhHQWpSUSwyQkFBMkIsb1BBZ05RLGFBQWEseURBQ2IscUJBQXFCLHdHQUV6QyxpQkFBaUI7a0dBbk5oQywyQkFBMkIsMnlDQVB6QixDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsaUZBME0zRixxQkFBcUIsdUVDdlBwQywwMERBZ0RBLDRDREVjLG1CQUFtQiw0MUJBQUUsV0FBVzs7MkZBRWpDLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDSSxpQkFBaUIsaUJBRVosaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsNkJBQTZCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLFFBQ2hHO3dCQUNGLFFBQVEsRUFBRSxhQUFhO3FCQUMxQixjQUNXLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQzs7MEJBK010QyxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNwRCxRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVELFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCO3lDQTlNckMsS0FBSztzQkFEUixLQUFLO2dCQVdOLElBQUk7c0JBREgsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFRTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBUU4sU0FBUztzQkFEUixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBUUYsS0FBSztzQkFEUixLQUFLO2dCQWlCTixlQUFlO3NCQURkLEtBQUs7Z0JBV04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxLQUFLO2dCQVlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFXTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBU04sa0JBQWtCO3NCQURqQixLQUFLO2dCQU9OLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFEcEIsTUFBTTtnQkFLRSxrQkFBa0I7c0JBRDFCLE1BQU07Z0JBS0UsdUJBQXVCO3NCQUQvQixNQUFNO2dCQUtFLGdCQUFnQjtzQkFEeEIsTUFBTTtnQkFPUCxxQkFBcUI7c0JBRHBCLFNBQVM7dUJBQUMscUJBQXFCO2dCQWdDaEMsZUFBZTtzQkFEZCxLQUFLOztRQU9OLDZEQUE2RDtRQUM3RCx5QkFBeUI7c0JBRnhCLEtBQUs7O1FBUU4sNkRBQTZEO1FBQzdELHVCQUF1QjtzQkFGdEIsS0FBSzs7QUEyRFYsY0FBYztBQUNkLE1BQU0sVUFBVSxvQ0FBb0MsQ0FBQyxRQUFnQjtJQUNqRSxPQUFPLEtBQUssQ0FDUix3Q0FBd0MsUUFBUSx5Q0FBeUM7UUFDckYsK0RBQStEO1FBQy9ELHdCQUF3QixDQUMvQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgTmdGb3JtLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJUeXBlLCBDYWxlbmRhclllYXJHcmlkLCBEYXRlUmFuZ2UsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NhbGVuZGFyJztcbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IGFzIEZkRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBQbGFjZW1lbnQsIFNwZWNpYWxEYXlSdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE1vYmlsZU1vZGVDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbW9iaWxlLW1vZGUnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRlLXBpY2tlcic7XG5cbi8qKlxuICogVGhlIFBsYXRmb3JtIGRhdGUgcGlja2VyIGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIGZkLWRhdGUtcGlja2VyIHVzaW5nIHBsYXRmb3JtIGZvcm0uXG4gKiBJdCBpcyBhYmxlIHRvIHByb3ZpZGUgZm9ybSBmaWVsZCBmdW5jdGlvbmFsaXRpZXMgYXMgd2VsbCBhbG9uZyB3aXRoIGZkLWRhdGUtcGlja2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiA8ZmRwLWZvcm0tZ3JvdXAgI2ZmZyBbZm9ybUdyb3VwXT1cImRhdGVQaWNrZXJGb3JtXCI+XG4gKiAgICAgIDxmZHAtZm9ybS1maWVsZCAjZmZsMSBpZD1cImJpcnRoZGF5XCI+XG4gKiAgICAgICAgICA8ZmRwLWRhdGUtcGlja2VyIG5hbWU9XCJiaXJ0aGRheVwiIHR5cGU9XCJzaW5nbGVcIiBbZm9ybUNvbnRyb2xdPVwiZmZsMS5mb3JtQ29udHJvbFwiPjwvZmRwLWRhdGUtcGlja2VyPlxuICogICAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICogPC9mZHAtZm9ybS1ncm91cD5cbiAqXG4gKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCwgdXNlRXhpc3Rpbmc6IFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRGF0ZVBpY2tlckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtRGF0ZVBpY2tlckNvbXBvbmVudDxEPiBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgLyoqXG4gICAgICogZGF0ZS1waWNrZXIgdmFsdWUgc2V0IGFzIGNvbnRyb2xsZXIgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVJhbmdlPEQ+IHwgRCkge1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBEYXRlUmFuZ2U8RD4gfCBEIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIGJlbG93IGNvZGUgdGFrZW4gZnJvbSBjb3JlL2RhdGUtcGlja2VyICovXG4gICAgLyoqIFRoZSB0eXBlIG9mIGNhbGVuZGFyLCAnc2luZ2xlJyBmb3Igc2luZ2xlIGRhdGUgc2VsZWN0aW9uIG9yICdyYW5nZScgZm9yIGEgcmFuZ2Ugb2YgZGF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBDYWxlbmRhclR5cGUgPSAnc2luZ2xlJztcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIENhbGVuZGFyRGF5IG1vZGVsICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IEQ7XG5cbiAgICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBGZERhdGVzIG1vZGVsIHN0YXJ0IGFuZCBlbmQgaW4gcmFuZ2UgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkUmFuZ2VEYXRlOiBEYXRlUmFuZ2U8RD4gPSB7IHN0YXJ0OiBudWxsLCBlbmQ6IG51bGwgfTtcblxuICAgIC8qKiBUaGUgZGF5IG9mIHRoZSB3ZWVrIHRoZSBjYWxlbmRhciBzaG91bGQgc3RhcnQgb24uIDEgcmVwcmVzZW50cyBTdW5kYXksIDIgaXMgTW9uZGF5LCAzIGlzIFR1ZXNkYXksIGFuZCBzbyBvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXJ0aW5nRGF5T2ZXZWVrOiBEYXlzT2ZXZWVrO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgZGF5IGNlbGxzIG9uIGhvdmVyLlxuICAgICAqIFdvcmtzIG9ubHkgb24gcmFuZ2UgbW9kZSwgd2hlbiBzdGFydCBkYXRlIGlzIHNlbGVjdGVkIG9uIERheSBWaWV3LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmFuZ2VIb3ZlckVmZmVjdCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIGRhdGUgcGlja2VyIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXNlVmFsaWRhdGlvbiA9IHRydWU7XG5cbiAgICAvKiogRW5hYmxlcyBUb2RheS1TZWxlY3Rpb24tQnV0dG9uIGlmIHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb2RheUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIExhYmVsIGZvciBUb2RheS1TZWxlY3Rpb24tQnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICB0b2RheUJ1dHRvbkxhYmVsID0gJ1RvZGF5JztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInIGluIGNhbGVuZGFyIGNvbXBvbmVudCovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKiBEZWZpbmVzIGlmIGRhdGUgcGlja2VyIHNob3VsZCBiZSBjbG9zZWQgYWZ0ZXIgZGF0ZSBjaG9vc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25EYXRlQ2hvb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0ZShzdGF0ZTogRm9ybVN0YXRlcykge1xuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cbiAgICBnZXQgc3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIGlmICh0aGlzLmZkRGF0ZVBpY2tlckNvbXBvbmVudD8uX2lzSW52YWxpZERhdGVJbnB1dCB8fCAhdGhpcy5fZGF0ZVBpY2tlclZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5zdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIEFkZE9uIEJ1dHRvbiBzaG91bGQgYmUgZm9jdXNhYmxlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uRm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9faXRlbS0tbGVnZW5kLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRmREYXRlIG9iamVjdCBhcyBhIHBhcmFtZXRlci4gZXg6XG4gICAgICogYHJ1bGU6IChmZERhdGU6IEZkRGF0ZSkgPT4gZmREYXRlLmdldERheSgpID09PSAxYCwgd2hpY2ggd2lsbCBtYXJrIGFsbCBzdW5kYXlzIGFzIHNwZWNpYWwgZGF5LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3BlY2lhbERheXNSdWxlczogU3BlY2lhbERheVJ1bGU8RD5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IHRvIGN1c3RvbWl6ZSB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgeWVhckdyaWQ6IENhbGVuZGFyWWVhckdyaWQgPSB7XG4gICAgICAgIHJvd3M6IDQsXG4gICAgICAgIGNvbHM6IDUsXG4gICAgICAgIHllYXJNYXBwaW5nOiAobnVtOiBudW1iZXIpID0+IG51bS50b1N0cmluZygpXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgYWdncmVnYXRlZCB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWdncmVnYXRlZFllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiAzLFxuICAgICAgICB5ZWFyTWFwcGluZzogKG51bTogbnVtYmVyKSA9PiBudW0udG9TdHJpbmcoKVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIHNob3cgd2VlayBudW1iZXJzIG5leHQgdG8gZGF5c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1dlZWtOdW1iZXJzID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBkYXRlIHBpY2tlciBpcyBvcGVuLiBDYW4gYmUgdXNlZCB0aHJvdWdoIHR3by13YXkgYmluZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFNob3VsZCBkYXRlIHBpY2tlciBiZSBpbmxpbmVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gcmVjYWxjdWxhdGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgYXMgdXNlciB0eXBlcyBvciBvbiBibHVyLlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwZGF0ZXMgdGhlIHZhbHVlIGFzIHVzZXIgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnB1dE9uQmx1ciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBwcmV2ZW50IHBhZ2Ugc2Nyb2xsaW5nIHdoZW4gZm9jdXNpbmcgZGF0ZSBwaWNrZXIgaW5wdXQgZmllbGQgYWZ0ZXIgY2FsZW5kYXIgaGFzIGJlZW4gY2xvc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFNjcm9sbE9uRm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGRhdGUgcGlja2VyIHNob3VsZCByZW5kZXJlZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1vYmlsZSBtb2RlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWc7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBpc09wZW4gcHJvcGVydHkgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRmlyZWQgd2hlbiBhIG5ldyBkYXRlIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnVsbGFibGU8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZmlyc3Qgb3IgbGFzdCBkYXRlIGluIHJhbmdlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlUmFuZ2U8RD4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgY2FsZW5kYXIgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBjb3JlIGRhdGUtcGlja2VyIGFzIGNoaWxkXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChGZERhdGVQaWNrZXJDb21wb25lbnQpXG4gICAgZmREYXRlUGlja2VyQ29tcG9uZW50OiBGZERhdGVQaWNrZXJDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RhdGVQaWNrZXJWYWxpZCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RhdGVUaW1lQWRhcHRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RBVEVfVElNRV9GT1JNQVRTJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlRnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2Ugc3RhcnQgc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb246ICh2YWx1ZTogRCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2UgZW5kIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbjogKHZhbHVlOiBEKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IEQgfCBEYXRlUmFuZ2U8RD4gfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsaWRhdGVzIGRhdGUgb24gZGF0ZSBjaGFuZ2UuXG4gICAgICogQHBhcmFtIHZhbHVlIEQgfCBEYXRlUmFuZ2U8RD5cbiAgICAgKi9cbiAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbHVlOiBEIHwgRGF0ZVJhbmdlPEQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnc2luZ2xlJyAmJiAhdGhpcy52YWx1ZSAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGVQaWNrZXJWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3JhbmdlJyAmJiAhdGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVSYW5nZSA9IHRoaXMudmFsdWUgYXMgRGF0ZVJhbmdlPEQ+O1xuICAgICAgICAgICAgdGhpcy5fZGF0ZVBpY2tlclZhbGlkID0gISFkYXRlUmFuZ2Uuc3RhcnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRlUGlja2VyVmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZGF0ZSBwaWNrZXI6IGhhbmRsZURhdGVJbnB1dENoYW5nZScpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkRGF0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZXMgY2hhbmdlcyB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICAgKi9cbiAgICBoYW5kbGVPcGVuQ2hhbmdlID0gKG9wZW46IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYW5kbGVTZWxlY3RlZERhdGVDaGFuZ2UgPSAoZmREYXRlOiBOdWxsYWJsZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGZkRGF0ZSk7XG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlU2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UgPSAoZmRSYW5nZURhdGU6IERhdGVSYW5nZTxEPik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlLmVtaXQoZmRSYW5nZURhdGUpO1xuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UgPSAoZmRDYWxlbmRhclZpZXc6IEZkQ2FsZW5kYXJWaWV3KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGZkQ2FsZW5kYXJWaWV3KTtcbiAgICB9O1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvcihwcm92aWRlcjogc3RyaW5nKTogRXJyb3Ige1xuICAgIHJldHVybiBFcnJvcihcbiAgICAgICAgYEZkcERhdGVQaWNrZXI6IE5vIHByb3ZpZGVyIGZvdW5kIGZvciAke3Byb3ZpZGVyfS4gWW91IG11c3QgaW1wb3J0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGAgK1xuICAgICAgICAgICAgYG1vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBGZERhdGVNb2R1bGUsIG9yIHByb3ZpZGUgYSBgICtcbiAgICAgICAgICAgIGBjdXN0b20gaW1wbGVtZW50YXRpb24uYFxuICAgICk7XG59XG4iLCI8ZmQtZGF0ZS1waWNrZXJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgW3Nob3dUb2RheUJ1dHRvbl09XCJzaG93VG9kYXlCdXR0b25cIlxuICAgIFt0b2RheUJ1dHRvbkxhYmVsXT1cInRvZGF5QnV0dG9uTGFiZWxcIlxuICAgIFtzZWxlY3RlZFJhbmdlRGF0ZV09XCJzZWxlY3RlZFJhbmdlRGF0ZVwiXG4gICAgW3N0YXJ0aW5nRGF5T2ZXZWVrXT1cInN0YXJ0aW5nRGF5T2ZXZWVrXCJcbiAgICBbcmFuZ2VIb3ZlckVmZmVjdF09XCJyYW5nZUhvdmVyRWZmZWN0XCJcbiAgICBbdXNlVmFsaWRhdGlvbl09XCJ1c2VWYWxpZGF0aW9uXCJcbiAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW2FjdGl2ZVZpZXddPVwiYWN0aXZlVmlld1wiXG4gICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbY2xvc2VPbkRhdGVDaG9vc2VdPVwiY2xvc2VPbkRhdGVDaG9vc2VcIlxuICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICBbeWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFthZ2dyZWdhdGVkWWVhckdyaWRdPVwiYWdncmVnYXRlZFllYXJHcmlkXCJcbiAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgW3Nob3dXZWVrTnVtYmVyc109XCJzaG93V2Vla051bWJlcnNcIlxuICAgIFtpc09wZW5dPVwiaXNPcGVuXCJcbiAgICBbZGlzYWJsZUZ1bmN0aW9uXT1cImRpc2FibGVGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb25dPVwiZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvblwiXG4gICAgW2Rpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXCJcbiAgICBbaW5saW5lXT1cImlubGluZVwiXG4gICAgW3Byb2Nlc3NJbnB1dE9uQmx1cl09XCJwcm9jZXNzSW5wdXRPbkJsdXJcIlxuICAgIFtwcmV2ZW50U2Nyb2xsT25Gb2N1c109XCJwcmV2ZW50U2Nyb2xsT25Gb2N1c1wiXG4gICAgW21vYmlsZV09XCJtb2JpbGVcIlxuICAgIFttb2JpbGVDb25maWddPVwibW9iaWxlQ29uZmlnXCJcbiAgICBbbW9iaWxlTGFuZHNjYXBlXT1cIm1vYmlsZUxhbmRzY2FwZVwiXG4gICAgW21vYmlsZVBvcnRyYWl0XT1cIm1vYmlsZVBvcnRyYWl0XCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0ZWREYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIChzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2ZkLWRhdGUtcGlja2VyPlxuIl19
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { PlatformDatePickerComponent } from './date-picker.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class PlatformDatePickerModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatePickerModule, imports: [PlatformDatePickerComponent], exports: [PlatformDatePickerComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatePickerModule, imports: [PlatformDatePickerComponent] }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatePickerModule, imports: [PlatformDatePickerComponent], exports: [PlatformDatePickerComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatePickerModule, imports: [PlatformDatePickerComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatePickerModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatePickerModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [PlatformDatePickerComponent],
@@ -221,13 +221,13 @@ export class PlatformDatetimePickerComponent extends BaseInput {
221
221
  }
222
222
  customPopoverEl.style.display = 'inline';
223
223
  }
224
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatetimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, self: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }, { token: i2.DatetimeAdapter, optional: true }, { token: DATE_TIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
225
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: PlatformDatetimePickerComponent, isStandalone: true, selector: "fdp-datetime-picker", inputs: { value: "value", placement: "placement", appendTo: "appendTo", meridian: "meridian", displaySeconds: "displaySeconds", displayMinutes: "displayMinutes", displayHours: "displayHours", useValidation: "useValidation", isOpen: "isOpen", startingDayOfWeek: "startingDayOfWeek", activeView: "activeView", allowNull: "allowNull", keepTwoDigitsTime: "keepTwoDigitsTime", state: "state", buttonFocusable: "buttonFocusable", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", markWeekends: "markWeekends", spinnerButtons: "spinnerButtons", showWeekNumbers: "showWeekNumbers", showFooter: "showFooter", processInputOnBlur: "processInputOnBlur", preventScrollOnFocus: "preventScrollOnFocus", mobile: "mobile", mobileConfig: "mobileConfig", mobileLandscape: "mobileLandscape", mobilePortrait: "mobilePortrait", disableFunction: "disableFunction" }, outputs: { isOpenChange: "isOpenChange", activeViewChange: "activeViewChange", datetimeChange: "datetimeChange", onClose: "onClose" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformDatetimePickerComponent, multi: true }], viewQueries: [{ propertyName: "dateTimePickerComponent", first: true, predicate: DatetimePickerComponent, descendants: true }, { propertyName: "_elRef", first: true, predicate: DatetimePickerComponent, descendants: true, read: ElementRef, static: true }, { propertyName: "_control", first: true, predicate: DatetimePickerComponent, descendants: true, read: NgControl, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-datetime-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"_isRequired\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [useValidation]=\"useValidation\"\n [isOpen]=\"isOpen\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [activeView]=\"activeView\"\n [allowNull]=\"allowNull && !_isRequired\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [specialDaysRules]=\"specialDaysRules\"\n [yearGrid]=\"yearGrid\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [markWeekends]=\"markWeekends\"\n [spinnerButtons]=\"spinnerButtons\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [showFooter]=\"showFooter\"\n [disableFunction]=\"disableFunction\"\n [processInputOnBlur]=\"processInputOnBlur\"\n [preventScrollOnFocus]=\"preventScrollOnFocus\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [mobileLandscape]=\"mobileLandscape\"\n [mobilePortrait]=\"mobilePortrait\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"handleDatetimeInputChange($event)\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (touched)=\"onTouched()\"\n>\n <ng-content></ng-content>\n</fd-datetime-picker>\n", dependencies: [{ kind: "component", type: DatetimePickerComponent, selector: "fd-datetime-picker", inputs: ["placeholder", "placement", "appendTo", "disabled", "inputId", "required", "meridian", "displaySeconds", "ariaLabelledBy", "message", "messageTriggers", "displayMinutes", "displayHours", "useValidation", "date", "isOpen", "startingDayOfWeek", "activeView", "allowNull", "keepTwoDigitsTime", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "spinnerButtons", "showWeekNumbers", "showFooter", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction"], outputs: ["isOpenChange", "activeViewChange", "dateChange", "calendarChange", "timeChange", "onClose", "touched"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
224
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatetimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, self: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }, { token: i2.DatetimeAdapter, optional: true }, { token: DATE_TIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: PlatformDatetimePickerComponent, isStandalone: true, selector: "fdp-datetime-picker", inputs: { value: "value", placement: "placement", appendTo: "appendTo", meridian: "meridian", displaySeconds: "displaySeconds", displayMinutes: "displayMinutes", displayHours: "displayHours", useValidation: "useValidation", isOpen: "isOpen", startingDayOfWeek: "startingDayOfWeek", activeView: "activeView", allowNull: "allowNull", keepTwoDigitsTime: "keepTwoDigitsTime", state: "state", buttonFocusable: "buttonFocusable", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", markWeekends: "markWeekends", spinnerButtons: "spinnerButtons", showWeekNumbers: "showWeekNumbers", showFooter: "showFooter", processInputOnBlur: "processInputOnBlur", preventScrollOnFocus: "preventScrollOnFocus", mobile: "mobile", mobileConfig: "mobileConfig", mobileLandscape: "mobileLandscape", mobilePortrait: "mobilePortrait", disableFunction: "disableFunction" }, outputs: { isOpenChange: "isOpenChange", activeViewChange: "activeViewChange", datetimeChange: "datetimeChange", onClose: "onClose" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformDatetimePickerComponent, multi: true }], viewQueries: [{ propertyName: "dateTimePickerComponent", first: true, predicate: DatetimePickerComponent, descendants: true }, { propertyName: "_elRef", first: true, predicate: DatetimePickerComponent, descendants: true, read: ElementRef, static: true }, { propertyName: "_control", first: true, predicate: DatetimePickerComponent, descendants: true, read: NgControl, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-datetime-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"_isRequired\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [useValidation]=\"useValidation\"\n [isOpen]=\"isOpen\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [activeView]=\"activeView\"\n [allowNull]=\"allowNull && !_isRequired\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [specialDaysRules]=\"specialDaysRules\"\n [yearGrid]=\"yearGrid\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [markWeekends]=\"markWeekends\"\n [spinnerButtons]=\"spinnerButtons\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [showFooter]=\"showFooter\"\n [disableFunction]=\"disableFunction\"\n [processInputOnBlur]=\"processInputOnBlur\"\n [preventScrollOnFocus]=\"preventScrollOnFocus\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [mobileLandscape]=\"mobileLandscape\"\n [mobilePortrait]=\"mobilePortrait\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"handleDatetimeInputChange($event)\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (touched)=\"onTouched()\"\n>\n <ng-content></ng-content>\n</fd-datetime-picker>\n", dependencies: [{ kind: "component", type: DatetimePickerComponent, selector: "fd-datetime-picker", inputs: ["placeholder", "placement", "appendTo", "disabled", "inputId", "required", "meridian", "displaySeconds", "ariaLabelledBy", "message", "messageTriggers", "displayMinutes", "displayHours", "useValidation", "date", "isOpen", "startingDayOfWeek", "activeView", "allowNull", "keepTwoDigitsTime", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "spinnerButtons", "showWeekNumbers", "showFooter", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction"], outputs: ["isOpenChange", "activeViewChange", "dateChange", "calendarChange", "timeChange", "onClose", "touched"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
226
226
  }
227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatetimePickerComponent, decorators: [{
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatetimePickerComponent, decorators: [{
228
228
  type: Component,
229
229
  args: [{ selector: 'fdp-datetime-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformDatetimePickerComponent, multi: true }], standalone: true, imports: [DatetimePickerComponent, FormsModule], template: "<fd-datetime-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"_isRequired\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [useValidation]=\"useValidation\"\n [isOpen]=\"isOpen\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [activeView]=\"activeView\"\n [allowNull]=\"allowNull && !_isRequired\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [specialDaysRules]=\"specialDaysRules\"\n [yearGrid]=\"yearGrid\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [markWeekends]=\"markWeekends\"\n [spinnerButtons]=\"spinnerButtons\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [showFooter]=\"showFooter\"\n [disableFunction]=\"disableFunction\"\n [processInputOnBlur]=\"processInputOnBlur\"\n [preventScrollOnFocus]=\"preventScrollOnFocus\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [mobileLandscape]=\"mobileLandscape\"\n [mobilePortrait]=\"mobilePortrait\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"handleDatetimeInputChange($event)\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (touched)=\"onTouched()\"\n>\n <ng-content></ng-content>\n</fd-datetime-picker>\n" }]
230
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
230
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
231
231
  type: Optional
232
232
  }, {
233
233
  type: Self
@@ -264,7 +264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
264
264
  }, {
265
265
  type: Inject,
266
266
  args: [DATE_TIME_FORMATS]
267
- }] }]; }, propDecorators: { value: [{
267
+ }] }], propDecorators: { value: [{
268
268
  type: Input
269
269
  }], placement: [{
270
270
  type: Input
@@ -340,4 +340,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
340
340
  }], disableFunction: [{
341
341
  type: Input
342
342
  }] } });
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUc5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFtQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBV2hFLE1BQU0sT0FBTywrQkFBbUMsU0FBUSxTQUFTO0lBQzdEOztPQUVHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBUTtRQUNkLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxD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ZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0NvbnRyb2wsIE5nRm9ybSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmltcG9ydCB7IENhbGVuZGFyWWVhckdyaWQsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NhbGVuZGFyJztcbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBEYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZS1waWNrZXInO1xuaW1wb3J0IHsgUGxhY2VtZW50LCBTcGVjaWFsRGF5UnVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIFBsYXRmb3JtRm9ybUZpZWxkIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWRhdGV0aW1lLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBQbGF0Zm9ybURhdGV0aW1lUGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtEYXRldGltZVBpY2tlckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQ8RD4gZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiB2YWx1ZSBmb3IgZGF0ZXRpbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRCkge1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRpbWUgY29tcG9uZW50IHNob3VsZCBiZSBtZXJpZGlhbiAoYW0vcG0pLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVyaWRpYW46IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0aW1lIGNvbXBvbmVudCBzaG93cyBzZWNvbmRzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheVNlY29uZHM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0aW1lIGNvbXBvbmVudCBzaG93cyBtaW51dGVzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheU1pbnV0ZXM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0aW1lIGNvbXBvbmVudCBzaG93cyBob3Vycy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlIb3VyczogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHBlcmZvcm0gdmlzdWFsIHZhbGlkYXRpb24gb24gdGhlIHBpY2tlciBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVzZVZhbGlkYXRpb24gPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaXMgb3Blbi4gVHdvLXdheSBiaW5kaW5nIGlzIHN1cHBvcnRlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFRoZSBzdGFydGluZyBkYXkgb2Ygd2VlayBmb3IgdGhlIGNhbGVuZGFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogQWN0dWFsbHkgc2hvd24gYWN0aXZlIHZpZXcgb25lIG9mICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyBpbiBjYWxlbmRhciBjb21wb25lbnQqL1xuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZlVmlldzogRmRDYWxlbmRhclZpZXcgPSAnZGF5JztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCB3aGVuIHNldCB0byB0cnVlIHRpbWUgY29tcG9uZW50IHdpbGwgdXNlIDIgZGlnaXRzIGZvciBlYWNoIG51bWJlci5cbiAgICAgKiBGb3IgZXhhbXBsZSA5IHdpbGwgYmVjb21lIDA5XG4gICAgICogYnV0IDEyIHdpbGwgYmUga2VwdCBhcyAxMi5cbiAgICAgKiBPbmx5IHVzZXMgYnkgdGltZSBjb21wb25lbnQgYW5kIGRvZXMgbm90IGNoYW5nZSBpbnB1dCBmb3JtYXRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBrZWVwVHdvRGlnaXRzVGltZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiAgQ2FuIGJlIGBzdWNjZXNzYCwgYGVycm9yYCwgYHdhcm5pbmdgLCBgaW5mb3JtYXRpb25gIG9yIGJsYW5rIGZvciBkZWZhdWx0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHN1cGVyLnN0YXRlID0gc3RhdGU7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5kYXRlVGltZVBpY2tlckNvbXBvbmVudD8uaXNJbnZhbGlkRGF0ZUlucHV0KSB7XG4gICAgICAgICAgICAvLyBpZiBhbnkgb3RoZXIgZXJyb3IgZnJvbSBjb3JlIGR0cFxuICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1cGVyLnN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25Gb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lhbCBkYXlzIG1hcmssIGl0IGNhbiBiZSB1c2VkIGJ5IHBhc3NpbmcgYXJyYXkgb2Ygb2JqZWN0IHdpdGhcbiAgICAgKiBTcGVjaWFsIGRheSBudW1iZXIsIGxpc3QgMS0yMCBbY2xhc3M6YGZkLWNhbGVuZGFyX19pdGVtLS1sZWdlbmQte3tudW1iZXJ9fWBdIGlzIGF2YWlsYWJsZSB0aGVyZTpcbiAgICAgKiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtc3R5bGVzL2NvbXBvbmVudHMvY2FsZW5kYXIuaHRtbCBjYWxlbmRhciBzcGVjaWFsIGRheXMgc2VjdGlvblxuICAgICAqIFJ1bGUgYWNjZXB0cyBtZXRob2Qgd2l0aCBGZERhdGUgb2JqZWN0IGFzIGEgcGFyYW1ldGVyLiBleDpcbiAgICAgKiBgcnVsZTogKGZkRGF0ZTogRmREYXRlKSA9PiBmZERhdGUuZ2V0RGF5KCkgPT09IDFgLCB3aGljaCB3aWxsIG1hcmsgYWxsIHN1bmRheXMgYXMgc3BlY2lhbCBkYXkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzcGVjaWFsRGF5c1J1bGVzOiBTcGVjaWFsRGF5UnVsZTxEPltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIHllYXIgZ3JpZCxcbiAgICAgKiBSb3csIENvbHVtbnMgYW5kIG1ldGhvZCB0byBkaXNwbGF5IHllYXIgY2FuIGJlIG1vZGlmaWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogNVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIGFnZ3JlZ2F0ZWQgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFnZ3JlZ2F0ZWRZZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogM1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqIEBJbnB1dCBXaGV0aGVyIHRvIHNob3cgc3Bpbm5lciBidXR0b25zICovXG4gICAgQElucHV0KClcbiAgICBzcGlubmVyQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gc2hvdyB3ZWVrIG51bWJlcnMgbmV4dCB0byBkYXlzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93V2Vla051bWJlcnMgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGRhdGV0aW1lIHBpY2tlciBmb290ZXIgd2l0aCBzdWJtaXQvY2FuY2VsIGJ1dHRvbnMuICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9vdGVyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gcmVjYWxjdWxhdGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgYXMgdXNlciB0eXBlcyBvciBvbiBibHVyLlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwZGF0ZXMgdGhlIHZhbHVlIGFzIHVzZXIgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnB1dE9uQmx1ciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBwcmV2ZW50IHBhZ2Ugc2Nyb2xsaW5nIHdoZW4gZm9jdXNpbmcgZGF0ZSBwaWNrZXIgaW5wdXQgZmllbGQgYWZ0ZXIgY2FsZW5kYXIgaGFzIGJlZW4gY2xvc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFNjcm9sbE9uRm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGRhdGUgcGlja2VyIHNob3VsZCByZW5kZXJlZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1vYmlsZSBtb2RlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWc7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBpc09wZW4gcHJvcGVydHkgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgY2FsZW5kYXIgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGZENhbGVuZGFyVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZGF0ZSBjaGFuZ2VzLiBUaGlzIGNhbiBiZSBhIHRpbWUgb3IgZGF5IGNoYW5nZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBkYXRldGltZUNoYW5nZTogRXZlbnRFbWl0dGVyPEQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBwb3BvdmVyIGNsb3Nlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQpXG4gICAgZGF0ZVRpbWVQaWNrZXJDb21wb25lbnQ6IERhdGV0aW1lUGlja2VyQ29tcG9uZW50PEQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKERhdGV0aW1lUGlja2VyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBfZWxSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBOZ0NvbnRyb2wgfSlcbiAgICBwcm90ZWN0ZWQgX2NvbnRyb2w6IE5nQ29udHJvbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZvcm1GaWVsZD8ucmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICAvLyBVc2UgaGVyZSBAT3B0aW9uYWwgdG8gYXZvaWQgYW5ndWxhciBpbmplY3Rpb24gZXJyb3IgbWVzc2FnZSBhbmQgdGhyb3cgb3VyIG93biB3aGljaCBpcyBtb3JlIHByZWNpc2Ugb25lXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfVElNRV9GT1JNQVRTKSBwcml2YXRlIF9kYXRlVGltZUZvcm1hdHM6IERhdGVUaW1lRm9ybWF0c1xuICAgICkge1xuICAgICAgICBzdXBlcihfY2QsIGVsZW1lbnRSZWYsIG5nQ29udHJvbCwgY29udHJvbENvbnRhaW5lciwgbmdGb3JtLCBmb3JtRmllbGQsIGZvcm1Db250cm9sKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lQWRhcHRlcikge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEYXRlVGltZUFkYXB0ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lRm9ybWF0cykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEQVRFX1RJTUVfRk9STUFUUycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZGVmYXVsdCBtb2RlbCB2YWx1ZVxuICAgICAgICB0aGlzLnZhbHVlID0gX2RhdGVUaW1lQWRhcHRlci5ub3coKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGZkRGF0ZSBGZERhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVGdW5jdGlvbjogKHZhbHVlOiBEKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBpZiB1c2VkIHdpdGggcGxhdGZvcm0gZm9ybXMsIGFkanVzdCB3aWR0aCBvZiBkYXRldGltZXBpY2tlciB0byB0YWtlIDEwMCUgY29udGFpbmVyIHNwYWNlXG4gICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5fYWRqdXN0UGlja2VyV2lkdGgoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIG92ZXJyaWRlIGJhc2UgZnVuY3Rpb25hbGl0eSB0byBjYXRjaCBuZXcgZGlzYWJsZWQgc3RhdGVcbiAgICAgKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQpO1xuICAgICAgICB0aGlzLmRhdGVUaW1lUGlja2VyQ29tcG9uZW50Py5zZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogbG9naWMgdG8gaGFuZGxlIHZhbGlkYXRpb24gZnJvbSBib3RoIHBsYXRmb3JtIGZvcm1zIGFuZCBjb3JlIGRhdGV0aWltZXBpY2tlclxuICAgICAqIEBwYXJhbSBkYXRldGltZSBpbnB1dHRlZFxuICAgICAqL1xuICAgIGhhbmRsZURhdGV0aW1lSW5wdXRDaGFuZ2UoZGF0ZXRpbWU6IEQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGVUaW1lUGlja2VyQ29tcG9uZW50Ll9pc0ludmFsaWREYXRlSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCAmJiB0aGlzLl9jb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuX2NvbnRyb2wuZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdlcnJvcic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5kYXRlVGltZVBpY2tlckNvbXBvbmVudC5faW5wdXRGaWVsZERhdGUgJiYgIXRoaXMuYWxsb3dOdWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnZXJyb3InOyAvLyBudWxsIHZhbHVlIGluIG5vdCBhbGxvd051bGwgc2hvdWxkIHRocm93IGVycm9yXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHVuZGVmaW5lZDsgLy8gcmVzZXR0aW5nIHRvIGRlZmF1bHQgc3RhdGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBvbmx5IHNldCB0aGUgdmFsdWUgaWYgaXQgaXMgYSB2YWxpZCBkYXRldGltZSBvYmplY3RcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGVUaW1lUGlja2VyQ29tcG9uZW50Ll9pbnB1dEZpZWxkRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRldGltZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZGF0ZXRpbWUgcGlja2VyOiBoYW5kbGVEYXRldGltZUlucHV0Q2hhbmdlJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGV0aW1lQ2hhbmdlLmVtaXQoZGF0ZXRpbWUpO1xuXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgaGFuZGxlcyBjaGFuZ2VzIHdoZW4gcG9wb3ZlciBpcyBvcGVuZWQgb3IgY2xvc2VkLlxuICAgICAqL1xuICAgIGhhbmRsZU9wZW5DaGFuZ2UgPSAob3BlbjogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgaGFuZGxlIGNhbGVuZGFyIGFjdGl2ZSB2aWV3IGNoYW5nZSBhbmQgdGhyb3dzIGV2ZW50LlxuICAgICAqL1xuICAgIGhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UgPSAoZmRDYWxlbmRhclZpZXc6IEZkQ2FsZW5kYXJWaWV3KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGZkQ2FsZW5kYXJWaWV3KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIG1ldGhvZCB0aGF0IGFkanVzdHMgd2lkdGggb2YgZGF0ZXRpbWVwaWNrZXIgdG8gdGFrZSAxMDAlIGNvbnRhaW5lciBzcGFjZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2FkanVzdFBpY2tlcldpZHRoKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXN0b21Qb3BvdmVyRWwgPSB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZC1kYXRldGltZSAuZmQtcG9wb3Zlci1jdXN0b20nKTtcbiAgICAgICAgaWYgKCFjdXN0b21Qb3BvdmVyRWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjdXN0b21Qb3BvdmVyRWwuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnO1xuICAgIH1cbn1cbiIsIjxmZC1kYXRldGltZS1waWNrZXJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJfaXNSZXF1aXJlZFwiXG4gICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxuICAgIFttZXJpZGlhbl09XCJtZXJpZGlhblwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZGlzcGxheVNlY29uZHNdPVwiZGlzcGxheVNlY29uZHNcIlxuICAgIFtkaXNwbGF5TWludXRlc109XCJkaXNwbGF5TWludXRlc1wiXG4gICAgW2Rpc3BsYXlIb3Vyc109XCJkaXNwbGF5SG91cnNcIlxuICAgIFt1c2VWYWxpZGF0aW9uXT1cInVzZVZhbGlkYXRpb25cIlxuICAgIFtpc09wZW5dPVwiaXNPcGVuXCJcbiAgICBbc3RhcnRpbmdEYXlPZldlZWtdPVwic3RhcnRpbmdEYXlPZldlZWtcIlxuICAgIFthY3RpdmVWaWV3XT1cImFjdGl2ZVZpZXdcIlxuICAgIFthbGxvd051bGxdPVwiYWxsb3dOdWxsICYmICFfaXNSZXF1aXJlZFwiXG4gICAgW2tlZXBUd29EaWdpdHNUaW1lXT1cImtlZXBUd29EaWdpdHNUaW1lXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICBbeWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFthZ2dyZWdhdGVkWWVhckdyaWRdPVwiYWdncmVnYXRlZFllYXJHcmlkXCJcbiAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgW3NwaW5uZXJCdXR0b25zXT1cInNwaW5uZXJCdXR0b25zXCJcbiAgICBbc2hvd1dlZWtOdW1iZXJzXT1cInNob3dXZWVrTnVtYmVyc1wiXG4gICAgW3Nob3dGb290ZXJdPVwic2hvd0Zvb3RlclwiXG4gICAgW2Rpc2FibGVGdW5jdGlvbl09XCJkaXNhYmxlRnVuY3Rpb25cIlxuICAgIFtwcm9jZXNzSW5wdXRPbkJsdXJdPVwicHJvY2Vzc0lucHV0T25CbHVyXCJcbiAgICBbcHJldmVudFNjcm9sbE9uRm9jdXNdPVwicHJldmVudFNjcm9sbE9uRm9jdXNcIlxuICAgIFttb2JpbGVdPVwibW9iaWxlXCJcbiAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXG4gICAgW21vYmlsZUxhbmRzY2FwZV09XCJtb2JpbGVMYW5kc2NhcGVcIlxuICAgIFttb2JpbGVQb3J0cmFpdF09XCJtb2JpbGVQb3J0cmFpdFwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlRGF0ZXRpbWVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAodG91Y2hlZCk9XCJvblRvdWNoZWQoKVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mZC1kYXRldGltZS1waWNrZXI+XG4iXX0=
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUc5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFtQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBV2hFLE1BQU0sT0FBTywrQkFBbUMsU0FBUSxTQUFTO0lBQzdEOztPQUVHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBUTtRQUNkLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxD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ZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0NvbnRyb2wsIE5nRm9ybSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmltcG9ydCB7IENhbGVuZGFyWWVhckdyaWQsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NhbGVuZGFyJztcbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBEYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZS1waWNrZXInO1xuaW1wb3J0IHsgUGxhY2VtZW50LCBTcGVjaWFsRGF5UnVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIFBsYXRmb3JtRm9ybUZpZWxkIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWRhdGV0aW1lLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBQbGF0Zm9ybURhdGV0aW1lUGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtEYXRldGltZVBpY2tlckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQ8RD4gZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiB2YWx1ZSBmb3IgZGF0ZXRpbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRCkge1xuICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKiBUaGUgZWxlbWVudCB0byB3aGljaCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgYXBwZW5kZWQuICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUbzogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRpbWUgY29tcG9uZW50IHNob3VsZCBiZSBtZXJpZGlhbiAoYW0vcG0pLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVyaWRpYW46IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0aW1lIGNvbXBvbmVudCBzaG93cyBzZWNvbmRzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheVNlY29uZHM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0aW1lIGNvbXBvbmVudCBzaG93cyBtaW51dGVzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheU1pbnV0ZXM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0aW1lIGNvbXBvbmVudCBzaG93cyBob3Vycy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlIb3VyczogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHBlcmZvcm0gdmlzdWFsIHZhbGlkYXRpb24gb24gdGhlIHBpY2tlciBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVzZVZhbGlkYXRpb24gPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaXMgb3Blbi4gVHdvLXdheSBiaW5kaW5nIGlzIHN1cHBvcnRlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFRoZSBzdGFydGluZyBkYXkgb2Ygd2VlayBmb3IgdGhlIGNhbGVuZGFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogQWN0dWFsbHkgc2hvd24gYWN0aXZlIHZpZXcgb25lIG9mICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyBpbiBjYWxlbmRhciBjb21wb25lbnQqL1xuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZlVmlldzogRmRDYWxlbmRhclZpZXcgPSAnZGF5JztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCB3aGVuIHNldCB0byB0cnVlIHRpbWUgY29tcG9uZW50IHdpbGwgdXNlIDIgZGlnaXRzIGZvciBlYWNoIG51bWJlci5cbiAgICAgKiBGb3IgZXhhbXBsZSA5IHdpbGwgYmVjb21lIDA5XG4gICAgICogYnV0IDEyIHdpbGwgYmUga2VwdCBhcyAxMi5cbiAgICAgKiBPbmx5IHVzZXMgYnkgdGltZSBjb21wb25lbnQgYW5kIGRvZXMgbm90IGNoYW5nZSBpbnB1dCBmb3JtYXRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBrZWVwVHdvRGlnaXRzVGltZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiAgQ2FuIGJlIGBzdWNjZXNzYCwgYGVycm9yYCwgYHdhcm5pbmdgLCBgaW5mb3JtYXRpb25gIG9yIGJsYW5rIGZvciBkZWZhdWx0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHN1cGVyLnN0YXRlID0gc3RhdGU7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5kYXRlVGltZVBpY2tlckNvbXBvbmVudD8uaXNJbnZhbGlkRGF0ZUlucHV0KSB7XG4gICAgICAgICAgICAvLyBpZiBhbnkgb3RoZXIgZXJyb3IgZnJvbSBjb3JlIGR0cFxuICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1cGVyLnN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25Gb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lhbCBkYXlzIG1hcmssIGl0IGNhbiBiZSB1c2VkIGJ5IHBhc3NpbmcgYXJyYXkgb2Ygb2JqZWN0IHdpdGhcbiAgICAgKiBTcGVjaWFsIGRheSBudW1iZXIsIGxpc3QgMS0yMCBbY2xhc3M6YGZkLWNhbGVuZGFyX19pdGVtLS1sZWdlbmQte3tudW1iZXJ9fWBdIGlzIGF2YWlsYWJsZSB0aGVyZTpcbiAgICAgKiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtc3R5bGVzL2NvbXBvbmVudHMvY2FsZW5kYXIuaHRtbCBjYWxlbmRhciBzcGVjaWFsIGRheXMgc2VjdGlvblxuICAgICAqIFJ1bGUgYWNjZXB0cyBtZXRob2Qgd2l0aCBGZERhdGUgb2JqZWN0IGFzIGEgcGFyYW1ldGVyLiBleDpcbiAgICAgKiBgcnVsZTogKGZkRGF0ZTogRmREYXRlKSA9PiBmZERhdGUuZ2V0RGF5KCkgPT09IDFgLCB3aGljaCB3aWxsIG1hcmsgYWxsIHN1bmRheXMgYXMgc3BlY2lhbCBkYXkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzcGVjaWFsRGF5c1J1bGVzOiBTcGVjaWFsRGF5UnVsZTxEPltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIHllYXIgZ3JpZCxcbiAgICAgKiBSb3csIENvbHVtbnMgYW5kIG1ldGhvZCB0byBkaXNwbGF5IHllYXIgY2FuIGJlIG1vZGlmaWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogNVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIGFnZ3JlZ2F0ZWQgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFnZ3JlZ2F0ZWRZZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogM1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqIEBJbnB1dCBXaGV0aGVyIHRvIHNob3cgc3Bpbm5lciBidXR0b25zICovXG4gICAgQElucHV0KClcbiAgICBzcGlubmVyQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gc2hvdyB3ZWVrIG51bWJlcnMgbmV4dCB0byBkYXlzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93V2Vla051bWJlcnMgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGRhdGV0aW1lIHBpY2tlciBmb290ZXIgd2l0aCBzdWJtaXQvY2FuY2VsIGJ1dHRvbnMuICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9vdGVyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gcmVjYWxjdWxhdGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgYXMgdXNlciB0eXBlcyBvciBvbiBibHVyLlxuICAgICAqIEJ5IGRlZmF1bHQsIHVwZGF0ZXMgdGhlIHZhbHVlIGFzIHVzZXIgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnB1dE9uQmx1ciA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBwcmV2ZW50IHBhZ2Ugc2Nyb2xsaW5nIHdoZW4gZm9jdXNpbmcgZGF0ZSBwaWNrZXIgaW5wdXQgZmllbGQgYWZ0ZXIgY2FsZW5kYXIgaGFzIGJlZW4gY2xvc2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFNjcm9sbE9uRm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGRhdGUgcGlja2VyIHNob3VsZCByZW5kZXJlZCBpbiBtb2JpbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1vYmlsZSBtb2RlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGVDb25maWc6IE1vYmlsZU1vZGVDb25maWc7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBpc09wZW4gcHJvcGVydHkgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgY2FsZW5kYXIgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGZENhbGVuZGFyVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZGF0ZSBjaGFuZ2VzLiBUaGlzIGNhbiBiZSBhIHRpbWUgb3IgZGF5IGNoYW5nZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBkYXRldGltZUNoYW5nZTogRXZlbnRFbWl0dGVyPEQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBwb3BvdmVyIGNsb3Nlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQpXG4gICAgZGF0ZVRpbWVQaWNrZXJDb21wb25lbnQ6IERhdGV0aW1lUGlja2VyQ29tcG9uZW50PEQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKERhdGV0aW1lUGlja2VyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBfZWxSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBOZ0NvbnRyb2wgfSlcbiAgICBwcm90ZWN0ZWQgX2NvbnRyb2w6IE5nQ29udHJvbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZvcm1GaWVsZD8ucmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcmVhZG9ubHkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICAvLyBVc2UgaGVyZSBAT3B0aW9uYWwgdG8gYXZvaWQgYW5ndWxhciBpbmplY3Rpb24gZXJyb3IgbWVzc2FnZSBhbmQgdGhyb3cgb3VyIG93biB3aGljaCBpcyBtb3JlIHByZWNpc2Ugb25lXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfVElNRV9GT1JNQVRTKSBwcml2YXRlIF9kYXRlVGltZUZvcm1hdHM6IERhdGVUaW1lRm9ybWF0c1xuICAgICkge1xuICAgICAgICBzdXBlcihfY2QsIGVsZW1lbnRSZWYsIG5nQ29udHJvbCwgY29udHJvbENvbnRhaW5lciwgbmdGb3JtLCBmb3JtRmllbGQsIGZvcm1Db250cm9sKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lQWRhcHRlcikge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEYXRlVGltZUFkYXB0ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lRm9ybWF0cykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEQVRFX1RJTUVfRk9STUFUUycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZGVmYXVsdCBtb2RlbCB2YWx1ZVxuICAgICAgICB0aGlzLnZhbHVlID0gX2RhdGVUaW1lQWRhcHRlci5ub3coKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGZkRGF0ZSBGZERhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVGdW5jdGlvbjogKHZhbHVlOiBEKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBpZiB1c2VkIHdpdGggcGxhdGZvcm0gZm9ybXMsIGFkanVzdCB3aWR0aCBvZiBkYXRldGltZXBpY2tlciB0byB0YWtlIDEwMCUgY29udGFpbmVyIHNwYWNlXG4gICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5fYWRqdXN0UGlja2VyV2lkdGgoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIG92ZXJyaWRlIGJhc2UgZnVuY3Rpb25hbGl0eSB0byBjYXRjaCBuZXcgZGlzYWJsZWQgc3RhdGVcbiAgICAgKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQpO1xuICAgICAgICB0aGlzLmRhdGVUaW1lUGlja2VyQ29tcG9uZW50Py5zZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogbG9naWMgdG8gaGFuZGxlIHZhbGlkYXRpb24gZnJvbSBib3RoIHBsYXRmb3JtIGZvcm1zIGFuZCBjb3JlIGRhdGV0aWltZXBpY2tlclxuICAgICAqIEBwYXJhbSBkYXRldGltZSBpbnB1dHRlZFxuICAgICAqL1xuICAgIGhhbmRsZURhdGV0aW1lSW5wdXRDaGFuZ2UoZGF0ZXRpbWU6IEQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGVUaW1lUGlja2VyQ29tcG9uZW50Ll9pc0ludmFsaWREYXRlSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCAmJiB0aGlzLl9jb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuX2NvbnRyb2wuZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdlcnJvcic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5kYXRlVGltZVBpY2tlckNvbXBvbmVudC5faW5wdXRGaWVsZERhdGUgJiYgIXRoaXMuYWxsb3dOdWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnZXJyb3InOyAvLyBudWxsIHZhbHVlIGluIG5vdCBhbGxvd051bGwgc2hvdWxkIHRocm93IGVycm9yXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHVuZGVmaW5lZDsgLy8gcmVzZXR0aW5nIHRvIGRlZmF1bHQgc3RhdGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBvbmx5IHNldCB0aGUgdmFsdWUgaWYgaXQgaXMgYSB2YWxpZCBkYXRldGltZSBvYmplY3RcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGVUaW1lUGlja2VyQ29tcG9uZW50Ll9pbnB1dEZpZWxkRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRldGltZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnZGF0ZXRpbWUgcGlja2VyOiBoYW5kbGVEYXRldGltZUlucHV0Q2hhbmdlJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGV0aW1lQ2hhbmdlLmVtaXQoZGF0ZXRpbWUpO1xuXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgaGFuZGxlcyBjaGFuZ2VzIHdoZW4gcG9wb3ZlciBpcyBvcGVuZWQgb3IgY2xvc2VkLlxuICAgICAqL1xuICAgIGhhbmRsZU9wZW5DaGFuZ2UgPSAob3BlbjogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgaGFuZGxlIGNhbGVuZGFyIGFjdGl2ZSB2aWV3IGNoYW5nZSBhbmQgdGhyb3dzIGV2ZW50LlxuICAgICAqL1xuICAgIGhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UgPSAoZmRDYWxlbmRhclZpZXc6IEZkQ2FsZW5kYXJWaWV3KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGZkQ2FsZW5kYXJWaWV3KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIG1ldGhvZCB0aGF0IGFkanVzdHMgd2lkdGggb2YgZGF0ZXRpbWVwaWNrZXIgdG8gdGFrZSAxMDAlIGNvbnRhaW5lciBzcGFjZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2FkanVzdFBpY2tlcldpZHRoKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXN0b21Qb3BvdmVyRWwgPSB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZC1kYXRldGltZSAuZmQtcG9wb3Zlci1jdXN0b20nKTtcbiAgICAgICAgaWYgKCFjdXN0b21Qb3BvdmVyRWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjdXN0b21Qb3BvdmVyRWwuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnO1xuICAgIH1cbn1cbiIsIjxmZC1kYXRldGltZS1waWNrZXJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJfaXNSZXF1aXJlZFwiXG4gICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxuICAgIFttZXJpZGlhbl09XCJtZXJpZGlhblwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZGlzcGxheVNlY29uZHNdPVwiZGlzcGxheVNlY29uZHNcIlxuICAgIFtkaXNwbGF5TWludXRlc109XCJkaXNwbGF5TWludXRlc1wiXG4gICAgW2Rpc3BsYXlIb3Vyc109XCJkaXNwbGF5SG91cnNcIlxuICAgIFt1c2VWYWxpZGF0aW9uXT1cInVzZVZhbGlkYXRpb25cIlxuICAgIFtpc09wZW5dPVwiaXNPcGVuXCJcbiAgICBbc3RhcnRpbmdEYXlPZldlZWtdPVwic3RhcnRpbmdEYXlPZldlZWtcIlxuICAgIFthY3RpdmVWaWV3XT1cImFjdGl2ZVZpZXdcIlxuICAgIFthbGxvd051bGxdPVwiYWxsb3dOdWxsICYmICFfaXNSZXF1aXJlZFwiXG4gICAgW2tlZXBUd29EaWdpdHNUaW1lXT1cImtlZXBUd29EaWdpdHNUaW1lXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICBbeWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFthZ2dyZWdhdGVkWWVhckdyaWRdPVwiYWdncmVnYXRlZFllYXJHcmlkXCJcbiAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgW3NwaW5uZXJCdXR0b25zXT1cInNwaW5uZXJCdXR0b25zXCJcbiAgICBbc2hvd1dlZWtOdW1iZXJzXT1cInNob3dXZWVrTnVtYmVyc1wiXG4gICAgW3Nob3dGb290ZXJdPVwic2hvd0Zvb3RlclwiXG4gICAgW2Rpc2FibGVGdW5jdGlvbl09XCJkaXNhYmxlRnVuY3Rpb25cIlxuICAgIFtwcm9jZXNzSW5wdXRPbkJsdXJdPVwicHJvY2Vzc0lucHV0T25CbHVyXCJcbiAgICBbcHJldmVudFNjcm9sbE9uRm9jdXNdPVwicHJldmVudFNjcm9sbE9uRm9jdXNcIlxuICAgIFttb2JpbGVdPVwibW9iaWxlXCJcbiAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXG4gICAgW21vYmlsZUxhbmRzY2FwZV09XCJtb2JpbGVMYW5kc2NhcGVcIlxuICAgIFttb2JpbGVQb3J0cmFpdF09XCJtb2JpbGVQb3J0cmFpdFwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlRGF0ZXRpbWVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAodG91Y2hlZCk9XCJvblRvdWNoZWQoKVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mZC1kYXRldGltZS1waWNrZXI+XG4iXX0=
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { PlatformDatetimePickerComponent } from './datetime-picker.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class PlatformDatetimePickerModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatetimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatetimePickerModule, imports: [PlatformDatetimePickerComponent], exports: [PlatformDatetimePickerComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatetimePickerModule, imports: [PlatformDatetimePickerComponent] }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatetimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatetimePickerModule, imports: [PlatformDatetimePickerComponent], exports: [PlatformDatetimePickerComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatetimePickerModule, imports: [PlatformDatetimePickerComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformDatetimePickerModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PlatformDatetimePickerModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [PlatformDatetimePickerComponent],
@@ -21,10 +21,10 @@ export class BaseDynamicFormGeneratorControl {
21
21
  }
22
22
  return (this.formItem?.useMessageAsPlaceholder && this.formItem?.message) || '';
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseDynamicFormGeneratorControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: BaseDynamicFormGeneratorControl, inputs: { formItem: "formItem", id: "id", name: "name", form: "form", formField: "formField", formGroupName: "formGroupName" }, providers: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], ngImport: i0 }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BaseDynamicFormGeneratorControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: BaseDynamicFormGeneratorControl, inputs: { formItem: "formItem", id: "id", name: "name", form: "form", formField: "formField", formGroupName: "formGroupName" }, providers: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], ngImport: i0 }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseDynamicFormGeneratorControl, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BaseDynamicFormGeneratorControl, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
30
  providers: [dynamicFormFieldProvider, dynamicFormGroupChildProvider]
@@ -11,11 +11,11 @@ export class DynamicFormGeneratorCheckboxComponent extends BaseDynamicFormGenera
11
11
  constructor() {
12
12
  super();
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DynamicFormGeneratorCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DynamicFormGeneratorCheckboxComponent, isStandalone: true, selector: "fdp-dynamic-form-generator-checkbox", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-checkbox-group\n [id]=\"id\"\n [isInline]=\"formItem.guiOptions?.inline || false\"\n [inlineLayout]=\"formItem.guiOptions?.inlineLayout\"\n [name]=\"name\"\n [list]=\"choices\"\n [formControlName]=\"name\"\n ></fdp-checkbox-group>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: PlatformCheckboxGroupModule }, { kind: "component", type: i2.CheckboxGroupComponent, selector: "fdp-checkbox-group", inputs: ["value", "isInline"], outputs: ["valueChange"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DynamicFormGeneratorCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: DynamicFormGeneratorCheckboxComponent, isStandalone: true, selector: "fdp-dynamic-form-generator-checkbox", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-checkbox-group\n [id]=\"id\"\n [isInline]=\"formItem.guiOptions?.inline || false\"\n [inlineLayout]=\"formItem.guiOptions?.inlineLayout\"\n [name]=\"name\"\n [list]=\"choices\"\n [formControlName]=\"name\"\n ></fdp-checkbox-group>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: PlatformCheckboxGroupModule }, { kind: "component", type: i2.CheckboxGroupComponent, selector: "fdp-checkbox-group", inputs: ["value", "isInline"], outputs: ["valueChange"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DynamicFormGeneratorCheckboxComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DynamicFormGeneratorCheckboxComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'fdp-dynamic-form-generator-checkbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], standalone: true, imports: [FormsModule, ReactiveFormsModule, PlatformCheckboxGroupModule], template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-checkbox-group\n [id]=\"id\"\n [isInline]=\"formItem.guiOptions?.inline || false\"\n [inlineLayout]=\"formItem.guiOptions?.inlineLayout\"\n [name]=\"name\"\n [list]=\"choices\"\n [formControlName]=\"name\"\n ></fdp-checkbox-group>\n </ng-container>\n</ng-container>\n" }]
20
- }], ctorParameters: function () { return []; } });
20
+ }], ctorParameters: () => [] });
21
21
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWdlbmVyYXRvci1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdlbmVyYXRvci9jb250cm9scy9keW5hbWljLWZvcm0tZ2VuZXJhdG9yLWNoZWNrYm94L2R5bmFtaWMtZm9ybS1nZW5lcmF0b3ItY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvY29udHJvbHMvZHluYW1pYy1mb3JtLWdlbmVyYXRvci1jaGVja2JveC9keW5hbWljLWZvcm0tZ2VuZXJhdG9yLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBV2xFLE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSwrQkFBK0I7SUFDdEYsY0FBYztJQUNkO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQUpRLHFDQUFxQztrR0FBckMscUNBQXFDLHNIQ2hCbEQsaWNBWUEsMkNERWMsV0FBVyxrU0FBRSxtQkFBbUIsc2JBQUUsMkJBQTJCLHFLQUZ4RCxDQUFDLHdCQUF3QixFQUFFLDZCQUE2QixDQUFDOzsyRkFJL0QscUNBQXFDO2tCQVRqRCxTQUFTOytCQUNJLHFDQUFxQyxpQkFFaEMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsQ0FBQyx3QkFBd0IsRUFBRSw2QkFBNkIsQ0FBQyxjQUM1RCxJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sIH0gZnJvbSAnLi4vLi4vYmFzZS1keW5hbWljLWZvcm0tZ2VuZXJhdG9yLWNvbnRyb2wnO1xuaW1wb3J0IHsgZHluYW1pY0Zvcm1GaWVsZFByb3ZpZGVyLCBkeW5hbWljRm9ybUdyb3VwQ2hpbGRQcm92aWRlciB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9wcm92aWRlcnMnO1xuaW1wb3J0IHsgUGxhdGZvcm1DaGVja2JveEdyb3VwTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1keW5hbWljLWZvcm0tZ2VuZXJhdG9yLWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLWdlbmVyYXRvci1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB2aWV3UHJvdmlkZXJzOiBbZHluYW1pY0Zvcm1GaWVsZFByb3ZpZGVyLCBkeW5hbWljRm9ybUdyb3VwQ2hpbGRQcm92aWRlcl0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFBsYXRmb3JtQ2hlY2tib3hHcm91cE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1HZW5lcmF0b3JDaGVja2JveENvbXBvbmVudCBleHRlbmRzIEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2wge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImZvcm1Hcm91cE5hbWVcIj5cbiAgICAgICAgPGZkcC1jaGVja2JveC1ncm91cFxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtpc0lubGluZV09XCJmb3JtSXRlbS5ndWlPcHRpb25zPy5pbmxpbmUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW2lubGluZUxheW91dF09XCJmb3JtSXRlbS5ndWlPcHRpb25zPy5pbmxpbmVMYXlvdXRcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbbGlzdF09XCJjaG9pY2VzXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVwiXG4gICAgICAgID48L2ZkcC1jaGVja2JveC1ncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -10,11 +10,11 @@ export class DynamicFormGeneratorDatepickerComponent extends BaseDynamicFormGene
10
10
  constructor() {
11
11
  super();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DynamicFormGeneratorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DynamicFormGeneratorDatepickerComponent, isStandalone: true, selector: "fdp-dynamic-form-generator-datepicker", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-date-picker\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [formControlName]=\"name\"\n [inline]=\"formItem.guiOptions?.inline !== false\"\n [allowNull]=\"false\"\n ></fdp-date-picker>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: PlatformDatePickerComponent, selector: "fdp-date-picker", inputs: ["value", "type", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "showTodayButton", "todayButtonLabel", "allowNull", "activeView", "placement", "appendTo", "closeOnDateChoose", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "isOpen", "inline", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedRangeDateChange", "activeViewChange"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DynamicFormGeneratorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: DynamicFormGeneratorDatepickerComponent, isStandalone: true, selector: "fdp-dynamic-form-generator-datepicker", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-date-picker\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [formControlName]=\"name\"\n [inline]=\"formItem.guiOptions?.inline !== false\"\n [allowNull]=\"false\"\n ></fdp-date-picker>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: PlatformDatePickerComponent, selector: "fdp-date-picker", inputs: ["value", "type", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "showTodayButton", "todayButtonLabel", "allowNull", "activeView", "placement", "appendTo", "closeOnDateChoose", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "isOpen", "inline", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedRangeDateChange", "activeViewChange"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DynamicFormGeneratorDatepickerComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DynamicFormGeneratorDatepickerComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'fdp-dynamic-form-generator-datepicker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], standalone: true, imports: [FormsModule, ReactiveFormsModule, PlatformDatePickerComponent], template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-date-picker\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [formControlName]=\"name\"\n [inline]=\"formItem.guiOptions?.inline !== false\"\n [allowNull]=\"false\"\n ></fdp-date-picker>\n </ng-container>\n</ng-container>\n" }]
19
- }], ctorParameters: function () { return []; } });
19
+ }], ctorParameters: () => [] });
20
20
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWdlbmVyYXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL2Zvcm0tZ2VuZXJhdG9yL2NvbnRyb2xzL2R5bmFtaWMtZm9ybS1nZW5lcmF0b3ItZGF0ZXBpY2tlci9keW5hbWljLWZvcm0tZ2VuZXJhdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvY29udHJvbHMvZHluYW1pYy1mb3JtLWdlbmVyYXRvci1kYXRlcGlja2VyL2R5bmFtaWMtZm9ybS1nZW5lcmF0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBV3BHLE1BQU0sT0FBTyx1Q0FBd0MsU0FBUSwrQkFBK0I7SUFDeEYsY0FBYztJQUNkO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQUpRLHVDQUF1QztrR0FBdkMsdUNBQXVDLHdIQ2hCcEQsc2FBWUEsMkNERWMsV0FBVyxrU0FBRSxtQkFBbUIsdWJBQUUsMkJBQTJCLDRyQkFGeEQsQ0FBQyx3QkFBd0IsRUFBRSw2QkFBNkIsQ0FBQzs7MkZBSS9ELHVDQUF1QztrQkFUbkQsU0FBUzsrQkFDSSx1Q0FBdUMsaUJBRWxDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLENBQUMsd0JBQXdCLEVBQUUsNkJBQTZCLENBQUMsY0FDNUQsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZUR5bmFtaWNGb3JtR2VuZXJhdG9yQ29udHJvbCB9IGZyb20gJy4uLy4uL2Jhc2UtZHluYW1pYy1mb3JtLWdlbmVyYXRvci1jb250cm9sJztcbmltcG9ydCB7IGR5bmFtaWNGb3JtRmllbGRQcm92aWRlciwgZHluYW1pY0Zvcm1Hcm91cENoaWxkUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvcHJvdmlkZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZHluYW1pYy1mb3JtLWdlbmVyYXRvci1kYXRlcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLWdlbmVyYXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHZpZXdQcm92aWRlcnM6IFtkeW5hbWljRm9ybUZpZWxkUHJvdmlkZXIsIGR5bmFtaWNGb3JtR3JvdXBDaGlsZFByb3ZpZGVyXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgUGxhdGZvcm1EYXRlUGlja2VyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUdlbmVyYXRvckRhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJmb3JtR3JvdXBOYW1lXCI+XG4gICAgICAgIDxmZHAtZGF0ZS1waWNrZXJcbiAgICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgW2lubGluZV09XCJmb3JtSXRlbS5ndWlPcHRpb25zPy5pbmxpbmUgIT09IGZhbHNlXCJcbiAgICAgICAgICAgIFthbGxvd051bGxdPVwiZmFsc2VcIlxuICAgICAgICA+PC9mZHAtZGF0ZS1waWNrZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -10,11 +10,11 @@ export class DynamicFormGeneratorEditorComponent extends BaseDynamicFormGenerato
10
10
  constructor() {
11
11
  super();
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DynamicFormGeneratorEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DynamicFormGeneratorEditorComponent, isStandalone: true, selector: "fdp-dynamic-form-generator-editor", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-textarea [id]=\"id\" [placeholder]=\"placeholder\" [name]=\"name\" [formControlName]=\"name\"></fdp-textarea>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: TextAreaComponent, selector: "fdp-textarea", inputs: ["height", "growingMaxLines", "cols", "wrapType", "readonly", "maxLength", "showExceededText", "growing", "value"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DynamicFormGeneratorEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: DynamicFormGeneratorEditorComponent, isStandalone: true, selector: "fdp-dynamic-form-generator-editor", usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-textarea [id]=\"id\" [placeholder]=\"placeholder\" [name]=\"name\" [formControlName]=\"name\"></fdp-textarea>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: TextAreaComponent, selector: "fdp-textarea", inputs: ["height", "growingMaxLines", "cols", "wrapType", "readonly", "maxLength", "showExceededText", "growing", "value"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DynamicFormGeneratorEditorComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DynamicFormGeneratorEditorComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'fdp-dynamic-form-generator-editor', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], standalone: true, imports: [FormsModule, ReactiveFormsModule, TextAreaComponent], template: "<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-textarea [id]=\"id\" [placeholder]=\"placeholder\" [name]=\"name\" [formControlName]=\"name\"></fdp-textarea>\n </ng-container>\n</ng-container>\n" }]
19
- }], ctorParameters: function () { return []; } });
19
+ }], ctorParameters: () => [] });
20
20
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWdlbmVyYXRvci1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvY29udHJvbHMvZHluYW1pYy1mb3JtLWdlbmVyYXRvci1lZGl0b3IvZHluYW1pYy1mb3JtLWdlbmVyYXRvci1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1nZW5lcmF0b3IvY29udHJvbHMvZHluYW1pYy1mb3JtLWdlbmVyYXRvci1lZGl0b3IvZHluYW1pYy1mb3JtLWdlbmVyYXRvci1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVdwRyxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsK0JBQStCO0lBQ3BGLGNBQWM7SUFDZDtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0FKUSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyxvSENoQmhELCtQQUtBLDJDRFNjLFdBQVcsa1NBQUUsbUJBQW1CLHViQUFFLGlCQUFpQiwwS0FGOUMsQ0FBQyx3QkFBd0IsRUFBRSw2QkFBNkIsQ0FBQzs7MkZBSS9ELG1DQUFtQztrQkFUL0MsU0FBUzsrQkFDSSxtQ0FBbUMsaUJBRTlCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLENBQUMsd0JBQXdCLEVBQUUsNkJBQTZCLENBQUMsY0FDNUQsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VEeW5hbWljRm9ybUdlbmVyYXRvckNvbnRyb2wgfSBmcm9tICcuLi8uLi9iYXNlLWR5bmFtaWMtZm9ybS1nZW5lcmF0b3ItY29udHJvbCc7XG5pbXBvcnQgeyBkeW5hbWljRm9ybUZpZWxkUHJvdmlkZXIsIGR5bmFtaWNGb3JtR3JvdXBDaGlsZFByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3Byb3ZpZGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWR5bmFtaWMtZm9ybS1nZW5lcmF0b3ItZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLWdlbmVyYXRvci1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdmlld1Byb3ZpZGVyczogW2R5bmFtaWNGb3JtRmllbGRQcm92aWRlciwgZHluYW1pY0Zvcm1Hcm91cENoaWxkUHJvdmlkZXJdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUZXh0QXJlYUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1HZW5lcmF0b3JFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlRHluYW1pY0Zvcm1HZW5lcmF0b3JDb250cm9sIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJmb3JtR3JvdXBOYW1lXCI+XG4gICAgICAgIDxmZHAtdGV4dGFyZWEgW2lkXT1cImlkXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW25hbWVdPVwibmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVwiPjwvZmRwLXRleHRhcmVhPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=