novo-elements 11.4.0 → 12.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 (680) hide show
  1. package/addons/ace-editor/index.d.ts +49 -2
  2. package/addons/ckeditor/index.d.ts +58 -2
  3. package/addons/code-editor/index.d.ts +43 -2
  4. package/elements/agenda/index.d.ts +601 -6
  5. package/elements/aside/index.d.ts +61 -5
  6. package/elements/autocomplete/index.d.ts +105 -2
  7. package/elements/avatar/index.d.ts +42 -3
  8. package/elements/breadcrumbs/index.d.ts +87 -6
  9. package/elements/button/index.d.ts +65 -2
  10. package/elements/calendar/index.d.ts +200 -6
  11. package/elements/card/index.d.ts +69 -2
  12. package/elements/category-dropdown/index.d.ts +44 -2
  13. package/elements/checkbox/index.d.ts +117 -3
  14. package/elements/chips/index.d.ts +665 -9
  15. package/elements/color-picker/index.d.ts +142 -4
  16. package/elements/common/index.d.ts +745 -19
  17. package/elements/data-table/index.d.ts +939 -15
  18. package/elements/date-picker/index.d.ts +410 -5
  19. package/elements/date-time-picker/index.d.ts +113 -3
  20. package/elements/divider/index.d.ts +25 -2
  21. package/elements/drag-drop/index.d.ts +74 -2
  22. package/elements/dropdown/index.d.ts +117 -2
  23. package/elements/expansion/index.d.ts +161 -6
  24. package/elements/field/index.d.ts +513 -14
  25. package/elements/flex/index.d.ts +53 -4
  26. package/elements/form/index.d.ts +1312 -17
  27. package/elements/header/index.d.ts +51 -2
  28. package/elements/icon/index.d.ts +37 -2
  29. package/elements/layout/index.d.ts +306 -6
  30. package/elements/list/index.d.ts +59 -2
  31. package/elements/loading/index.d.ts +64 -2
  32. package/elements/menu/index.d.ts +202 -8
  33. package/elements/modal/index.d.ts +96 -6
  34. package/elements/multi-picker/index.d.ts +122 -2
  35. package/elements/non-ideal-state/index.d.ts +22 -2
  36. package/elements/picker/index.d.ts +387 -3
  37. package/elements/places/index.d.ts +121 -3
  38. package/elements/popover/index.d.ts +93 -3
  39. package/elements/progress/index.d.ts +85 -4
  40. package/elements/query-builder/index.d.ts +625 -17
  41. package/elements/quick-note/index.d.ts +187 -3
  42. package/elements/radio/index.d.ts +147 -4
  43. package/elements/search/index.d.ts +85 -2
  44. package/elements/select/index.d.ts +248 -3
  45. package/elements/select-search/index.d.ts +268 -3
  46. package/elements/simple-table/index.d.ts +544 -12
  47. package/elements/simple-table/table.scss +10 -10
  48. package/elements/slider/index.d.ts +32 -2
  49. package/elements/stepper/index.d.ts +134 -7
  50. package/elements/switch/index.d.ts +35 -2
  51. package/elements/tabbed-group-picker/index.d.ts +147 -2
  52. package/elements/tabs/index.d.ts +105 -2
  53. package/elements/tiles/index.d.ts +45 -2
  54. package/elements/time-picker/index.d.ts +141 -3
  55. package/elements/tip-well/index.d.ts +37 -2
  56. package/elements/toast/index.d.ts +94 -3
  57. package/elements/toolbar/index.d.ts +32 -2
  58. package/elements/tooltip/index.d.ts +70 -3
  59. package/elements/unless/index.d.ts +26 -2
  60. package/elements/value/index.d.ts +142 -4
  61. package/fesm2022/novo-elements-addons-ace-editor.mjs +7 -7
  62. package/fesm2022/novo-elements-addons-ace-editor.mjs.map +1 -1
  63. package/fesm2022/novo-elements-addons-ckeditor.mjs +7 -7
  64. package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
  65. package/fesm2022/novo-elements-addons-code-editor.mjs +7 -7
  66. package/fesm2022/novo-elements-addons-code-editor.mjs.map +1 -1
  67. package/fesm2022/novo-elements-elements-agenda.mjs +61 -61
  68. package/fesm2022/novo-elements-elements-agenda.mjs.map +1 -1
  69. package/fesm2022/novo-elements-elements-aside.mjs +17 -16
  70. package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
  71. package/fesm2022/novo-elements-elements-autocomplete.mjs +7 -7
  72. package/fesm2022/novo-elements-elements-autocomplete.mjs.map +1 -1
  73. package/fesm2022/novo-elements-elements-avatar.mjs +10 -10
  74. package/fesm2022/novo-elements-elements-avatar.mjs.map +1 -1
  75. package/fesm2022/novo-elements-elements-breadcrumbs.mjs +13 -13
  76. package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  77. package/fesm2022/novo-elements-elements-button.mjs +12 -12
  78. package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
  79. package/fesm2022/novo-elements-elements-calendar.mjs +25 -25
  80. package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
  81. package/fesm2022/novo-elements-elements-card.mjs +19 -19
  82. package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
  83. package/fesm2022/novo-elements-elements-category-dropdown.mjs +7 -7
  84. package/fesm2022/novo-elements-elements-category-dropdown.mjs.map +1 -1
  85. package/fesm2022/novo-elements-elements-checkbox.mjs +10 -10
  86. package/fesm2022/novo-elements-elements-checkbox.mjs.map +1 -1
  87. package/fesm2022/novo-elements-elements-chips.mjs +47 -39
  88. package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
  89. package/fesm2022/novo-elements-elements-color-picker.mjs +13 -13
  90. package/fesm2022/novo-elements-elements-color-picker.mjs.map +1 -1
  91. package/fesm2022/novo-elements-elements-common.mjs +116 -107
  92. package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
  93. package/fesm2022/novo-elements-elements-data-table.mjs +77 -77
  94. package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
  95. package/fesm2022/novo-elements-elements-date-picker.mjs +17 -17
  96. package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
  97. package/fesm2022/novo-elements-elements-date-time-picker.mjs +11 -11
  98. package/fesm2022/novo-elements-elements-date-time-picker.mjs.map +1 -1
  99. package/fesm2022/novo-elements-elements-divider.mjs +7 -7
  100. package/fesm2022/novo-elements-elements-divider.mjs.map +1 -1
  101. package/fesm2022/novo-elements-elements-drag-drop.mjs +11 -11
  102. package/fesm2022/novo-elements-elements-drag-drop.mjs.map +1 -1
  103. package/fesm2022/novo-elements-elements-dropdown.mjs +19 -19
  104. package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
  105. package/fesm2022/novo-elements-elements-expansion.mjs +26 -26
  106. package/fesm2022/novo-elements-elements-expansion.mjs.map +1 -1
  107. package/fesm2022/novo-elements-elements-field.mjs +46 -46
  108. package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
  109. package/fesm2022/novo-elements-elements-flex.mjs +16 -16
  110. package/fesm2022/novo-elements-elements-flex.mjs.map +1 -1
  111. package/fesm2022/novo-elements-elements-form.mjs +53 -53
  112. package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
  113. package/fesm2022/novo-elements-elements-header.mjs +16 -16
  114. package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
  115. package/fesm2022/novo-elements-elements-icon.mjs +7 -7
  116. package/fesm2022/novo-elements-elements-icon.mjs.map +1 -1
  117. package/fesm2022/novo-elements-elements-layout.mjs +19 -19
  118. package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
  119. package/fesm2022/novo-elements-elements-list.mjs +28 -28
  120. package/fesm2022/novo-elements-elements-list.mjs.map +1 -1
  121. package/fesm2022/novo-elements-elements-loading.mjs +19 -19
  122. package/fesm2022/novo-elements-elements-loading.mjs.map +1 -1
  123. package/fesm2022/novo-elements-elements-menu.mjs +19 -19
  124. package/fesm2022/novo-elements-elements-menu.mjs.map +1 -1
  125. package/fesm2022/novo-elements-elements-modal.mjs +26 -23
  126. package/fesm2022/novo-elements-elements-modal.mjs.map +1 -1
  127. package/fesm2022/novo-elements-elements-multi-picker.mjs +7 -7
  128. package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
  129. package/fesm2022/novo-elements-elements-non-ideal-state.mjs +7 -7
  130. package/fesm2022/novo-elements-elements-non-ideal-state.mjs.map +1 -1
  131. package/fesm2022/novo-elements-elements-picker.mjs +42 -39
  132. package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
  133. package/fesm2022/novo-elements-elements-places.mjs +10 -10
  134. package/fesm2022/novo-elements-elements-places.mjs.map +1 -1
  135. package/fesm2022/novo-elements-elements-popover.mjs +10 -10
  136. package/fesm2022/novo-elements-elements-popover.mjs.map +1 -1
  137. package/fesm2022/novo-elements-elements-progress.mjs +10 -10
  138. package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
  139. package/fesm2022/novo-elements-elements-query-builder.mjs +88 -88
  140. package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
  141. package/fesm2022/novo-elements-elements-quick-note.mjs +10 -10
  142. package/fesm2022/novo-elements-elements-quick-note.mjs.map +1 -1
  143. package/fesm2022/novo-elements-elements-radio.mjs +10 -10
  144. package/fesm2022/novo-elements-elements-radio.mjs.map +1 -1
  145. package/fesm2022/novo-elements-elements-search.mjs +7 -7
  146. package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
  147. package/fesm2022/novo-elements-elements-select-search.mjs +10 -10
  148. package/fesm2022/novo-elements-elements-select-search.mjs.map +1 -1
  149. package/fesm2022/novo-elements-elements-select.mjs +23 -19
  150. package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
  151. package/fesm2022/novo-elements-elements-simple-table.mjs +119 -93
  152. package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
  153. package/fesm2022/novo-elements-elements-slider.mjs +7 -7
  154. package/fesm2022/novo-elements-elements-slider.mjs.map +1 -1
  155. package/fesm2022/novo-elements-elements-stepper.mjs +34 -34
  156. package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
  157. package/fesm2022/novo-elements-elements-switch.mjs +7 -7
  158. package/fesm2022/novo-elements-elements-switch.mjs.map +1 -1
  159. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +7 -7
  160. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  161. package/fesm2022/novo-elements-elements-tabs.mjs +26 -26
  162. package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
  163. package/fesm2022/novo-elements-elements-tiles.mjs +7 -7
  164. package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
  165. package/fesm2022/novo-elements-elements-time-picker.mjs +10 -10
  166. package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
  167. package/fesm2022/novo-elements-elements-tip-well.mjs +7 -7
  168. package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
  169. package/fesm2022/novo-elements-elements-toast.mjs +10 -10
  170. package/fesm2022/novo-elements-elements-toast.mjs.map +1 -1
  171. package/fesm2022/novo-elements-elements-toolbar.mjs +10 -10
  172. package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
  173. package/fesm2022/novo-elements-elements-tooltip.mjs +12 -12
  174. package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
  175. package/fesm2022/novo-elements-elements-unless.mjs +7 -7
  176. package/fesm2022/novo-elements-elements-unless.mjs.map +1 -1
  177. package/fesm2022/novo-elements-elements-value.mjs +14 -14
  178. package/fesm2022/novo-elements-elements-value.mjs.map +1 -1
  179. package/fesm2022/novo-elements-pipes.mjs +35 -35
  180. package/fesm2022/novo-elements-pipes.mjs.map +1 -1
  181. package/fesm2022/novo-elements-services.mjs +24 -24
  182. package/fesm2022/novo-elements-services.mjs.map +1 -1
  183. package/fesm2022/novo-elements-utils.mjs +4 -4
  184. package/fesm2022/novo-elements-utils.mjs.map +1 -1
  185. package/fesm2022/novo-elements.mjs +9 -8
  186. package/fesm2022/novo-elements.mjs.map +1 -1
  187. package/index.d.ts +27 -3
  188. package/package.json +17 -17
  189. package/pipes/index.d.ts +75 -7
  190. package/services/index.d.ts +602 -9
  191. package/utils/index.d.ts +1631 -12
  192. package/addons/ace-editor/AceEditor.d.ts +0 -42
  193. package/addons/ace-editor/AceEditor.module.d.ts +0 -8
  194. package/addons/ckeditor/CKEditor.d.ts +0 -52
  195. package/addons/ckeditor/CKEditor.module.d.ts +0 -9
  196. package/addons/code-editor/CodeEditor.d.ts +0 -32
  197. package/addons/code-editor/CodeEditor.module.d.ts +0 -9
  198. package/elements/agenda/Agenda.module.d.ts +0 -29
  199. package/elements/agenda/common/AgendaDateChange.d.ts +0 -28
  200. package/elements/agenda/common/EventTypeLegend.d.ts +0 -10
  201. package/elements/agenda/common/index.d.ts +0 -2
  202. package/elements/agenda/day/AgendaAllDayEvent.d.ts +0 -10
  203. package/elements/agenda/day/AgendaDayEvent.d.ts +0 -11
  204. package/elements/agenda/day/AgendaDayView.d.ts +0 -151
  205. package/elements/agenda/day/AgendaHourSegment.d.ts +0 -10
  206. package/elements/agenda/day/index.d.ts +0 -4
  207. package/elements/agenda/month/AgendaMonthDay.d.ts +0 -17
  208. package/elements/agenda/month/AgendaMonthHeader.d.ts +0 -17
  209. package/elements/agenda/month/AgendaMonthView.d.ts +0 -113
  210. package/elements/agenda/month/index.d.ts +0 -3
  211. package/elements/agenda/pipe/DayOfMonth.pipe.d.ts +0 -9
  212. package/elements/agenda/pipe/EndOfWeekDisplayPipe.pipe.d.ts +0 -9
  213. package/elements/agenda/pipe/Hours.pipe.d.ts +0 -9
  214. package/elements/agenda/pipe/Month.pipe.d.ts +0 -9
  215. package/elements/agenda/pipe/MonthDay.pipe.d.ts +0 -9
  216. package/elements/agenda/pipe/Weekday.pipe.d.ts +0 -9
  217. package/elements/agenda/pipe/Year.pipe.d.ts +0 -9
  218. package/elements/agenda/pipe/index.d.ts +0 -7
  219. package/elements/agenda/week/AgendaWeekEvent.d.ts +0 -11
  220. package/elements/agenda/week/AgendaWeekHeader.d.ts +0 -17
  221. package/elements/agenda/week/AgendaWeekView.d.ts +0 -159
  222. package/elements/agenda/week/index.d.ts +0 -3
  223. package/elements/aside/aside-ref.d.ts +0 -17
  224. package/elements/aside/aside.animation.d.ts +0 -1
  225. package/elements/aside/aside.component.d.ts +0 -18
  226. package/elements/aside/aside.module.d.ts +0 -9
  227. package/elements/aside/aside.service.d.ts +0 -16
  228. package/elements/autocomplete/autocomplete.component.d.ts +0 -92
  229. package/elements/autocomplete/autocomplete.module.d.ts +0 -12
  230. package/elements/avatar/Avatar.d.ts +0 -22
  231. package/elements/avatar/Avatar.module.d.ts +0 -9
  232. package/elements/avatar/AvatarStack.d.ts +0 -12
  233. package/elements/breadcrumbs/Breadcrumb.d.ts +0 -13
  234. package/elements/breadcrumbs/Breadcrumb.module.d.ts +0 -15
  235. package/elements/breadcrumbs/Breadcrumb.service.d.ts +0 -9
  236. package/elements/breadcrumbs/Breadcrumb.tokens.d.ts +0 -13
  237. package/elements/breadcrumbs/Breadcrumb.types.d.ts +0 -18
  238. package/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.d.ts +0 -23
  239. package/elements/breadcrumbs/breadcrumb-item/index.d.ts +0 -1
  240. package/elements/button/Button.d.ts +0 -55
  241. package/elements/button/Button.module.d.ts +0 -8
  242. package/elements/calendar/Calendar.module.d.ts +0 -15
  243. package/elements/calendar/calendar.component.d.ts +0 -57
  244. package/elements/calendar/month-select/month-select.component.d.ts +0 -18
  245. package/elements/calendar/month-view/month-view.component.d.ts +0 -60
  246. package/elements/calendar/strategies/default-selection.strategy.d.ts +0 -17
  247. package/elements/calendar/strategies/index.d.ts +0 -4
  248. package/elements/calendar/strategies/multi-date-selection.strategy.d.ts +0 -9
  249. package/elements/calendar/strategies/range-selection.strategy.d.ts +0 -9
  250. package/elements/calendar/strategies/week-selection.strategy.d.ts +0 -9
  251. package/elements/calendar/year-select/year-select.component.d.ts +0 -20
  252. package/elements/card/Card.d.ts +0 -55
  253. package/elements/card/Card.module.d.ts +0 -12
  254. package/elements/category-dropdown/CategoryDropdown.d.ts +0 -32
  255. package/elements/category-dropdown/CategoryDropdown.module.d.ts +0 -10
  256. package/elements/checkbox/CheckList.d.ts +0 -23
  257. package/elements/checkbox/Checkbox.d.ts +0 -84
  258. package/elements/checkbox/Checkbox.module.d.ts +0 -11
  259. package/elements/chips/Chip.d.ts +0 -164
  260. package/elements/chips/ChipDefaults.d.ts +0 -8
  261. package/elements/chips/ChipInput.d.ts +0 -77
  262. package/elements/chips/ChipList.d.ts +0 -293
  263. package/elements/chips/ChipTextControl.d.ts +0 -14
  264. package/elements/chips/Chips.d.ts +0 -91
  265. package/elements/chips/Chips.module.d.ts +0 -19
  266. package/elements/chips/RowChips.d.ts +0 -17
  267. package/elements/chips/pipe/AvatarType.pipe.d.ts +0 -7
  268. package/elements/chips/pipe/index.d.ts +0 -1
  269. package/elements/color-picker/color-input.component.d.ts +0 -57
  270. package/elements/color-picker/color-picker.component.d.ts +0 -41
  271. package/elements/color-picker/color-picker.module.d.ts +0 -15
  272. package/elements/color-picker/color-swatch.component.d.ts +0 -31
  273. package/elements/common/common.module.d.ts +0 -24
  274. package/elements/common/directives/accent.directive.d.ts +0 -14
  275. package/elements/common/directives/bg.directive.d.ts +0 -11
  276. package/elements/common/directives/border.directive.d.ts +0 -29
  277. package/elements/common/directives/color.directive.d.ts +0 -11
  278. package/elements/common/directives/fill.directive.d.ts +0 -10
  279. package/elements/common/directives/flex.directive.d.ts +0 -12
  280. package/elements/common/directives/space.directive.d.ts +0 -54
  281. package/elements/common/directives/switch-cases.directive.d.ts +0 -16
  282. package/elements/common/directives/theme.directive.d.ts +0 -10
  283. package/elements/common/directives/visible.directive.d.ts +0 -10
  284. package/elements/common/error/error-options.d.ts +0 -14
  285. package/elements/common/mixins/color.mixin.d.ts +0 -15
  286. package/elements/common/mixins/constructor.d.ts +0 -9
  287. package/elements/common/mixins/disabled.mixin.d.ts +0 -10
  288. package/elements/common/mixins/error-state.mixin.d.ts +0 -25
  289. package/elements/common/mixins/index.d.ts +0 -9
  290. package/elements/common/mixins/overlay.mixin.d.ts +0 -17
  291. package/elements/common/mixins/required.mixin.d.ts +0 -10
  292. package/elements/common/mixins/size.mixin.d.ts +0 -15
  293. package/elements/common/mixins/tab-index.mixin.d.ts +0 -13
  294. package/elements/common/mixins/types.d.ts +0 -5
  295. package/elements/common/novo-template/index.d.ts +0 -1
  296. package/elements/common/novo-template/novo-template.directive.d.ts +0 -11
  297. package/elements/common/option/index.d.ts +0 -13
  298. package/elements/common/option/optgroup.component.d.ts +0 -32
  299. package/elements/common/option/option-parent.d.ts +0 -14
  300. package/elements/common/option/option.component.d.ts +0 -140
  301. package/elements/common/overlay/Overlay.d.ts +0 -71
  302. package/elements/common/overlay/Overlay.module.d.ts +0 -11
  303. package/elements/common/overlay/index.d.ts +0 -2
  304. package/elements/common/selection/index.d.ts +0 -8
  305. package/elements/common/selection/pseudo-checkbox/pseudo-checkbox.component.d.ts +0 -32
  306. package/elements/common/theme/theme-options.d.ts +0 -25
  307. package/elements/common/typography/base/base-text.component.d.ts +0 -33
  308. package/elements/common/typography/caption/caption.component.d.ts +0 -16
  309. package/elements/common/typography/index.d.ts +0 -7
  310. package/elements/common/typography/label/label.component.d.ts +0 -10
  311. package/elements/common/typography/link/link.component.d.ts +0 -17
  312. package/elements/common/typography/text/text.component.d.ts +0 -17
  313. package/elements/common/typography/text.types.d.ts +0 -3
  314. package/elements/common/typography/title/title.component.d.ts +0 -18
  315. package/elements/data-table/ListInteractionTypes.d.ts +0 -10
  316. package/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.d.ts +0 -24
  317. package/elements/data-table/cell-headers/data-table-expand-header-cell.component.d.ts +0 -16
  318. package/elements/data-table/cell-headers/data-table-header-cell-filter-header.component.d.ts +0 -16
  319. package/elements/data-table/cell-headers/data-table-header-cell.component.d.ts +0 -91
  320. package/elements/data-table/cell-headers/data-table-header-cell.directive.d.ts +0 -14
  321. package/elements/data-table/cell-headers/index.d.ts +0 -5
  322. package/elements/data-table/cells/data-table-cell.component.d.ts +0 -20
  323. package/elements/data-table/cells/data-table-checkbox-cell.component.d.ts +0 -23
  324. package/elements/data-table/cells/data-table-expand-cell.component.d.ts +0 -19
  325. package/elements/data-table/cells/index.d.ts +0 -3
  326. package/elements/data-table/data-table-clear-button.component.d.ts +0 -23
  327. package/elements/data-table/data-table-expand.directive.d.ts +0 -21
  328. package/elements/data-table/data-table.component.d.ts +0 -126
  329. package/elements/data-table/data-table.module.d.ts +0 -42
  330. package/elements/data-table/data-table.pipes.d.ts +0 -52
  331. package/elements/data-table/data-table.source.d.ts +0 -22
  332. package/elements/data-table/data-table.token.d.ts +0 -27
  333. package/elements/data-table/interfaces.d.ts +0 -268
  334. package/elements/data-table/pagination/data-table-pagination.component.d.ts +0 -62
  335. package/elements/data-table/pagination/index.d.ts +0 -1
  336. package/elements/data-table/rows/data-table-header-row.component.d.ts +0 -9
  337. package/elements/data-table/rows/data-table-row.component.d.ts +0 -10
  338. package/elements/data-table/rows/index.d.ts +0 -2
  339. package/elements/data-table/services/data-table-filter-utils.d.ts +0 -3
  340. package/elements/data-table/services/index.d.ts +0 -3
  341. package/elements/data-table/services/remote-data-table.service.d.ts +0 -11
  342. package/elements/data-table/services/static-data-table.service.d.ts +0 -15
  343. package/elements/data-table/sort-filter/index.d.ts +0 -3
  344. package/elements/data-table/sort-filter/sort-button.animations.d.ts +0 -5
  345. package/elements/data-table/sort-filter/sort-button.component.d.ts +0 -21
  346. package/elements/data-table/sort-filter/sort-direction.d.ts +0 -5
  347. package/elements/data-table/sort-filter/sort-filter.directive.d.ts +0 -11
  348. package/elements/data-table/state/data-table-state.service.d.ts +0 -52
  349. package/elements/data-table/state/index.d.ts +0 -1
  350. package/elements/date-picker/DatePicker.d.ts +0 -113
  351. package/elements/date-picker/DatePicker.module.d.ts +0 -19
  352. package/elements/date-picker/DatePickerInput.d.ts +0 -146
  353. package/elements/date-picker/DateRangeInput.d.ts +0 -77
  354. package/elements/date-picker/MultiDateInput.d.ts +0 -67
  355. package/elements/date-time-picker/DateTimePicker.d.ts +0 -51
  356. package/elements/date-time-picker/DateTimePicker.module.d.ts +0 -14
  357. package/elements/date-time-picker/DateTimePickerInput.d.ts +0 -50
  358. package/elements/divider/divider.component.d.ts +0 -16
  359. package/elements/divider/divider.module.d.ts +0 -7
  360. package/elements/drag-drop/drag-drop-box.d.ts +0 -65
  361. package/elements/drag-drop/drag-drop.module.d.ts +0 -7
  362. package/elements/dropdown/Dropdown.d.ts +0 -108
  363. package/elements/dropdown/Dropdown.module.d.ts +0 -8
  364. package/elements/expansion/accordion.d.ts +0 -24
  365. package/elements/expansion/expansion-animations.d.ts +0 -9
  366. package/elements/expansion/expansion-panel-content.d.ts +0 -12
  367. package/elements/expansion/expansion-panel-header.d.ts +0 -52
  368. package/elements/expansion/expansion-panel.d.ts +0 -57
  369. package/elements/expansion/expansion.module.d.ts +0 -13
  370. package/elements/field/error/error.d.ts +0 -10
  371. package/elements/field/error/index.d.ts +0 -1
  372. package/elements/field/field-control.d.ts +0 -54
  373. package/elements/field/field.d.ts +0 -59
  374. package/elements/field/field.module.d.ts +0 -20
  375. package/elements/field/fieldset.d.ts +0 -18
  376. package/elements/field/formats/base-format.d.ts +0 -13
  377. package/elements/field/formats/date-format.d.ts +0 -26
  378. package/elements/field/formats/date-range-format.d.ts +0 -36
  379. package/elements/field/formats/date-time-format.d.ts +0 -35
  380. package/elements/field/formats/time-format.d.ts +0 -38
  381. package/elements/field/hint/hint.d.ts +0 -11
  382. package/elements/field/hint/index.d.ts +0 -1
  383. package/elements/field/input.d.ts +0 -165
  384. package/elements/field/picker.directive.d.ts +0 -22
  385. package/elements/field/toggle/picker-toggle.component.d.ts +0 -48
  386. package/elements/flex/Box.d.ts +0 -11
  387. package/elements/flex/Flex.d.ts +0 -17
  388. package/elements/flex/Flex.module.d.ts +0 -10
  389. package/elements/flex/Grid.d.ts +0 -14
  390. package/elements/form/Control.d.ts +0 -116
  391. package/elements/form/ControlGroup.d.ts +0 -111
  392. package/elements/form/ControlTemplates.d.ts +0 -12
  393. package/elements/form/DynamicForm.d.ts +0 -54
  394. package/elements/form/FieldInteractionApi.d.ts +0 -177
  395. package/elements/form/FieldInteractionApiTypes.d.ts +0 -29
  396. package/elements/form/FieldInteractionModals.d.ts +0 -21
  397. package/elements/form/Form.d.ts +0 -24
  398. package/elements/form/Form.module.d.ts +0 -39
  399. package/elements/form/FormControls.d.ts +0 -24
  400. package/elements/form/FormInterfaces.d.ts +0 -29
  401. package/elements/form/FormValidators.d.ts +0 -22
  402. package/elements/form/NovoFormControl.d.ts +0 -112
  403. package/elements/form/NovoFormGroup.d.ts +0 -19
  404. package/elements/form/controls/BaseControl.d.ts +0 -119
  405. package/elements/form/controls/ControlFactory.d.ts +0 -4
  406. package/elements/form/controls/ace-editor/AceEditorControl.d.ts +0 -5
  407. package/elements/form/controls/ace-editor/index.d.ts +0 -1
  408. package/elements/form/controls/address/AddressControl.d.ts +0 -5
  409. package/elements/form/controls/address/index.d.ts +0 -1
  410. package/elements/form/controls/check-list/CheckListControl.d.ts +0 -5
  411. package/elements/form/controls/check-list/index.d.ts +0 -1
  412. package/elements/form/controls/checkbox/CheckboxControl.d.ts +0 -5
  413. package/elements/form/controls/checkbox/index.d.ts +0 -1
  414. package/elements/form/controls/code-editor/CodeEditorControl.d.ts +0 -5
  415. package/elements/form/controls/code-editor/index.d.ts +0 -1
  416. package/elements/form/controls/custom/CustomControl.d.ts +0 -5
  417. package/elements/form/controls/custom/index.d.ts +0 -1
  418. package/elements/form/controls/date/DateControl.d.ts +0 -5
  419. package/elements/form/controls/date/index.d.ts +0 -1
  420. package/elements/form/controls/date-time/DateTimeControl.d.ts +0 -5
  421. package/elements/form/controls/date-time/index.d.ts +0 -1
  422. package/elements/form/controls/editor/EditorControl.d.ts +0 -6
  423. package/elements/form/controls/editor/index.d.ts +0 -1
  424. package/elements/form/controls/file/FileControl.d.ts +0 -5
  425. package/elements/form/controls/file/index.d.ts +0 -1
  426. package/elements/form/controls/grouped/GroupedControl.d.ts +0 -6
  427. package/elements/form/controls/grouped/index.d.ts +0 -1
  428. package/elements/form/controls/index.d.ts +0 -24
  429. package/elements/form/controls/native-select/NativeSelectControl.d.ts +0 -6
  430. package/elements/form/controls/native-select/index.d.ts +0 -1
  431. package/elements/form/controls/picker/PickerControl.d.ts +0 -9
  432. package/elements/form/controls/picker/index.d.ts +0 -1
  433. package/elements/form/controls/quick-note/QuickNoteControl.d.ts +0 -6
  434. package/elements/form/controls/quick-note/index.d.ts +0 -1
  435. package/elements/form/controls/radio/RadioControl.d.ts +0 -6
  436. package/elements/form/controls/radio/index.d.ts +0 -1
  437. package/elements/form/controls/read-only/ReadOnlyControl.d.ts +0 -5
  438. package/elements/form/controls/read-only/index.d.ts +0 -1
  439. package/elements/form/controls/select/SelectControl.d.ts +0 -6
  440. package/elements/form/controls/select/index.d.ts +0 -1
  441. package/elements/form/controls/switch/SwitchControl.d.ts +0 -5
  442. package/elements/form/controls/switch/index.d.ts +0 -1
  443. package/elements/form/controls/text-area/TextAreaControl.d.ts +0 -5
  444. package/elements/form/controls/text-area/index.d.ts +0 -1
  445. package/elements/form/controls/textbox/TextBoxControl.d.ts +0 -9
  446. package/elements/form/controls/textbox/index.d.ts +0 -1
  447. package/elements/form/controls/tiles/TilesControl.d.ts +0 -6
  448. package/elements/form/controls/tiles/index.d.ts +0 -1
  449. package/elements/form/controls/time/TimeControl.d.ts +0 -5
  450. package/elements/form/controls/time/index.d.ts +0 -1
  451. package/elements/form/controls/timezone/TimezoneControl.d.ts +0 -7
  452. package/elements/form/controls/timezone/index.d.ts +0 -1
  453. package/elements/form/extras/FormExtras.module.d.ts +0 -21
  454. package/elements/form/extras/address/Address.d.ts +0 -70
  455. package/elements/form/extras/address/index.d.ts +0 -1
  456. package/elements/form/extras/file/FileInput.d.ts +0 -134
  457. package/elements/form/extras/file/extras/file/File.d.ts +0 -22
  458. package/elements/form/extras/file/extras/file/index.d.ts +0 -1
  459. package/elements/form/extras/file/extras/index.d.ts +0 -1
  460. package/elements/form/extras/file/index.d.ts +0 -2
  461. package/elements/form/extras/index.d.ts +0 -4
  462. package/elements/form/extras/number-range/index.d.ts +0 -1
  463. package/elements/form/extras/number-range/number-range.component.d.ts +0 -27
  464. package/elements/form/utils/FormUtils.d.ts +0 -79
  465. package/elements/form/utils/index.d.ts +0 -1
  466. package/elements/header/Header.d.ts +0 -38
  467. package/elements/header/Header.module.d.ts +0 -11
  468. package/elements/icon/Icon.d.ts +0 -27
  469. package/elements/icon/Icon.module.d.ts +0 -8
  470. package/elements/layout/container/layout-container.component.d.ts +0 -118
  471. package/elements/layout/content/layout-content.component.d.ts +0 -13
  472. package/elements/layout/layout.constants.d.ts +0 -19
  473. package/elements/layout/layout.module.d.ts +0 -11
  474. package/elements/layout/rail/rail.component.d.ts +0 -9
  475. package/elements/layout/sidenav/sidenav.animations.d.ts +0 -8
  476. package/elements/layout/sidenav/sidenav.component.d.ts +0 -147
  477. package/elements/list/List.d.ts +0 -47
  478. package/elements/list/List.module.d.ts +0 -10
  479. package/elements/loading/Loading.d.ts +0 -54
  480. package/elements/loading/Loading.module.d.ts +0 -8
  481. package/elements/menu/menu-content.component.d.ts +0 -45
  482. package/elements/menu/menu-item.directive.d.ts +0 -21
  483. package/elements/menu/menu.component.d.ts +0 -39
  484. package/elements/menu/menu.directive.d.ts +0 -29
  485. package/elements/menu/menu.module.d.ts +0 -17
  486. package/elements/menu/menu.service.d.ts +0 -60
  487. package/elements/menu/menu.tokens.d.ts +0 -3
  488. package/elements/menu/menu.types.d.ts +0 -8
  489. package/elements/modal/modal-container.component.d.ts +0 -20
  490. package/elements/modal/modal-ref.d.ts +0 -25
  491. package/elements/modal/modal.animation.d.ts +0 -1
  492. package/elements/modal/modal.component.d.ts +0 -21
  493. package/elements/modal/modal.module.d.ts +0 -12
  494. package/elements/modal/modal.service.d.ts +0 -19
  495. package/elements/multi-picker/MultiPicker.d.ts +0 -110
  496. package/elements/multi-picker/MultiPicker.module.d.ts +0 -11
  497. package/elements/non-ideal-state/NonIdealState.d.ts +0 -10
  498. package/elements/non-ideal-state/NonIdealState.module.d.ts +0 -10
  499. package/elements/picker/Picker.d.ts +0 -78
  500. package/elements/picker/Picker.module.d.ts +0 -22
  501. package/elements/picker/extras/base-picker-results/BasePickerResults.d.ts +0 -96
  502. package/elements/picker/extras/base-picker-results/index.d.ts +0 -1
  503. package/elements/picker/extras/checklist-picker-results/ChecklistPickerResults.d.ts +0 -24
  504. package/elements/picker/extras/checklist-picker-results/index.d.ts +0 -1
  505. package/elements/picker/extras/distributionlist-picker-results/DistributionListPickerResults.d.ts +0 -16
  506. package/elements/picker/extras/distributionlist-picker-results/index.d.ts +0 -1
  507. package/elements/picker/extras/entity-picker-results/EntityPickerResults.d.ts +0 -37
  508. package/elements/picker/extras/entity-picker-results/index.d.ts +0 -1
  509. package/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.d.ts +0 -45
  510. package/elements/picker/extras/grouped-multi-picker-results/index.d.ts +0 -1
  511. package/elements/picker/extras/index.d.ts +0 -9
  512. package/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.d.ts +0 -50
  513. package/elements/picker/extras/mixed-multi-picker-results/index.d.ts +0 -1
  514. package/elements/picker/extras/picker-results/PickerResults.d.ts +0 -14
  515. package/elements/picker/extras/picker-results/index.d.ts +0 -1
  516. package/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.d.ts +0 -24
  517. package/elements/picker/extras/skills-picker-results/index.d.ts +0 -1
  518. package/elements/picker/extras/workers-comp-codes-picker-results/WorkersCompCodesPickerResults.d.ts +0 -13
  519. package/elements/picker/extras/workers-comp-codes-picker-results/index.d.ts +0 -1
  520. package/elements/places/places.component.d.ts +0 -85
  521. package/elements/places/places.module.d.ts +0 -10
  522. package/elements/places/places.service.d.ts +0 -25
  523. package/elements/popover/PopOver.d.ts +0 -37
  524. package/elements/popover/PopOver.module.d.ts +0 -9
  525. package/elements/popover/PopOverContent.d.ts +0 -49
  526. package/elements/progress/Progress.d.ts +0 -24
  527. package/elements/progress/Progress.module.d.ts +0 -9
  528. package/elements/progress/ProgressBar.d.ts +0 -45
  529. package/elements/progress/ProgressConstants.d.ts +0 -10
  530. package/elements/query-builder/condition-builder/condition-builder.component.d.ts +0 -94
  531. package/elements/query-builder/condition-definitions/abstract-condition.definition.d.ts +0 -35
  532. package/elements/query-builder/condition-definitions/address-condition.definition.d.ts +0 -45
  533. package/elements/query-builder/condition-definitions/boolean-condition.definition.d.ts +0 -14
  534. package/elements/query-builder/condition-definitions/date-condition.definition.d.ts +0 -19
  535. package/elements/query-builder/condition-definitions/date-time-condition.definition.d.ts +0 -19
  536. package/elements/query-builder/condition-definitions/id-condition.definition.d.ts +0 -11
  537. package/elements/query-builder/condition-definitions/number-condition.definition.d.ts +0 -14
  538. package/elements/query-builder/condition-definitions/picker-condition.definition.d.ts +0 -23
  539. package/elements/query-builder/condition-definitions/string-condition.definition.d.ts +0 -21
  540. package/elements/query-builder/condition-group/condition-group.component.d.ts +0 -37
  541. package/elements/query-builder/condition-templates/condition-templates.component.d.ts +0 -8
  542. package/elements/query-builder/criteria-builder/criteria-builder.component.d.ts +0 -54
  543. package/elements/query-builder/query-builder.directives.d.ts +0 -66
  544. package/elements/query-builder/query-builder.module.d.ts +0 -46
  545. package/elements/query-builder/query-builder.service.d.ts +0 -54
  546. package/elements/query-builder/query-builder.tokens.d.ts +0 -4
  547. package/elements/query-builder/query-builder.types.d.ts +0 -128
  548. package/elements/quick-note/QuickNote.d.ts +0 -142
  549. package/elements/quick-note/QuickNote.module.d.ts +0 -13
  550. package/elements/quick-note/extras/index.d.ts +0 -1
  551. package/elements/quick-note/extras/quick-note-results/QuickNoteResults.d.ts +0 -33
  552. package/elements/quick-note/extras/quick-note-results/index.d.ts +0 -1
  553. package/elements/radio/Radio.d.ts +0 -40
  554. package/elements/radio/Radio.module.d.ts +0 -10
  555. package/elements/radio/RadioGroup.d.ts +0 -91
  556. package/elements/radio/tokens.d.ts +0 -9
  557. package/elements/search/SearchBox.d.ts +0 -71
  558. package/elements/search/SearchBox.module.d.ts +0 -12
  559. package/elements/select/Select.d.ts +0 -216
  560. package/elements/select/Select.extupdatefix.directive.d.ts +0 -17
  561. package/elements/select/Select.module.d.ts +0 -17
  562. package/elements/select-search/select-search-clear.directive.d.ts +0 -12
  563. package/elements/select-search/select-search.component.d.ts +0 -239
  564. package/elements/select-search/select-search.module.d.ts +0 -17
  565. package/elements/simple-table/PaginationOld.d.ts +0 -42
  566. package/elements/simple-table/activity-table-renderers.d.ts +0 -4
  567. package/elements/simple-table/cell-header.d.ts +0 -67
  568. package/elements/simple-table/cell.d.ts +0 -100
  569. package/elements/simple-table/interfaces.d.ts +0 -81
  570. package/elements/simple-table/pagination.d.ts +0 -40
  571. package/elements/simple-table/row.d.ts +0 -29
  572. package/elements/simple-table/simple-table.module.d.ts +0 -26
  573. package/elements/simple-table/sort.d.ts +0 -25
  574. package/elements/simple-table/state.d.ts +0 -25
  575. package/elements/simple-table/table-source.d.ts +0 -62
  576. package/elements/simple-table/table.d.ts +0 -72
  577. package/elements/slider/Slider.d.ts +0 -21
  578. package/elements/slider/Slider.module.d.ts +0 -9
  579. package/elements/stepper/step-header.component.d.ts +0 -48
  580. package/elements/stepper/step-label.component.d.ts +0 -8
  581. package/elements/stepper/step-status.component.d.ts +0 -7
  582. package/elements/stepper/stepper-buttons.component.d.ts +0 -12
  583. package/elements/stepper/stepper.animations.d.ts +0 -6
  584. package/elements/stepper/stepper.component.d.ts +0 -44
  585. package/elements/stepper/stepper.module.d.ts +0 -17
  586. package/elements/switch/Switch.d.ts +0 -23
  587. package/elements/switch/Switch.module.d.ts +0 -10
  588. package/elements/tabbed-group-picker/TabbedGroupPicker.d.ts +0 -128
  589. package/elements/tabbed-group-picker/TabbedGroupPicker.module.d.ts +0 -17
  590. package/elements/tabs/Tabs.d.ts +0 -95
  591. package/elements/tabs/Tabs.module.d.ts +0 -8
  592. package/elements/tiles/Tiles.d.ts +0 -33
  593. package/elements/tiles/Tiles.module.d.ts +0 -10
  594. package/elements/time-picker/TimePicker.d.ts +0 -58
  595. package/elements/time-picker/TimePicker.module.d.ts +0 -14
  596. package/elements/time-picker/TimePickerInput.d.ts +0 -71
  597. package/elements/tip-well/TipWell.d.ts +0 -26
  598. package/elements/tip-well/TipWell.module.d.ts +0 -9
  599. package/elements/toast/Toast.d.ts +0 -37
  600. package/elements/toast/Toast.module.d.ts +0 -9
  601. package/elements/toast/ToastService.d.ts +0 -45
  602. package/elements/toolbar/toolbar.component.d.ts +0 -22
  603. package/elements/toolbar/toolbar.module.d.ts +0 -8
  604. package/elements/tooltip/Tooltip.component.d.ts +0 -16
  605. package/elements/tooltip/Tooltip.directive.d.ts +0 -44
  606. package/elements/tooltip/Tooltip.module.d.ts +0 -9
  607. package/elements/unless/Unless.d.ts +0 -16
  608. package/elements/unless/Unless.module.d.ts +0 -8
  609. package/elements/value/EntityList.d.ts +0 -16
  610. package/elements/value/Render.d.ts +0 -70
  611. package/elements/value/Value.d.ts +0 -46
  612. package/elements/value/Value.module.d.ts +0 -12
  613. package/novo-elements.module.d.ts +0 -11
  614. package/novo-elements.providers.d.ts +0 -12
  615. package/pipes/Pipes.module.d.ts +0 -15
  616. package/pipes/decode-uri/DecodeURI.d.ts +0 -8
  617. package/pipes/decode-uri/index.d.ts +0 -1
  618. package/pipes/default/Default.d.ts +0 -8
  619. package/pipes/default/index.d.ts +0 -1
  620. package/pipes/group-by/GroupBy.d.ts +0 -7
  621. package/pipes/group-by/index.d.ts +0 -1
  622. package/pipes/highlight/Highlight.d.ts +0 -9
  623. package/pipes/highlight/index.d.ts +0 -1
  624. package/pipes/iso8601/index.d.ts +0 -4
  625. package/pipes/iso8601/iso-date-range.pipe.d.ts +0 -10
  626. package/pipes/iso8601/iso-date.pipe.d.ts +0 -8
  627. package/pipes/iso8601/iso-time-range.pipe.d.ts +0 -10
  628. package/pipes/iso8601/iso-time.pipe.d.ts +0 -8
  629. package/pipes/plural/Plural.d.ts +0 -8
  630. package/pipes/plural/index.d.ts +0 -1
  631. package/services/component-utils/ComponentUtils.d.ts +0 -7
  632. package/services/component-utils/index.d.ts +0 -1
  633. package/services/data-provider/ArrayCollection.d.ts +0 -168
  634. package/services/data-provider/Collection.d.ts +0 -78
  635. package/services/data-provider/CollectionEvent.d.ts +0 -17
  636. package/services/data-provider/PagedArrayCollection.d.ts +0 -18
  637. package/services/data-provider/PagedCollection.d.ts +0 -15
  638. package/services/data-provider/index.d.ts +0 -5
  639. package/services/date-format/DateFormat.d.ts +0 -28
  640. package/services/date-format/index.d.ts +0 -1
  641. package/services/global/global.service.d.ts +0 -17
  642. package/services/global/index.d.ts +0 -1
  643. package/services/novo-label-service.d.ts +0 -202
  644. package/services/options/OptionsService.d.ts +0 -12
  645. package/services/options/index.d.ts +0 -1
  646. package/services/security/Security.d.ts +0 -23
  647. package/services/security/index.d.ts +0 -1
  648. package/services/storage/index.d.ts +0 -1
  649. package/services/storage/storage.service.d.ts +0 -8
  650. package/services/template/NovoTemplateService.d.ts +0 -10
  651. package/services/template/index.d.ts +0 -1
  652. package/utils/Helpers.d.ts +0 -188
  653. package/utils/app-bridge/AppBridge.d.ts +0 -178
  654. package/utils/app-bridge/index.d.ts +0 -2
  655. package/utils/app-bridge/interfaces.d.ts +0 -58
  656. package/utils/base-renderer/BaseRenderer.d.ts +0 -9
  657. package/utils/base-renderer/index.d.ts +0 -1
  658. package/utils/calendar-utils/CalendarUtils.d.ts +0 -151
  659. package/utils/calendar-utils/index.d.ts +0 -1
  660. package/utils/color-utils/ColorUtils.d.ts +0 -40
  661. package/utils/color-utils/index.d.ts +0 -1
  662. package/utils/countries/Countries.d.ts +0 -47
  663. package/utils/countries/index.d.ts +0 -1
  664. package/utils/date/Date.d.ts +0 -50
  665. package/utils/date/Date.types.d.ts +0 -71
  666. package/utils/date/convert-tokens.d.ts +0 -5
  667. package/utils/date/index.d.ts +0 -5
  668. package/utils/date/legacy-parse.d.ts +0 -15
  669. package/utils/date/timezone-support.d.ts +0 -5
  670. package/utils/decorators/BooleanInput.d.ts +0 -1
  671. package/utils/decorators/index.d.ts +0 -1
  672. package/utils/deferred/Deferred.d.ts +0 -8
  673. package/utils/deferred/index.d.ts +0 -1
  674. package/utils/key-codes/Key.d.ts +0 -669
  675. package/utils/key-codes/KeyCodes.d.ts +0 -93
  676. package/utils/key-codes/index.d.ts +0 -2
  677. package/utils/notifier/index.d.ts +0 -1
  678. package/utils/notifier/notifier.util.d.ts +0 -1
  679. package/utils/outside-click/OutsideClick.d.ts +0 -27
  680. package/utils/outside-click/index.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-switch.mjs","sources":["../../../projects/novo-elements/src/elements/switch/Switch.ts","../../../projects/novo-elements/src/elements/switch/Switch.module.ts","../../../projects/novo-elements/src/elements/switch/novo-elements-elements-switch.ts"],"sourcesContent":["// NG2\nimport { ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, Key } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst SWITCH_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoSwitchElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-switch',\n providers: [SWITCH_VALUE_ACCESSOR],\n template: `\n <div (click)=\"toggle($event)\">\n <div class=\"novo-switch-container\">\n <div class=\"novo-switch-bar\"></div>\n <div class=\"novo-switch-thumb-container\">\n <div class=\"novo-switch-thumb\">\n <novo-icon *ngIf=\"!value\" smaller>{{ icons[0] }}</novo-icon>\n <novo-icon *ngIf=\"value\" smaller>{{ icons[1] }}</novo-icon>\n </div>\n </div>\n </div>\n <div class=\"novo-switch-label\"><ng-content></ng-content></div>\n </div>\n `,\n styleUrls: ['./Switch.scss'],\n host: {\n role: 'checkbox',\n class: 'novo-switch',\n '[attr.aria-checked]': 'value',\n '[attr.aria-disabled]': 'disabled',\n '(keydown)': 'onKeydown($event)',\n '[class]': 'theme',\n },\n standalone: false,\n})\nexport class NovoSwitchElement implements ControlValueAccessor {\n @Input()\n theme: string = 'ocean';\n\n @Input()\n icons: [string, string] = ['x', 'check'];\n\n @Input()\n @BooleanInput()\n @HostBinding('class.novo-switch-disabled')\n disabled: boolean = false;\n\n @Output()\n onChange: EventEmitter<any> = new EventEmitter();\n\n private _value: boolean;\n public get value(): boolean {\n return this._value;\n }\n public set value(value: boolean) {\n this._value = value;\n }\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n constructor(private ref: ChangeDetectorRef) {}\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === Key.Space) {\n event.preventDefault();\n this.toggle(event);\n }\n }\n\n toggle(event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (this.disabled) {\n return;\n }\n\n this.value = !this.value;\n this.onChange.next(this.value);\n this.onModelChange(this.value);\n this.ref.markForCheck();\n }\n\n writeValue(model: boolean): void {\n this.value = model;\n this.ref.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoSwitchElement } from './Switch';\n\n@NgModule({\n imports: [CommonModule, FormsModule, NovoIconModule],\n declarations: [NovoSwitchElement],\n exports: [NovoSwitchElement],\n})\nexport class NovoSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-switch.mjs","sources":["../../../projects/novo-elements/src/elements/switch/Switch.ts","../../../projects/novo-elements/src/elements/switch/Switch.module.ts","../../../projects/novo-elements/src/elements/switch/novo-elements-elements-switch.ts"],"sourcesContent":["// NG2\nimport { ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, Key } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst SWITCH_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoSwitchElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-switch',\n providers: [SWITCH_VALUE_ACCESSOR],\n template: `\n <div (click)=\"toggle($event)\">\n <div class=\"novo-switch-container\">\n <div class=\"novo-switch-bar\"></div>\n <div class=\"novo-switch-thumb-container\">\n <div class=\"novo-switch-thumb\">\n <novo-icon *ngIf=\"!value\" smaller>{{ icons[0] }}</novo-icon>\n <novo-icon *ngIf=\"value\" smaller>{{ icons[1] }}</novo-icon>\n </div>\n </div>\n </div>\n <div class=\"novo-switch-label\"><ng-content></ng-content></div>\n </div>\n `,\n styleUrls: ['./Switch.scss'],\n host: {\n role: 'checkbox',\n class: 'novo-switch',\n '[attr.aria-checked]': 'value',\n '[attr.aria-disabled]': 'disabled',\n '(keydown)': 'onKeydown($event)',\n '[class]': 'theme',\n },\n standalone: false,\n})\nexport class NovoSwitchElement implements ControlValueAccessor {\n @Input()\n theme: string = 'ocean';\n\n @Input()\n icons: [string, string] = ['x', 'check'];\n\n @Input()\n @BooleanInput()\n @HostBinding('class.novo-switch-disabled')\n disabled: boolean = false;\n\n @Output()\n onChange: EventEmitter<any> = new EventEmitter();\n\n private _value: boolean;\n public get value(): boolean {\n return this._value;\n }\n public set value(value: boolean) {\n this._value = value;\n }\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n constructor(private ref: ChangeDetectorRef) {}\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === Key.Space) {\n event.preventDefault();\n this.toggle(event);\n }\n }\n\n toggle(event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (this.disabled) {\n return;\n }\n\n this.value = !this.value;\n this.onChange.next(this.value);\n this.onModelChange(this.value);\n this.ref.markForCheck();\n }\n\n writeValue(model: boolean): void {\n this.value = model;\n this.ref.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoSwitchElement } from './Switch';\n\n@NgModule({\n imports: [CommonModule, FormsModule, NovoIconModule],\n declarations: [NovoSwitchElement],\n exports: [NovoSwitchElement],\n})\nexport class NovoSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -327,14 +327,14 @@ class NovoTabbedGroupPickerElement {
327
327
  onFilter(event) {
328
328
  this.filterText.next(event.target.value);
329
329
  }
330
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabbedGroupPickerElement, deps: [{ token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
331
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoTabbedGroupPickerElement, isStandalone: false, selector: "novo-tabbed-group-picker", inputs: { buttonConfig: "buttonConfig", tabs: "tabs", quickSelectConfig: "quickSelectConfig", showFooter: "showFooter", selectionEnabled: "selectionEnabled" }, outputs: { activation: "activation", selectionChange: "selectionChange", applyChange: "applyChange", cancelChange: "cancelChange" }, providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }], viewQueries: [{ propertyName: "scrollableInstance", first: true, predicate: ["tabbedGroupPickerVirtualScrollViewport"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple #dropdown>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [size]=\"buttonConfig.size\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <ng-content></ng-content>\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\" (keydown)=\"dropdown._handleKeydown($event)\">\n <input #inputElement type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\" (keydown.space)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\" (keydown)=\"dropdown._handleKeydown($event)\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll && !showFooter\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\" (keydown.space)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"quickSelect.selected\"\n (click)=\"activateItem(quickSelect)\"\n (keydown.space)=\"activateItem(quickSelect)\"\n novoInert>\n {{quickSelect.label}}\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [attr.data-automation-value]=\"item[displayTab.valueField]\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"item.selected\"\n (click)=\"activateItem(item, displayTab)\"\n (keydown.space)=\"activateItem(item, displayTab)\"\n novoInert>\n {{item[displayTab.labelField]}}\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"footer\" *ngIf=\"showFooter\">\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"clear-all-button\"\n *ngIf=\"showClearAll\"\n theme=\"dialogue\"\n icon=\"times\"\n side=\"right\"\n color=\"grapefruit\"\n (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"cancel-button\"\n marginRight=\"1rem\"\n theme=\"dialogue\"\n (click)=\"cancel()\">{{ labelService.cancel }}</novo-button>\n <novo-button\n class=\"save-button\"\n theme=\"primary\"\n color=\"primary\"\n (click)=\"apply()\">{{ labelService.apply }}</novo-button>\n </div>\n </div>\n</novo-dropdown>", styles: [":host .tabbed-group-picker-button .tabbed-group-picker-button-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:40px;width:100%}::ng-deep .dropdown-container .tabbed-group-picker-search{width:100%;padding:.5em;border-bottom:.1em solid #ccc;position:relative}::ng-deep .dropdown-container .tabbed-group-picker-search input{background:transparent;border:none;border-radius:0;outline:none;height:2rem;width:95%;padding:0;box-shadow:none;box-sizing:content-box;transition:all .3s;color:#3d464d}::ng-deep .dropdown-container .tabbed-group-picker-search input::placeholder{color:var(--form-placeholder)}::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-search,::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-times{position:absolute;bottom:1em;right:.5em;color:#9e9e9e;font-size:1.2rem;margin-right:1em}::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-times{cursor:pointer}::ng-deep .dropdown-container .footer{background:var(--background-main);display:flex;align-items:center;justify-content:space-between;padding:1rem}::ng-deep .dropdown-container .tabbed-group-picker-column-container{display:flex;flex-direction:row;-webkit-user-select:none;user-select:none}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column{display:flex;flex-direction:column;align-items:center}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left{border-right:1px solid #dbdbdb;justify-content:space-between}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left .clear-all-button{margin-bottom:.5em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav{overflow:auto}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab{min-height:3em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab>.novo-tab-link{max-width:100%;height:100%;display:flex;justify-content:space-between;align-items:center}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab.active .novo-tab-link{font-weight:400}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab.active:hover .novo-tab-link{font-weight:400;color:#4a89dc}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab:hover .novo-tab-link{font-weight:400;color:#000;opacity:1}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right{display:block;width:23em;overflow:hidden}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select{font-weight:500}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select .quick-select-label{padding:.7em 1.9em 0;background:#f5f5f5;text-transform:uppercase;font-size:.8em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select .quick-select-list .quick-select-item{background:#f5f5f5;padding:.5em .8em;border-bottom:none}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup cdk-virtual-scroll-viewport{height:27em;overflow-x:hidden}@media (max-height: 720px){::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup cdk-virtual-scroll-viewport{height:18em}}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup novo-option:hover.novo-option-inert{background:var(--background-main, rgba(74, 137, 220, .1))}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9e9e9e;width:100%;height:27em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item i{padding-bottom:.2em;font-size:3em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item .empty-item-main-message{font-weight:500;color:#3d464d}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item .empty-item-sub-message{font-size:.9em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i4.NovoNavElement, selector: "novo-nav", inputs: ["theme", "direction", "outlet", "router", "condensed", "selectedIndex"], outputs: ["selectedIndexChange"] }, { kind: "component", type: i4.NovoTabElement, selector: "novo-tab", inputs: ["active", "color", "disabled"], outputs: ["activeChange"] }, { kind: "component", type: i5.NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "secondIcon", "disabled"] }, { kind: "component", type: i6.NovoDropdownElement, selector: "novo-dropdown", inputs: ["parentScrollSelector", "parentScrollAction", "containerClass", "side", "scrollStrategy", "keepOpen", "height", "width", "appendToBody", "multiple", "scrollToActiveItemOnOpen"], outputs: ["toggled"] }, { kind: "component", type: i7.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { kind: "component", type: i7.NovoOptgroup, selector: "novo-optgroup", inputs: ["disabled", "label"], exportAs: ["novoOptgroup"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabbedGroupPickerElement, deps: [{ token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoTabbedGroupPickerElement, isStandalone: false, selector: "novo-tabbed-group-picker", inputs: { buttonConfig: "buttonConfig", tabs: "tabs", quickSelectConfig: "quickSelectConfig", showFooter: "showFooter", selectionEnabled: "selectionEnabled" }, outputs: { activation: "activation", selectionChange: "selectionChange", applyChange: "applyChange", cancelChange: "cancelChange" }, providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }], viewQueries: [{ propertyName: "scrollableInstance", first: true, predicate: ["tabbedGroupPickerVirtualScrollViewport"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple #dropdown>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [size]=\"buttonConfig.size\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <ng-content></ng-content>\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\" (keydown)=\"dropdown._handleKeydown($event)\">\n <input #inputElement type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\" (keydown.space)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\" (keydown)=\"dropdown._handleKeydown($event)\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll && !showFooter\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\" (keydown.space)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"quickSelect.selected\"\n (click)=\"activateItem(quickSelect)\"\n (keydown.space)=\"activateItem(quickSelect)\"\n novoInert>\n {{quickSelect.label}}\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [attr.data-automation-value]=\"item[displayTab.valueField]\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"item.selected\"\n (click)=\"activateItem(item, displayTab)\"\n (keydown.space)=\"activateItem(item, displayTab)\"\n novoInert>\n {{item[displayTab.labelField]}}\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"footer\" *ngIf=\"showFooter\">\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"clear-all-button\"\n *ngIf=\"showClearAll\"\n theme=\"dialogue\"\n icon=\"times\"\n side=\"right\"\n color=\"grapefruit\"\n (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"cancel-button\"\n marginRight=\"1rem\"\n theme=\"dialogue\"\n (click)=\"cancel()\">{{ labelService.cancel }}</novo-button>\n <novo-button\n class=\"save-button\"\n theme=\"primary\"\n color=\"primary\"\n (click)=\"apply()\">{{ labelService.apply }}</novo-button>\n </div>\n </div>\n</novo-dropdown>", styles: [":host .tabbed-group-picker-button .tabbed-group-picker-button-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:40px;width:100%}::ng-deep .dropdown-container .tabbed-group-picker-search{width:100%;padding:.5em;border-bottom:.1em solid #ccc;position:relative}::ng-deep .dropdown-container .tabbed-group-picker-search input{background:transparent;border:none;border-radius:0;outline:none;height:2rem;width:95%;padding:0;box-shadow:none;box-sizing:content-box;transition:all .3s;color:#3d464d}::ng-deep .dropdown-container .tabbed-group-picker-search input::placeholder{color:var(--form-placeholder)}::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-search,::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-times{position:absolute;bottom:1em;right:.5em;color:#9e9e9e;font-size:1.2rem;margin-right:1em}::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-times{cursor:pointer}::ng-deep .dropdown-container .footer{background:var(--background-main);display:flex;align-items:center;justify-content:space-between;padding:1rem}::ng-deep .dropdown-container .tabbed-group-picker-column-container{display:flex;flex-direction:row;-webkit-user-select:none;user-select:none}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column{display:flex;flex-direction:column;align-items:center}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left{border-right:1px solid #dbdbdb;justify-content:space-between}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left .clear-all-button{margin-bottom:.5em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav{overflow:auto}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab{min-height:3em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab>.novo-tab-link{max-width:100%;height:100%;display:flex;justify-content:space-between;align-items:center}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab.active .novo-tab-link{font-weight:400}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab.active:hover .novo-tab-link{font-weight:400;color:#4a89dc}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab:hover .novo-tab-link{font-weight:400;color:#000;opacity:1}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right{display:block;width:23em;overflow:hidden}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select{font-weight:500}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select .quick-select-label{padding:.7em 1.9em 0;background:#f5f5f5;text-transform:uppercase;font-size:.8em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select .quick-select-list .quick-select-item{background:#f5f5f5;padding:.5em .8em;border-bottom:none}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup cdk-virtual-scroll-viewport{height:27em;overflow-x:hidden}@media (max-height: 720px){::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup cdk-virtual-scroll-viewport{height:18em}}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup novo-option:hover.novo-option-inert{background:var(--background-main, rgba(74, 137, 220, .1))}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9e9e9e;width:100%;height:27em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item i{padding-bottom:.2em;font-size:3em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item .empty-item-main-message{font-weight:500;color:#3d464d}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item .empty-item-sub-message{font-size:.9em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i4.NovoNavElement, selector: "novo-nav", inputs: ["theme", "direction", "outlet", "router", "condensed", "selectedIndex"], outputs: ["selectedIndexChange"] }, { kind: "component", type: i4.NovoTabElement, selector: "novo-tab", inputs: ["active", "color", "disabled"], outputs: ["activeChange"] }, { kind: "component", type: i5.NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "secondIcon", "disabled"] }, { kind: "component", type: i6.NovoDropdownElement, selector: "novo-dropdown", inputs: ["parentScrollSelector", "parentScrollAction", "containerClass", "side", "scrollStrategy", "keepOpen", "height", "width", "appendToBody", "multiple", "scrollToActiveItemOnOpen"], outputs: ["toggled"] }, { kind: "component", type: i7.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { kind: "component", type: i7.NovoOptgroup, selector: "novo-optgroup", inputs: ["disabled", "label"], exportAs: ["novoOptgroup"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
332
332
  }
333
333
  __decorate([
334
334
  BooleanInput(),
335
335
  __metadata("design:type", Object)
336
336
  ], NovoTabbedGroupPickerElement.prototype, "selectionEnabled", void 0);
337
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabbedGroupPickerElement, decorators: [{
337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabbedGroupPickerElement, decorators: [{
338
338
  type: Component,
339
339
  args: [{ selector: 'novo-tabbed-group-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }], standalone: false, template: "<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple #dropdown>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [size]=\"buttonConfig.size\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <ng-content></ng-content>\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\" (keydown)=\"dropdown._handleKeydown($event)\">\n <input #inputElement type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\" (keydown.space)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\" (keydown)=\"dropdown._handleKeydown($event)\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll && !showFooter\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\" (keydown.space)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"quickSelect.selected\"\n (click)=\"activateItem(quickSelect)\"\n (keydown.space)=\"activateItem(quickSelect)\"\n novoInert>\n {{quickSelect.label}}\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [attr.data-automation-value]=\"item[displayTab.valueField]\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"item.selected\"\n (click)=\"activateItem(item, displayTab)\"\n (keydown.space)=\"activateItem(item, displayTab)\"\n novoInert>\n {{item[displayTab.labelField]}}\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"footer\" *ngIf=\"showFooter\">\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"clear-all-button\"\n *ngIf=\"showClearAll\"\n theme=\"dialogue\"\n icon=\"times\"\n side=\"right\"\n color=\"grapefruit\"\n (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"cancel-button\"\n marginRight=\"1rem\"\n theme=\"dialogue\"\n (click)=\"cancel()\">{{ labelService.cancel }}</novo-button>\n <novo-button\n class=\"save-button\"\n theme=\"primary\"\n color=\"primary\"\n (click)=\"apply()\">{{ labelService.apply }}</novo-button>\n </div>\n </div>\n</novo-dropdown>", styles: [":host .tabbed-group-picker-button .tabbed-group-picker-button-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:40px;width:100%}::ng-deep .dropdown-container .tabbed-group-picker-search{width:100%;padding:.5em;border-bottom:.1em solid #ccc;position:relative}::ng-deep .dropdown-container .tabbed-group-picker-search input{background:transparent;border:none;border-radius:0;outline:none;height:2rem;width:95%;padding:0;box-shadow:none;box-sizing:content-box;transition:all .3s;color:#3d464d}::ng-deep .dropdown-container .tabbed-group-picker-search input::placeholder{color:var(--form-placeholder)}::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-search,::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-times{position:absolute;bottom:1em;right:.5em;color:#9e9e9e;font-size:1.2rem;margin-right:1em}::ng-deep .dropdown-container .tabbed-group-picker-search i.bhi-times{cursor:pointer}::ng-deep .dropdown-container .footer{background:var(--background-main);display:flex;align-items:center;justify-content:space-between;padding:1rem}::ng-deep .dropdown-container .tabbed-group-picker-column-container{display:flex;flex-direction:row;-webkit-user-select:none;user-select:none}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column{display:flex;flex-direction:column;align-items:center}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left{border-right:1px solid #dbdbdb;justify-content:space-between}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left .clear-all-button{margin-bottom:.5em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav{overflow:auto}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab{min-height:3em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab>.novo-tab-link{max-width:100%;height:100%;display:flex;justify-content:space-between;align-items:center}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab.active .novo-tab-link{font-weight:400}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab.active:hover .novo-tab-link{font-weight:400;color:#4a89dc}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.left novo-nav>novo-tab:hover .novo-tab-link{font-weight:400;color:#000;opacity:1}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right{display:block;width:23em;overflow:hidden}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select{font-weight:500}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select .quick-select-label{padding:.7em 1.9em 0;background:#f5f5f5;text-transform:uppercase;font-size:.8em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .quick-select .quick-select-list .quick-select-item{background:#f5f5f5;padding:.5em .8em;border-bottom:none}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup cdk-virtual-scroll-viewport{height:27em;overflow-x:hidden}@media (max-height: 720px){::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup cdk-virtual-scroll-viewport{height:18em}}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right novo-optgroup novo-option:hover.novo-option-inert{background:var(--background-main, rgba(74, 137, 220, .1))}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9e9e9e;width:100%;height:27em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item i{padding-bottom:.2em;font-size:3em}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item .empty-item-main-message{font-weight:500;color:#3d464d}::ng-deep .dropdown-container .tabbed-group-picker-column-container .tabbed-group-picker-column.right .tabbed-group-picker-empty-item .empty-item-sub-message{font-size:.9em}\n"] }]
340
340
  }], ctorParameters: () => [{ type: i1.NovoLabelService }, { type: i0.ChangeDetectorRef }], propDecorators: { scrollableInstance: [{
@@ -368,8 +368,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
368
368
 
369
369
  // NG2
370
370
  class NovoTabbedGroupPickerModule {
371
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabbedGroupPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
372
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: NovoTabbedGroupPickerModule, declarations: [NovoTabbedGroupPickerElement], imports: [CommonModule,
371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabbedGroupPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
372
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: NovoTabbedGroupPickerModule, declarations: [NovoTabbedGroupPickerElement], imports: [CommonModule,
373
373
  FormsModule,
374
374
  ScrollingModule,
375
375
  NovoTabModule,
@@ -379,7 +379,7 @@ class NovoTabbedGroupPickerModule {
379
379
  NovoDropdownModule,
380
380
  NovoOptionModule,
381
381
  NovoCheckboxModule], exports: [NovoTabbedGroupPickerElement] }); }
382
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabbedGroupPickerModule, providers: [NovoLabelService], imports: [CommonModule,
382
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabbedGroupPickerModule, providers: [NovoLabelService], imports: [CommonModule,
383
383
  FormsModule,
384
384
  ScrollingModule,
385
385
  NovoTabModule,
@@ -390,7 +390,7 @@ class NovoTabbedGroupPickerModule {
390
390
  NovoOptionModule,
391
391
  NovoCheckboxModule] }); }
392
392
  }
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabbedGroupPickerModule, decorators: [{
393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabbedGroupPickerModule, decorators: [{
394
394
  type: NgModule,
395
395
  args: [{
396
396
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-tabbed-group-picker.mjs","sources":["../../../projects/novo-elements/src/elements/tabbed-group-picker/TabbedGroupPicker.ts","../../../projects/novo-elements/src/elements/tabbed-group-picker/TabbedGroupPicker.html","../../../projects/novo-elements/src/elements/tabbed-group-picker/TabbedGroupPicker.module.ts","../../../projects/novo-elements/src/elements/tabbed-group-picker/novo-elements-elements-tabbed-group-picker.ts"],"sourcesContent":["import { CdkScrollable } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { binarySearch, BooleanInput, Helpers } from 'novo-elements/utils';\nimport { NOVO_OPTION_PARENT_COMPONENT } from 'novo-elements/elements/common';\nimport { NovoDropdownElement } from 'novo-elements/elements/dropdown';\n\nexport type TabbedGroupPickerTab = {\n typeName: string;\n typeLabel: string;\n valueField: string;\n labelField: string;\n scrollOffset?: number;\n icon?: string;\n} & (ParentTab | ChildTab);\n\nexport type ParentTab = {\n childTypeName: string;\n data: Array<ParentOption>;\n};\n\ntype BaseOption = {\n selected?: boolean;\n indeterminate?: boolean;\n} & { [key: string]: any };\n\ntype ParentOption = BaseOption & {\n children: Option[];\n};\n\ntype Option = BaseOption | ParentOption;\n\nexport type ChildTab = {\n data: Array<{ selected?: boolean } & { [key: string]: any }>;\n};\n\nexport type TabbedGroupPickerQuickSelect = {\n label: string;\n selected?: boolean;\n childTypeName?: string;\n children?: (({ selected?: boolean } & { [key: string]: any }) | number)[];\n all?: boolean;\n};\n\nexport type QuickSelectConfig = { label: string; items: TabbedGroupPickerQuickSelect[] };\n\nexport type TabbedGroupPickerButtonConfig = {\n theme: string;\n side: string;\n icon: string;\n label: string;\n size?: string;\n};\n\n@Component({\n selector: 'novo-tabbed-group-picker',\n templateUrl: './TabbedGroupPicker.html',\n styleUrls: ['./TabbedGroupPicker.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }],\n standalone: false,\n})\nexport class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {\n @ViewChild('tabbedGroupPickerVirtualScrollViewport')\n private scrollableInstance: CdkScrollable;\n @ViewChild('inputElement')\n private inputElement: ElementRef<HTMLInputElement>;\n @ViewChild('dropdown')\n public dropdown: NovoDropdownElement;\n\n multiple = true;\n\n @Input() buttonConfig: TabbedGroupPickerButtonConfig;\n @Input() tabs: TabbedGroupPickerTab[];\n @Input() quickSelectConfig: QuickSelectConfig;\n @Input() showFooter = false;\n\n // In activation mode, no checkboxes are displayed, and only the selectionActivated event occurs.\n @BooleanInput()\n @Input() selectionEnabled = true;\n\n @Output() activation = new EventEmitter<any>();\n @Output() selectionChange = new EventEmitter<TabbedGroupPickerTab[]>();\n @Output() applyChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() cancelChange: EventEmitter<any> = new EventEmitter<any>();\n\n displayTabs: TabbedGroupPickerTab[];\n displayTabIndex: number = 0;\n\n filterText: BehaviorSubject<string> = new BehaviorSubject('');\n filterTextSubscription: Subscription;\n\n loading = true;\n showClearAll: boolean = false;\n\n appliedState: TabbedGroupPickerTab[];\n\n // Initial height based on 13 px font rendered in chrome. Actual height retrieved onDropdownToggled.\n scrollViewportHeight: number = 351;\n virtualScrollItemSize: number = 39;\n\n constructor(public labelService: NovoLabelService, private ref: ChangeDetectorRef) {}\n\n get displayTab(): TabbedGroupPickerTab {\n return this.displayTabs[this.displayTabIndex];\n }\n set displayTab(tab: TabbedGroupPickerTab) {\n this.displayTabIndex = this.tabs.map(({ typeName }) => typeName).indexOf(tab.typeName);\n }\n\n get minBufferPx() {\n return this.scrollViewportHeight; // render at least 2x the number of items visible (viewport + min buffer)\n }\n\n get maxBufferPx() {\n return 2 * this.scrollViewportHeight; // render at most 3x the number of items visible (viewport + max buffer)\n }\n\n ngOnInit(): void {\n this.loadValues();\n this.loading = false;\n this.filterTextSubscription = this.filterText.pipe(debounceTime(300)).subscribe({\n next: this.filter,\n });\n }\n\n ngOnDestroy(): void {\n if (this.filterTextSubscription) {\n this.filterTextSubscription.unsubscribe();\n }\n }\n\n loadValues() {\n this.setupDisplayData();\n this.createChildrenReferences();\n this.initializeDescendantSelection();\n this.updateParentsAndQuickSelect();\n this.updateClearAll();\n }\n\n changeTab(tab: TabbedGroupPickerTab) {\n this.displayTab = tab;\n if (this.scrollableInstance) {\n this.scrollableInstance.scrollTo({ behavior: 'auto', top: 0 });\n }\n }\n\n getPixelHeight(element: HTMLElement) {\n return Number(getComputedStyle(element, '').height.match(/(\\d+(\\.\\d+)?)px$/)[1]);\n }\n\n setupDisplayData(): void {\n // shallow copy here so that reassigning displayTabs[i].data doesn't mutate tabs[i].data\n // but both data values point to the same items\n this.displayTabs = this.tabs.map((tab) => ({ ...tab }));\n this.displayTab = this.tabs[0];\n this.updateAppliedState();\n }\n\n // Replace each parent's child object with a reference to the child to avoid\n // a child lookup for selected status; linking references allows M x N\n // time complexity instead of M x N^2\n createChildrenReferences(): void {\n this.tabs.forEach((tab) => {\n // would rather filter but TypeScript still wants a type narrowing here\n if ('childTypeName' in tab) {\n const childTab = this.tabs.find(({ typeName }) => typeName === tab.childTypeName);\n const compareFunction = this.makeCompareFunction(childTab.valueField);\n const warnFunction = this.makeWarningFunction(tab.typeName, childTab.typeName, childTab.valueField);\n const sortedChildren = childTab.data.slice().sort(compareFunction);\n\n tab.data\n .filter(({ children }) => children?.length)\n .forEach((parent: { children?: any[] }) =>\n this.replaceChildrenWithReferences(parent as ParentOption, sortedChildren, compareFunction, warnFunction),\n );\n }\n });\n if (this.quickSelectConfig) {\n this.quickSelectConfig.items\n .filter((parent) => 'all' in parent)\n .forEach((parent) => {\n parent.children = this.tabs.find(({ typeName }) => parent.childTypeName === typeName).data;\n });\n\n this.quickSelectConfig.items\n .filter((parent) => !('all' in parent))\n .forEach((parent) => {\n const childTab = this.tabs.find(({ typeName }) => typeName === parent.childTypeName);\n const compareFunction = this.makeCompareFunction(childTab.valueField);\n const warnFunction = this.makeWarningFunction(parent.label, childTab.typeName, childTab.valueField);\n const sortedChildren = childTab.data.slice().sort(compareFunction);\n\n this.replaceChildrenWithReferences(parent as ParentOption, sortedChildren, compareFunction, warnFunction);\n });\n }\n }\n\n makeCompareFunction<T>(key: string): (a: T | { [key: string]: T }, b: T | { [key: string]: T }) => 1 | -1 | 0 | undefined {\n return (a: T | { [key: string]: T }, b: T | { [key: string]: T }) => {\n const aValue: T = (a && a[key]) || a;\n const bValue: T = (b && b[key]) || b;\n\n if (aValue < bValue) {\n return -1;\n } else if (aValue > bValue) {\n return 1;\n } else if (aValue === bValue) {\n return 0;\n } else {\n return undefined;\n }\n };\n }\n\n replaceChildrenWithReferences(\n parent: { children: any[] },\n sortedData: ChildTab['data'],\n compareFunction: (a, b) => 1 | -1 | 0,\n warnFunction: (child) => void,\n ): void {\n if (Array.isArray(parent?.children)) {\n parent.children = parent.children\n .map((child) => binarySearch(child, sortedData, compareFunction) || warnFunction(child))\n .filter(Boolean); // since map can return undefined, remove undefined elements\n }\n }\n\n makeWarningFunction(parentLabel: string, childLabel: string, childValueField): (child) => void {\n return (child) => {\n const childValue = child[childValueField] || child;\n console.warn(`No ${childLabel} found with value ${childValue} for parent ${parentLabel}`);\n };\n }\n\n onDropdownToggle(event) {\n this.filterText.next('');\n this.inputElement.nativeElement?.focus();\n if (event) {\n this.scrollViewportHeight = this.getPixelHeight(this.scrollableInstance.getElementRef().nativeElement);\n this.virtualScrollItemSize = this.getPixelHeight(this.scrollableInstance.getElementRef().nativeElement.querySelector('novo-option'));\n // Emit a fake scroll event so the rendered items update\n this.scrollableInstance.getElementRef().nativeElement.dispatchEvent(new Event('scroll'));\n }\n }\n\n activateItem(item: any, tab?: TabbedGroupPickerTab): void {\n if (this.selectionEnabled) {\n item.selected = !item.selected;\n this.onItemToggled(item);\n }\n this.activation.emit({ ...item, scope: tab?.typeName || 'quickselect' });\n }\n\n onItemToggled(item: Option) {\n if (Array.isArray(item.children)) {\n this.updateDescendants(item.selected, item.children);\n }\n this.updateParentsAndQuickSelect();\n this.updateClearAll(item.selected);\n this.emitSelectedValues();\n this.ref.markForCheck();\n }\n\n initializeDescendantSelection() {\n this.tabs.forEach((tab) => {\n if ('childTypeName' in tab && tab.data?.length) {\n tab.data.forEach((parent) => {\n if (parent.selected && parent.children?.length) {\n parent.children.forEach((child) => {\n child.selected = true;\n });\n }\n });\n }\n });\n }\n\n updateDescendants(parentIsSelected: boolean, children: Option[]): void {\n children.forEach((item) => {\n if (parentIsSelected) {\n item.selected = true;\n } else {\n delete item.selected;\n }\n if (Array.isArray(item.children)) {\n this.updateDescendants(item.selected, item.children);\n }\n });\n }\n\n updateClearAll(itemWasJustSelected?: boolean) {\n if (!this.selectionEnabled) {\n this.showClearAll = false;\n } else {\n this.showClearAll = itemWasJustSelected\n ? true\n : this.tabs.some((tab) => {\n if ((tab as ParentTab).childTypeName) {\n return tab.data.some(({ selected, indeterminate }) => selected || indeterminate);\n } else {\n return tab.data.some(({ selected }) => selected);\n }\n });\n }\n }\n\n updateParentsAndQuickSelect(): void {\n // mutate here to avoid dereferencing the objects in displayTabs\n this.tabs\n .filter((tab) => 'childTypeName' in tab && !!tab.childTypeName)\n .forEach((tab) => {\n const parents = tab.data.filter(({ children }: { children?: any[] }) => children?.length);\n\n parents.forEach((parent: ParentOption) => {\n ['indeterminate', 'selected'].forEach((selectedStateOption) => delete parent[selectedStateOption]);\n\n const selectedState = this.getSelectedState(parent.children);\n if (selectedState) {\n parent[selectedState] = true;\n }\n });\n });\n\n if (this.quickSelectConfig) {\n this.quickSelectConfig.items.forEach((quickSelect) => {\n delete quickSelect.selected;\n const selectedState = this.getSelectedState(quickSelect.children as (Option)[]);\n if (selectedState) {\n quickSelect[selectedState] = true;\n }\n });\n }\n }\n\n getSelectedState = (childArray: Option[]): 'selected' | 'indeterminate' | undefined => {\n if (!Array.isArray(childArray)) {\n return undefined;\n }\n const numberOfSelectedItems = childArray.filter(({ selected }) => selected).length;\n if (!numberOfSelectedItems) {\n return undefined;\n }\n return numberOfSelectedItems === childArray.length ? 'selected' : 'indeterminate';\n };\n\n getSelectedValues(): TabbedGroupPickerTab[] {\n return this.tabs.map((tab) => ({\n ...tab,\n data: tab.data.filter(({ selected }) => selected),\n }));\n }\n\n emitSelectedValues() {\n this.selectionChange.emit(this.getSelectedValues());\n }\n\n updateAppliedState() {\n this.appliedState = Helpers.deepClone(this.displayTabs);\n }\n\n apply() {\n this.updateAppliedState();\n this.applyChange.emit(this.getSelectedValues());\n this.dropdown.closePanel();\n }\n\n cancel() {\n this.revertState();\n this.cancelChange.emit(this.tabs);\n this.ref.markForCheck();\n this.dropdown.closePanel();\n }\n\n revertState() {\n this.tabs = Helpers.deepClone(this.appliedState);\n this.loadValues();\n }\n\n deselectEverything(event) {\n Helpers.swallowEvent(event);\n this.showClearAll = false;\n if (this.quickSelectConfig) {\n this.quickSelectConfig.items.forEach((quickSelect) => {\n delete quickSelect.selected;\n });\n }\n this.tabs.forEach((tab) => {\n if ((tab as ParentTab).childTypeName) {\n tab.data.forEach((item) => {\n delete item.selected;\n delete item.indeterminate;\n item.children.forEach((child) => delete child.selected);\n });\n } else {\n (tab as ChildTab).data.forEach((item) => delete item.selected);\n }\n });\n this.emitSelectedValues();\n this.ref.markForCheck();\n }\n\n onClearFilter(event) {\n Helpers.swallowEvent(event);\n this.filterText.next('');\n }\n\n onFilter(event: { target: { value: string } }) {\n this.filterText.next(event.target.value);\n }\n\n filter = (searchTerm: string) => {\n this.displayTabs.forEach(\n (displayTab, i) =>\n (displayTab.data = this.tabs[i].data.filter((item) =>\n item[displayTab.labelField].toLowerCase().includes(searchTerm.toLowerCase()) ||\n item[displayTab.valueField]?.toString().toLowerCase().includes(searchTerm.toLowerCase()),\n )),\n );\n this.ref.markForCheck();\n };\n}\n","<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple #dropdown>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [size]=\"buttonConfig.size\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <ng-content></ng-content>\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\" (keydown)=\"dropdown._handleKeydown($event)\">\n <input #inputElement type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\" (keydown.space)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\" (keydown)=\"dropdown._handleKeydown($event)\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll && !showFooter\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\" (keydown.space)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"quickSelect.selected\"\n (click)=\"activateItem(quickSelect)\"\n (keydown.space)=\"activateItem(quickSelect)\"\n novoInert>\n {{quickSelect.label}}\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [attr.data-automation-value]=\"item[displayTab.valueField]\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"item.selected\"\n (click)=\"activateItem(item, displayTab)\"\n (keydown.space)=\"activateItem(item, displayTab)\"\n novoInert>\n {{item[displayTab.labelField]}}\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"footer\" *ngIf=\"showFooter\">\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"clear-all-button\"\n *ngIf=\"showClearAll\"\n theme=\"dialogue\"\n icon=\"times\"\n side=\"right\"\n color=\"grapefruit\"\n (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"cancel-button\"\n marginRight=\"1rem\"\n theme=\"dialogue\"\n (click)=\"cancel()\">{{ labelService.cancel }}</novo-button>\n <novo-button\n class=\"save-button\"\n theme=\"primary\"\n color=\"primary\"\n (click)=\"apply()\">{{ labelService.apply }}</novo-button>\n </div>\n </div>\n</novo-dropdown>","// NG2\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCheckboxModule } from 'novo-elements/elements/checkbox';\nimport { NovoOptionModule } from 'novo-elements/elements/common';\nimport { NovoDropdownModule } from 'novo-elements/elements/dropdown';\nimport { NovoFormExtrasModule } from 'novo-elements/elements/form';\nimport { NovoListModule } from 'novo-elements/elements/list';\nimport { NovoTabModule } from 'novo-elements/elements/tabs';\nimport { NovoTabbedGroupPickerElement } from './TabbedGroupPicker';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ScrollingModule,\n NovoTabModule,\n NovoListModule,\n NovoFormExtrasModule,\n NovoButtonModule,\n NovoDropdownModule,\n NovoOptionModule,\n NovoCheckboxModule,\n ],\n providers: [NovoLabelService],\n declarations: [NovoTabbedGroupPickerElement],\n exports: [NovoTabbedGroupPickerElement],\n})\nexport class NovoTabbedGroupPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2Ea,4BAA4B,CAAA;IAuCvC,WAAmB,CAAA,YAA8B,EAAU,GAAsB,EAAA;QAA9D,IAAY,CAAA,YAAA,GAAZ,YAAY;QAA4B,IAAG,CAAA,GAAA,GAAH,GAAG;QA/B9D,IAAQ,CAAA,QAAA,GAAG,IAAI;QAKN,IAAU,CAAA,UAAA,GAAG,KAAK;;QAIlB,IAAgB,CAAA,gBAAA,GAAG,IAAI;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO;AACpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAA0B;AAC5D,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AACxD,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAO;QAGnE,IAAe,CAAA,eAAA,GAAW,CAAC;AAE3B,QAAA,IAAA,CAAA,UAAU,GAA4B,IAAI,eAAe,CAAC,EAAE,CAAC;QAG7D,IAAO,CAAA,OAAA,GAAG,IAAI;QACd,IAAY,CAAA,YAAA,GAAY,KAAK;;QAK7B,IAAoB,CAAA,oBAAA,GAAW,GAAG;QAClC,IAAqB,CAAA,qBAAA,GAAW,EAAE;AA4OlC,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAoB,KAA8C;YACpF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC9B,gBAAA,OAAO,SAAS;;AAElB,YAAA,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,MAAM;YAClF,IAAI,CAAC,qBAAqB,EAAE;AAC1B,gBAAA,OAAO,SAAS;;AAElB,YAAA,OAAO,qBAAqB,KAAK,UAAU,CAAC,MAAM,GAAG,UAAU,GAAG,eAAe;AACnF,SAAC;AAmED,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,UAAkB,KAAI;YAC9B,IAAI,CAAC,WAAW,CAAC,OAAO,CACtB,CAAC,UAAU,EAAE,CAAC,MACX,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC5E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CACzF,CAAC,CACL;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,SAAC;;AA7TD,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;;IAE/C,IAAI,UAAU,CAAC,GAAyB,EAAA;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;;AAGxF,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC;;AAGnC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;;IAGvC,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,IAAI,EAAE,IAAI,CAAC,MAAM;AAClB,SAAA,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;;;IAI7C,UAAU,GAAA;QACR,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,6BAA6B,EAAE;QACpC,IAAI,CAAC,2BAA2B,EAAE;QAClC,IAAI,CAAC,cAAc,EAAE;;AAGvB,IAAA,SAAS,CAAC,GAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG;AACrB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;;;AAIlE,IAAA,cAAc,CAAC,OAAoB,EAAA;AACjC,QAAA,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;;IAGlF,gBAAgB,GAAA;;;QAGd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,kBAAkB,EAAE;;;;;IAM3B,wBAAwB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;AAExB,YAAA,IAAI,eAAe,IAAI,GAAG,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,KAAK,GAAG,CAAC,aAAa,CAAC;gBACjF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACrE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;AACnG,gBAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;AAElE,gBAAA,GAAG,CAAC;qBACD,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM;AACzC,qBAAA,OAAO,CAAC,CAAC,MAA4B,KACpC,IAAI,CAAC,6BAA6B,CAAC,MAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC,CAC1G;;AAEP,SAAC,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC;iBACpB,MAAM,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM;AAClC,iBAAA,OAAO,CAAC,CAAC,MAAM,KAAI;gBAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,IAAI;AAC5F,aAAC,CAAC;YAEJ,IAAI,CAAC,iBAAiB,CAAC;AACpB,iBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC;AACrC,iBAAA,OAAO,CAAC,CAAC,MAAM,KAAI;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,KAAK,MAAM,CAAC,aAAa,CAAC;gBACpF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACrE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;AACnG,gBAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;gBAElE,IAAI,CAAC,6BAA6B,CAAC,MAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC;AAC3G,aAAC,CAAC;;;AAIR,IAAA,mBAAmB,CAAI,GAAW,EAAA;AAChC,QAAA,OAAO,CAAC,CAA2B,EAAE,CAA2B,KAAI;AAClE,YAAA,MAAM,MAAM,GAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,YAAA,MAAM,MAAM,GAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAEpC,YAAA,IAAI,MAAM,GAAG,MAAM,EAAE;gBACnB,OAAO,CAAC,CAAC;;AACJ,iBAAA,IAAI,MAAM,GAAG,MAAM,EAAE;AAC1B,gBAAA,OAAO,CAAC;;AACH,iBAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AAC5B,gBAAA,OAAO,CAAC;;iBACH;AACL,gBAAA,OAAO,SAAS;;AAEpB,SAAC;;AAGH,IAAA,6BAA6B,CAC3B,MAA2B,EAC3B,UAA4B,EAC5B,eAAqC,EACrC,YAA6B,EAAA;QAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AACnC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;AACtB,iBAAA,GAAG,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC;AACtF,iBAAA,MAAM,CAAC,OAAO,CAAC,CAAC;;;AAIvB,IAAA,mBAAmB,CAAC,WAAmB,EAAE,UAAkB,EAAE,eAAe,EAAA;QAC1E,OAAO,CAAC,KAAK,KAAI;YACf,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK;YAClD,OAAO,CAAC,IAAI,CAAC,CAAM,GAAA,EAAA,UAAU,CAAqB,kBAAA,EAAA,UAAU,CAAe,YAAA,EAAA,WAAW,CAAE,CAAA,CAAC;AAC3F,SAAC;;AAGH,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE;QACxC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC;YACtG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;;AAEpI,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;;;IAI5F,YAAY,CAAC,IAAS,EAAE,GAA0B,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC9B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;AAE1B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,IAAI,aAAa,EAAE,CAAC;;AAG1E,IAAA,aAAa,CAAC,IAAY,EAAA;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;;QAEtD,IAAI,CAAC,2BAA2B,EAAE;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;IAGzB,6BAA6B,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACxB,IAAI,eAAe,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE;gBAC9C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;oBAC1B,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;wBAC9C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAChC,4BAAA,KAAK,CAAC,QAAQ,GAAG,IAAI;AACvB,yBAAC,CAAC;;AAEN,iBAAC,CAAC;;AAEN,SAAC,CAAC;;IAGJ,iBAAiB,CAAC,gBAAyB,EAAE,QAAkB,EAAA;AAC7D,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACxB,IAAI,gBAAgB,EAAE;AACpB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;iBACf;gBACL,OAAO,IAAI,CAAC,QAAQ;;YAEtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;;AAExD,SAAC,CAAC;;AAGJ,IAAA,cAAc,CAAC,mBAA6B,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;aACpB;YACP,IAAI,CAAC,YAAY,GAAG;AAClB,kBAAE;kBACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AACrB,oBAAA,IAAK,GAAiB,CAAC,aAAa,EAAE;AACpC,wBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,QAAQ,IAAI,aAAa,CAAC;;yBAC3E;AACL,wBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC;;AAEpD,iBAAC,CAAC;;;IAIR,2BAA2B,GAAA;;AAEzB,QAAA,IAAI,CAAC;AACF,aAAA,MAAM,CAAC,CAAC,GAAG,KAAK,eAAe,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa;AAC7D,aAAA,OAAO,CAAC,CAAC,GAAG,KAAI;AACf,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAwB,KAAK,QAAQ,EAAE,MAAM,CAAC;AAEzF,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAoB,KAAI;AACvC,gBAAA,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBAElG,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC5D,IAAI,aAAa,EAAE;AACjB,oBAAA,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI;;AAEhC,aAAC,CAAC;AACJ,SAAC,CAAC;AAEJ,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;gBACnD,OAAO,WAAW,CAAC,QAAQ;gBAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAsB,CAAC;gBAC/E,IAAI,aAAa,EAAE;AACjB,oBAAA,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI;;AAErC,aAAC,CAAC;;;IAeN,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC7B,YAAA,GAAG,GAAG;AACN,YAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC;AAClD,SAAA,CAAC,CAAC;;IAGL,kBAAkB,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;;IAGrD,kBAAkB,GAAA;QAChB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;;IAGzD,KAAK,GAAA;QACH,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;;IAG5B,MAAM,GAAA;QACJ,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;;IAG5B,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE;;AAGnB,IAAA,kBAAkB,CAAC,KAAK,EAAA;AACtB,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;gBACnD,OAAO,WAAW,CAAC,QAAQ;AAC7B,aAAC,CAAC;;QAEJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACxB,YAAA,IAAK,GAAiB,CAAC,aAAa,EAAE;gBACpC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;oBACxB,OAAO,IAAI,CAAC,QAAQ;oBACpB,OAAO,IAAI,CAAC,aAAa;AACzB,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,QAAQ,CAAC;AACzD,iBAAC,CAAC;;iBACG;AACJ,gBAAA,GAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC;;AAElE,SAAC,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,aAAa,CAAC,KAAK,EAAA;AACjB,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;;AAG1B,IAAA,QAAQ,CAAC,KAAoC,EAAA;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;;+GA1V/B,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAH1B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,8VCxErG,uhJA8FgB,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;ADFL,UAAA,CAAA;AADR,IAAA,YAAY,EAAE;;AACkB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;4FAjBtB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,mBAGnB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAA,4BAA8B,EAAE,CAAC,cACrF,KAAK,EAAA,QAAA,EAAA,uhJAAA,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA;qHAIX,kBAAkB,EAAA,CAAA;sBADzB,SAAS;uBAAC,wCAAwC;gBAG3C,YAAY,EAAA,CAAA;sBADnB,SAAS;uBAAC,cAAc;gBAGlB,QAAQ,EAAA,CAAA;sBADd,SAAS;uBAAC,UAAU;gBAKZ,YAAY,EAAA,CAAA;sBAApB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAIQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAES,UAAU,EAAA,CAAA;sBAAnB;gBACS,eAAe,EAAA,CAAA;sBAAxB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBACS,YAAY,EAAA,CAAA;sBAArB;;;AEjGH;MAiCa,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAA3B,2BAA2B,EAAA,YAAA,EAAA,CAHvB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAZzC,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;AAChB,YAAA,kBAAkB,aAIV,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAE3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,EAJ3B,SAAA,EAAA,CAAC,gBAAgB,CAAC,YAX3B,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;YAChB,kBAAkB,CAAA,EAAA,CAAA,CAAA;;4FAMT,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAjBvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,oBAAoB;wBACpB,gBAAgB;wBAChB,kBAAkB;wBAClB,gBAAgB;wBAChB,kBAAkB;AACnB,qBAAA;oBACD,SAAS,EAAE,CAAC,gBAAgB,CAAC;oBAC7B,YAAY,EAAE,CAAC,4BAA4B,CAAC;oBAC5C,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA;;;AChCD;;AAEG;;;;"}
1
+ {"version":3,"file":"novo-elements-elements-tabbed-group-picker.mjs","sources":["../../../projects/novo-elements/src/elements/tabbed-group-picker/TabbedGroupPicker.ts","../../../projects/novo-elements/src/elements/tabbed-group-picker/TabbedGroupPicker.html","../../../projects/novo-elements/src/elements/tabbed-group-picker/TabbedGroupPicker.module.ts","../../../projects/novo-elements/src/elements/tabbed-group-picker/novo-elements-elements-tabbed-group-picker.ts"],"sourcesContent":["import { CdkScrollable } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { binarySearch, BooleanInput, Helpers } from 'novo-elements/utils';\nimport { NOVO_OPTION_PARENT_COMPONENT } from 'novo-elements/elements/common';\nimport { NovoDropdownElement } from 'novo-elements/elements/dropdown';\n\nexport type TabbedGroupPickerTab = {\n typeName: string;\n typeLabel: string;\n valueField: string;\n labelField: string;\n scrollOffset?: number;\n icon?: string;\n} & (ParentTab | ChildTab);\n\nexport type ParentTab = {\n childTypeName: string;\n data: Array<ParentOption>;\n};\n\ntype BaseOption = {\n selected?: boolean;\n indeterminate?: boolean;\n} & { [key: string]: any };\n\ntype ParentOption = BaseOption & {\n children: Option[];\n};\n\ntype Option = BaseOption | ParentOption;\n\nexport type ChildTab = {\n data: Array<{ selected?: boolean } & { [key: string]: any }>;\n};\n\nexport type TabbedGroupPickerQuickSelect = {\n label: string;\n selected?: boolean;\n childTypeName?: string;\n children?: (({ selected?: boolean } & { [key: string]: any }) | number)[];\n all?: boolean;\n};\n\nexport type QuickSelectConfig = { label: string; items: TabbedGroupPickerQuickSelect[] };\n\nexport type TabbedGroupPickerButtonConfig = {\n theme: string;\n side: string;\n icon: string;\n label: string;\n size?: string;\n};\n\n@Component({\n selector: 'novo-tabbed-group-picker',\n templateUrl: './TabbedGroupPicker.html',\n styleUrls: ['./TabbedGroupPicker.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }],\n standalone: false,\n})\nexport class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {\n @ViewChild('tabbedGroupPickerVirtualScrollViewport')\n private scrollableInstance: CdkScrollable;\n @ViewChild('inputElement')\n private inputElement: ElementRef<HTMLInputElement>;\n @ViewChild('dropdown')\n public dropdown: NovoDropdownElement;\n\n multiple = true;\n\n @Input() buttonConfig: TabbedGroupPickerButtonConfig;\n @Input() tabs: TabbedGroupPickerTab[];\n @Input() quickSelectConfig: QuickSelectConfig;\n @Input() showFooter = false;\n\n // In activation mode, no checkboxes are displayed, and only the selectionActivated event occurs.\n @BooleanInput()\n @Input() selectionEnabled = true;\n\n @Output() activation = new EventEmitter<any>();\n @Output() selectionChange = new EventEmitter<TabbedGroupPickerTab[]>();\n @Output() applyChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() cancelChange: EventEmitter<any> = new EventEmitter<any>();\n\n displayTabs: TabbedGroupPickerTab[];\n displayTabIndex: number = 0;\n\n filterText: BehaviorSubject<string> = new BehaviorSubject('');\n filterTextSubscription: Subscription;\n\n loading = true;\n showClearAll: boolean = false;\n\n appliedState: TabbedGroupPickerTab[];\n\n // Initial height based on 13 px font rendered in chrome. Actual height retrieved onDropdownToggled.\n scrollViewportHeight: number = 351;\n virtualScrollItemSize: number = 39;\n\n constructor(public labelService: NovoLabelService, private ref: ChangeDetectorRef) {}\n\n get displayTab(): TabbedGroupPickerTab {\n return this.displayTabs[this.displayTabIndex];\n }\n set displayTab(tab: TabbedGroupPickerTab) {\n this.displayTabIndex = this.tabs.map(({ typeName }) => typeName).indexOf(tab.typeName);\n }\n\n get minBufferPx() {\n return this.scrollViewportHeight; // render at least 2x the number of items visible (viewport + min buffer)\n }\n\n get maxBufferPx() {\n return 2 * this.scrollViewportHeight; // render at most 3x the number of items visible (viewport + max buffer)\n }\n\n ngOnInit(): void {\n this.loadValues();\n this.loading = false;\n this.filterTextSubscription = this.filterText.pipe(debounceTime(300)).subscribe({\n next: this.filter,\n });\n }\n\n ngOnDestroy(): void {\n if (this.filterTextSubscription) {\n this.filterTextSubscription.unsubscribe();\n }\n }\n\n loadValues() {\n this.setupDisplayData();\n this.createChildrenReferences();\n this.initializeDescendantSelection();\n this.updateParentsAndQuickSelect();\n this.updateClearAll();\n }\n\n changeTab(tab: TabbedGroupPickerTab) {\n this.displayTab = tab;\n if (this.scrollableInstance) {\n this.scrollableInstance.scrollTo({ behavior: 'auto', top: 0 });\n }\n }\n\n getPixelHeight(element: HTMLElement) {\n return Number(getComputedStyle(element, '').height.match(/(\\d+(\\.\\d+)?)px$/)[1]);\n }\n\n setupDisplayData(): void {\n // shallow copy here so that reassigning displayTabs[i].data doesn't mutate tabs[i].data\n // but both data values point to the same items\n this.displayTabs = this.tabs.map((tab) => ({ ...tab }));\n this.displayTab = this.tabs[0];\n this.updateAppliedState();\n }\n\n // Replace each parent's child object with a reference to the child to avoid\n // a child lookup for selected status; linking references allows M x N\n // time complexity instead of M x N^2\n createChildrenReferences(): void {\n this.tabs.forEach((tab) => {\n // would rather filter but TypeScript still wants a type narrowing here\n if ('childTypeName' in tab) {\n const childTab = this.tabs.find(({ typeName }) => typeName === tab.childTypeName);\n const compareFunction = this.makeCompareFunction(childTab.valueField);\n const warnFunction = this.makeWarningFunction(tab.typeName, childTab.typeName, childTab.valueField);\n const sortedChildren = childTab.data.slice().sort(compareFunction);\n\n tab.data\n .filter(({ children }) => children?.length)\n .forEach((parent: { children?: any[] }) =>\n this.replaceChildrenWithReferences(parent as ParentOption, sortedChildren, compareFunction, warnFunction),\n );\n }\n });\n if (this.quickSelectConfig) {\n this.quickSelectConfig.items\n .filter((parent) => 'all' in parent)\n .forEach((parent) => {\n parent.children = this.tabs.find(({ typeName }) => parent.childTypeName === typeName).data;\n });\n\n this.quickSelectConfig.items\n .filter((parent) => !('all' in parent))\n .forEach((parent) => {\n const childTab = this.tabs.find(({ typeName }) => typeName === parent.childTypeName);\n const compareFunction = this.makeCompareFunction(childTab.valueField);\n const warnFunction = this.makeWarningFunction(parent.label, childTab.typeName, childTab.valueField);\n const sortedChildren = childTab.data.slice().sort(compareFunction);\n\n this.replaceChildrenWithReferences(parent as ParentOption, sortedChildren, compareFunction, warnFunction);\n });\n }\n }\n\n makeCompareFunction<T>(key: string): (a: T | { [key: string]: T }, b: T | { [key: string]: T }) => 1 | -1 | 0 | undefined {\n return (a: T | { [key: string]: T }, b: T | { [key: string]: T }) => {\n const aValue: T = (a && a[key]) || a;\n const bValue: T = (b && b[key]) || b;\n\n if (aValue < bValue) {\n return -1;\n } else if (aValue > bValue) {\n return 1;\n } else if (aValue === bValue) {\n return 0;\n } else {\n return undefined;\n }\n };\n }\n\n replaceChildrenWithReferences(\n parent: { children: any[] },\n sortedData: ChildTab['data'],\n compareFunction: (a, b) => 1 | -1 | 0,\n warnFunction: (child) => void,\n ): void {\n if (Array.isArray(parent?.children)) {\n parent.children = parent.children\n .map((child) => binarySearch(child, sortedData, compareFunction) || warnFunction(child))\n .filter(Boolean); // since map can return undefined, remove undefined elements\n }\n }\n\n makeWarningFunction(parentLabel: string, childLabel: string, childValueField): (child) => void {\n return (child) => {\n const childValue = child[childValueField] || child;\n console.warn(`No ${childLabel} found with value ${childValue} for parent ${parentLabel}`);\n };\n }\n\n onDropdownToggle(event) {\n this.filterText.next('');\n this.inputElement.nativeElement?.focus();\n if (event) {\n this.scrollViewportHeight = this.getPixelHeight(this.scrollableInstance.getElementRef().nativeElement);\n this.virtualScrollItemSize = this.getPixelHeight(this.scrollableInstance.getElementRef().nativeElement.querySelector('novo-option'));\n // Emit a fake scroll event so the rendered items update\n this.scrollableInstance.getElementRef().nativeElement.dispatchEvent(new Event('scroll'));\n }\n }\n\n activateItem(item: any, tab?: TabbedGroupPickerTab): void {\n if (this.selectionEnabled) {\n item.selected = !item.selected;\n this.onItemToggled(item);\n }\n this.activation.emit({ ...item, scope: tab?.typeName || 'quickselect' });\n }\n\n onItemToggled(item: Option) {\n if (Array.isArray(item.children)) {\n this.updateDescendants(item.selected, item.children);\n }\n this.updateParentsAndQuickSelect();\n this.updateClearAll(item.selected);\n this.emitSelectedValues();\n this.ref.markForCheck();\n }\n\n initializeDescendantSelection() {\n this.tabs.forEach((tab) => {\n if ('childTypeName' in tab && tab.data?.length) {\n tab.data.forEach((parent) => {\n if (parent.selected && parent.children?.length) {\n parent.children.forEach((child) => {\n child.selected = true;\n });\n }\n });\n }\n });\n }\n\n updateDescendants(parentIsSelected: boolean, children: Option[]): void {\n children.forEach((item) => {\n if (parentIsSelected) {\n item.selected = true;\n } else {\n delete item.selected;\n }\n if (Array.isArray(item.children)) {\n this.updateDescendants(item.selected, item.children);\n }\n });\n }\n\n updateClearAll(itemWasJustSelected?: boolean) {\n if (!this.selectionEnabled) {\n this.showClearAll = false;\n } else {\n this.showClearAll = itemWasJustSelected\n ? true\n : this.tabs.some((tab) => {\n if ((tab as ParentTab).childTypeName) {\n return tab.data.some(({ selected, indeterminate }) => selected || indeterminate);\n } else {\n return tab.data.some(({ selected }) => selected);\n }\n });\n }\n }\n\n updateParentsAndQuickSelect(): void {\n // mutate here to avoid dereferencing the objects in displayTabs\n this.tabs\n .filter((tab) => 'childTypeName' in tab && !!tab.childTypeName)\n .forEach((tab) => {\n const parents = tab.data.filter(({ children }: { children?: any[] }) => children?.length);\n\n parents.forEach((parent: ParentOption) => {\n ['indeterminate', 'selected'].forEach((selectedStateOption) => delete parent[selectedStateOption]);\n\n const selectedState = this.getSelectedState(parent.children);\n if (selectedState) {\n parent[selectedState] = true;\n }\n });\n });\n\n if (this.quickSelectConfig) {\n this.quickSelectConfig.items.forEach((quickSelect) => {\n delete quickSelect.selected;\n const selectedState = this.getSelectedState(quickSelect.children as (Option)[]);\n if (selectedState) {\n quickSelect[selectedState] = true;\n }\n });\n }\n }\n\n getSelectedState = (childArray: Option[]): 'selected' | 'indeterminate' | undefined => {\n if (!Array.isArray(childArray)) {\n return undefined;\n }\n const numberOfSelectedItems = childArray.filter(({ selected }) => selected).length;\n if (!numberOfSelectedItems) {\n return undefined;\n }\n return numberOfSelectedItems === childArray.length ? 'selected' : 'indeterminate';\n };\n\n getSelectedValues(): TabbedGroupPickerTab[] {\n return this.tabs.map((tab) => ({\n ...tab,\n data: tab.data.filter(({ selected }) => selected),\n }));\n }\n\n emitSelectedValues() {\n this.selectionChange.emit(this.getSelectedValues());\n }\n\n updateAppliedState() {\n this.appliedState = Helpers.deepClone(this.displayTabs);\n }\n\n apply() {\n this.updateAppliedState();\n this.applyChange.emit(this.getSelectedValues());\n this.dropdown.closePanel();\n }\n\n cancel() {\n this.revertState();\n this.cancelChange.emit(this.tabs);\n this.ref.markForCheck();\n this.dropdown.closePanel();\n }\n\n revertState() {\n this.tabs = Helpers.deepClone(this.appliedState);\n this.loadValues();\n }\n\n deselectEverything(event) {\n Helpers.swallowEvent(event);\n this.showClearAll = false;\n if (this.quickSelectConfig) {\n this.quickSelectConfig.items.forEach((quickSelect) => {\n delete quickSelect.selected;\n });\n }\n this.tabs.forEach((tab) => {\n if ((tab as ParentTab).childTypeName) {\n tab.data.forEach((item) => {\n delete item.selected;\n delete item.indeterminate;\n item.children.forEach((child) => delete child.selected);\n });\n } else {\n (tab as ChildTab).data.forEach((item) => delete item.selected);\n }\n });\n this.emitSelectedValues();\n this.ref.markForCheck();\n }\n\n onClearFilter(event) {\n Helpers.swallowEvent(event);\n this.filterText.next('');\n }\n\n onFilter(event: { target: { value: string } }) {\n this.filterText.next(event.target.value);\n }\n\n filter = (searchTerm: string) => {\n this.displayTabs.forEach(\n (displayTab, i) =>\n (displayTab.data = this.tabs[i].data.filter((item) =>\n item[displayTab.labelField].toLowerCase().includes(searchTerm.toLowerCase()) ||\n item[displayTab.valueField]?.toString().toLowerCase().includes(searchTerm.toLowerCase()),\n )),\n );\n this.ref.markForCheck();\n };\n}\n","<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple #dropdown>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [size]=\"buttonConfig.size\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <ng-content></ng-content>\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\" (keydown)=\"dropdown._handleKeydown($event)\">\n <input #inputElement type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\" (keydown.space)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\" (keydown)=\"dropdown._handleKeydown($event)\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll && !showFooter\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\" (keydown.space)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"quickSelect.selected\"\n (click)=\"activateItem(quickSelect)\"\n (keydown.space)=\"activateItem(quickSelect)\"\n novoInert>\n {{quickSelect.label}}\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [attr.data-automation-value]=\"item[displayTab.valueField]\"\n [allowSelection]=\"selectionEnabled\"\n [selected]=\"item.selected\"\n (click)=\"activateItem(item, displayTab)\"\n (keydown.space)=\"activateItem(item, displayTab)\"\n novoInert>\n {{item[displayTab.labelField]}}\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"footer\" *ngIf=\"showFooter\">\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"clear-all-button\"\n *ngIf=\"showClearAll\"\n theme=\"dialogue\"\n icon=\"times\"\n side=\"right\"\n color=\"grapefruit\"\n (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"save-cancel-button-container\">\n <novo-button\n class=\"cancel-button\"\n marginRight=\"1rem\"\n theme=\"dialogue\"\n (click)=\"cancel()\">{{ labelService.cancel }}</novo-button>\n <novo-button\n class=\"save-button\"\n theme=\"primary\"\n color=\"primary\"\n (click)=\"apply()\">{{ labelService.apply }}</novo-button>\n </div>\n </div>\n</novo-dropdown>","// NG2\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCheckboxModule } from 'novo-elements/elements/checkbox';\nimport { NovoOptionModule } from 'novo-elements/elements/common';\nimport { NovoDropdownModule } from 'novo-elements/elements/dropdown';\nimport { NovoFormExtrasModule } from 'novo-elements/elements/form';\nimport { NovoListModule } from 'novo-elements/elements/list';\nimport { NovoTabModule } from 'novo-elements/elements/tabs';\nimport { NovoTabbedGroupPickerElement } from './TabbedGroupPicker';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ScrollingModule,\n NovoTabModule,\n NovoListModule,\n NovoFormExtrasModule,\n NovoButtonModule,\n NovoDropdownModule,\n NovoOptionModule,\n NovoCheckboxModule,\n ],\n providers: [NovoLabelService],\n declarations: [NovoTabbedGroupPickerElement],\n exports: [NovoTabbedGroupPickerElement],\n})\nexport class NovoTabbedGroupPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2Ea,4BAA4B,CAAA;IAuCvC,WAAA,CAAmB,YAA8B,EAAU,GAAsB,EAAA;QAA9D,IAAA,CAAA,YAAY,GAAZ,YAAY;QAA4B,IAAA,CAAA,GAAG,GAAH,GAAG;QA/B9D,IAAA,CAAA,QAAQ,GAAG,IAAI;QAKN,IAAA,CAAA,UAAU,GAAG,KAAK;;QAIlB,IAAA,CAAA,gBAAgB,GAAG,IAAI;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO;AACpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAA0B;AAC5D,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AACxD,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAO;QAGnE,IAAA,CAAA,eAAe,GAAW,CAAC;AAE3B,QAAA,IAAA,CAAA,UAAU,GAA4B,IAAI,eAAe,CAAC,EAAE,CAAC;QAG7D,IAAA,CAAA,OAAO,GAAG,IAAI;QACd,IAAA,CAAA,YAAY,GAAY,KAAK;;QAK7B,IAAA,CAAA,oBAAoB,GAAW,GAAG;QAClC,IAAA,CAAA,qBAAqB,GAAW,EAAE;AA4OlC,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAoB,KAA8C;YACpF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC9B,gBAAA,OAAO,SAAS;YAClB;AACA,YAAA,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,MAAM;YAClF,IAAI,CAAC,qBAAqB,EAAE;AAC1B,gBAAA,OAAO,SAAS;YAClB;AACA,YAAA,OAAO,qBAAqB,KAAK,UAAU,CAAC,MAAM,GAAG,UAAU,GAAG,eAAe;AACnF,QAAA,CAAC;AAmED,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,UAAkB,KAAI;YAC9B,IAAI,CAAC,WAAW,CAAC,OAAO,CACtB,CAAC,UAAU,EAAE,CAAC,MACX,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC5E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CACzF,CAAC,CACL;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,QAAA,CAAC;IA/TmF;AAEpF,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;IAC/C;IACA,IAAI,UAAU,CAAC,GAAyB,EAAA;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACxF;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;IACvC;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,IAAI,EAAE,IAAI,CAAC,MAAM;AAClB,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;QAC3C;IACF;IAEA,UAAU,GAAA;QACR,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,6BAA6B,EAAE;QACpC,IAAI,CAAC,2BAA2B,EAAE;QAClC,IAAI,CAAC,cAAc,EAAE;IACvB;AAEA,IAAA,SAAS,CAAC,GAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG;AACrB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAChE;IACF;AAEA,IAAA,cAAc,CAAC,OAAoB,EAAA;AACjC,QAAA,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF;IAEA,gBAAgB,GAAA;;;QAGd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,kBAAkB,EAAE;IAC3B;;;;IAKA,wBAAwB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;AAExB,YAAA,IAAI,eAAe,IAAI,GAAG,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,KAAK,GAAG,CAAC,aAAa,CAAC;gBACjF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACrE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;AACnG,gBAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;AAElE,gBAAA,GAAG,CAAC;qBACD,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM;AACzC,qBAAA,OAAO,CAAC,CAAC,MAA4B,KACpC,IAAI,CAAC,6BAA6B,CAAC,MAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC,CAC1G;YACL;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC;iBACpB,MAAM,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM;AAClC,iBAAA,OAAO,CAAC,CAAC,MAAM,KAAI;gBAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,IAAI;AAC5F,YAAA,CAAC,CAAC;YAEJ,IAAI,CAAC,iBAAiB,CAAC;AACpB,iBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC;AACrC,iBAAA,OAAO,CAAC,CAAC,MAAM,KAAI;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,KAAK,MAAM,CAAC,aAAa,CAAC;gBACpF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACrE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;AACnG,gBAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;gBAElE,IAAI,CAAC,6BAA6B,CAAC,MAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC;AAC3G,YAAA,CAAC,CAAC;QACN;IACF;AAEA,IAAA,mBAAmB,CAAI,GAAW,EAAA;AAChC,QAAA,OAAO,CAAC,CAA2B,EAAE,CAA2B,KAAI;AAClE,YAAA,MAAM,MAAM,GAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,YAAA,MAAM,MAAM,GAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAEpC,YAAA,IAAI,MAAM,GAAG,MAAM,EAAE;gBACnB,OAAO,CAAC,CAAC;YACX;AAAO,iBAAA,IAAI,MAAM,GAAG,MAAM,EAAE;AAC1B,gBAAA,OAAO,CAAC;YACV;AAAO,iBAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AAC5B,gBAAA,OAAO,CAAC;YACV;iBAAO;AACL,gBAAA,OAAO,SAAS;YAClB;AACF,QAAA,CAAC;IACH;AAEA,IAAA,6BAA6B,CAC3B,MAA2B,EAC3B,UAA4B,EAC5B,eAAqC,EACrC,YAA6B,EAAA;QAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AACnC,YAAA,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;AACtB,iBAAA,GAAG,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC;AACtF,iBAAA,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB;IACF;AAEA,IAAA,mBAAmB,CAAC,WAAmB,EAAE,UAAkB,EAAE,eAAe,EAAA;QAC1E,OAAO,CAAC,KAAK,KAAI;YACf,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK;YAClD,OAAO,CAAC,IAAI,CAAC,CAAA,GAAA,EAAM,UAAU,CAAA,kBAAA,EAAqB,UAAU,CAAA,YAAA,EAAe,WAAW,CAAA,CAAE,CAAC;AAC3F,QAAA,CAAC;IACH;AAEA,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE;QACxC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC;YACtG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;;AAEpI,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1F;IACF;IAEA,YAAY,CAAC,IAAS,EAAE,GAA0B,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC9B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAC1B;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,IAAI,aAAa,EAAE,CAAC;IAC1E;AAEA,IAAA,aAAa,CAAC,IAAY,EAAA;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;QACtD;QACA,IAAI,CAAC,2BAA2B,EAAE;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;IAEA,6BAA6B,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACxB,IAAI,eAAe,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE;gBAC9C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;oBAC1B,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;wBAC9C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAChC,4BAAA,KAAK,CAAC,QAAQ,GAAG,IAAI;AACvB,wBAAA,CAAC,CAAC;oBACJ;AACF,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,iBAAiB,CAAC,gBAAyB,EAAE,QAAkB,EAAA;AAC7D,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACxB,IAAI,gBAAgB,EAAE;AACpB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACtB;iBAAO;gBACL,OAAO,IAAI,CAAC,QAAQ;YACtB;YACA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;YACtD;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,cAAc,CAAC,mBAA6B,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC3B;aAAO;YACP,IAAI,CAAC,YAAY,GAAG;AAClB,kBAAE;kBACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AACrB,oBAAA,IAAK,GAAiB,CAAC,aAAa,EAAE;AACpC,wBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,QAAQ,IAAI,aAAa,CAAC;oBAClF;yBAAO;AACL,wBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC;oBAClD;AACF,gBAAA,CAAC,CAAC;QACN;IACF;IAEA,2BAA2B,GAAA;;AAEzB,QAAA,IAAI,CAAC;AACF,aAAA,MAAM,CAAC,CAAC,GAAG,KAAK,eAAe,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa;AAC7D,aAAA,OAAO,CAAC,CAAC,GAAG,KAAI;AACf,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAwB,KAAK,QAAQ,EAAE,MAAM,CAAC;AAEzF,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAoB,KAAI;AACvC,gBAAA,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,KAAK,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBAElG,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC5D,IAAI,aAAa,EAAE;AACjB,oBAAA,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI;gBAC9B;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEJ,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;gBACnD,OAAO,WAAW,CAAC,QAAQ;gBAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAsB,CAAC;gBAC/E,IAAI,aAAa,EAAE;AACjB,oBAAA,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI;gBACnC;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAaA,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC7B,YAAA,GAAG,GAAG;AACN,YAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC;AAClD,SAAA,CAAC,CAAC;IACL;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACrD;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;IACzD;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC5B;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC5B;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE;IACnB;AAEA,IAAA,kBAAkB,CAAC,KAAK,EAAA;AACtB,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;gBACnD,OAAO,WAAW,CAAC,QAAQ;AAC7B,YAAA,CAAC,CAAC;QACJ;QACA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACxB,YAAA,IAAK,GAAiB,CAAC,aAAa,EAAE;gBACpC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;oBACxB,OAAO,IAAI,CAAC,QAAQ;oBACpB,OAAO,IAAI,CAAC,aAAa;AACzB,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,QAAQ,CAAC;AACzD,gBAAA,CAAC,CAAC;YACJ;iBAAO;AACJ,gBAAA,GAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC;YAChE;AACF,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;AAEA,IAAA,aAAa,CAAC,KAAK,EAAA;AACjB,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B;AAEA,IAAA,QAAQ,CAAC,KAAoC,EAAA;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1C;+GA3VW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAH1B,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,8VCxErG,uhJA8FgB,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;ADFL,UAAA,CAAA;AADR,IAAA,YAAY,EAAE;;AACkB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;4FAjBtB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,mBAGnB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAA,4BAA8B,EAAE,CAAC,cACrF,KAAK,EAAA,QAAA,EAAA,uhJAAA,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA;;sBAGlB,SAAS;uBAAC,wCAAwC;;sBAElD,SAAS;uBAAC,cAAc;;sBAExB,SAAS;uBAAC,UAAU;;sBAKpB;;sBACA;;sBACA;;sBACA;;sBAIA;;sBAEA;;sBACA;;sBACA;;sBACA;;;AEjGH;MAiCa,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAA3B,2BAA2B,EAAA,YAAA,EAAA,CAHvB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAZzC,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;AAChB,YAAA,kBAAkB,aAIV,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAE3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,SAAA,EAJ3B,CAAC,gBAAgB,CAAC,YAX3B,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;YAChB,kBAAkB,CAAA,EAAA,CAAA,CAAA;;4FAMT,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAjBvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,oBAAoB;wBACpB,gBAAgB;wBAChB,kBAAkB;wBAClB,gBAAgB;wBAChB,kBAAkB;AACnB,qBAAA;oBACD,SAAS,EAAE,CAAC,gBAAgB,CAAC;oBAC7B,YAAY,EAAE,CAAC,4BAA4B,CAAC;oBAC5C,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA;;;AChCD;;AAEG;;;;"}
@@ -90,14 +90,14 @@ class NovoNavElement {
90
90
  _clampTabIndex(index) {
91
91
  return Math.min(this.items.length - 1, Math.max(index || 0, 0));
92
92
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavElement, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoNavElement, isStandalone: false, selector: "novo-nav", inputs: { theme: "theme", direction: "direction", outlet: "outlet", router: "router", condensed: "condensed", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange" }, host: { properties: { "class.condensed": "this.condensed" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{padding:0;list-style:none;display:flex;align-items:center;justify-content:flex-start;margin:0}:host[type=button-bar]{display:inline-flex;border-radius:3px;border:2px solid #fff}:host[theme=neutral],:host[theme=color]{background:#0003}:host[theme=neutral][type=button-bar],:host[theme=color][type=button-bar]{border:2px solid #fff}:host[theme=white]{background-color:#fff}:host[theme=white][direction=vertical]{background:transparent}:host[theme=white][type=button-bar]{border:2px solid #dbdbdb}:host[direction=vertical]{flex-direction:column;width:auto}\n"] }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavElement, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoNavElement, isStandalone: false, selector: "novo-nav", inputs: { theme: "theme", direction: "direction", outlet: "outlet", router: "router", condensed: "condensed", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange" }, host: { properties: { "class.condensed": "this.condensed" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{padding:0;list-style:none;display:flex;align-items:center;justify-content:flex-start;margin:0}:host[type=button-bar]{display:inline-flex;border-radius:3px;border:2px solid #fff}:host[theme=neutral],:host[theme=color]{background:#0003}:host[theme=neutral][type=button-bar],:host[theme=color][type=button-bar]{border:2px solid #fff}:host[theme=white]{background-color:#fff}:host[theme=white][direction=vertical]{background:transparent}:host[theme=white][type=button-bar]{border:2px solid #dbdbdb}:host[direction=vertical]{flex-direction:column;width:auto}\n"] }); }
95
95
  }
96
96
  __decorate([
97
97
  BooleanInput(),
98
98
  __metadata("design:type", Boolean)
99
99
  ], NovoNavElement.prototype, "condensed", void 0);
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavElement, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavElement, decorators: [{
101
101
  type: Component,
102
102
  args: [{ selector: 'novo-nav', template: '<ng-content></ng-content>', standalone: false, styles: [":host{padding:0;list-style:none;display:flex;align-items:center;justify-content:flex-start;margin:0}:host[type=button-bar]{display:inline-flex;border-radius:3px;border:2px solid #fff}:host[theme=neutral],:host[theme=color]{background:#0003}:host[theme=neutral][type=button-bar],:host[theme=color][type=button-bar]{border:2px solid #fff}:host[theme=white]{background-color:#fff}:host[theme=white][direction=vertical]{background:transparent}:host[theme=white][type=button-bar]{border:2px solid #dbdbdb}:host[direction=vertical]{flex-direction:column;width:auto}\n"] }]
103
103
  }], propDecorators: { theme: [{
@@ -148,8 +148,8 @@ class NovoTabElement {
148
148
  }
149
149
  this.cdr.detectChanges();
150
150
  }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabElement, deps: [{ token: NovoNavElement }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoTabElement, isStandalone: false, selector: "novo-tab", inputs: { active: "active", color: "color", disabled: "disabled" }, outputs: { activeChange: "activeChange" }, host: { listeners: { "click": "select()" }, properties: { "class.active": "active", "class.disabled": "disabled", "attr.role": "this.role", "class.text-only": "this.hb_textOnly" } }, viewQueries: [{ propertyName: "tablink", first: true, predicate: ["tablink"], descendants: true }], ngImport: i0, template: `
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabElement, deps: [{ token: NovoNavElement }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoTabElement, isStandalone: false, selector: "novo-tab", inputs: { active: "active", color: "color", disabled: "disabled" }, outputs: { activeChange: "activeChange" }, host: { listeners: { "click": "select()" }, properties: { "class.active": "active", "class.disabled": "disabled", "attr.role": "this.role", "class.text-only": "this.hb_textOnly" } }, viewQueries: [{ propertyName: "tablink", first: true, predicate: ["tablink"], descendants: true }], ngImport: i0, template: `
153
153
  <div #tablink class="novo-tab-link">
154
154
  <ng-content></ng-content>
155
155
  </div>
@@ -160,13 +160,13 @@ __decorate([
160
160
  BooleanInput(),
161
161
  __metadata("design:type", Boolean)
162
162
  ], NovoTabElement.prototype, "disabled", void 0);
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabElement, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabElement, decorators: [{
164
164
  type: Component,
165
165
  args: [{ selector: 'novo-tab', host: {
166
166
  '(click)': 'select()',
167
167
  '[class.active]': 'active',
168
168
  '[class.disabled]': 'disabled',
169
- '[attr.role]': 'tab',
169
+ '[attr.role]': '"tab"',
170
170
  }, template: `
171
171
  <div #tablink class="novo-tab-link">
172
172
  <ng-content></ng-content>
@@ -204,10 +204,10 @@ class NovoTabButtonElement {
204
204
  this.nav.select(this);
205
205
  }
206
206
  }
207
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabButtonElement, deps: [{ token: NovoNavElement }], target: i0.ɵɵFactoryTarget.Component }); }
208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoTabButtonElement, isStandalone: false, selector: "novo-tab-button", inputs: { active: "active", disabled: "disabled" }, host: { listeners: { "click": "select()" }, properties: { "class.active": "active", "class.disabled": "disabled", "attr.role": "this.role" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{padding:var(--spacing-md);cursor:pointer;transition:all .12s ease-in-out}:host.disabled{opacity:.5;cursor:not-allowed}:host.disabled:hover{opacity:.5}:host-context(novo-nav[theme=neutral]),:host-context(novo-nav[theme=color]){color:#ffffffbf}:host-context(novo-nav[theme=neutral]).active,:host-context(novo-nav[theme=color]).active{color:#fff;background:#0003}:host-context(novo-nav[theme=neutral]):hover,:host-context(novo-nav[theme=color]):hover{background:#0000001a}:host-context(novo-nav[theme=neutral]).disabled,:host-context(novo-nav[theme=color]).disabled{opacity:.5;cursor:not-allowed}:host-context(novo-nav[theme=neutral]).disabled:hover,:host-context(novo-nav[theme=color]).disabled:hover{opacity:.5}:host-context(novo-nav[theme=white]){color:var(--color-text);opacity:.75}:host-context(novo-nav[theme=white]).active{color:var(--color-selection);background:#0000000d;opacity:1}:host-context(novo-nav[theme=white]):hover{opacity:1}:host-context(novo-nav[theme=white]).disabled{opacity:.5;cursor:not-allowed}:host-context(novo-nav[theme=white]).disabled:hover{opacity:.5}\n"] }); }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabButtonElement, deps: [{ token: NovoNavElement }], target: i0.ɵɵFactoryTarget.Component }); }
208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoTabButtonElement, isStandalone: false, selector: "novo-tab-button", inputs: { active: "active", disabled: "disabled" }, host: { listeners: { "click": "select()" }, properties: { "class.active": "active", "class.disabled": "disabled", "attr.role": "this.role" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{padding:var(--spacing-md);cursor:pointer;transition:all .12s ease-in-out}:host.disabled{opacity:.5;cursor:not-allowed}:host.disabled:hover{opacity:.5}:host-context(novo-nav[theme=neutral]),:host-context(novo-nav[theme=color]){color:#ffffffbf}:host-context(novo-nav[theme=neutral]).active,:host-context(novo-nav[theme=color]).active{color:#fff;background:#0003}:host-context(novo-nav[theme=neutral]):hover,:host-context(novo-nav[theme=color]):hover{background:#0000001a}:host-context(novo-nav[theme=neutral]).disabled,:host-context(novo-nav[theme=color]).disabled{opacity:.5;cursor:not-allowed}:host-context(novo-nav[theme=neutral]).disabled:hover,:host-context(novo-nav[theme=color]).disabled:hover{opacity:.5}:host-context(novo-nav[theme=white]){color:var(--color-text);opacity:.75}:host-context(novo-nav[theme=white]).active{color:var(--color-selection);background:#0000000d;opacity:1}:host-context(novo-nav[theme=white]):hover{opacity:1}:host-context(novo-nav[theme=white]).disabled{opacity:.5;cursor:not-allowed}:host-context(novo-nav[theme=white]).disabled:hover{opacity:.5}\n"] }); }
209
209
  }
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabButtonElement, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabButtonElement, decorators: [{
211
211
  type: Component,
212
212
  args: [{ selector: 'novo-tab-button', host: {
213
213
  '(click)': 'select()',
@@ -250,15 +250,15 @@ class NovoTabLinkElement {
250
250
  isLinkActive(link) {
251
251
  return link && link.urlTree ? this.router.isActive(link.urlTree, false) : false;
252
252
  }
253
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabLinkElement, deps: [{ token: NovoNavElement }, { token: i1.Router }, { token: i0.ChangeDetectorRef }, { token: i1.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoTabLinkElement, isStandalone: false, selector: "novo-tab-link", inputs: { active: "active", disabled: "disabled", spy: "spy" }, host: { listeners: { "click": "select()" }, properties: { "class.active": "active", "class.disabled": "disabled", "attr.role": "this.role" } }, ngImport: i0, template: `
253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabLinkElement, deps: [{ token: NovoNavElement }, { token: i1.Router }, { token: i0.ChangeDetectorRef }, { token: i1.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoTabLinkElement, isStandalone: false, selector: "novo-tab-link", inputs: { active: "active", disabled: "disabled", spy: "spy" }, host: { listeners: { "click": "select()" }, properties: { "class.active": "active", "class.disabled": "disabled", "attr.role": "this.role" } }, ngImport: i0, template: `
255
255
  <div class="novo-tab-link">
256
256
  <ng-content></ng-content>
257
257
  </div>
258
258
  <span class="indicator"></span>
259
259
  `, isInline: true, styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;position:relative}:host[color=black]{color:#000}:host[color=black] i{color:#000}:host[color=white]{color:#fff}:host[color=white] i{color:#fff}:host[color=gray]{color:#9e9e9e}:host[color=gray] i{color:#9e9e9e}:host[color=grey]{color:#9e9e9e}:host[color=grey] i{color:#9e9e9e}:host[color=offWhite]{color:#f7f7f7}:host[color=offWhite] i{color:#f7f7f7}:host[color=bright]{color:#f7f7f7}:host[color=bright] i{color:#f7f7f7}:host[color=light]{color:#dbdbdb}:host[color=light] i{color:#dbdbdb}:host[color=neutral]{color:#4f5361}:host[color=neutral] i{color:#4f5361}:host[color=dark]{color:#3d464d}:host[color=dark] i{color:#3d464d}:host[color=orange]{color:#ff6900}:host[color=orange] i{color:#ff6900}:host[color=navigation]{color:#202945}:host[color=navigation] i{color:#202945}:host[color=skyBlue]{color:#009bdf}:host[color=skyBlue] i{color:#009bdf}:host[color=steel]{color:#5b6770}:host[color=steel] i{color:#5b6770}:host[color=metal]{color:#637893}:host[color=metal] i{color:#637893}:host[color=sand]{color:#f4f4f4}:host[color=sand] i{color:#f4f4f4}:host[color=silver]{color:#e2e2e2}:host[color=silver] i{color:#e2e2e2}:host[color=stone]{color:#bebebe}:host[color=stone] i{color:#bebebe}:host[color=ash]{color:#a0a0a0}:host[color=ash] i{color:#a0a0a0}:host[color=slate]{color:#707070}:host[color=slate] i{color:#707070}:host[color=onyx]{color:#526980}:host[color=onyx] i{color:#526980}:host[color=charcoal]{color:#282828}:host[color=charcoal] i{color:#282828}:host[color=moonlight]{color:#1a242f}:host[color=moonlight] i{color:#1a242f}:host[color=midnight]{color:#202945}:host[color=midnight] i{color:#202945}:host[color=darkness]{color:#161f27}:host[color=darkness] i{color:#161f27}:host[color=navy]{color:#0d2d42}:host[color=navy] i{color:#0d2d42}:host[color=aqua]{color:#3bafda}:host[color=aqua] i{color:#3bafda}:host[color=ocean]{color:#4a89dc}:host[color=ocean] i{color:#4a89dc}:host[color=mint]{color:#37bc9b}:host[color=mint] i{color:#37bc9b}:host[color=grass]{color:#8cc152}:host[color=grass] i{color:#8cc152}:host[color=sunflower]{color:#f6b042}:host[color=sunflower] i{color:#f6b042}:host[color=bittersweet]{color:#eb6845}:host[color=bittersweet] i{color:#eb6845}:host[color=grapefruit]{color:#da4453}:host[color=grapefruit] i{color:#da4453}:host[color=carnation]{color:#d770ad}:host[color=carnation] i{color:#d770ad}:host[color=lavender]{color:#967adc}:host[color=lavender] i{color:#967adc}:host[color=mountain]{color:#9678b6}:host[color=mountain] i{color:#9678b6}:host[color=info]{color:#4a89dc}:host[color=info] i{color:#4a89dc}:host[color=positive]{color:#4a89dc}:host[color=positive] i{color:#4a89dc}:host[color=success]{color:#8cc152}:host[color=success] i{color:#8cc152}:host[color=negative]{color:#da4453}:host[color=negative] i{color:#da4453}:host[color=danger]{color:#da4453}:host[color=danger] i{color:#da4453}:host[color=error]{color:#da4453}:host[color=error] i{color:#da4453}:host[color=warning]{color:#f6b042}:host[color=warning] i{color:#f6b042}:host[color=empty]{color:#cccdcc}:host[color=empty] i{color:#cccdcc}:host[color=disabled]{color:#bebebe}:host[color=disabled] i{color:#bebebe}:host[color=background]{color:#f7f7f7}:host[color=background] i{color:#f7f7f7}:host[color=backgroundDark]{color:#e2e2e2}:host[color=backgroundDark] i{color:#e2e2e2}:host[color=presentation]{color:#5b6770}:host[color=presentation] i{color:#5b6770}:host[color=bullhorn]{color:#ff6900}:host[color=bullhorn] i{color:#ff6900}:host[color=pulse]{color:#3bafda}:host[color=pulse] i{color:#3bafda}:host[color=company]{color:#39d}:host[color=company] i{color:#39d}:host[color=candidate]{color:#4b7}:host[color=candidate] i{color:#4b7}:host[color=lead]{color:#a69}:host[color=lead] i{color:#a69}:host[color=contact]{color:#fa4}:host[color=contact] i{color:#fa4}:host[color=clientcontact]{color:#fa4}:host[color=clientcontact] i{color:#fa4}:host[color=opportunity]{color:#625}:host[color=opportunity] i{color:#625}:host[color=job]{color:#b56}:host[color=job] i{color:#b56}:host[color=joborder]{color:#b56}:host[color=joborder] i{color:#b56}:host[color=submission]{color:#a9adbb}:host[color=submission] i{color:#a9adbb}:host[color=sendout]{color:#747884}:host[color=sendout] i{color:#747884}:host[color=placement]{color:#0b344f}:host[color=placement] i{color:#0b344f}:host[color=note]{color:#747884}:host[color=note] i{color:#747884}:host[color=contract]{color:#454ea0}:host[color=contract] i{color:#454ea0}:host[color=task]{color:#4f5361}:host[color=task] i{color:#4f5361}:host[color=jobCode]{color:#696d79}:host[color=jobCode] i{color:#696d79}:host[color=earnCode]{color:#696d79}:host[color=earnCode] i{color:#696d79}:host[color=invoiceStatement]{color:#696d79}:host[color=invoiceStatement] i{color:#696d79}:host[color=billableCharge]{color:#696d79}:host[color=billableCharge] i{color:#696d79}:host[color=payableCharge]{color:#696d79}:host[color=payableCharge] i{color:#696d79}:host[color=user]{color:#696d79}:host[color=user] i{color:#696d79}:host[color=corporateUser]{color:#696d79}:host[color=corporateUser] i{color:#696d79}:host[color=distributionList]{color:#696d79}:host[color=distributionList] i{color:#696d79}:host[color=credential]{color:#696d79}:host[color=credential] i{color:#696d79}:host[color=person]{color:#696d79}:host[color=person] i{color:#696d79}:host.disabled .novo-tab-link{opacity:.5;cursor:not-allowed}:host.disabled:hover .novo-tab-link{opacity:.5}:host .novo-tab-link{font-weight:500;word-break:word-break;overflow-wrap:break-word;line-height:1.375;color:var(--text-muted);font-size:var(--font-size-label);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;font-size:var(--font-size-tab);padding:1rem;display:flex;align-items:center;gap:.25rem;cursor:pointer;text-transform:uppercase}:host .novo-tab-link.text-capitalize{text-transform:capitalize}:host .novo-tab-link.text-uppercase{text-transform:uppercase}:host .novo-tab-link.text-nowrap{white-space:nowrap}:host .novo-tab-link.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .novo-tab-link.text-size-default{font-size:inherit}:host .novo-tab-link.text-size-body{font-size:1.3rem}:host .novo-tab-link.text-size-xs{font-size:1rem}:host .novo-tab-link.text-size-sm{font-size:1.2rem}:host .novo-tab-link.text-size-md{font-size:1.3rem}:host .novo-tab-link.text-size-lg{font-size:1.6rem}:host .novo-tab-link.text-size-xl{font-size:2rem}:host .novo-tab-link.text-size-2xl{font-size:2.6rem}:host .novo-tab-link.text-size-3xl{font-size:3.2rem}:host .novo-tab-link.text-size-smaller{font-size:.8em}:host .novo-tab-link.text-size-larger{font-size:1.2em}:host .novo-tab-link.text-color-black{color:#000}:host .novo-tab-link.text-color-white{color:#fff}:host .novo-tab-link.text-color-gray{color:#9e9e9e}:host .novo-tab-link.text-color-grey{color:#9e9e9e}:host .novo-tab-link.text-color-offWhite{color:#f7f7f7}:host .novo-tab-link.text-color-bright{color:#f7f7f7}:host .novo-tab-link.text-color-light{color:#dbdbdb}:host .novo-tab-link.text-color-neutral{color:#4f5361}:host .novo-tab-link.text-color-dark{color:#3d464d}:host .novo-tab-link.text-color-orange{color:#ff6900}:host .novo-tab-link.text-color-navigation{color:#202945}:host .novo-tab-link.text-color-skyBlue{color:#009bdf}:host .novo-tab-link.text-color-steel{color:#5b6770}:host .novo-tab-link.text-color-metal{color:#637893}:host .novo-tab-link.text-color-sand{color:#f4f4f4}:host .novo-tab-link.text-color-silver{color:#e2e2e2}:host .novo-tab-link.text-color-stone{color:#bebebe}:host .novo-tab-link.text-color-ash{color:#a0a0a0}:host .novo-tab-link.text-color-slate{color:#707070}:host .novo-tab-link.text-color-onyx{color:#526980}:host .novo-tab-link.text-color-charcoal{color:#282828}:host .novo-tab-link.text-color-moonlight{color:#1a242f}:host .novo-tab-link.text-color-midnight{color:#202945}:host .novo-tab-link.text-color-darkness{color:#161f27}:host .novo-tab-link.text-color-navy{color:#0d2d42}:host .novo-tab-link.text-color-aqua{color:#3bafda}:host .novo-tab-link.text-color-ocean{color:#4a89dc}:host .novo-tab-link.text-color-mint{color:#37bc9b}:host .novo-tab-link.text-color-grass{color:#8cc152}:host .novo-tab-link.text-color-sunflower{color:#f6b042}:host .novo-tab-link.text-color-bittersweet{color:#eb6845}:host .novo-tab-link.text-color-grapefruit{color:#da4453}:host .novo-tab-link.text-color-carnation{color:#d770ad}:host .novo-tab-link.text-color-lavender{color:#967adc}:host .novo-tab-link.text-color-mountain{color:#9678b6}:host .novo-tab-link.text-color-info{color:#4a89dc}:host .novo-tab-link.text-color-positive{color:#4a89dc}:host .novo-tab-link.text-color-success{color:#8cc152}:host .novo-tab-link.text-color-negative{color:#da4453}:host .novo-tab-link.text-color-danger{color:#da4453}:host .novo-tab-link.text-color-error{color:#da4453}:host .novo-tab-link.text-color-warning{color:#f6b042}:host .novo-tab-link.text-color-empty{color:#cccdcc}:host .novo-tab-link.text-color-disabled{color:#bebebe}:host .novo-tab-link.text-color-background{color:#f7f7f7}:host .novo-tab-link.text-color-backgroundDark{color:#e2e2e2}:host .novo-tab-link.text-color-presentation{color:#5b6770}:host .novo-tab-link.text-color-bullhorn{color:#ff6900}:host .novo-tab-link.text-color-pulse{color:#3bafda}:host .novo-tab-link.text-color-company{color:#39d}:host .novo-tab-link.text-color-candidate{color:#4b7}:host .novo-tab-link.text-color-lead{color:#a69}:host .novo-tab-link.text-color-contact{color:#fa4}:host .novo-tab-link.text-color-clientcontact{color:#fa4}:host .novo-tab-link.text-color-opportunity{color:#625}:host .novo-tab-link.text-color-job{color:#b56}:host .novo-tab-link.text-color-joborder{color:#b56}:host .novo-tab-link.text-color-submission{color:#a9adbb}:host .novo-tab-link.text-color-sendout{color:#747884}:host .novo-tab-link.text-color-placement{color:#0b344f}:host .novo-tab-link.text-color-note{color:#747884}:host .novo-tab-link.text-color-contract{color:#454ea0}:host .novo-tab-link.text-color-task{color:#4f5361}:host .novo-tab-link.text-color-jobCode{color:#696d79}:host .novo-tab-link.text-color-earnCode{color:#696d79}:host .novo-tab-link.text-color-invoiceStatement{color:#696d79}:host .novo-tab-link.text-color-billableCharge{color:#696d79}:host .novo-tab-link.text-color-payableCharge{color:#696d79}:host .novo-tab-link.text-color-user{color:#696d79}:host .novo-tab-link.text-color-corporateUser{color:#696d79}:host .novo-tab-link.text-color-distributionList{color:#696d79}:host .novo-tab-link.text-color-credential{color:#696d79}:host .novo-tab-link.text-color-person{color:#696d79}:host .novo-tab-link.margin-before{margin-top:.4rem}:host .novo-tab-link.margin-after{margin-bottom:.8rem}:host .novo-tab-link.text-length-small{max-width:40ch}:host .novo-tab-link.text-length-medium{max-width:55ch}:host .novo-tab-link.text-length-large{max-width:70ch}:host .novo-tab-link.text-weight-hairline{font-weight:100}:host .novo-tab-link.text-weight-thin{font-weight:200}:host .novo-tab-link.text-weight-light{font-weight:300}:host .novo-tab-link.text-weight-normal{font-weight:400}:host .novo-tab-link.text-weight-medium{font-weight:500}:host .novo-tab-link.text-weight-semibold{font-weight:600}:host .novo-tab-link.text-weight-bold{font-weight:700}:host .novo-tab-link.text-weight-extrabold{font-weight:800}:host .novo-tab-link.text-weight-heavy{font-weight:900}:host .novo-tab-link.text-weight-lighter{font-weight:lighter}:host .novo-tab-link.text-weight-bolder{font-weight:bolder}:host .novo-tab-link:focus{outline:none}:host .indicator{position:absolute;bottom:0;width:0;height:3px;display:block;background:transparent;transition:all .22s ease-in-out}:host.active .novo-tab-link,:host.router-link-active .novo-tab-link{opacity:1;font-weight:500}:host.active .indicator,:host.router-link-active .indicator{background:var(--focus);width:100%}:host:hover .novo-tab-link{opacity:1}:host:focus{outline:none}:host-context(novo-nav[direction=vertical]){display:flex;width:100%;flex-direction:row;align-items:center;min-width:12rem;justify-content:space-between;transition:all .12s ease-in-out}:host-context(novo-nav[direction=vertical]) .novo-tab-link{order:2;flex:1;width:100%;display:flex;flex-flow:row nowrap;gap:.25rem;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.75}:host-context(novo-nav[direction=vertical]) .indicator{order:1;width:4px;height:0;display:block;background:transparent;transition:all .22s ease-in-out}:host-context(novo-nav[direction=vertical]).active,:host-context(novo-nav[direction=vertical]).router-link-active{background:#0000000d}:host-context(novo-nav[direction=vertical]).active .novo-tab-link,:host-context(novo-nav[direction=vertical]).router-link-active .novo-tab-link{opacity:1}:host-context(novo-nav[direction=vertical]).active .indicator,:host-context(novo-nav[direction=vertical]).router-link-active .indicator{height:100%;top:0;bottom:0}:host-context(novo-nav[direction=vertical]):hover .novo-tab-link{opacity:1}:host-context(novo-nav[direction=vertical]).disabled .novo-tab-link{opacity:.5;cursor:not-allowed}:host-context(novo-nav[direction=vertical]).disabled:hover .novo-tab-link{opacity:.5}:host-context(novo-nav[theme=white]){height:auto}:host-context(novo-nav[theme=white]).disabled .novo-tab-link{opacity:.5;cursor:not-allowed}:host-context(novo-nav[theme=white]).disabled:hover .novo-tab-link{opacity:.5;font-weight:400}:host-context(novo-nav[theme=white]) .novo-tab-link{color:var(--text-main);opacity:.75}:host-context(novo-nav[theme=white]).active,:host-context(novo-nav[theme=white]).router-link-active{color:var(--selection)}:host-context(novo-nav[theme=white]).active .novo-tab-link,:host-context(novo-nav[theme=white]).router-link-active .novo-tab-link{color:var(--selection);opacity:1}:host-context(novo-nav[theme=white]).active .indicator,:host-context(novo-nav[theme=white]).router-link-active .indicator{background:currentColor}:host-context(novo-nav[theme=white]):hover .novo-tab-link{font-weight:500}:host-context(novo-nav[theme=color]) .novo-tab-link,:host-context(novo-nav[theme=neutral]) .novo-tab-link{color:#fff}:host-context(novo-nav[theme=color]).active .indicator,:host-context(novo-nav[theme=color]).router-link-active .indicator,:host-context(novo-nav[theme=neutral]).active .indicator,:host-context(novo-nav[theme=neutral]).router-link-active .indicator{background:#fff}:host-context(novo-nav[theme=color]).disabled .novo-tab-link,:host-context(novo-nav[theme=neutral]).disabled .novo-tab-link{opacity:.5;cursor:not-allowed}:host-context(novo-nav[theme=color]).disabled:hover .novo-tab-link,:host-context(novo-nav[theme=neutral]).disabled:hover .novo-tab-link{opacity:.5}:host-context(novo-nav.condensed){font-size:1rem}:host-context(novo-nav.condensed) .novo-tab-link{padding:.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
260
260
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabLinkElement, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabLinkElement, decorators: [{
262
262
  type: Component,
263
263
  args: [{ selector: 'novo-tab-link', host: {
264
264
  '(click)': 'select()',
@@ -309,10 +309,10 @@ class NovoNavOutletElement {
309
309
  }
310
310
  this.items.push(item);
311
311
  }
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavOutletElement, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
313
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoNavOutletElement, isStandalone: false, selector: "novo-nav-outlet", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["novo-nav-outlet{display:block}\n"], encapsulation: i0.ViewEncapsulation.None }); }
312
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavOutletElement, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
313
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoNavOutletElement, isStandalone: false, selector: "novo-nav-outlet", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["novo-nav-outlet{display:block}\n"], encapsulation: i0.ViewEncapsulation.None }); }
314
314
  }
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavOutletElement, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavOutletElement, decorators: [{
316
316
  type: Component,
317
317
  args: [{ selector: 'novo-nav-outlet', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, standalone: false, styles: ["novo-nav-outlet{display:block}\n"] }]
318
318
  }] });
@@ -321,10 +321,10 @@ class NovoNavContentElement {
321
321
  this.active = false;
322
322
  outlet.add(this);
323
323
  }
324
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavContentElement, deps: [{ token: NovoNavOutletElement }], target: i0.ɵɵFactoryTarget.Component }); }
325
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoNavContentElement, isStandalone: false, selector: "novo-nav-content", inputs: { active: "active" }, host: { properties: { "class.active": "active" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["novo-nav-content{display:none}novo-nav-content.active{display:block}\n"], encapsulation: i0.ViewEncapsulation.None }); }
324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavContentElement, deps: [{ token: NovoNavOutletElement }], target: i0.ɵɵFactoryTarget.Component }); }
325
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoNavContentElement, isStandalone: false, selector: "novo-nav-content", inputs: { active: "active" }, host: { properties: { "class.active": "active" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["novo-nav-content{display:none}novo-nav-content.active{display:block}\n"], encapsulation: i0.ViewEncapsulation.None }); }
326
326
  }
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavContentElement, decorators: [{
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavContentElement, decorators: [{
328
328
  type: Component,
329
329
  args: [{ selector: 'novo-nav-content', host: {
330
330
  '[class.active]': 'active',
@@ -350,10 +350,10 @@ class NovoNavHeaderElement {
350
350
  // do nothing
351
351
  }
352
352
  }
353
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavHeaderElement, deps: [{ token: NovoNavOutletElement }], target: i0.ɵɵFactoryTarget.Component }); }
354
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoNavHeaderElement, isStandalone: false, selector: "novo-nav-header", inputs: { active: "active", forElement: ["for", "forElement"] }, host: { listeners: { "click": "show($event)" }, properties: { "class.active": "active", "attr.role": "this.role" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;padding:var(--spacing-sm);margin:var(--spacing-sm);border:1px solid #333}\n"] }); }
353
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavHeaderElement, deps: [{ token: NovoNavOutletElement }], target: i0.ɵɵFactoryTarget.Component }); }
354
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoNavHeaderElement, isStandalone: false, selector: "novo-nav-header", inputs: { active: "active", forElement: ["for", "forElement"] }, host: { listeners: { "click": "show($event)" }, properties: { "class.active": "active", "attr.role": "this.role" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;padding:var(--spacing-sm);margin:var(--spacing-sm);border:1px solid #333}\n"] }); }
355
355
  }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoNavHeaderElement, decorators: [{
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoNavHeaderElement, decorators: [{
357
357
  type: Component,
358
358
  args: [{ selector: 'novo-nav-header', host: {
359
359
  '[class.active]': 'active',
@@ -371,8 +371,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
371
371
 
372
372
  // NG2
373
373
  class NovoTabModule {
374
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
375
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: NovoTabModule, declarations: [NovoNavElement,
374
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
375
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: NovoTabModule, declarations: [NovoNavElement,
376
376
  NovoTabElement,
377
377
  NovoTabButtonElement,
378
378
  NovoTabLinkElement,
@@ -385,9 +385,9 @@ class NovoTabModule {
385
385
  NovoNavOutletElement,
386
386
  NovoNavContentElement,
387
387
  NovoNavHeaderElement] }); }
388
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabModule, imports: [CommonModule] }); }
388
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabModule, imports: [CommonModule] }); }
389
389
  }
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoTabModule, decorators: [{
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoTabModule, decorators: [{
391
391
  type: NgModule,
392
392
  args: [{
393
393
  imports: [CommonModule],