@f1falcha/stimulus 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/accordion/accordion-config.scss +18 -0
  2. package/accordion/accordion-item/accordion-item.component.d.ts +11 -0
  3. package/accordion/accordion-item-body/accordion-item-body.component.d.ts +10 -0
  4. package/accordion/accordion-item-header/accordion-item-header.component.d.ts +15 -0
  5. package/accordion/accordion.d.ts +12 -0
  6. package/accordion/accordion.icon.d.ts +3 -0
  7. package/accordion/accordion.scss +41 -0
  8. package/account-card/account-card-config.scss +36 -0
  9. package/account-card/account-card-header/account-card-header-config.scss +9 -0
  10. package/account-card/account-card-header/account-card-header.component.d.ts +12 -0
  11. package/account-card/account-card-header/account-card-header.scss +11 -0
  12. package/account-card/account-card.component.d.ts +16 -0
  13. package/account-card/account-card.scss +19 -0
  14. package/alert/alert-animation.d.ts +6 -0
  15. package/alert/alert-config.d.ts +26 -0
  16. package/alert/alert-config.scss +43 -0
  17. package/alert/alert-icon.d.ts +3 -0
  18. package/alert/alert-ref.d.ts +11 -0
  19. package/alert/alert.d.ts +23 -0
  20. package/alert/alert.scss +91 -0
  21. package/alert/alert.service.d.ts +31 -0
  22. package/avatar/avatar-config.scss +12 -0
  23. package/avatar/avatar.d.ts +21 -0
  24. package/avatar/avatar.scss +2 -0
  25. package/badge/badge-config.scss +68 -0
  26. package/badge/badge.d.ts +17 -0
  27. package/badge/badge.scss +21 -0
  28. package/bank-logo.provider.d.ts +7 -0
  29. package/bordered-section/bordered-section-config.scss +24 -0
  30. package/bordered-section/bordered-section.d.ts +15 -0
  31. package/bordered-section/bordered-section.scss +22 -0
  32. package/box-shadow/box-shadow-config.scss +18 -0
  33. package/button/button-config.scss +342 -0
  34. package/button/button.d.ts +10 -0
  35. package/button/button.scss +62 -0
  36. package/button-group/button-group-config.scss +12 -0
  37. package/button-group/button-group-header/button-group-header-config.scss +9 -0
  38. package/button-group/button-group-header/button-group-header.d.ts +8 -0
  39. package/button-group/button-group-header/button-group-header.scss +5 -0
  40. package/button-group/button-group.d.ts +11 -0
  41. package/button-group/buttton-group.scss +19 -0
  42. package/button-spinner/button-spinner-config.scss +15 -0
  43. package/button-spinner/button-spinner.scss +30 -0
  44. package/card/card-config.scss +15 -0
  45. package/card/card.component.d.ts +8 -0
  46. package/card/card.scss +14 -0
  47. package/chart/chart-config.scss +21 -0
  48. package/chart/chart.component.d.ts +21 -0
  49. package/chart/chart.component.scss +34 -0
  50. package/checkbox/checkbox-config.scss +62 -0
  51. package/checkbox/checkbox.scss +45 -0
  52. package/checkbox-dropdown/checkbox-dropdown.component.d.ts +139 -0
  53. package/checkbox-dropdown/checkbox-dropdown.component.scss +11 -0
  54. package/checkbox-dropdown/checkbox-dropdown.icon.d.ts +3 -0
  55. package/clipboard/clipboard-config.scss +23 -0
  56. package/clipboard/clipboard.component.d.ts +15 -0
  57. package/clipboard/clipboard.component.scss +37 -0
  58. package/clipboard/clipboard.icon.d.ts +3 -0
  59. package/color/cherry.scss +19 -0
  60. package/color/chilli.scss +19 -0
  61. package/color/comet.scss +19 -0
  62. package/color/cotton-candy.scss +19 -0
  63. package/color/default.scss +154 -0
  64. package/color/emerald.scss +19 -0
  65. package/color/goblin.scss +19 -0
  66. package/color/jacaranda.scss +19 -0
  67. package/color/mars.scss +19 -0
  68. package/color/orchid.scss +19 -0
  69. package/color/spaceship.scss +19 -0
  70. package/color/summer.scss +19 -0
  71. package/color/tiger-lily.scss +19 -0
  72. package/color-wrapper/color-wrapper-config.scss +37 -0
  73. package/color-wrapper/color-wrapper.d.ts +17 -0
  74. package/color-wrapper/color-wrapper.scss +23 -0
  75. package/column-seperator/column-separator-config.scss +16 -0
  76. package/column-seperator/column-separator.d.ts +14 -0
  77. package/column-seperator/column-separator.scss +25 -0
  78. package/column-text/column-text.config.scss +12 -0
  79. package/column-text/column-text.d.ts +11 -0
  80. package/column-text/column-text.scss +22 -0
  81. package/container/container-config.scss +12 -0
  82. package/container/container.component.d.ts +12 -0
  83. package/container/container.scss +19 -0
  84. package/custom-datepicker/custom-datepicker-config.scss +50 -0
  85. package/custom-datepicker/custom-datepicker.component.d.ts +80 -0
  86. package/custom-datepicker/custom-datepicker.component.scss +127 -0
  87. package/custom-datepicker/custom-datepicker.model.d.ts +18 -0
  88. package/custom-datepicker/datepicker.icon.d.ts +3 -0
  89. package/custom-datepicker/timepicker/timepicker.component.d.ts +37 -0
  90. package/custom-datepicker/timepicker/timepicker.component.scss +79 -0
  91. package/data-list/data-list.config.scss +35 -0
  92. package/data-list/data-list.d.ts +13 -0
  93. package/data-list/data-list.scss +67 -0
  94. package/date-range-picker/date-range-picker.d.ts +40 -0
  95. package/datepicker/datepicker.config.scss +0 -0
  96. package/datepicker/datepicker.d.ts +45 -0
  97. package/datepicker/datepicker.scss +0 -0
  98. package/datepicker-icon/datepicker-icon-config.scss +10 -0
  99. package/datepicker-icon/datepicker-icon.d.ts +6 -0
  100. package/datepicker-icon/datepicker-icon.scss +7 -0
  101. package/datepicker.provider.d.ts +2 -0
  102. package/detail-panel/detail-panel-config.scss +16 -0
  103. package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column-config.scss +11 -0
  104. package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.d.ts +6 -0
  105. package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.scss +15 -0
  106. package/detail-panel/detail-panel-row/detail-panel-row.d.ts +6 -0
  107. package/detail-panel/detail-panel-row/detail-panel-row.scss +5 -0
  108. package/detail-panel/detail-panel-title/detail-panel-title-config.scss +14 -0
  109. package/detail-panel/detail-panel-title/detail-panel-title.d.ts +7 -0
  110. package/detail-panel/detail-panel-title/detail-panel-title.scss +16 -0
  111. package/detail-panel/detail-panel.d.ts +11 -0
  112. package/detail-panel/detail-panel.scss +50 -0
  113. package/dialog/dialog-body/dialog-body.component.d.ts +6 -0
  114. package/dialog/dialog-config.scss +24 -0
  115. package/dialog/dialog-container/dialog-container-config.scss +9 -0
  116. package/dialog/dialog-container/dialog-container.component.d.ts +6 -0
  117. package/dialog/dialog-container/dialog-container.scss +6 -0
  118. package/dialog/dialog-footer/dialog-footer.component.d.ts +6 -0
  119. package/dialog/dialog-footer/dialog-footer.scss +6 -0
  120. package/dialog/dialog-header/dialog-header-config.scss +14 -0
  121. package/dialog/dialog-header/dialog-header.component.d.ts +10 -0
  122. package/dialog/dialog-header/dialog-header.scss +16 -0
  123. package/dialog/dialog-icon.d.ts +3 -0
  124. package/dialog/dialog.component.d.ts +12 -0
  125. package/dialog/dialog.scss +27 -0
  126. package/dialog.provider.d.ts +3 -0
  127. package/dialog.ref.d.ts +4 -0
  128. package/dialog.service.d.ts +7 -0
  129. package/dropdown/context-menu-config.scss +23 -0
  130. package/dropdown/context-menu-content/context-menu-content.d.ts +9 -0
  131. package/dropdown/context-menu-item.d.ts +10 -0
  132. package/dropdown/context-menu-list/context-menu-list.d.ts +9 -0
  133. package/dropdown/context-menu.d.ts +19 -0
  134. package/dropdown/context-menu.scss +41 -0
  135. package/error-page-container/error-content/error-content-config.scss +29 -0
  136. package/error-page-container/error-content/error-content.d.ts +24 -0
  137. package/error-page-container/error-content/error-content.scss +58 -0
  138. package/error-page-container/error-page-container.d.ts +6 -0
  139. package/error-page-container/error-page-container.scss +15 -0
  140. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +23 -0
  141. package/esm2022/accordion/accordion-item-body/accordion-item-body.component.mjs +18 -0
  142. package/esm2022/accordion/accordion-item-header/accordion-item-header.component.mjs +41 -0
  143. package/esm2022/accordion/accordion.icon.mjs +25 -0
  144. package/esm2022/accordion/accordion.mjs +14 -0
  145. package/esm2022/account-card/account-card-header/account-card-header.component.mjs +30 -0
  146. package/esm2022/account-card/account-card.component.mjs +64 -0
  147. package/esm2022/alert/alert-animation.mjs +9 -0
  148. package/esm2022/alert/alert-config.mjs +13 -0
  149. package/esm2022/alert/alert-icon.mjs +33 -0
  150. package/esm2022/alert/alert-ref.mjs +23 -0
  151. package/esm2022/alert/alert.mjs +50 -0
  152. package/esm2022/alert/alert.service.mjs +112 -0
  153. package/esm2022/avatar/avatar.mjs +91 -0
  154. package/esm2022/badge/badge.mjs +77 -0
  155. package/esm2022/bank-logo.provider.mjs +12 -0
  156. package/esm2022/bordered-section/bordered-section.mjs +70 -0
  157. package/esm2022/button/button.mjs +26 -0
  158. package/esm2022/button-group/button-group-header/button-group-header.mjs +24 -0
  159. package/esm2022/button-group/button-group.mjs +41 -0
  160. package/esm2022/card/card.component.mjs +28 -0
  161. package/esm2022/chart/chart.component.mjs +70 -0
  162. package/esm2022/checkbox-dropdown/checkbox-dropdown.component.mjs +232 -0
  163. package/esm2022/checkbox-dropdown/checkbox-dropdown.icon.mjs +14 -0
  164. package/esm2022/clipboard/clipboard.component.mjs +36 -0
  165. package/esm2022/clipboard/clipboard.icon.mjs +6 -0
  166. package/esm2022/color-wrapper/color-wrapper.mjs +82 -0
  167. package/esm2022/column-seperator/column-separator.mjs +62 -0
  168. package/esm2022/column-text/column-text.mjs +38 -0
  169. package/esm2022/container/container.component.mjs +46 -0
  170. package/esm2022/custom-datepicker/custom-datepicker.component.mjs +364 -0
  171. package/esm2022/custom-datepicker/custom-datepicker.model.mjs +12 -0
  172. package/esm2022/custom-datepicker/datepicker.icon.mjs +7 -0
  173. package/esm2022/custom-datepicker/timepicker/timepicker.component.mjs +195 -0
  174. package/esm2022/data-list/data-list.mjs +46 -0
  175. package/esm2022/date-range-picker/date-range-picker.mjs +207 -0
  176. package/esm2022/datepicker/datepicker.mjs +153 -0
  177. package/esm2022/datepicker-icon/datepicker-icon.mjs +18 -0
  178. package/esm2022/datepicker.provider.mjs +6 -0
  179. package/esm2022/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.mjs +15 -0
  180. package/esm2022/detail-panel/detail-panel-row/detail-panel-row.mjs +15 -0
  181. package/esm2022/detail-panel/detail-panel-title/detail-panel-title.mjs +19 -0
  182. package/esm2022/detail-panel/detail-panel.mjs +36 -0
  183. package/esm2022/dialog/dialog-body/dialog-body.component.mjs +16 -0
  184. package/esm2022/dialog/dialog-container/dialog-container.component.mjs +16 -0
  185. package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +16 -0
  186. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +25 -0
  187. package/esm2022/dialog/dialog-icon.mjs +8 -0
  188. package/esm2022/dialog/dialog.component.mjs +36 -0
  189. package/esm2022/dialog.provider.mjs +5 -0
  190. package/esm2022/dialog.ref.mjs +4 -0
  191. package/esm2022/dialog.service.mjs +15 -0
  192. package/esm2022/dropdown/context-menu-content/context-menu-content.mjs +18 -0
  193. package/esm2022/dropdown/context-menu-item.mjs +28 -0
  194. package/esm2022/dropdown/context-menu-list/context-menu-list.mjs +18 -0
  195. package/esm2022/dropdown/context-menu.mjs +61 -0
  196. package/esm2022/error-page-container/error-content/error-content.mjs +49 -0
  197. package/esm2022/error-page-container/error-page-container.mjs +18 -0
  198. package/esm2022/extract-inital/extract-initial.mjs +21 -0
  199. package/esm2022/f1softinternational-stimulus.mjs +5 -0
  200. package/esm2022/file-uploader/file-uploader-icon.mjs +13 -0
  201. package/esm2022/file-uploader/file-uploader.mjs +274 -0
  202. package/esm2022/file-uploader/file-uploader.ref.mjs +3 -0
  203. package/esm2022/file-uploader/file-uploader.service.mjs +26 -0
  204. package/esm2022/filter/filter.mjs +173 -0
  205. package/esm2022/form/form-control/form-control-action.mjs +18 -0
  206. package/esm2022/form/form-control/form-control-icon.mjs +18 -0
  207. package/esm2022/form/form-control/form-field.mjs +86 -0
  208. package/esm2022/form/form-control-wrapper/form-control-wrapper.component.mjs +22 -0
  209. package/esm2022/form/form-error-messages.mjs +43 -0
  210. package/esm2022/form/form-message/form-message.mjs +30 -0
  211. package/esm2022/form/select-input-field/select-input-field.mjs +14 -0
  212. package/esm2022/form/validate-and-submit.mjs +54 -0
  213. package/esm2022/full-container/full-container.component.mjs +30 -0
  214. package/esm2022/grid/grid-item.component.mjs +24 -0
  215. package/esm2022/grid/grid.component.mjs +56 -0
  216. package/esm2022/grid-row/grid-row.mjs +18 -0
  217. package/esm2022/icon/icons.mjs +619 -0
  218. package/esm2022/image-card/illustration.pipe.mjs +57 -0
  219. package/esm2022/image-card/image-card.component.mjs +22 -0
  220. package/esm2022/image-panel/image-panel.component.mjs +88 -0
  221. package/esm2022/info-column/info-column.mjs +18 -0
  222. package/esm2022/info-slider/info-slider.component.mjs +50 -0
  223. package/esm2022/inline-alert/inline-alert.mjs +51 -0
  224. package/esm2022/inline-group/inline-group.component.mjs +32 -0
  225. package/esm2022/input/input.mjs +25 -0
  226. package/esm2022/label/label.mjs +18 -0
  227. package/esm2022/layout/layout.component.mjs +23 -0
  228. package/esm2022/link/link.mjs +79 -0
  229. package/esm2022/media-preview/media-preview-icon.mjs +41 -0
  230. package/esm2022/media-preview/media-preview-modal/media-preview-modal.mjs +128 -0
  231. package/esm2022/media-preview/media-preview.mjs +131 -0
  232. package/esm2022/media-preview/media_preview.service.mjs +31 -0
  233. package/esm2022/menu/menu-icon.mjs +29 -0
  234. package/esm2022/menu/menu.component.mjs +151 -0
  235. package/esm2022/nebular-icon.mjs +179 -0
  236. package/esm2022/otp-input/otp-input.component.mjs +106 -0
  237. package/esm2022/otp-input/otp-input.icon.mjs +13 -0
  238. package/esm2022/page-container/page-container-info/page-container-info.component.mjs +28 -0
  239. package/esm2022/page-container/page-container.component.mjs +63 -0
  240. package/esm2022/page-header/page-header.component.mjs +47 -0
  241. package/esm2022/page-header/page-header.icons.mjs +8 -0
  242. package/esm2022/page-header/page-sub-heading/page-sub-heading.component.mjs +12 -0
  243. package/esm2022/page-loader/page-loader.component.mjs +47 -0
  244. package/esm2022/pagination/pagination.icon.mjs +11 -0
  245. package/esm2022/pagination/pagination.mjs +170 -0
  246. package/esm2022/popover-content/popover-content-item/popover-content-item.component.mjs +15 -0
  247. package/esm2022/popover-content/popover-content.component.mjs +23 -0
  248. package/esm2022/preview-box/preview-box.component.mjs +73 -0
  249. package/esm2022/progress-bar/progress-bar.component.mjs +31 -0
  250. package/esm2022/progress-chart/progress-chart.component.mjs +87 -0
  251. package/esm2022/public-api.mjs +141 -0
  252. package/esm2022/radio-card-group/radio-card/radio-card.component.mjs +86 -0
  253. package/esm2022/radio-card-group/radio-card-group.component.mjs +61 -0
  254. package/esm2022/regex-checker/regex-checker-icon.mjs +18 -0
  255. package/esm2022/regex-checker/regex-checker.mjs +77 -0
  256. package/esm2022/regex-checker/regex-validity-icon.pipe.mjs +25 -0
  257. package/esm2022/ribbon/ribbon-icon.mjs +8 -0
  258. package/esm2022/ribbon/ribbon.mjs +37 -0
  259. package/esm2022/round-checkbox/round-checkbox.component.mjs +43 -0
  260. package/esm2022/row/column/column.component.mjs +19 -0
  261. package/esm2022/row/row.component.mjs +32 -0
  262. package/esm2022/scrollable-content/scrollable-content.component.mjs +22 -0
  263. package/esm2022/section-header/section-header.component.mjs +29 -0
  264. package/esm2022/section-row/section-row.mjs +35 -0
  265. package/esm2022/section-separator/section-separator.mjs +69 -0
  266. package/esm2022/section-shell/section-shell.component.mjs +45 -0
  267. package/esm2022/select/select.component.mjs +137 -0
  268. package/esm2022/select-card/select-card-icon.mjs +24 -0
  269. package/esm2022/select-card/select-card.component.mjs +117 -0
  270. package/esm2022/select-country/select-country.component.mjs +86 -0
  271. package/esm2022/shell/checker-sidebar/checker-sidebar.component.mjs +19 -0
  272. package/esm2022/shell/maker-sidebar/maker-sidebar.component.mjs +19 -0
  273. package/esm2022/shell/nebular-icons.mjs +180 -0
  274. package/esm2022/shell/shell-icons.mjs +474 -0
  275. package/esm2022/shell/shell-sidebar/shell-sidebar.component.mjs +38 -0
  276. package/esm2022/shell/shell.component.mjs +77 -0
  277. package/esm2022/side-drawer/side-drawer.mjs +15 -0
  278. package/esm2022/side-drawer/side-drawer.service.mjs +71 -0
  279. package/esm2022/size/component-size.mjs +2 -0
  280. package/esm2022/spinner/spinner.mjs +32 -0
  281. package/esm2022/stepper/step/step.mjs +20 -0
  282. package/esm2022/stepper/step/step.pipe.mjs +21 -0
  283. package/esm2022/stepper/step-header/step-header.mjs +29 -0
  284. package/esm2022/stepper/stepper-button/stepper-next.mjs +21 -0
  285. package/esm2022/stepper/stepper-button/stepper-previous.mjs +21 -0
  286. package/esm2022/stepper/stepper.mjs +56 -0
  287. package/esm2022/stimulus.module.mjs +891 -0
  288. package/esm2022/table/table-column/scl-table-column.mjs +54 -0
  289. package/esm2022/table/table-icon.mjs +13 -0
  290. package/esm2022/table/table-text/scl-table-text.mjs +51 -0
  291. package/esm2022/table/table.config.mjs +15 -0
  292. package/esm2022/table/table.mjs +186 -0
  293. package/esm2022/table-action-control/table-action-control.component.mjs +20 -0
  294. package/esm2022/tabset/tab/tab.component.mjs +29 -0
  295. package/esm2022/tabset/tab-directive/tabset.directive.mjs +22 -0
  296. package/esm2022/tabset/tabset.component.mjs +40 -0
  297. package/esm2022/taglist/tag/tag.component.mjs +51 -0
  298. package/esm2022/taglist/tag/tag.directive.mjs +30 -0
  299. package/esm2022/taglist/taglist.component.mjs +39 -0
  300. package/esm2022/text-decoration/text-decoration.component.mjs +26 -0
  301. package/esm2022/text-editor/text-editor.mjs +263 -0
  302. package/esm2022/theme.provider.mjs +9 -0
  303. package/esm2022/timeline/timeline.component.mjs +66 -0
  304. package/esm2022/timepicker/timepicker.component.mjs +377 -0
  305. package/esm2022/timepicker/timepicker.icon.mjs +7 -0
  306. package/esm2022/timepicker/timepicker.model.mjs +6 -0
  307. package/esm2022/toggle/toggle-description/toggle-description.mjs +18 -0
  308. package/esm2022/toggle/toggle.mjs +75 -0
  309. package/esm2022/toggle-password/toggle-password.component.mjs +54 -0
  310. package/esm2022/toggle-password/toggle-password.directive.mjs +26 -0
  311. package/esm2022/toggle-password/toggle-password.icon.mjs +13 -0
  312. package/esm2022/treeview/treeview-header/treeview-header.mjs +26 -0
  313. package/esm2022/treeview/treeview.icon.mjs +53 -0
  314. package/esm2022/treeview/treeview.mjs +319 -0
  315. package/esm2022/truncate/truncate.component.mjs +53 -0
  316. package/esm2022/typography/typography.mjs +168 -0
  317. package/extract-inital/extract-initial.d.ts +8 -0
  318. package/f1softinternational-stimulus-1.0.0.tgz +0 -0
  319. package/fesm2022/f1softinternational-stimulus.mjs +10275 -0
  320. package/file-uploader/file-upload-config.scss +48 -0
  321. package/file-uploader/file-upload.scss +77 -0
  322. package/file-uploader/file-uploader-icon.d.ts +3 -0
  323. package/file-uploader/file-uploader.d.ts +84 -0
  324. package/file-uploader/file-uploader.ref.d.ts +6 -0
  325. package/file-uploader/file-uploader.service.d.ts +11 -0
  326. package/filter/filter.d.ts +48 -0
  327. package/flag/_flags.scss +9 -0
  328. package/form/form-config.scss +14 -0
  329. package/form/form-control/form-control-action.d.ts +6 -0
  330. package/form/form-control/form-control-config.scss +9 -0
  331. package/form/form-control/form-control-icon.d.ts +6 -0
  332. package/form/form-control/form-control.scss +17 -0
  333. package/form/form-control/form-field.d.ts +26 -0
  334. package/form/form-control-wrapper/form-control-wrapper-config.scss +11 -0
  335. package/form/form-control-wrapper/form-control-wrapper.component.d.ts +8 -0
  336. package/form/form-control-wrapper/form-control-wrapper.scss +17 -0
  337. package/form/form-error-messages.d.ts +8 -0
  338. package/form/form-message/form-message-config.scss +7 -0
  339. package/form/form-message/form-message.d.ts +15 -0
  340. package/form/form-message/form-message.scss +6 -0
  341. package/form/form.scss +22 -0
  342. package/form/select-input-field/select-input-field-config.scss +13 -0
  343. package/form/select-input-field/select-input-field.d.ts +6 -0
  344. package/form/select-input-field/select-input-field.scss +43 -0
  345. package/form/validate-and-submit.d.ts +14 -0
  346. package/full-container/full-container-config.scss +16 -0
  347. package/full-container/full-container.component.d.ts +11 -0
  348. package/full-container/full-container.component.scss +54 -0
  349. package/grid/grid-config.scss +14 -0
  350. package/grid/grid-item.component.d.ts +8 -0
  351. package/grid/grid.component.d.ts +10 -0
  352. package/grid/grid.component.scss +26 -0
  353. package/grid-row/grid-row.config.scss +9 -0
  354. package/grid-row/grid-row.d.ts +6 -0
  355. package/grid-row/grid-row.scss +7 -0
  356. package/icon/icon.config.scss +9 -0
  357. package/icon/icon.scss +9 -0
  358. package/icon/icons.d.ts +3 -0
  359. package/image-card/illustration.pipe.d.ts +8 -0
  360. package/image-card/image-card-config.scss +29 -0
  361. package/image-card/image-card.component.d.ts +8 -0
  362. package/image-card/image-card.scss +37 -0
  363. package/image-panel/image-panel-config.scss +30 -0
  364. package/image-panel/image-panel.component.d.ts +26 -0
  365. package/image-panel/image-panel.component.scss +80 -0
  366. package/index.d.ts +6 -0
  367. package/info-column/info-column-config.scss +14 -0
  368. package/info-column/info-column.d.ts +7 -0
  369. package/info-column/info-column.scss +17 -0
  370. package/info-slider/info-slider-config.scss +10 -0
  371. package/info-slider/info-slider.component.d.ts +16 -0
  372. package/info-slider/info-slider.component.scss +21 -0
  373. package/inline-alert/inline-alert-config.scss +12 -0
  374. package/inline-alert/inline-alert.d.ts +20 -0
  375. package/inline-alert/inline-alert.scss +16 -0
  376. package/inline-group/inline-group.component.d.ts +10 -0
  377. package/inline-group/inline-group.component.scss +15 -0
  378. package/input/input-config.scss +57 -0
  379. package/input/input.d.ts +10 -0
  380. package/input/input.scss +68 -0
  381. package/label/label-config.scss +13 -0
  382. package/label/label.d.ts +6 -0
  383. package/label/label.scss +10 -0
  384. package/layout/layout.component.d.ts +9 -0
  385. package/link/link-config.scss +89 -0
  386. package/link/link.d.ts +19 -0
  387. package/link/link.scss +157 -0
  388. package/media-preview/media-preview-config.scss +15 -0
  389. package/media-preview/media-preview-icon.d.ts +3 -0
  390. package/media-preview/media-preview-modal/media-preview-modal.d.ts +31 -0
  391. package/media-preview/media-preview-modal/media-preview-modal.scss +148 -0
  392. package/media-preview/media-preview-modal/media-previw-modal-config.scss +44 -0
  393. package/media-preview/media-preview.d.ts +48 -0
  394. package/media-preview/media-preview.scss +59 -0
  395. package/media-preview/media_preview.service.d.ts +16 -0
  396. package/menu/menu-config.scss +33 -0
  397. package/menu/menu-icon.d.ts +3 -0
  398. package/menu/menu.component.d.ts +47 -0
  399. package/menu/menu.component.scss +80 -0
  400. package/nebular-icon.d.ts +3 -0
  401. package/otp-input/otp-input-config.scss +22 -0
  402. package/otp-input/otp-input.component.d.ts +33 -0
  403. package/otp-input/otp-input.component.scss +52 -0
  404. package/otp-input/otp-input.icon.d.ts +3 -0
  405. package/package.json +57 -0
  406. package/page-container/page-container-config.scss +9 -0
  407. package/page-container/page-container-info/page-container-info-config.scss +9 -0
  408. package/page-container/page-container-info/page-container-info.component.d.ts +10 -0
  409. package/page-container/page-container-info/page-container-info.scss +6 -0
  410. package/page-container/page-container.component.d.ts +14 -0
  411. package/page-container/page-container.component.scss +11 -0
  412. package/page-header/page-header-config.scss +28 -0
  413. package/page-header/page-header.component.d.ts +18 -0
  414. package/page-header/page-header.component.scss +37 -0
  415. package/page-header/page-header.icons.d.ts +3 -0
  416. package/page-header/page-sub-heading/page-sub-heading.component.d.ts +6 -0
  417. package/page-loader/page-loader-config.scss +23 -0
  418. package/page-loader/page-loader.component.d.ts +13 -0
  419. package/page-loader/page-loader.component.scss +44 -0
  420. package/pagination/pagination-config.scss +24 -0
  421. package/pagination/pagination.d.ts +47 -0
  422. package/pagination/pagination.icon.d.ts +3 -0
  423. package/pagination/pagination.scss +67 -0
  424. package/popover-content/popover-content-item/popover-content-item-config.scss +22 -0
  425. package/popover-content/popover-content-item/popover-content-item.component.d.ts +6 -0
  426. package/popover-content/popover-content-item/popover-content-item.scss +36 -0
  427. package/popover-content/popover-content.component.d.ts +14 -0
  428. package/preview-box/preview-box-config.scss +52 -0
  429. package/preview-box/preview-box.component.d.ts +31 -0
  430. package/preview-box/preview-box.component.scss +101 -0
  431. package/progress-bar/progress-bar-config.scss +14 -0
  432. package/progress-bar/progress-bar.component.d.ts +10 -0
  433. package/progress-bar/progress-bar.component.scss +13 -0
  434. package/progress-chart/progress-chart-config.scss +15 -0
  435. package/progress-chart/progress-chart.component.d.ts +21 -0
  436. package/progress-chart/progress-chart.component.scss +41 -0
  437. package/public-api.d.ts +135 -0
  438. package/radio-button/radio-button-config.scss +47 -0
  439. package/radio-button/radio-button.scss +89 -0
  440. package/radio-card-group/radio-card/radio-card-config.scss +31 -0
  441. package/radio-card-group/radio-card/radio-card.component.d.ts +30 -0
  442. package/radio-card-group/radio-card/radio-card.component.scss +88 -0
  443. package/radio-card-group/radio-card-group-config.scss +9 -0
  444. package/radio-card-group/radio-card-group.component.d.ts +20 -0
  445. package/radio-card-group/radio-card-group.scss +7 -0
  446. package/regex-checker/regex-checker-config.scss +24 -0
  447. package/regex-checker/regex-checker-icon.d.ts +3 -0
  448. package/regex-checker/regex-checker.d.ts +29 -0
  449. package/regex-checker/regex-checker.scss +38 -0
  450. package/regex-checker/regex-validity-icon.pipe.d.ts +8 -0
  451. package/ribbon/ribbon-config.scss +21 -0
  452. package/ribbon/ribbon-icon.d.ts +3 -0
  453. package/ribbon/ribbon.d.ts +14 -0
  454. package/ribbon/ribbon.scss +29 -0
  455. package/round-checkbox/round-checkbox-config.scss +15 -0
  456. package/round-checkbox/round-checkbox.component.d.ts +16 -0
  457. package/round-checkbox/round-checkbox.component.scss +23 -0
  458. package/row/column/column.component.d.ts +9 -0
  459. package/row/row-config.scss +10 -0
  460. package/row/row.component.d.ts +9 -0
  461. package/row/row.scss +22 -0
  462. package/scrollable-content/scrollable-content-config.scss +11 -0
  463. package/scrollable-content/scrollable-content.component.d.ts +8 -0
  464. package/scrollable-content/scrollable-content.component.scss +28 -0
  465. package/section-header/section-header-config.scss +18 -0
  466. package/section-header/section-header.component.d.ts +9 -0
  467. package/section-header/section-header.component.scss +32 -0
  468. package/section-row/section-row-config.scss +9 -0
  469. package/section-row/section-row.d.ts +9 -0
  470. package/section-row/section-row.scss +23 -0
  471. package/section-separator/section-separator-config.scss +19 -0
  472. package/section-separator/section-separator.d.ts +15 -0
  473. package/section-separator/section-separator.scss +28 -0
  474. package/section-shell/section-shell-config.scss +23 -0
  475. package/section-shell/section-shell.component.d.ts +12 -0
  476. package/section-shell/section-shell.component.scss +30 -0
  477. package/select/select-config.scss +78 -0
  478. package/select/select.component.d.ts +44 -0
  479. package/select/select.scss +174 -0
  480. package/select-card/select-card-config.scss +32 -0
  481. package/select-card/select-card-icon.d.ts +3 -0
  482. package/select-card/select-card.component.d.ts +38 -0
  483. package/select-card/select-card.component.scss +66 -0
  484. package/select-country/select-country-config.scss +10 -0
  485. package/select-country/select-country.component.d.ts +33 -0
  486. package/select-country/select-country.component.scss +34 -0
  487. package/shell/checker-sidebar/checker-sidebar-config.scss +21 -0
  488. package/shell/checker-sidebar/checker-sidebar.component.d.ts +8 -0
  489. package/shell/checker-sidebar/checker-sidebar.component.scss +34 -0
  490. package/shell/maker-sidebar/maker-sidebar-config.scss +21 -0
  491. package/shell/maker-sidebar/maker-sidebar.component.d.ts +8 -0
  492. package/shell/maker-sidebar/maker-sidebar.component.scss +34 -0
  493. package/shell/nebular-icons.d.ts +3 -0
  494. package/shell/shell-config.component.scss +25 -0
  495. package/shell/shell-icons.d.ts +3 -0
  496. package/shell/shell-sidebar/shell-sidebar-config.scss +43 -0
  497. package/shell/shell-sidebar/shell-sidebar.component.d.ts +14 -0
  498. package/shell/shell-sidebar/shell-sidebar.component.scss +106 -0
  499. package/shell/shell-sidebar-menu/shell-sidebar-menu-config.scss +56 -0
  500. package/shell/shell-sidebar-menu/shell-sidebar-menu.scss +76 -0
  501. package/shell/shell.component.d.ts +21 -0
  502. package/shell/shell.component.scss +55 -0
  503. package/side-drawer/side-drawer-config.scss +20 -0
  504. package/side-drawer/side-drawer.d.ts +8 -0
  505. package/side-drawer/side-drawer.scss +52 -0
  506. package/side-drawer/side-drawer.service.d.ts +20 -0
  507. package/size/component-size.d.ts +2 -0
  508. package/spinner/spinner.d.ts +11 -0
  509. package/stepper/step/step.d.ts +8 -0
  510. package/stepper/step/step.pipe.d.ts +8 -0
  511. package/stepper/step-header/step-header.d.ts +12 -0
  512. package/stepper/stepper-button/stepper-next.d.ts +7 -0
  513. package/stepper/stepper-button/stepper-previous.d.ts +7 -0
  514. package/stepper/stepper.config.scss +37 -0
  515. package/stepper/stepper.d.ts +19 -0
  516. package/stepper/stepper.scss +149 -0
  517. package/stimulus-config.scss +98 -0
  518. package/stimulus.module.d.ts +136 -0
  519. package/stimulus.scss +107 -0
  520. package/table/table-column/scl-table-column.d.ts +26 -0
  521. package/table/table-config.scss +63 -0
  522. package/table/table-icon.d.ts +3 -0
  523. package/table/table-text/scl-table-text.d.ts +13 -0
  524. package/table/table.config.d.ts +19 -0
  525. package/table/table.d.ts +58 -0
  526. package/table/table.scss +232 -0
  527. package/table-action-control/table-action-control-config.scss +12 -0
  528. package/table-action-control/table-action-control.component.d.ts +8 -0
  529. package/table-action-control/table-action-control.component.scss +14 -0
  530. package/tabset/route-tab/route-tab-config.scss +30 -0
  531. package/tabset/route-tab/route-tab.scss +44 -0
  532. package/tabset/tab/tab.component.d.ts +9 -0
  533. package/tabset/tab-directive/tabset-config.scss +49 -0
  534. package/tabset/tab-directive/tabset.directive.d.ts +7 -0
  535. package/tabset/tab-directive/tabset.scss +154 -0
  536. package/tabset/tabset.component.d.ts +14 -0
  537. package/tabset/tabset.component.scss +79 -0
  538. package/taglist/tag/tag-config.scss +30 -0
  539. package/taglist/tag/tag.component.d.ts +17 -0
  540. package/taglist/tag/tag.directive.d.ts +16 -0
  541. package/taglist/tag/tag.scss +43 -0
  542. package/taglist/taglist.component.d.ts +12 -0
  543. package/text-decoration/text-decoration.component.d.ts +9 -0
  544. package/text-decoration/text-decoration.scss +7 -0
  545. package/text-editor/text-editor.config.scss +23 -0
  546. package/text-editor/text-editor.d.ts +60 -0
  547. package/text-editor/text-editor.scss +74 -0
  548. package/theme.provider.d.ts +2 -0
  549. package/timeline/timeline-config.scss +49 -0
  550. package/timeline/timeline.component.d.ts +26 -0
  551. package/timeline/timeline.component.scss +126 -0
  552. package/timepicker/timepicker-config.scss +41 -0
  553. package/timepicker/timepicker.component.d.ts +74 -0
  554. package/timepicker/timepicker.component.scss +111 -0
  555. package/timepicker/timepicker.icon.d.ts +3 -0
  556. package/timepicker/timepicker.model.d.ts +13 -0
  557. package/toggle/toggle-config.scss +51 -0
  558. package/toggle/toggle-description/toggle-description.d.ts +6 -0
  559. package/toggle/toggle.d.ts +19 -0
  560. package/toggle/toggle.scss +31 -0
  561. package/toggle-password/toggle-password-config.scss +12 -0
  562. package/toggle-password/toggle-password.component.d.ts +21 -0
  563. package/toggle-password/toggle-password.directive.d.ts +13 -0
  564. package/toggle-password/toggle-password.icon.d.ts +3 -0
  565. package/toggle-password/toggle-password.scss +16 -0
  566. package/treeview/treeview-config.scss +86 -0
  567. package/treeview/treeview-header/treeview-header.d.ts +12 -0
  568. package/treeview/treeview.d.ts +66 -0
  569. package/treeview/treeview.icon.d.ts +3 -0
  570. package/treeview/treeview.scss +278 -0
  571. package/truncate/truncate.component.d.ts +16 -0
  572. package/truncate/truncate.scss +18 -0
  573. package/typography/font.scss +28 -0
  574. package/typography/typography-config.scss +73 -0
  575. package/typography/typography.d.ts +37 -0
  576. package/typography/typography.scss +47 -0
@@ -0,0 +1,195 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { CommonModule } from '@angular/common';
3
+ import { Component, EventEmitter, Inject, Input, Optional, Output, ViewChildren } from '@angular/core';
4
+ import { DATE_TIME_PICKER } from '../custom-datepicker.component';
5
+ import { TIME_FORMAT } from '../custom-datepicker.model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ class TimepickerComponent {
9
+ set twelveHoursFormat(value) {
10
+ if (value) {
11
+ this.isTwelveHoursFormat = coerceBooleanProperty(value);
12
+ this.hours = ['12', ...Array.from({ length: 11 }, (_, i) => (i + 1).toString().padStart(2, '0'))];
13
+ }
14
+ }
15
+ set timeValues(value) {
16
+ if (value) {
17
+ this.selectedTime = value;
18
+ this.extractTimeParts();
19
+ this.scrollToSelectedItems();
20
+ }
21
+ }
22
+ set format(value) {
23
+ if (value) {
24
+ this.timeFormat = value;
25
+ }
26
+ }
27
+ get format() {
28
+ return this.timeFormat;
29
+ }
30
+ constructor(dateTimePicker) {
31
+ this.dateTimePicker = dateTimePicker;
32
+ this.timeChange = new EventEmitter();
33
+ this.timepickerOptions = [];
34
+ this.hours = Array.from({ length: 24 }, (_, i) => i.toString().padStart(2, '0'));
35
+ this.selectedHour = '00';
36
+ this.minutes = Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, '0'));
37
+ this.selectedMinute = '00';
38
+ this.periods = ['AM', 'PM'];
39
+ this.selectedPeriod = 'AM';
40
+ this.defaultSeconds = '00';
41
+ this.isTwelveHoursFormat = false;
42
+ this.selectedTime = '';
43
+ this.timeFormat = TIME_FORMAT.DEFAULT_TIME;
44
+ if (!this.dateTimePicker) {
45
+ throw new Error('Timepicker can only be used inside custom-datepicker component');
46
+ }
47
+ }
48
+ ngAfterViewInit() {
49
+ this.scrollToSelectedItems();
50
+ }
51
+ ngOnInit() {
52
+ this.setTimePickerOptions();
53
+ if (this.selectedTime) {
54
+ this.extractTimeParts();
55
+ }
56
+ }
57
+ onSelect(value, option) {
58
+ this.setSelectedValues(value, option);
59
+ this.emitTimeChange();
60
+ }
61
+ setTimePickerOptions() {
62
+ this.timepickerOptions = [
63
+ { unit: 'Hours', data: this.hours.map(value => ({ label: value, isSelected: false })) },
64
+ { unit: 'Minutes', data: this.minutes.map(value => ({ label: value, isSelected: false })) },
65
+ ];
66
+ if (this.isTwelveHoursFormat) {
67
+ this.timepickerOptions = [
68
+ ...this.timepickerOptions.filter(option => option.unit !== 'Periods'),
69
+ {
70
+ unit: 'Periods',
71
+ data: this.periods.map(value => ({ label: value, isSelected: value === this.selectedPeriod })),
72
+ },
73
+ ];
74
+ }
75
+ }
76
+ setSelectedValues(value, option) {
77
+ const group = this.timepickerOptions.find(item => item.unit === option);
78
+ if (group) {
79
+ group.data.forEach(item => (item.isSelected = false));
80
+ value.isSelected = true;
81
+ switch (option) {
82
+ case 'Hours':
83
+ this.selectedHour = value.label;
84
+ break;
85
+ case 'Minutes':
86
+ this.selectedMinute = value.label;
87
+ break;
88
+ case 'Seconds':
89
+ this.defaultSeconds = value.label;
90
+ break;
91
+ case 'Periods':
92
+ this.selectedPeriod = value.label;
93
+ break;
94
+ default:
95
+ return;
96
+ }
97
+ }
98
+ }
99
+ emitTimeChange() {
100
+ let formattedTime = '';
101
+ if (this.isTwelveHoursFormat) {
102
+ formattedTime =
103
+ `${this.selectedHour.padStart(2, '0')}:${this.selectedMinute.padStart(2, '0')}` +
104
+ (this.format.includes(':ss') ? `:${this.defaultSeconds}` : '') +
105
+ ` ${this.selectedPeriod}`;
106
+ }
107
+ else {
108
+ formattedTime =
109
+ `${this.selectedHour.padStart(2, '0')}:${this.selectedMinute.padStart(2, '0')}` +
110
+ (this.format.includes(':ss') ? `:${this.defaultSeconds}` : '');
111
+ }
112
+ this.timeChange.emit(formattedTime);
113
+ }
114
+ extractTimeParts() {
115
+ if (this.timepickerOptions.length) {
116
+ const [time, period] = this.selectedTime.split(' ');
117
+ const [hours, minutes, seconds] = time.split(':');
118
+ this.selectTimePart('Hours', hours);
119
+ this.selectTimePart('Minutes', minutes);
120
+ this.selectTimePart('Seconds', seconds);
121
+ this.selectTimePart('Periods', period);
122
+ }
123
+ }
124
+ selectTimePart(unit, selectedValue) {
125
+ if (selectedValue) {
126
+ const group = this.timepickerOptions.find(item => item.unit === unit);
127
+ if (group) {
128
+ group.data.forEach(item => (item.isSelected = false));
129
+ const selectedItem = group.unit === 'Periods'
130
+ ? group.data.find(item => item.label.includes(selectedValue))
131
+ : group.data.find(item => item.label === selectedValue);
132
+ if (selectedItem) {
133
+ selectedItem.isSelected = true;
134
+ switch (unit) {
135
+ case 'Hours':
136
+ this.selectedHour = selectedItem.label;
137
+ break;
138
+ case 'Minutes':
139
+ this.selectedMinute = selectedItem.label;
140
+ break;
141
+ case 'Seconds':
142
+ this.defaultSeconds = selectedItem.label;
143
+ break;
144
+ case 'Periods':
145
+ this.selectedPeriod = selectedItem.label;
146
+ break;
147
+ default:
148
+ return;
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ getItemId(unit, label) {
155
+ return `${unit}-${label}`;
156
+ }
157
+ scrollToSelectedItems() {
158
+ this.timepickerOptions.forEach(option => {
159
+ const selectedItem = option.data.find(item => item.isSelected);
160
+ if (selectedItem) {
161
+ const itemId = this.getItemId(option.unit, selectedItem.label);
162
+ const element = document.getElementById(itemId);
163
+ if (element) {
164
+ element.scrollIntoView({ behavior: 'auto', block: 'start' });
165
+ }
166
+ }
167
+ });
168
+ }
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: TimepickerComponent, deps: [{ token: DATE_TIME_PICKER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: TimepickerComponent, isStandalone: true, selector: "timepicker", inputs: { twelveHoursFormat: "twelveHoursFormat", timeValues: "timeValues", format: "format" }, outputs: { timeChange: "timeChange" }, host: { classAttribute: "timepicker" }, viewQueries: [{ propertyName: "timepickerItems", predicate: ["timepickerItem"], descendants: true }], ngImport: i0, template: "<div class=\"timepicker__data\" *ngFor=\"let option of timepickerOptions\">\n <div class=\"timepicker__column-header\" sclText textType=\"bodyMedium\">{{ option.unit }}</div>\n <div class=\"timepicker__columns\">\n <button\n #timepickerItem\n *ngFor=\"let item of option.data\"\n [class.selected]=\"item.isSelected\"\n (click)=\"onSelect(item, option.unit)\"\n sclText\n textType=\"bodyMedium\"\n class=\"timepicker__item\"\n [id]=\"getItemId(option.unit, item.label)\">\n {{ item.label }}\n </button>\n </div>\n</div>\n", styles: ["/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */.timepicker{display:flex}.timepicker__data{display:grid;grid-template-rows:auto 1fr;height:var(--scl-timepicker-data-height);border-right:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__data:last-child{border-right:none}.timepicker__column-header{width:var(--scl-timepicker-column-header-width);height:var(--scl-timepicker-column-header-height);text-align:center;padding:var(--scl-timepicker-column-header-padding)}.timepicker__columns{padding:var(--scl-timepicker-columns-padding);overflow-y:scroll;border-top:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__columns::-webkit-scrollbar{width:var(--scl-timepicker-columns-scrollbar-width)}.timepicker__columns::-webkit-scrollbar-thumb{color:transparent;background-color:transparent;border-radius:var(--scl-timepicker-columns-scrollbar-border-radius);cursor:pointer}.timepicker__columns:hover::-webkit-scrollbar-thumb{color:var(--scl-timepicker-columns-scrollbar-color);background-color:var(--scl-timepicker-columns-scrollbar-background-color)}.timepicker__item{width:var(--scl-timepicker-item-width);padding:var(--scl-timepicker-item-padding);text-align:center;cursor:pointer;display:block;background-color:#fff;border:none}.timepicker__item:hover{background-color:var(--scl-timepicker-item-hover-background-color)}.timepicker__item.selected{background-color:var(--scl-timepicker-item-selected-background-color);border-radius:var(--scl-timepicker-item-selected-border-radius);position:relative}.timepicker__item.selected:after{content:\"\";position:absolute;top:.875rem;left:.75rem;transform:rotate(-45deg);width:var(--scl-timepicker-check-icon-width);height:var(--scl-timepicker-check-icon-height);border-bottom:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color);border-left:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
171
+ }
172
+ export { TimepickerComponent };
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: TimepickerComponent, decorators: [{
174
+ type: Component,
175
+ args: [{ selector: 'timepicker', standalone: true, imports: [CommonModule], host: {
176
+ class: 'timepicker',
177
+ }, template: "<div class=\"timepicker__data\" *ngFor=\"let option of timepickerOptions\">\n <div class=\"timepicker__column-header\" sclText textType=\"bodyMedium\">{{ option.unit }}</div>\n <div class=\"timepicker__columns\">\n <button\n #timepickerItem\n *ngFor=\"let item of option.data\"\n [class.selected]=\"item.isSelected\"\n (click)=\"onSelect(item, option.unit)\"\n sclText\n textType=\"bodyMedium\"\n class=\"timepicker__item\"\n [id]=\"getItemId(option.unit, item.label)\">\n {{ item.label }}\n </button>\n </div>\n</div>\n", styles: ["/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */.timepicker{display:flex}.timepicker__data{display:grid;grid-template-rows:auto 1fr;height:var(--scl-timepicker-data-height);border-right:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__data:last-child{border-right:none}.timepicker__column-header{width:var(--scl-timepicker-column-header-width);height:var(--scl-timepicker-column-header-height);text-align:center;padding:var(--scl-timepicker-column-header-padding)}.timepicker__columns{padding:var(--scl-timepicker-columns-padding);overflow-y:scroll;border-top:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__columns::-webkit-scrollbar{width:var(--scl-timepicker-columns-scrollbar-width)}.timepicker__columns::-webkit-scrollbar-thumb{color:transparent;background-color:transparent;border-radius:var(--scl-timepicker-columns-scrollbar-border-radius);cursor:pointer}.timepicker__columns:hover::-webkit-scrollbar-thumb{color:var(--scl-timepicker-columns-scrollbar-color);background-color:var(--scl-timepicker-columns-scrollbar-background-color)}.timepicker__item{width:var(--scl-timepicker-item-width);padding:var(--scl-timepicker-item-padding);text-align:center;cursor:pointer;display:block;background-color:#fff;border:none}.timepicker__item:hover{background-color:var(--scl-timepicker-item-hover-background-color)}.timepicker__item.selected{background-color:var(--scl-timepicker-item-selected-background-color);border-radius:var(--scl-timepicker-item-selected-border-radius);position:relative}.timepicker__item.selected:after{content:\"\";position:absolute;top:.875rem;left:.75rem;transform:rotate(-45deg);width:var(--scl-timepicker-check-icon-width);height:var(--scl-timepicker-check-icon-height);border-bottom:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color);border-left:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color)}\n"] }]
178
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
179
+ type: Optional
180
+ }, {
181
+ type: Inject,
182
+ args: [DATE_TIME_PICKER]
183
+ }] }]; }, propDecorators: { timepickerItems: [{
184
+ type: ViewChildren,
185
+ args: ['timepickerItem']
186
+ }], timeChange: [{
187
+ type: Output
188
+ }], twelveHoursFormat: [{
189
+ type: Input
190
+ }], timeValues: [{
191
+ type: Input
192
+ }], format: [{
193
+ type: Input
194
+ }] } });
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvY3VzdG9tLWRhdGVwaWNrZXIvdGltZXBpY2tlci90aW1lcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9jdXN0b20tZGF0ZXBpY2tlci90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQW9DLE1BQU0sNEJBQTRCLENBQUM7OztBQUUzRixNQVVhLG1CQUFtQjtJQUk1QixJQUFhLGlCQUFpQixDQUFDLEtBQXVCO1FBQ2xELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckc7SUFDTCxD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aEU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E1TFEsbUJBQW1CLGtCQTZDSSxnQkFBZ0I7a0dBN0N2QyxtQkFBbUIsMlZDaEJoQyxvb0JBZ0JBLDJuRURMYyxZQUFZOztTQUtiLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNJLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsUUFDakI7d0JBQ0YsS0FBSyxFQUFFLFlBQVk7cUJBQ3RCOzswQkErQ1ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBNUNoQixlQUFlO3NCQUE5QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDcEIsVUFBVTtzQkFBbkIsTUFBTTtnQkFFTSxpQkFBaUI7c0JBQTdCLEtBQUs7Z0JBT08sVUFBVTtzQkFBdEIsS0FBSztnQkFRTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREFURV9USU1FX1BJQ0tFUiB9IGZyb20gJy4uL2N1c3RvbS1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUSU1FX0ZPUk1BVCwgVGltZXBpY2tlckRhdGEsIFRpbWVwaWNrZXJPcHRpb24gfSBmcm9tICcuLi9jdXN0b20tZGF0ZXBpY2tlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGltZXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aW1lcGlja2VyJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKCd0aW1lcGlja2VySXRlbScpIHRpbWVwaWNrZXJJdGVtcyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICBAT3V0cHV0KCkgdGltZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQElucHV0KCkgc2V0IHR3ZWx2ZUhvdXJzRm9ybWF0KHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc1R3ZWx2ZUhvdXJzRm9ybWF0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuaG91cnMgPSBbJzEyJywgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMTEgfSwgKF8sIGkpID0+IChpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpKV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGltZVZhbHVlcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuZXh0cmFjdFRpbWVQYXJ0cygpO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGltZUZvcm1hdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBmb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVGb3JtYXQ7XG4gICAgfVxuXG4gICAgdGltZXBpY2tlck9wdGlvbnM6IFRpbWVwaWNrZXJPcHRpb25bXSA9IFtdO1xuICAgIGhvdXJzOiBzdHJpbmdbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PiBpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSk7XG4gICAgc2VsZWN0ZWRIb3VyOiBzdHJpbmcgPSAnMDAnO1xuXG4gICAgbWludXRlczogc3RyaW5nW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA2MCB9LCAoXywgaSkgPT4gaS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykpO1xuICAgIHNlbGVjdGVkTWludXRlOiBzdHJpbmcgPSAnMDAnO1xuXG4gICAgcGVyaW9kczogc3RyaW5nW10gPSBbJ0FNJywgJ1BNJ107XG4gICAgc2VsZWN0ZWRQZXJpb2Q6IHN0cmluZyA9ICdBTSc7XG5cbiAgICBkZWZhdWx0U2Vjb25kczogc3RyaW5nID0gJzAwJztcblxuICAgIGlzVHdlbHZlSG91cnNGb3JtYXQgPSBmYWxzZTtcbiAgICBzZWxlY3RlZFRpbWUgPSAnJztcblxuICAgIHRpbWVGb3JtYXQ6IHN0cmluZyA9IFRJTUVfRk9STUFULkRFRkFVTFRfVElNRTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX1BJQ0tFUikgcHJpdmF0ZSBkYXRlVGltZVBpY2tlcjogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGVUaW1lUGlja2VyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpbWVwaWNrZXIgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgY3VzdG9tLWRhdGVwaWNrZXIgY29tcG9uZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWRJdGVtcygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFRpbWVQaWNrZXJPcHRpb25zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLmV4dHJhY3RUaW1lUGFydHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0KHZhbHVlOiBUaW1lcGlja2VyRGF0YSwgb3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlcyh2YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgdGhpcy5lbWl0VGltZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGltZVBpY2tlck9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGltZXBpY2tlck9wdGlvbnMgPSBbXG4gICAgICAgICAgICB7IHVuaXQ6ICdIb3VycycsIGRhdGE6IHRoaXMuaG91cnMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgaXNTZWxlY3RlZDogZmFsc2UgfSkpIH0sXG4gICAgICAgICAgICB7IHVuaXQ6ICdNaW51dGVzJywgZGF0YTogdGhpcy5taW51dGVzLm1hcCh2YWx1ZSA9PiAoeyBsYWJlbDogdmFsdWUsIGlzU2VsZWN0ZWQ6IGZhbHNlIH0pKSB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVHdlbHZlSG91cnNGb3JtYXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZXBpY2tlck9wdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy50aW1lcGlja2VyT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi51bml0ICE9PSAnUGVyaW9kcycpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pdDogJ1BlcmlvZHMnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLnBlcmlvZHMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgaXNTZWxlY3RlZDogdmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRQZXJpb2QgfSkpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZFZhbHVlcyh2YWx1ZTogVGltZXBpY2tlckRhdGEsIG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy50aW1lcGlja2VyT3B0aW9ucy5maW5kKGl0ZW0gPT4gaXRlbS51bml0ID09PSBvcHRpb24pO1xuXG4gICAgICAgIGlmIChncm91cCkge1xuICAgICAgICAgICAgZ3JvdXAuZGF0YS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uaXNTZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgICAgICB2YWx1ZS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnSG91cnMnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNaW51dGVzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdTZWNvbmRzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0U2Vjb25kcyA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdQZXJpb2RzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRUaW1lQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBsZXQgZm9ybWF0dGVkVGltZSA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVHdlbHZlSG91cnNGb3JtYXQpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFRpbWUgPVxuICAgICAgICAgICAgICAgIGAke3RoaXMuc2VsZWN0ZWRIb3VyLnBhZFN0YXJ0KDIsICcwJyl9OiR7dGhpcy5zZWxlY3RlZE1pbnV0ZS5wYWRTdGFydCgyLCAnMCcpfWAgK1xuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1hdC5pbmNsdWRlcygnOnNzJykgPyBgOiR7dGhpcy5kZWZhdWx0U2Vjb25kc31gIDogJycpICtcbiAgICAgICAgICAgICAgICBgICR7dGhpcy5zZWxlY3RlZFBlcmlvZH1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0dGVkVGltZSA9XG4gICAgICAgICAgICAgICAgYCR7dGhpcy5zZWxlY3RlZEhvdXIucGFkU3RhcnQoMiwgJzAnKX06JHt0aGlzLnNlbGVjdGVkTWludXRlLnBhZFN0YXJ0KDIsICcwJyl9YCArXG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWF0LmluY2x1ZGVzKCc6c3MnKSA/IGA6JHt0aGlzLmRlZmF1bHRTZWNvbmRzfWAgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aW1lQ2hhbmdlLmVtaXQoZm9ybWF0dGVkVGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0VGltZVBhcnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lcGlja2VyT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IFt0aW1lLCBwZXJpb2RdID0gdGhpcy5zZWxlY3RlZFRpbWUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgIGNvbnN0IFtob3VycywgbWludXRlcywgc2Vjb25kc10gPSB0aW1lLnNwbGl0KCc6Jyk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VGltZVBhcnQoJ0hvdXJzJywgaG91cnMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnTWludXRlcycsIG1pbnV0ZXMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnU2Vjb25kcycsIHNlY29uZHMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnUGVyaW9kcycsIHBlcmlvZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdFRpbWVQYXJ0KHVuaXQ6IHN0cmluZywgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChzZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHRoaXMudGltZXBpY2tlck9wdGlvbnMuZmluZChpdGVtID0+IGl0ZW0udW5pdCA9PT0gdW5pdCk7XG5cbiAgICAgICAgICAgIGlmIChncm91cCkge1xuICAgICAgICAgICAgICAgIGdyb3VwLmRhdGEuZm9yRWFjaChpdGVtID0+IChpdGVtLmlzU2VsZWN0ZWQgPSBmYWxzZSkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID1cbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAudW5pdCA9PT0gJ1BlcmlvZHMnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRhdGEuZmluZChpdGVtID0+IGl0ZW0ubGFiZWwuaW5jbHVkZXMoc2VsZWN0ZWRWYWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRhdGEuZmluZChpdGVtID0+IGl0ZW0ubGFiZWwgPT09IHNlbGVjdGVkVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uaXNTZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh1bml0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdIb3Vycyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSBzZWxlY3RlZEl0ZW0ubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdNaW51dGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gc2VsZWN0ZWRJdGVtLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnU2Vjb25kcyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0U2Vjb25kcyA9IHNlbGVjdGVkSXRlbS5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1BlcmlvZHMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSBzZWxlY3RlZEl0ZW0ubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEl0ZW1JZCh1bml0OiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dW5pdH0tJHtsYWJlbH1gO1xuICAgIH1cblxuICAgIHNjcm9sbFRvU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lcGlja2VyT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBvcHRpb24uZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5pc1NlbGVjdGVkKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSB0aGlzLmdldEl0ZW1JZChvcHRpb24udW5pdCwgc2VsZWN0ZWRJdGVtLmxhYmVsKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbUlkKTtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdhdXRvJywgYmxvY2s6ICdzdGFydCcgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fZGF0YVwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgdGltZXBpY2tlck9wdGlvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fY29sdW1uLWhlYWRlclwiIHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCI+e3sgb3B0aW9uLnVuaXQgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fY29sdW1uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAjdGltZXBpY2tlckl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbi5kYXRhXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpdGVtLmlzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0sIG9wdGlvbi51bml0KVwiXG4gICAgICAgICAgICBzY2xUZXh0XG4gICAgICAgICAgICB0ZXh0VHlwZT1cImJvZHlNZWRpdW1cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0aW1lcGlja2VyX19pdGVtXCJcbiAgICAgICAgICAgIFtpZF09XCJnZXRJdGVtSWQob3B0aW9uLnVuaXQsIGl0ZW0ubGFiZWwpXCI+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, HostBinding, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ class SclDataListComponent {
5
+ constructor() {
6
+ this.alignment = 'start';
7
+ }
8
+ get start() {
9
+ return this.alignment === 'start';
10
+ }
11
+ get end() {
12
+ return this.alignment === 'end';
13
+ }
14
+ get center() {
15
+ return this.alignment === 'center';
16
+ }
17
+ get spaceBetween() {
18
+ return this.alignment === 'space-between';
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclDataListComponent, isStandalone: true, selector: "scl-data-list", inputs: { label: "label", alignment: "alignment" }, host: { properties: { "class.scl-data-list--align-start": "this.start", "class.scl-data-list--align-end": "this.end", "class.scl-data-list--align-center": "this.center", "class.scl-data-list--space-between": "this.spaceBetween" }, classAttribute: "scl-data-list" }, ngImport: i0, template: "<h6 class=\"scl-data-list__label\">{{ label }}</h6>\n<section class=\"scl-data-list__value\">\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
22
+ }
23
+ export { SclDataListComponent };
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDataListComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'scl-data-list', standalone: true, imports: [CommonModule], host: {
27
+ class: 'scl-data-list',
28
+ }, template: "<h6 class=\"scl-data-list__label\">{{ label }}</h6>\n<section class=\"scl-data-list__value\">\n <ng-content></ng-content>\n</section>\n" }]
29
+ }], propDecorators: { label: [{
30
+ type: Input
31
+ }], alignment: [{
32
+ type: Input
33
+ }], start: [{
34
+ type: HostBinding,
35
+ args: ['class.scl-data-list--align-start']
36
+ }], end: [{
37
+ type: HostBinding,
38
+ args: ['class.scl-data-list--align-end']
39
+ }], center: [{
40
+ type: HostBinding,
41
+ args: ['class.scl-data-list--align-center']
42
+ }], spaceBetween: [{
43
+ type: HostBinding,
44
+ args: ['class.scl-data-list--space-between']
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2RhdGEtbGlzdC9kYXRhLWxpc3QudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0YS1saXN0L2RhdGEtbGlzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTlELE1BU2Esb0JBQW9CO0lBVGpDO1FBWWEsY0FBUyxHQUF1QixPQUFPLENBQUM7S0FvQnBEO0lBbEJHLElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQ0ksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQ0ksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUM7SUFDOUMsQ0FBQzs4R0F0QlEsb0JBQW9CO2tHQUFwQixvQkFBb0IsdVlDZGpDLDRJQUlBLDJDREljLFlBQVk7O1NBTWIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxRQUVqQjt3QkFDRixLQUFLLEVBQUUsZUFBZTtxQkFDekI7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixXQUFXO3VCQUFDLGtDQUFrQztnQkFNM0MsR0FBRztzQkFETixXQUFXO3VCQUFDLGdDQUFnQztnQkFNekMsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLG1DQUFtQztnQkFLNUMsWUFBWTtzQkFEZixXQUFXO3VCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBEYXRhTGlzdEFsaWdubWVudCA9ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInIHwgJ3NwYWNlLWJldHdlZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjbC1kYXRhLWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbGlzdC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnc2NsLWRhdGEtbGlzdCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRGF0YUxpc3RDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYWxpZ25tZW50PzogRGF0YUxpc3RBbGlnbm1lbnQgPSAnc3RhcnQnO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1zdGFydCcpXG4gICAgZ2V0IHN0YXJ0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGlnbm1lbnQgPT09ICdzdGFydCc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1lbmQnKVxuICAgIGdldCBlbmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsaWdubWVudCA9PT0gJ2VuZCc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1jZW50ZXInKVxuICAgIGdldCBjZW50ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsaWdubWVudCA9PT0gJ2NlbnRlcic7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2NsLWRhdGEtbGlzdC0tc3BhY2UtYmV0d2VlbicpXG4gICAgZ2V0IHNwYWNlQmV0d2VlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxpZ25tZW50ID09PSAnc3BhY2UtYmV0d2Vlbic7XG4gICAgfVxufVxuIiwiPGg2IGNsYXNzPVwic2NsLWRhdGEtbGlzdF9fbGFiZWxcIj57eyBsYWJlbCB9fTwvaDY+XG48c2VjdGlvbiBjbGFzcz1cInNjbC1kYXRhLWxpc3RfX3ZhbHVlXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zZWN0aW9uPlxuIl19
@@ -0,0 +1,207 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, ViewChild, forwardRef } from '@angular/core';
3
+ import { ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS, } from '@angular/forms';
4
+ import { NbButtonModule, NbCalendarKitModule, NbCalendarModule, NbCalendarRangeModule, NbIconModule, NbInputModule, NbPopoverDirective, NbPopoverModule, NbTimepickerModule, } from '@nebular/theme';
5
+ import { TimepickerComponent } from '../custom-datepicker/timepicker/timepicker.component';
6
+ import { SclDatepickerIcons } from '../custom-datepicker/datepicker.icon';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@nebular/theme";
10
+ import * as i3 from "@angular/common";
11
+ class SclDateRangePickerComponent {
12
+ constructor(fb, dateService, iconLibraries) {
13
+ this.fb = fb;
14
+ this.dateService = dateService;
15
+ this.iconLibraries = iconLibraries;
16
+ this.dateChange = new EventEmitter();
17
+ this.placeholder = 'Select date range';
18
+ this.isReadonly = false;
19
+ this.showPresets = false;
20
+ this.hasTimePicker = false;
21
+ this.isFormValid = false;
22
+ this.isRequired = false;
23
+ this.touched = false;
24
+ this.onChange = () => { };
25
+ this.onTouched = () => { };
26
+ this.onTouch = () => { };
27
+ this.iconLibraries.registerSvgPack('scl-datepicker-icon', SclDatepickerIcons);
28
+ }
29
+ ngOnInit() {
30
+ this.datepickerForm = this.fb.group({
31
+ datepicker: [''],
32
+ });
33
+ this.datepickerForm.valueChanges.subscribe(() => {
34
+ this.isFormValid = !!this.dateRange;
35
+ this.onChange(this.datepickerForm.get('datepicker')?.value);
36
+ });
37
+ }
38
+ onDateRangeSelect(range) {
39
+ this.dateRange = range;
40
+ // Only format and emit when we have both start and end dates
41
+ if (range.start && range.end) {
42
+ const formattedRange = `${this.formatDate(range.start)} - ${this.formatDate(range.end)}`;
43
+ this.datepickerForm.patchValue({
44
+ datepicker: formattedRange,
45
+ });
46
+ this.onChange(formattedRange);
47
+ this.dateChange.emit(range); // Emit the date range object
48
+ // Close the popover after both dates are selected
49
+ if (this.popover?.isShown) {
50
+ this.popover.hide();
51
+ }
52
+ }
53
+ else if (range.start) {
54
+ // If only start date is selected, update internal state but don't close popover
55
+ const formattedStart = this.formatDate(range.start);
56
+ this.datepickerForm.patchValue({
57
+ datepicker: formattedStart,
58
+ });
59
+ // Don't emit or close popover yet - wait for end date
60
+ }
61
+ }
62
+ formatDate(date) {
63
+ return date ? this.dateService.format(date, 'yyyy-MM-dd') : '';
64
+ }
65
+ onConfirm() {
66
+ if (this.dateRange) {
67
+ console.log('Selected Range:', this.dateRange);
68
+ }
69
+ }
70
+ onBlur() {
71
+ this.onTouched();
72
+ }
73
+ writeValue(value) {
74
+ if (value) {
75
+ if (typeof value === 'string' && this.isValidDateRange(value)) {
76
+ const [start, end] = value.split(' - ').map((dateStr) => new Date(dateStr));
77
+ this.dateRange = { start, end };
78
+ this.datepickerForm.patchValue({
79
+ datepicker: value,
80
+ });
81
+ }
82
+ else if (value.start && value.end) {
83
+ // Handle object format with start and end properties
84
+ this.dateRange = {
85
+ start: new Date(value.start),
86
+ end: new Date(value.end),
87
+ };
88
+ const formattedRange = `${this.formatDate(this.dateRange.start)} - ${this.formatDate(this.dateRange.end)}`;
89
+ this.datepickerForm.patchValue({
90
+ datepicker: formattedRange,
91
+ });
92
+ }
93
+ else {
94
+ this.dateRange = { start: undefined, end: undefined };
95
+ this.datepickerForm.patchValue({
96
+ datepicker: '',
97
+ });
98
+ }
99
+ }
100
+ else {
101
+ this.dateRange = { start: undefined, end: undefined };
102
+ this.datepickerForm.patchValue({
103
+ datepicker: '',
104
+ });
105
+ }
106
+ }
107
+ registerOnChange(fn) {
108
+ this.onChange = fn;
109
+ }
110
+ registerOnTouched(fn) {
111
+ this.onTouch = () => {
112
+ this.touched = true;
113
+ fn();
114
+ };
115
+ }
116
+ setDisabledState(isDisabled) {
117
+ if (isDisabled) {
118
+ this.datepickerForm.disable();
119
+ }
120
+ else {
121
+ this.datepickerForm.enable();
122
+ }
123
+ }
124
+ isValidDateRange(value) {
125
+ const dateRangePattern = /^\d{4}-\d{2}-\d{2}( - \d{4}-\d{2}-\d{2})?$/;
126
+ return dateRangePattern.test(value);
127
+ }
128
+ validate(control) {
129
+ const value = control.value;
130
+ if (!value) {
131
+ return null;
132
+ }
133
+ if (this.touched && this.isRequired) {
134
+ return { required: true };
135
+ }
136
+ if (!this.isValidDateRange(value)) {
137
+ return { invalidDateFormat: 'YYYY-MM-DD - YYYY-MM-DD' };
138
+ }
139
+ const [start, end] = value.split(' - ').map((dateStr) => new Date(dateStr));
140
+ if (this.min && start < this.min) {
141
+ return { minDate: { date: this.min, format: 'YYYY-MM-DD' } };
142
+ }
143
+ if (this.max && end > this.max) {
144
+ return { maxDate: { date: this.max, format: 'YYYY-MM-DD' } };
145
+ }
146
+ return null;
147
+ }
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDateRangePickerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.NbDateService }, { token: i2.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclDateRangePickerComponent, isStandalone: true, selector: "scl-date-range-picker", inputs: { placeholder: "placeholder", isReadonly: "isReadonly", min: "min", max: "max", showPresets: "showPresets", hasTimePicker: "hasTimePicker" }, outputs: { dateChange: "dateChange" }, providers: [
150
+ {
151
+ provide: NG_VALUE_ACCESSOR,
152
+ useExisting: forwardRef(() => SclDateRangePickerComponent),
153
+ multi: true,
154
+ },
155
+ {
156
+ provide: NG_VALIDATORS,
157
+ useExisting: forwardRef(() => SclDateRangePickerComponent),
158
+ multi: true,
159
+ },
160
+ ], viewQueries: [{ propertyName: "popover", first: true, predicate: NbPopoverDirective, descendants: true }], ngImport: i0, template: "<form [formGroup]=\"datepickerForm\">\n <input\n class=\"scl-custom-datepicker__input\"\n nbInput\n type=\"text\"\n formControlName=\"datepicker\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [nbPopover]=\"calendar\"\n nbPopoverPlacement=\"bottom\"\n nbPopoverSize=\"large\"\n [nbPopoverTrigger]=\"isReadonly ? 'noop' : 'focus'\"\n (blur)=\"onBlur()\" />\n\n <div class=\"scl-custom-datepicker__icon\">\n <nb-icon icon=\"calendar\" pack=\"scl-datepicker-icon\"></nb-icon>\n </div>\n\n <ng-template #calendar>\n <div class=\"scl-custom-datepicker__popover\" (mousedown)=\"$event.preventDefault()\" aria-label=\"Calendar\" tabindex=\"-1\">\n <div class=\"scl-custom-datepicker__content\">\n <nb-calendar-range [(range)]=\"dateRange\" (rangeChange)=\"onDateRangeSelect($event)\" [min]=\"min\" [max]=\"max\"> </nb-calendar-range>\n </div>\n\n <div class=\"scl-custom-datepicker__footer\" *ngIf=\"hasTimePicker\">\n <button nbButton ghost status=\"primary\" *ngIf=\"showPresets\">Choose from presets</button>\n <button nbButton status=\"primary\" [disabled]=\"!isFormValid\" (click)=\"onConfirm()\">Confirm</button>\n </div>\n </div>\n </ng-template>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NbCalendarKitModule }, { kind: "ngmodule", type: NbCalendarModule }, { kind: "ngmodule", type: NbCalendarRangeModule }, { kind: "component", type: i2.NbCalendarRangeComponent, selector: "nb-calendar-range", inputs: ["boundingMonth", "startView", "min", "max", "filter", "dayCellComponent", "monthCellComponent", "yearCellComponent", "size", "visibleDate", "showNavigation", "range", "showWeekNumber", "weekNumberSymbol"], outputs: ["rangeChange"] }, { kind: "ngmodule", type: NbPopoverModule }, { kind: "directive", type: i2.NbPopoverDirective, selector: "[nbPopover]", inputs: ["nbPopover", "nbPopoverContext", "nbPopoverPlacement", "nbPopoverAdjustment", "nbPopoverTrigger", "nbPopoverOffset", "nbTooltipDisabled", "nbPopoverClass"], outputs: ["nbPopoverShowStateChange"], exportAs: ["nbPopover"] }, { kind: "ngmodule", type: NbTimepickerModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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: "ngmodule", type: NbButtonModule }, { kind: "component", type: i2.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "ngmodule", type: NbInputModule }, { kind: "directive", type: i2.NbInputDirective, selector: "input[nbInput],textarea[nbInput]", inputs: ["fieldSize", "status", "shape", "fullWidth"] }, { kind: "ngmodule", type: NbIconModule }, { kind: "component", type: i2.NbIconComponent, selector: "nb-icon", inputs: ["icon", "pack", "options", "status", "config"] }] }); }
161
+ }
162
+ export { SclDateRangePickerComponent };
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDateRangePickerComponent, decorators: [{
164
+ type: Component,
165
+ args: [{ selector: 'scl-date-range-picker', imports: [
166
+ CommonModule,
167
+ NbCalendarKitModule,
168
+ NbCalendarModule,
169
+ NbCalendarRangeModule,
170
+ NbPopoverModule,
171
+ NbTimepickerModule,
172
+ TimepickerComponent,
173
+ ReactiveFormsModule,
174
+ NbButtonModule,
175
+ NbInputModule,
176
+ NbIconModule,
177
+ ], standalone: true, providers: [
178
+ {
179
+ provide: NG_VALUE_ACCESSOR,
180
+ useExisting: forwardRef(() => SclDateRangePickerComponent),
181
+ multi: true,
182
+ },
183
+ {
184
+ provide: NG_VALIDATORS,
185
+ useExisting: forwardRef(() => SclDateRangePickerComponent),
186
+ multi: true,
187
+ },
188
+ ], template: "<form [formGroup]=\"datepickerForm\">\n <input\n class=\"scl-custom-datepicker__input\"\n nbInput\n type=\"text\"\n formControlName=\"datepicker\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [nbPopover]=\"calendar\"\n nbPopoverPlacement=\"bottom\"\n nbPopoverSize=\"large\"\n [nbPopoverTrigger]=\"isReadonly ? 'noop' : 'focus'\"\n (blur)=\"onBlur()\" />\n\n <div class=\"scl-custom-datepicker__icon\">\n <nb-icon icon=\"calendar\" pack=\"scl-datepicker-icon\"></nb-icon>\n </div>\n\n <ng-template #calendar>\n <div class=\"scl-custom-datepicker__popover\" (mousedown)=\"$event.preventDefault()\" aria-label=\"Calendar\" tabindex=\"-1\">\n <div class=\"scl-custom-datepicker__content\">\n <nb-calendar-range [(range)]=\"dateRange\" (rangeChange)=\"onDateRangeSelect($event)\" [min]=\"min\" [max]=\"max\"> </nb-calendar-range>\n </div>\n\n <div class=\"scl-custom-datepicker__footer\" *ngIf=\"hasTimePicker\">\n <button nbButton ghost status=\"primary\" *ngIf=\"showPresets\">Choose from presets</button>\n <button nbButton status=\"primary\" [disabled]=\"!isFormValid\" (click)=\"onConfirm()\">Confirm</button>\n </div>\n </div>\n </ng-template>\n</form>\n" }]
189
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.NbDateService }, { type: i2.NbIconLibraries }]; }, propDecorators: { popover: [{
190
+ type: ViewChild,
191
+ args: [NbPopoverDirective]
192
+ }], dateChange: [{
193
+ type: Output
194
+ }], placeholder: [{
195
+ type: Input
196
+ }], isReadonly: [{
197
+ type: Input
198
+ }], min: [{
199
+ type: Input
200
+ }], max: [{
201
+ type: Input
202
+ }], showPresets: [{
203
+ type: Input
204
+ }], hasTimePicker: [{
205
+ type: Input
206
+ }] } });
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFHSCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBSWpCLGFBQWEsR0FDaEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFFaEIscUJBQXFCLEVBR3JCLFlBQVksRUFDWixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFMUUsTUE4QmEsMkJBQTJCO0lBcUJwQyxZQUNxQixFQUFlLEVBQ2YsV0FBZ0MsRUFDaEMsYUFBOEI7UUFGOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFyQnpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpDLGdCQUFXLEdBQVcsbUJBQW1CLENBQUM7UUFDMUMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUl4QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ1gsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQXlCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBcUJ6QyxZQUFPLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBZDNCLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxpQkFBaUIsQ0FBQyxLQUF3QztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2Qiw2REFBNkQ7UUFDN0QsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDMUIsTUFBTSxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO2dCQUMzQixVQUFVLEVBQUUsY0FBYzthQUM3QixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNkJBQTZCO1lBRTFELGtEQUFrRDtZQUNsRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFO2dCQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3ZCO1NBQ0o7YUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDcEIsZ0ZBQWdGO1lBQ2hGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO2dCQUMzQixVQUFVLEVBQUUsY0FBYzthQUM3QixDQUFDLENBQUM7WUFDSCxzREFBc0Q7U0FDekQ7SUFDTCxDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQXNCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0QsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDakYsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQzNCLFVBQVUsRUFBRSxLQUFLO2lCQUNwQixDQUFDLENBQUM7YUFDTjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDakMscURBQXFEO2dCQUNyRCxJQUFJLENBQUMsU0FBUyxHQUFHO29CQUNiLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO29CQUM1QixHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDM0IsQ0FBQztnQkFDRixNQUFNLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0csSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7b0JBQzNCLFVBQVUsRUFBRSxjQUFjO2lCQUM3QixDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUMzQixVQUFVLEVBQUUsRUFBRTtpQkFDakIsQ0FBQyxDQUFDO2FBQ047U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO2dCQUMzQixVQUFVLEVBQUUsRUFBRTthQUNqQixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxDQUFDO1FBQ1QsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ2pDLElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNqQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ2xDLE1BQU0sZ0JBQWdCLEdBQUcsNENBQTRDLENBQUM7UUFDdEUsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFFLENBQUM7U0FDM0Q7UUFDRCxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUM7U0FDaEU7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDO1NBQ2hFO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0EzSlEsMkJBQTJCO2tHQUEzQiwyQkFBMkIsaVFBYnpCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztnQkFDMUQsS0FBSyxFQUFFLElBQUk7YUFDZDtZQUNEO2dCQUNJLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUMxRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osbUVBR1Usa0JBQWtCLGdEQzVEakMsaTJDQStCQSwyQ0RFUSxZQUFZLGtJQUNaLG1CQUFtQiw4QkFDbkIsZ0JBQWdCLDhCQUNoQixxQkFBcUIsd1dBQ3JCLGVBQWUsaVZBQ2Ysa0JBQWtCLDhCQUVsQixtQkFBbUIsNDhCQUNuQixjQUFjLCtNQUNkLGFBQWEscUxBQ2IsWUFBWTs7U0FnQlAsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBOUJ2QyxTQUFTOytCQUNJLHVCQUF1QixXQUV4Qjt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFlBQVk7cUJBQ2YsY0FDVyxJQUFJLGFBQ0w7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7NEpBRzhCLE9BQU87c0JBQXJDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVuQixVQUFVO3NCQUFuQixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgTkdfVkFMSURBVE9SUyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBOYkJ1dHRvbk1vZHVsZSxcbiAgICBOYkNhbGVuZGFyS2l0TW9kdWxlLFxuICAgIE5iQ2FsZW5kYXJNb2R1bGUsXG4gICAgTmJDYWxlbmRhclJhbmdlLFxuICAgIE5iQ2FsZW5kYXJSYW5nZU1vZHVsZSxcbiAgICBOYkRhdGVTZXJ2aWNlLFxuICAgIE5iSWNvbkxpYnJhcmllcyxcbiAgICBOYkljb25Nb2R1bGUsXG4gICAgTmJJbnB1dE1vZHVsZSxcbiAgICBOYlBvcG92ZXJEaXJlY3RpdmUsXG4gICAgTmJQb3BvdmVyTW9kdWxlLFxuICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbn0gZnJvbSAnQG5lYnVsYXIvdGhlbWUnO1xuaW1wb3J0IHsgVGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbS1kYXRlcGlja2VyL3RpbWVwaWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NsRGF0ZXBpY2tlckljb25zIH0gZnJvbSAnLi4vY3VzdG9tLWRhdGVwaWNrZXIvZGF0ZXBpY2tlci5pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzY2wtZGF0ZS1yYW5nZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci5odG1sJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhcktpdE1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhck1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhclJhbmdlTW9kdWxlLFxuICAgICAgICBOYlBvcG92ZXJNb2R1bGUsXG4gICAgICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgVGltZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmJCdXR0b25Nb2R1bGUsXG4gICAgICAgIE5iSW5wdXRNb2R1bGUsXG4gICAgICAgIE5iSWNvbk1vZHVsZSxcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NsRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NsRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjbERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBWaWV3Q2hpbGQoTmJQb3BvdmVyRGlyZWN0aXZlKSBwb3BvdmVyITogTmJQb3BvdmVyRGlyZWN0aXZlO1xuXG4gICAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBkYXRlIHJhbmdlJztcbiAgICBASW5wdXQoKSBpc1JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgbWluPzogRGF0ZTtcbiAgICBASW5wdXQoKSBtYXg/OiBEYXRlO1xuICAgIEBJbnB1dCgpIHNob3dQcmVzZXRzOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaGFzVGltZVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZGF0ZXBpY2tlckZvcm0hOiBGb3JtR3JvdXA7XG4gICAgZGF0ZVJhbmdlITogTmJDYWxlbmRhclJhbmdlPERhdGUgfCB1bmRlZmluZWQ+O1xuICAgIGlzRm9ybVZhbGlkID0gZmFsc2U7XG4gICAgaXNSZXF1aXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVTZXJ2aWNlOiBOYkRhdGVTZXJ2aWNlPERhdGU+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGljb25MaWJyYXJpZXM6IE5iSWNvbkxpYnJhcmllc1xuICAgICkge1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCdzY2wtZGF0ZXBpY2tlci1pY29uJywgU2NsRGF0ZXBpY2tlckljb25zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZGF0ZXBpY2tlcjogWycnXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNGb3JtVmFsaWQgPSAhIXRoaXMuZGF0ZVJhbmdlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGVwaWNrZXJGb3JtLmdldCgnZGF0ZXBpY2tlcicpPy52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIG9uRGF0ZVJhbmdlU2VsZWN0KHJhbmdlOiBOYkNhbGVuZGFyUmFuZ2U8RGF0ZSB8IHVuZGVmaW5lZD4pIHtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2UgPSByYW5nZTtcbiAgICAgICAgLy8gT25seSBmb3JtYXQgYW5kIGVtaXQgd2hlbiB3ZSBoYXZlIGJvdGggc3RhcnQgYW5kIGVuZCBkYXRlc1xuICAgICAgICBpZiAocmFuZ2Uuc3RhcnQgJiYgcmFuZ2UuZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRSYW5nZSA9IGAke3RoaXMuZm9ybWF0RGF0ZShyYW5nZS5zdGFydCl9IC0gJHt0aGlzLmZvcm1hdERhdGUocmFuZ2UuZW5kKX1gO1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiBmb3JtYXR0ZWRSYW5nZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShmb3JtYXR0ZWRSYW5nZSk7XG4gICAgICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyYW5nZSk7IC8vIEVtaXQgdGhlIGRhdGUgcmFuZ2Ugb2JqZWN0XG5cbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSBwb3BvdmVyIGFmdGVyIGJvdGggZGF0ZXMgYXJlIHNlbGVjdGVkXG4gICAgICAgICAgICBpZiAodGhpcy5wb3BvdmVyPy5pc1Nob3duKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChyYW5nZS5zdGFydCkge1xuICAgICAgICAgICAgLy8gSWYgb25seSBzdGFydCBkYXRlIGlzIHNlbGVjdGVkLCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgYnV0IGRvbid0IGNsb3NlIHBvcG92ZXJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFN0YXJ0ID0gdGhpcy5mb3JtYXREYXRlKHJhbmdlLnN0YXJ0KTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgZGF0ZXBpY2tlcjogZm9ybWF0dGVkU3RhcnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIERvbid0IGVtaXQgb3IgY2xvc2UgcG9wb3ZlciB5ZXQgLSB3YWl0IGZvciBlbmQgZGF0ZVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlID8gdGhpcy5kYXRlU2VydmljZS5mb3JtYXQoZGF0ZSwgJ3l5eXktTU0tZGQnKSA6ICcnO1xuICAgIH1cblxuICAgIG9uQ29uZmlybSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVJhbmdlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU2VsZWN0ZWQgUmFuZ2U6JywgdGhpcy5kYXRlUmFuZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMuaXNWYWxpZERhdGVSYW5nZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZS5zcGxpdCgnIC0gJykubWFwKChkYXRlU3RyOiBhbnkpID0+IG5ldyBEYXRlKGRhdGVTdHIpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVSYW5nZSA9IHsgc3RhcnQsIGVuZCB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVwaWNrZXI6IHZhbHVlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5zdGFydCAmJiB2YWx1ZS5lbmQpIHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgb2JqZWN0IGZvcm1hdCB3aXRoIHN0YXJ0IGFuZCBlbmQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlID0ge1xuICAgICAgICAgICAgICAgICAgICBzdGFydDogbmV3IERhdGUodmFsdWUuc3RhcnQpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IG5ldyBEYXRlKHZhbHVlLmVuZCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRSYW5nZSA9IGAke3RoaXMuZm9ybWF0RGF0ZSh0aGlzLmRhdGVSYW5nZS5zdGFydCl9IC0gJHt0aGlzLmZvcm1hdERhdGUodGhpcy5kYXRlUmFuZ2UuZW5kKX1gO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVwaWNrZXI6IGZvcm1hdHRlZFJhbmdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVSYW5nZSA9IHsgc3RhcnQ6IHVuZGVmaW5lZCwgZW5kOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiAnJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlID0geyBzdGFydDogdW5kZWZpbmVkLCBlbmQ6IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiAnJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBmbigpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0uZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZERhdGVSYW5nZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRhdGVSYW5nZVBhdHRlcm4gPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KCAtIFxcZHs0fS1cXGR7Mn0tXFxkezJ9KT8kLztcbiAgICAgICAgcmV0dXJuIGRhdGVSYW5nZVBhdHRlcm4udGVzdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRvdWNoZWQgJiYgdGhpcy5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZVJhbmdlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZERhdGVGb3JtYXQ6ICdZWVlZLU1NLUREIC0gWVlZWS1NTS1ERCcgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZS5zcGxpdCgnIC0gJykubWFwKChkYXRlU3RyOiBhbnkpID0+IG5ldyBEYXRlKGRhdGVTdHIpKTtcbiAgICAgICAgaWYgKHRoaXMubWluICYmIHN0YXJ0IDwgdGhpcy5taW4pIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1pbkRhdGU6IHsgZGF0ZTogdGhpcy5taW4sIGZvcm1hdDogJ1lZWVktTU0tREQnIH0gfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXggJiYgZW5kID4gdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1heERhdGU6IHsgZGF0ZTogdGhpcy5tYXgsIGZvcm1hdDogJ1lZWVktTU0tREQnIH0gfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImRhdGVwaWNrZXJGb3JtXCI+XG4gICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19pbnB1dFwiXG4gICAgICAgIG5iSW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlcGlja2VyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxuICAgICAgICBbbmJQb3BvdmVyXT1cImNhbGVuZGFyXCJcbiAgICAgICAgbmJQb3BvdmVyUGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgbmJQb3BvdmVyU2l6ZT1cImxhcmdlXCJcbiAgICAgICAgW25iUG9wb3ZlclRyaWdnZXJdPVwiaXNSZWFkb25seSA/ICdub29wJyA6ICdmb2N1cydcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19pY29uXCI+XG4gICAgICAgIDxuYi1pY29uIGljb249XCJjYWxlbmRhclwiIHBhY2s9XCJzY2wtZGF0ZXBpY2tlci1pY29uXCI+PC9uYi1pY29uPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNjYWxlbmRhcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjbC1jdXN0b20tZGF0ZXBpY2tlcl9fcG9wb3ZlclwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBhcmlhLWxhYmVsPVwiQ2FsZW5kYXJcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5iLWNhbGVuZGFyLXJhbmdlIFsocmFuZ2UpXT1cImRhdGVSYW5nZVwiIChyYW5nZUNoYW5nZSk9XCJvbkRhdGVSYW5nZVNlbGVjdCgkZXZlbnQpXCIgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiPiA8L25iLWNhbGVuZGFyLXJhbmdlPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2Zvb3RlclwiICpuZ0lmPVwiaGFzVGltZVBpY2tlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbmJCdXR0b24gZ2hvc3Qgc3RhdHVzPVwicHJpbWFyeVwiICpuZ0lmPVwic2hvd1ByZXNldHNcIj5DaG9vc2UgZnJvbSBwcmVzZXRzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuYkJ1dHRvbiBzdGF0dXM9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPkNvbmZpcm08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9mb3JtPlxuIl19