@coreui/angular-pro 5.2.23 → 5.3.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 (392) hide show
  1. package/README.md +5 -5
  2. package/fesm2022/coreui-angular-pro.mjs +1067 -1166
  3. package/fesm2022/coreui-angular-pro.mjs.map +1 -1
  4. package/lib/grid/col.directive.d.ts +26 -26
  5. package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +2 -2
  6. package/lib/tabs-2/tab/tab.directive.d.ts +4 -3
  7. package/lib/tabs-2/tabs-list/tabs-list.component.d.ts +1 -1
  8. package/package.json +9 -11
  9. package/esm2022/coreui-angular-pro.mjs +0 -5
  10. package/esm2022/lib/accordion/accordion/accordion.component.mjs +0 -34
  11. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +0 -35
  12. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +0 -59
  13. package/esm2022/lib/accordion/accordion.module.mjs +0 -36
  14. package/esm2022/lib/accordion/accordion.service.mjs +0 -36
  15. package/esm2022/lib/accordion/index.mjs +0 -2
  16. package/esm2022/lib/accordion/public_api.mjs +0 -5
  17. package/esm2022/lib/alert/alert-heading.directive.mjs +0 -15
  18. package/esm2022/lib/alert/alert-link.directive.mjs +0 -15
  19. package/esm2022/lib/alert/alert.component.mjs +0 -173
  20. package/esm2022/lib/alert/alert.module.mjs +0 -30
  21. package/esm2022/lib/alert/index.mjs +0 -2
  22. package/esm2022/lib/alert/public_api.mjs +0 -5
  23. package/esm2022/lib/avatar/avatar.component.mjs +0 -71
  24. package/esm2022/lib/avatar/avatar.module.mjs +0 -20
  25. package/esm2022/lib/avatar/index.mjs +0 -2
  26. package/esm2022/lib/avatar/public_api.mjs +0 -3
  27. package/esm2022/lib/backdrop/backdrop.service.mjs +0 -82
  28. package/esm2022/lib/backdrop/index.mjs +0 -2
  29. package/esm2022/lib/backdrop/public_api.mjs +0 -2
  30. package/esm2022/lib/badge/badge.component.mjs +0 -77
  31. package/esm2022/lib/badge/badge.module.mjs +0 -20
  32. package/esm2022/lib/badge/index.mjs +0 -2
  33. package/esm2022/lib/badge/public_api.mjs +0 -3
  34. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +0 -40
  35. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +0 -39
  36. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs +0 -2
  37. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +0 -41
  38. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +0 -52
  39. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -34
  40. package/esm2022/lib/breadcrumb/index.mjs +0 -2
  41. package/esm2022/lib/breadcrumb/public_api.mjs +0 -6
  42. package/esm2022/lib/button/button-close.directive.mjs +0 -46
  43. package/esm2022/lib/button/button.directive.mjs +0 -88
  44. package/esm2022/lib/button/button.module.mjs +0 -25
  45. package/esm2022/lib/button/index.mjs +0 -2
  46. package/esm2022/lib/button/public_api.mjs +0 -4
  47. package/esm2022/lib/button-group/button-group/button-group.component.mjs +0 -41
  48. package/esm2022/lib/button-group/button-group.module.mjs +0 -17
  49. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +0 -24
  50. package/esm2022/lib/button-group/index.mjs +0 -2
  51. package/esm2022/lib/button-group/public_api.mjs +0 -4
  52. package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +0 -20
  53. package/esm2022/lib/calendar/calendar/calendar.component.mjs +0 -380
  54. package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +0 -30
  55. package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +0 -24
  56. package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +0 -24
  57. package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +0 -22
  58. package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +0 -17
  59. package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +0 -138
  60. package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +0 -19
  61. package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +0 -448
  62. package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +0 -123
  63. package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +0 -21
  64. package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +0 -87
  65. package/esm2022/lib/calendar/calendar.module.mjs +0 -57
  66. package/esm2022/lib/calendar/calendar.service.mjs +0 -66
  67. package/esm2022/lib/calendar/calendar.utils.mjs +0 -393
  68. package/esm2022/lib/calendar/index.mjs +0 -2
  69. package/esm2022/lib/calendar/public_api.mjs +0 -5
  70. package/esm2022/lib/callout/callout.component.mjs +0 -25
  71. package/esm2022/lib/callout/callout.module.mjs +0 -16
  72. package/esm2022/lib/callout/index.mjs +0 -2
  73. package/esm2022/lib/callout/public_api.mjs +0 -3
  74. package/esm2022/lib/card/card-body.component.mjs +0 -16
  75. package/esm2022/lib/card/card-footer.component.mjs +0 -16
  76. package/esm2022/lib/card/card-group.component.mjs +0 -16
  77. package/esm2022/lib/card/card-header-actions.component.mjs +0 -16
  78. package/esm2022/lib/card/card-header.component.mjs +0 -16
  79. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +0 -11
  80. package/esm2022/lib/card/card-img.directive.mjs +0 -32
  81. package/esm2022/lib/card/card-link.directive.mjs +0 -15
  82. package/esm2022/lib/card/card-subtitle.directive.mjs +0 -15
  83. package/esm2022/lib/card/card-text.directive.mjs +0 -15
  84. package/esm2022/lib/card/card-title.directive.mjs +0 -15
  85. package/esm2022/lib/card/card.component.mjs +0 -50
  86. package/esm2022/lib/card/card.module.mjs +0 -75
  87. package/esm2022/lib/card/index.mjs +0 -2
  88. package/esm2022/lib/card/public_api.mjs +0 -14
  89. package/esm2022/lib/carousel/carousel/carousel.component.mjs +0 -212
  90. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +0 -17
  91. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +0 -82
  92. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +0 -44
  93. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +0 -47
  94. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +0 -67
  95. package/esm2022/lib/carousel/carousel-state.mjs +0 -77
  96. package/esm2022/lib/carousel/carousel-state.type.mjs +0 -2
  97. package/esm2022/lib/carousel/carousel.animation.mjs +0 -70
  98. package/esm2022/lib/carousel/carousel.config.mjs +0 -22
  99. package/esm2022/lib/carousel/carousel.module.mjs +0 -52
  100. package/esm2022/lib/carousel/carousel.service.mjs +0 -18
  101. package/esm2022/lib/carousel/index.mjs +0 -2
  102. package/esm2022/lib/carousel/public_api.mjs +0 -9
  103. package/esm2022/lib/collapse/collapse.animations.mjs +0 -9
  104. package/esm2022/lib/collapse/collapse.directive.mjs +0 -145
  105. package/esm2022/lib/collapse/collapse.module.mjs +0 -19
  106. package/esm2022/lib/collapse/index.mjs +0 -2
  107. package/esm2022/lib/collapse/public_api.mjs +0 -3
  108. package/esm2022/lib/coreui.types.mjs +0 -10
  109. package/esm2022/lib/date-picker/date-picker.component.mjs +0 -80
  110. package/esm2022/lib/date-picker/date-picker.module.mjs +0 -16
  111. package/esm2022/lib/date-picker/index.mjs +0 -2
  112. package/esm2022/lib/date-picker/public_api.mjs +0 -3
  113. package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +0 -17
  114. package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +0 -599
  115. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +0 -16
  116. package/esm2022/lib/date-range-picker/index.mjs +0 -2
  117. package/esm2022/lib/date-range-picker/public_api.mjs +0 -3
  118. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +0 -371
  119. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +0 -73
  120. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +0 -15
  121. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +0 -15
  122. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +0 -15
  123. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +0 -96
  124. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +0 -119
  125. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -56
  126. package/esm2022/lib/dropdown/dropdown.service.mjs +0 -18
  127. package/esm2022/lib/dropdown/index.mjs +0 -2
  128. package/esm2022/lib/dropdown/public_api.mjs +0 -10
  129. package/esm2022/lib/element-cover/element-cover.component.mjs +0 -79
  130. package/esm2022/lib/element-cover/element-cover.module.mjs +0 -16
  131. package/esm2022/lib/element-cover/index.mjs +0 -2
  132. package/esm2022/lib/element-cover/public_api.mjs +0 -3
  133. package/esm2022/lib/footer/footer.component.mjs +0 -39
  134. package/esm2022/lib/footer/footer.module.mjs +0 -16
  135. package/esm2022/lib/footer/index.mjs +0 -2
  136. package/esm2022/lib/footer/public_api.mjs +0 -3
  137. package/esm2022/lib/form/form/form.directive.mjs +0 -33
  138. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +0 -78
  139. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +0 -15
  140. package/esm2022/lib/form/form-check/form-check.component.mjs +0 -77
  141. package/esm2022/lib/form/form-control/form-control.directive.mjs +0 -66
  142. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +0 -38
  143. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +0 -32
  144. package/esm2022/lib/form/form-label/form-label.directive.mjs +0 -41
  145. package/esm2022/lib/form/form-select/form-select.directive.mjs +0 -36
  146. package/esm2022/lib/form/form-text/form-text.directive.mjs +0 -15
  147. package/esm2022/lib/form/form.module.mjs +0 -75
  148. package/esm2022/lib/form/index.mjs +0 -2
  149. package/esm2022/lib/form/input-group/input-group.component.mjs +0 -29
  150. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +0 -15
  151. package/esm2022/lib/form/public_api.mjs +0 -14
  152. package/esm2022/lib/grid/col.component.mjs +0 -12
  153. package/esm2022/lib/grid/col.directive.mjs +0 -157
  154. package/esm2022/lib/grid/col.type.mjs +0 -2
  155. package/esm2022/lib/grid/container.component.mjs +0 -33
  156. package/esm2022/lib/grid/container.type.mjs +0 -2
  157. package/esm2022/lib/grid/grid.module.mjs +0 -45
  158. package/esm2022/lib/grid/gutter.directive.mjs +0 -57
  159. package/esm2022/lib/grid/gutter.type.mjs +0 -2
  160. package/esm2022/lib/grid/index.mjs +0 -2
  161. package/esm2022/lib/grid/public_api.mjs +0 -8
  162. package/esm2022/lib/grid/row.component.mjs +0 -16
  163. package/esm2022/lib/grid/row.directive.mjs +0 -47
  164. package/esm2022/lib/grid/row.type.mjs +0 -2
  165. package/esm2022/lib/header/header/header.component.mjs +0 -45
  166. package/esm2022/lib/header/header-brand/header-brand.component.mjs +0 -32
  167. package/esm2022/lib/header/header-divider/header-divider.component.mjs +0 -21
  168. package/esm2022/lib/header/header-nav/header-nav.component.mjs +0 -28
  169. package/esm2022/lib/header/header-text/header-text.component.mjs +0 -21
  170. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +0 -55
  171. package/esm2022/lib/header/header.module.mjs +0 -45
  172. package/esm2022/lib/header/index.mjs +0 -2
  173. package/esm2022/lib/header/public_api.mjs +0 -8
  174. package/esm2022/lib/image/img.directive.mjs +0 -58
  175. package/esm2022/lib/image/img.module.mjs +0 -16
  176. package/esm2022/lib/image/index.mjs +0 -2
  177. package/esm2022/lib/image/public_api.mjs +0 -3
  178. package/esm2022/lib/list-group/index.mjs +0 -2
  179. package/esm2022/lib/list-group/list-group-item.directive.mjs +0 -63
  180. package/esm2022/lib/list-group/list-group.directive.mjs +0 -38
  181. package/esm2022/lib/list-group/list-group.module.mjs +0 -17
  182. package/esm2022/lib/list-group/public_api.mjs +0 -4
  183. package/esm2022/lib/loading-button/index.mjs +0 -2
  184. package/esm2022/lib/loading-button/loading-button.animations.mjs +0 -26
  185. package/esm2022/lib/loading-button/loading-button.component.mjs +0 -65
  186. package/esm2022/lib/loading-button/loading-button.module.mjs +0 -16
  187. package/esm2022/lib/loading-button/public_api.mjs +0 -3
  188. package/esm2022/lib/modal/index.mjs +0 -2
  189. package/esm2022/lib/modal/modal/modal.component.mjs +0 -334
  190. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +0 -11
  191. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +0 -16
  192. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +0 -32
  193. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +0 -28
  194. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +0 -16
  195. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +0 -16
  196. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +0 -15
  197. package/esm2022/lib/modal/modal.module.mjs +0 -57
  198. package/esm2022/lib/modal/modal.service.mjs +0 -21
  199. package/esm2022/lib/modal/public_api.mjs +0 -11
  200. package/esm2022/lib/multi-select/index.mjs +0 -2
  201. package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +0 -65
  202. package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +0 -1296
  203. package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +0 -30
  204. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +0 -11
  205. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +0 -59
  206. package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +0 -302
  207. package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +0 -44
  208. package/esm2022/lib/multi-select/multi-select.module.mjs +0 -37
  209. package/esm2022/lib/multi-select/multi-select.service.mjs +0 -50
  210. package/esm2022/lib/multi-select/multi-select.type.mjs +0 -2
  211. package/esm2022/lib/multi-select/public_api.mjs +0 -6
  212. package/esm2022/lib/nav/index.mjs +0 -2
  213. package/esm2022/lib/nav/nav-item.component.mjs +0 -11
  214. package/esm2022/lib/nav/nav-link.directive.mjs +0 -76
  215. package/esm2022/lib/nav/nav.component.mjs +0 -25
  216. package/esm2022/lib/nav/nav.module.mjs +0 -30
  217. package/esm2022/lib/nav/public_api.mjs +0 -5
  218. package/esm2022/lib/navbar/index.mjs +0 -2
  219. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +0 -18
  220. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +0 -29
  221. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +0 -16
  222. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +0 -63
  223. package/esm2022/lib/navbar/navbar.component.mjs +0 -107
  224. package/esm2022/lib/navbar/navbar.module.mjs +0 -40
  225. package/esm2022/lib/navbar/public_api.mjs +0 -7
  226. package/esm2022/lib/offcanvas/index.mjs +0 -2
  227. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +0 -309
  228. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +0 -11
  229. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +0 -16
  230. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +0 -15
  231. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +0 -28
  232. package/esm2022/lib/offcanvas/offcanvas.module.mjs +0 -49
  233. package/esm2022/lib/offcanvas/offcanvas.service.mjs +0 -21
  234. package/esm2022/lib/offcanvas/public_api.mjs +0 -8
  235. package/esm2022/lib/pagination/index.mjs +0 -2
  236. package/esm2022/lib/pagination/page-item/page-item.component.mjs +0 -12
  237. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +0 -64
  238. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +0 -15
  239. package/esm2022/lib/pagination/pagination/pagination.component.mjs +0 -41
  240. package/esm2022/lib/pagination/pagination.module.mjs +0 -35
  241. package/esm2022/lib/pagination/public_api.mjs +0 -6
  242. package/esm2022/lib/placeholder/index.mjs +0 -2
  243. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +0 -34
  244. package/esm2022/lib/placeholder/placeholder.directive.mjs +0 -43
  245. package/esm2022/lib/placeholder/placeholder.module.mjs +0 -25
  246. package/esm2022/lib/placeholder/public_api.mjs +0 -4
  247. package/esm2022/lib/popover/index.mjs +0 -2
  248. package/esm2022/lib/popover/popover/popover.component.mjs +0 -70
  249. package/esm2022/lib/popover/popover.directive.mjs +0 -204
  250. package/esm2022/lib/popover/popover.module.mjs +0 -25
  251. package/esm2022/lib/popover/public_api.mjs +0 -4
  252. package/esm2022/lib/progress/index.mjs +0 -2
  253. package/esm2022/lib/progress/progress-bar.component.mjs +0 -40
  254. package/esm2022/lib/progress/progress-bar.directive.mjs +0 -113
  255. package/esm2022/lib/progress/progress-stacked.component.mjs +0 -19
  256. package/esm2022/lib/progress/progress.component.mjs +0 -74
  257. package/esm2022/lib/progress/progress.module.mjs +0 -35
  258. package/esm2022/lib/progress/progress.type.mjs +0 -2
  259. package/esm2022/lib/progress/public_api.mjs +0 -6
  260. package/esm2022/lib/rating/index.mjs +0 -2
  261. package/esm2022/lib/rating/public_api.mjs +0 -3
  262. package/esm2022/lib/rating/rating-item-label/rating-item-label.component.mjs +0 -40
  263. package/esm2022/lib/rating/rating.component.mjs +0 -355
  264. package/esm2022/lib/rating/rating.module.mjs +0 -16
  265. package/esm2022/lib/services/class-toggle.service.mjs +0 -30
  266. package/esm2022/lib/services/color-mode.service.mjs +0 -78
  267. package/esm2022/lib/services/in-memory-storage.service.mjs +0 -32
  268. package/esm2022/lib/services/index.mjs +0 -2
  269. package/esm2022/lib/services/intersection.service.mjs +0 -51
  270. package/esm2022/lib/services/listeners.service.mjs +0 -52
  271. package/esm2022/lib/services/local-storage.service.mjs +0 -45
  272. package/esm2022/lib/services/public_api.mjs +0 -7
  273. package/esm2022/lib/shared/element-ref.directive.mjs +0 -18
  274. package/esm2022/lib/shared/html-attr.directive.mjs +0 -56
  275. package/esm2022/lib/shared/index.mjs +0 -2
  276. package/esm2022/lib/shared/public_api.mjs +0 -6
  277. package/esm2022/lib/shared/shared.module.mjs +0 -24
  278. package/esm2022/lib/shared/template-id.directive.mjs +0 -20
  279. package/esm2022/lib/shared/theme.directive.mjs +0 -45
  280. package/esm2022/lib/sidebar/index.mjs +0 -2
  281. package/esm2022/lib/sidebar/public_api.mjs +0 -10
  282. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +0 -241
  283. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +0 -62
  284. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +0 -30
  285. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +0 -16
  286. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +0 -16
  287. package/esm2022/lib/sidebar/sidebar-nav/index.mjs +0 -2
  288. package/esm2022/lib/sidebar/sidebar-nav/public_api.mjs +0 -14
  289. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +0 -25
  290. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +0 -17
  291. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +0 -18
  292. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +0 -21
  293. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +0 -34
  294. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +0 -43
  295. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +0 -111
  296. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +0 -23
  297. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +0 -71
  298. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +0 -230
  299. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.mjs +0 -2
  300. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +0 -54
  301. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +0 -41
  302. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +0 -39
  303. package/esm2022/lib/sidebar/sidebar.module.mjs +0 -83
  304. package/esm2022/lib/sidebar/sidebar.service.mjs +0 -21
  305. package/esm2022/lib/smart-pagination/index.mjs +0 -2
  306. package/esm2022/lib/smart-pagination/public_api.mjs +0 -3
  307. package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +0 -191
  308. package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +0 -16
  309. package/esm2022/lib/smart-pagination/smart-pagination.type.mjs +0 -2
  310. package/esm2022/lib/smart-table/index.mjs +0 -2
  311. package/esm2022/lib/smart-table/public_api.mjs +0 -5
  312. package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +0 -526
  313. package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +0 -27
  314. package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +0 -69
  315. package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +0 -42
  316. package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +0 -18
  317. package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +0 -229
  318. package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +0 -46
  319. package/esm2022/lib/smart-table/smart-table.module.mjs +0 -17
  320. package/esm2022/lib/smart-table/smart-table.type.mjs +0 -2
  321. package/esm2022/lib/smart-table/smart-table.utils.mjs +0 -181
  322. package/esm2022/lib/spinner/index.mjs +0 -2
  323. package/esm2022/lib/spinner/public_api.mjs +0 -3
  324. package/esm2022/lib/spinner/spinner.component.mjs +0 -52
  325. package/esm2022/lib/spinner/spinner.module.mjs +0 -20
  326. package/esm2022/lib/table/index.mjs +0 -2
  327. package/esm2022/lib/table/public_api.mjs +0 -5
  328. package/esm2022/lib/table/table-active.directive.mjs +0 -32
  329. package/esm2022/lib/table/table-color.directive.mjs +0 -25
  330. package/esm2022/lib/table/table.directive.mjs +0 -112
  331. package/esm2022/lib/table/table.module.mjs +0 -30
  332. package/esm2022/lib/table/table.type.mjs +0 -2
  333. package/esm2022/lib/tabs/index.mjs +0 -2
  334. package/esm2022/lib/tabs/public_api.mjs +0 -6
  335. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +0 -83
  336. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +0 -141
  337. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +0 -60
  338. package/esm2022/lib/tabs/tab.service.mjs +0 -21
  339. package/esm2022/lib/tabs/tabs.module.mjs +0 -36
  340. package/esm2022/lib/tabs-2/index.mjs +0 -2
  341. package/esm2022/lib/tabs-2/public_api.mjs +0 -8
  342. package/esm2022/lib/tabs-2/tab/tab.directive.mjs +0 -96
  343. package/esm2022/lib/tabs-2/tab-panel/tab-panel.component.mjs +0 -113
  344. package/esm2022/lib/tabs-2/tabs-content/tabs-content.component.mjs +0 -19
  345. package/esm2022/lib/tabs-2/tabs-list/tabs-list.component.mjs +0 -93
  346. package/esm2022/lib/tabs-2/tabs.component.mjs +0 -37
  347. package/esm2022/lib/tabs-2/tabs.service.mjs +0 -15
  348. package/esm2022/lib/tabs-2/tabs2.module.mjs +0 -22
  349. package/esm2022/lib/time-picker/index.mjs +0 -2
  350. package/esm2022/lib/time-picker/public_api.mjs +0 -3
  351. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +0 -110
  352. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +0 -114
  353. package/esm2022/lib/time-picker/time-picker.component.mjs +0 -517
  354. package/esm2022/lib/time-picker/time-picker.module.mjs +0 -16
  355. package/esm2022/lib/time-picker/time.utils.mjs +0 -645
  356. package/esm2022/lib/toast/index.mjs +0 -2
  357. package/esm2022/lib/toast/public_api.mjs +0 -9
  358. package/esm2022/lib/toast/toast/toast.component.mjs +0 -204
  359. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +0 -21
  360. package/esm2022/lib/toast/toast-close.directive.mjs +0 -29
  361. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +0 -30
  362. package/esm2022/lib/toast/toast.module.mjs +0 -47
  363. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +0 -18
  364. package/esm2022/lib/toast/toaster/toaster.component.mjs +0 -123
  365. package/esm2022/lib/toast/toaster/toaster.service.mjs +0 -22
  366. package/esm2022/lib/tooltip/index.mjs +0 -2
  367. package/esm2022/lib/tooltip/public_api.mjs +0 -4
  368. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +0 -66
  369. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -204
  370. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -25
  371. package/esm2022/lib/utilities/align.directive.mjs +0 -25
  372. package/esm2022/lib/utilities/bg-color.directive.mjs +0 -34
  373. package/esm2022/lib/utilities/border.directive.mjs +0 -67
  374. package/esm2022/lib/utilities/border.type.mjs +0 -2
  375. package/esm2022/lib/utilities/index.mjs +0 -2
  376. package/esm2022/lib/utilities/public_api.mjs +0 -9
  377. package/esm2022/lib/utilities/rounded.directive.mjs +0 -66
  378. package/esm2022/lib/utilities/rounded.type.mjs +0 -2
  379. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +0 -48
  380. package/esm2022/lib/utilities/text-bg-color.directive.mjs +0 -30
  381. package/esm2022/lib/utilities/text-color.directive.mjs +0 -30
  382. package/esm2022/lib/utilities/utilities.module.mjs +0 -16
  383. package/esm2022/lib/widget/index.mjs +0 -2
  384. package/esm2022/lib/widget/public_api.mjs +0 -8
  385. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +0 -55
  386. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +0 -57
  387. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +0 -71
  388. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +0 -36
  389. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +0 -36
  390. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +0 -96
  391. package/esm2022/lib/widget/widget.module.mjs +0 -45
  392. package/esm2022/public-api.mjs +0 -53
@@ -1,355 +0,0 @@
1
- import { FocusKeyManager } from '@angular/cdk/a11y';
2
- import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, DestroyRef, effect, ElementRef, forwardRef, HostBinding, HostListener, inject, input, model, numberAttribute, output, signal, untracked, viewChildren } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
5
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
- import { fromEvent, merge, takeWhile } from 'rxjs';
7
- import { filter, tap } from 'rxjs/operators';
8
- import { TooltipDirective } from '../tooltip';
9
- import { ElementRefDirective, TemplateIdDirective } from '../shared';
10
- import { RatingItemLabelComponent } from './rating-item-label/rating-item-label.component';
11
- import * as i0 from "@angular/core";
12
- export const coerceStringArray = (value) => (Array.isArray(value) ? [...value] : [value]);
13
- export const coerceRatingPrecision = (value) => [1, 0.5, 0.25].includes(numberAttribute(value)) ? numberAttribute(value) : 1;
14
- export const coerceNumber = (value) => Number(value ?? 0);
15
- export class RatingComponent {
16
- constructor() {
17
- this.#destroyRef = inject(DestroyRef);
18
- this.#elementRef = inject(ElementRef);
19
- /**
20
- * The default icon to display when the item is selected.
21
- * @type: string | string[]
22
- */
23
- this.activeIcon = input([], {
24
- transform: coerceStringArray
25
- });
26
- /**
27
- * Enables the clearing upon clicking the selected item again.
28
- * @type: boolean
29
- * @default: false
30
- */
31
- this.allowClear = input(false, { transform: booleanAttribute });
32
- /**
33
- * Toggle the disabled state for the component.
34
- * @type: boolean
35
- * @default: false
36
- */
37
- this.disabled = input(false, { transform: booleanAttribute });
38
- this.#disabledState = signal(this.disabled());
39
- /**
40
- * If enabled, only the currently selected icon will be visibly highlighted.
41
- * @type: boolean
42
- * @default: false
43
- */
44
- this.highlightOnlySelected = input(false, { transform: booleanAttribute });
45
- /**
46
- * The default icon to display when the item is not selected.
47
- * @type: string | string[]
48
- */
49
- this.icon = input([], {
50
- transform: coerceStringArray
51
- });
52
- /**
53
- * Specifies the total number of stars to be displayed in the star rating component. This property determines the scale of the rating,
54
- * such as out of 5 stars, 10 stars, etc.
55
- * @type: number
56
- * @default: 5
57
- */
58
- this.itemCount = input(5, { transform: numberAttribute });
59
- /**
60
- * Minimum increment value change allowed.
61
- * @type: number
62
- * @default: 1
63
- */
64
- this.precision = input(1, { transform: numberAttribute });
65
- /**
66
- * Allows to click fractions
67
- * @type: boolean
68
- * @default: false
69
- */
70
- // readonly precisionClick = input(false, { transform: booleanAttribute });
71
- /**
72
- * Toggle the readonly state for the component.
73
- * @type: boolean
74
- * @default: false
75
- */
76
- this.readOnly = input(false, { transform: booleanAttribute });
77
- /**
78
- * Size the component small, large, or custom if you define custom icons with custom height.
79
- * @type: 'sm' | 'lg' | 'custom' | undefined
80
- * @default: undefined
81
- */
82
- this.size = input(undefined);
83
- /**
84
- * Enable tooltips with default values or set specific labels for each icon.
85
- * @type: boolean | string[] | undefined
86
- * @default: undefined
87
- */
88
- this.tooltips = input(undefined);
89
- /**
90
- * The `value` attribute of component.
91
- * @type: number | null
92
- * @default: null
93
- * Emits `valueChange` on value change
94
- */
95
- this.value = model(null);
96
- /**
97
- * Event emitted on hoverValue change.
98
- * @type: number | null
99
- */
100
- this.hoverValue = signal(null);
101
- this.hoverValueChange = output();
102
- this.hoverValueEffect = effect(() => {
103
- this.hoverValueChange.emit(this.hoverValue());
104
- if (!this.hoverValue()) {
105
- this.hoveredItem.set(undefined);
106
- }
107
- }, { allowSignalWrites: true });
108
- this.#cleared = signal(false);
109
- this.hoveredItem = signal(undefined);
110
- this.tooltipValue = signal(null);
111
- this.ratingDisabled = computed(() => this.disabled() || this.readOnly() || this.#disabledState());
112
- this.ratingDisabledEffect = effect(() => {
113
- if (!this.ratingDisabled()) {
114
- const focusIn$ = fromEvent(this.#elementRef.nativeElement, 'focusin');
115
- const focusOut$ = fromEvent(this.#elementRef.nativeElement, 'focusout');
116
- const mouseLeave$ = fromEvent(this.#elementRef.nativeElement, 'mouseleave');
117
- merge(focusIn$, focusOut$, mouseLeave$)
118
- .pipe(filter((event) => !this.ratingDisabled()), tap(($event) => {
119
- switch ($event.type) {
120
- case 'focusin':
121
- this.onTouched();
122
- break;
123
- case 'focusout':
124
- case 'mouseleave':
125
- this.hoverValue.set(null);
126
- break;
127
- }
128
- }), takeWhile(() => !this.ratingDisabled()), takeUntilDestroyed(this.#destroyRef))
129
- .subscribe();
130
- }
131
- });
132
- this.contentTemplates = contentChildren(TemplateIdDirective);
133
- this.iconTemplates = computed(() => {
134
- const templateArray = this.contentTemplates().map((child) => {
135
- return [[child.id], child.templateRef];
136
- });
137
- return Object.fromEntries(templateArray);
138
- });
139
- this.numberOfSubItems = computed(() => {
140
- return parseInt((1 / this.precision()).toFixed());
141
- });
142
- this.ratingItems = computed(() => {
143
- return Array.from({ length: this.itemCount() }, (_, itemIndex) => {
144
- if (this.numberOfSubItems() === 1) {
145
- return [itemIndex + 1];
146
- }
147
- return Array.from({ length: this.numberOfSubItems() }, (_, subIndex) => itemIndex + (subIndex + 1) * this.precision());
148
- });
149
- });
150
- this.ratingItemLabels = viewChildren(RatingItemLabelComponent);
151
- this.ratingItemLabelsEffect = effect(() => {
152
- if (untracked(this.ratingDisabled)) {
153
- return;
154
- }
155
- this.#focusKeyManager = new FocusKeyManager(this.ratingItemLabels()).withHorizontalOrientation('ltr').withWrap();
156
- const activeItemIndex = this.ratingItems()
157
- .flat()
158
- .findIndex((value) => value === coerceNumber(this.value() ?? 0));
159
- this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);
160
- this.#focusKeyManager.tabOut
161
- .pipe(tap((x) => {
162
- const activeItemIndex = untracked(this.ratingItems)
163
- .flat()
164
- .findIndex((value) => value === coerceNumber(untracked(this.value) ?? 0));
165
- this.#focusKeyManager.updateActiveItem(activeItemIndex === -1 ? 0 : activeItemIndex);
166
- this.updateFocusableItems();
167
- }), takeUntilDestroyed(this.#destroyRef))
168
- .subscribe();
169
- this.#focusKeyManager.change
170
- .pipe(tap((value) => {
171
- this.ratingItemLabels().forEach((label, index) => {
172
- label.focusable.set(index === this.#focusKeyManager.activeItemIndex);
173
- if (index === this.#focusKeyManager.activeItemIndex) {
174
- const value = untracked(label.value);
175
- this.handleClick(value);
176
- }
177
- });
178
- }), takeUntilDestroyed(this.#destroyRef))
179
- .subscribe();
180
- }, { allowSignalWrites: true });
181
- this.onChange = (value) => {
182
- /* empty */
183
- };
184
- this.onTouched = () => {
185
- /* empty */
186
- };
187
- // keep it at the bottom of the code
188
- this.valueEffect = effect(() => {
189
- const ratingValue = this.value();
190
- this.onChange(ratingValue);
191
- if (untracked(this.ratingDisabled)) {
192
- return;
193
- }
194
- if (untracked(this.#cleared)) {
195
- this.#cleared.set(false);
196
- return;
197
- }
198
- const activeItemIndex = this.ratingItems()
199
- .flat()
200
- .findIndex((value) => value === coerceNumber(ratingValue ?? 0));
201
- this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);
202
- this.updateFocusableItems();
203
- }, { allowSignalWrites: true });
204
- }
205
- #destroyRef;
206
- #elementRef;
207
- #disabledState;
208
- #cleared;
209
- #focusKeyManager;
210
- get hostClasses() {
211
- return {
212
- rating: true,
213
- [`rating-${this.size()}`]: this.size(),
214
- disabled: this.disabled() || this.#disabledState(),
215
- readonly: this.readOnly()
216
- };
217
- }
218
- get ariaValueNow() {
219
- return this.value();
220
- }
221
- get ariaValueMax() {
222
- return this.itemCount();
223
- }
224
- get role() {
225
- return 'radiogroup';
226
- }
227
- onKeydown($event) {
228
- if (this.ratingDisabled()) {
229
- return false;
230
- }
231
- if (['Space', 'Enter'].includes($event.code)) {
232
- $event.preventDefault();
233
- const item = this.ratingItemLabels().find((label, index) => index === this.#focusKeyManager?.activeItemIndex);
234
- this.handleClick(item?.value() ?? -1);
235
- return;
236
- }
237
- if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes($event.key)) {
238
- this.#focusKeyManager.onKeydown($event);
239
- return;
240
- }
241
- if (['Tab'].includes($event.key)) {
242
- this.#focusKeyManager?.tabOut.next();
243
- }
244
- return;
245
- }
246
- registerOnChange(fn) {
247
- this.onChange = fn;
248
- }
249
- registerOnTouched(fn) {
250
- this.onTouched = fn;
251
- }
252
- setDisabledState(isDisabled) {
253
- this.#disabledState.set(isDisabled);
254
- }
255
- writeValue(value) {
256
- this.value.set(value);
257
- }
258
- isItemActive(value) {
259
- const localValue = this.hoverValue() ?? this.value() ?? -1;
260
- return this.highlightOnlySelected() ? localValue === value : localValue >= value;
261
- }
262
- notLastItemStyle(value) {
263
- return {
264
- zIndex: this.numberOfSubItems() - value,
265
- position: 'absolute',
266
- width: `${this.precision() * (value + 1) * 100}%`,
267
- overflow: 'hidden',
268
- opacity: 0.1
269
- };
270
- }
271
- handleFocusIn($event, itemValue) {
272
- this.handleMouseEnter($event, itemValue);
273
- }
274
- handleClick(value) {
275
- if (this.ratingDisabled()) {
276
- return;
277
- }
278
- if (this.allowClear() && value === this.value()) {
279
- this.#cleared.set(true);
280
- this.value.set(null);
281
- this.hoverValue.set(null);
282
- }
283
- else {
284
- this.value.set(value);
285
- }
286
- }
287
- handleMouseEnter($event, value) {
288
- if (this.ratingDisabled()) {
289
- return;
290
- }
291
- this.hoverValue.set(null);
292
- this.hoverValue.set(value);
293
- this.tooltipValue.set(value);
294
- }
295
- getTooltipValue(index) {
296
- if (!this.hoverValue() || this.hoveredItem() !== index) {
297
- return undefined;
298
- }
299
- if (Array.isArray(this.tooltips())) {
300
- const tooltips = this.tooltips();
301
- return tooltips[index];
302
- }
303
- return this.precision()
304
- ? (this.tooltipValue()?.toString() ?? '')
305
- : this.ratingItems()
306
- ? (this.ratingItems()[index].at(-1) ?? '').toString()
307
- : '';
308
- }
309
- updateFocusableItems() {
310
- this.ratingItemLabels().forEach((label, index) => {
311
- label.focusable.set(index === this.#focusKeyManager?.activeItemIndex);
312
- });
313
- }
314
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: RatingComponent, isStandalone: true, selector: "c-rating", inputs: { activeIcon: { classPropertyName: "activeIcon", publicName: "activeIcon", isSignal: true, isRequired: false, transformFunction: null }, allowClear: { classPropertyName: "allowClear", publicName: "allowClear", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, highlightOnlySelected: { classPropertyName: "highlightOnlySelected", publicName: "highlightOnlySelected", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, itemCount: { classPropertyName: "itemCount", publicName: "itemCount", isSignal: true, isRequired: false, transformFunction: null }, precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tooltips: { classPropertyName: "tooltips", publicName: "tooltips", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", hoverValueChange: "hoverValueChange" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "this.hostClasses", "attr.aria-valuenow": "this.ariaValueNow", "attr.aria-valuemax": "this.ariaValueMax", "attr.role": "this.role" } }, providers: [
316
- {
317
- provide: NG_VALUE_ACCESSOR,
318
- useExisting: forwardRef(() => RatingComponent),
319
- multi: true
320
- }
321
- ], queries: [{ propertyName: "contentTemplates", predicate: TemplateIdDirective, isSignal: true }], viewQueries: [{ propertyName: "ratingItemLabels", predicate: RatingItemLabelComponent, descendants: true, isSignal: true }], exportAs: ["cRating"], ngImport: i0, template: "@for (item of ratingItems(); track item; let itemIndex = $index, last = $last) {\n @if (tooltips()) {\n <div\n class=\"rating-item\"\n [cTooltip]=\"getTooltipValue(itemIndex)\"\n [cTooltipTrigger]=\"['hover', 'focusin']\"\n (mouseenter)=\"hoveredItem.set(itemIndex)\"\n (focusin)=\"hoveredItem.set(itemIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n } @else {\n <div class=\"rating-item\">\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n }\n}\n\n<ng-template let-item let-itemIndex=\"itemIndex\" #ratingItemLabel>\n @for (itemValue of item; track radioIndex; let radioIndex = $index, last = $last) {\n <c-rating-item-label\n class=\"rating-item-label d-inline-block\"\n role=\"radio\"\n (click)=\"handleClick(itemValue)\"\n (focus)=\"handleFocusIn($event, itemValue)\"\n [ngClass]=\"{ active: isItemActive(itemValue) }\"\n (mouseenter)=\"handleMouseEnter($event, itemValue)\"\n [ngStyle]=\"radioIndex + 1 < numberOfSubItems() ? notLastItemStyle(radioIndex) : {}\"\n [value]=\"itemValue\"\n [attr.aria-label]=\"itemValue\"\n [attr.aria-checked]=\"itemValue === value()\"\n >\n @if (iconTemplates()[icon()[itemIndex] ?? icon()]) {\n <ng-container *ngTemplateOutlet=\"customIconTemplate; context: { $implicit: icon()?.[itemIndex] ?? icon() }\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultIconTemplate\" />\n }\n @if (iconTemplates()[activeIcon()[itemIndex] ?? activeIcon()]) {\n <ng-container *ngTemplateOutlet=\"customIconActiveTemplate; context: { $implicit: activeIcon()?.[itemIndex] ?? activeIcon() }\" />\n }\n </c-rating-item-label>\n }\n</ng-template>\n\n<ng-template #tooltipContent>\n <span>{{ hoverValue() }}</span>\n</ng-template>\n\n<ng-template #defaultIconTemplate>\n <div class=\"rating-item-icon\"></div>\n</ng-template>\n\n<ng-template #customIconTemplate let-icon>\n <div class=\"rating-item-custom-icon\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || defaultIconTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #customIconActiveTemplate let-icon>\n <div class=\"rating-item-custom-icon-active\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || customIconTemplate\" />\n </div>\n</ng-template>\n", styles: [":host{display:inline-flex}:is(:host.disabled,:host.readonly) .rating-item-label{cursor:default}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => TooltipDirective), selector: "[cTooltip]", inputs: ["cTooltip", "cTooltipOptions", "cTooltipPlacement", "cTooltipRef", "cTooltipTrigger", "cTooltipVisible"], outputs: ["cTooltipVisibleChange"], exportAs: ["cTooltip"] }, { kind: "component", type: i0.forwardRef(() => RatingItemLabelComponent), selector: "c-rating-item-label", inputs: ["label", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
322
- }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RatingComponent, decorators: [{
324
- type: Component,
325
- args: [{ selector: 'c-rating', exportAs: 'cRating', standalone: true, imports: [
326
- NgClass,
327
- NgStyle,
328
- NgTemplateOutlet,
329
- forwardRef(() => TooltipDirective),
330
- ElementRefDirective,
331
- RatingItemLabelComponent
332
- ], providers: [
333
- {
334
- provide: NG_VALUE_ACCESSOR,
335
- useExisting: forwardRef(() => RatingComponent),
336
- multi: true
337
- }
338
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (item of ratingItems(); track item; let itemIndex = $index, last = $last) {\n @if (tooltips()) {\n <div\n class=\"rating-item\"\n [cTooltip]=\"getTooltipValue(itemIndex)\"\n [cTooltipTrigger]=\"['hover', 'focusin']\"\n (mouseenter)=\"hoveredItem.set(itemIndex)\"\n (focusin)=\"hoveredItem.set(itemIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n } @else {\n <div class=\"rating-item\">\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n }\n}\n\n<ng-template let-item let-itemIndex=\"itemIndex\" #ratingItemLabel>\n @for (itemValue of item; track radioIndex; let radioIndex = $index, last = $last) {\n <c-rating-item-label\n class=\"rating-item-label d-inline-block\"\n role=\"radio\"\n (click)=\"handleClick(itemValue)\"\n (focus)=\"handleFocusIn($event, itemValue)\"\n [ngClass]=\"{ active: isItemActive(itemValue) }\"\n (mouseenter)=\"handleMouseEnter($event, itemValue)\"\n [ngStyle]=\"radioIndex + 1 < numberOfSubItems() ? notLastItemStyle(radioIndex) : {}\"\n [value]=\"itemValue\"\n [attr.aria-label]=\"itemValue\"\n [attr.aria-checked]=\"itemValue === value()\"\n >\n @if (iconTemplates()[icon()[itemIndex] ?? icon()]) {\n <ng-container *ngTemplateOutlet=\"customIconTemplate; context: { $implicit: icon()?.[itemIndex] ?? icon() }\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultIconTemplate\" />\n }\n @if (iconTemplates()[activeIcon()[itemIndex] ?? activeIcon()]) {\n <ng-container *ngTemplateOutlet=\"customIconActiveTemplate; context: { $implicit: activeIcon()?.[itemIndex] ?? activeIcon() }\" />\n }\n </c-rating-item-label>\n }\n</ng-template>\n\n<ng-template #tooltipContent>\n <span>{{ hoverValue() }}</span>\n</ng-template>\n\n<ng-template #defaultIconTemplate>\n <div class=\"rating-item-icon\"></div>\n</ng-template>\n\n<ng-template #customIconTemplate let-icon>\n <div class=\"rating-item-custom-icon\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || defaultIconTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #customIconActiveTemplate let-icon>\n <div class=\"rating-item-custom-icon-active\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || customIconTemplate\" />\n </div>\n</ng-template>\n", styles: [":host{display:inline-flex}:is(:host.disabled,:host.readonly) .rating-item-label{cursor:default}\n"] }]
339
- }], propDecorators: { hostClasses: [{
340
- type: HostBinding,
341
- args: ['class']
342
- }], ariaValueNow: [{
343
- type: HostBinding,
344
- args: ['attr.aria-valuenow']
345
- }], ariaValueMax: [{
346
- type: HostBinding,
347
- args: ['attr.aria-valuemax']
348
- }], role: [{
349
- type: HostBinding,
350
- args: ['attr.role']
351
- }], onKeydown: [{
352
- type: HostListener,
353
- args: ['keydown', ['$event']]
354
- }] } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvcmF0aW5nL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3JhdGluZy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRSxPQUFPLEVBQUUs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ZixlQUFlLHF3REFUZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMkRBZ0oyQyxtQkFBbUIsa0ZBeUJ0Qix3QkFBd0IsdUZDbE9uRSx3NkVBK0RBLCtLRHJCSSxPQUFPLHlHQUNQLE9BQU8sZ0dBQ1AsZ0JBQWdCLHlLQUNDLGdCQUFnQiwyUEFFakMsd0JBQXdCOzsyRkFhZixlQUFlO2tCQXZCM0IsU0FBUzsrQkFDRSxVQUFVLFlBQ1YsU0FBUyxjQUNQLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2xDLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkF5TjNDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdoQixZQUFZO3NCQURmLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixZQUFZO3NCQURmLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixJQUFJO3NCQURQLFdBQVc7dUJBQUMsV0FBVztnQkFNeEIsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERlc3Ryb3lSZWYsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtLFxuICBtb2RlbCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxuICB2aWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmRGlyZWN0aXZlLCBUZW1wbGF0ZUlkRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IFJhdGluZ0l0ZW1MYWJlbENvbXBvbmVudCB9IGZyb20gJy4vcmF0aW5nLWl0ZW0tbGFiZWwvcmF0aW5nLWl0ZW0tbGFiZWwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGNvZXJjZVN0cmluZ0FycmF5ID0gKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdID0+IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IFsuLi52YWx1ZV0gOiBbdmFsdWVdKTtcbmV4cG9ydCBjb25zdCBjb2VyY2VSYXRpbmdQcmVjaXNpb24gPSAodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IG51bWJlciA9PlxuICBbMSwgMC41LCAwLjI1XS5pbmNsdWRlcyhudW1iZXJBdHRyaWJ1dGUodmFsdWUpKSA/IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSkgOiAxO1xuZXhwb3J0IGNvbnN0IGNvZXJjZU51bWJlciA9ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IG51bWJlciA9PiBOdW1iZXIodmFsdWUgPz8gMCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtcmF0aW5nJyxcbiAgZXhwb3J0QXM6ICdjUmF0aW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdTdHlsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIGZvcndhcmRSZWYoKCkgPT4gVG9vbHRpcERpcmVjdGl2ZSksXG4gICAgRWxlbWVudFJlZkRpcmVjdGl2ZSxcbiAgICBSYXRpbmdJdGVtTGFiZWxDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhdGluZ0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGljb24gdG8gZGlzcGxheSB3aGVuIHRoZSBpdGVtIGlzIHNlbGVjdGVkLlxuICAgKiBAdHlwZTogc3RyaW5nIHwgc3RyaW5nW11cbiAgICovXG4gIHJlYWRvbmx5IGFjdGl2ZUljb246IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxzdHJpbmdbXSwgc3RyaW5nIHwgc3RyaW5nW10+ID0gaW5wdXQoW10sIHtcbiAgICB0cmFuc2Zvcm06IGNvZXJjZVN0cmluZ0FycmF5XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBjbGVhcmluZyB1cG9uIGNsaWNraW5nIHRoZSBzZWxlY3RlZCBpdGVtIGFnYWluLlxuICAgKiBAdHlwZTogYm9vbGVhblxuICAgKiBAZGVmYXVsdDogZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93Q2xlYXIgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgZGlzYWJsZWQgc3RhdGUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEB0eXBlOiBib29sZWFuXG4gICAqIEBkZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gIHJlYWRvbmx5ICNkaXNhYmxlZFN0YXRlID0gc2lnbmFsKHRoaXMuZGlzYWJsZWQoKSk7XG5cbiAgLyoqXG4gICAqIElmIGVuYWJsZWQsIG9ubHkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpY29uIHdpbGwgYmUgdmlzaWJseSBoaWdobGlnaHRlZC5cbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBoaWdobGlnaHRPbmx5U2VsZWN0ZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGljb24gdG8gZGlzcGxheSB3aGVuIHRoZSBpdGVtIGlzIG5vdCBzZWxlY3RlZC5cbiAgICogQHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdXG4gICAqL1xuICByZWFkb25seSBpY29uOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08c3RyaW5nW10sIHN0cmluZyB8IHN0cmluZ1tdPiA9IGlucHV0KFtdLCB7XG4gICAgdHJhbnNmb3JtOiBjb2VyY2VTdHJpbmdBcnJheVxuICB9KTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhcnMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzdGFyIHJhdGluZyBjb21wb25lbnQuIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgc2NhbGUgb2YgdGhlIHJhdGluZyxcbiAgICogc3VjaCBhcyBvdXQgb2YgNSBzdGFycywgMTAgc3RhcnMsIGV0Yy5cbiAgICogQHR5cGU6IG51bWJlclxuICAgKiBAZGVmYXVsdDogNVxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbUNvdW50ID0gaW5wdXQoNSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogTWluaW11bSBpbmNyZW1lbnQgdmFsdWUgY2hhbmdlIGFsbG93ZWQuXG4gICAqIEB0eXBlOiBudW1iZXJcbiAgICogQGRlZmF1bHQ6IDFcbiAgICovXG4gIHJlYWRvbmx5IHByZWNpc2lvbiA9IGlucHV0KDEsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBjbGljayBmcmFjdGlvbnNcbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICAvLyByZWFkb25seSBwcmVjaXNpb25DbGljayA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSByZWFkb25seSBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogU2l6ZSB0aGUgY29tcG9uZW50IHNtYWxsLCBsYXJnZSwgb3IgY3VzdG9tIGlmIHlvdSBkZWZpbmUgY3VzdG9tIGljb25zIHdpdGggY3VzdG9tIGhlaWdodC5cbiAgICogQHR5cGU6ICdzbScgfCAnbGcnIHwgJ2N1c3RvbScgfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQ6IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PCdzbScgfCAnbGcnIHwgJ2N1c3RvbScgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0b29sdGlwcyB3aXRoIGRlZmF1bHQgdmFsdWVzIG9yIHNldCBzcGVjaWZpYyBsYWJlbHMgZm9yIGVhY2ggaWNvbi5cbiAgICogQHR5cGU6IGJvb2xlYW4gfCBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdDogdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB0b29sdGlwcyA9IGlucHV0PGJvb2xlYW4gfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogVGhlIGB2YWx1ZWAgYXR0cmlidXRlIG9mIGNvbXBvbmVudC5cbiAgICogQHR5cGU6IG51bWJlciB8IG51bGxcbiAgICogQGRlZmF1bHQ6IG51bGxcbiAgICogRW1pdHMgYHZhbHVlQ2hhbmdlYCBvbiB2YWx1ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlID0gbW9kZWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gaG92ZXJWYWx1ZSBjaGFuZ2UuXG4gICAqIEB0eXBlOiBudW1iZXIgfCBudWxsXG4gICAqL1xuICByZWFkb25seSBob3ZlclZhbHVlID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBob3ZlclZhbHVlQ2hhbmdlID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XG4gIHJlYWRvbmx5IGhvdmVyVmFsdWVFZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgdGhpcy5ob3ZlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5ob3ZlclZhbHVlKCkpO1xuICAgICAgaWYgKCF0aGlzLmhvdmVyVmFsdWUoKSkge1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtLnNldCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG5cbiAgcmVhZG9ubHkgI2NsZWFyZWQgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBob3ZlcmVkSXRlbSA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHRvb2x0aXBWYWx1ZSA9IHNpZ25hbDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSByYXRpbmdEaXNhYmxlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkgfHwgdGhpcy4jZGlzYWJsZWRTdGF0ZSgpKTtcbiAgcmVhZG9ubHkgcmF0aW5nRGlzYWJsZWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICBjb25zdCBmb2N1c0luJCA9IGZyb21FdmVudDxGb2N1c0V2ZW50Pih0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1c2luJyk7XG4gICAgICBjb25zdCBmb2N1c091dCQgPSBmcm9tRXZlbnQ8Rm9jdXNFdmVudD4odGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKTtcbiAgICAgIGNvbnN0IG1vdXNlTGVhdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuICAgICAgbWVyZ2UoZm9jdXNJbiQsIGZvY3VzT3V0JCwgbW91c2VMZWF2ZSQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICF0aGlzLnJhdGluZ0Rpc2FibGVkKCkpLFxuICAgICAgICAgIHRhcCgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKCRldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgICAgICAgICAgY2FzZSAnbW91c2VsZWF2ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlclZhbHVlLnNldChudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlV2hpbGUoKCkgPT4gIXRoaXMucmF0aW5nRGlzYWJsZWQoKSksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29udGVudFRlbXBsYXRlcyA9IGNvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZUlkRGlyZWN0aXZlKTtcblxuICByZWFkb25seSBpY29uVGVtcGxhdGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlQXJyYXkgPSB0aGlzLmNvbnRlbnRUZW1wbGF0ZXMoKS5tYXAoKGNoaWxkOiBUZW1wbGF0ZUlkRGlyZWN0aXZlKSA9PiB7XG4gICAgICByZXR1cm4gW1tjaGlsZC5pZF0sIGNoaWxkLnRlbXBsYXRlUmVmXTtcbiAgICB9KTtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHRlbXBsYXRlQXJyYXkpO1xuICB9KTtcblxuICByZWFkb25seSBudW1iZXJPZlN1Ykl0ZW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBwYXJzZUludCgoMSAvIHRoaXMucHJlY2lzaW9uKCkpLnRvRml4ZWQoKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJhdGluZ0l0ZW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLml0ZW1Db3VudCgpIH0sIChfLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgIGlmICh0aGlzLm51bWJlck9mU3ViSXRlbXMoKSA9PT0gMSkge1xuICAgICAgICByZXR1cm4gW2l0ZW1JbmRleCArIDFdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgIHsgbGVuZ3RoOiB0aGlzLm51bWJlck9mU3ViSXRlbXMoKSB9LFxuICAgICAgICAoXywgc3ViSW5kZXgpID0+IGl0ZW1JbmRleCArIChzdWJJbmRleCArIDEpICogdGhpcy5wcmVjaXNpb24oKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmF0aW5nSXRlbUxhYmVscyA9IHZpZXdDaGlsZHJlbihSYXRpbmdJdGVtTGFiZWxDb21wb25lbnQpO1xuICAjZm9jdXNLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPFJhdGluZ0l0ZW1MYWJlbENvbXBvbmVudD47XG5cbiAgcmVhZG9ubHkgcmF0aW5nSXRlbUxhYmVsc0VmZmVjdCA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodW50cmFja2VkKHRoaXMucmF0aW5nRGlzYWJsZWQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5yYXRpbmdJdGVtTGFiZWxzKCkpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpLndpdGhXcmFwKCk7XG5cbiAgICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMucmF0aW5nSXRlbXMoKVxuICAgICAgICAuZmxhdCgpXG4gICAgICAgIC5maW5kSW5kZXgoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gY29lcmNlTnVtYmVyKHRoaXMudmFsdWUoKSA/PyAwKSk7XG5cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlcj8udXBkYXRlQWN0aXZlSXRlbShhY3RpdmVJdGVtSW5kZXggPCAwID8gMCA6IGFjdGl2ZUl0ZW1JbmRleCk7XG5cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlci50YWJPdXRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB1bnRyYWNrZWQodGhpcy5yYXRpbmdJdGVtcylcbiAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUgPT09IGNvZXJjZU51bWJlcih1bnRyYWNrZWQodGhpcy52YWx1ZSkgPz8gMCkpO1xuXG4gICAgICAgICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShhY3RpdmVJdGVtSW5kZXggPT09IC0xID8gMCA6IGFjdGl2ZUl0ZW1JbmRleCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZUl0ZW1zKCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIuY2hhbmdlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmF0aW5nSXRlbUxhYmVscygpLmZvckVhY2goKGxhYmVsLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBsYWJlbC5mb2N1c2FibGUuc2V0KGluZGV4ID09PSB0aGlzLiNmb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLiNmb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB1bnRyYWNrZWQobGFiZWwudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xpY2sodmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfSxcbiAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCkge1xuICAgIHJldHVybiB7XG4gICAgICByYXRpbmc6IHRydWUsXG4gICAgICBbYHJhdGluZy0ke3RoaXMuc2l6ZSgpfWBdOiB0aGlzLnNpemUoKSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy4jZGlzYWJsZWRTdGF0ZSgpLFxuICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZE9ubHkoKVxuICAgIH07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS12YWx1ZW5vdycpXG4gIGdldCBhcmlhVmFsdWVOb3coKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbWF4JylcbiAgZ2V0IGFyaWFWYWx1ZU1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtQ291bnQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgZ2V0IHJvbGUoKSB7XG4gICAgcmV0dXJuICdyYWRpb2dyb3VwJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleWRvd24oJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChbJ1NwYWNlJywgJ0VudGVyJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnJhdGluZ0l0ZW1MYWJlbHMoKS5maW5kKChsYWJlbCwgaW5kZXgpID0+IGluZGV4ID09PSB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LmFjdGl2ZUl0ZW1JbmRleCk7XG4gICAgICB0aGlzLmhhbmRsZUNsaWNrKGl0ZW0/LnZhbHVlKCkgPz8gLTEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIub25LZXlkb3duKCRldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChbJ1RhYiddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnRhYk91dC5uZXh0KCk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB7XG4gICAgLyogZW1wdHkgKi9cbiAgfTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge1xuICAgIC8qIGVtcHR5ICovXG4gIH07XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNkaXNhYmxlZFN0YXRlLnNldChpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBpc0l0ZW1BY3RpdmUodmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IGxvY2FsVmFsdWUgPSB0aGlzLmhvdmVyVmFsdWUoKSA/PyB0aGlzLnZhbHVlKCkgPz8gLTE7XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0T25seVNlbGVjdGVkKCkgPyBsb2NhbFZhbHVlID09PSB2YWx1ZSA6IGxvY2FsVmFsdWUgPj0gdmFsdWU7XG4gIH1cblxuICBub3RMYXN0SXRlbVN0eWxlKHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgekluZGV4OiB0aGlzLm51bWJlck9mU3ViSXRlbXMoKSAtIHZhbHVlLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB3aWR0aDogYCR7dGhpcy5wcmVjaXNpb24oKSAqICh2YWx1ZSArIDEpICogMTAwfSVgLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgb3BhY2l0eTogMC4xXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzSW4oJGV2ZW50OiBGb2N1c0V2ZW50LCBpdGVtVmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuaGFuZGxlTW91c2VFbnRlcigkZXZlbnQgYXMgTW91c2VFdmVudCwgaXRlbVZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93Q2xlYXIoKSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSgpKSB7XG4gICAgICB0aGlzLiNjbGVhcmVkLnNldCh0cnVlKTtcbiAgICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5ob3ZlclZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU1vdXNlRW50ZXIoJGV2ZW50OiBNb3VzZUV2ZW50LCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmF0aW5nRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhvdmVyVmFsdWUuc2V0KG51bGwpO1xuICAgIHRoaXMuaG92ZXJWYWx1ZS5zZXQodmFsdWUpO1xuICAgIHRoaXMudG9vbHRpcFZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBnZXRUb29sdGlwVmFsdWUoaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmhvdmVyVmFsdWUoKSB8fCB0aGlzLmhvdmVyZWRJdGVtKCkgIT09IGluZGV4KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnRvb2x0aXBzKCkpKSB7XG4gICAgICBjb25zdCB0b29sdGlwcyA9IHRoaXMudG9vbHRpcHMoKSBhcyBzdHJpbmdbXTtcbiAgICAgIHJldHVybiB0b29sdGlwc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByZWNpc2lvbigpXG4gICAgICA/ICh0aGlzLnRvb2x0aXBWYWx1ZSgpPy50b1N0cmluZygpID8/ICcnKVxuICAgICAgOiB0aGlzLnJhdGluZ0l0ZW1zKClcbiAgICAgICAgPyAodGhpcy5yYXRpbmdJdGVtcygpW2luZGV4XS5hdCgtMSkgPz8gJycpLnRvU3RyaW5nKClcbiAgICAgICAgOiAnJztcbiAgfVxuXG4gIHVwZGF0ZUZvY3VzYWJsZUl0ZW1zKCkge1xuICAgIHRoaXMucmF0aW5nSXRlbUxhYmVscygpLmZvckVhY2goKGxhYmVsLCBpbmRleCkgPT4ge1xuICAgICAgbGFiZWwuZm9jdXNhYmxlLnNldChpbmRleCA9PT0gdGhpcy4jZm9jdXNLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtSW5kZXgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8ga2VlcCBpdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBjb2RlXG4gIHJlYWRvbmx5IHZhbHVlRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IHJhdGluZ1ZhbHVlID0gdGhpcy52YWx1ZSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZShyYXRpbmdWYWx1ZSk7XG5cbiAgICAgIGlmICh1bnRyYWNrZWQodGhpcy5yYXRpbmdEaXNhYmxlZCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodW50cmFja2VkKHRoaXMuI2NsZWFyZWQpKSB7XG4gICAgICAgIHRoaXMuI2NsZWFyZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgYWN0aXZlSXRlbUluZGV4ID0gdGhpcy5yYXRpbmdJdGVtcygpXG4gICAgICAgIC5mbGF0KClcbiAgICAgICAgLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlID09PSBjb2VyY2VOdW1iZXIocmF0aW5nVmFsdWUgPz8gMCkpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgdGhpcy51cGRhdGVGb2N1c2FibGVJdGVtcygpO1xuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG59XG4iLCJAZm9yIChpdGVtIG9mIHJhdGluZ0l0ZW1zKCk7IHRyYWNrIGl0ZW07IGxldCBpdGVtSW5kZXggPSAkaW5kZXgsIGxhc3QgPSAkbGFzdCkge1xuICBAaWYgKHRvb2x0aXBzKCkpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJhdGluZy1pdGVtXCJcbiAgICAgIFtjVG9vbHRpcF09XCJnZXRUb29sdGlwVmFsdWUoaXRlbUluZGV4KVwiXG4gICAgICBbY1Rvb2x0aXBUcmlnZ2VyXT1cIlsnaG92ZXInLCAnZm9jdXNpbiddXCJcbiAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyZWRJdGVtLnNldChpdGVtSW5kZXgpXCJcbiAgICAgIChmb2N1c2luKT1cImhvdmVyZWRJdGVtLnNldChpdGVtSW5kZXgpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmF0aW5nSXRlbUxhYmVsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgaXRlbUluZGV4IH1cIiAvPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwicmF0aW5nLWl0ZW1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyYXRpbmdJdGVtTGFiZWw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpdGVtSW5kZXggfVwiIC8+XG4gICAgPC9kaXY+XG4gIH1cbn1cblxuPG5nLXRlbXBsYXRlIGxldC1pdGVtIGxldC1pdGVtSW5kZXg9XCJpdGVtSW5kZXhcIiAjcmF0aW5nSXRlbUxhYmVsPlxuICBAZm9yIChpdGVtVmFsdWUgb2YgaXRlbTsgdHJhY2sgcmFkaW9JbmRleDsgbGV0IHJhZGlvSW5kZXggPSAkaW5kZXgsIGxhc3QgPSAkbGFzdCkge1xuICAgIDxjLXJhdGluZy1pdGVtLWxhYmVsXG4gICAgICBjbGFzcz1cInJhdGluZy1pdGVtLWxhYmVsIGQtaW5saW5lLWJsb2NrXCJcbiAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soaXRlbVZhbHVlKVwiXG4gICAgICAoZm9jdXMpPVwiaGFuZGxlRm9jdXNJbigkZXZlbnQsIGl0ZW1WYWx1ZSlcIlxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGlzSXRlbUFjdGl2ZShpdGVtVmFsdWUpIH1cIlxuICAgICAgKG1vdXNlZW50ZXIpPVwiaGFuZGxlTW91c2VFbnRlcigkZXZlbnQsIGl0ZW1WYWx1ZSlcIlxuICAgICAgW25nU3R5bGVdPVwicmFkaW9JbmRleCArIDEgPCBudW1iZXJPZlN1Ykl0ZW1zKCkgPyBub3RMYXN0SXRlbVN0eWxlKHJhZGlvSW5kZXgpIDoge31cIlxuICAgICAgW3ZhbHVlXT1cIml0ZW1WYWx1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW1WYWx1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbVZhbHVlID09PSB2YWx1ZSgpXCJcbiAgICA+XG4gICAgICBAaWYgKGljb25UZW1wbGF0ZXMoKVtpY29uKClbaXRlbUluZGV4XSA/PyBpY29uKCldKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21JY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpY29uKCk/LltpdGVtSW5kZXhdID8/IGljb24oKSB9XCIgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVmYXVsdEljb25UZW1wbGF0ZVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGljb25UZW1wbGF0ZXMoKVthY3RpdmVJY29uKClbaXRlbUluZGV4XSA/PyBhY3RpdmVJY29uKCldKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21JY29uQWN0aXZlVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhY3RpdmVJY29uKCk/LltpdGVtSW5kZXhdID8/IGFjdGl2ZUljb24oKSB9XCIgLz5cbiAgICAgIH1cbiAgICA8L2MtcmF0aW5nLWl0ZW0tbGFiZWw+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdG9vbHRpcENvbnRlbnQ+XG4gIDxzcGFuPnt7IGhvdmVyVmFsdWUoKSB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEljb25UZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInJhdGluZy1pdGVtLWljb25cIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tSWNvblRlbXBsYXRlIGxldC1pY29uPlxuICA8ZGl2IGNsYXNzPVwicmF0aW5nLWl0ZW0tY3VzdG9tLWljb25cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlcygpPy5baWNvbl0gfHwgZGVmYXVsdEljb25UZW1wbGF0ZVwiIC8+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjdXN0b21JY29uQWN0aXZlVGVtcGxhdGUgbGV0LWljb24+XG4gIDxkaXYgY2xhc3M9XCJyYXRpbmctaXRlbS1jdXN0b20taWNvbi1hY3RpdmVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlcygpPy5baWNvbl0gfHwgY3VzdG9tSWNvblRlbXBsYXRlXCIgLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RatingComponent } from './rating.component';
3
- import * as i0 from "@angular/core";
4
- export class RatingModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: RatingModule, imports: [RatingComponent], exports: [RatingComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RatingModule }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RatingModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [RatingComponent],
13
- exports: [RatingComponent]
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvcmF0aW5nL3JhdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBTXJELE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxZQUhiLGVBQWUsYUFDZixlQUFlOytHQUVkLFlBQVk7OzJGQUFaLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9yYXRpbmcuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JhdGluZ0NvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtSYXRpbmdDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFJhdGluZ01vZHVsZSB7fVxuIl19
@@ -1,30 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- export class ClassToggleService {
5
- constructor(document, rendererFactory) {
6
- this.document = document;
7
- this.rendererFactory = rendererFactory;
8
- this.renderer = rendererFactory.createRenderer(null, null);
9
- }
10
- toggle(selector, className) {
11
- const element = document.querySelector(selector);
12
- if (element) {
13
- element.classList.contains(className) ?
14
- this.renderer.removeClass(element, className) :
15
- this.renderer.addClass(element, className);
16
- }
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ClassToggleService, deps: [{ token: DOCUMENT }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ClassToggleService, providedIn: 'root' }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ClassToggleService, decorators: [{
22
- type: Injectable,
23
- args: [{
24
- providedIn: 'root'
25
- }]
26
- }], ctorParameters: () => [{ type: Document, decorators: [{
27
- type: Inject,
28
- args: [DOCUMENT]
29
- }] }, { type: i0.RendererFactory2 }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdG9nZ2xlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2NsYXNzLXRvZ2dsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFDNEIsUUFBa0IsRUFDcEMsZUFBaUM7UUFEZixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUV6QyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxNQUFNLENBQUMsUUFBYSxFQUFFLFNBQWlCO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7OEdBbEJVLGtCQUFrQixrQkFLbkIsUUFBUTtrSEFMUCxrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xhc3NUb2dnbGVTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTJcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgfVxuXG4gIHRvZ2dsZShzZWxlY3RvcjogYW55LCBjbGFzc05hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKSA/XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSA6XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,78 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { afterNextRender, DestroyRef, effect, inject, Injectable, signal } from '@angular/core';
3
- import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
- import { tap } from 'rxjs/operators';
5
- import { LocalStorageService } from './local-storage.service';
6
- import * as i0 from "@angular/core";
7
- export class ColorModeService {
8
- #destroyRef;
9
- #document;
10
- #localStorage;
11
- constructor() {
12
- this.#destroyRef = inject(DestroyRef);
13
- this.#document = inject(DOCUMENT);
14
- this.#localStorage = inject(LocalStorageService);
15
- this.eventName = signal('ColorSchemeChange');
16
- this.localStorageItemName = signal(undefined);
17
- this.localStorageItemName$ = toObservable(this.localStorageItemName);
18
- this.colorMode = signal(undefined);
19
- this.colorModeEffect = effect(() => {
20
- const colorMode = this.colorMode();
21
- if (colorMode) {
22
- const localStorageItemName = this.localStorageItemName();
23
- localStorageItemName && this.setStoredTheme(localStorageItemName, colorMode);
24
- this.#setTheme(colorMode);
25
- }
26
- });
27
- afterNextRender({
28
- read: () => {
29
- this.localStorageItemName$
30
- .pipe(tap((params) => {
31
- this.colorMode.set(this.getDefaultScheme(params));
32
- }), takeUntilDestroyed(this.#destroyRef))
33
- .subscribe();
34
- }
35
- });
36
- }
37
- getStoredTheme(localStorageItemName) {
38
- return this.#localStorage.getItem(localStorageItemName);
39
- }
40
- setStoredTheme(localStorageItemName, colorMode) {
41
- return this.#localStorage.setItem(localStorageItemName, colorMode);
42
- }
43
- removeStoredTheme(localStorageItemName) {
44
- this.#localStorage.removeItem(localStorageItemName);
45
- }
46
- getDefaultScheme(localStorageItemName) {
47
- if (this.#document.defaultView === undefined) {
48
- return this.getDatasetTheme();
49
- }
50
- const storedTheme = localStorageItemName && this.getStoredTheme(localStorageItemName);
51
- return storedTheme ?? this.getDatasetTheme();
52
- }
53
- getPrefersColorScheme() {
54
- return this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches
55
- ? 'dark'
56
- : this.#document.defaultView?.matchMedia('(prefers-color-scheme: light)').matches
57
- ? 'light'
58
- : undefined;
59
- }
60
- getDatasetTheme() {
61
- return this.#document.documentElement.dataset['coreuiTheme'];
62
- }
63
- #setTheme(colorMode) {
64
- this.#document.documentElement.dataset['coreuiTheme'] =
65
- colorMode === 'auto' ? this.getPrefersColorScheme() : colorMode;
66
- const event = new Event(this.eventName());
67
- this.#document.documentElement.dispatchEvent(event);
68
- }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
70
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorModeService, providedIn: 'root' }); }
71
- }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorModeService, decorators: [{
73
- type: Injectable,
74
- args: [{
75
- providedIn: 'root'
76
- }]
77
- }], ctorParameters: () => [] });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jb2xvci1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLGdCQUFnQjtJQUNsQixXQUFXLENBQWtDO0lBQzdDLFNBQVMsQ0FBOEI7SUFDdkMsYUFBYSxDQUFvRDtJQWdCMUU7UUFsQlMsZ0JBQVcsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsY0FBUyxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxrQkFBYSxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVqRSxjQUFTLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDeEMseUJBQW9CLEdBQXVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RSwwQkFBcUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEUsY0FBUyxHQUE4QixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekQsb0JBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxH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LEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIENvbG9yTW9kZSA9ICdsaWdodCcgfCAnZGFyaycgfCAnYXV0bycgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yTW9kZVNlcnZpY2Uge1xuICByZWFkb25seSAjZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgI2RvY3VtZW50OiBEb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHJlYWRvbmx5ICNsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgZXZlbnROYW1lID0gc2lnbmFsKCdDb2xvclNjaGVtZUNoYW5nZScpO1xuICByZWFkb25seSBsb2NhbFN0b3JhZ2VJdGVtTmFtZTogV3JpdGFibGVTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuICByZWFkb25seSBsb2NhbFN0b3JhZ2VJdGVtTmFtZSQgPSB0b09ic2VydmFibGUodGhpcy5sb2NhbFN0b3JhZ2VJdGVtTmFtZSk7XG4gIHJlYWRvbmx5IGNvbG9yTW9kZTogV3JpdGFibGVTaWduYWw8Q29sb3JNb2RlPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGNvbG9yTW9kZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29sb3JNb2RlID0gdGhpcy5jb2xvck1vZGUoKTtcbiAgICBpZiAoY29sb3JNb2RlKSB7XG4gICAgICBjb25zdCBsb2NhbFN0b3JhZ2VJdGVtTmFtZSA9IHRoaXMubG9jYWxTdG9yYWdlSXRlbU5hbWUoKTtcbiAgICAgIGxvY2FsU3RvcmFnZUl0ZW1OYW1lICYmIHRoaXMuc2V0U3RvcmVkVGhlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWUsIGNvbG9yTW9kZSk7XG4gICAgICB0aGlzLiNzZXRUaGVtZShjb2xvck1vZGUpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKHtcbiAgICAgIHJlYWQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VJdGVtTmFtZSRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRhcCgocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY29sb3JNb2RlLnNldCh0aGlzLmdldERlZmF1bHRTY2hlbWUocGFyYW1zKSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRTdG9yZWRUaGVtZShsb2NhbFN0b3JhZ2VJdGVtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU3RvcmFnZUl0ZW1OYW1lKTtcbiAgfVxuXG4gIHNldFN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lOiBzdHJpbmcsIGNvbG9yTW9kZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsU3RvcmFnZUl0ZW1OYW1lLCBjb2xvck1vZGUpO1xuICB9XG5cbiAgcmVtb3ZlU3RvcmVkVGhlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuI2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGxvY2FsU3RvcmFnZUl0ZW1OYW1lKTtcbiAgfVxuXG4gIGdldERlZmF1bHRTY2hlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLiNkb2N1bWVudC5kZWZhdWx0VmlldyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0VGhlbWUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWRUaGVtZSA9IGxvY2FsU3RvcmFnZUl0ZW1OYW1lICYmIHRoaXMuZ2V0U3RvcmVkVGhlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWUpO1xuXG4gICAgcmV0dXJuIHN0b3JlZFRoZW1lID8/IHRoaXMuZ2V0RGF0YXNldFRoZW1lKCk7XG4gIH1cblxuICBnZXRQcmVmZXJzQ29sb3JTY2hlbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2RvY3VtZW50LmRlZmF1bHRWaWV3Py5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlc1xuICAgICAgPyAnZGFyaydcbiAgICAgIDogdGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXc/Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpJykubWF0Y2hlc1xuICAgICAgICA/ICdsaWdodCdcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXREYXRhc2V0VGhlbWUoKTogQ29sb3JNb2RlIHtcbiAgICByZXR1cm4gPENvbG9yTW9kZT50aGlzLiNkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGF0YXNldFsnY29yZXVpVGhlbWUnXTtcbiAgfVxuXG4gICNzZXRUaGVtZShjb2xvck1vZGU6IENvbG9yTW9kZSkge1xuICAgIHRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kYXRhc2V0Wydjb3JldWlUaGVtZSddID1cbiAgICAgIGNvbG9yTW9kZSA9PT0gJ2F1dG8nID8gdGhpcy5nZXRQcmVmZXJzQ29sb3JTY2hlbWUoKSA6IGNvbG9yTW9kZTtcblxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KHRoaXMuZXZlbnROYW1lKCkpO1xuICAgIHRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxufVxuIl19
@@ -1,32 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class InMemoryStorageService {
4
- #storage = new Map();
5
- setItem(key, data) {
6
- this.#storage.set(key, JSON.stringify(data));
7
- }
8
- getItem(key) {
9
- return this.#storage.has(key) ? JSON.parse(this.#storage.get(key) ?? 'null') : undefined;
10
- }
11
- removeItem(key) {
12
- this.#storage.delete(key);
13
- }
14
- clear() {
15
- this.#storage.clear();
16
- }
17
- get length() {
18
- return this.#storage.size;
19
- }
20
- key(index) {
21
- return Array.from(this.#storage.keys())[index];
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InMemoryStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InMemoryStorageService, providedIn: 'root' }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InMemoryStorageService, decorators: [{
27
- type: Injectable,
28
- args: [{
29
- providedIn: 'root'
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUU5QixPQUFPLENBQUMsR0FBVyxFQUFFLElBQVM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNGLENBQUM7SUFFTSxVQUFVLENBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs4R0F6QlUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yYWdlU2VydmljZSBpbXBsZW1lbnRzIFN0b3JhZ2Uge1xuICAjc3RvcmFnZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2Uuc2V0KGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLiNzdG9yYWdlLmhhcyhrZXkpID8gSlNPTi5wYXJzZSh0aGlzLiNzdG9yYWdlLmdldChrZXkpID8/ICdudWxsJykgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2UuZGVsZXRlKGtleSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy4jc3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3N0b3JhZ2Uuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBrZXkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuI3N0b3JhZ2Uua2V5cygpKVtpbmRleF07XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './public_api';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==