@ng-nest/ui 18.0.12 → 19.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 (881) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.property.d.ts +1 -1
  3. package/alert/alert.property.d.ts +1 -1
  4. package/anchor/anchor.property.d.ts +2 -2
  5. package/auto-complete/auto-complete.property.d.ts +16 -19
  6. package/avatar/avatar.property.d.ts +2 -2
  7. package/back-top/back-top.property.d.ts +1 -1
  8. package/badge/badge.property.d.ts +1 -1
  9. package/base-form/base-form.property.d.ts +2 -2
  10. package/button/button.property.d.ts +2 -2
  11. package/calendar/calendar.property.d.ts +1 -1
  12. package/card/card.property.d.ts +1 -1
  13. package/carousel/carousel.property.d.ts +2 -2
  14. package/cascade/cascade.property.d.ts +16 -27
  15. package/checkbox/checkbox.property.d.ts +16 -22
  16. package/collapse/collapse.property.d.ts +2 -2
  17. package/color/color.property.d.ts +1 -1
  18. package/color-picker/color-picker-portal.component.d.ts +10 -10
  19. package/color-picker/color-picker.property.d.ts +15 -15
  20. package/comment/comment.property.d.ts +2 -2
  21. package/container/container.property.d.ts +4 -4
  22. package/crumb/crumb.property.d.ts +1 -1
  23. package/date-picker/date-picker-portal.component.d.ts +1 -1
  24. package/date-picker/date-picker.property.d.ts +34 -34
  25. package/date-picker/date-range-portal.component.d.ts +5 -5
  26. package/description/description.property.d.ts +2 -2
  27. package/dialog/dialog-portal.component.d.ts +0 -2
  28. package/dialog/dialog-portal.directives.d.ts +2 -3
  29. package/dialog/dialog-ref.d.ts +4 -2
  30. package/dialog/dialog.component.d.ts +0 -5
  31. package/dialog/dialog.property.d.ts +14 -10
  32. package/drag/drag.property.d.ts +1 -1
  33. package/drawer/drawer.property.d.ts +2 -2
  34. package/dropdown/dropdown.property.d.ts +1 -1
  35. package/empty/empty.property.d.ts +1 -1
  36. package/fesm2022/ng-nest-ui-affix.mjs +14 -12
  37. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  38. package/fesm2022/ng-nest-ui-alert.mjs +14 -12
  39. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-anchor.mjs +23 -20
  41. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  42. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  43. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-auto-complete.mjs +16 -16
  45. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
  47. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  48. package/fesm2022/ng-nest-ui-back-top.mjs +13 -12
  49. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  50. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  51. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  52. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  53. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-button.mjs +18 -18
  55. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  56. package/fesm2022/ng-nest-ui-calendar.mjs +14 -15
  57. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  58. package/fesm2022/ng-nest-ui-card.mjs +11 -12
  59. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-carousel.mjs +20 -19
  61. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  62. package/fesm2022/ng-nest-ui-cascade.mjs +16 -16
  63. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  64. package/fesm2022/ng-nest-ui-checkbox.mjs +12 -12
  65. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  66. package/fesm2022/ng-nest-ui-collapse.mjs +18 -18
  67. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  68. package/fesm2022/ng-nest-ui-color-picker.mjs +15 -15
  69. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  70. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  71. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  72. package/fesm2022/ng-nest-ui-comment.mjs +18 -18
  73. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-container.mjs +36 -36
  75. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  77. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  79. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-date-picker.mjs +57 -57
  81. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-description.mjs +18 -18
  83. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-dialog.mjs +70 -144
  85. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  87. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-drag.mjs +11 -11
  89. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-drawer.mjs +38 -41
  91. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-dropdown.mjs +15 -16
  93. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  95. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  97. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  99. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-form.mjs +21 -40
  101. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  103. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-i18n.mjs +15 -17
  105. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-icon.mjs +14 -14
  107. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-image.mjs +24 -24
  109. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  111. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  113. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-input.mjs +19 -19
  115. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-keyword.mjs +12 -13
  117. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-layout.mjs +18 -18
  119. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  121. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-list.mjs +22 -23
  123. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-loading.mjs +12 -12
  125. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-menu.mjs +19 -20
  127. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-message-box.mjs +11 -13
  129. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  130. package/fesm2022/ng-nest-ui-message.mjs +11 -11
  131. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  132. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  133. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  134. package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
  135. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  136. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  137. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  138. package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
  139. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  140. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  141. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  142. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  143. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  144. package/fesm2022/ng-nest-ui-popover.mjs +15 -15
  145. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  146. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  147. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  148. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  149. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  150. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  151. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  152. package/fesm2022/ng-nest-ui-rate.mjs +11 -12
  153. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  154. package/fesm2022/ng-nest-ui-resizable.mjs +12 -12
  155. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  156. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  157. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  158. package/fesm2022/ng-nest-ui-ripple.mjs +11 -12
  159. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  160. package/fesm2022/ng-nest-ui-select.mjs +15 -15
  161. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  162. package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
  163. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  164. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -22
  165. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  166. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  167. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  168. package/fesm2022/ng-nest-ui-statistic.mjs +18 -18
  169. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  170. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  171. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  172. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  173. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  174. package/fesm2022/ng-nest-ui-table.mjs +32 -32
  175. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  176. package/fesm2022/ng-nest-ui-tabs.mjs +30 -32
  177. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  178. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  179. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  180. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  181. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  182. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  183. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  184. package/fesm2022/ng-nest-ui-theme.mjs +13 -14
  185. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  186. package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
  187. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  188. package/fesm2022/ng-nest-ui-time-picker.mjs +19 -19
  189. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  190. package/fesm2022/ng-nest-ui-time-range.mjs +8 -8
  191. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  192. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  193. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  194. package/fesm2022/ng-nest-ui-tooltip.mjs +15 -15
  195. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  196. package/fesm2022/ng-nest-ui-transfer.mjs +12 -13
  197. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  198. package/fesm2022/ng-nest-ui-tree-file.mjs +12 -20
  199. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  200. package/fesm2022/ng-nest-ui-tree-select.mjs +15 -15
  201. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  202. package/fesm2022/ng-nest-ui-tree.mjs +21 -21
  203. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  204. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  205. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  206. package/fesm2022/ng-nest-ui-upload.mjs +15 -15
  207. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  208. package/find/find.property.d.ts +12 -18
  209. package/form/form.property.d.ts +10 -21
  210. package/highlight/highlight.property.d.ts +1 -1
  211. package/icon/icon.property.d.ts +1 -1
  212. package/image/image.property.d.ts +2 -2
  213. package/inner/inner.property.d.ts +1 -1
  214. package/input/input.property.d.ts +17 -20
  215. package/input-number/input-number.property.d.ts +13 -13
  216. package/layout/layout.property.d.ts +2 -2
  217. package/link/link.property.d.ts +1 -1
  218. package/list/list.property.d.ts +12 -12
  219. package/loading/loading.property.d.ts +1 -1
  220. package/menu/menu.property.d.ts +2 -2
  221. package/package.json +83 -257
  222. package/page-header/page-header.property.d.ts +1 -1
  223. package/pagination/pagination.property.d.ts +1 -1
  224. package/popconfirm/popconfirm.property.d.ts +1 -1
  225. package/popover/popover.property.d.ts +1 -1
  226. package/progress/progress.property.d.ts +1 -1
  227. package/radio/radio.property.d.ts +13 -16
  228. package/rate/rate.property.d.ts +14 -22
  229. package/result/result.property.d.ts +1 -1
  230. package/ripple/ripple.property.d.ts +1 -1
  231. package/select/select-portal.component.d.ts +1 -1
  232. package/select/select.property.d.ts +15 -15
  233. package/skeleton/skeleton.property.d.ts +1 -1
  234. package/slider/slider.property.d.ts +1 -1
  235. package/slider-select/slider-select.property.d.ts +13 -17
  236. package/statistic/statistic.property.d.ts +2 -2
  237. package/steps/steps.property.d.ts +1 -1
  238. package/style/core/index.css +87 -174
  239. package/style/core/index.css.map +1 -1
  240. package/style/core/index.scss +32 -5
  241. package/style/directives/index.scss +3 -3
  242. package/style/directives/keyword/index.scss +3 -2
  243. package/style/directives/keyword/mixin.scss +9 -11
  244. package/style/directives/keyword/param.scss +2 -1
  245. package/style/directives/resizable/index.scss +3 -2
  246. package/style/directives/resizable/mixin.scss +122 -16
  247. package/style/directives/resizable/param.scss +2 -1
  248. package/style/directives/ripple/index.scss +3 -2
  249. package/style/directives/ripple/mixin.scss +12 -12
  250. package/style/directives/ripple/param.scss +2 -1
  251. package/style/mixins/compatibility.scss +7 -5
  252. package/style/mixins/form.scss +6 -4
  253. package/style/mixins/hidden.scss +5 -2
  254. package/style/params/index.scss +282 -3
  255. package/switch/switch.property.d.ts +14 -14
  256. package/table/table.property.d.ts +4 -4
  257. package/tabs/tabs.property.d.ts +2 -2
  258. package/tag/tag.property.d.ts +1 -1
  259. package/text-retract/text-retract.property.d.ts +1 -1
  260. package/textarea/textarea.property.d.ts +14 -17
  261. package/theme/theme.property.d.ts +6 -10
  262. package/time-picker/time-picker.property.d.ts +17 -23
  263. package/timeline/timeline.property.d.ts +1 -1
  264. package/tooltip/tooltip.property.d.ts +1 -1
  265. package/transfer/transfer.property.d.ts +9 -13
  266. package/tree/tree.property.d.ts +2 -2
  267. package/tree-file/tree-file.property.d.ts +1 -1
  268. package/tree-select/tree-select-portal.component.d.ts +1 -1
  269. package/tree-select/tree-select.property.d.ts +15 -15
  270. package/typography/typography.property.d.ts +1 -1
  271. package/upload/upload.property.d.ts +9 -9
  272. package/esm2022/affix/affix.component.mjs +0 -12
  273. package/esm2022/affix/affix.module.mjs +0 -16
  274. package/esm2022/affix/affix.property.mjs +0 -51
  275. package/esm2022/affix/ng-nest-ui-affix.mjs +0 -5
  276. package/esm2022/affix/public-api.mjs +0 -4
  277. package/esm2022/alert/alert.component.mjs +0 -73
  278. package/esm2022/alert/alert.module.mjs +0 -16
  279. package/esm2022/alert/alert.property.mjs +0 -313
  280. package/esm2022/alert/ng-nest-ui-alert.mjs +0 -5
  281. package/esm2022/alert/public-api.mjs +0 -4
  282. package/esm2022/anchor/anchor-inner.component.mjs +0 -18
  283. package/esm2022/anchor/anchor.component.mjs +0 -160
  284. package/esm2022/anchor/anchor.module.mjs +0 -17
  285. package/esm2022/anchor/anchor.property.mjs +0 -121
  286. package/esm2022/anchor/ng-nest-ui-anchor.mjs +0 -5
  287. package/esm2022/anchor/public-api.mjs +0 -5
  288. package/esm2022/api/api.component.mjs +0 -18
  289. package/esm2022/api/api.module.mjs +0 -16
  290. package/esm2022/api/api.property.mjs +0 -7
  291. package/esm2022/api/ng-nest-ui-api.mjs +0 -5
  292. package/esm2022/api/public-api.mjs +0 -4
  293. package/esm2022/auto-complete/auto-complete-portal.component.mjs +0 -80
  294. package/esm2022/auto-complete/auto-complete.component.mjs +0 -306
  295. package/esm2022/auto-complete/auto-complete.module.mjs +0 -16
  296. package/esm2022/auto-complete/auto-complete.property.mjs +0 -172
  297. package/esm2022/auto-complete/ng-nest-ui-auto-complete.mjs +0 -5
  298. package/esm2022/auto-complete/public-api.mjs +0 -5
  299. package/esm2022/avatar/avatar-group.component.mjs +0 -19
  300. package/esm2022/avatar/avatar.component.mjs +0 -109
  301. package/esm2022/avatar/avatar.module.mjs +0 -17
  302. package/esm2022/avatar/avatar.property.mjs +0 -143
  303. package/esm2022/avatar/ng-nest-ui-avatar.mjs +0 -5
  304. package/esm2022/avatar/public-api.mjs +0 -5
  305. package/esm2022/back-top/back-top.component.mjs +0 -104
  306. package/esm2022/back-top/back-top.module.mjs +0 -16
  307. package/esm2022/back-top/back-top.property.mjs +0 -50
  308. package/esm2022/back-top/ng-nest-ui-back-top.mjs +0 -5
  309. package/esm2022/back-top/public-api.mjs +0 -4
  310. package/esm2022/badge/badge.component.mjs +0 -63
  311. package/esm2022/badge/badge.module.mjs +0 -16
  312. package/esm2022/badge/badge.property.mjs +0 -133
  313. package/esm2022/badge/ng-nest-ui-badge.mjs +0 -5
  314. package/esm2022/badge/public-api.mjs +0 -4
  315. package/esm2022/base-form/base-form.component.mjs +0 -101
  316. package/esm2022/base-form/base-form.module.mjs +0 -15
  317. package/esm2022/base-form/base-form.property.mjs +0 -237
  318. package/esm2022/base-form/ng-nest-ui-base-form.mjs +0 -5
  319. package/esm2022/base-form/public-api.mjs +0 -4
  320. package/esm2022/button/button.component.mjs +0 -71
  321. package/esm2022/button/button.module.mjs +0 -17
  322. package/esm2022/button/button.property.mjs +0 -331
  323. package/esm2022/button/buttons.component.mjs +0 -55
  324. package/esm2022/button/ng-nest-ui-button.mjs +0 -5
  325. package/esm2022/button/public-api.mjs +0 -5
  326. package/esm2022/calendar/calendar.component.mjs +0 -117
  327. package/esm2022/calendar/calendar.module.mjs +0 -16
  328. package/esm2022/calendar/calendar.property.mjs +0 -110
  329. package/esm2022/calendar/ng-nest-ui-calendar.mjs +0 -5
  330. package/esm2022/calendar/public-api.mjs +0 -4
  331. package/esm2022/card/card.component.mjs +0 -22
  332. package/esm2022/card/card.module.mjs +0 -16
  333. package/esm2022/card/card.property.mjs +0 -77
  334. package/esm2022/card/ng-nest-ui-card.mjs +0 -5
  335. package/esm2022/card/public-api.mjs +0 -4
  336. package/esm2022/carousel/carousel-panel.component.mjs +0 -157
  337. package/esm2022/carousel/carousel.component.mjs +0 -95
  338. package/esm2022/carousel/carousel.module.mjs +0 -17
  339. package/esm2022/carousel/carousel.property.mjs +0 -256
  340. package/esm2022/carousel/ng-nest-ui-carousel.mjs +0 -5
  341. package/esm2022/carousel/public-api.mjs +0 -5
  342. package/esm2022/cascade/cascade-portal.component.mjs +0 -141
  343. package/esm2022/cascade/cascade.component.mjs +0 -238
  344. package/esm2022/cascade/cascade.module.mjs +0 -16
  345. package/esm2022/cascade/cascade.property.mjs +0 -167
  346. package/esm2022/cascade/ng-nest-ui-cascade.mjs +0 -5
  347. package/esm2022/cascade/public-api.mjs +0 -5
  348. package/esm2022/checkbox/checkbox.component.mjs +0 -102
  349. package/esm2022/checkbox/checkbox.module.mjs +0 -16
  350. package/esm2022/checkbox/checkbox.property.mjs +0 -136
  351. package/esm2022/checkbox/ng-nest-ui-checkbox.mjs +0 -5
  352. package/esm2022/checkbox/public-api.mjs +0 -4
  353. package/esm2022/collapse/collapse-panel.component.mjs +0 -55
  354. package/esm2022/collapse/collapse.component.mjs +0 -49
  355. package/esm2022/collapse/collapse.module.mjs +0 -17
  356. package/esm2022/collapse/collapse.property.mjs +0 -189
  357. package/esm2022/collapse/ng-nest-ui-collapse.mjs +0 -5
  358. package/esm2022/collapse/public-api.mjs +0 -5
  359. package/esm2022/color/color.component.mjs +0 -35
  360. package/esm2022/color/color.module.mjs +0 -16
  361. package/esm2022/color/color.property.mjs +0 -71
  362. package/esm2022/color/ng-nest-ui-color.mjs +0 -5
  363. package/esm2022/color/public-api.mjs +0 -4
  364. package/esm2022/color-picker/color-picker-portal.component.mjs +0 -396
  365. package/esm2022/color-picker/color-picker.component.mjs +0 -191
  366. package/esm2022/color-picker/color-picker.module.mjs +0 -16
  367. package/esm2022/color-picker/color-picker.property.mjs +0 -142
  368. package/esm2022/color-picker/ng-nest-ui-color-picker.mjs +0 -5
  369. package/esm2022/color-picker/public-api.mjs +0 -5
  370. package/esm2022/comment/comment-reply.component.mjs +0 -24
  371. package/esm2022/comment/comment.component.mjs +0 -55
  372. package/esm2022/comment/comment.module.mjs +0 -17
  373. package/esm2022/comment/comment.property.mjs +0 -90
  374. package/esm2022/comment/ng-nest-ui-comment.mjs +0 -5
  375. package/esm2022/comment/public-api.mjs +0 -5
  376. package/esm2022/container/aside.component.mjs +0 -25
  377. package/esm2022/container/container.component.mjs +0 -31
  378. package/esm2022/container/container.module.mjs +0 -20
  379. package/esm2022/container/container.property.mjs +0 -115
  380. package/esm2022/container/footer.component.mjs +0 -35
  381. package/esm2022/container/header.component.mjs +0 -35
  382. package/esm2022/container/main.component.mjs +0 -18
  383. package/esm2022/container/ng-nest-ui-container.mjs +0 -5
  384. package/esm2022/container/public-api.mjs +0 -8
  385. package/esm2022/core/animation/badge.mjs +0 -53
  386. package/esm2022/core/animation/connect.mjs +0 -31
  387. package/esm2022/core/animation/consts.mjs +0 -11
  388. package/esm2022/core/animation/drop.mjs +0 -13
  389. package/esm2022/core/animation/fade.mjs +0 -24
  390. package/esm2022/core/animation/move.mjs +0 -179
  391. package/esm2022/core/animation/opacity.mjs +0 -13
  392. package/esm2022/core/animation/public-api.mjs +0 -9
  393. package/esm2022/core/animation/slide.mjs +0 -17
  394. package/esm2022/core/config/config.mjs +0 -3
  395. package/esm2022/core/config/config.service.mjs +0 -54
  396. package/esm2022/core/config/index.mjs +0 -2
  397. package/esm2022/core/config/public-api.mjs +0 -3
  398. package/esm2022/core/functions/chunk.mjs +0 -25
  399. package/esm2022/core/functions/clone-deep.mjs +0 -28
  400. package/esm2022/core/functions/convert.mjs +0 -230
  401. package/esm2022/core/functions/csspx.mjs +0 -17
  402. package/esm2022/core/functions/date.mjs +0 -223
  403. package/esm2022/core/functions/drop.mjs +0 -20
  404. package/esm2022/core/functions/flex.mjs +0 -25
  405. package/esm2022/core/functions/group-by.mjs +0 -14
  406. package/esm2022/core/functions/guid.mjs +0 -11
  407. package/esm2022/core/functions/has-in.mjs +0 -8
  408. package/esm2022/core/functions/order-by.mjs +0 -56
  409. package/esm2022/core/functions/parent-path.mjs +0 -27
  410. package/esm2022/core/functions/property.mjs +0 -20
  411. package/esm2022/core/functions/public-api.mjs +0 -16
  412. package/esm2022/core/functions/remove.mjs +0 -19
  413. package/esm2022/core/functions/resize.mjs +0 -22
  414. package/esm2022/core/interfaces/data.type.mjs +0 -164
  415. package/esm2022/core/interfaces/identify.type.mjs +0 -7
  416. package/esm2022/core/interfaces/index.mjs +0 -2
  417. package/esm2022/core/interfaces/layout.type.mjs +0 -2
  418. package/esm2022/core/interfaces/public-api.mjs +0 -5
  419. package/esm2022/core/interfaces/result-list.type.mjs +0 -2
  420. package/esm2022/core/ng-nest-ui-core.mjs +0 -5
  421. package/esm2022/core/public-api.mjs +0 -8
  422. package/esm2022/core/services/http.service.mjs +0 -58
  423. package/esm2022/core/services/preloading-strategy.service.mjs +0 -24
  424. package/esm2022/core/services/public-api.mjs +0 -6
  425. package/esm2022/core/services/repository.service.mjs +0 -29
  426. package/esm2022/core/services/reuse-strategy.service.mjs +0 -47
  427. package/esm2022/core/services/storage.service.mjs +0 -75
  428. package/esm2022/core/theme/index.mjs +0 -2
  429. package/esm2022/core/theme/public-api.mjs +0 -3
  430. package/esm2022/core/theme/theme.mjs +0 -89
  431. package/esm2022/core/theme/theme.service.mjs +0 -270
  432. package/esm2022/core/util/animation.mjs +0 -26
  433. package/esm2022/core/util/camel-to-kebab.mjs +0 -16
  434. package/esm2022/core/util/check.mjs +0 -15
  435. package/esm2022/core/util/computed-style.mjs +0 -20
  436. package/esm2022/core/util/host.mjs +0 -14
  437. package/esm2022/core/util/html.mjs +0 -12
  438. package/esm2022/core/util/index.mjs +0 -2
  439. package/esm2022/core/util/kebab-to-camel.mjs +0 -16
  440. package/esm2022/core/util/log.mjs +0 -15
  441. package/esm2022/core/util/option.mjs +0 -14
  442. package/esm2022/core/util/public-api.mjs +0 -11
  443. package/esm2022/core/util/sleep.mjs +0 -8
  444. package/esm2022/crumb/crumb.component.mjs +0 -25
  445. package/esm2022/crumb/crumb.module.mjs +0 -16
  446. package/esm2022/crumb/crumb.property.mjs +0 -45
  447. package/esm2022/crumb/ng-nest-ui-crumb.mjs +0 -5
  448. package/esm2022/crumb/public-api.mjs +0 -4
  449. package/esm2022/date-picker/date-picker-portal.component.mjs +0 -196
  450. package/esm2022/date-picker/date-picker.component.mjs +0 -320
  451. package/esm2022/date-picker/date-picker.module.mjs +0 -17
  452. package/esm2022/date-picker/date-picker.property.mjs +0 -770
  453. package/esm2022/date-picker/date-quarter.pipe.mjs +0 -19
  454. package/esm2022/date-picker/date-range-portal.component.mjs +0 -349
  455. package/esm2022/date-picker/date-range.component.mjs +0 -432
  456. package/esm2022/date-picker/ng-nest-ui-date-picker.mjs +0 -5
  457. package/esm2022/date-picker/picker-date.component.mjs +0 -334
  458. package/esm2022/date-picker/picker-month.component.mjs +0 -232
  459. package/esm2022/date-picker/picker-quarter.component.mjs +0 -237
  460. package/esm2022/date-picker/picker-year.component.mjs +0 -233
  461. package/esm2022/date-picker/public-api.mjs +0 -12
  462. package/esm2022/description/description-item.component.mjs +0 -24
  463. package/esm2022/description/description.component.mjs +0 -48
  464. package/esm2022/description/description.module.mjs +0 -17
  465. package/esm2022/description/description.property.mjs +0 -219
  466. package/esm2022/description/ng-nest-ui-description.mjs +0 -5
  467. package/esm2022/description/public-api.mjs +0 -5
  468. package/esm2022/dialog/dialog-container.component.mjs +0 -29
  469. package/esm2022/dialog/dialog-portal.component.mjs +0 -97
  470. package/esm2022/dialog/dialog-portal.directives.mjs +0 -119
  471. package/esm2022/dialog/dialog-ref.mjs +0 -100
  472. package/esm2022/dialog/dialog.component.mjs +0 -282
  473. package/esm2022/dialog/dialog.module.mjs +0 -50
  474. package/esm2022/dialog/dialog.property.mjs +0 -207
  475. package/esm2022/dialog/dialog.service.mjs +0 -122
  476. package/esm2022/dialog/ng-nest-ui-dialog.mjs +0 -5
  477. package/esm2022/dialog/public-api.mjs +0 -9
  478. package/esm2022/doc/doc.component.mjs +0 -18
  479. package/esm2022/doc/doc.module.mjs +0 -16
  480. package/esm2022/doc/doc.property.mjs +0 -7
  481. package/esm2022/doc/ng-nest-ui-doc.mjs +0 -5
  482. package/esm2022/doc/public-api.mjs +0 -4
  483. package/esm2022/drag/drag.directive.mjs +0 -57
  484. package/esm2022/drag/drag.module.mjs +0 -16
  485. package/esm2022/drag/drag.property.mjs +0 -25
  486. package/esm2022/drag/ng-nest-ui-drag.mjs +0 -5
  487. package/esm2022/drag/public-api.mjs +0 -4
  488. package/esm2022/drawer/drawer-container.component.mjs +0 -29
  489. package/esm2022/drawer/drawer-portal.component.mjs +0 -50
  490. package/esm2022/drawer/drawer-portal.directives.mjs +0 -58
  491. package/esm2022/drawer/drawer-ref.mjs +0 -17
  492. package/esm2022/drawer/drawer.component.mjs +0 -95
  493. package/esm2022/drawer/drawer.module.mjs +0 -38
  494. package/esm2022/drawer/drawer.property.mjs +0 -84
  495. package/esm2022/drawer/drawer.service.mjs +0 -65
  496. package/esm2022/drawer/ng-nest-ui-drawer.mjs +0 -5
  497. package/esm2022/drawer/public-api.mjs +0 -10
  498. package/esm2022/dropdown/dropdown-portal.component.mjs +0 -204
  499. package/esm2022/dropdown/dropdown.component.mjs +0 -179
  500. package/esm2022/dropdown/dropdown.module.mjs +0 -16
  501. package/esm2022/dropdown/dropdown.property.mjs +0 -96
  502. package/esm2022/dropdown/ng-nest-ui-dropdown.mjs +0 -5
  503. package/esm2022/dropdown/public-api.mjs +0 -5
  504. package/esm2022/empty/empty.component.mjs +0 -15
  505. package/esm2022/empty/empty.module.mjs +0 -16
  506. package/esm2022/empty/empty.property.mjs +0 -54
  507. package/esm2022/empty/ng-nest-ui-empty.mjs +0 -5
  508. package/esm2022/empty/public-api.mjs +0 -4
  509. package/esm2022/examples/examples.component.mjs +0 -18
  510. package/esm2022/examples/examples.module.mjs +0 -16
  511. package/esm2022/examples/examples.property.mjs +0 -7
  512. package/esm2022/examples/ng-nest-ui-examples.mjs +0 -5
  513. package/esm2022/examples/public-api.mjs +0 -4
  514. package/esm2022/find/find.component.mjs +0 -331
  515. package/esm2022/find/find.module.mjs +0 -16
  516. package/esm2022/find/find.property.mjs +0 -260
  517. package/esm2022/find/ng-nest-ui-find.mjs +0 -5
  518. package/esm2022/find/public-api.mjs +0 -4
  519. package/esm2022/form/control.component.mjs +0 -249
  520. package/esm2022/form/form.component.mjs +0 -116
  521. package/esm2022/form/form.module.mjs +0 -17
  522. package/esm2022/form/form.property.mjs +0 -202
  523. package/esm2022/form/ng-nest-ui-form.mjs +0 -5
  524. package/esm2022/form/public-api.mjs +0 -5
  525. package/esm2022/highlight/highlight.component.mjs +0 -85
  526. package/esm2022/highlight/highlight.module.mjs +0 -16
  527. package/esm2022/highlight/highlight.property.mjs +0 -45
  528. package/esm2022/highlight/highlight.service.mjs +0 -17
  529. package/esm2022/highlight/ng-nest-ui-highlight.mjs +0 -5
  530. package/esm2022/highlight/public-api.mjs +0 -5
  531. package/esm2022/i18n/i18n.directive.mjs +0 -29
  532. package/esm2022/i18n/i18n.module.mjs +0 -17
  533. package/esm2022/i18n/i18n.pipe.mjs +0 -28
  534. package/esm2022/i18n/i18n.property.mjs +0 -9
  535. package/esm2022/i18n/i18n.service.mjs +0 -57
  536. package/esm2022/i18n/languages/ar_EG.mjs +0 -169
  537. package/esm2022/i18n/languages/bg_BG.mjs +0 -172
  538. package/esm2022/i18n/languages/ca_ES.mjs +0 -172
  539. package/esm2022/i18n/languages/cs_CZ.mjs +0 -172
  540. package/esm2022/i18n/languages/da_DK.mjs +0 -172
  541. package/esm2022/i18n/languages/de_DE.mjs +0 -172
  542. package/esm2022/i18n/languages/el_GR.mjs +0 -172
  543. package/esm2022/i18n/languages/en_GB.mjs +0 -181
  544. package/esm2022/i18n/languages/en_US.mjs +0 -181
  545. package/esm2022/i18n/languages/es_ES.mjs +0 -172
  546. package/esm2022/i18n/languages/et_EE.mjs +0 -172
  547. package/esm2022/i18n/languages/fa_IR.mjs +0 -172
  548. package/esm2022/i18n/languages/fi_FI.mjs +0 -172
  549. package/esm2022/i18n/languages/fr_BE.mjs +0 -172
  550. package/esm2022/i18n/languages/fr_FR.mjs +0 -172
  551. package/esm2022/i18n/languages/he_IL.mjs +0 -169
  552. package/esm2022/i18n/languages/hi_IN.mjs +0 -172
  553. package/esm2022/i18n/languages/hr_HR.mjs +0 -172
  554. package/esm2022/i18n/languages/hu_HU.mjs +0 -172
  555. package/esm2022/i18n/languages/hy_AM.mjs +0 -172
  556. package/esm2022/i18n/languages/id_ID.mjs +0 -172
  557. package/esm2022/i18n/languages/is_IS.mjs +0 -172
  558. package/esm2022/i18n/languages/it_IT.mjs +0 -172
  559. package/esm2022/i18n/languages/ja_JP.mjs +0 -172
  560. package/esm2022/i18n/languages/ka_GE.mjs +0 -172
  561. package/esm2022/i18n/languages/kn_IN.mjs +0 -172
  562. package/esm2022/i18n/languages/ko_KR.mjs +0 -180
  563. package/esm2022/i18n/languages/ku_IQ.mjs +0 -156
  564. package/esm2022/i18n/languages/lv_LV.mjs +0 -180
  565. package/esm2022/i18n/languages/mn_MN.mjs +0 -180
  566. package/esm2022/i18n/languages/ms_MY.mjs +0 -180
  567. package/esm2022/i18n/languages/nb_NO.mjs +0 -180
  568. package/esm2022/i18n/languages/ne_NP.mjs +0 -180
  569. package/esm2022/i18n/languages/nl_BE.mjs +0 -180
  570. package/esm2022/i18n/languages/nl_NL.mjs +0 -180
  571. package/esm2022/i18n/languages/pl_PL.mjs +0 -180
  572. package/esm2022/i18n/languages/pt_BR.mjs +0 -180
  573. package/esm2022/i18n/languages/pt_PT.mjs +0 -180
  574. package/esm2022/i18n/languages/ro_RO.mjs +0 -180
  575. package/esm2022/i18n/languages/ru_RU.mjs +0 -180
  576. package/esm2022/i18n/languages/sk_SK.mjs +0 -171
  577. package/esm2022/i18n/languages/sl_SI.mjs +0 -172
  578. package/esm2022/i18n/languages/sr_RS.mjs +0 -172
  579. package/esm2022/i18n/languages/sv_SE.mjs +0 -172
  580. package/esm2022/i18n/languages/ta_IN.mjs +0 -180
  581. package/esm2022/i18n/languages/th_TH.mjs +0 -180
  582. package/esm2022/i18n/languages/tr_TR.mjs +0 -180
  583. package/esm2022/i18n/languages/uk_UA.mjs +0 -180
  584. package/esm2022/i18n/languages/vi_VN.mjs +0 -180
  585. package/esm2022/i18n/languages/zh_CN.mjs +0 -180
  586. package/esm2022/i18n/languages/zh_TW.mjs +0 -180
  587. package/esm2022/i18n/ng-nest-ui-i18n.mjs +0 -5
  588. package/esm2022/i18n/public-api.mjs +0 -57
  589. package/esm2022/icon/icon.component.mjs +0 -158
  590. package/esm2022/icon/icon.module.mjs +0 -16
  591. package/esm2022/icon/icon.property.mjs +0 -65
  592. package/esm2022/icon/icon.service.mjs +0 -89
  593. package/esm2022/icon/ng-nest-ui-icon.mjs +0 -5
  594. package/esm2022/icon/public-api.mjs +0 -5
  595. package/esm2022/image/image-group.component.mjs +0 -27
  596. package/esm2022/image/image-preview.component.mjs +0 -135
  597. package/esm2022/image/image.component.mjs +0 -75
  598. package/esm2022/image/image.module.mjs +0 -18
  599. package/esm2022/image/image.property.mjs +0 -196
  600. package/esm2022/image/ng-nest-ui-image.mjs +0 -5
  601. package/esm2022/image/public-api.mjs +0 -6
  602. package/esm2022/index.mjs +0 -106
  603. package/esm2022/inner/inner.component.mjs +0 -25
  604. package/esm2022/inner/inner.module.mjs +0 -16
  605. package/esm2022/inner/inner.property.mjs +0 -30
  606. package/esm2022/inner/ng-nest-ui-inner.mjs +0 -5
  607. package/esm2022/inner/public-api.mjs +0 -4
  608. package/esm2022/input/input-group.component.mjs +0 -16
  609. package/esm2022/input/input.component.mjs +0 -224
  610. package/esm2022/input/input.module.mjs +0 -17
  611. package/esm2022/input/input.property.mjs +0 -281
  612. package/esm2022/input/ng-nest-ui-input.mjs +0 -5
  613. package/esm2022/input/public-api.mjs +0 -5
  614. package/esm2022/input-number/input-number.component.mjs +0 -131
  615. package/esm2022/input-number/input-number.module.mjs +0 -16
  616. package/esm2022/input-number/input-number.property.mjs +0 -146
  617. package/esm2022/input-number/ng-nest-ui-input-number.mjs +0 -5
  618. package/esm2022/input-number/public-api.mjs +0 -4
  619. package/esm2022/keyword/keyword.directive.mjs +0 -61
  620. package/esm2022/keyword/keyword.module.mjs +0 -16
  621. package/esm2022/keyword/keyword.property.mjs +0 -45
  622. package/esm2022/keyword/ng-nest-ui-keyword.mjs +0 -5
  623. package/esm2022/keyword/public-api.mjs +0 -4
  624. package/esm2022/layout/col.component.mjs +0 -68
  625. package/esm2022/layout/layout.module.mjs +0 -17
  626. package/esm2022/layout/layout.property.mjs +0 -150
  627. package/esm2022/layout/ng-nest-ui-layout.mjs +0 -5
  628. package/esm2022/layout/public-api.mjs +0 -5
  629. package/esm2022/layout/row.component.mjs +0 -54
  630. package/esm2022/link/link.component.mjs +0 -28
  631. package/esm2022/link/link.module.mjs +0 -16
  632. package/esm2022/link/link.property.mjs +0 -109
  633. package/esm2022/link/ng-nest-ui-link.mjs +0 -5
  634. package/esm2022/link/public-api.mjs +0 -4
  635. package/esm2022/list/list-drop-group.directive.mjs +0 -39
  636. package/esm2022/list/list-option.component.mjs +0 -37
  637. package/esm2022/list/list.component.mjs +0 -409
  638. package/esm2022/list/list.module.mjs +0 -18
  639. package/esm2022/list/list.property.mjs +0 -273
  640. package/esm2022/list/ng-nest-ui-list.mjs +0 -5
  641. package/esm2022/list/public-api.mjs +0 -6
  642. package/esm2022/loading/loading.component.mjs +0 -77
  643. package/esm2022/loading/loading.module.mjs +0 -16
  644. package/esm2022/loading/loading.property.mjs +0 -70
  645. package/esm2022/loading/ng-nest-ui-loading.mjs +0 -5
  646. package/esm2022/loading/public-api.mjs +0 -4
  647. package/esm2022/menu/menu-node.component.mjs +0 -36
  648. package/esm2022/menu/menu.component.mjs +0 -171
  649. package/esm2022/menu/menu.module.mjs +0 -17
  650. package/esm2022/menu/menu.property.mjs +0 -107
  651. package/esm2022/menu/ng-nest-ui-menu.mjs +0 -5
  652. package/esm2022/menu/public-api.mjs +0 -5
  653. package/esm2022/message/message-ref.mjs +0 -13
  654. package/esm2022/message/message.component.mjs +0 -40
  655. package/esm2022/message/message.module.mjs +0 -15
  656. package/esm2022/message/message.property.mjs +0 -9
  657. package/esm2022/message/message.service.mjs +0 -146
  658. package/esm2022/message/ng-nest-ui-message.mjs +0 -5
  659. package/esm2022/message/public-api.mjs +0 -6
  660. package/esm2022/message-box/message-box.component.mjs +0 -122
  661. package/esm2022/message-box/message-box.module.mjs +0 -15
  662. package/esm2022/message-box/message-box.property.mjs +0 -8
  663. package/esm2022/message-box/message-box.service.mjs +0 -97
  664. package/esm2022/message-box/ng-nest-ui-message-box.mjs +0 -5
  665. package/esm2022/message-box/public-api.mjs +0 -5
  666. package/esm2022/ng-nest-ui.mjs +0 -5
  667. package/esm2022/notification/ng-nest-ui-notification.mjs +0 -5
  668. package/esm2022/notification/notification.component.mjs +0 -42
  669. package/esm2022/notification/notification.module.mjs +0 -15
  670. package/esm2022/notification/notification.property.mjs +0 -8
  671. package/esm2022/notification/notification.service.mjs +0 -107
  672. package/esm2022/notification/public-api.mjs +0 -5
  673. package/esm2022/outlet/ng-nest-ui-outlet.mjs +0 -5
  674. package/esm2022/outlet/outlet.directive.mjs +0 -72
  675. package/esm2022/outlet/outlet.module.mjs +0 -16
  676. package/esm2022/outlet/outlet.property.mjs +0 -7
  677. package/esm2022/outlet/public-api.mjs +0 -4
  678. package/esm2022/page-header/ng-nest-ui-page-header.mjs +0 -5
  679. package/esm2022/page-header/page-header.component.mjs +0 -24
  680. package/esm2022/page-header/page-header.module.mjs +0 -16
  681. package/esm2022/page-header/page-header.property.mjs +0 -50
  682. package/esm2022/page-header/public-api.mjs +0 -4
  683. package/esm2022/pagination/ng-nest-ui-pagination.mjs +0 -5
  684. package/esm2022/pagination/pagination.component.mjs +0 -205
  685. package/esm2022/pagination/pagination.module.mjs +0 -16
  686. package/esm2022/pagination/pagination.property.mjs +0 -149
  687. package/esm2022/pagination/public-api.mjs +0 -4
  688. package/esm2022/pattern/ng-nest-ui-pattern.mjs +0 -5
  689. package/esm2022/pattern/pattern.component.mjs +0 -18
  690. package/esm2022/pattern/pattern.module.mjs +0 -16
  691. package/esm2022/pattern/pattern.property.mjs +0 -7
  692. package/esm2022/pattern/public-api.mjs +0 -4
  693. package/esm2022/popconfirm/ng-nest-ui-popconfirm.mjs +0 -5
  694. package/esm2022/popconfirm/popconfirm.component.mjs +0 -59
  695. package/esm2022/popconfirm/popconfirm.module.mjs +0 -16
  696. package/esm2022/popconfirm/popconfirm.property.mjs +0 -100
  697. package/esm2022/popconfirm/public-api.mjs +0 -4
  698. package/esm2022/popover/ng-nest-ui-popover.mjs +0 -5
  699. package/esm2022/popover/popover-portal.component.mjs +0 -52
  700. package/esm2022/popover/popover.directive.mjs +0 -186
  701. package/esm2022/popover/popover.module.mjs +0 -16
  702. package/esm2022/popover/popover.property.mjs +0 -101
  703. package/esm2022/popover/public-api.mjs +0 -5
  704. package/esm2022/portal/ng-nest-ui-portal.mjs +0 -5
  705. package/esm2022/portal/portal.module.mjs +0 -16
  706. package/esm2022/portal/portal.property.mjs +0 -24
  707. package/esm2022/portal/portal.service.mjs +0 -190
  708. package/esm2022/portal/public-api.mjs +0 -4
  709. package/esm2022/progress/ng-nest-ui-progress.mjs +0 -5
  710. package/esm2022/progress/progress.component.mjs +0 -224
  711. package/esm2022/progress/progress.module.mjs +0 -16
  712. package/esm2022/progress/progress.property.mjs +0 -110
  713. package/esm2022/progress/public-api.mjs +0 -4
  714. package/esm2022/radio/ng-nest-ui-radio.mjs +0 -5
  715. package/esm2022/radio/public-api.mjs +0 -4
  716. package/esm2022/radio/radio.component.mjs +0 -77
  717. package/esm2022/radio/radio.module.mjs +0 -16
  718. package/esm2022/radio/radio.property.mjs +0 -121
  719. package/esm2022/rate/ng-nest-ui-rate.mjs +0 -5
  720. package/esm2022/rate/public-api.mjs +0 -4
  721. package/esm2022/rate/rate.component.mjs +0 -99
  722. package/esm2022/rate/rate.module.mjs +0 -16
  723. package/esm2022/rate/rate.property.mjs +0 -86
  724. package/esm2022/resizable/ng-nest-ui-resizable.mjs +0 -5
  725. package/esm2022/resizable/public-api.mjs +0 -4
  726. package/esm2022/resizable/resizable.directive.mjs +0 -264
  727. package/esm2022/resizable/resizable.module.mjs +0 -16
  728. package/esm2022/resizable/resizable.property.mjs +0 -64
  729. package/esm2022/result/ng-nest-ui-result.mjs +0 -5
  730. package/esm2022/result/public-api.mjs +0 -4
  731. package/esm2022/result/result.component.mjs +0 -25
  732. package/esm2022/result/result.module.mjs +0 -16
  733. package/esm2022/result/result.property.mjs +0 -45
  734. package/esm2022/ripple/ng-nest-ui-ripple.mjs +0 -5
  735. package/esm2022/ripple/public-api.mjs +0 -4
  736. package/esm2022/ripple/ripple.directive.mjs +0 -94
  737. package/esm2022/ripple/ripple.module.mjs +0 -16
  738. package/esm2022/ripple/ripple.property.mjs +0 -40
  739. package/esm2022/select/ng-nest-ui-select.mjs +0 -5
  740. package/esm2022/select/public-api.mjs +0 -5
  741. package/esm2022/select/select-portal.component.mjs +0 -103
  742. package/esm2022/select/select.component.mjs +0 -687
  743. package/esm2022/select/select.module.mjs +0 -16
  744. package/esm2022/select/select.property.mjs +0 -238
  745. package/esm2022/skeleton/ng-nest-ui-skeleton.mjs +0 -5
  746. package/esm2022/skeleton/public-api.mjs +0 -4
  747. package/esm2022/skeleton/skeleton.component.mjs +0 -25
  748. package/esm2022/skeleton/skeleton.module.mjs +0 -16
  749. package/esm2022/skeleton/skeleton.property.mjs +0 -55
  750. package/esm2022/slider/ng-nest-ui-slider.mjs +0 -5
  751. package/esm2022/slider/public-api.mjs +0 -4
  752. package/esm2022/slider/slider.component.mjs +0 -222
  753. package/esm2022/slider/slider.module.mjs +0 -17
  754. package/esm2022/slider/slider.property.mjs +0 -102
  755. package/esm2022/slider-select/ng-nest-ui-slider-select.mjs +0 -5
  756. package/esm2022/slider-select/public-api.mjs +0 -4
  757. package/esm2022/slider-select/slider-select.component.mjs +0 -368
  758. package/esm2022/slider-select/slider-select.module.mjs +0 -16
  759. package/esm2022/slider-select/slider-select.property.mjs +0 -136
  760. package/esm2022/statistic/countdown.component.mjs +0 -70
  761. package/esm2022/statistic/ng-nest-ui-statistic.mjs +0 -5
  762. package/esm2022/statistic/public-api.mjs +0 -5
  763. package/esm2022/statistic/statistic.component.mjs +0 -34
  764. package/esm2022/statistic/statistic.module.mjs +0 -17
  765. package/esm2022/statistic/statistic.property.mjs +0 -106
  766. package/esm2022/steps/ng-nest-ui-steps.mjs +0 -5
  767. package/esm2022/steps/public-api.mjs +0 -4
  768. package/esm2022/steps/steps.component.mjs +0 -49
  769. package/esm2022/steps/steps.module.mjs +0 -16
  770. package/esm2022/steps/steps.property.mjs +0 -60
  771. package/esm2022/switch/ng-nest-ui-switch.mjs +0 -5
  772. package/esm2022/switch/public-api.mjs +0 -4
  773. package/esm2022/switch/switch.component.mjs +0 -37
  774. package/esm2022/switch/switch.module.mjs +0 -16
  775. package/esm2022/switch/switch.property.mjs +0 -91
  776. package/esm2022/table/ng-nest-ui-table.mjs +0 -5
  777. package/esm2022/table/public-api.mjs +0 -7
  778. package/esm2022/table/table-body.component.mjs +0 -236
  779. package/esm2022/table/table-foot.component.mjs +0 -29
  780. package/esm2022/table/table-head.component.mjs +0 -169
  781. package/esm2022/table/table.component.mjs +0 -372
  782. package/esm2022/table/table.module.mjs +0 -19
  783. package/esm2022/table/table.property.mjs +0 -624
  784. package/esm2022/tabs/ng-nest-ui-tabs.mjs +0 -5
  785. package/esm2022/tabs/public-api.mjs +0 -7
  786. package/esm2022/tabs/tab-content.component.mjs +0 -21
  787. package/esm2022/tabs/tab-link.directive.mjs +0 -46
  788. package/esm2022/tabs/tab.component.mjs +0 -19
  789. package/esm2022/tabs/tabs.component.mjs +0 -143
  790. package/esm2022/tabs/tabs.module.mjs +0 -18
  791. package/esm2022/tabs/tabs.property.mjs +0 -141
  792. package/esm2022/tag/ng-nest-ui-tag.mjs +0 -5
  793. package/esm2022/tag/public-api.mjs +0 -4
  794. package/esm2022/tag/tag.component.mjs +0 -51
  795. package/esm2022/tag/tag.module.mjs +0 -16
  796. package/esm2022/tag/tag.property.mjs +0 -80
  797. package/esm2022/text-retract/ng-nest-ui-text-retract.mjs +0 -5
  798. package/esm2022/text-retract/public-api.mjs +0 -4
  799. package/esm2022/text-retract/text-retract.component.mjs +0 -42
  800. package/esm2022/text-retract/text-retract.module.mjs +0 -16
  801. package/esm2022/text-retract/text-retract.property.mjs +0 -35
  802. package/esm2022/textarea/ng-nest-ui-textarea.mjs +0 -5
  803. package/esm2022/textarea/public-api.mjs +0 -4
  804. package/esm2022/textarea/textarea.component.mjs +0 -68
  805. package/esm2022/textarea/textarea.module.mjs +0 -16
  806. package/esm2022/textarea/textarea.property.mjs +0 -126
  807. package/esm2022/theme/ng-nest-ui-theme.mjs +0 -5
  808. package/esm2022/theme/public-api.mjs +0 -4
  809. package/esm2022/theme/theme.component.mjs +0 -179
  810. package/esm2022/theme/theme.module.mjs +0 -16
  811. package/esm2022/theme/theme.property.mjs +0 -63
  812. package/esm2022/time-ago/ng-nest-ui-time-ago.mjs +0 -5
  813. package/esm2022/time-ago/public-api.mjs +0 -4
  814. package/esm2022/time-ago/time-ago.module.mjs +0 -16
  815. package/esm2022/time-ago/time-ago.pipe.mjs +0 -70
  816. package/esm2022/time-ago/time-ago.property.mjs +0 -7
  817. package/esm2022/time-picker/ng-nest-ui-time-picker.mjs +0 -5
  818. package/esm2022/time-picker/public-api.mjs +0 -6
  819. package/esm2022/time-picker/time-picker-frame.component.mjs +0 -312
  820. package/esm2022/time-picker/time-picker-portal.component.mjs +0 -78
  821. package/esm2022/time-picker/time-picker.component.mjs +0 -266
  822. package/esm2022/time-picker/time-picker.module.mjs +0 -17
  823. package/esm2022/time-picker/time-picker.property.mjs +0 -198
  824. package/esm2022/time-range/ng-nest-ui-time-range.mjs +0 -5
  825. package/esm2022/time-range/public-api.mjs +0 -4
  826. package/esm2022/time-range/time-range.module.mjs +0 -16
  827. package/esm2022/time-range/time-range.pipe.mjs +0 -44
  828. package/esm2022/time-range/time-range.property.mjs +0 -7
  829. package/esm2022/timeline/ng-nest-ui-timeline.mjs +0 -5
  830. package/esm2022/timeline/public-api.mjs +0 -4
  831. package/esm2022/timeline/timeline.component.mjs +0 -45
  832. package/esm2022/timeline/timeline.module.mjs +0 -16
  833. package/esm2022/timeline/timeline.property.mjs +0 -50
  834. package/esm2022/tooltip/ng-nest-ui-tooltip.mjs +0 -5
  835. package/esm2022/tooltip/public-api.mjs +0 -5
  836. package/esm2022/tooltip/tooltip-portal.component.mjs +0 -103
  837. package/esm2022/tooltip/tooltip.directive.mjs +0 -143
  838. package/esm2022/tooltip/tooltip.module.mjs +0 -16
  839. package/esm2022/tooltip/tooltip.property.mjs +0 -86
  840. package/esm2022/transfer/ng-nest-ui-transfer.mjs +0 -5
  841. package/esm2022/transfer/public-api.mjs +0 -4
  842. package/esm2022/transfer/transfer.component.mjs +0 -659
  843. package/esm2022/transfer/transfer.module.mjs +0 -16
  844. package/esm2022/transfer/transfer.property.mjs +0 -112
  845. package/esm2022/tree/ng-nest-ui-tree.mjs +0 -5
  846. package/esm2022/tree/public-api.mjs +0 -5
  847. package/esm2022/tree/tree-node.component.mjs +0 -297
  848. package/esm2022/tree/tree.component.mjs +0 -579
  849. package/esm2022/tree/tree.module.mjs +0 -17
  850. package/esm2022/tree/tree.property.mjs +0 -337
  851. package/esm2022/tree/tree.service.mjs +0 -102
  852. package/esm2022/tree-file/ng-nest-ui-tree-file.mjs +0 -5
  853. package/esm2022/tree-file/public-api.mjs +0 -4
  854. package/esm2022/tree-file/tree-file.component.mjs +0 -118
  855. package/esm2022/tree-file/tree-file.module.mjs +0 -16
  856. package/esm2022/tree-file/tree-file.property.mjs +0 -90
  857. package/esm2022/tree-select/ng-nest-ui-tree-select.mjs +0 -5
  858. package/esm2022/tree-select/public-api.mjs +0 -5
  859. package/esm2022/tree-select/tree-select-portal.component.mjs +0 -86
  860. package/esm2022/tree-select/tree-select.component.mjs +0 -659
  861. package/esm2022/tree-select/tree-select.module.mjs +0 -17
  862. package/esm2022/tree-select/tree-select.property.mjs +0 -237
  863. package/esm2022/typography/ng-nest-ui-typography.mjs +0 -5
  864. package/esm2022/typography/public-api.mjs +0 -4
  865. package/esm2022/typography/typography.component.mjs +0 -27
  866. package/esm2022/typography/typography.module.mjs +0 -16
  867. package/esm2022/typography/typography.property.mjs +0 -34
  868. package/esm2022/upload/ng-nest-ui-upload.mjs +0 -5
  869. package/esm2022/upload/public-api.mjs +0 -5
  870. package/esm2022/upload/upload-portal.component.mjs +0 -196
  871. package/esm2022/upload/upload.component.mjs +0 -233
  872. package/esm2022/upload/upload.module.mjs +0 -16
  873. package/esm2022/upload/upload.property.mjs +0 -118
  874. package/style/core/base.scss +0 -20
  875. package/style/core/cdk.scss +0 -72
  876. package/style/core/portal.scss +0 -5
  877. package/style/core/var.scss +0 -4
  878. package/style/mixins/index.scss +0 -9
  879. package/style/params/layout.scss +0 -73
  880. package/style/params/primary.scss +0 -208
  881. package/style/themes/default.scss +0 -1
@@ -1,19 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { XDateQuarter, XDateYearQuarter } from '@ng-nest/ui/core';
3
- import { XDateQuarterPrefix } from './date-picker.property';
4
- import * as i0 from "@angular/core";
5
- export class XDateQuarterPipe {
6
- constructor() { }
7
- transform(input, includeYear = false) {
8
- if (!input)
9
- return '';
10
- return !includeYear ? XDateQuarter(input) : XDateYearQuarter(input);
11
- }
12
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XDateQuarterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: XDateQuarterPipe, isStandalone: true, name: "xDateQuarter" }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XDateQuarterPipe, decorators: [{
16
- type: Pipe,
17
- args: [{ name: `${XDateQuarterPrefix}`, standalone: true }]
18
- }], ctorParameters: () => [] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1xdWFydGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXF1YXJ0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQVMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRzVELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsZ0JBQWUsQ0FBQztJQUNoQixTQUFTLENBQUMsS0FBYSxFQUFFLFdBQVcsR0FBRyxLQUFLO1FBQzFDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUUsQ0FBQztJQUN4RSxDQUFDO2lJQUxVLGdCQUFnQjsrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZSwgWERhdGVRdWFydGVyLCBYRGF0ZVllYXJRdWFydGVyIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhEYXRlUXVhcnRlclByZWZpeCB9IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5cclxuQFBpcGUoeyBuYW1lOiBgJHtYRGF0ZVF1YXJ0ZXJQcmVmaXh9YCwgc3RhbmRhbG9uZTogdHJ1ZSB9KVxyXG5leHBvcnQgY2xhc3MgWERhdGVRdWFydGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuICB0cmFuc2Zvcm0oaW5wdXQ/OiBYRGF0ZSwgaW5jbHVkZVllYXIgPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWlucHV0KSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gIWluY2x1ZGVZZWFyID8gWERhdGVRdWFydGVyKGlucHV0KSEgOiBYRGF0ZVllYXJRdWFydGVyKGlucHV0KSE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,349 +0,0 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, input, output, computed, viewChild, signal, inject, model, DestroyRef } from '@angular/core';
2
- import { XDateRangePortalPrefix } from './date-picker.property';
3
- import { XIsEmpty, XConnectBaseAnimation, XAddMonths, XAddYears, XIsNull, XIsArray, XIsNumber, XIsString, XAddDays } from '@ng-nest/ui/core';
4
- import { map } from 'rxjs/operators';
5
- import { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';
6
- import { XI18nService, zh_CN } from '@ng-nest/ui/i18n';
7
- import { XPickerMonthComponent } from './picker-month.component';
8
- import { XPickerYearComponent } from './picker-year.component';
9
- import { XPickerDateComponent } from './picker-date.component';
10
- import { XTimePickerModule } from '@ng-nest/ui/time-picker';
11
- import { XPickerQuarterComponent } from './picker-quarter.component';
12
- import { XButtonComponent } from '@ng-nest/ui/button';
13
- import { XLinkComponent } from '@ng-nest/ui/link';
14
- import { XOutletDirective } from '@ng-nest/ui/outlet';
15
- import { toSignal } from '@angular/core/rxjs-interop';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "@ng-nest/ui/time-picker";
18
- export class XDateRangePortalComponent {
19
- constructor() {
20
- this.datePipe = inject(DatePipe);
21
- this.lowerCasePipe = inject(LowerCasePipe);
22
- this.i18n = inject(XI18nService);
23
- this.startPicker = viewChild('startPicker');
24
- this.endPicker = viewChild('endPicker');
25
- this.timePickerFrame = viewChild('timePickerFrame');
26
- this.value = model([]);
27
- this.placement = input();
28
- this.type = model('date');
29
- this.preset = input([]);
30
- this.extraFooter = input();
31
- this.disabledDate = input();
32
- this.disabledTime = input();
33
- this.activeType = input('start');
34
- this.animating = output();
35
- this.nodeClick = output();
36
- this.startNodeChanged = output();
37
- this.endNodeChanged = output();
38
- this.display = signal(new Date());
39
- this.model = signal(null);
40
- this.startModel = signal(null);
41
- this.endModel = signal(null);
42
- this.startYear = signal(null);
43
- this.startDisplay = signal(new Date());
44
- this.endDisplay = signal(XAddMonths(this.startDisplay(), 1));
45
- this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.datePicker)), {
46
- initialValue: zh_CN.datePicker
47
- });
48
- this.time = signal(null);
49
- this.timeDisplay = signal(new Date());
50
- this.timeModel = signal(null);
51
- this.timeHover = signal(false);
52
- this.nodeClickCount = signal(0);
53
- this.destroy = signal(false);
54
- this.destroyRef = inject(DestroyRef);
55
- this.isDatePicker = computed(() => {
56
- return ['date', 'quarter', 'week', 'month', 'year'].includes(this.type());
57
- });
58
- this.sureDisabled = computed(() => {
59
- if (this.timePickerFrame() && !XIsEmpty(this.time())) {
60
- const dt = new Date(this.time());
61
- const hours = dt.getHours();
62
- const minutes = dt.getMinutes();
63
- const seconds = dt.getSeconds();
64
- return (this.timePickerFrame()?.setDisabled('hours', hours) ||
65
- this.timePickerFrame()?.setDisabled('minutes', minutes) ||
66
- this.timePickerFrame()?.setDisabled('seconds', seconds));
67
- }
68
- else {
69
- return true;
70
- }
71
- });
72
- }
73
- get getPlacement() {
74
- return this.placement();
75
- }
76
- done() {
77
- if (this.destroy())
78
- return;
79
- this.animating.emit(false);
80
- }
81
- start() {
82
- if (this.destroy())
83
- return;
84
- this.animating.emit(true);
85
- }
86
- ngOnInit() {
87
- this.destroyRef.onDestroy(() => {
88
- this.destroy.set(true);
89
- });
90
- }
91
- ngAfterViewInit() {
92
- this.init();
93
- }
94
- init() {
95
- if (!XIsEmpty(this.value())) {
96
- this.setDefault();
97
- }
98
- else {
99
- this.value.set([null, null]);
100
- this.model.set(this.display());
101
- this.startModel.set(this.model());
102
- this.endModel.set(this.setModelByType(this.model(), this.isDatePicker() ? 1 : 0));
103
- this.setDisplay(this.model());
104
- }
105
- }
106
- setModelByType(byModel, num = 1) {
107
- if (['month', 'quarter'].includes(this.type())) {
108
- return XAddYears(byModel, num);
109
- }
110
- else if (this.type() === 'year') {
111
- return XAddYears(byModel, 10 * num);
112
- }
113
- else {
114
- return XAddMonths(byModel, num);
115
- }
116
- }
117
- setDatesState(cell) {
118
- if (this.type() === 'week')
119
- return;
120
- this.startPicker()?.setDatesState(cell);
121
- this.endPicker()?.setDatesState(cell);
122
- }
123
- setDefault() {
124
- const type = this.activeType() || 'start';
125
- this.timeHover.set(!this.value().every((x) => x === null));
126
- if (type === 'start') {
127
- this.startModel.set(new Date(this.value()[0]));
128
- this.startDisplay.set(this.startModel());
129
- this.endModel.set(this.setModelByType(this.startModel(), this.isDatePicker() ? 1 : 0));
130
- this.endDisplay.set(this.endModel());
131
- this.timeModel.set(this.startModel());
132
- this.timeDisplay.set(this.startDisplay());
133
- this.time.set(this.startModel().getTime());
134
- }
135
- else if (type === 'end') {
136
- this.endModel.set(new Date(this.value()[1]));
137
- this.endDisplay.set(this.endModel());
138
- this.startModel.set(this.setModelByType(this.endModel(), this.isDatePicker() ? -1 : 0));
139
- this.startDisplay.set(this.startModel());
140
- this.timeModel.set(this.endModel());
141
- this.timeDisplay.set(this.endDisplay());
142
- this.time.set(this.endModel().getTime());
143
- }
144
- }
145
- setDisplay(date) {
146
- this.display.set(new Date(date.getFullYear(), date.getMonth(), 1));
147
- this.startDisplay.set(this.display());
148
- this.endDisplay.set(this.setModelByType(this.display(), this.isDatePicker() ? 1 : 0));
149
- }
150
- dateChange(date) {
151
- this.nodeClickCount.update((x) => x + 1);
152
- let close = this.nodeClickCount() === 2;
153
- let time = this.setDateChangeTime(date);
154
- const isDatePicker = this.isDatePicker();
155
- date = new Date(time);
156
- if (this.activeType() === 'start') {
157
- this.value()[0] = time;
158
- if (!XIsNull(this.value()[1]) && time > this.value()[1]) {
159
- if (this.nodeClickCount() === 2) {
160
- this.nodeClickCount.update((x) => x - 1);
161
- }
162
- close = false;
163
- this.endModel.set(null);
164
- this.value.update((x) => {
165
- x[1] = null;
166
- return [...x];
167
- });
168
- if (!isDatePicker) {
169
- this.timeHover.set(false);
170
- }
171
- this.endNodeChanged.emit({ date: null, close, isDatePicker });
172
- }
173
- this.startNodeChanged.emit({ date, close, isDatePicker });
174
- }
175
- else if (this.activeType() === 'end') {
176
- this.value()[1] = time;
177
- if (!XIsNull(this.value()[0]) && time < this.value()[0]) {
178
- if (this.nodeClickCount() === 2) {
179
- this.nodeClickCount.update((x) => x - 1);
180
- }
181
- close = false;
182
- this.startModel.set(null);
183
- this.value.update((x) => {
184
- x[0] = null;
185
- return [...x];
186
- });
187
- if (!isDatePicker) {
188
- this.timeHover.set(false);
189
- }
190
- this.startNodeChanged.emit({ date: null, close, isDatePicker });
191
- }
192
- this.endNodeChanged.emit({ date, close, isDatePicker });
193
- }
194
- if (!this.value().includes(null) && isDatePicker) {
195
- this.nodeClick.emit({ date: this.value().map((x) => new Date(x)), close });
196
- }
197
- }
198
- setDateChangeTime(date) {
199
- if (this.isDatePicker()) {
200
- return date.getTime();
201
- }
202
- else {
203
- let time = new Date();
204
- if (this.time()) {
205
- time = new Date(this.time());
206
- }
207
- else {
208
- this.time.set(time.getTime());
209
- }
210
- if (['date-hour', 'date-minute'].includes(this.type())) {
211
- time.setSeconds(0);
212
- }
213
- if (this.type() === 'date-hour') {
214
- time.setMinutes(0);
215
- }
216
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds()).getTime();
217
- }
218
- }
219
- typeChange(type) {
220
- this.type.set(type);
221
- }
222
- yearStartChange(number) {
223
- this.startYear.set(number);
224
- }
225
- nextMonth(num) {
226
- let date = new Date(this.display());
227
- date.setMonth(date.getMonth() + num);
228
- this.setDisplay(date);
229
- }
230
- nextYear(num) {
231
- let date = new Date(this.display());
232
- date.setFullYear(date.getFullYear() + num);
233
- this.setDisplay(date);
234
- }
235
- nextYears(num) {
236
- this.startYear.update((x) => x + num);
237
- let date = new Date(this.display());
238
- date.setFullYear(this.startYear());
239
- this.setDisplay(date);
240
- }
241
- getLocaleMonth(date) {
242
- return this.locale()[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL'))];
243
- }
244
- selectTime(time) {
245
- this.time.set(time.getTime());
246
- if (XIsEmpty(this.timeModel())) {
247
- this.timeModel.set(new Date());
248
- }
249
- this.timeModel()?.setHours(time.getHours());
250
- this.timeModel()?.setMinutes(time.getMinutes());
251
- this.timeModel()?.setSeconds(time.getSeconds());
252
- this.dateChange(this.timeModel());
253
- }
254
- sureTime() {
255
- if (this.sureDisabled())
256
- return;
257
- const [start, end] = this.value();
258
- if (XIsNull(start) && !XIsNull(end)) {
259
- this.time.set(null);
260
- this.timeHover.set(true);
261
- this.endNodeChanged.emit({ date: new Date(end), close: false, isDatePicker: true });
262
- }
263
- else if (!XIsNull(start) && XIsNull(end)) {
264
- this.time.set(null);
265
- this.timeHover.set(true);
266
- this.startNodeChanged.emit({ date: new Date(start), close: false, isDatePicker: true });
267
- }
268
- else {
269
- this.nodeClick.emit({ date: this.value().map((x) => new Date(x)), close: true });
270
- }
271
- }
272
- yearChange(num, type) {
273
- if (type === 'start') {
274
- this.endDisplay.update((x) => XAddYears(x, num));
275
- }
276
- else if (type === 'end') {
277
- this.startDisplay.update((x) => XAddYears(x, num));
278
- }
279
- }
280
- monthChange(num, type) {
281
- if (type === 'start') {
282
- this.endDisplay.update((x) => XAddMonths(x, num));
283
- }
284
- else if (type === 'end') {
285
- this.startDisplay.update((x) => XAddMonths(x, num));
286
- }
287
- }
288
- onPreset(type, num = 0) {
289
- let now = new Date();
290
- if (type === 'week') {
291
- now = new Date(now.getFullYear(), now.getMonth(), now.getDate());
292
- const week = now.getDay();
293
- const weekList = [1, 2, 3, 4, 5, 6, 7];
294
- const index = weekList.indexOf(week);
295
- this.nodeClick.emit({
296
- date: [XAddDays(now, weekList[0] - (index + 1) + num * 7), XAddDays(now, weekList[6] - (index + 1) + num * 7)],
297
- close: true
298
- });
299
- }
300
- else if (type === 'month') {
301
- const month = XAddMonths(now, num);
302
- const firstDay = new Date(month.getFullYear(), month.getMonth(), 1);
303
- const lastDay = XAddDays(XAddMonths(firstDay, 1), -1);
304
- this.nodeClick.emit({ date: [firstDay, lastDay], close: true });
305
- }
306
- else if (type === 'year') {
307
- let year = XAddYears(now, num);
308
- let firstDay = new Date(year.getFullYear(), 0, 1);
309
- let lastDay = XAddDays(XAddYears(firstDay, 1), -1);
310
- this.nodeClick.emit({ date: [firstDay, lastDay], close: true });
311
- }
312
- }
313
- onPresetFunc(item) {
314
- let value = item.func();
315
- if (XIsArray(value) && value.length > 1) {
316
- if (XIsNumber(value[0]) || XIsString(value[0])) {
317
- value = value.map((x) => new Date(x));
318
- }
319
- this.nodeClick.emit({ date: value, close: true });
320
- }
321
- }
322
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XDateRangePortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
323
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XDateRangePortalComponent, isStandalone: true, selector: "x-date-range-portal", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, preset: { classPropertyName: "preset", publicName: "preset", isSignal: true, isRequired: false, transformFunction: null }, extraFooter: { classPropertyName: "extraFooter", publicName: "extraFooter", isSignal: true, isRequired: false, transformFunction: null }, disabledDate: { classPropertyName: "disabledDate", publicName: "disabledDate", isSignal: true, isRequired: false, transformFunction: null }, disabledTime: { classPropertyName: "disabledTime", publicName: "disabledTime", isSignal: true, isRequired: false, transformFunction: null }, activeType: { classPropertyName: "activeType", publicName: "activeType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", type: "typeChange", animating: "animating", nodeClick: "nodeClick", startNodeChanged: "startNodeChanged", endNodeChanged: "endNodeChanged" }, host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.getPlacement" } }, providers: [DatePipe, LowerCasePipe], viewQueries: [{ propertyName: "startPicker", first: true, predicate: ["startPicker"], descendants: true, isSignal: true }, { propertyName: "endPicker", first: true, predicate: ["endPicker"], descendants: true, isSignal: true }, { propertyName: "timePickerFrame", first: true, predicate: ["timePickerFrame"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"x-date-range-portal {{ type() }}\">\r\n <div class=\"x-date-range-portal-body\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type=\"week\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type=\"week\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n }\r\n </div>\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType() === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover()\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType()\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n }\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n @if (!isDatePicker()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" text (click)=\"!sureDisabled() && sureTime()\" size=\"small\" [disabled]=\"sureDisabled()!\">{{\r\n locale().sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-range-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('thisWeek') {\r\n <x-link (click)=\"onPreset('week', 0)\">{{ locale().thisWeek }}</x-link>\r\n }\r\n @case ('lastWeek') {\r\n <x-link (click)=\"onPreset('week', -1)\">{{ locale().lastWeek }}</x-link>\r\n }\r\n @case ('nextWeek') {\r\n <x-link (click)=\"onPreset('week', 1)\">{{ locale().nextWeek }}</x-link>\r\n }\r\n @case ('thisMonth') {\r\n <x-link (click)=\"onPreset('month', 0)\">{{ locale().thisMonth }}</x-link>\r\n }\r\n @case ('lastMonth') {\r\n <x-link (click)=\"onPreset('month', -1)\">{{ locale().lastMonth }}</x-link>\r\n }\r\n @case ('nextMonth') {\r\n <x-link (click)=\"onPreset('month', 1)\">{{ locale().nextMonth }}</x-link>\r\n }\r\n @case ('thisYear') {\r\n <x-link (click)=\"onPreset('year', 0)\">{{ locale().thisYear }}</x-link>\r\n }\r\n @case ('lastYear') {\r\n <x-link (click)=\"onPreset('year', -1)\">{{ locale().lastYear }}</x-link>\r\n }\r\n @case ('nextYear') {\r\n <x-link (click)=\"onPreset('year', 1)\">{{ locale().nextYear }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);background-color:var(--x-background-100);width:34rem;display:flex;flex-direction:column}.x-date-range-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-range-portal.week .x-picker-date-body tbody tr.x-date-week-in-range:not(.x-date-week-start-active):not(.x-date-week-end-active) .x-picker-date-item{background-color:var(--x-primary-800)}.x-date-range-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):not(.x-date-week-start-active):not(.x-date-week-end-active):not(.x-date-week-in-range):hover .x-picker-date-item{background-color:var(--x-background-a200)}.x-date-range-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):not(.x-date-week-start-active):not(.x-date-week-end-active):not(.x-date-week-in-range):hover .x-picker-date-item:first-child{border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-date-range-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):not(.x-date-week-start-active):not(.x-date-week-end-active):not(.x-date-week-in-range):hover .x-picker-date-item:last-child{border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-time .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-hour .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal.date-minute .x-date-range-portal-body{flex-direction:column}.x-date-range-portal-content{display:flex}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-link{padding:.25rem}.x-date-range-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-range-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-body .x-picker-date-item:before,.x-date-range-portal-body .x-picker-date-item:after{position:absolute;top:50%;right:0;left:0;z-index:1;border:var(--x-border-width) dashed transparent;transform:translateY(-50%);transition:var(--x-animation-duration-base);content:\"\"}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next),.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next){color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next) .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child):after{background-color:var(--x-primary-800);transform:translate(-.25rem,-50%);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{background-color:var(--x-primary-800);transform:translate(.25rem,-50%);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start.x-date-range-end.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{display:none}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{position:relative;z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):before{background-color:var(--x-primary-800);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):first-child:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):last-child:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-left:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-right:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover:before{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:not(.x-date-last-or-next):before{border-color:var(--x-primary);border-left-color:transparent;border-right-color:transparent;transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day:before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start:not(.x-date-last-or-next):before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-range-hover-start:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end:not(.x-date-last-or-next):before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(-.3125rem,-50%);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(.3125rem,-50%);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-footer .x-date-range-portal-preset{border-top:none}.x-date-range-portal-footer .x-date-range-portal-preset>x-link{padding:0 .25rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: XPickerDateComponent, selector: "x-picker-date" }, { kind: "component", type: XPickerMonthComponent, selector: "x-picker-month" }, { kind: "component", type: XPickerYearComponent, selector: "x-picker-year" }, { kind: "component", type: XPickerQuarterComponent, selector: "x-picker-quarter" }, { kind: "ngmodule", type: XTimePickerModule }, { kind: "component", type: i1.XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value", "use12Hours", "hourStep", "minuteStep", "secondStep", "defaultNow", "disabledTime", "disabledTimeParam"], outputs: ["nodeEmit"] }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
324
- }
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XDateRangePortalComponent, decorators: [{
326
- type: Component,
327
- args: [{ selector: `${XDateRangePortalPrefix}`, standalone: true, imports: [
328
- NgTemplateOutlet,
329
- DatePipe,
330
- XPickerDateComponent,
331
- XPickerMonthComponent,
332
- XPickerYearComponent,
333
- XPickerQuarterComponent,
334
- XTimePickerModule,
335
- XButtonComponent,
336
- XLinkComponent,
337
- XOutletDirective
338
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-range-portal {{ type() }}\">\r\n <div class=\"x-date-range-portal-body\">\r\n @switch (type()) {\r\n @case ('date') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n type=\"week\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n type=\"week\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n <x-picker-quarter\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [(model)]=\"startModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [nextYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [(model)]=\"endModel\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [lastYearBtn]=\"false\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n }\r\n </div>\r\n @if (isDatePicker()) {\r\n @if (extraFooter()) {\r\n <div class=\"x-date-range-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType() === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType() === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover()\"\r\n [rangeValue]=\"value()\"\r\n [rangeType]=\"activeType()\"\r\n [disabledDate]=\"disabledDate()\"\r\n (modelChange)=\"dateChange($event!)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time() | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time()\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTimeParam]=\"activeType()\"\r\n [disabledTime]=\"disabledTime()\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker() && extraFooter()) {\r\n <ng-container *xOutlet=\"extraFooter()\">{{ extraFooter() }}</ng-container>\r\n }\r\n <div class=\"x-date-range-portal-footer\">\r\n <div class=\"x-date-range-portal-footer-left\">\r\n @if (!isDatePicker()) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" text (click)=\"!sureDisabled() && sureTime()\" size=\"small\" [disabled]=\"sureDisabled()!\">{{\r\n locale().sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset()) {\r\n <div class=\"x-date-range-portal-preset\">\r\n @for (item of preset(); track item) {\r\n @switch (item.id) {\r\n @case ('thisWeek') {\r\n <x-link (click)=\"onPreset('week', 0)\">{{ locale().thisWeek }}</x-link>\r\n }\r\n @case ('lastWeek') {\r\n <x-link (click)=\"onPreset('week', -1)\">{{ locale().lastWeek }}</x-link>\r\n }\r\n @case ('nextWeek') {\r\n <x-link (click)=\"onPreset('week', 1)\">{{ locale().nextWeek }}</x-link>\r\n }\r\n @case ('thisMonth') {\r\n <x-link (click)=\"onPreset('month', 0)\">{{ locale().thisMonth }}</x-link>\r\n }\r\n @case ('lastMonth') {\r\n <x-link (click)=\"onPreset('month', -1)\">{{ locale().lastMonth }}</x-link>\r\n }\r\n @case ('nextMonth') {\r\n <x-link (click)=\"onPreset('month', 1)\">{{ locale().nextMonth }}</x-link>\r\n }\r\n @case ('thisYear') {\r\n <x-link (click)=\"onPreset('year', 0)\">{{ locale().thisYear }}</x-link>\r\n }\r\n @case ('lastYear') {\r\n <x-link (click)=\"onPreset('year', -1)\">{{ locale().lastYear }}</x-link>\r\n }\r\n @case ('nextYear') {\r\n <x-link (click)=\"onPreset('year', 1)\">{{ locale().nextYear }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);background-color:var(--x-background-100);width:34rem;display:flex;flex-direction:column}.x-date-range-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-range-portal.week .x-picker-date-body tbody tr.x-date-week-in-range:not(.x-date-week-start-active):not(.x-date-week-end-active) .x-picker-date-item{background-color:var(--x-primary-800)}.x-date-range-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):not(.x-date-week-start-active):not(.x-date-week-end-active):not(.x-date-week-in-range):hover .x-picker-date-item{background-color:var(--x-background-a200)}.x-date-range-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):not(.x-date-week-start-active):not(.x-date-week-end-active):not(.x-date-week-in-range):hover .x-picker-date-item:first-child{border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-date-range-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):not(.x-date-week-start-active):not(.x-date-week-end-active):not(.x-date-week-in-range):hover .x-picker-date-item:last-child{border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-time .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-hour .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal.date-minute .x-date-range-portal-body{flex-direction:column}.x-date-range-portal-content{display:flex}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-link{padding:.25rem}.x-date-range-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-range-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-body .x-picker-date-item:before,.x-date-range-portal-body .x-picker-date-item:after{position:absolute;top:50%;right:0;left:0;z-index:1;border:var(--x-border-width) dashed transparent;transform:translateY(-50%);transition:var(--x-animation-duration-base);content:\"\"}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next),.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next){color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next) .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child):after{background-color:var(--x-primary-800);transform:translate(-.25rem,-50%);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{background-color:var(--x-primary-800);transform:translate(.25rem,-50%);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start.x-date-range-end.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{display:none}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{position:relative;z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):before{background-color:var(--x-primary-800);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):first-child:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):last-child:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-left:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-right:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover:before{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:not(.x-date-last-or-next):before{border-color:var(--x-primary);border-left-color:transparent;border-right-color:transparent;transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day:before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start:not(.x-date-last-or-next):before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-range-hover-start:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end:not(.x-date-last-or-next):before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(-.3125rem,-50%);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(.3125rem,-50%);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-footer .x-date-range-portal-preset{border-top:none}.x-date-range-portal-footer .x-date-range-portal-preset>x-link{padding:0 .25rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"] }]
339
- }], propDecorators: { getPlacement: [{
340
- type: HostBinding,
341
- args: ['@x-connect-base-animation']
342
- }], done: [{
343
- type: HostListener,
344
- args: ['@x-connect-base-animation.done', ['$event']]
345
- }], start: [{
346
- type: HostListener,
347
- args: ['@x-connect-base-animation.start', ['$event']]
348
- }] } });
349
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsc0JBQXNCLEVBTXZCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUNMLFFBQVEsRUFDUixxQkFBcUIsRUFFckIsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBRVAsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsUUFBUSxFQUNULE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBbUIsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FB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QUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekYs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QUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXLEVBQUUsSUFBc0I7UUFDNUMsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFXLEVBQUUsSUFBc0I7UUFDN0MsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUErQixFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQy9DLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDcEIsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMs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O2lJQW5VVSx5QkFBeUI7cUhBQXpCLHlCQUF5QixxOUNBRnpCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxvWEN0RXRDLHEyVkEwUkEsNjFVRHBPSSxnQkFBZ0IsK0lBQ2hCLFFBQVEsNkNBQ1Isb0JBQW9CLDBEQUNwQixxQkFBcUIsMkRBQ3JCLG9CQUFvQiwwREFDcEIsdUJBQXVCLDREQUN2QixpQkFBaUIsc1JBQ2pCLGdCQUFnQixxREFDaEIsY0FBYyxtREFDZCxnQkFBZ0IsK0VBTU4sQ0FBQyxxQkFBcUIsQ0FBQzs7MkZBR3hCLHlCQUF5QjtrQkF0QnJDLFNBQVM7K0JBQ0UsR0FBRyxzQkFBc0IsRUFBRSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUMsYUFDeEIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDOzhCQUdpQixZQUFZO3NCQUFoRSxXQUFXO3VCQUFDLDJCQUEyQjtnQkFHb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG4gIGNvbXB1dGVkLFxyXG4gIHZpZXdDaGlsZCxcclxuICBzaWduYWwsXHJcbiAgaW5qZWN0LFxyXG4gIG1vZGVsLFxyXG4gIERlc3Ryb3lSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4LFxyXG4gIFhEYXRlUGlja2VyVHlwZSxcclxuICBYRGF0ZUNlbGwsXHJcbiAgWERhdGVSYW5nZVByZXNldCxcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkRGF0ZSxcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkVGltZVxyXG59IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0VtcHR5LFxyXG4gIFhDb25uZWN0QmFzZUFuaW1hdGlvbixcclxuICBYUG9zaXRpb25Ub3BCb3R0b20sXHJcbiAgWEFkZE1vbnRocyxcclxuICBYQWRkWWVhcnMsXHJcbiAgWElzTnVsbCxcclxuICBYVGVtcGxhdGUsXHJcbiAgWElzQXJyYXksXHJcbiAgWElzTnVtYmVyLFxyXG4gIFhJc1N0cmluZyxcclxuICBYQWRkRGF5c1xyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBMb3dlckNhc2VQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4bkRhdGVQaWNrZXIsIHpoX0NOIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFhQaWNrZXJNb250aENvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLW1vbnRoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQaWNrZXJZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXIteWVhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYUGlja2VyRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLWRhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFRpbWVQaWNrZXJGcmFtZUNvbXBvbmVudCwgWFRpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS90aW1lLXBpY2tlcic7XHJcbmltcG9ydCB7IFhQaWNrZXJRdWFydGVyQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXItcXVhcnRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgWExpbmtDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUmFuZ2VQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIFhQaWNrZXJEYXRlQ29tcG9uZW50LFxyXG4gICAgWFBpY2tlck1vbnRoQ29tcG9uZW50LFxyXG4gICAgWFBpY2tlclllYXJDb21wb25lbnQsXHJcbiAgICBYUGlja2VyUXVhcnRlckNvbXBvbmVudCxcclxuICAgIFhUaW1lUGlja2VyTW9kdWxlLFxyXG4gICAgWEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFhMaW5rQ29tcG9uZW50LFxyXG4gICAgWE91dGxldERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl0sXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVJhbmdlUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIGdldCBnZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmRlc3Ryb3koKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5hbmltYXRpbmcuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIGlmICh0aGlzLmRlc3Ryb3koKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5hbmltYXRpbmcuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGRhdGVQaXBlID0gaW5qZWN0KERhdGVQaXBlKTtcclxuICBsb3dlckNhc2VQaXBlID0gaW5qZWN0KExvd2VyQ2FzZVBpcGUpO1xyXG4gIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuXHJcbiAgc3RhcnRQaWNrZXIgPSB2aWV3Q2hpbGQ8WFBpY2tlckRhdGVDb21wb25lbnQgfCBYUGlja2VyTW9udGhDb21wb25lbnQgfCBYUGlja2VyWWVhckNvbXBvbmVudD4oJ3N0YXJ0UGlja2VyJyk7XHJcbiAgZW5kUGlja2VyID0gdmlld0NoaWxkPFhQaWNrZXJEYXRlQ29tcG9uZW50IHwgWFBpY2tlck1vbnRoQ29tcG9uZW50IHwgWFBpY2tlclllYXJDb21wb25lbnQ+KCdlbmRQaWNrZXInKTtcclxuICB0aW1lUGlja2VyRnJhbWUgPSB2aWV3Q2hpbGQ8WFRpbWVQaWNrZXJGcmFtZUNvbXBvbmVudD4oJ3RpbWVQaWNrZXJGcmFtZScpO1xyXG5cclxuICB2YWx1ZSA9IG1vZGVsPChudW1iZXIgfCBudWxsKVtdPihbXSk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8WFBvc2l0aW9uVG9wQm90dG9tPigpO1xyXG4gIHR5cGUgPSBtb2RlbDxYRGF0ZVBpY2tlclR5cGU+KCdkYXRlJyk7XHJcbiAgcHJlc2V0ID0gaW5wdXQ8WERhdGVSYW5nZVByZXNldFtdPihbXSk7XHJcbiAgZXh0cmFGb290ZXIgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgZGlzYWJsZWREYXRlID0gaW5wdXQ8WERhdGVQaWNrZXJEaXNhYmxlZERhdGU+KCk7XHJcbiAgZGlzYWJsZWRUaW1lID0gaW5wdXQ8WERhdGVQaWNrZXJEaXNhYmxlZFRpbWU+KCk7XHJcbiAgYWN0aXZlVHlwZSA9IGlucHV0PCdzdGFydCcgfCAnZW5kJz4oJ3N0YXJ0Jyk7XHJcblxyXG4gIGFuaW1hdGluZyA9IG91dHB1dDxib29sZWFuPigpO1xyXG4gIG5vZGVDbGljayA9IG91dHB1dDx7IGRhdGU6IERhdGVbXTsgY2xvc2U/OiBib29sZWFuIH0+KCk7XHJcbiAgc3RhcnROb2RlQ2hhbmdlZCA9IG91dHB1dDx7IGRhdGU6IERhdGUgfCBudWxsOyBjbG9zZT86IGJvb2xlYW47IGlzRGF0ZVBpY2tlcj86IGJvb2xlYW4gfT4oKTtcclxuICBlbmROb2RlQ2hhbmdlZCA9IG91dHB1dDx7IGRhdGU6IERhdGUgfCBudWxsOyBjbG9zZT86IGJvb2xlYW47IGlzRGF0ZVBpY2tlcj86IGJvb2xlYW4gfT4oKTtcclxuXHJcbiAgZGlzcGxheSA9IHNpZ25hbChuZXcgRGF0ZSgpKTtcclxuICBtb2RlbCA9IHNpZ25hbDxEYXRlIHwgbnVsbD4obnVsbCk7XHJcbiAgc3RhcnRNb2RlbCA9IHNpZ25hbDxEYXRlIHwgbnVsbD4obnVsbCk7XHJcbiAgZW5kTW9kZWwgPSBzaWduYWw8RGF0ZSB8IG51bGw+KG51bGwpO1xyXG4gIHN0YXJ0WWVhciA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBzdGFydERpc3BsYXkgPSBzaWduYWwobmV3IERhdGUoKSk7XHJcbiAgZW5kRGlzcGxheSA9IHNpZ25hbChYQWRkTW9udGhzKHRoaXMuc3RhcnREaXNwbGF5KCksIDEpKTtcclxuXHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlcikpLCB7XHJcbiAgICBpbml0aWFsVmFsdWU6IHpoX0NOLmRhdGVQaWNrZXJcclxuICB9KTtcclxuICB0aW1lID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIHRpbWVEaXNwbGF5ID0gc2lnbmFsKG5ldyBEYXRlKCkpO1xyXG4gIHRpbWVNb2RlbCA9IHNpZ25hbDxEYXRlIHwgbnVsbD4obnVsbCk7XHJcbiAgdGltZUhvdmVyID0gc2lnbmFsKGZhbHNlKTtcclxuICBub2RlQ2xpY2tDb3VudCA9IHNpZ25hbCgwKTtcclxuXHJcbiAgZGVzdHJveSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICBpc0RhdGVQaWNrZXIgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gWydkYXRlJywgJ3F1YXJ0ZXInLCAnd2VlaycsICdtb250aCcsICd5ZWFyJ10uaW5jbHVkZXModGhpcy50eXBlKCkpO1xyXG4gIH0pO1xyXG5cclxuICBzdXJlRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy50aW1lUGlja2VyRnJhbWUoKSAmJiAhWElzRW1wdHkodGhpcy50aW1lKCkpKSB7XHJcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUodGhpcy50aW1lKCkhKTtcclxuICAgICAgY29uc3QgaG91cnMgPSBkdC5nZXRIb3VycygpO1xyXG4gICAgICBjb25zdCBtaW51dGVzID0gZHQuZ2V0TWludXRlcygpO1xyXG4gICAgICBjb25zdCBzZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lKCk/LnNldERpc2FibGVkKCdob3VycycsIGhvdXJzKSB8fFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lKCk/LnNldERpc2FibGVkKCdtaW51dGVzJywgbWludXRlcykgfHxcclxuICAgICAgICB0aGlzLnRpbWVQaWNrZXJGcmFtZSgpPy5zZXREaXNhYmxlZCgnc2Vjb25kcycsIHNlY29uZHMpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcclxuICAgICAgdGhpcy5kZXN0cm95LnNldCh0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKCkpKSB7XHJcbiAgICAgIHRoaXMuc2V0RGVmYXVsdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQoW251bGwsIG51bGxdKTtcclxuICAgICAgdGhpcy5tb2RlbC5zZXQodGhpcy5kaXNwbGF5KCkpO1xyXG4gICAgICB0aGlzLnN0YXJ0TW9kZWwuc2V0KHRoaXMubW9kZWwoKSk7XHJcbiAgICAgIHRoaXMuZW5kTW9kZWwuc2V0KHRoaXMuc2V0TW9kZWxCeVR5cGUodGhpcy5tb2RlbCgpISwgdGhpcy5pc0RhdGVQaWNrZXIoKSA/IDEgOiAwKSk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheSh0aGlzLm1vZGVsKCkhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE1vZGVsQnlUeXBlKGJ5TW9kZWw6IERhdGUsIG51bTogbnVtYmVyID0gMSkge1xyXG4gICAgaWYgKFsnbW9udGgnLCAncXVhcnRlciddLmluY2x1ZGVzKHRoaXMudHlwZSgpKSkge1xyXG4gICAgICByZXR1cm4gWEFkZFllYXJzKGJ5TW9kZWwhLCBudW0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHJldHVybiBYQWRkWWVhcnMoYnlNb2RlbCEsIDEwICogbnVtKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBYQWRkTW9udGhzKGJ5TW9kZWwhLCBudW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZXNTdGF0ZShjZWxsOiBYRGF0ZUNlbGwpIHtcclxuICAgIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3dlZWsnKSByZXR1cm47XHJcbiAgICB0aGlzLnN0YXJ0UGlja2VyKCk/LnNldERhdGVzU3RhdGUoY2VsbCk7XHJcbiAgICB0aGlzLmVuZFBpY2tlcigpPy5zZXREYXRlc1N0YXRlKGNlbGwpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdCgpIHtcclxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmFjdGl2ZVR5cGUoKSB8fCAnc3RhcnQnO1xyXG4gICAgdGhpcy50aW1lSG92ZXIuc2V0KCF0aGlzLnZhbHVlKCkuZXZlcnkoKHgpID0+IHggPT09IG51bGwpKTtcclxuICAgIGlmICh0eXBlID09PSAnc3RhcnQnKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRNb2RlbC5zZXQobmV3IERhdGUodGhpcy52YWx1ZSgpWzBdISkpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGlzcGxheS5zZXQodGhpcy5zdGFydE1vZGVsKCkhKTtcclxuICAgICAgdGhpcy5lbmRNb2RlbC5zZXQodGhpcy5zZXRNb2RlbEJ5VHlwZSh0aGlzLnN0YXJ0TW9kZWwoKSEsIHRoaXMuaXNEYXRlUGlja2VyKCkgPyAxIDogMCkpO1xyXG4gICAgICB0aGlzLmVuZERpc3BsYXkuc2V0KHRoaXMuZW5kTW9kZWwoKSEpO1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5zZXQodGhpcy5zdGFydE1vZGVsKCkpO1xyXG4gICAgICB0aGlzLnRpbWVEaXNwbGF5LnNldCh0aGlzLnN0YXJ0RGlzcGxheSgpKTtcclxuICAgICAgdGhpcy50aW1lLnNldCh0aGlzLnN0YXJ0TW9kZWwoKSEuZ2V0VGltZSgpKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgdGhpcy5lbmRNb2RlbC5zZXQobmV3IERhdGUodGhpcy52YWx1ZSgpWzFdISkpO1xyXG4gICAgICB0aGlzLmVuZERpc3BsYXkuc2V0KHRoaXMuZW5kTW9kZWwoKSEpO1xyXG4gICAgICB0aGlzLnN0YXJ0TW9kZWwuc2V0KHRoaXMuc2V0TW9kZWxCeVR5cGUodGhpcy5lbmRNb2RlbCgpISwgdGhpcy5pc0RhdGVQaWNrZXIoKSA/IC0xIDogMCkpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGlzcGxheS5zZXQodGhpcy5zdGFydE1vZGVsKCkhKTtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuc2V0KHRoaXMuZW5kTW9kZWwoKSk7XHJcbiAgICAgIHRoaXMudGltZURpc3BsYXkuc2V0KHRoaXMuZW5kRGlzcGxheSgpKTtcclxuICAgICAgdGhpcy50aW1lLnNldCh0aGlzLmVuZE1vZGVsKCkhLmdldFRpbWUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5KGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuZGlzcGxheS5zZXQobmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpKTtcclxuICAgIHRoaXMuc3RhcnREaXNwbGF5LnNldCh0aGlzLmRpc3BsYXkoKSk7XHJcbiAgICB0aGlzLmVuZERpc3BsYXkuc2V0KHRoaXMuc2V0TW9kZWxCeVR5cGUodGhpcy5kaXNwbGF5KCksIHRoaXMuaXNEYXRlUGlja2VyKCkgPyAxIDogMCkpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLm5vZGVDbGlja0NvdW50LnVwZGF0ZSgoeCkgPT4geCArIDEpO1xyXG4gICAgbGV0IGNsb3NlID0gdGhpcy5ub2RlQ2xpY2tDb3VudCgpID09PSAyO1xyXG4gICAgbGV0IHRpbWUgPSB0aGlzLnNldERhdGVDaGFuZ2VUaW1lKGRhdGUpO1xyXG4gICAgY29uc3QgaXNEYXRlUGlja2VyID0gdGhpcy5pc0RhdGVQaWNrZXIoKTtcclxuICAgIGRhdGUgPSBuZXcgRGF0ZSh0aW1lKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVR5cGUoKSA9PT0gJ3N0YXJ0Jykge1xyXG4gICAgICB0aGlzLnZhbHVlKClbMF0gPSB0aW1lO1xyXG4gICAgICBpZiAoIVhJc051bGwodGhpcy52YWx1ZSgpWzFdKSAmJiB0aW1lID4gdGhpcy52YWx1ZSgpWzFdISkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGVDbGlja0NvdW50KCkgPT09IDIpIHtcclxuICAgICAgICAgIHRoaXMubm9kZUNsaWNrQ291bnQudXBkYXRlKCh4KSA9PiB4IC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNsb3NlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lbmRNb2RlbC5zZXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZS51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgIHhbMV0gPSBudWxsO1xyXG4gICAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoIWlzRGF0ZVBpY2tlcikge1xyXG4gICAgICAgICAgdGhpcy50aW1lSG92ZXIuc2V0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5lbmROb2RlQ2hhbmdlZC5lbWl0KHsgZGF0ZTogbnVsbCwgY2xvc2UsIGlzRGF0ZVBpY2tlciB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXJ0Tm9kZUNoYW5nZWQuZW1pdCh7IGRhdGUsIGNsb3NlLCBpc0RhdGVQaWNrZXIgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVHlwZSgpID09PSAnZW5kJykge1xyXG4gICAgICB0aGlzLnZhbHVlKClbMV0gPSB0aW1lO1xyXG4gICAgICBpZiAoIVhJc051bGwodGhpcy52YWx1ZSgpWzBdKSAmJiB0aW1lIDwgdGhpcy52YWx1ZSgpWzBdISkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGVDbGlja0NvdW50KCkgPT09IDIpIHtcclxuICAgICAgICAgIHRoaXMubm9kZUNsaWNrQ291bnQudXBkYXRlKCh4KSA9PiB4IC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNsb3NlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydE1vZGVsLnNldChudWxsKTtcclxuICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgeFswXSA9IG51bGw7XHJcbiAgICAgICAgICByZXR1cm4gWy4uLnhdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICghaXNEYXRlUGlja2VyKSB7XHJcbiAgICAgICAgICB0aGlzLnRpbWVIb3Zlci5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0Tm9kZUNoYW5nZWQuZW1pdCh7IGRhdGU6IG51bGwsIGNsb3NlLCBpc0RhdGVQaWNrZXIgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbmROb2RlQ2hhbmdlZC5lbWl0KHsgZGF0ZSwgY2xvc2UsIGlzRGF0ZVBpY2tlciB9KTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy52YWx1ZSgpLmluY2x1ZGVzKG51bGwpICYmIGlzRGF0ZVBpY2tlcikge1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZTogdGhpcy52YWx1ZSgpLm1hcCgoeCkgPT4gbmV3IERhdGUoeCEpKSwgY2xvc2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREYXRlQ2hhbmdlVGltZShkYXRlOiBEYXRlKSB7XHJcbiAgICBpZiAodGhpcy5pc0RhdGVQaWNrZXIoKSkge1xyXG4gICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgdGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGlmICh0aGlzLnRpbWUoKSkge1xyXG4gICAgICAgIHRpbWUgPSBuZXcgRGF0ZSh0aGlzLnRpbWUoKSEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGltZS5zZXQodGltZS5nZXRUaW1lKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChbJ2RhdGUtaG91cicsICdkYXRlLW1pbnV0ZSddLmluY2x1ZGVzKHRoaXMudHlwZSgpKSkge1xyXG4gICAgICAgIHRpbWUuc2V0U2Vjb25kcygwKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50eXBlKCkgPT09ICdkYXRlLWhvdXInKSB7XHJcbiAgICAgICAgdGltZS5zZXRNaW51dGVzKDApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgICB0aW1lLmdldEhvdXJzKCksXHJcbiAgICAgICAgdGltZS5nZXRNaW51dGVzKCksXHJcbiAgICAgICAgdGltZS5nZXRTZWNvbmRzKClcclxuICAgICAgKS5nZXRUaW1lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0eXBlQ2hhbmdlKHR5cGU6IFhEYXRlUGlja2VyVHlwZSkge1xyXG4gICAgdGhpcy50eXBlLnNldCh0eXBlKTtcclxuICB9XHJcblxyXG4gIHllYXJTdGFydENoYW5nZShudW1iZXI6IG51bWJlcikge1xyXG4gICAgdGhpcy5zdGFydFllYXIuc2V0KG51bWJlcik7XHJcbiAgfVxyXG5cclxuICBuZXh0TW9udGgobnVtOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KCkpO1xyXG4gICAgZGF0ZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgKyBudW0pO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFllYXIobnVtOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KCkpO1xyXG4gICAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyBudW0pO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFllYXJzKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXJ0WWVhci51cGRhdGUoKHgpID0+IHghICsgbnVtKTtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KCkpO1xyXG4gICAgZGF0ZS5zZXRGdWxsWWVhcih0aGlzLnN0YXJ0WWVhcigpISk7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGVNb250aChkYXRlOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gKHRoaXMubG9jYWxlKCkgYXMgYW55KVt0aGlzLmxvd2VyQ2FzZVBpcGUudHJhbnNmb3JtKHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsICdMTExMJykgYXMgc3RyaW5nKV07XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUaW1lKHRpbWU6IERhdGUpIHtcclxuICAgIHRoaXMudGltZS5zZXQodGltZS5nZXRUaW1lKCkpO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudGltZU1vZGVsKCkpKSB7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLnNldChuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIHRoaXMudGltZU1vZGVsKCk/LnNldEhvdXJzKHRpbWUuZ2V0SG91cnMoKSk7XHJcbiAgICB0aGlzLnRpbWVNb2RlbCgpPy5zZXRNaW51dGVzKHRpbWUuZ2V0TWludXRlcygpKTtcclxuICAgIHRoaXMudGltZU1vZGVsKCk/LnNldFNlY29uZHModGltZS5nZXRTZWNvbmRzKCkpO1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKHRoaXMudGltZU1vZGVsKCkhKTtcclxuICB9XHJcblxyXG4gIHN1cmVUaW1lKCkge1xyXG4gICAgaWYgKHRoaXMuc3VyZURpc2FibGVkKCkpIHJldHVybjtcclxuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMudmFsdWUoKTtcclxuICAgIGlmIChYSXNOdWxsKHN0YXJ0KSAmJiAhWElzTnVsbChlbmQpKSB7XHJcbiAgICAgIHRoaXMudGltZS5zZXQobnVsbCk7XHJcbiAgICAgIHRoaXMudGltZUhvdmVyLnNldCh0cnVlKTtcclxuICAgICAgdGhpcy5lbmROb2RlQ2hhbmdlZC5lbWl0KHsgZGF0ZTogbmV3IERhdGUoZW5kISksIGNsb3NlOiBmYWxzZSwgaXNEYXRlUGlja2VyOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIGlmICghWElzTnVsbChzdGFydCkgJiYgWElzTnVsbChlbmQpKSB7XHJcbiAgICAgIHRoaXMudGltZS5zZXQobnVsbCk7XHJcbiAgICAgIHRoaXMudGltZUhvdmVyLnNldCh0cnVlKTtcclxuICAgICAgdGhpcy5zdGFydE5vZGVDaGFuZ2VkLmVtaXQoeyBkYXRlOiBuZXcgRGF0ZShzdGFydCEpLCBjbG9zZTogZmFsc2UsIGlzRGF0ZVBpY2tlcjogdHJ1ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBkYXRlOiB0aGlzLnZhbHVlKCkubWFwKCh4KSA9PiBuZXcgRGF0ZSh4ISkpLCBjbG9zZTogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHllYXJDaGFuZ2UobnVtOiBudW1iZXIsIHR5cGU/OiAnc3RhcnQnIHwgJ2VuZCcpIHtcclxuICAgIGlmICh0eXBlID09PSAnc3RhcnQnKSB7XHJcbiAgICAgIHRoaXMuZW5kRGlzcGxheS51cGRhdGUoKHgpID0+IFhBZGRZZWFycyh4LCBudW0pKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgdGhpcy5zdGFydERpc3BsYXkudXBkYXRlKCh4KSA9PiBYQWRkWWVhcnMoeCwgbnVtKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb250aENoYW5nZShudW06IG51bWJlciwgdHlwZT86ICdzdGFydCcgfCAnZW5kJykge1xyXG4gICAgaWYgKHR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgdGhpcy5lbmREaXNwbGF5LnVwZGF0ZSgoeCkgPT4gWEFkZE1vbnRocyh4LCBudW0pKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgdGhpcy5zdGFydERpc3BsYXkudXBkYXRlKCh4KSA9PiBYQWRkTW9udGhzKHgsIG51bSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25QcmVzZXQodHlwZTogJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJywgbnVtID0gMCkge1xyXG4gICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAodHlwZSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgIG5vdyA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbm93LmdldERhdGUoKSk7XHJcbiAgICAgIGNvbnN0IHdlZWsgPSBub3cuZ2V0RGF5KCk7XHJcbiAgICAgIGNvbnN0IHdlZWtMaXN0ID0gWzEsIDIsIDMsIDQsIDUsIDYsIDddO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHdlZWtMaXN0LmluZGV4T2Yod2Vlayk7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoe1xyXG4gICAgICAgIGRhdGU6IFtYQWRkRGF5cyhub3csIHdlZWtMaXN0WzBdIC0gKGluZGV4ICsgMSkgKyBudW0gKiA3KSwgWEFkZERheXMobm93LCB3ZWVrTGlzdFs2XSAtIChpbmRleCArIDEpICsgbnVtICogNyldLFxyXG4gICAgICAgIGNsb3NlOiB0cnVlXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIGNvbnN0IG1vbnRoID0gWEFkZE1vbnRocyhub3csIG51bSk7XHJcbiAgICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IERhdGUobW9udGguZ2V0RnVsbFllYXIoKSwgbW9udGguZ2V0TW9udGgoKSwgMSk7XHJcbiAgICAgIGNvbnN0IGxhc3REYXkgPSBYQWRkRGF5cyhYQWRkTW9udGhzKGZpcnN0RGF5LCAxKSwgLTEpO1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZTogW2ZpcnN0RGF5LCBsYXN0RGF5XSwgY2xvc2U6IHRydWUgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICBsZXQgeWVhciA9IFhBZGRZZWFycyhub3csIG51bSk7XHJcbiAgICAgIGxldCBmaXJzdERheSA9IG5ldyBEYXRlKHllYXIuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XHJcbiAgICAgIGxldCBsYXN0RGF5ID0gWEFkZERheXMoWEFkZFllYXJzKGZpcnN0RGF5LCAxKSwgLTEpO1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZTogW2ZpcnN0RGF5LCBsYXN0RGF5XSwgY2xvc2U6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblByZXNldEZ1bmMoaXRlbTogWERhdGVSYW5nZVByZXNldCkge1xyXG4gICAgbGV0IHZhbHVlID0gaXRlbS5mdW5jKCk7XHJcbiAgICBpZiAoWElzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDEpIHtcclxuICAgICAgaWYgKFhJc051bWJlcih2YWx1ZVswXSkgfHwgWElzU3RyaW5nKHZhbHVlWzBdKSkge1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKCh4KSA9PiBuZXcgRGF0ZSh4KSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ub2RlQ2xpY2suZW1pdCh7IGRhdGU6IHZhbHVlLCBjbG9zZTogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwge3sgdHlwZSgpIH19XCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtYm9keVwiPlxyXG4gICAgQHN3aXRjaCAodHlwZSgpKSB7XHJcbiAgICAgIEBjYXNlICgnZGF0ZScpIHtcclxuICAgICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgICAgI3N0YXJ0UGlja2VyXHJcbiAgICAgICAgICBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtc3RhcnRcIlxyXG4gICAgICAgICAgWyhkaXNwbGF5KV09XCJzdGFydERpc3BsYXlcIlxyXG4gICAgICAgICAgWyhtb2RlbCldPVwic3RhcnRNb2RlbFwiXHJcbiAgICAgICAgICBbcmFuZ2VWYWx1ZV09XCJ2YWx1ZSgpXCJcclxuICAgICAgICAgIFtyYW5nZVR5cGVdPVwiYWN0aXZlVHlwZSgpXCJcclxuICAgICAgICAgIFtuZXh0WWVhckJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbbmV4dE1vbnRoQnRuXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgICAgKHllYXJDaGFuZ2UpPVwieWVhckNoYW5nZSgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICAgIChtb250aENoYW5nZSk9XCJtb250aENoYW5nZSgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICAgIChyYW5nZVRkTW91c2VlbnRlcik9XCJzZXREYXRlc1N0YXRlKCRldmVudClcIlxyXG4gICAgICAgICAgcmFuZ2VQaWNrZXJcclxuICAgICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgICAgIDx4LXBpY2tlci1kYXRlXHJcbiAgICAgICAgICAjZW5kUGlja2VyXHJcbiAgICAgICAgICBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtZW5kXCJcclxuICAgICAgICAgIFsoZGlzcGxheSldPVwiZW5kRGlzcGxheVwiXHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJlbmRNb2RlbFwiXHJcbiAgICAgICAgICBbcmFuZ2VWYWx1ZV09XCJ2YWx1ZSgpXCJcclxuICAgICAgICAgIFtyYW5nZVR5cGVdPVwiYWN0aXZlVHlwZSgpXCJcclxuICAgICAgICAgIFtsYXN0WWVhckJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbbGFzdE1vbnRoQnRuXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgICAgKHllYXJDaGFuZ2UpPVwieWVhckNoYW5nZSgkZXZlbnQsICdlbmQnKVwiXHJcbiAgICAgICAgICAobW9udGhDaGFuZ2UpPVwibW9udGhDaGFuZ2UoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgICAgKHJhbmdlVGRNb3VzZWVudGVyKT1cInNldERhdGVzU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCd3ZWVrJykge1xyXG4gICAgICAgIDx4LXBpY2tlci1kYXRlXHJcbiAgICAgICAgICAjc3RhcnRQaWNrZXJcclxuICAgICAgICAgIGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1zdGFydFwiXHJcbiAgICAgICAgICB0eXBlPVwid2Vla1wiXHJcbiAgICAgICAgICBbKGRpc3BsYXkpXT1cInN0YXJ0RGlzcGxheVwiXHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJzdGFydE1vZGVsXCJcclxuICAgICAgICAgIFtyYW5nZVZhbHVlXT1cInZhbHVlKClcIlxyXG4gICAgICAgICAgW3JhbmdlVHlwZV09XCJhY3RpdmVUeXBlKClcIlxyXG4gICAgICAgICAgW25leHRZZWFyQnRuXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtuZXh0TW9udGhCdG5dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGUoKVwiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQhKVwiXHJcbiAgICAgICAgICAoeWVhckNoYW5nZSk9XCJ5ZWFyQ2hhbmdlKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm1vbnRoQ2hhbmdlKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgICAgKHJhbmdlVGRNb3VzZWVudGVyKT1cInNldERhdGVzU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICAgICNlbmRQaWNrZXJcclxuICAgICAgICAgIGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1lbmRcIlxyXG4gICAgICAgICAgdHlwZT1cIndlZWtcIlxyXG4gICAgICAgICAgWyhkaXNwbGF5KV09XCJlbmREaXNwbGF5XCJcclxuICAgICAgICAgIFsobW9kZWwpXT1cImVuZE1vZGVsXCJcclxuICAgICAgICAgIFtyYW5nZVZhbHVlXT1cInZhbHVlKClcIlxyXG4gICAgICAgICAgW3JhbmdlVHlwZV09XCJhY3RpdmVUeXBlKClcIlxyXG4gICAgICAgICAgW2xhc3RZZWFyQnRuXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtsYXN0TW9udGhCdG5dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGUoKVwiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQhKVwiXHJcbiAgICAgICAgICAoeWVhckNoYW5nZSk9XCJ5ZWFyQ2hhbmdlKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgICAgIChtb250aENoYW5nZSk9XCJtb250aENoYW5nZSgkZXZlbnQsICdlbmQnKVwiXHJcbiAgICAgICAgICAocmFuZ2VUZE1vdXNlZW50ZXIpPVwic2V0RGF0ZXNTdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgIHJhbmdlUGlja2VyXHJcbiAgICAgICAgPjwveC1waWNrZXItZGF0ZT5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ21vbnRoJykge1xyXG4gICAgICAgIDx4LXBpY2tlci1tb250aFxyXG4gICAgICAgICAgI3N0YXJ0UGlja2VyXHJcbiAgICAgICAgICBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtc3RhcnRcIlxyXG4gICAgICAgICAgWyhkaXNwbGF5KV09XCJzdGFydERpc3BsYXlcIlxyXG4gICAgICAgICAgWyhtb2RlbCldPVwic3RhcnRNb2RlbFwiXHJcbiAgICAgICAgICBbcmFuZ2VWYWx1ZV09XCJ2YWx1ZSgpXCJcclxuICAgICAgICAgIFtyYW5nZVR5cGVdPVwiYWN0aXZlVHlwZSgpXCJcclxuICAgICAgICAgIFtuZXh0WWVhckJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICAgICh5ZWFyQ2hhbmdlKT1cInllYXJDaGFuZ2UoJGV2ZW50LCAnc3RhcnQnKVwiXHJcbiAgICAgICAgICAobW9udGhDaGFuZ2UpPVwibW9udGhDaGFuZ2UoJGV2ZW50LCAnc3RhcnQnKVwiXHJcbiAgICAgICAgICAocmFuZ2VUZE1vdXNlZW50ZXIpPVwic2V0RGF0ZXNTdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgIHJhbmdlUGlja2VyXHJcbiAgICAgICAgPjwveC1waWNrZXItbW9udGg+XHJcbiAgICAgICAgPHgtcGlja2VyLW1vbnRoXHJcbiAgICAgICAgICAjZW5kUGlja2VyXHJcbiAgICAgICAgICBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtZW5kXCJcclxuICAgICAgICAgIFsoZGlzcGxheSldPVwiZW5kRGlzcGxheVwiXHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJlbmRNb2RlbFwiXHJcbiAgICAgICAgICBbcmFuZ2VWYWx1ZV09XCJ2YWx1ZSgpXCJcclxuICAgICAgICAgIFtyYW5nZVR5cGVdPVwiYWN0aXZlVHlwZSgpXCJcclxuICAgICAgICAgIFtsYXN0WWVhckJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICAgICh5ZWFyQ2hhbmdlKT1cInllYXJDaGFuZ2UoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm1vbnRoQ2hhbmdlKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgICAgIChyYW5nZVRkTW91c2VlbnRlcik9XCJzZXREYXRlc1N0YXRlKCRldmVudClcIlxyXG4gICAgICAgICAgcmFuZ2VQaWNrZXJcclxuICAgICAgICA+PC94LXBpY2tlci1tb250aD5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ3F1YXJ0ZXInKSB7XHJcbiAgICAgICAgPHgtcGlja2VyLXF1YXJ0ZXJcclxuICAgICAgICAgICNzdGFydFBpY2tlclxyXG4gICAgICAgICAgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLXN0YXJ0XCJcclxuICAgICAgICAgIFsoZGlzcGxheSldPVwic3RhcnREaXNwbGF5XCJcclxuICAgICAgICAgIFsobW9kZWwpXT1cInN0YXJ0TW9kZWxcIlxyXG4gICAgICAgICAgW3JhbmdlVmFsdWVdPVwidmFsdWUoKVwiXHJcbiAgICAgICAgICBbcmFuZ2VUeXBlXT1cImFjdGl2ZVR5cGUoKVwiXHJcbiAgICAgICAgICBbbmV4dFllYXJCdG5dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGUoKVwiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQhKVwiXHJcbiAgICAgICAgICAoeWVhckNoYW5nZSk9XCJ5ZWFyQ2hhbmdlKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm1vbnRoQ2hhbmdlKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgICAgKHJhbmdlVGRNb3VzZWVudGVyKT1cInNldERhdGVzU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICAgID48L3gtcGlja2VyLXF1YXJ0ZXI+XHJcbiAgICAgICAgPHgtcGlja2VyLXF1YXJ0ZXJcclxuICAgICAgICAgICNlbmRQaWNrZXJcclxuICAgICAgICAgIGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1lbmRcIlxyXG4gICAgICAgICAgWyhkaXNwbGF5KV09XCJlbmREaXNwbGF5XCJcclxuICAgICAgICAgIFsobW9kZWwpXT1cImVuZE1vZGVsXCJcclxuICAgICAgICAgIFtyYW5nZVZhbHVlXT1cInZhbHVlKClcIlxyXG4gICAgICAgICAgW3JhbmdlVHlwZV09XCJhY3RpdmVUeXBlKClcIlxyXG4gICAgICAgICAgW2xhc3RZZWFyQnRuXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgICAgKHllYXJDaGFuZ2UpPVwieWVhckNoYW5nZSgkZXZlbnQsICdlbmQnKVwiXHJcbiAgICAgICAgICAobW9udGhDaGFuZ2UpPVwibW9udGhDaGFuZ2UoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgICAgKHJhbmdlVGRNb3VzZWVudGVyKT1cInNldERhdGVzU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICAgID48L3gtcGlja2VyLXF1YXJ0ZXI+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCd5ZWFyJykge1xyXG4gICAgICAgIDx4LXBpY2tlci15ZWFyXHJcbiAgICAgICAgICAjc3RhcnRQaWNrZXJcclxuICAgICAgICAgIGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1zdGFydFwiXHJcbiAgICAgICAgICBbKGRpc3BsYXkpXT1cInN0YXJ0RGlzcGxheVwiXHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJzdGFydE1vZGVsXCJcclxuICAgICAgICAgIFtyYW5nZVZhbHVlXT1cInZhbHVlKClcIlxyXG4gICAgICAgICAgW3JhbmdlVHlwZV09XCJhY3RpdmVUeXBlKClcIlxyXG4gICAgICAgICAgW25leHRZZWFyQnRuXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgICAgKHllYXJDaGFuZ2UpPVwieWVhckNoYW5nZSgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICAgIChtb250aENoYW5nZSk9XCJtb250aENoYW5nZSgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICAgIChyYW5nZVRkTW91c2VlbnRlcik9XCJzZXREYXRlc1N0YXRlKCRldmVudClcIlxyXG4gICAgICAgICAgcmFuZ2VQaWNrZXJcclxuICAgICAgICA+PC94LXBpY2tlci15ZWFyPlxyXG4gICAgICAgIDx4LXBpY2tlci15ZWFyXHJcbiAgICAgICAgICAjZW5kUGlja2VyXHJcbiAgICAgICAgICBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtZW5kXCJcclxuICAgICAgICAgIFsoZGlzcGxheSldPVwiZW5kRGlzcGxheVwiXHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJlbmRNb2RlbFwiXHJcbiAgICAgICAgICBbcmFuZ2VWYWx1ZV09XCJ2YWx1ZSgpXCJcclxuICAgICAgICAgIFtyYW5nZVR5cGVdPVwiYWN0aXZlVHlwZSgpXCJcclxuICAgICAgICAgIFtsYXN0WWVhckJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICAgICh5ZWFyQ2hhbmdlKT1cInllYXJDaGFuZ2UoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm1vbnRoQ2hhbmdlKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgICAgIChyYW5nZVRkTW91c2VlbnRlcik9XCJzZXREYXRlc1N0YXRlKCRldmVudClcIlxyXG4gICAgICAgICAgcmFuZ2VQaWNrZXJcclxuICAgICAgICA+PC94LXBpY2tlci15ZWFyPlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnZGF0ZS10aW1lJykge1xyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISDptbTpzcycsIHRpbWVUeXBlOiAndGltZScgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnZGF0ZS1ob3VyJykge1xyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISCcsIHRpbWVUeXBlOiAnaG91cicgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnZGF0ZS1taW51dGUnKSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIOm1tJywgdGltZVR5cGU6ICdtaW51dGUnIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIEBpZiAoaXNEYXRlUGlja2VyKCkpIHtcclxuICAgIEBpZiAoZXh0cmFGb290ZXIoKSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1leHRyYS1mb290ZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXIoKVwiPnt7IGV4dHJhRm9vdGVyKCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZVRpbWVIb3VyTWludXRlVHBsIGxldC10aW1lRm9ybWF0PVwidGltZUZvcm1hdFwiIGxldC10aW1lVHlwZT1cInRpbWVUeXBlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtZGF0ZVwiPlxyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtcG9ydGFsLXN0YXJ0XT1cImFjdGl2ZVR5cGUoKSA9PT0gJ3N0YXJ0J1wiXHJcbiAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1wb3J0YWwtZW5kXT1cImFjdGl2ZVR5cGUoKSA9PT0gJ2VuZCdcIlxyXG4gICAgICAgIFsoZGlzcGxheSldPVwidGltZURpc3BsYXlcIlxyXG4gICAgICAgIFsobW9kZWwpXT1cInRpbWVNb2RlbFwiXHJcbiAgICAgICAgW3JhbmdlSG92ZXJdPVwidGltZUhvdmVyKClcIlxyXG4gICAgICAgIFtyYW5nZVZhbHVlXT1cInZhbHVlKClcIlxyXG4gICAgICAgIFtyYW5nZVR5cGVdPVwiYWN0aXZlVHlwZSgpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQhKVwiXHJcbiAgICAgICAgcmFuZ2VQaWNrZXJcclxuICAgICAgPjwveC1waWNrZXItZGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC10aW1lLWxhYmVsXCI+XHJcbiAgICAgICAge3sgdGltZSgpIHwgZGF0ZTogdGltZUZvcm1hdCB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHgtdGltZS1waWNrZXItZnJhbWVcclxuICAgICAgICAjdGltZVBpY2tlckZyYW1lXHJcbiAgICAgICAgW3R5cGVdPVwidGltZVR5cGVcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0aW1lKClcIlxyXG4gICAgICAgIChub2RlRW1pdCk9XCJzZWxlY3RUaW1lKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZFRpbWVQYXJhbV09XCJhY3RpdmVUeXBlKClcIlxyXG4gICAgICAgIFtkaXNhYmxlZFRpbWVdPVwiZGlzYWJsZWRUaW1lKClcIlxyXG4gICAgICAgIFtkZWZhdWx0Tm93XT1cImZhbHNlXCJcclxuICAgICAgPjwveC10aW1lLXBpY2tlci1mcmFtZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIEBpZiAoIWlzRGF0ZVBpY2tlcigpICYmIGV4dHJhRm9vdGVyKCkpIHtcclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJleHRyYUZvb3RlcigpXCI+e3sgZXh0cmFGb290ZXIoKSB9fTwvbmctY29udGFpbmVyPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1mb290ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLWZvb3Rlci1sZWZ0XCI+XHJcbiAgICAgIEBpZiAoIWlzRGF0ZVBpY2tlcigpKSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZXNldFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIHRleHQgKGNsaWNrKT1cIiFzdXJlRGlzYWJsZWQoKSAmJiBzdXJlVGltZSgpXCIgc2l6ZT1cInNtYWxsXCIgW2Rpc2FibGVkXT1cInN1cmVEaXNhYmxlZCgpIVwiPnt7XHJcbiAgICAgIGxvY2FsZSgpLnN1cmVcclxuICAgIH19PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcHJlc2V0VHBsPlxyXG4gIEBpZiAocHJlc2V0KCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLXByZXNldFwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIHByZXNldCgpOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgQHN3aXRjaCAoaXRlbS5pZCkge1xyXG4gICAgICAgICAgQGNhc2UgKCd0aGlzV2VlaycpIHtcclxuICAgICAgICAgICAgPHgtbGluayAoY2xpY2spPVwib25QcmVzZXQoJ3dlZWsnLCAwKVwiPnt7IGxvY2FsZSgpLnRoaXNXZWVrIH19PC94LWxpbms+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAY2FzZSAoJ2xhc3RXZWVrJykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblByZXNldCgnd2VlaycsIC0xKVwiPnt7IGxvY2FsZSgpLmxhc3RXZWVrIH19PC94LWxpbms+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAY2FzZSAoJ25leHRXZWVrJykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblByZXNldCgnd2VlaycsIDEpXCI+e3sgbG9jYWxlKCkubmV4dFdlZWsgfX08L3gtbGluaz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBjYXNlICgndGhpc01vbnRoJykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblByZXNldCgnbW9udGgnLCAwKVwiPnt7IGxvY2FsZSgpLnRoaXNNb250aCB9fTwveC1saW5rPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCdsYXN0TW9udGgnKSB7XHJcbiAgICAgICAgICAgIDx4LWxpbmsgKGNsaWNrKT1cIm9uUHJlc2V0KCdtb250aCcsIC0xKVwiPnt7IGxvY2FsZSgpLmxhc3RNb250aCB9fTwveC1saW5rPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCduZXh0TW9udGgnKSB7XHJcbiAgICAgICAgICAgIDx4LWxpbmsgKGNsaWNrKT1cIm9uUHJlc2V0KCdtb250aCcsIDEpXCI+e3sgbG9jYWxlKCkubmV4dE1vbnRoIH19PC94LWxpbms+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAY2FzZSAoJ3RoaXNZZWFyJykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblByZXNldCgneWVhcicsIDApXCI+e3sgbG9jYWxlKCkudGhpc1llYXIgfX08L3gtbGluaz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBjYXNlICgnbGFzdFllYXInKSB7XHJcbiAgICAgICAgICAgIDx4LWxpbmsgKGNsaWNrKT1cIm9uUHJlc2V0KCd5ZWFyJywgLTEpXCI+e3sgbG9jYWxlKCkubGFzdFllYXIgfX08L3gtbGluaz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBjYXNlICgnbmV4dFllYXInKSB7XHJcbiAgICAgICAgICAgIDx4LWxpbmsgKGNsaWNrKT1cIm9uUHJlc2V0KCd5ZWFyJywgMSlcIj57eyBsb2NhbGUoKS5uZXh0WWVhciB9fTwveC1saW5rPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKCEhaXRlbS5mdW5jKSB7XHJcbiAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblByZXNldEZ1bmMoaXRlbSlcIj57eyBpdGVtLmxhYmVsIH19PC94LWxpbms+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==