novo-elements 13.1.0 → 13.2.0-next.1

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 (230) hide show
  1. package/addons/ckeditor/index.d.ts +3 -1
  2. package/elements/agenda/common/AgendaDateChange.scss +3 -3
  3. package/elements/agenda/common/AgendaHoursLayout.scss +2 -2
  4. package/elements/agenda/day/AgendaDayView.scss +3 -3
  5. package/elements/agenda/month/AgendaMonthView.scss +8 -8
  6. package/elements/agenda/week/AgendaWeekView.scss +4 -4
  7. package/elements/aside/aside.component.scss +17 -2
  8. package/elements/aside/index.d.ts +16 -8
  9. package/elements/autocomplete/autocomplete.component.scss +4 -0
  10. package/elements/avatar/Avatar.scss +2 -2
  11. package/elements/breadcrumbs/Breadcrumb.scss +5 -0
  12. package/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.scss +3 -3
  13. package/elements/button/styles/button-dialogue.scss +6 -5
  14. package/elements/button/styles/button-fab.scss +1 -1
  15. package/elements/button/styles/button-icon.scss +5 -5
  16. package/elements/button/styles/button-other.scss +5 -5
  17. package/elements/button/styles/button-primary.scss +11 -9
  18. package/elements/button/styles/button-secondary.scss +8 -9
  19. package/elements/button/styles/button-standard.scss +2 -2
  20. package/elements/button/styles/button.scss +18 -12
  21. package/elements/calendar/calendar.component.scss +13 -13
  22. package/elements/calendar/month-select/month-select.component.scss +3 -3
  23. package/elements/calendar/month-view/month-view.component.scss +7 -7
  24. package/elements/calendar/year-select/year-select.component.scss +3 -3
  25. package/elements/card/Card.scss +55 -12
  26. package/elements/card/CardContent.scss +1 -1
  27. package/elements/card/CardFooter.scss +2 -2
  28. package/elements/card/CardHeader.scss +2 -2
  29. package/elements/category-dropdown/CategoryDropdown.scss +9 -9
  30. package/elements/checkbox/CheckList.scss +3 -3
  31. package/elements/checkbox/Checkbox.scss +3 -3
  32. package/elements/chips/Chip.scss +17 -17
  33. package/elements/chips/Chips.scss +9 -9
  34. package/elements/chips/RowChips.scss +2 -2
  35. package/elements/chips/index.d.ts +3 -1
  36. package/elements/color-picker/color-picker.component.scss +1 -1
  37. package/elements/common/index.d.ts +11 -3
  38. package/elements/common/option/option.component.scss +14 -19
  39. package/elements/common/selection/pseudo-checkbox/pseudo-checkbox.component.scss +2 -2
  40. package/elements/common/typography/text.mixins.scss +19 -19
  41. package/elements/data-table/data-table.component.scss +32 -23
  42. package/elements/data-table/index.d.ts +2 -1
  43. package/elements/data-table/pagination/data-table-pagination.component.scss +6 -6
  44. package/elements/date-picker/DatePicker.scss +18 -18
  45. package/elements/date-picker/DatePickerInput.scss +5 -5
  46. package/elements/date-picker/DateRangeInput.scss +1 -1
  47. package/elements/date-picker/MultiDateInput.scss +2 -2
  48. package/elements/date-time-picker/_DateTimePicker.scss +5 -5
  49. package/elements/divider/divider.component.scss +3 -3
  50. package/elements/dropdown/Dropdown.scss +7 -5
  51. package/elements/expansion/_expansion-theme.scss +1 -1
  52. package/elements/expansion/expansion-panel.scss +1 -0
  53. package/elements/field/error/error.scss +1 -1
  54. package/elements/field/field-fill.scss +4 -4
  55. package/elements/field/field-list.scss +4 -4
  56. package/elements/field/field-outline.scss +6 -6
  57. package/elements/field/field-standard.scss +3 -3
  58. package/elements/field/field.scss +14 -1
  59. package/elements/form/ControlGroup.scss +7 -7
  60. package/elements/form/Form.scss +40 -40
  61. package/elements/form/extras/address/Address.scss +6 -6
  62. package/elements/form/extras/file/FileInput.scss +4 -4
  63. package/elements/form/fieldset-header.scss +3 -3
  64. package/elements/form/index.d.ts +1 -1
  65. package/elements/header/Header.scss +45 -10
  66. package/elements/icon/Icon.scss +1 -1
  67. package/elements/layout/collapsible-nav/collapsible-nav.component.scss +20 -0
  68. package/elements/layout/index.d.ts +38 -5
  69. package/elements/list/list-item-content.scss +1 -1
  70. package/elements/list/list-item-header-avatar.scss +1 -1
  71. package/elements/list/list-item.scss +6 -6
  72. package/elements/loading/NovoSpinner.scss +1 -1
  73. package/elements/menu/menu-content.component.scss +8 -7
  74. package/elements/modal/modal.component.scss +8 -8
  75. package/elements/modal/notification.component.scss +21 -21
  76. package/elements/multi-picker/_MultiPicker.scss +2 -2
  77. package/elements/picker/Picker.scss +13 -13
  78. package/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.scss +14 -14
  79. package/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.scss +17 -17
  80. package/elements/picker/extras/picker-results/PickerResult.scss +1 -1
  81. package/elements/picker/extras/picker-results/PickerResults.scss +25 -21
  82. package/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.scss +3 -3
  83. package/elements/places/index.d.ts +24 -14
  84. package/elements/places/places.component.scss +3 -3
  85. package/elements/popover/PopOver.scss +2 -1
  86. package/elements/progress/Progress.scss +2 -2
  87. package/elements/progress/ProgressBar.scss +13 -3
  88. package/elements/query-builder/condition-builder/condition-builder.component.scss +1 -20
  89. package/elements/query-builder/index.d.ts +67 -35
  90. package/elements/radio/Radio.scss +8 -8
  91. package/elements/radio/radio-group.scss +2 -2
  92. package/elements/search/SearchBox.scss +8 -9
  93. package/elements/select/Select.scss +15 -14
  94. package/elements/select-search/select-search.component.scss +1 -1
  95. package/elements/simple-table/PaginationOld.scss +5 -5
  96. package/elements/simple-table/table.scss +15 -10
  97. package/elements/stepper/step-header.component.scss +9 -9
  98. package/elements/stepper/stepper.component.scss +25 -7
  99. package/elements/switch/Switch.scss +15 -7
  100. package/elements/tabbed-group-picker/TabbedGroupPicker.scss +17 -8
  101. package/elements/tabbed-group-picker/index.d.ts +27 -14
  102. package/elements/tabs/tab-nav.scss +3 -3
  103. package/elements/tabs/tab.scss +35 -5
  104. package/elements/tiles/Tiles.scss +24 -5
  105. package/elements/time-picker/TimePicker.scss +6 -6
  106. package/elements/time-picker/TimePickerInput.scss +1 -1
  107. package/elements/tip-well/TipWell.scss +5 -6
  108. package/elements/toast/Toast.scss +19 -18
  109. package/elements/toolbar/toolbar.component.scss +24 -6
  110. package/elements/tooltip/Tooltip.scss +2 -2
  111. package/elements/value/Value.scss +5 -4
  112. package/fesm2022/novo-elements-addons-ckeditor.mjs +22 -12
  113. package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
  114. package/fesm2022/novo-elements-elements-agenda.mjs +8 -8
  115. package/fesm2022/novo-elements-elements-agenda.mjs.map +1 -1
  116. package/fesm2022/novo-elements-elements-aside.mjs +24 -9
  117. package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
  118. package/fesm2022/novo-elements-elements-autocomplete.mjs +2 -2
  119. package/fesm2022/novo-elements-elements-autocomplete.mjs.map +1 -1
  120. package/fesm2022/novo-elements-elements-avatar.mjs +4 -4
  121. package/fesm2022/novo-elements-elements-avatar.mjs.map +1 -1
  122. package/fesm2022/novo-elements-elements-breadcrumbs.mjs +4 -4
  123. package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  124. package/fesm2022/novo-elements-elements-button.mjs +2 -2
  125. package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
  126. package/fesm2022/novo-elements-elements-calendar.mjs +8 -8
  127. package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
  128. package/fesm2022/novo-elements-elements-card.mjs +8 -8
  129. package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
  130. package/fesm2022/novo-elements-elements-category-dropdown.mjs +2 -2
  131. package/fesm2022/novo-elements-elements-category-dropdown.mjs.map +1 -1
  132. package/fesm2022/novo-elements-elements-checkbox.mjs +4 -4
  133. package/fesm2022/novo-elements-elements-checkbox.mjs.map +1 -1
  134. package/fesm2022/novo-elements-elements-chips.mjs +12 -8
  135. package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
  136. package/fesm2022/novo-elements-elements-color-picker.mjs +4 -4
  137. package/fesm2022/novo-elements-elements-color-picker.mjs.map +1 -1
  138. package/fesm2022/novo-elements-elements-common.mjs +61 -21
  139. package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
  140. package/fesm2022/novo-elements-elements-data-table.mjs +4 -4
  141. package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
  142. package/fesm2022/novo-elements-elements-date-picker.mjs +8 -8
  143. package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
  144. package/fesm2022/novo-elements-elements-date-time-picker.mjs +2 -2
  145. package/fesm2022/novo-elements-elements-date-time-picker.mjs.map +1 -1
  146. package/fesm2022/novo-elements-elements-divider.mjs +2 -2
  147. package/fesm2022/novo-elements-elements-divider.mjs.map +1 -1
  148. package/fesm2022/novo-elements-elements-dropdown.mjs +2 -2
  149. package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
  150. package/fesm2022/novo-elements-elements-expansion.mjs +2 -2
  151. package/fesm2022/novo-elements-elements-expansion.mjs.map +1 -1
  152. package/fesm2022/novo-elements-elements-field.mjs +6 -6
  153. package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
  154. package/fesm2022/novo-elements-elements-form.mjs +17 -15
  155. package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
  156. package/fesm2022/novo-elements-elements-header.mjs +2 -2
  157. package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
  158. package/fesm2022/novo-elements-elements-icon.mjs +2 -2
  159. package/fesm2022/novo-elements-elements-icon.mjs.map +1 -1
  160. package/fesm2022/novo-elements-elements-layout.mjs +90 -9
  161. package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
  162. package/fesm2022/novo-elements-elements-list.mjs +10 -10
  163. package/fesm2022/novo-elements-elements-list.mjs.map +1 -1
  164. package/fesm2022/novo-elements-elements-loading.mjs +2 -2
  165. package/fesm2022/novo-elements-elements-loading.mjs.map +1 -1
  166. package/fesm2022/novo-elements-elements-menu.mjs +2 -2
  167. package/fesm2022/novo-elements-elements-menu.mjs.map +1 -1
  168. package/fesm2022/novo-elements-elements-modal.mjs +4 -4
  169. package/fesm2022/novo-elements-elements-modal.mjs.map +1 -1
  170. package/fesm2022/novo-elements-elements-multi-picker.mjs +2 -2
  171. package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
  172. package/fesm2022/novo-elements-elements-picker.mjs +14 -14
  173. package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
  174. package/fesm2022/novo-elements-elements-places.mjs +195 -187
  175. package/fesm2022/novo-elements-elements-places.mjs.map +1 -1
  176. package/fesm2022/novo-elements-elements-popover.mjs +2 -2
  177. package/fesm2022/novo-elements-elements-popover.mjs.map +1 -1
  178. package/fesm2022/novo-elements-elements-progress.mjs +4 -4
  179. package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
  180. package/fesm2022/novo-elements-elements-query-builder.mjs +67 -19
  181. package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
  182. package/fesm2022/novo-elements-elements-radio.mjs +4 -4
  183. package/fesm2022/novo-elements-elements-radio.mjs.map +1 -1
  184. package/fesm2022/novo-elements-elements-search.mjs +2 -2
  185. package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
  186. package/fesm2022/novo-elements-elements-select.mjs +2 -2
  187. package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
  188. package/fesm2022/novo-elements-elements-simple-table.mjs +6 -6
  189. package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
  190. package/fesm2022/novo-elements-elements-stepper.mjs +8 -8
  191. package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
  192. package/fesm2022/novo-elements-elements-switch.mjs +2 -2
  193. package/fesm2022/novo-elements-elements-switch.mjs.map +1 -1
  194. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +70 -10
  195. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  196. package/fesm2022/novo-elements-elements-tabs.mjs +6 -6
  197. package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
  198. package/fesm2022/novo-elements-elements-tiles.mjs +2 -2
  199. package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
  200. package/fesm2022/novo-elements-elements-time-picker.mjs +4 -4
  201. package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
  202. package/fesm2022/novo-elements-elements-tip-well.mjs +2 -2
  203. package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
  204. package/fesm2022/novo-elements-elements-toast.mjs +2 -2
  205. package/fesm2022/novo-elements-elements-toast.mjs.map +1 -1
  206. package/fesm2022/novo-elements-elements-toolbar.mjs +2 -2
  207. package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
  208. package/fesm2022/novo-elements-elements-tooltip.mjs +2 -2
  209. package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
  210. package/fesm2022/novo-elements-elements-value.mjs +2 -2
  211. package/fesm2022/novo-elements-elements-value.mjs.map +1 -1
  212. package/fesm2022/novo-elements-services.mjs +1 -0
  213. package/fesm2022/novo-elements-services.mjs.map +1 -1
  214. package/fesm2022/novo-elements.mjs +14 -0
  215. package/fesm2022/novo-elements.mjs.map +1 -1
  216. package/index.d.ts +14 -0
  217. package/novo-elements.scss +7 -7
  218. package/package.json +1 -1
  219. package/services/index.d.ts +1 -0
  220. package/styles/base.scss +1 -0
  221. package/styles/content/code.scss +2 -2
  222. package/styles/content/forms.scss +2 -2
  223. package/styles/content/misc.scss +3 -3
  224. package/styles/content/range.scss +3 -3
  225. package/styles/iconography.scss +3 -3
  226. package/styles/themes/bh2026.scss +134 -0
  227. package/styles/themes/dark.scss +6 -1
  228. package/styles/themes/light.scss +4 -0
  229. package/styles/typography.scss +3 -3
  230. package/styles/variables.scss +6 -6
@@ -723,7 +723,7 @@ class NovoSelectElement extends NovoSelectMixins {
723
723
  </ng-container>
724
724
  </div>
725
725
  </novo-overlay-template>
726
- `, isInline: true, styles: [":host{display:block;position:relative;width:100%;max-width:800px;min-width:180px;cursor:pointer}:host:focus .novo-select-trigger{border-bottom:1px solid #4a89dc}:host:focus .novo-select-trigger i{color:#000000ba}:host:focus{outline:none}:host .novo-select-trigger{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid rgb(175.4891304348,184.7826086957,192.0108695652);color:var(--text-main, #3d464d);height:2.05rem;position:relative;text-align:left;text-shadow:none;z-index:1;cursor:pointer;text-transform:none;padding:0 1rem 0 .5rem;margin-bottom:-1px;-webkit-appearance:none}:host .novo-select-trigger.text-capitalize{text-transform:capitalize}:host .novo-select-trigger.text-uppercase{text-transform:uppercase}:host .novo-select-trigger.text-nowrap{white-space:nowrap}:host .novo-select-trigger.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .novo-select-trigger.text-size-default{font-size:inherit}:host .novo-select-trigger.text-size-body{font-size:1.3rem}:host .novo-select-trigger.text-size-xs{font-size:1rem}:host .novo-select-trigger.text-size-sm{font-size:1.2rem}:host .novo-select-trigger.text-size-md{font-size:1.3rem}:host .novo-select-trigger.text-size-lg{font-size:1.6rem}:host .novo-select-trigger.text-size-xl{font-size:2rem}:host .novo-select-trigger.text-size-2xl{font-size:2.6rem}:host .novo-select-trigger.text-size-3xl{font-size:3.2rem}:host .novo-select-trigger.text-size-smaller{font-size:.8em}:host .novo-select-trigger.text-size-larger{font-size:1.2em}:host .novo-select-trigger.text-color-black{color:#000}:host .novo-select-trigger.text-color-white{color:#fff}:host .novo-select-trigger.text-color-gray{color:#9e9e9e}:host .novo-select-trigger.text-color-grey{color:#9e9e9e}:host .novo-select-trigger.text-color-offWhite{color:#f7f7f7}:host .novo-select-trigger.text-color-bright{color:#f7f7f7}:host .novo-select-trigger.text-color-light{color:#dbdbdb}:host .novo-select-trigger.text-color-neutral{color:#4f5361}:host .novo-select-trigger.text-color-dark{color:#3d464d}:host .novo-select-trigger.text-color-orange{color:#ff6900}:host .novo-select-trigger.text-color-navigation{color:#202945}:host .novo-select-trigger.text-color-skyBlue{color:#009bdf}:host .novo-select-trigger.text-color-steel{color:#5b6770}:host .novo-select-trigger.text-color-metal{color:#637893}:host .novo-select-trigger.text-color-sand{color:#f4f4f4}:host .novo-select-trigger.text-color-silver{color:#e2e2e2}:host .novo-select-trigger.text-color-stone{color:#bebebe}:host .novo-select-trigger.text-color-ash{color:#a0a0a0}:host .novo-select-trigger.text-color-slate{color:#707070}:host .novo-select-trigger.text-color-onyx{color:#526980}:host .novo-select-trigger.text-color-charcoal{color:#282828}:host .novo-select-trigger.text-color-moonlight{color:#1a242f}:host .novo-select-trigger.text-color-midnight{color:#202945}:host .novo-select-trigger.text-color-darkness{color:#161f27}:host .novo-select-trigger.text-color-navy{color:#0d2d42}:host .novo-select-trigger.text-color-aqua{color:#3bafda}:host .novo-select-trigger.text-color-ocean{color:#4a89dc}:host .novo-select-trigger.text-color-mint{color:#37bc9b}:host .novo-select-trigger.text-color-grass{color:#8cc152}:host .novo-select-trigger.text-color-sunflower{color:#f6b042}:host .novo-select-trigger.text-color-bittersweet{color:#eb6845}:host .novo-select-trigger.text-color-grapefruit{color:#da4453}:host .novo-select-trigger.text-color-carnation{color:#d770ad}:host .novo-select-trigger.text-color-lavender{color:#967adc}:host .novo-select-trigger.text-color-mountain{color:#9678b6}:host .novo-select-trigger.text-color-info{color:#4a89dc}:host .novo-select-trigger.text-color-positive{color:#4a89dc}:host .novo-select-trigger.text-color-success{color:#8cc152}:host .novo-select-trigger.text-color-negative{color:#da4453}:host .novo-select-trigger.text-color-danger{color:#da4453}:host .novo-select-trigger.text-color-error{color:#da4453}:host .novo-select-trigger.text-color-warning{color:#f6b042}:host .novo-select-trigger.text-color-empty{color:#cccdcc}:host .novo-select-trigger.text-color-disabled{color:#bebebe}:host .novo-select-trigger.text-color-background{color:#f7f7f7}:host .novo-select-trigger.text-color-backgroundDark{color:#e2e2e2}:host .novo-select-trigger.text-color-presentation{color:#5b6770}:host .novo-select-trigger.text-color-bullhorn{color:#ff6900}:host .novo-select-trigger.text-color-pulse{color:#3bafda}:host .novo-select-trigger.text-color-company{color:#39d}:host .novo-select-trigger.text-color-candidate{color:#4b7}:host .novo-select-trigger.text-color-lead{color:#a69}:host .novo-select-trigger.text-color-contact{color:#fa4}:host .novo-select-trigger.text-color-clientcontact{color:#fa4}:host .novo-select-trigger.text-color-opportunity{color:#625}:host .novo-select-trigger.text-color-job{color:#b56}:host .novo-select-trigger.text-color-joborder{color:#b56}:host .novo-select-trigger.text-color-submission{color:#a9adbb}:host .novo-select-trigger.text-color-sendout{color:#747884}:host .novo-select-trigger.text-color-placement{color:#0b344f}:host .novo-select-trigger.text-color-note{color:#747884}:host .novo-select-trigger.text-color-contract{color:#454ea0}:host .novo-select-trigger.text-color-task{color:#4f5361}:host .novo-select-trigger.text-color-jobCode{color:#696d79}:host .novo-select-trigger.text-color-earnCode{color:#696d79}:host .novo-select-trigger.text-color-invoiceStatement{color:#696d79}:host .novo-select-trigger.text-color-billableCharge{color:#696d79}:host .novo-select-trigger.text-color-payableCharge{color:#696d79}:host .novo-select-trigger.text-color-user{color:#696d79}:host .novo-select-trigger.text-color-corporateUser{color:#696d79}:host .novo-select-trigger.text-color-distributionList{color:#696d79}:host .novo-select-trigger.text-color-credential{color:#696d79}:host .novo-select-trigger.text-color-person{color:#696d79}:host .novo-select-trigger.margin-before{margin-top:.4rem}:host .novo-select-trigger.margin-after{margin-bottom:.8rem}:host .novo-select-trigger.text-length-small{max-width:40ch}:host .novo-select-trigger.text-length-medium{max-width:55ch}:host .novo-select-trigger.text-length-large{max-width:70ch}:host .novo-select-trigger.text-weight-hairline{font-weight:100}:host .novo-select-trigger.text-weight-thin{font-weight:200}:host .novo-select-trigger.text-weight-light{font-weight:300}:host .novo-select-trigger.text-weight-normal{font-weight:400}:host .novo-select-trigger.text-weight-medium{font-weight:500}:host .novo-select-trigger.text-weight-semibold{font-weight:600}:host .novo-select-trigger.text-weight-bold{font-weight:700}:host .novo-select-trigger.text-weight-extrabold{font-weight:800}:host .novo-select-trigger.text-weight-heavy{font-weight:900}:host .novo-select-trigger.text-weight-lighter{font-weight:lighter}:host .novo-select-trigger.text-weight-bolder{font-weight:bolder}:host .novo-select-trigger.empty{color:#a9a9a9}:host .novo-select-trigger:hover{border-bottom:1px solid rgb(94.8152173913,108.8043478261,119.6847826087)}:host .novo-select-trigger .novo-select-placeholder{color:var(--form-placeholder)}:host .novo-select-trigger i{font-size:.8em;color:#3d464d;position:absolute;right:0}:host[disabled],:host.novo-select-disabled{pointer-events:none}:host[disabled] div[type=button],:host.novo-select-disabled div[type=button]{color:#9e9e9e}:host[disabled] i,:host.novo-select-disabled i{color:#9e9e9e!important}:host[disabled] .novo-select-trigger,:host.novo-select-disabled .novo-select-trigger{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}:host[disabled] .novo-select-trigger:hover,:host.novo-select-disabled .novo-select-trigger:hover{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}.novo-select-list{background-color:var(--background-bright);cursor:default;list-style:none;overflow:auto;margin:0;padding:0;width:100%;box-shadow:0 -1px 3px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;font-size:1rem;z-index:-1;opacity:0}.novo-select-list.active{z-index:1000;max-height:219px;min-width:200px;width:100%;max-width:800px;width:inherit;overflow:auto;opacity:1}.novo-select-list .select-item{height:35px}.select-header button{text-transform:uppercase}.select-header button.header{color:#4a89dc;position:relative;text-align:left;cursor:pointer;height:3rem;margin:0;padding:.5rem 1.6rem 0 0;box-sizing:border-box;border:none;display:block;align-items:center;justify-content:space-between;font-size:1rem}.select-header button.header:focus,.select-header button.header:hover{color:#4f4f4f}.select-header button.header i{color:#4a89dc;padding-right:10px}.select-header button.header span{text-align:left}.select-header div.active{width:100%;float:right;padding:5px}.select-header div.active footer{float:right}.select-header div.active button{display:inline-block;border:none;float:left;width:auto;font-weight:500;font-size:.8rem;color:#acacac}.select-header div.active button:hover{color:#868686}.select-header div.active button.primary{color:#4a89dc}.select-header div.active button.primary:hover{color:#2363b6}.select-header div.active input{display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.12);color:#000000ba;height:2.05rem;position:relative;text-align:left;text-shadow:none;width:100%;z-index:1;cursor:pointer;text-transform:none;padding-top:10px;font-size:1rem}.select-header div.active input.empty{color:#a9a9a9}.select-header div.active input:focus{outline:none}.select-header div.active input:hover{border-bottom:1px solid #4a89dc}.select-header div.active input.invalid{border-bottom:1px solid #da4453}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "secondIcon", "disabled"] }, { kind: "component", type: i7.NovoDividerComponent, selector: "novo-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { kind: "component", type: i3.NovoOverlayTemplateComponent, selector: "novo-overlay-template", inputs: ["position", "scrollStrategy", "width", "minWidth", "height", "closeOnSelect", "hasBackdrop", "parent"], outputs: ["select", "opening", "closing", "backDropClicked"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "tooltipPosition", "tooltipType", "tooltipSize", "tooltipBounce", "tooltipNoAnimate", "tooltipRounded", "tooltipAlways", "tooltipPreline", "removeTooltipArrow", "tooltipAutoPosition", "tooltipIsHTML", "tooltipCloseOnClick", "tooltipOnOverflow", "tooltipActive"] }, { kind: "component", type: i9.NovoIconComponent, selector: "novo-icon", inputs: ["raised", "theme", "shape", "color", "size", "smaller", "larger", "alt", "name"] }, { kind: "pipe", type: i10.HighlightPipe, name: "highlight" }] }); }
726
+ `, isInline: true, styles: [":host{display:block;position:relative;width:100%;max-width:800px;min-width:180px;cursor:pointer}:host:focus .novo-select-trigger{border-bottom:1px solid var(--color-positive)}:host:focus .novo-select-trigger i{color:#000000ba}:host:focus{outline:none}:host .novo-select-trigger{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid hsl(from var(--color-dark) h s calc(l + 45));color:var(--text-main, #3d464d);height:2.05rem;position:relative;text-align:left;text-shadow:none;z-index:1;cursor:pointer;text-transform:none;padding:0 var(--spacing-md) 0 var(--spacing-sm);margin-bottom:-1px;-webkit-appearance:none}:host .novo-select-trigger.text-capitalize{text-transform:capitalize}:host .novo-select-trigger.text-uppercase{text-transform:uppercase}:host .novo-select-trigger.text-nowrap{white-space:nowrap}:host .novo-select-trigger.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .novo-select-trigger.text-size-default{font-size:inherit}:host .novo-select-trigger.text-size-body{font-size:var(--font-size-body)}:host .novo-select-trigger.text-size-xs{font-size:var(--font-size-xs)}:host .novo-select-trigger.text-size-sm{font-size:var(--font-size-sm)}:host .novo-select-trigger.text-size-md{font-size:var(--font-size-md)}:host .novo-select-trigger.text-size-lg{font-size:var(--font-size-lg)}:host .novo-select-trigger.text-size-xl{font-size:var(--font-size-xl)}:host .novo-select-trigger.text-size-2xl{font-size:var(--font-size-2xl)}:host .novo-select-trigger.text-size-3xl{font-size:var(--font-size-3xl)}:host .novo-select-trigger.text-size-smaller{font-size:.8em}:host .novo-select-trigger.text-size-larger{font-size:1.2em}:host .novo-select-trigger.text-color-black{color:var(--color-black)}:host .novo-select-trigger.text-color-white{color:var(--color-white)}:host .novo-select-trigger.text-color-gray{color:var(--color-gray)}:host .novo-select-trigger.text-color-grey{color:var(--color-grey)}:host .novo-select-trigger.text-color-offWhite{color:var(--color-off-white)}:host .novo-select-trigger.text-color-bright{color:var(--color-bright)}:host .novo-select-trigger.text-color-light{color:var(--color-light)}:host .novo-select-trigger.text-color-neutral{color:var(--color-neutral)}:host .novo-select-trigger.text-color-dark{color:var(--color-dark)}:host .novo-select-trigger.text-color-orange{color:var(--color-orange)}:host .novo-select-trigger.text-color-navigation{color:var(--color-navigation)}:host .novo-select-trigger.text-color-skyBlue{color:var(--color-sky-blue)}:host .novo-select-trigger.text-color-steel{color:var(--color-steel)}:host .novo-select-trigger.text-color-metal{color:var(--color-metal)}:host .novo-select-trigger.text-color-sand{color:var(--color-sand)}:host .novo-select-trigger.text-color-silver{color:var(--color-silver)}:host .novo-select-trigger.text-color-stone{color:var(--color-stone)}:host .novo-select-trigger.text-color-ash{color:var(--color-ash)}:host .novo-select-trigger.text-color-anonymous{color:var(--color-anonymous)}:host .novo-select-trigger.text-color-slate{color:var(--color-slate)}:host .novo-select-trigger.text-color-onyx{color:var(--color-onyx)}:host .novo-select-trigger.text-color-charcoal{color:var(--color-charcoal)}:host .novo-select-trigger.text-color-moonlight{color:var(--color-moonlight)}:host .novo-select-trigger.text-color-midnight{color:var(--color-midnight)}:host .novo-select-trigger.text-color-darkness{color:var(--color-darkness)}:host .novo-select-trigger.text-color-navy{color:var(--color-navy)}:host .novo-select-trigger.text-color-aqua{color:var(--color-aqua)}:host .novo-select-trigger.text-color-ocean{color:var(--color-ocean)}:host .novo-select-trigger.text-color-mint{color:var(--color-mint)}:host .novo-select-trigger.text-color-grass{color:var(--color-grass)}:host .novo-select-trigger.text-color-sunflower{color:var(--color-sunflower)}:host .novo-select-trigger.text-color-bittersweet{color:var(--color-bittersweet)}:host .novo-select-trigger.text-color-grapefruit{color:var(--color-grapefruit)}:host .novo-select-trigger.text-color-carnation{color:var(--color-carnation)}:host .novo-select-trigger.text-color-lavender{color:var(--color-lavender)}:host .novo-select-trigger.text-color-mountain{color:var(--color-mountain)}:host .novo-select-trigger.text-color-info{color:var(--color-info)}:host .novo-select-trigger.text-color-positive{color:var(--color-positive)}:host .novo-select-trigger.text-color-success{color:var(--color-success)}:host .novo-select-trigger.text-color-negative{color:var(--color-negative)}:host .novo-select-trigger.text-color-danger{color:var(--color-danger)}:host .novo-select-trigger.text-color-error{color:var(--color-error)}:host .novo-select-trigger.text-color-warning{color:var(--color-warning)}:host .novo-select-trigger.text-color-empty{color:var(--color-empty)}:host .novo-select-trigger.text-color-disabled{color:var(--color-disabled)}:host .novo-select-trigger.text-color-background{color:var(--color-background)}:host .novo-select-trigger.text-color-backgroundDark{color:var(--color-background-dark)}:host .novo-select-trigger.text-color-border{color:var(--color-border)}:host .novo-select-trigger.text-color-border2{color:var(--color-border2)}:host .novo-select-trigger.text-color-text{color:var(--color-text)}:host .novo-select-trigger.text-color-presentation{color:var(--color-presentation)}:host .novo-select-trigger.text-color-bullhorn{color:var(--color-bullhorn)}:host .novo-select-trigger.text-color-pulse{color:var(--color-pulse)}:host .novo-select-trigger.text-color-fastFind{color:var(--color-fast-find)}:host .novo-select-trigger.text-color-toast{color:var(--color-toast)}:host .novo-select-trigger.text-color-company{color:var(--color-company)}:host .novo-select-trigger.text-color-candidate{color:var(--color-candidate)}:host .novo-select-trigger.text-color-lead{color:var(--color-lead)}:host .novo-select-trigger.text-color-contact{color:var(--color-contact)}:host .novo-select-trigger.text-color-clientcontact{color:var(--color-clientcontact)}:host .novo-select-trigger.text-color-opportunity{color:var(--color-opportunity)}:host .novo-select-trigger.text-color-job{color:var(--color-job)}:host .novo-select-trigger.text-color-joborder{color:var(--color-joborder)}:host .novo-select-trigger.text-color-submission{color:var(--color-submission)}:host .novo-select-trigger.text-color-sendout{color:var(--color-sendout)}:host .novo-select-trigger.text-color-placement{color:var(--color-placement)}:host .novo-select-trigger.text-color-note{color:var(--color-note)}:host .novo-select-trigger.text-color-contract{color:var(--color-contract)}:host .novo-select-trigger.text-color-task{color:var(--color-task)}:host .novo-select-trigger.text-color-jobCode{color:var(--color-job-code)}:host .novo-select-trigger.text-color-earnCode{color:var(--color-earn-code)}:host .novo-select-trigger.text-color-invoiceStatement{color:var(--color-invoice-statement)}:host .novo-select-trigger.text-color-billableCharge{color:var(--color-billable-charge)}:host .novo-select-trigger.text-color-payableCharge{color:var(--color-payable-charge)}:host .novo-select-trigger.text-color-user{color:var(--color-user)}:host .novo-select-trigger.text-color-corporateUser{color:var(--color-corporate-user)}:host .novo-select-trigger.text-color-distributionList{color:var(--color-distribution-list)}:host .novo-select-trigger.text-color-credential{color:var(--color-credential)}:host .novo-select-trigger.text-color-person{color:var(--color-person)}:host .novo-select-trigger.margin-before{margin-top:.4rem}:host .novo-select-trigger.margin-after{margin-bottom:.8rem}:host .novo-select-trigger.text-length-small{max-width:40ch}:host .novo-select-trigger.text-length-medium{max-width:55ch}:host .novo-select-trigger.text-length-large{max-width:70ch}:host .novo-select-trigger.text-weight-hairline{font-weight:var(--font-weight-hairline)}:host .novo-select-trigger.text-weight-thin{font-weight:var(--font-weight-thin)}:host .novo-select-trigger.text-weight-light{font-weight:var(--font-weight-light)}:host .novo-select-trigger.text-weight-normal{font-weight:var(--font-weight-normal)}:host .novo-select-trigger.text-weight-medium{font-weight:var(--font-weight-medium)}:host .novo-select-trigger.text-weight-semibold{font-weight:var(--font-weight-semibold)}:host .novo-select-trigger.text-weight-bold{font-weight:var(--font-weight-bold)}:host .novo-select-trigger.text-weight-extrabold{font-weight:var(--font-weight-extrabold)}:host .novo-select-trigger.text-weight-heavy{font-weight:var(--font-weight-heavy)}:host .novo-select-trigger.text-weight-lighter{font-weight:lighter}:host .novo-select-trigger.text-weight-bolder{font-weight:bolder}:host .novo-select-trigger.empty{color:#a9a9a9}:host .novo-select-trigger:hover{border-bottom:1px solid hsl(from var(--color-dark) h s calc(l + 15))}:host .novo-select-trigger .novo-select-placeholder{color:var(--form-placeholder)}:host .novo-select-trigger i{font-size:.8em;color:var(--font-color-base);position:absolute;right:0}:host[disabled],:host.novo-select-disabled{pointer-events:none}:host[disabled] div[type=button],:host.novo-select-disabled div[type=button]{color:#9e9e9e}:host[disabled] i,:host.novo-select-disabled i{color:#9e9e9e!important}:host[disabled] .novo-select-trigger,:host.novo-select-disabled .novo-select-trigger{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}:host[disabled] .novo-select-trigger:hover,:host.novo-select-disabled .novo-select-trigger:hover{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}.novo-select-list{background-color:var(--background-bright);border-radius:var(--border-radius-sm);cursor:default;list-style:none;overflow:auto;margin:0;padding:0;width:100%;box-shadow:0 -1px 3px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;font-size:var(--font-size-xs);z-index:-1;opacity:0}.novo-select-list.active{z-index:1000;max-height:219px;min-width:200px;width:100%;max-width:800px;width:inherit;overflow:auto;opacity:1}.novo-select-list .select-item{height:35px}.select-header button{text-transform:uppercase}.select-header button.header{color:var(--color-positive);position:relative;text-align:left;cursor:pointer;height:3rem;margin:0;padding:.5rem 1.6rem 0 0;box-sizing:border-box;border:none;display:block;align-items:center;justify-content:space-between;font-size:var(--font-size-xs)}.select-header button.header:focus,.select-header button.header:hover{color:hsl(from var(--color-light) h s calc(l - 55))}.select-header button.header i{color:var(--color-positive);padding-right:10px}.select-header button.header span{text-align:left}.select-header div.active{width:100%;float:right;padding:5px}.select-header div.active footer{float:right}.select-header div.active button{display:inline-block;border:none;float:left;width:auto;font-weight:500;font-size:.8rem;color:#acacac}.select-header div.active button:hover{color:#868686}.select-header div.active button.primary{color:var(--color-positive)}.select-header div.active button.primary:hover{color:hsl(from var(--color-positive) h s calc(l - 15))}.select-header div.active input{display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.12);color:#000000ba;height:2.05rem;position:relative;text-align:left;text-shadow:none;width:100%;z-index:1;cursor:pointer;text-transform:none;padding-top:10px;font-size:var(--font-size-xs)}.select-header div.active input.empty{color:#a9a9a9}.select-header div.active input:focus{outline:none}.select-header div.active input:hover{border-bottom:1px solid var(--color-positive)}.select-header div.active input.invalid{border-bottom:1px solid #da4453}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "secondIcon", "disabled"] }, { kind: "component", type: i7.NovoDividerComponent, selector: "novo-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i3.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { kind: "component", type: i3.NovoOverlayTemplateComponent, selector: "novo-overlay-template", inputs: ["position", "scrollStrategy", "width", "minWidth", "height", "closeOnSelect", "hasBackdrop", "parent"], outputs: ["select", "opening", "closing", "backDropClicked"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "tooltipPosition", "tooltipType", "tooltipSize", "tooltipBounce", "tooltipNoAnimate", "tooltipRounded", "tooltipAlways", "tooltipPreline", "removeTooltipArrow", "tooltipAutoPosition", "tooltipIsHTML", "tooltipCloseOnClick", "tooltipOnOverflow", "tooltipActive"] }, { kind: "component", type: i9.NovoIconComponent, selector: "novo-icon", inputs: ["raised", "theme", "shape", "color", "size", "smaller", "larger", "alt", "name"] }, { kind: "pipe", type: i10.HighlightPipe, name: "highlight" }] }); }
727
727
  }
728
728
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoSelectElement, decorators: [{
729
729
  type: Component,
@@ -808,7 +808,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
808
808
  '[class.novo-select-empty]': 'empty',
809
809
  '[class.novo-select-multiple]': 'multiple',
810
810
  '[tabindex]': 'disabled ? -1 : 0',
811
- }, standalone: false, styles: [":host{display:block;position:relative;width:100%;max-width:800px;min-width:180px;cursor:pointer}:host:focus .novo-select-trigger{border-bottom:1px solid #4a89dc}:host:focus .novo-select-trigger i{color:#000000ba}:host:focus{outline:none}:host .novo-select-trigger{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid rgb(175.4891304348,184.7826086957,192.0108695652);color:var(--text-main, #3d464d);height:2.05rem;position:relative;text-align:left;text-shadow:none;z-index:1;cursor:pointer;text-transform:none;padding:0 1rem 0 .5rem;margin-bottom:-1px;-webkit-appearance:none}:host .novo-select-trigger.text-capitalize{text-transform:capitalize}:host .novo-select-trigger.text-uppercase{text-transform:uppercase}:host .novo-select-trigger.text-nowrap{white-space:nowrap}:host .novo-select-trigger.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .novo-select-trigger.text-size-default{font-size:inherit}:host .novo-select-trigger.text-size-body{font-size:1.3rem}:host .novo-select-trigger.text-size-xs{font-size:1rem}:host .novo-select-trigger.text-size-sm{font-size:1.2rem}:host .novo-select-trigger.text-size-md{font-size:1.3rem}:host .novo-select-trigger.text-size-lg{font-size:1.6rem}:host .novo-select-trigger.text-size-xl{font-size:2rem}:host .novo-select-trigger.text-size-2xl{font-size:2.6rem}:host .novo-select-trigger.text-size-3xl{font-size:3.2rem}:host .novo-select-trigger.text-size-smaller{font-size:.8em}:host .novo-select-trigger.text-size-larger{font-size:1.2em}:host .novo-select-trigger.text-color-black{color:#000}:host .novo-select-trigger.text-color-white{color:#fff}:host .novo-select-trigger.text-color-gray{color:#9e9e9e}:host .novo-select-trigger.text-color-grey{color:#9e9e9e}:host .novo-select-trigger.text-color-offWhite{color:#f7f7f7}:host .novo-select-trigger.text-color-bright{color:#f7f7f7}:host .novo-select-trigger.text-color-light{color:#dbdbdb}:host .novo-select-trigger.text-color-neutral{color:#4f5361}:host .novo-select-trigger.text-color-dark{color:#3d464d}:host .novo-select-trigger.text-color-orange{color:#ff6900}:host .novo-select-trigger.text-color-navigation{color:#202945}:host .novo-select-trigger.text-color-skyBlue{color:#009bdf}:host .novo-select-trigger.text-color-steel{color:#5b6770}:host .novo-select-trigger.text-color-metal{color:#637893}:host .novo-select-trigger.text-color-sand{color:#f4f4f4}:host .novo-select-trigger.text-color-silver{color:#e2e2e2}:host .novo-select-trigger.text-color-stone{color:#bebebe}:host .novo-select-trigger.text-color-ash{color:#a0a0a0}:host .novo-select-trigger.text-color-slate{color:#707070}:host .novo-select-trigger.text-color-onyx{color:#526980}:host .novo-select-trigger.text-color-charcoal{color:#282828}:host .novo-select-trigger.text-color-moonlight{color:#1a242f}:host .novo-select-trigger.text-color-midnight{color:#202945}:host .novo-select-trigger.text-color-darkness{color:#161f27}:host .novo-select-trigger.text-color-navy{color:#0d2d42}:host .novo-select-trigger.text-color-aqua{color:#3bafda}:host .novo-select-trigger.text-color-ocean{color:#4a89dc}:host .novo-select-trigger.text-color-mint{color:#37bc9b}:host .novo-select-trigger.text-color-grass{color:#8cc152}:host .novo-select-trigger.text-color-sunflower{color:#f6b042}:host .novo-select-trigger.text-color-bittersweet{color:#eb6845}:host .novo-select-trigger.text-color-grapefruit{color:#da4453}:host .novo-select-trigger.text-color-carnation{color:#d770ad}:host .novo-select-trigger.text-color-lavender{color:#967adc}:host .novo-select-trigger.text-color-mountain{color:#9678b6}:host .novo-select-trigger.text-color-info{color:#4a89dc}:host .novo-select-trigger.text-color-positive{color:#4a89dc}:host .novo-select-trigger.text-color-success{color:#8cc152}:host .novo-select-trigger.text-color-negative{color:#da4453}:host .novo-select-trigger.text-color-danger{color:#da4453}:host .novo-select-trigger.text-color-error{color:#da4453}:host .novo-select-trigger.text-color-warning{color:#f6b042}:host .novo-select-trigger.text-color-empty{color:#cccdcc}:host .novo-select-trigger.text-color-disabled{color:#bebebe}:host .novo-select-trigger.text-color-background{color:#f7f7f7}:host .novo-select-trigger.text-color-backgroundDark{color:#e2e2e2}:host .novo-select-trigger.text-color-presentation{color:#5b6770}:host .novo-select-trigger.text-color-bullhorn{color:#ff6900}:host .novo-select-trigger.text-color-pulse{color:#3bafda}:host .novo-select-trigger.text-color-company{color:#39d}:host .novo-select-trigger.text-color-candidate{color:#4b7}:host .novo-select-trigger.text-color-lead{color:#a69}:host .novo-select-trigger.text-color-contact{color:#fa4}:host .novo-select-trigger.text-color-clientcontact{color:#fa4}:host .novo-select-trigger.text-color-opportunity{color:#625}:host .novo-select-trigger.text-color-job{color:#b56}:host .novo-select-trigger.text-color-joborder{color:#b56}:host .novo-select-trigger.text-color-submission{color:#a9adbb}:host .novo-select-trigger.text-color-sendout{color:#747884}:host .novo-select-trigger.text-color-placement{color:#0b344f}:host .novo-select-trigger.text-color-note{color:#747884}:host .novo-select-trigger.text-color-contract{color:#454ea0}:host .novo-select-trigger.text-color-task{color:#4f5361}:host .novo-select-trigger.text-color-jobCode{color:#696d79}:host .novo-select-trigger.text-color-earnCode{color:#696d79}:host .novo-select-trigger.text-color-invoiceStatement{color:#696d79}:host .novo-select-trigger.text-color-billableCharge{color:#696d79}:host .novo-select-trigger.text-color-payableCharge{color:#696d79}:host .novo-select-trigger.text-color-user{color:#696d79}:host .novo-select-trigger.text-color-corporateUser{color:#696d79}:host .novo-select-trigger.text-color-distributionList{color:#696d79}:host .novo-select-trigger.text-color-credential{color:#696d79}:host .novo-select-trigger.text-color-person{color:#696d79}:host .novo-select-trigger.margin-before{margin-top:.4rem}:host .novo-select-trigger.margin-after{margin-bottom:.8rem}:host .novo-select-trigger.text-length-small{max-width:40ch}:host .novo-select-trigger.text-length-medium{max-width:55ch}:host .novo-select-trigger.text-length-large{max-width:70ch}:host .novo-select-trigger.text-weight-hairline{font-weight:100}:host .novo-select-trigger.text-weight-thin{font-weight:200}:host .novo-select-trigger.text-weight-light{font-weight:300}:host .novo-select-trigger.text-weight-normal{font-weight:400}:host .novo-select-trigger.text-weight-medium{font-weight:500}:host .novo-select-trigger.text-weight-semibold{font-weight:600}:host .novo-select-trigger.text-weight-bold{font-weight:700}:host .novo-select-trigger.text-weight-extrabold{font-weight:800}:host .novo-select-trigger.text-weight-heavy{font-weight:900}:host .novo-select-trigger.text-weight-lighter{font-weight:lighter}:host .novo-select-trigger.text-weight-bolder{font-weight:bolder}:host .novo-select-trigger.empty{color:#a9a9a9}:host .novo-select-trigger:hover{border-bottom:1px solid rgb(94.8152173913,108.8043478261,119.6847826087)}:host .novo-select-trigger .novo-select-placeholder{color:var(--form-placeholder)}:host .novo-select-trigger i{font-size:.8em;color:#3d464d;position:absolute;right:0}:host[disabled],:host.novo-select-disabled{pointer-events:none}:host[disabled] div[type=button],:host.novo-select-disabled div[type=button]{color:#9e9e9e}:host[disabled] i,:host.novo-select-disabled i{color:#9e9e9e!important}:host[disabled] .novo-select-trigger,:host.novo-select-disabled .novo-select-trigger{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}:host[disabled] .novo-select-trigger:hover,:host.novo-select-disabled .novo-select-trigger:hover{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}.novo-select-list{background-color:var(--background-bright);cursor:default;list-style:none;overflow:auto;margin:0;padding:0;width:100%;box-shadow:0 -1px 3px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;font-size:1rem;z-index:-1;opacity:0}.novo-select-list.active{z-index:1000;max-height:219px;min-width:200px;width:100%;max-width:800px;width:inherit;overflow:auto;opacity:1}.novo-select-list .select-item{height:35px}.select-header button{text-transform:uppercase}.select-header button.header{color:#4a89dc;position:relative;text-align:left;cursor:pointer;height:3rem;margin:0;padding:.5rem 1.6rem 0 0;box-sizing:border-box;border:none;display:block;align-items:center;justify-content:space-between;font-size:1rem}.select-header button.header:focus,.select-header button.header:hover{color:#4f4f4f}.select-header button.header i{color:#4a89dc;padding-right:10px}.select-header button.header span{text-align:left}.select-header div.active{width:100%;float:right;padding:5px}.select-header div.active footer{float:right}.select-header div.active button{display:inline-block;border:none;float:left;width:auto;font-weight:500;font-size:.8rem;color:#acacac}.select-header div.active button:hover{color:#868686}.select-header div.active button.primary{color:#4a89dc}.select-header div.active button.primary:hover{color:#2363b6}.select-header div.active input{display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.12);color:#000000ba;height:2.05rem;position:relative;text-align:left;text-shadow:none;width:100%;z-index:1;cursor:pointer;text-transform:none;padding-top:10px;font-size:1rem}.select-header div.active input.empty{color:#a9a9a9}.select-header div.active input:focus{outline:none}.select-header div.active input:hover{border-bottom:1px solid #4a89dc}.select-header div.active input.invalid{border-bottom:1px solid #da4453}\n"] }]
811
+ }, standalone: false, styles: [":host{display:block;position:relative;width:100%;max-width:800px;min-width:180px;cursor:pointer}:host:focus .novo-select-trigger{border-bottom:1px solid var(--color-positive)}:host:focus .novo-select-trigger i{color:#000000ba}:host:focus{outline:none}:host .novo-select-trigger{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid hsl(from var(--color-dark) h s calc(l + 45));color:var(--text-main, #3d464d);height:2.05rem;position:relative;text-align:left;text-shadow:none;z-index:1;cursor:pointer;text-transform:none;padding:0 var(--spacing-md) 0 var(--spacing-sm);margin-bottom:-1px;-webkit-appearance:none}:host .novo-select-trigger.text-capitalize{text-transform:capitalize}:host .novo-select-trigger.text-uppercase{text-transform:uppercase}:host .novo-select-trigger.text-nowrap{white-space:nowrap}:host .novo-select-trigger.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .novo-select-trigger.text-size-default{font-size:inherit}:host .novo-select-trigger.text-size-body{font-size:var(--font-size-body)}:host .novo-select-trigger.text-size-xs{font-size:var(--font-size-xs)}:host .novo-select-trigger.text-size-sm{font-size:var(--font-size-sm)}:host .novo-select-trigger.text-size-md{font-size:var(--font-size-md)}:host .novo-select-trigger.text-size-lg{font-size:var(--font-size-lg)}:host .novo-select-trigger.text-size-xl{font-size:var(--font-size-xl)}:host .novo-select-trigger.text-size-2xl{font-size:var(--font-size-2xl)}:host .novo-select-trigger.text-size-3xl{font-size:var(--font-size-3xl)}:host .novo-select-trigger.text-size-smaller{font-size:.8em}:host .novo-select-trigger.text-size-larger{font-size:1.2em}:host .novo-select-trigger.text-color-black{color:var(--color-black)}:host .novo-select-trigger.text-color-white{color:var(--color-white)}:host .novo-select-trigger.text-color-gray{color:var(--color-gray)}:host .novo-select-trigger.text-color-grey{color:var(--color-grey)}:host .novo-select-trigger.text-color-offWhite{color:var(--color-off-white)}:host .novo-select-trigger.text-color-bright{color:var(--color-bright)}:host .novo-select-trigger.text-color-light{color:var(--color-light)}:host .novo-select-trigger.text-color-neutral{color:var(--color-neutral)}:host .novo-select-trigger.text-color-dark{color:var(--color-dark)}:host .novo-select-trigger.text-color-orange{color:var(--color-orange)}:host .novo-select-trigger.text-color-navigation{color:var(--color-navigation)}:host .novo-select-trigger.text-color-skyBlue{color:var(--color-sky-blue)}:host .novo-select-trigger.text-color-steel{color:var(--color-steel)}:host .novo-select-trigger.text-color-metal{color:var(--color-metal)}:host .novo-select-trigger.text-color-sand{color:var(--color-sand)}:host .novo-select-trigger.text-color-silver{color:var(--color-silver)}:host .novo-select-trigger.text-color-stone{color:var(--color-stone)}:host .novo-select-trigger.text-color-ash{color:var(--color-ash)}:host .novo-select-trigger.text-color-anonymous{color:var(--color-anonymous)}:host .novo-select-trigger.text-color-slate{color:var(--color-slate)}:host .novo-select-trigger.text-color-onyx{color:var(--color-onyx)}:host .novo-select-trigger.text-color-charcoal{color:var(--color-charcoal)}:host .novo-select-trigger.text-color-moonlight{color:var(--color-moonlight)}:host .novo-select-trigger.text-color-midnight{color:var(--color-midnight)}:host .novo-select-trigger.text-color-darkness{color:var(--color-darkness)}:host .novo-select-trigger.text-color-navy{color:var(--color-navy)}:host .novo-select-trigger.text-color-aqua{color:var(--color-aqua)}:host .novo-select-trigger.text-color-ocean{color:var(--color-ocean)}:host .novo-select-trigger.text-color-mint{color:var(--color-mint)}:host .novo-select-trigger.text-color-grass{color:var(--color-grass)}:host .novo-select-trigger.text-color-sunflower{color:var(--color-sunflower)}:host .novo-select-trigger.text-color-bittersweet{color:var(--color-bittersweet)}:host .novo-select-trigger.text-color-grapefruit{color:var(--color-grapefruit)}:host .novo-select-trigger.text-color-carnation{color:var(--color-carnation)}:host .novo-select-trigger.text-color-lavender{color:var(--color-lavender)}:host .novo-select-trigger.text-color-mountain{color:var(--color-mountain)}:host .novo-select-trigger.text-color-info{color:var(--color-info)}:host .novo-select-trigger.text-color-positive{color:var(--color-positive)}:host .novo-select-trigger.text-color-success{color:var(--color-success)}:host .novo-select-trigger.text-color-negative{color:var(--color-negative)}:host .novo-select-trigger.text-color-danger{color:var(--color-danger)}:host .novo-select-trigger.text-color-error{color:var(--color-error)}:host .novo-select-trigger.text-color-warning{color:var(--color-warning)}:host .novo-select-trigger.text-color-empty{color:var(--color-empty)}:host .novo-select-trigger.text-color-disabled{color:var(--color-disabled)}:host .novo-select-trigger.text-color-background{color:var(--color-background)}:host .novo-select-trigger.text-color-backgroundDark{color:var(--color-background-dark)}:host .novo-select-trigger.text-color-border{color:var(--color-border)}:host .novo-select-trigger.text-color-border2{color:var(--color-border2)}:host .novo-select-trigger.text-color-text{color:var(--color-text)}:host .novo-select-trigger.text-color-presentation{color:var(--color-presentation)}:host .novo-select-trigger.text-color-bullhorn{color:var(--color-bullhorn)}:host .novo-select-trigger.text-color-pulse{color:var(--color-pulse)}:host .novo-select-trigger.text-color-fastFind{color:var(--color-fast-find)}:host .novo-select-trigger.text-color-toast{color:var(--color-toast)}:host .novo-select-trigger.text-color-company{color:var(--color-company)}:host .novo-select-trigger.text-color-candidate{color:var(--color-candidate)}:host .novo-select-trigger.text-color-lead{color:var(--color-lead)}:host .novo-select-trigger.text-color-contact{color:var(--color-contact)}:host .novo-select-trigger.text-color-clientcontact{color:var(--color-clientcontact)}:host .novo-select-trigger.text-color-opportunity{color:var(--color-opportunity)}:host .novo-select-trigger.text-color-job{color:var(--color-job)}:host .novo-select-trigger.text-color-joborder{color:var(--color-joborder)}:host .novo-select-trigger.text-color-submission{color:var(--color-submission)}:host .novo-select-trigger.text-color-sendout{color:var(--color-sendout)}:host .novo-select-trigger.text-color-placement{color:var(--color-placement)}:host .novo-select-trigger.text-color-note{color:var(--color-note)}:host .novo-select-trigger.text-color-contract{color:var(--color-contract)}:host .novo-select-trigger.text-color-task{color:var(--color-task)}:host .novo-select-trigger.text-color-jobCode{color:var(--color-job-code)}:host .novo-select-trigger.text-color-earnCode{color:var(--color-earn-code)}:host .novo-select-trigger.text-color-invoiceStatement{color:var(--color-invoice-statement)}:host .novo-select-trigger.text-color-billableCharge{color:var(--color-billable-charge)}:host .novo-select-trigger.text-color-payableCharge{color:var(--color-payable-charge)}:host .novo-select-trigger.text-color-user{color:var(--color-user)}:host .novo-select-trigger.text-color-corporateUser{color:var(--color-corporate-user)}:host .novo-select-trigger.text-color-distributionList{color:var(--color-distribution-list)}:host .novo-select-trigger.text-color-credential{color:var(--color-credential)}:host .novo-select-trigger.text-color-person{color:var(--color-person)}:host .novo-select-trigger.margin-before{margin-top:.4rem}:host .novo-select-trigger.margin-after{margin-bottom:.8rem}:host .novo-select-trigger.text-length-small{max-width:40ch}:host .novo-select-trigger.text-length-medium{max-width:55ch}:host .novo-select-trigger.text-length-large{max-width:70ch}:host .novo-select-trigger.text-weight-hairline{font-weight:var(--font-weight-hairline)}:host .novo-select-trigger.text-weight-thin{font-weight:var(--font-weight-thin)}:host .novo-select-trigger.text-weight-light{font-weight:var(--font-weight-light)}:host .novo-select-trigger.text-weight-normal{font-weight:var(--font-weight-normal)}:host .novo-select-trigger.text-weight-medium{font-weight:var(--font-weight-medium)}:host .novo-select-trigger.text-weight-semibold{font-weight:var(--font-weight-semibold)}:host .novo-select-trigger.text-weight-bold{font-weight:var(--font-weight-bold)}:host .novo-select-trigger.text-weight-extrabold{font-weight:var(--font-weight-extrabold)}:host .novo-select-trigger.text-weight-heavy{font-weight:var(--font-weight-heavy)}:host .novo-select-trigger.text-weight-lighter{font-weight:lighter}:host .novo-select-trigger.text-weight-bolder{font-weight:bolder}:host .novo-select-trigger.empty{color:#a9a9a9}:host .novo-select-trigger:hover{border-bottom:1px solid hsl(from var(--color-dark) h s calc(l + 15))}:host .novo-select-trigger .novo-select-placeholder{color:var(--form-placeholder)}:host .novo-select-trigger i{font-size:.8em;color:var(--font-color-base);position:absolute;right:0}:host[disabled],:host.novo-select-disabled{pointer-events:none}:host[disabled] div[type=button],:host.novo-select-disabled div[type=button]{color:#9e9e9e}:host[disabled] i,:host.novo-select-disabled i{color:#9e9e9e!important}:host[disabled] .novo-select-trigger,:host.novo-select-disabled .novo-select-trigger{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}:host[disabled] .novo-select-trigger:hover,:host.novo-select-disabled .novo-select-trigger:hover{color:#9e9e9e!important;border-bottom:1px dashed #9e9e9e!important}.novo-select-list{background-color:var(--background-bright);border-radius:var(--border-radius-sm);cursor:default;list-style:none;overflow:auto;margin:0;padding:0;width:100%;box-shadow:0 -1px 3px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;font-size:var(--font-size-xs);z-index:-1;opacity:0}.novo-select-list.active{z-index:1000;max-height:219px;min-width:200px;width:100%;max-width:800px;width:inherit;overflow:auto;opacity:1}.novo-select-list .select-item{height:35px}.select-header button{text-transform:uppercase}.select-header button.header{color:var(--color-positive);position:relative;text-align:left;cursor:pointer;height:3rem;margin:0;padding:.5rem 1.6rem 0 0;box-sizing:border-box;border:none;display:block;align-items:center;justify-content:space-between;font-size:var(--font-size-xs)}.select-header button.header:focus,.select-header button.header:hover{color:hsl(from var(--color-light) h s calc(l - 55))}.select-header button.header i{color:var(--color-positive);padding-right:10px}.select-header button.header span{text-align:left}.select-header div.active{width:100%;float:right;padding:5px}.select-header div.active footer{float:right}.select-header div.active button{display:inline-block;border:none;float:left;width:auto;font-weight:500;font-size:.8rem;color:#acacac}.select-header div.active button:hover{color:#868686}.select-header div.active button.primary{color:var(--color-positive)}.select-header div.active button.primary:hover{color:hsl(from var(--color-positive) h s calc(l - 15))}.select-header div.active input{display:flex;justify-content:space-between;align-items:center;background-color:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.12);color:#000000ba;height:2.05rem;position:relative;text-align:left;text-shadow:none;width:100%;z-index:1;cursor:pointer;text-transform:none;padding-top:10px;font-size:var(--font-size-xs)}.select-header div.active input.empty{color:#a9a9a9}.select-header div.active input:focus{outline:none}.select-header div.active input:hover{border-bottom:1px solid var(--color-positive)}.select-header div.active input.invalid{border-bottom:1px solid #da4453}\n"] }]
812
812
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NovoLabelService }, { type: i0.ChangeDetectorRef }, { type: i2.FocusMonitor }, { type: i0.NgZone }, { type: i0.Injector }, { type: i3.ErrorStateMatcher }, { type: i4.NgControl, decorators: [{
813
813
  type: Optional
814
814
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-select.mjs","sources":["../../../projects/novo-elements/src/elements/select/Select.ts","../../../projects/novo-elements/src/elements/select/Select.extupdatefix.directive.ts","../../../projects/novo-elements/src/elements/select/Select.module.ts","../../../projects/novo-elements/src/elements/select/novo-elements-elements-select.ts"],"sourcesContent":["// NG\nimport { ActiveDescendantKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Injector,\n input,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n signal,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n// Vendor\nimport { merge, Observable, of, Subject, Subscription } from 'rxjs';\nimport { filter, map, startWith, take, takeUntil } from 'rxjs/operators';\n// App\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key } from 'novo-elements/utils';\nimport {\n CanDisableCtor,\n CanRequireCtor,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n HasOverlayCtor,\n HasTabIndexCtor,\n mixinDisabled,\n mixinErrorState,\n mixinOverlay,\n mixinRequired,\n mixinTabIndex,\n NovoOptgroup,\n NovoOption,\n NovoOptionSelectionChange,\n NOVO_OPTION_PARENT_COMPONENT,\n _countGroupLabelsBeforeOption,\n _getOptionScrollPosition,\n NovoOverlayTemplateComponent,\n} from 'novo-elements/elements/common';\nimport { NOVO_FORM_FIELD, NovoFieldControl, NovoFieldElement } from 'novo-elements/elements/field';\n\n/** Change event object that is emitted when the select value has changed. */\nexport class NovoSelectChange {\n constructor(\n /** Reference to the select that emitted the change event. */\n public source: NovoSelectElement,\n /** Current value of the select that emitted the event. */\n public value: any,\n ) {}\n}\n\n// Create Base Class from Mixins\n// Boilerplate for applying mixins\nclass NovoSelectBase {\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl,\n ) {}\n}\nconst NovoSelectMixins: HasOverlayCtor &\n CanRequireCtor &\n CanDisableCtor &\n HasTabIndexCtor &\n CanUpdateErrorStateCtor &\n typeof NovoSelectBase = mixinOverlay(mixinTabIndex(mixinRequired(mixinDisabled(mixinErrorState(NovoSelectBase)))));\n\nlet nextId = 0;\n\n@Component({\n selector: 'novo-select',\n inputs: ['disabled', 'required', 'tabIndex'],\n providers: [\n { provide: NovoFieldControl, useExisting: NovoSelectElement },\n { provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoSelectElement },\n ],\n template: `\n <div class=\"novo-select-trigger\">\n <span class=\"novo-select-placeholder\" *ngIf=\"empty\">{{ placeholder }}</span>\n <span class=\"text-ellipsis\" *ngIf=\"!empty\"><novo-icon size=\"sm\" style=\"margin: 0 0 .25rem .1rem\" *ngIf=\"displayIcon\">{{ displayIcon }}</novo-icon> {{ displayValue }}</span>\n <i class=\"bhi-collapse\"></i>\n </div>\n <novo-overlay-template\n [parent]=\"elementRef\"\n [position]=\"position\"\n [width]=\"overlayWidth\"\n [height]=\"overlayHeight\"\n (closing)=\"elementRef.nativeElement.focus()\"\n >\n <div #panel class=\"novo-select-list\" tabIndex=\"-1\" [class.has-header]=\"headerConfig\" [class.active]=\"panelOpen\">\n <novo-option *ngIf=\"headerConfig\" class=\"select-header\" [class.open]=\"header.open\">\n <novo-button *ngIf=\"!header.open\" icon=\"add-thin\" (click)=\"toggleHeader($event); (false)\" tabIndex=\"-1\" class=\"header\">\n {{ headerConfig.label }}\n </novo-button>\n <div *ngIf=\"header.open\" [ngClass]=\"{ active: header.open }\">\n <input\n autofocus\n type=\"text\"\n [placeholder]=\"headerConfig.placeholder\"\n [attr.id]=\"name\"\n autocomplete=\"off\"\n [value]=\"header.value\"\n [ngClass]=\"{ invalid: !header.valid }\"\n />\n <footer>\n <novo-button (click)=\"toggleHeader($event, false)\">{{ labels.cancel }}</novo-button>\n <novo-button (click)=\"saveHeader()\" class=\"primary\">{{ labels.save }}</novo-button>\n </footer>\n </div>\n </novo-option>\n <!-- Declarative Content Goes Here -->\n <ng-content></ng-content>\n <!-- Data Driven Content Goes Here -->\n <ng-container *ngFor=\"let option of filteredOptions; let i = index\">\n <novo-option\n *ngIf=\"!option.divider; else divider\"\n class=\"select-item\"\n [disabled]=\"option.disabled\"\n [class.active]=\"option.active\"\n [attr.data-automation-value]=\"option.label\"\n [value]=\"option.value\"\n [tooltip]=\"option.tooltip\"\n [tooltipPosition]=\"option.tooltipPosition || 'right'\"\n >\n <span [innerHtml]=\"option.label | highlight:filterTerm\"></span> <i *ngIf=\"option.active\" class=\"bhi-check\"></i>\n </novo-option>\n <ng-template #divider>\n <novo-divider class=\"select-item-divider\" [class.with-label]=\"option.label\" [class.without-label]=\"!option.label\">\n {{ option?.label }}\n </novo-divider>\n </ng-template>\n </ng-container>\n </div>\n </novo-overlay-template>\n `,\n styleUrls: ['./Select.scss'],\n host: {\n class: 'novo-select',\n role: 'combobox',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'true',\n '[attr.id]': 'id',\n '[attr.aria-controls]': 'panelOpen ? id + \"-panel\" : null',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-labelledby]': '_ariaLabelledBy || null',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[class.novo-select-disabled]': 'disabled',\n '[class.novo-select-invalid]': 'errorState',\n '[class.novo-select-required]': 'required',\n '[class.novo-select-empty]': 'empty',\n '[class.novo-select-multiple]': 'multiple',\n '[tabindex]': 'disabled ? -1 : 0',\n },\n standalone: false,\n})\nexport class NovoSelectElement\n extends NovoSelectMixins\n implements OnInit, AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor, NovoFieldControl<any>\n{\n private _uniqueId: string = `novo-select-${++nextId}`;\n private _stateChanges = Subscription.EMPTY;\n private _activeOptionChanges = Subscription.EMPTY;\n private _selectedOptionChanges = Subscription.EMPTY;\n protected readonly _destroy = new Subject<void>();\n\n readonly controlType: string = 'select';\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n _selectionModel: SelectionModel<NovoOption>;\n\n /** The aria-labelledby attribute */\n _ariaLabelledBy: string;\n /** The aria-describedby attribute on the chip list for improved a11y. */\n _ariaDescribedby: string;\n /** User defined tab index. */\n _userTabIndex: number | null = null;\n /** The FocusKeyManager which handles focus. */\n _keyManager: ActiveDescendantKeyManager<NovoOption>;\n /**\n * The display string for the current value, kept from when the associated <novo-option> has stopped rendering\n * due to filtration\n */\n private _lingeringDisplayValue: string = null;\n private _legacyOption: any;\n\n @Input()\n id: string = this._uniqueId;\n @Input()\n name: string = this._uniqueId;\n @Input()\n placeholder: string = 'Select...';\n @Input({ transform: booleanAttribute })\n readonly: boolean;\n @Input()\n headerConfig: any;\n @Input()\n position: string = 'above-below';\n @Input()\n overlayWidth: number;\n @Input()\n overlayHeight: number;\n @Input()\n displayIcon: string = null;\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n /** Event emitted when the selected value has been changed by the user. */\n @Output() readonly selectionChange: EventEmitter<NovoSelectChange> = new EventEmitter<NovoSelectChange>();\n /** Event that emits whenever the raw value of the select changes.*/\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n /** Event emitted when the select panel has been toggled. */\n @Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n /** Event emitted when the select has been opened. */\n @Output('opened') readonly _openedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => o),\n map(() => {}),\n );\n /** Event emitted when the select has been closed. */\n @Output('closed') readonly _closedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => !o),\n map(() => {}),\n );\n\n /** Function that maps an option's control value to its display value in the trigger. */\n @Input() displayWith: ((value: any) => string) | null = null;\n /** * Function to compare the option values with the selected values. */\n @Input() compareWith: (o1: any, o2: any) => boolean = (o1: any, o2: any) =>\n o1 === o2 || o1 === o2.id || (!Helpers.isEmpty(o1.id) && !Helpers.isEmpty(o2.id) && o1.id === o2.id);\n\n header: any = {\n open: false,\n valid: true,\n value: '',\n };\n createdItem: any;\n model: any;\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n filterTerm: string = '';\n filterTermTimeout;\n filteredOptions: any = [];\n disabled: boolean = false;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent, { static: true })\n overlay: NovoOverlayTemplateComponent;\n\n @ContentChildren(NovoOptgroup, { descendants: true })\n optionGroups: QueryList<NovoOptgroup>;\n @ContentChildren(NovoOption, { descendants: true })\n contentOptions: QueryList<NovoOption>;\n @ViewChildren(NovoOption)\n viewOptions: QueryList<NovoOption>;\n\n viewOptionsSignal = signal<NovoOption[]>(null);\n contentOptionsSignal = signal<NovoOption[]>(null);\n\n // This signal may be set programmatically by a SelectSearchComponent.\n hideLegacyOptionsForSearch = signal(false);\n\n hideLegacyOptions = input(false, { transform: booleanAttribute });\n\n private displayLegacyOptions = computed(() => {\n return !(this.hideLegacyOptionsForSearch() || this.hideLegacyOptions());\n })\n\n @ViewChild('panel')\n panel: ElementRef;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n // Always re-assign an array, because it might have been mutated.\n if (newValue !== this._value || (this._multiple && Array.isArray(newValue))) {\n if (this.options) {\n this._setSelectionByValue(newValue);\n }\n this._value = newValue;\n this._lingeringDisplayValue = null;\n }\n }\n private _value: any = null;\n\n /** Whether the user should be allowed to select multiple options. */\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: boolean) {\n this._multiple = coerceBooleanProperty(value);\n this.position = 'above-below';\n }\n private _multiple: boolean = false;\n\n /** Array of options to display in the select dropdown */\n @Input()\n set options(options: Array<any>) {\n this._options = options;\n this._initLegacyOptions();\n }\n get options(): Array<any> {\n return this._options;\n }\n private _options: Array<any>;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused || this.panelOpen;\n }\n private _focused = false;\n\n /** Implemented as part of NovoFieldControl. */\n get empty(): boolean {\n return Helpers.isEmpty(this._value);\n }\n\n /** The currently selected option. */\n get selected(): NovoOption | NovoOption[] {\n return this.multiple ? this._selectionModel.selected : this._selectionModel.selected[0];\n }\n\n /** The value displayed in the trigger. */\n get displayValue(): string {\n if (this.empty) {\n return '';\n }\n if (this._multiple) {\n const selectedOptions = this._selectionModel.selected.map((option) => this._getDisplayValue(option));\n return selectedOptions.join(', ');\n }\n return this._getDisplayValue(this._selectionModel.selected[0]);\n }\n\n constructor(\n public elementRef: ElementRef,\n public labels: NovoLabelService,\n public ref: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private ngZone: NgZone,\n private injector: Injector,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Inject(NOVO_FORM_FIELD) private _fieldElement: NovoFieldElement,\n ) {\n super(defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n if (ngControl) {\n ngControl.valueAccessor = this;\n }\n this._selectionModel = new SelectionModel<NovoOption>(this.multiple);\n // Initialize KeyManager to manage keyboard events\n this._initKeyManager();\n }\n\n ngOnInit() {\n this.stateChanges.next();\n this._initLegacyOptions();\n this.focusMonitor.monitor(this.elementRef.nativeElement).subscribe((origin) =>\n this.ngZone.run(() => {\n this._focused = !!origin;\n this.stateChanges.next();\n }),\n );\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes?.disabled) {\n this.stateChanges.next();\n }\n if (changes?.multiple) {\n // TODO: copy selection over??\n this._selectionModel = new SelectionModel<NovoOption>(this.multiple);\n }\n this._initLegacyOptions();\n }\n\n ngAfterViewInit() {\n // Subscribe to NovoOption selections\n this._watchSelectionEvents();\n // Set initial value\n this._initializeSelection();\n // Listen to selection changes to select and deselect options\n this._selectionModel.changed.pipe(takeUntil(this._destroy)).subscribe((event) => {\n event.added.forEach((option) => {\n if (option.select) {\n option.select();\n }\n });\n event.removed.forEach((option) => {\n if (option.deselect) {\n option.deselect();\n }\n });\n });\n // Listen to QueryList changes\n merge(this.contentOptions.changes, this.viewOptions.changes)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this._watchSelectionEvents();\n this._initializeSelection();\n });\n\n this.contentOptions.changes.pipe(takeUntil(this._destroy), startWith(this.contentOptions))\n .subscribe(contentOptions => {\n this.contentOptionsSignal.set(contentOptions.toArray());\n });\n\n this.viewOptions.changes.pipe(takeUntil(this._destroy), startWith(this.viewOptions))\n .subscribe(viewOptions => {\n this.viewOptionsSignal.set(viewOptions.toArray());\n });\n\n merge(this.overlay.opening, this.overlay.closing)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this.openedChange.emit(this.panelOpen);\n });\n setTimeout(() => {\n if (this._fieldElement?._labelElement) {\n this._ariaLabelledBy = this._fieldElement._labelElement.id;\n }\n });\n }\n\n ngOnDestroy() {\n this._destroy.next();\n this._destroy.complete();\n this._stateChanges.unsubscribe();\n this._activeOptionChanges.unsubscribe();\n this._selectedOptionChanges.unsubscribe();\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n @HostListener('click')\n onClick() {\n this.togglePanel();\n return false;\n }\n\n openPanel() {\n super.openPanel();\n this._highlightCorrectOption();\n }\n\n private _initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);\n this.stateChanges.next();\n });\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private _setSelectionByValue(value: any | any[]): void {\n this._selectionModel.selected.forEach((option) => {\n if (option.setInactiveStyles) {\n option.setInactiveStyles();\n }\n });\n this._selectionModel.clear();\n if (this.multiple && value) {\n value.forEach((currentValue: any) => this._selectValue(currentValue));\n this._sortValues();\n } else if (this._keyManager) {\n const correspondingOption = this._selectValue(value);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManager.updateActiveItem(correspondingOption);\n } else if (!this.panelOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManager.updateActiveItem(-1);\n }\n }\n this.ref.markForCheck();\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private _selectValue(value: any): NovoOption | undefined {\n const allOptions = this._getOptions();\n const correspondingOption = allOptions.find((option: NovoOption) => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n if (this._selectionModel.isSelected(option)) {\n return false;\n }\n return !Helpers.isEmpty(value) && !Helpers.isEmpty(option.value) && this.compareWith(option.value, value);\n });\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n } else if (value && !correspondingOption && this.displayLegacyOptions()) {\n // If searchComponent is present, we are using a text input filter; so if there is an\n // option not in the list, it is just filtered out\n // Double Check option not already added.\n const legacyOption = this.filteredOptions.find((it) => it.value === value);\n if (!legacyOption) {\n // Add a disabled option to the list and select it\n this._legacyOption = {\n disabled: true,\n tooltip: 'Value is not provided in list of valid options.',\n label: value?.label || value,\n value,\n }\n this.filteredOptions.push(this._legacyOption);\n this.ref.detectChanges();\n }\n }\n\n return correspondingOption;\n }\n\n public select(option, i, fireEvents: boolean = true) {\n console.warn('select() method is deprecated');\n }\n public clear() {\n console.warn('clear() method is deprecated');\n }\n\n /**\n * If the item is not disabled, this method closes the panel, and if a value is specified,\n * also sets the associated control to that value. It will also mark the control as dirty\n * if this interaction stemmed from the user.\n */\n handleSelection(option: NovoOption, isUserInput: boolean = false): void {\n const wasSelected = this._selectionModel.isSelected(option);\n if (option.value == null && !this._multiple) {\n option.deselect();\n this._selectionModel.clear();\n if (this.value != null) {\n this._propagateChanges(option.value);\n }\n } else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManager.setActiveItem(option);\n }\n if (this.multiple) {\n this._sortValues();\n if (isUserInput) {\n this.focus();\n }\n }\n }\n const legacyOptionIndex = this.filteredOptions.lastIndexOf(this._legacyOption);\n if (legacyOptionIndex !== -1) {\n this.filteredOptions.splice(legacyOptionIndex, 1);\n }\n\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n this.stateChanges.next();\n this._watchSelectionEvents();\n }\n\n private _getDisplayValue(option: NovoOption & { value?: any; label?: string }): string {\n if (!option) {\n return this._lingeringDisplayValue ?? '';\n }\n let toDisplay = option.viewValue;\n if (this.displayWith) {\n toDisplay = this.displayWith(option.value);\n }\n // Simply falling back to an empty string if the display value is falsy does not work properly.\n // The display value can also be the number zero and shouldn't fall back to an empty string.\n let displayValue = toDisplay != null ? toDisplay : '';\n // eslint-disable-next-line eqeqeq\n if (displayValue != '') {\n this._lingeringDisplayValue = displayValue;\n } else if (this._lingeringDisplayValue) {\n displayValue = this._lingeringDisplayValue;\n }\n return displayValue;\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n private _clearPreviousSelectedOption(skip: NovoOption) {\n this._getOptions().forEach((option) => {\n if (option !== skip && option.selected) {\n option.deselect();\n }\n });\n }\n\n private _watchSelectionEvents() {\n const options = this._getOptions();\n const selectionEvents = options ? merge(...options.map((option) => option.onSelectionChange)) : of();\n this._selectedOptionChanges.unsubscribe();\n this._selectedOptionChanges = selectionEvents.pipe(take(1)).subscribe((event: NovoOptionSelectionChange) => {\n this.onModelTouched();\n this.handleSelection(event.source, event.isUserInput);\n if (event.isUserInput && !this.multiple && this.panelOpen) {\n this.closePanel();\n this.focus();\n }\n });\n }\n\n /** Handles all keydown events on the select. */\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled) {\n this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);\n }\n }\n\n /** Handles keyboard events while the select is closed. */\n private _handleClosedKeydown(event: KeyboardEvent): void {\n const key = event.key;\n const isArrowKey = key === Key.ArrowDown || key === Key.ArrowUp || key === Key.ArrowLeft || key === Key.ArrowRight;\n const isOpenKey = key === Key.Enter || key === Key.Space;\n const manager = this._keyManager;\n // Open the select on ALT + arrow key to match the native <select>\n if ((!manager.isTyping() && isOpenKey && !hasModifierKey(event)) || ((this.multiple || event.altKey) && isArrowKey)) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.openPanel();\n }\n }\n\n /** Handles keyboard events when the selected is open. */\n private _handleOpenKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === Key.ArrowDown || key === Key.ArrowUp;\n const isTyping = manager.isTyping();\n\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this.closePanel();\n // Don't do anything in this case if the user is typing,\n // because the typing sequence can include the space key.\n } else if (!isTyping && (key === Key.Enter || key === Key.Space) && manager.activeItem && !hasModifierKey(event)) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n } else if (!isTyping && this._multiple && ['a', 'A'].includes(key) && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some((opt) => !opt.disabled && !opt.selected);\n this.options.forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else if (Key.Escape === key) {\n this.closePanel();\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n manager.onKeydown(event);\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem && manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem._selectViaInteraction();\n }\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\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 setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n /** Implemented as part of NovoFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Implemented as part of NovoFieldControl. */\n onContainerClick(event: MouseEvent) {\n this.focus();\n }\n\n /**\n * Focuses the first non-disabled chip in this chip list, or the associated input when there\n * are no eligible chips.\n */\n focus(options?: FocusOptions): void {\n if (!this.disabled) {\n this.elementRef.nativeElement.focus(options);\n }\n }\n\n protected _getOptions() {\n return [...(this.viewOptions || []), ...(this.contentOptions || [])];\n }\n\n protected _optionsComputed = computed(() => {\n return [...(this.viewOptionsSignal() || []), ...(this.contentOptionsSignal() || [])]\n });\n\n /** Sorts the selected values in the selected based on their order in the panel. */\n private _sortValues() {\n if (this.multiple) {\n // TODO.\n }\n }\n\n /** Emits change event to set the model value. */\n private _propagateChanges(fallbackValue?: any): void {\n let valueToEmit: any = null;\n if (this.multiple) {\n valueToEmit = (this.selected as NovoOption[]).map((option) => option.value);\n } else {\n valueToEmit = this.selected ? (this.selected as NovoOption).value : fallbackValue;\n }\n\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this.onModelChange(valueToEmit);\n this.onSelect.emit({ selected: valueToEmit });\n this.selectionChange.emit(this._makeChangeEvent(valueToEmit));\n this.ref.markForCheck();\n }\n\n protected _makeChangeEvent(value: any) {\n return new NovoSelectChange(this, value);\n }\n\n /** Scrolls the active option into view. */\n protected _scrollOptionIntoView(index: number): void {\n const options = new QueryList<NovoOption>();\n options.reset(this._getOptions());\n const labelCount = _countGroupLabelsBeforeOption(index, options, this.optionGroups);\n const itemHeight = this._getItemHeight();\n this.panel.nativeElement.scrollTop = _getOptionScrollPosition(\n (index + labelCount) * itemHeight,\n itemHeight,\n this.panel.nativeElement.scrollTop,\n this.panel.nativeElement.offsetHeight,\n );\n }\n\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n private _initKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager<NovoOption>(this._optionsComputed, this.injector).withTypeAhead(250).withHomeAndEnd();\n\n this._keyManager.tabOut.pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen) {\n // Select the active item when tabbing away. This is consistent with how the native\n // select behaves. Note that we only want to do this in single selection mode.\n if (!this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.closePanel();\n }\n });\n\n this._keyManager.change.pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen && this.overlay) {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n } else if (!this.panelOpen && !this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this.empty) {\n this._keyManager.setFirstItemActive();\n } else {\n const options = this._getOptions();\n // eslint-disable-next-line eqeqeq\n const index = options.findIndex(option => option.value == this._value)\n this._keyManager.setActiveItem(index);\n }\n }\n }\n\n /** Calculates the height of the select's options. */\n private _getItemHeight(): number {\n const [first] = this._getOptions();\n if (first) {\n return first._getHostElement().offsetHeight;\n }\n return 0;\n }\n\n // TODO: Deprecate this\n private _initLegacyOptions() {\n if (this.options && this.options.length && typeof this.options[0] === 'string') {\n this.filteredOptions = this.options.map((item) => {\n return { value: item, label: item };\n });\n } else {\n this.filteredOptions = (this.options || [])\n .map((item) => {\n return {\n ...item,\n disabled: Boolean(item.readOnly || item.disabled),\n };\n })\n .map((item) => {\n return {\n ...item,\n active: false,\n };\n });\n }\n }\n\n /**\n * TODO: Deprecate all header methods\n */\n toggleHeader(event, forceValue: boolean = false) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n // Reverse the active property (if forceValue, use that)\n this.header = {\n open: forceValue !== undefined ? forceValue : !this.header.open,\n value: '',\n valid: true,\n };\n }\n\n /**\n * @deprecated use highlight pipe\n */\n highlight(match, query) {\n // Replaces the capture string with a the same string inside of a \"strong\" tag\n return query ? match.replace(new RegExp(this.escapeRegexp(query), 'gi'), '<strong>$&</strong>') : match;\n }\n\n escapeRegexp(queryToEscape) {\n // Ex: if the capture is \"a\" the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n }\n\n saveHeader() {\n if (this.header.value) {\n this.headerConfig.onSave(this.header.value);\n this.createdItem = this.header.value;\n this.closePanel();\n } else {\n this.header.valid = false;\n }\n }\n\n /** Determines the `aria-activedescendant` to be set on the host. */\n _getAriaActiveDescendant(): string | null {\n if (this.panelOpen && this._keyManager && this._keyManager.activeItem) {\n return this._keyManager.activeItem.id;\n }\n\n return null;\n }\n}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { FormControl, NgControl } from '@angular/forms';\nimport { NovoSelectElement } from './Select';\n\n/**\n * Fixes a <novo-select> element so that if its value is updated externally, the checkboxes in the dropdown selector\n * update accordingly. Because this is a functionality change to a core control, this fix is provided as a directive\n * to only be used if needed.\n */\n@Directive({\n selector: 'novo-select[extupdatefix]',\n standalone: false,\n})\nexport class NovoSelectExtUpdateFix implements OnInit {\n control = inject(NgControl);\n selectElement = inject(NovoSelectElement);\n\n ngOnInit() {\n if (this.control?.control && 'registerOnChange' in this.control.control) {\n (this.control.control as FormControl).registerOnChange((rawValue, viewToModelUpdate) => {\n if (this.selectElement.multiple === Array.isArray(rawValue)) {\n this.afterExternalUpdate(rawValue);\n }\n });\n }\n }\n\n afterExternalUpdate(rawValue: any) {\n this.selectElement['_setSelectionByValue'](rawValue);\n }\n}\n","// NG\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// App\nimport { NovoPipesModule } from 'novo-elements/pipes';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoDividerModule } from 'novo-elements/elements/divider';\nimport { NovoTooltipModule } from 'novo-elements/elements/tooltip';\nimport { NovoSelectElement } from './Select';\nimport { NovoSelectExtUpdateFix } from './Select.extupdatefix.directive';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n NovoButtonModule,\n NovoDividerModule,\n NovoOptionModule,\n NovoOverlayModule,\n NovoPipesModule,\n NovoTooltipModule,\n NovoIconModule,\n ],\n declarations: [NovoSelectElement, NovoSelectExtUpdateFix],\n exports: [NovoSelectElement, NovoSelectExtUpdateFix],\n})\nexport class NovoSelectModule {}\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-select.mjs","sources":["../../../projects/novo-elements/src/elements/select/Select.ts","../../../projects/novo-elements/src/elements/select/Select.extupdatefix.directive.ts","../../../projects/novo-elements/src/elements/select/Select.module.ts","../../../projects/novo-elements/src/elements/select/novo-elements-elements-select.ts"],"sourcesContent":["// NG\nimport { ActiveDescendantKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Injector,\n input,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n signal,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n// Vendor\nimport { merge, Observable, of, Subject, Subscription } from 'rxjs';\nimport { filter, map, startWith, take, takeUntil } from 'rxjs/operators';\n// App\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key } from 'novo-elements/utils';\nimport {\n CanDisableCtor,\n CanRequireCtor,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n HasOverlayCtor,\n HasTabIndexCtor,\n mixinDisabled,\n mixinErrorState,\n mixinOverlay,\n mixinRequired,\n mixinTabIndex,\n NovoOptgroup,\n NovoOption,\n NovoOptionSelectionChange,\n NOVO_OPTION_PARENT_COMPONENT,\n _countGroupLabelsBeforeOption,\n _getOptionScrollPosition,\n NovoOverlayTemplateComponent,\n} from 'novo-elements/elements/common';\nimport { NOVO_FORM_FIELD, NovoFieldControl, NovoFieldElement } from 'novo-elements/elements/field';\n\n/** Change event object that is emitted when the select value has changed. */\nexport class NovoSelectChange {\n constructor(\n /** Reference to the select that emitted the change event. */\n public source: NovoSelectElement,\n /** Current value of the select that emitted the event. */\n public value: any,\n ) {}\n}\n\n// Create Base Class from Mixins\n// Boilerplate for applying mixins\nclass NovoSelectBase {\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl,\n ) {}\n}\nconst NovoSelectMixins: HasOverlayCtor &\n CanRequireCtor &\n CanDisableCtor &\n HasTabIndexCtor &\n CanUpdateErrorStateCtor &\n typeof NovoSelectBase = mixinOverlay(mixinTabIndex(mixinRequired(mixinDisabled(mixinErrorState(NovoSelectBase)))));\n\nlet nextId = 0;\n\n@Component({\n selector: 'novo-select',\n inputs: ['disabled', 'required', 'tabIndex'],\n providers: [\n { provide: NovoFieldControl, useExisting: NovoSelectElement },\n { provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoSelectElement },\n ],\n template: `\n <div class=\"novo-select-trigger\">\n <span class=\"novo-select-placeholder\" *ngIf=\"empty\">{{ placeholder }}</span>\n <span class=\"text-ellipsis\" *ngIf=\"!empty\"><novo-icon size=\"sm\" style=\"margin: 0 0 .25rem .1rem\" *ngIf=\"displayIcon\">{{ displayIcon }}</novo-icon> {{ displayValue }}</span>\n <i class=\"bhi-collapse\"></i>\n </div>\n <novo-overlay-template\n [parent]=\"elementRef\"\n [position]=\"position\"\n [width]=\"overlayWidth\"\n [height]=\"overlayHeight\"\n (closing)=\"elementRef.nativeElement.focus()\"\n >\n <div #panel class=\"novo-select-list\" tabIndex=\"-1\" [class.has-header]=\"headerConfig\" [class.active]=\"panelOpen\">\n <novo-option *ngIf=\"headerConfig\" class=\"select-header\" [class.open]=\"header.open\">\n <novo-button *ngIf=\"!header.open\" icon=\"add-thin\" (click)=\"toggleHeader($event); (false)\" tabIndex=\"-1\" class=\"header\">\n {{ headerConfig.label }}\n </novo-button>\n <div *ngIf=\"header.open\" [ngClass]=\"{ active: header.open }\">\n <input\n autofocus\n type=\"text\"\n [placeholder]=\"headerConfig.placeholder\"\n [attr.id]=\"name\"\n autocomplete=\"off\"\n [value]=\"header.value\"\n [ngClass]=\"{ invalid: !header.valid }\"\n />\n <footer>\n <novo-button (click)=\"toggleHeader($event, false)\">{{ labels.cancel }}</novo-button>\n <novo-button (click)=\"saveHeader()\" class=\"primary\">{{ labels.save }}</novo-button>\n </footer>\n </div>\n </novo-option>\n <!-- Declarative Content Goes Here -->\n <ng-content></ng-content>\n <!-- Data Driven Content Goes Here -->\n <ng-container *ngFor=\"let option of filteredOptions; let i = index\">\n <novo-option\n *ngIf=\"!option.divider; else divider\"\n class=\"select-item\"\n [disabled]=\"option.disabled\"\n [class.active]=\"option.active\"\n [attr.data-automation-value]=\"option.label\"\n [value]=\"option.value\"\n [tooltip]=\"option.tooltip\"\n [tooltipPosition]=\"option.tooltipPosition || 'right'\"\n >\n <span [innerHtml]=\"option.label | highlight:filterTerm\"></span> <i *ngIf=\"option.active\" class=\"bhi-check\"></i>\n </novo-option>\n <ng-template #divider>\n <novo-divider class=\"select-item-divider\" [class.with-label]=\"option.label\" [class.without-label]=\"!option.label\">\n {{ option?.label }}\n </novo-divider>\n </ng-template>\n </ng-container>\n </div>\n </novo-overlay-template>\n `,\n styleUrls: ['./Select.scss'],\n host: {\n class: 'novo-select',\n role: 'combobox',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'true',\n '[attr.id]': 'id',\n '[attr.aria-controls]': 'panelOpen ? id + \"-panel\" : null',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-labelledby]': '_ariaLabelledBy || null',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[class.novo-select-disabled]': 'disabled',\n '[class.novo-select-invalid]': 'errorState',\n '[class.novo-select-required]': 'required',\n '[class.novo-select-empty]': 'empty',\n '[class.novo-select-multiple]': 'multiple',\n '[tabindex]': 'disabled ? -1 : 0',\n },\n standalone: false,\n})\nexport class NovoSelectElement\n extends NovoSelectMixins\n implements OnInit, AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor, NovoFieldControl<any>\n{\n private _uniqueId: string = `novo-select-${++nextId}`;\n private _stateChanges = Subscription.EMPTY;\n private _activeOptionChanges = Subscription.EMPTY;\n private _selectedOptionChanges = Subscription.EMPTY;\n protected readonly _destroy = new Subject<void>();\n\n readonly controlType: string = 'select';\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n _selectionModel: SelectionModel<NovoOption>;\n\n /** The aria-labelledby attribute */\n _ariaLabelledBy: string;\n /** The aria-describedby attribute on the chip list for improved a11y. */\n _ariaDescribedby: string;\n /** User defined tab index. */\n _userTabIndex: number | null = null;\n /** The FocusKeyManager which handles focus. */\n _keyManager: ActiveDescendantKeyManager<NovoOption>;\n /**\n * The display string for the current value, kept from when the associated <novo-option> has stopped rendering\n * due to filtration\n */\n private _lingeringDisplayValue: string = null;\n private _legacyOption: any;\n\n @Input()\n id: string = this._uniqueId;\n @Input()\n name: string = this._uniqueId;\n @Input()\n placeholder: string = 'Select...';\n @Input({ transform: booleanAttribute })\n readonly: boolean;\n @Input()\n headerConfig: any;\n @Input()\n position: string = 'above-below';\n @Input()\n overlayWidth: number;\n @Input()\n overlayHeight: number;\n @Input()\n displayIcon: string = null;\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n /** Event emitted when the selected value has been changed by the user. */\n @Output() readonly selectionChange: EventEmitter<NovoSelectChange> = new EventEmitter<NovoSelectChange>();\n /** Event that emits whenever the raw value of the select changes.*/\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n /** Event emitted when the select panel has been toggled. */\n @Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n /** Event emitted when the select has been opened. */\n @Output('opened') readonly _openedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => o),\n map(() => {}),\n );\n /** Event emitted when the select has been closed. */\n @Output('closed') readonly _closedStream: Observable<void> = this.openedChange.pipe(\n filter((o) => !o),\n map(() => {}),\n );\n\n /** Function that maps an option's control value to its display value in the trigger. */\n @Input() displayWith: ((value: any) => string) | null = null;\n /** * Function to compare the option values with the selected values. */\n @Input() compareWith: (o1: any, o2: any) => boolean = (o1: any, o2: any) =>\n o1 === o2 || o1 === o2.id || (!Helpers.isEmpty(o1.id) && !Helpers.isEmpty(o2.id) && o1.id === o2.id);\n\n header: any = {\n open: false,\n valid: true,\n value: '',\n };\n createdItem: any;\n model: any;\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n filterTerm: string = '';\n filterTermTimeout;\n filteredOptions: any = [];\n disabled: boolean = false;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent, { static: true })\n overlay: NovoOverlayTemplateComponent;\n\n @ContentChildren(NovoOptgroup, { descendants: true })\n optionGroups: QueryList<NovoOptgroup>;\n @ContentChildren(NovoOption, { descendants: true })\n contentOptions: QueryList<NovoOption>;\n @ViewChildren(NovoOption)\n viewOptions: QueryList<NovoOption>;\n\n viewOptionsSignal = signal<NovoOption[]>(null);\n contentOptionsSignal = signal<NovoOption[]>(null);\n\n // This signal may be set programmatically by a SelectSearchComponent.\n hideLegacyOptionsForSearch = signal(false);\n\n hideLegacyOptions = input(false, { transform: booleanAttribute });\n\n private displayLegacyOptions = computed(() => {\n return !(this.hideLegacyOptionsForSearch() || this.hideLegacyOptions());\n })\n\n @ViewChild('panel')\n panel: ElementRef;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n // Always re-assign an array, because it might have been mutated.\n if (newValue !== this._value || (this._multiple && Array.isArray(newValue))) {\n if (this.options) {\n this._setSelectionByValue(newValue);\n }\n this._value = newValue;\n this._lingeringDisplayValue = null;\n }\n }\n private _value: any = null;\n\n /** Whether the user should be allowed to select multiple options. */\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: boolean) {\n this._multiple = coerceBooleanProperty(value);\n this.position = 'above-below';\n }\n private _multiple: boolean = false;\n\n /** Array of options to display in the select dropdown */\n @Input()\n set options(options: Array<any>) {\n this._options = options;\n this._initLegacyOptions();\n }\n get options(): Array<any> {\n return this._options;\n }\n private _options: Array<any>;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused || this.panelOpen;\n }\n private _focused = false;\n\n /** Implemented as part of NovoFieldControl. */\n get empty(): boolean {\n return Helpers.isEmpty(this._value);\n }\n\n /** The currently selected option. */\n get selected(): NovoOption | NovoOption[] {\n return this.multiple ? this._selectionModel.selected : this._selectionModel.selected[0];\n }\n\n /** The value displayed in the trigger. */\n get displayValue(): string {\n if (this.empty) {\n return '';\n }\n if (this._multiple) {\n const selectedOptions = this._selectionModel.selected.map((option) => this._getDisplayValue(option));\n return selectedOptions.join(', ');\n }\n return this._getDisplayValue(this._selectionModel.selected[0]);\n }\n\n constructor(\n public elementRef: ElementRef,\n public labels: NovoLabelService,\n public ref: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private ngZone: NgZone,\n private injector: Injector,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Inject(NOVO_FORM_FIELD) private _fieldElement: NovoFieldElement,\n ) {\n super(defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n if (ngControl) {\n ngControl.valueAccessor = this;\n }\n this._selectionModel = new SelectionModel<NovoOption>(this.multiple);\n // Initialize KeyManager to manage keyboard events\n this._initKeyManager();\n }\n\n ngOnInit() {\n this.stateChanges.next();\n this._initLegacyOptions();\n this.focusMonitor.monitor(this.elementRef.nativeElement).subscribe((origin) =>\n this.ngZone.run(() => {\n this._focused = !!origin;\n this.stateChanges.next();\n }),\n );\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes?.disabled) {\n this.stateChanges.next();\n }\n if (changes?.multiple) {\n // TODO: copy selection over??\n this._selectionModel = new SelectionModel<NovoOption>(this.multiple);\n }\n this._initLegacyOptions();\n }\n\n ngAfterViewInit() {\n // Subscribe to NovoOption selections\n this._watchSelectionEvents();\n // Set initial value\n this._initializeSelection();\n // Listen to selection changes to select and deselect options\n this._selectionModel.changed.pipe(takeUntil(this._destroy)).subscribe((event) => {\n event.added.forEach((option) => {\n if (option.select) {\n option.select();\n }\n });\n event.removed.forEach((option) => {\n if (option.deselect) {\n option.deselect();\n }\n });\n });\n // Listen to QueryList changes\n merge(this.contentOptions.changes, this.viewOptions.changes)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this._watchSelectionEvents();\n this._initializeSelection();\n });\n\n this.contentOptions.changes.pipe(takeUntil(this._destroy), startWith(this.contentOptions))\n .subscribe(contentOptions => {\n this.contentOptionsSignal.set(contentOptions.toArray());\n });\n\n this.viewOptions.changes.pipe(takeUntil(this._destroy), startWith(this.viewOptions))\n .subscribe(viewOptions => {\n this.viewOptionsSignal.set(viewOptions.toArray());\n });\n\n merge(this.overlay.opening, this.overlay.closing)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this.openedChange.emit(this.panelOpen);\n });\n setTimeout(() => {\n if (this._fieldElement?._labelElement) {\n this._ariaLabelledBy = this._fieldElement._labelElement.id;\n }\n });\n }\n\n ngOnDestroy() {\n this._destroy.next();\n this._destroy.complete();\n this._stateChanges.unsubscribe();\n this._activeOptionChanges.unsubscribe();\n this._selectedOptionChanges.unsubscribe();\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n @HostListener('click')\n onClick() {\n this.togglePanel();\n return false;\n }\n\n openPanel() {\n super.openPanel();\n this._highlightCorrectOption();\n }\n\n private _initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);\n this.stateChanges.next();\n });\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private _setSelectionByValue(value: any | any[]): void {\n this._selectionModel.selected.forEach((option) => {\n if (option.setInactiveStyles) {\n option.setInactiveStyles();\n }\n });\n this._selectionModel.clear();\n if (this.multiple && value) {\n value.forEach((currentValue: any) => this._selectValue(currentValue));\n this._sortValues();\n } else if (this._keyManager) {\n const correspondingOption = this._selectValue(value);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManager.updateActiveItem(correspondingOption);\n } else if (!this.panelOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManager.updateActiveItem(-1);\n }\n }\n this.ref.markForCheck();\n }\n\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private _selectValue(value: any): NovoOption | undefined {\n const allOptions = this._getOptions();\n const correspondingOption = allOptions.find((option: NovoOption) => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n if (this._selectionModel.isSelected(option)) {\n return false;\n }\n return !Helpers.isEmpty(value) && !Helpers.isEmpty(option.value) && this.compareWith(option.value, value);\n });\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n } else if (value && !correspondingOption && this.displayLegacyOptions()) {\n // If searchComponent is present, we are using a text input filter; so if there is an\n // option not in the list, it is just filtered out\n // Double Check option not already added.\n const legacyOption = this.filteredOptions.find((it) => it.value === value);\n if (!legacyOption) {\n // Add a disabled option to the list and select it\n this._legacyOption = {\n disabled: true,\n tooltip: 'Value is not provided in list of valid options.',\n label: value?.label || value,\n value,\n }\n this.filteredOptions.push(this._legacyOption);\n this.ref.detectChanges();\n }\n }\n\n return correspondingOption;\n }\n\n public select(option, i, fireEvents: boolean = true) {\n console.warn('select() method is deprecated');\n }\n public clear() {\n console.warn('clear() method is deprecated');\n }\n\n /**\n * If the item is not disabled, this method closes the panel, and if a value is specified,\n * also sets the associated control to that value. It will also mark the control as dirty\n * if this interaction stemmed from the user.\n */\n handleSelection(option: NovoOption, isUserInput: boolean = false): void {\n const wasSelected = this._selectionModel.isSelected(option);\n if (option.value == null && !this._multiple) {\n option.deselect();\n this._selectionModel.clear();\n if (this.value != null) {\n this._propagateChanges(option.value);\n }\n } else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManager.setActiveItem(option);\n }\n if (this.multiple) {\n this._sortValues();\n if (isUserInput) {\n this.focus();\n }\n }\n }\n const legacyOptionIndex = this.filteredOptions.lastIndexOf(this._legacyOption);\n if (legacyOptionIndex !== -1) {\n this.filteredOptions.splice(legacyOptionIndex, 1);\n }\n\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n this.stateChanges.next();\n this._watchSelectionEvents();\n }\n\n private _getDisplayValue(option: NovoOption & { value?: any; label?: string }): string {\n if (!option) {\n return this._lingeringDisplayValue ?? '';\n }\n let toDisplay = option.viewValue;\n if (this.displayWith) {\n toDisplay = this.displayWith(option.value);\n }\n // Simply falling back to an empty string if the display value is falsy does not work properly.\n // The display value can also be the number zero and shouldn't fall back to an empty string.\n let displayValue = toDisplay != null ? toDisplay : '';\n // eslint-disable-next-line eqeqeq\n if (displayValue != '') {\n this._lingeringDisplayValue = displayValue;\n } else if (this._lingeringDisplayValue) {\n displayValue = this._lingeringDisplayValue;\n }\n return displayValue;\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n private _clearPreviousSelectedOption(skip: NovoOption) {\n this._getOptions().forEach((option) => {\n if (option !== skip && option.selected) {\n option.deselect();\n }\n });\n }\n\n private _watchSelectionEvents() {\n const options = this._getOptions();\n const selectionEvents = options ? merge(...options.map((option) => option.onSelectionChange)) : of();\n this._selectedOptionChanges.unsubscribe();\n this._selectedOptionChanges = selectionEvents.pipe(take(1)).subscribe((event: NovoOptionSelectionChange) => {\n this.onModelTouched();\n this.handleSelection(event.source, event.isUserInput);\n if (event.isUserInput && !this.multiple && this.panelOpen) {\n this.closePanel();\n this.focus();\n }\n });\n }\n\n /** Handles all keydown events on the select. */\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled) {\n this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);\n }\n }\n\n /** Handles keyboard events while the select is closed. */\n private _handleClosedKeydown(event: KeyboardEvent): void {\n const key = event.key;\n const isArrowKey = key === Key.ArrowDown || key === Key.ArrowUp || key === Key.ArrowLeft || key === Key.ArrowRight;\n const isOpenKey = key === Key.Enter || key === Key.Space;\n const manager = this._keyManager;\n // Open the select on ALT + arrow key to match the native <select>\n if ((!manager.isTyping() && isOpenKey && !hasModifierKey(event)) || ((this.multiple || event.altKey) && isArrowKey)) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.openPanel();\n }\n }\n\n /** Handles keyboard events when the selected is open. */\n private _handleOpenKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === Key.ArrowDown || key === Key.ArrowUp;\n const isTyping = manager.isTyping();\n\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n this.closePanel();\n // Don't do anything in this case if the user is typing,\n // because the typing sequence can include the space key.\n } else if (!isTyping && (key === Key.Enter || key === Key.Space) && manager.activeItem && !hasModifierKey(event)) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n } else if (!isTyping && this._multiple && ['a', 'A'].includes(key) && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some((opt) => !opt.disabled && !opt.selected);\n this.options.forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else if (Key.Escape === key) {\n this.closePanel();\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n manager.onKeydown(event);\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem && manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem._selectViaInteraction();\n }\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\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 setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n /** Implemented as part of NovoFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Implemented as part of NovoFieldControl. */\n onContainerClick(event: MouseEvent) {\n this.focus();\n }\n\n /**\n * Focuses the first non-disabled chip in this chip list, or the associated input when there\n * are no eligible chips.\n */\n focus(options?: FocusOptions): void {\n if (!this.disabled) {\n this.elementRef.nativeElement.focus(options);\n }\n }\n\n protected _getOptions() {\n return [...(this.viewOptions || []), ...(this.contentOptions || [])];\n }\n\n protected _optionsComputed = computed(() => {\n return [...(this.viewOptionsSignal() || []), ...(this.contentOptionsSignal() || [])]\n });\n\n /** Sorts the selected values in the selected based on their order in the panel. */\n private _sortValues() {\n if (this.multiple) {\n // TODO.\n }\n }\n\n /** Emits change event to set the model value. */\n private _propagateChanges(fallbackValue?: any): void {\n let valueToEmit: any = null;\n if (this.multiple) {\n valueToEmit = (this.selected as NovoOption[]).map((option) => option.value);\n } else {\n valueToEmit = this.selected ? (this.selected as NovoOption).value : fallbackValue;\n }\n\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this.onModelChange(valueToEmit);\n this.onSelect.emit({ selected: valueToEmit });\n this.selectionChange.emit(this._makeChangeEvent(valueToEmit));\n this.ref.markForCheck();\n }\n\n protected _makeChangeEvent(value: any) {\n return new NovoSelectChange(this, value);\n }\n\n /** Scrolls the active option into view. */\n protected _scrollOptionIntoView(index: number): void {\n const options = new QueryList<NovoOption>();\n options.reset(this._getOptions());\n const labelCount = _countGroupLabelsBeforeOption(index, options, this.optionGroups);\n const itemHeight = this._getItemHeight();\n this.panel.nativeElement.scrollTop = _getOptionScrollPosition(\n (index + labelCount) * itemHeight,\n itemHeight,\n this.panel.nativeElement.scrollTop,\n this.panel.nativeElement.offsetHeight,\n );\n }\n\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n private _initKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager<NovoOption>(this._optionsComputed, this.injector).withTypeAhead(250).withHomeAndEnd();\n\n this._keyManager.tabOut.pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen) {\n // Select the active item when tabbing away. This is consistent with how the native\n // select behaves. Note that we only want to do this in single selection mode.\n if (!this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.closePanel();\n }\n });\n\n this._keyManager.change.pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen && this.overlay) {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n } else if (!this.panelOpen && !this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this.empty) {\n this._keyManager.setFirstItemActive();\n } else {\n const options = this._getOptions();\n // eslint-disable-next-line eqeqeq\n const index = options.findIndex(option => option.value == this._value)\n this._keyManager.setActiveItem(index);\n }\n }\n }\n\n /** Calculates the height of the select's options. */\n private _getItemHeight(): number {\n const [first] = this._getOptions();\n if (first) {\n return first._getHostElement().offsetHeight;\n }\n return 0;\n }\n\n // TODO: Deprecate this\n private _initLegacyOptions() {\n if (this.options && this.options.length && typeof this.options[0] === 'string') {\n this.filteredOptions = this.options.map((item) => {\n return { value: item, label: item };\n });\n } else {\n this.filteredOptions = (this.options || [])\n .map((item) => {\n return {\n ...item,\n disabled: Boolean(item.readOnly || item.disabled),\n };\n })\n .map((item) => {\n return {\n ...item,\n active: false,\n };\n });\n }\n }\n\n /**\n * TODO: Deprecate all header methods\n */\n toggleHeader(event, forceValue: boolean = false) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n // Reverse the active property (if forceValue, use that)\n this.header = {\n open: forceValue !== undefined ? forceValue : !this.header.open,\n value: '',\n valid: true,\n };\n }\n\n /**\n * @deprecated use highlight pipe\n */\n highlight(match, query) {\n // Replaces the capture string with a the same string inside of a \"strong\" tag\n return query ? match.replace(new RegExp(this.escapeRegexp(query), 'gi'), '<strong>$&</strong>') : match;\n }\n\n escapeRegexp(queryToEscape) {\n // Ex: if the capture is \"a\" the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n }\n\n saveHeader() {\n if (this.header.value) {\n this.headerConfig.onSave(this.header.value);\n this.createdItem = this.header.value;\n this.closePanel();\n } else {\n this.header.valid = false;\n }\n }\n\n /** Determines the `aria-activedescendant` to be set on the host. */\n _getAriaActiveDescendant(): string | null {\n if (this.panelOpen && this._keyManager && this._keyManager.activeItem) {\n return this._keyManager.activeItem.id;\n }\n\n return null;\n }\n}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { FormControl, NgControl } from '@angular/forms';\nimport { NovoSelectElement } from './Select';\n\n/**\n * Fixes a <novo-select> element so that if its value is updated externally, the checkboxes in the dropdown selector\n * update accordingly. Because this is a functionality change to a core control, this fix is provided as a directive\n * to only be used if needed.\n */\n@Directive({\n selector: 'novo-select[extupdatefix]',\n standalone: false,\n})\nexport class NovoSelectExtUpdateFix implements OnInit {\n control = inject(NgControl);\n selectElement = inject(NovoSelectElement);\n\n ngOnInit() {\n if (this.control?.control && 'registerOnChange' in this.control.control) {\n (this.control.control as FormControl).registerOnChange((rawValue, viewToModelUpdate) => {\n if (this.selectElement.multiple === Array.isArray(rawValue)) {\n this.afterExternalUpdate(rawValue);\n }\n });\n }\n }\n\n afterExternalUpdate(rawValue: any) {\n this.selectElement['_setSelectionByValue'](rawValue);\n }\n}\n","// NG\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// App\nimport { NovoPipesModule } from 'novo-elements/pipes';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoDividerModule } from 'novo-elements/elements/divider';\nimport { NovoTooltipModule } from 'novo-elements/elements/tooltip';\nimport { NovoSelectElement } from './Select';\nimport { NovoSelectExtUpdateFix } from './Select.extupdatefix.directive';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n NovoButtonModule,\n NovoDividerModule,\n NovoOptionModule,\n NovoOverlayModule,\n NovoPipesModule,\n NovoTooltipModule,\n NovoIconModule,\n ],\n declarations: [NovoSelectElement, NovoSelectExtUpdateFix],\n exports: [NovoSelectElement, NovoSelectExtUpdateFix],\n})\nexport class NovoSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}