@danske/sapphire-angular 1.12.4

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 (354) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +25 -0
  3. package/esm2020/danske-sapphire-angular.mjs +5 -0
  4. package/esm2020/lib/badge/public_api.mjs +3 -0
  5. package/esm2020/lib/badge/src/badge.component.mjs +66 -0
  6. package/esm2020/lib/badge/src/badge.module.mjs +18 -0
  7. package/esm2020/lib/button/public_api.mjs +12 -0
  8. package/esm2020/lib/button/src/button-group.component.mjs +57 -0
  9. package/esm2020/lib/button/src/button-icon.directive.mjs +13 -0
  10. package/esm2020/lib/button/src/button.component.mjs +100 -0
  11. package/esm2020/lib/button/src/button.module.mjs +48 -0
  12. package/esm2020/lib/button/src/icon-button.component.mjs +95 -0
  13. package/esm2020/lib/button/src/toggle-button-required-validator.mjs +27 -0
  14. package/esm2020/lib/button/src/toggle-button.component.mjs +124 -0
  15. package/esm2020/lib/checkbox/public_api.mjs +8 -0
  16. package/esm2020/lib/checkbox/src/checkbox-required-validator.mjs +26 -0
  17. package/esm2020/lib/checkbox/src/checkbox.component.mjs +264 -0
  18. package/esm2020/lib/checkbox/src/checkbox.module.mjs +21 -0
  19. package/esm2020/lib/common/auto-id.decorator.mjs +24 -0
  20. package/esm2020/lib/common/coerce-boolean.decorator.mjs +32 -0
  21. package/esm2020/lib/common/constructor.mjs +2 -0
  22. package/esm2020/lib/common/disabled.mjs +16 -0
  23. package/esm2020/lib/common/focused.directive.mjs +64 -0
  24. package/esm2020/lib/common/placement.mjs +60 -0
  25. package/esm2020/lib/common/platform.mjs +45 -0
  26. package/esm2020/lib/common/pressed.directive.mjs +55 -0
  27. package/esm2020/lib/common/public_api.mjs +4 -0
  28. package/esm2020/lib/common/sapphire-view-encapsulation.mjs +83 -0
  29. package/esm2020/lib/common/scroll-monitor.directive.mjs +63 -0
  30. package/esm2020/lib/common/tabindex.mjs +19 -0
  31. package/esm2020/lib/common/visually-hidden.directive.mjs +32 -0
  32. package/esm2020/lib/contextual-help/public_api.mjs +3 -0
  33. package/esm2020/lib/contextual-help/src/contextual-help.component.mjs +112 -0
  34. package/esm2020/lib/contextual-help/src/contextual-help.module.mjs +33 -0
  35. package/esm2020/lib/core.module.mjs +179 -0
  36. package/esm2020/lib/field/public_api.mjs +8 -0
  37. package/esm2020/lib/field/src/field-control.mjs +17 -0
  38. package/esm2020/lib/field/src/field-error.directive.mjs +20 -0
  39. package/esm2020/lib/field/src/field-label.directive.mjs +17 -0
  40. package/esm2020/lib/field/src/field-note-suffix.directive.mjs +28 -0
  41. package/esm2020/lib/field/src/field-note.directive.mjs +17 -0
  42. package/esm2020/lib/field/src/field.component.mjs +153 -0
  43. package/esm2020/lib/field/src/field.module.mjs +49 -0
  44. package/esm2020/lib/icon/public_api.mjs +4 -0
  45. package/esm2020/lib/icon/src/icon-size-provider.mjs +18 -0
  46. package/esm2020/lib/icon/src/icon.component.mjs +67 -0
  47. package/esm2020/lib/icon/src/icon.module.mjs +18 -0
  48. package/esm2020/lib/label/public_api.mjs +6 -0
  49. package/esm2020/lib/label/src/label.component.mjs +61 -0
  50. package/esm2020/lib/link/public_api.mjs +7 -0
  51. package/esm2020/lib/link/src/link.component.mjs +62 -0
  52. package/esm2020/lib/link/src/link.module.mjs +16 -0
  53. package/esm2020/lib/listbox/public_api.mjs +10 -0
  54. package/esm2020/lib/listbox/src/cdk-option-scroll-issue-patch.mjs +30 -0
  55. package/esm2020/lib/listbox/src/listbox-child.mjs +7 -0
  56. package/esm2020/lib/listbox/src/listbox-input.directive.mjs +42 -0
  57. package/esm2020/lib/listbox/src/listbox-item.component.mjs +49 -0
  58. package/esm2020/lib/listbox/src/listbox.component.mjs +273 -0
  59. package/esm2020/lib/listbox/src/listbox.module.mjs +81 -0
  60. package/esm2020/lib/listbox/src/option-icon.directive.mjs +22 -0
  61. package/esm2020/lib/listbox/src/option-primary-text.directive.mjs +25 -0
  62. package/esm2020/lib/listbox/src/option-secondary-text.directive.mjs +22 -0
  63. package/esm2020/lib/listbox/src/option.component.mjs +58 -0
  64. package/esm2020/lib/listbox/src/section.directive.mjs +46 -0
  65. package/esm2020/lib/menu/public_api.mjs +10 -0
  66. package/esm2020/lib/menu/src/menu-item.component.mjs +45 -0
  67. package/esm2020/lib/menu/src/menu-section.component.mjs +27 -0
  68. package/esm2020/lib/menu/src/menu-trigger.directive.mjs +149 -0
  69. package/esm2020/lib/menu/src/menu.component.mjs +33 -0
  70. package/esm2020/lib/menu/src/menu.module.mjs +39 -0
  71. package/esm2020/lib/modal/public_api.mjs +19 -0
  72. package/esm2020/lib/modal/src/dialog/confirmation-dialog.component.mjs +61 -0
  73. package/esm2020/lib/modal/src/dialog/danger-dialog.component.mjs +62 -0
  74. package/esm2020/lib/modal/src/dialog/dialog-close-button.directive.mjs +18 -0
  75. package/esm2020/lib/modal/src/dialog/dialog-content.directive.mjs +29 -0
  76. package/esm2020/lib/modal/src/dialog/dialog-footer.component.mjs +43 -0
  77. package/esm2020/lib/modal/src/dialog/dialog-header.component.mjs +65 -0
  78. package/esm2020/lib/modal/src/dialog/dialog-trigger.directive.mjs +37 -0
  79. package/esm2020/lib/modal/src/dialog/dialog.component.mjs +60 -0
  80. package/esm2020/lib/modal/src/modal-base.component.mjs +89 -0
  81. package/esm2020/lib/modal/src/modal-close-button.directive.mjs +28 -0
  82. package/esm2020/lib/modal/src/modal-trigger.directive.mjs +42 -0
  83. package/esm2020/lib/modal/src/modal.module.mjs +143 -0
  84. package/esm2020/lib/modal/src/modal.service.mjs +58 -0
  85. package/esm2020/lib/modal/src/panel/inline-panel.component.mjs +15 -0
  86. package/esm2020/lib/modal/src/panel/panel-back-button.directive.mjs +13 -0
  87. package/esm2020/lib/modal/src/panel/panel-close-button.directive.mjs +16 -0
  88. package/esm2020/lib/modal/src/panel/panel-content.component.mjs +38 -0
  89. package/esm2020/lib/modal/src/panel/panel-footer.component.mjs +38 -0
  90. package/esm2020/lib/modal/src/panel/panel-header.component.mjs +68 -0
  91. package/esm2020/lib/modal/src/panel/panel-trigger.directive.mjs +37 -0
  92. package/esm2020/lib/modal/src/panel/panel.component.mjs +37 -0
  93. package/esm2020/lib/notification-badge/public_api.mjs +3 -0
  94. package/esm2020/lib/notification-badge/src/notification-badge.component.mjs +28 -0
  95. package/esm2020/lib/notification-badge/src/notification-badge.module.mjs +18 -0
  96. package/esm2020/lib/pagination/public_api.mjs +3 -0
  97. package/esm2020/lib/pagination/src/pagination.component.mjs +85 -0
  98. package/esm2020/lib/pagination/src/pagination.module.mjs +36 -0
  99. package/esm2020/lib/popover/public_api.mjs +10 -0
  100. package/esm2020/lib/popover/src/popover-close-button.directive.mjs +32 -0
  101. package/esm2020/lib/popover/src/popover-title.directive.mjs +24 -0
  102. package/esm2020/lib/popover/src/popover-trigger.directive.mjs +301 -0
  103. package/esm2020/lib/popover/src/popover.component.mjs +88 -0
  104. package/esm2020/lib/popover/src/popover.module.mjs +38 -0
  105. package/esm2020/lib/radio/public_api.mjs +8 -0
  106. package/esm2020/lib/radio/src/radio-group.component.mjs +195 -0
  107. package/esm2020/lib/radio/src/radio.component.mjs +279 -0
  108. package/esm2020/lib/radio/src/radio.module.mjs +22 -0
  109. package/esm2020/lib/segmented-tabs/public_api.mjs +6 -0
  110. package/esm2020/lib/segmented-tabs/src/segmented-tab-content.directive.mjs +15 -0
  111. package/esm2020/lib/segmented-tabs/src/segmented-tab-label.directive.mjs +20 -0
  112. package/esm2020/lib/segmented-tabs/src/segmented-tab.component.mjs +69 -0
  113. package/esm2020/lib/segmented-tabs/src/segmented-tabs.component.mjs +215 -0
  114. package/esm2020/lib/segmented-tabs/src/segmented-tabs.module.mjs +39 -0
  115. package/esm2020/lib/select/public_api.mjs +10 -0
  116. package/esm2020/lib/select/src/basic-select/basic-select.component.mjs +127 -0
  117. package/esm2020/lib/select/src/common/hidden-select.component.mjs +33 -0
  118. package/esm2020/lib/select/src/common/select-component-base.mjs +267 -0
  119. package/esm2020/lib/select/src/common/select-value-holder.mjs +86 -0
  120. package/esm2020/lib/select/src/select/searchable-select.directive.mjs +90 -0
  121. package/esm2020/lib/select/src/select/select.component.mjs +351 -0
  122. package/esm2020/lib/select/src/select/select.module.mjs +113 -0
  123. package/esm2020/lib/select/src/select/selection-text.directive.mjs +19 -0
  124. package/esm2020/lib/skeleton/public_api.mjs +6 -0
  125. package/esm2020/lib/skeleton/src/skeleton-block.directive.mjs +16 -0
  126. package/esm2020/lib/skeleton/src/skeleton-circle.directive.mjs +16 -0
  127. package/esm2020/lib/skeleton/src/skeleton-text.directive.mjs +43 -0
  128. package/esm2020/lib/skeleton/src/skeleton.component.mjs +29 -0
  129. package/esm2020/lib/skeleton/src/skeleton.module.mjs +37 -0
  130. package/esm2020/lib/skeleton/src/util.mjs +2 -0
  131. package/esm2020/lib/surface/public_api.mjs +7 -0
  132. package/esm2020/lib/surface/src/surface.component.mjs +25 -0
  133. package/esm2020/lib/surface/src/surface.module.mjs +16 -0
  134. package/esm2020/lib/switch/public_api.mjs +4 -0
  135. package/esm2020/lib/switch/src/switch-required-validator.mjs +27 -0
  136. package/esm2020/lib/switch/src/switch.component.mjs +216 -0
  137. package/esm2020/lib/switch/src/switch.module.mjs +19 -0
  138. package/esm2020/lib/table/public_api.mjs +15 -0
  139. package/esm2020/lib/table/src/table-body.directive.mjs +20 -0
  140. package/esm2020/lib/table/src/table-cell.directive.mjs +87 -0
  141. package/esm2020/lib/table/src/table-head-cell.component.mjs +57 -0
  142. package/esm2020/lib/table/src/table-head.directive.mjs +32 -0
  143. package/esm2020/lib/table/src/table-row.directive.mjs +48 -0
  144. package/esm2020/lib/table/src/table-sort-header.directive.mjs +44 -0
  145. package/esm2020/lib/table/src/table-sort.directive.mjs +26 -0
  146. package/esm2020/lib/table/src/table.component.mjs +82 -0
  147. package/esm2020/lib/table/src/table.directive.mjs +20 -0
  148. package/esm2020/lib/table/src/table.module.mjs +74 -0
  149. package/esm2020/lib/text-field/public_api.mjs +12 -0
  150. package/esm2020/lib/text-field/src/text-field-affix.directive.mjs +26 -0
  151. package/esm2020/lib/text-field/src/text-field-input.directive.mjs +51 -0
  152. package/esm2020/lib/text-field/src/text-field-postfix.directive.mjs +13 -0
  153. package/esm2020/lib/text-field/src/text-field-prefix.directive.mjs +13 -0
  154. package/esm2020/lib/text-field/src/text-field-textarea-autosize.directive.mjs +73 -0
  155. package/esm2020/lib/text-field/src/text-field.component.mjs +78 -0
  156. package/esm2020/lib/text-field/src/text-field.module.mjs +67 -0
  157. package/esm2020/lib/theme/public_api.mjs +34 -0
  158. package/esm2020/lib/theme/src/sapphire-overlay-container.service.mjs +38 -0
  159. package/esm2020/lib/theme/src/theme-base.directive.mjs +87 -0
  160. package/esm2020/lib/theme/src/theme-check.directive.mjs +29 -0
  161. package/esm2020/lib/theme/src/theme-root.directive.mjs +23 -0
  162. package/esm2020/lib/theme/src/theme.module.mjs +32 -0
  163. package/esm2020/lib/theme/src/themes.mjs +27 -0
  164. package/esm2020/lib/theme/src/top-level-theme-ref.service.mjs +21 -0
  165. package/esm2020/lib/tooltip/public_api.mjs +5 -0
  166. package/esm2020/lib/tooltip/src/tooltip.component.mjs +47 -0
  167. package/esm2020/lib/tooltip/src/tooltip.directive.mjs +223 -0
  168. package/esm2020/lib/tooltip/src/tooltip.module.mjs +30 -0
  169. package/esm2020/lib/tooltip/src/truncated-with-tooltip.directive.mjs +56 -0
  170. package/esm2020/lib/typography/public_api.mjs +8 -0
  171. package/esm2020/lib/typography/src/heading.component.mjs +44 -0
  172. package/esm2020/lib/typography/src/paragraph.component.mjs +24 -0
  173. package/esm2020/lib/typography/src/typography.module.mjs +19 -0
  174. package/esm2020/public-api.mjs +30 -0
  175. package/fesm2015/danske-sapphire-angular.mjs +8010 -0
  176. package/fesm2015/danske-sapphire-angular.mjs.map +1 -0
  177. package/fesm2020/danske-sapphire-angular.mjs +7890 -0
  178. package/fesm2020/danske-sapphire-angular.mjs.map +1 -0
  179. package/index.d.ts +5 -0
  180. package/lib/badge/public_api.d.ts +2 -0
  181. package/lib/badge/src/badge.component.d.ts +35 -0
  182. package/lib/badge/src/badge.module.d.ts +8 -0
  183. package/lib/button/public_api.d.ts +7 -0
  184. package/lib/button/src/button-group.component.d.ts +26 -0
  185. package/lib/button/src/button-icon.directive.d.ts +5 -0
  186. package/lib/button/src/button.component.d.ts +31 -0
  187. package/lib/button/src/button.module.d.ts +14 -0
  188. package/lib/button/src/icon-button.component.d.ts +26 -0
  189. package/lib/button/src/toggle-button-required-validator.d.ts +10 -0
  190. package/lib/button/src/toggle-button.component.d.ts +39 -0
  191. package/lib/checkbox/public_api.d.ts +3 -0
  192. package/lib/checkbox/src/checkbox-required-validator.d.ts +10 -0
  193. package/lib/checkbox/src/checkbox.component.d.ts +112 -0
  194. package/lib/checkbox/src/checkbox.module.d.ts +11 -0
  195. package/lib/common/auto-id.decorator.d.ts +7 -0
  196. package/lib/common/coerce-boolean.decorator.d.ts +7 -0
  197. package/lib/common/constructor.d.ts +2 -0
  198. package/lib/common/disabled.d.ts +9 -0
  199. package/lib/common/focused.directive.d.ts +30 -0
  200. package/lib/common/placement.d.ts +11 -0
  201. package/lib/common/platform.d.ts +9 -0
  202. package/lib/common/pressed.directive.d.ts +27 -0
  203. package/lib/common/public_api.d.ts +2 -0
  204. package/lib/common/sapphire-view-encapsulation.d.ts +37 -0
  205. package/lib/common/scroll-monitor.directive.d.ts +23 -0
  206. package/lib/common/tabindex.d.ts +12 -0
  207. package/lib/common/visually-hidden.directive.d.ts +11 -0
  208. package/lib/contextual-help/public_api.d.ts +2 -0
  209. package/lib/contextual-help/src/contextual-help.component.d.ts +50 -0
  210. package/lib/contextual-help/src/contextual-help.module.d.ts +7 -0
  211. package/lib/core.module.d.ts +30 -0
  212. package/lib/field/public_api.d.ts +7 -0
  213. package/lib/field/src/field-control.d.ts +16 -0
  214. package/lib/field/src/field-error.directive.d.ts +8 -0
  215. package/lib/field/src/field-label.directive.d.ts +8 -0
  216. package/lib/field/src/field-note-suffix.directive.d.ts +15 -0
  217. package/lib/field/src/field-note.directive.d.ts +8 -0
  218. package/lib/field/src/field.component.d.ts +77 -0
  219. package/lib/field/src/field.module.d.ts +14 -0
  220. package/lib/icon/public_api.d.ts +3 -0
  221. package/lib/icon/src/icon-size-provider.d.ts +23 -0
  222. package/lib/icon/src/icon.component.d.ts +18 -0
  223. package/lib/icon/src/icon.module.d.ts +8 -0
  224. package/lib/label/public_api.d.ts +5 -0
  225. package/lib/label/src/label.component.d.ts +43 -0
  226. package/lib/link/public_api.d.ts +2 -0
  227. package/lib/link/src/link.component.d.ts +13 -0
  228. package/lib/link/src/link.module.d.ts +7 -0
  229. package/lib/listbox/public_api.d.ts +9 -0
  230. package/lib/listbox/src/cdk-option-scroll-issue-patch.d.ts +17 -0
  231. package/lib/listbox/src/listbox-child.d.ts +6 -0
  232. package/lib/listbox/src/listbox-input.directive.d.ts +16 -0
  233. package/lib/listbox/src/listbox-item.component.d.ts +21 -0
  234. package/lib/listbox/src/listbox.component.d.ts +127 -0
  235. package/lib/listbox/src/listbox.module.d.ts +22 -0
  236. package/lib/listbox/src/option-icon.directive.d.ts +10 -0
  237. package/lib/listbox/src/option-primary-text.directive.d.ts +14 -0
  238. package/lib/listbox/src/option-secondary-text.directive.d.ts +10 -0
  239. package/lib/listbox/src/option.component.d.ts +21 -0
  240. package/lib/listbox/src/section.directive.d.ts +14 -0
  241. package/lib/menu/public_api.d.ts +5 -0
  242. package/lib/menu/src/menu-item.component.d.ts +12 -0
  243. package/lib/menu/src/menu-section.component.d.ts +12 -0
  244. package/lib/menu/src/menu-trigger.directive.d.ts +34 -0
  245. package/lib/menu/src/menu.component.d.ts +10 -0
  246. package/lib/menu/src/menu.module.d.ts +13 -0
  247. package/lib/modal/public_api.d.ts +18 -0
  248. package/lib/modal/src/dialog/confirmation-dialog.component.d.ts +43 -0
  249. package/lib/modal/src/dialog/danger-dialog.component.d.ts +44 -0
  250. package/lib/modal/src/dialog/dialog-close-button.directive.d.ts +7 -0
  251. package/lib/modal/src/dialog/dialog-content.directive.d.ts +13 -0
  252. package/lib/modal/src/dialog/dialog-footer.component.d.ts +20 -0
  253. package/lib/modal/src/dialog/dialog-header.component.d.ts +25 -0
  254. package/lib/modal/src/dialog/dialog-trigger.directive.d.ts +13 -0
  255. package/lib/modal/src/dialog/dialog.component.d.ts +33 -0
  256. package/lib/modal/src/modal-base.component.d.ts +33 -0
  257. package/lib/modal/src/modal-close-button.directive.d.ts +9 -0
  258. package/lib/modal/src/modal-trigger.directive.d.ts +24 -0
  259. package/lib/modal/src/modal.module.d.ts +30 -0
  260. package/lib/modal/src/modal.service.d.ts +26 -0
  261. package/lib/modal/src/panel/inline-panel.component.d.ts +6 -0
  262. package/lib/modal/src/panel/panel-back-button.directive.d.ts +5 -0
  263. package/lib/modal/src/panel/panel-close-button.directive.d.ts +6 -0
  264. package/lib/modal/src/panel/panel-content.component.d.ts +14 -0
  265. package/lib/modal/src/panel/panel-footer.component.d.ts +21 -0
  266. package/lib/modal/src/panel/panel-header.component.d.ts +26 -0
  267. package/lib/modal/src/panel/panel-trigger.directive.d.ts +13 -0
  268. package/lib/modal/src/panel/panel.component.d.ts +18 -0
  269. package/lib/notification-badge/public_api.d.ts +2 -0
  270. package/lib/notification-badge/src/notification-badge.component.d.ts +10 -0
  271. package/lib/notification-badge/src/notification-badge.module.d.ts +8 -0
  272. package/lib/pagination/public_api.d.ts +2 -0
  273. package/lib/pagination/src/pagination.component.d.ts +32 -0
  274. package/lib/pagination/src/pagination.module.d.ts +12 -0
  275. package/lib/popover/public_api.d.ts +5 -0
  276. package/lib/popover/src/popover-close-button.directive.d.ts +13 -0
  277. package/lib/popover/src/popover-title.directive.d.ts +11 -0
  278. package/lib/popover/src/popover-trigger.directive.d.ts +86 -0
  279. package/lib/popover/src/popover.component.d.ts +32 -0
  280. package/lib/popover/src/popover.module.d.ts +12 -0
  281. package/lib/radio/public_api.d.ts +3 -0
  282. package/lib/radio/src/radio-group.component.d.ts +65 -0
  283. package/lib/radio/src/radio.component.d.ts +99 -0
  284. package/lib/radio/src/radio.module.d.ts +12 -0
  285. package/lib/segmented-tabs/public_api.d.ts +5 -0
  286. package/lib/segmented-tabs/src/segmented-tab-content.directive.d.ts +6 -0
  287. package/lib/segmented-tabs/src/segmented-tab-label.directive.d.ts +6 -0
  288. package/lib/segmented-tabs/src/segmented-tab.component.d.ts +27 -0
  289. package/lib/segmented-tabs/src/segmented-tabs.component.d.ts +48 -0
  290. package/lib/segmented-tabs/src/segmented-tabs.module.d.ts +13 -0
  291. package/lib/select/public_api.d.ts +5 -0
  292. package/lib/select/src/basic-select/basic-select.component.d.ts +50 -0
  293. package/lib/select/src/common/hidden-select.component.d.ts +19 -0
  294. package/lib/select/src/common/select-component-base.d.ts +109 -0
  295. package/lib/select/src/common/select-value-holder.d.ts +54 -0
  296. package/lib/select/src/select/searchable-select.directive.d.ts +40 -0
  297. package/lib/select/src/select/select.component.d.ts +80 -0
  298. package/lib/select/src/select/select.module.d.ts +26 -0
  299. package/lib/select/src/select/selection-text.directive.d.ts +11 -0
  300. package/lib/skeleton/public_api.d.ts +5 -0
  301. package/lib/skeleton/src/skeleton-block.directive.d.ts +5 -0
  302. package/lib/skeleton/src/skeleton-circle.directive.d.ts +5 -0
  303. package/lib/skeleton/src/skeleton-text.directive.d.ts +13 -0
  304. package/lib/skeleton/src/skeleton.component.d.ts +13 -0
  305. package/lib/skeleton/src/skeleton.module.d.ts +11 -0
  306. package/lib/skeleton/src/util.d.ts +1 -0
  307. package/lib/surface/public_api.d.ts +2 -0
  308. package/lib/surface/src/surface.component.d.ts +11 -0
  309. package/lib/surface/src/surface.module.d.ts +7 -0
  310. package/lib/switch/public_api.d.ts +3 -0
  311. package/lib/switch/src/switch-required-validator.d.ts +10 -0
  312. package/lib/switch/src/switch.component.d.ts +91 -0
  313. package/lib/switch/src/switch.module.d.ts +9 -0
  314. package/lib/table/public_api.d.ts +10 -0
  315. package/lib/table/src/table-body.directive.d.ts +7 -0
  316. package/lib/table/src/table-cell.directive.d.ts +30 -0
  317. package/lib/table/src/table-head-cell.component.d.ts +19 -0
  318. package/lib/table/src/table-head.directive.d.ts +10 -0
  319. package/lib/table/src/table-row.directive.d.ts +16 -0
  320. package/lib/table/src/table-sort-header.directive.d.ts +11 -0
  321. package/lib/table/src/table-sort.directive.d.ts +13 -0
  322. package/lib/table/src/table.component.d.ts +37 -0
  323. package/lib/table/src/table.directive.d.ts +7 -0
  324. package/lib/table/src/table.module.d.ts +19 -0
  325. package/lib/text-field/public_api.d.ts +7 -0
  326. package/lib/text-field/src/text-field-affix.directive.d.ts +10 -0
  327. package/lib/text-field/src/text-field-input.directive.d.ts +16 -0
  328. package/lib/text-field/src/text-field-postfix.directive.d.ts +5 -0
  329. package/lib/text-field/src/text-field-prefix.directive.d.ts +5 -0
  330. package/lib/text-field/src/text-field-textarea-autosize.directive.d.ts +20 -0
  331. package/lib/text-field/src/text-field.component.d.ts +23 -0
  332. package/lib/text-field/src/text-field.module.d.ts +17 -0
  333. package/lib/theme/public_api.d.ts +24 -0
  334. package/lib/theme/src/sapphire-overlay-container.service.d.ts +14 -0
  335. package/lib/theme/src/theme-base.directive.d.ts +14 -0
  336. package/lib/theme/src/theme-check.directive.d.ts +14 -0
  337. package/lib/theme/src/theme-root.directive.d.ts +13 -0
  338. package/lib/theme/src/theme.module.d.ts +14 -0
  339. package/lib/theme/src/themes.d.ts +16 -0
  340. package/lib/theme/src/top-level-theme-ref.service.d.ts +13 -0
  341. package/lib/tooltip/public_api.d.ts +4 -0
  342. package/lib/tooltip/src/tooltip.component.d.ts +10 -0
  343. package/lib/tooltip/src/tooltip.directive.d.ts +39 -0
  344. package/lib/tooltip/src/tooltip.module.d.ts +11 -0
  345. package/lib/tooltip/src/truncated-with-tooltip.directive.d.ts +26 -0
  346. package/lib/typography/public_api.d.ts +3 -0
  347. package/lib/typography/src/heading.component.d.ts +17 -0
  348. package/lib/typography/src/paragraph.component.d.ts +8 -0
  349. package/lib/typography/src/typography.module.d.ts +9 -0
  350. package/package.json +45 -0
  351. package/public-api.d.ts +26 -0
  352. package/src/lib/listbox/src/README.md +67 -0
  353. package/theme-assets/default-dark.css +1 -0
  354. package/theme-assets/default.css +1 -0
@@ -0,0 +1,351 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Directive, ElementRef, forwardRef, Optional, ViewChild, } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
+ import { combineLatest, empty, Subject } from 'rxjs';
6
+ import { map, startWith, takeUntil } from 'rxjs/operators';
7
+ import { AutoId } from '../../../common/auto-id.decorator';
8
+ import { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';
9
+ import { ListboxComponent } from '../../../listbox/public_api';
10
+ import { section } from '../../../listbox/src/section.directive';
11
+ import { FieldControl } from '../../../field/public_api';
12
+ import { SelectComponentBase } from '../common/select-component-base';
13
+ import { MultiSelectDirectiveBase, SelectValueHolder, SingleSelectDirectiveBase, } from '../common/select-value-holder';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "../common/select-value-holder";
16
+ import * as i2 from "@angular/cdk/a11y";
17
+ import * as i3 from "../../../field/public_api";
18
+ import * as i4 from "./searchable-select.directive";
19
+ import * as i5 from "../../../common/sapphire-view-encapsulation";
20
+ import * as i6 from "@angular/common";
21
+ import * as i7 from "../../../icon/src/icon.component";
22
+ import * as i8 from "../../../listbox/src/listbox.component";
23
+ import * as i9 from "../../../listbox/src/listbox-input.directive";
24
+ import * as i10 from "../../../popover/src/popover.component";
25
+ import * as i11 from "../../../popover/src/popover-trigger.directive";
26
+ import * as i12 from "../../../common/visually-hidden.directive";
27
+ import * as i13 from "../common/hidden-select.component";
28
+ /**
29
+ * Enables multiple selection. When present, `value` will be of type `string[]`, and `valueChange`
30
+ * will emit `string[]`.
31
+ */
32
+ export class MultiSelectDirective extends MultiSelectDirectiveBase {
33
+ }
34
+ MultiSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: MultiSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
35
+ MultiSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: MultiSelectDirective, selector: "sp-select[multiple]", providers: [
36
+ {
37
+ provide: SelectValueHolder,
38
+ useExisting: forwardRef(() => MultiSelectDirective),
39
+ },
40
+ ], usesInheritance: true, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: MultiSelectDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: 'sp-select[multiple]',
45
+ providers: [
46
+ {
47
+ provide: SelectValueHolder,
48
+ useExisting: forwardRef(() => MultiSelectDirective),
49
+ },
50
+ ],
51
+ }]
52
+ }] });
53
+ /**
54
+ * Enables single selection, the default behavior of Select.
55
+ * When present, `value` will be of type `string`, and `valueChange` will emit `string`.
56
+ */
57
+ export class SingleSelectDirective extends SingleSelectDirectiveBase {
58
+ }
59
+ SingleSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SingleSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
60
+ SingleSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SingleSelectDirective, selector: "sp-select:not([multiple])", providers: [
61
+ {
62
+ provide: SelectValueHolder,
63
+ useExisting: forwardRef(() => SingleSelectDirective),
64
+ },
65
+ ], usesInheritance: true, ngImport: i0 });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SingleSelectDirective, decorators: [{
67
+ type: Directive,
68
+ args: [{
69
+ selector: 'sp-select:not([multiple])',
70
+ providers: [
71
+ {
72
+ provide: SelectValueHolder,
73
+ useExisting: forwardRef(() => SingleSelectDirective),
74
+ },
75
+ ],
76
+ }]
77
+ }] });
78
+ /**
79
+ * Allows user to select a single option from a list, similar to native select
80
+ * component.
81
+ *
82
+ * Example:
83
+ * ```tsx
84
+ * <sp-field>
85
+ * <sp-field-label>Label text</sp-field-label>
86
+ * <sp-select placeholder="Select an option">
87
+ * <sp-option value="option1">First Option</sp-option>
88
+ * <sp-option value="option2">Second Option</sp-option>
89
+ * <sp-option value="option3">Third Option</sp-option>
90
+ * </sp-select>
91
+ * </sp-field>
92
+ * ```
93
+ */
94
+ export class SelectComponent extends SelectComponentBase {
95
+ get searchable() {
96
+ return Boolean(this._searchableSelectDirective);
97
+ }
98
+ constructor(valueHolder, focusMonitor, inputModality, _field, _searchableSelectDirective) {
99
+ super(valueHolder);
100
+ this.focusMonitor = focusMonitor;
101
+ this.inputModality = inputModality;
102
+ this._field = _field;
103
+ this._searchableSelectDirective = _searchableSelectDirective;
104
+ this.focusOrigin = null;
105
+ this.filteredChildren$ = new Subject();
106
+ /**
107
+ * id of trigger value area, which will contain either the selected value or the placeholder.
108
+ */
109
+ this._valueContainerId = '';
110
+ this.destroyed = new Subject();
111
+ }
112
+ ngAfterViewInit() {
113
+ super.ngAfterViewInit();
114
+ const listboxItem$ = this.listboxChildren.changes.pipe(startWith(this.listboxChildren));
115
+ const searchableSelect = this._searchableSelectDirective;
116
+ if (this.searchInput && searchableSelect) {
117
+ const searchInputValue$ = searchableSelect.searchValueChange.pipe(takeUntil(this.destroyed), startWith(searchableSelect.searchValue));
118
+ const filterResult$ = combineLatest(searchInputValue$, listboxItem$).pipe(map(([searchQuery]) => {
119
+ if (!searchQuery) {
120
+ return {
121
+ filteredChildren: this.listboxChildren.toArray(),
122
+ filteredOutOptions: [],
123
+ };
124
+ }
125
+ return searchableSelect.filterListboxItems(this.listboxChildren, (option) => !searchableSelect.filter ||
126
+ searchableSelect.filter(option, searchQuery));
127
+ }));
128
+ this.filteredChildren$ = this.multiple
129
+ ? // Grouping selected options
130
+ combineLatest(filterResult$, this.valueHolder.valueChange.pipe(startWith(empty()))).pipe(map(([{ filteredChildren }]) => {
131
+ if (this.listboxValue.length === 0) {
132
+ return filteredChildren;
133
+ }
134
+ const { filteredOutOptions: selectedOptions, filteredChildren: selectionExcludedChildren, } = searchableSelect.filterListboxItems(filteredChildren, (option) => !this.listboxValue.includes(option.value));
135
+ return (selectedOptions.length > 0
136
+ ? [section(selectedOptions)]
137
+ : []).concat(selectionExcludedChildren);
138
+ }))
139
+ : filterResult$.pipe(map(({ filteredChildren }) => filteredChildren));
140
+ }
141
+ else {
142
+ this.filteredChildren$ = listboxItem$;
143
+ }
144
+ }
145
+ ngOnDestroy() {
146
+ super.ngOnDestroy();
147
+ this.destroyed.next();
148
+ this.destroyed.complete();
149
+ }
150
+ _getAriaLabelledBy() {
151
+ // The logic here is similar to the one in react-aria's useSelect.
152
+ const labelledBy = this.ariaLabelledby || this._field?.label?.id;
153
+ return [
154
+ this._valueContainerId,
155
+ labelledBy,
156
+ this.ariaLabel && !labelledBy ? this.id : null,
157
+ ]
158
+ .filter((i) => i)
159
+ .join(' ');
160
+ }
161
+ isFocused() {
162
+ return Boolean(this.focusOrigin);
163
+ }
164
+ isFocusVisible() {
165
+ return (this.isFocused() &&
166
+ // This is needed because focus doesn't change when a key (e.g. Escape) is pressed in the search input.
167
+ (this.inputModality.mostRecentModality === 'keyboard' ||
168
+ // This is needed for when label is clicked and focusOrigin is forced to keyboard, but current modality is mouse.
169
+ this.focusOrigin === 'keyboard') &&
170
+ !this.isOpen() // This is because in searchable select, the actual focus is on the input,
171
+ // but it's meant to be shown on the listbox. It doesn't make sense to show the focus in two
172
+ // places.
173
+ );
174
+ }
175
+ focus(focusOrigin = 'program') {
176
+ this.focusMonitor.focusVia(this.searchInput?.nativeElement ?? this.triggerElementRef?.nativeElement, focusOrigin);
177
+ }
178
+ _onFocusChange(focusOrigin) {
179
+ this.focusOrigin = focusOrigin;
180
+ }
181
+ _onFocus() {
182
+ // Whenever focus comes to the trigger , forward it to the search input. It's needed for when
183
+ // the trigger is re-focused after popover is closed.
184
+ this.focus(this.focusOrigin);
185
+ }
186
+ _isInputVisible() {
187
+ return this.isOpen() /*||
188
+ (this.searchInput?.nativeElement === document.activeElement &&
189
+ this.listboxValue.length === 0)*/;
190
+ }
191
+ _onOpen() {
192
+ super._onOpen();
193
+ if (!this.multiple && this._searchableSelectDirective) {
194
+ this._searchableSelectDirective.setSearchValue(this.selectedOptions[0]?.label || '');
195
+ }
196
+ const searchInputElement = this.searchInput?.nativeElement;
197
+ if (this._searchableSelectDirective?.selectTextOnOpen) {
198
+ searchInputElement?.select();
199
+ }
200
+ const focusVisibleOnOpen = this.isFocusVisible();
201
+ // Move focus to the search input. The timeout is needed because popover will autofocus the
202
+ // content, and we need to let the focus first land in the popover, and then steal it.
203
+ setTimeout(() => {
204
+ searchInputElement?.focus();
205
+ // Need to run this also asynchronously, to let the popover (and listbox) mount
206
+ if (!focusVisibleOnOpen && this.selectedOptions.length === 0) {
207
+ // to prevent the first item from being focused when the dropdown is opened via mouse
208
+ this.listbox?.setActiveOption(null);
209
+ }
210
+ });
211
+ }
212
+ _onClose() {
213
+ super._onClose();
214
+ const searchInputElement = this.searchInput?.nativeElement;
215
+ searchInputElement?.setSelectionRange(searchInputElement.value.length, searchInputElement.value.length);
216
+ }
217
+ getFieldLabel() {
218
+ return this._field?.label?.getText() ?? '';
219
+ }
220
+ _onInputKeydown(event) {
221
+ const selectValue = (toBeSelected) => {
222
+ const listboxValue = this.listboxValue;
223
+ const alreadySelected = listboxValue.includes(toBeSelected);
224
+ if (this.multiple) {
225
+ this.listboxValue = alreadySelected
226
+ ? listboxValue.filter((value) => value !== toBeSelected)
227
+ : [...listboxValue, toBeSelected];
228
+ }
229
+ else if (!alreadySelected) {
230
+ this.listboxValue = [toBeSelected];
231
+ }
232
+ };
233
+ const firstOptionValue = this.options?.get(0)?.value;
234
+ switch (event.key) {
235
+ case 'ArrowUp':
236
+ case 'ArrowDown':
237
+ if (!this.isOpen()) {
238
+ this.open();
239
+ event.preventDefault();
240
+ }
241
+ break;
242
+ case 'Escape':
243
+ this.close();
244
+ break;
245
+ case 'Enter':
246
+ // Selection is already handled if there is an active option
247
+ if (this.isOpen()) {
248
+ if (this.listbox?.getActiveOption() == undefined &&
249
+ firstOptionValue) {
250
+ selectValue(firstOptionValue);
251
+ }
252
+ if (!this.multiple) {
253
+ this.close();
254
+ }
255
+ }
256
+ else {
257
+ this.open();
258
+ }
259
+ break;
260
+ case 'Tab':
261
+ if (this.isOpen() && !this.multiple) {
262
+ const toBeSelected = this.listbox?.getActiveOption() || firstOptionValue;
263
+ if (toBeSelected != undefined) {
264
+ selectValue(toBeSelected);
265
+ }
266
+ }
267
+ break;
268
+ }
269
+ }
270
+ _onSearchInput(event) {
271
+ if (event.target instanceof HTMLInputElement) {
272
+ const value = event.target?.value;
273
+ this._searchableSelectDirective?.setSearchValue(value);
274
+ // clearing the value when the search input is cleared.
275
+ if (!this.multiple && !value && this.listboxValue.length > 0) {
276
+ this.listboxValue = [];
277
+ }
278
+ }
279
+ this.listbox?.setActiveOption(null);
280
+ }
281
+ _handleSelected() {
282
+ super._handleSelected();
283
+ }
284
+ isDisabled() {
285
+ return coerceBooleanProperty(this.disabled);
286
+ }
287
+ }
288
+ SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SelectComponent, deps: [{ token: i1.SelectValueHolder }, { token: i2.FocusMonitor }, { token: i2.InputModalityDetector }, { token: i3.FieldComponent, optional: true }, { token: i4.SearchableSelectDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
289
+ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SelectComponent, selector: "sp-select", host: { properties: { "class.sapphire-select--error": "_field?.hasError()", "class.sapphire-select--medium": "_field?.size === \"medium\"", "class.is-focus": "isFocusVisible()", "class.is-disabled": "isDisabled()", "attr.id": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.placeholder": "null" }, classAttribute: "sapphire-select" }, providers: [
290
+ {
291
+ provide: NG_VALUE_ACCESSOR,
292
+ useExisting: forwardRef(() => SelectComponent),
293
+ multi: true,
294
+ },
295
+ {
296
+ provide: SelectComponentBase,
297
+ useExisting: forwardRef(() => SelectComponent),
298
+ },
299
+ {
300
+ provide: FieldControl,
301
+ useExisting: forwardRef(() => SelectComponent),
302
+ },
303
+ ], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true }, { propertyName: "triggerElementRef", first: true, predicate: ["triggerElementRef"], descendants: true, read: ElementRef }, { propertyName: "listbox", first: true, predicate: ListboxComponent, descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, read: ElementRef }], exportAs: ["spSelect"], usesInheritance: true, hostDirectives: [{ directive: i5.UseComponentStylesOnHost }], ngImport: i0, template: "<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n [size]=\"_field?.size\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-select-color-content);width:var(--sapphire-select-size-width-control);font-family:var(--sapphire-select-font-name);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-select-size-height-field-l);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-select-size-spacing-control-horizontal-l);border:none;background-color:var(--sapphire-select-color-background-field);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-select-color-border-field-default);border-radius:var(--sapphire-select-size-radius-field)}.sapphire-select--medium .sapphire-select__button{height:var(--sapphire-select-size-height-field-m);padding:0 var(--sapphire-select-size-spacing-control-horizontal-m)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-select-size-font-content-l);width:100%;font-weight:var(--sapphire-select-size-font-weight-item);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--medium .sapphire-select__value{font-size:var(--sapphire-select-size-font-content-m)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-select-color-placeholder)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-select-size-width-icon-l);height:var(--sapphire-select-size-height-icon-l)}.sapphire-select--medium .sapphire-select__icon-container{width:var(--sapphire-select-size-width-icon-m);height:var(--sapphire-select-size-height-icon-m)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-select-color-placeholder)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-select-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-select-size-focus-ring) var(--sapphire-select-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-select-size-focus-ring) var(--sapphire-select-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "component", type: i8.ListboxComponent, selector: "sp-listbox", inputs: ["selectedValues", "spListboxItems", "disabled", "multiple", "navigationWrapDisabled", "aria-label", "aria-labelledby", "size"], outputs: ["selectedValuesChange", "selected"], exportAs: ["spListbox"] }, { kind: "directive", type: i9.ListboxInputDirective, selector: "input[spListboxInput]", inputs: ["spListboxInput"] }, { kind: "component", type: i10.PopoverComponent, selector: "sp-popover", inputs: ["noPadding", "noMaxWidth"] }, { kind: "directive", type: i11.PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: ["spPopoverPlacement", "spPopoverTriggerFor", "spPopoverNonModal", "spPopoverTriggerOpenOnPressStart", "spPopoverTriggerCloseOnScroll", "spPopoverTriggerDisabled"], outputs: ["spPopoverTriggerOpened", "spPopoverTriggerClosed"], exportAs: ["spPopoverTrigger"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i12.VisuallyHiddenDirective, selector: "[spVisuallyHidden]", inputs: ["spVisuallyHidden"] }, { kind: "component", type: i13.HiddenSelectComponent, selector: "sp-hidden-select" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
304
+ __decorate([
305
+ AutoId()
306
+ ], SelectComponent.prototype, "_valueContainerId", void 0);
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SelectComponent, decorators: [{
308
+ type: Component,
309
+ args: [{ selector: 'sp-select', exportAs: 'spSelect', providers: [
310
+ {
311
+ provide: NG_VALUE_ACCESSOR,
312
+ useExisting: forwardRef(() => SelectComponent),
313
+ multi: true,
314
+ },
315
+ {
316
+ provide: SelectComponentBase,
317
+ useExisting: forwardRef(() => SelectComponent),
318
+ },
319
+ {
320
+ provide: FieldControl,
321
+ useExisting: forwardRef(() => SelectComponent),
322
+ },
323
+ ], host: {
324
+ class: 'sapphire-select',
325
+ '[class.sapphire-select--error]': '_field?.hasError()',
326
+ '[class.sapphire-select--medium]': '_field?.size === "medium"',
327
+ '[class.is-focus]': 'isFocusVisible()',
328
+ '[class.is-disabled]': 'isDisabled()',
329
+ '[attr.id]': 'null',
330
+ '[attr.aria-label]': 'null',
331
+ '[attr.aria-labelledby]': 'null',
332
+ '[attr.placeholder]': 'null',
333
+ }, hostDirectives: [UseComponentStylesOnHost], template: "<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n [size]=\"_field?.size\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-select-color-content);width:var(--sapphire-select-size-width-control);font-family:var(--sapphire-select-font-name);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-select-size-height-field-l);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-select-size-spacing-control-horizontal-l);border:none;background-color:var(--sapphire-select-color-background-field);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-select-color-border-field-default);border-radius:var(--sapphire-select-size-radius-field)}.sapphire-select--medium .sapphire-select__button{height:var(--sapphire-select-size-height-field-m);padding:0 var(--sapphire-select-size-spacing-control-horizontal-m)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-select-size-font-content-l);width:100%;font-weight:var(--sapphire-select-size-font-weight-item);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--medium .sapphire-select__value{font-size:var(--sapphire-select-size-font-content-m)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-select-color-placeholder)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-select-size-width-icon-l);height:var(--sapphire-select-size-height-icon-l)}.sapphire-select--medium .sapphire-select__icon-container{width:var(--sapphire-select-size-width-icon-m);height:var(--sapphire-select-size-height-icon-m)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-select-color-placeholder)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-select-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-select-size-focus-ring) var(--sapphire-select-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-select-size-focus-ring) var(--sapphire-select-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"] }]
334
+ }], ctorParameters: function () { return [{ type: i1.SelectValueHolder }, { type: i2.FocusMonitor }, { type: i2.InputModalityDetector }, { type: i3.FieldComponent, decorators: [{
335
+ type: Optional
336
+ }] }, { type: i4.SearchableSelectDirective, decorators: [{
337
+ type: Optional
338
+ }] }]; }, propDecorators: { triggerRef: [{
339
+ type: ViewChild,
340
+ args: ['triggerRef']
341
+ }], triggerElementRef: [{
342
+ type: ViewChild,
343
+ args: ['triggerElementRef', { read: ElementRef }]
344
+ }], listbox: [{
345
+ type: ViewChild,
346
+ args: [ListboxComponent]
347
+ }], searchInput: [{
348
+ type: ViewChild,
349
+ args: ['searchInput', { read: ElementRef }]
350
+ }], _valueContainerId: [] } });
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUVWLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV2RixPQUFPLEVBQWdCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE9BQU8sRUFBa0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIseUJBQXlCLEdBQzFCLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUd2Qzs7O0dBR0c7QUFV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d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDO3lCQUMvQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsWUFBWTs0QkFDckIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7eUJBQy9DO3FCQUNGLFFBQ0s7d0JBQ0osS0FBSyxFQUFFLGlCQUFpQjt3QkFDeEIsZ0NBQWdDLEVBQUUsb0JBQW9CO3dCQUN0RCxpQ0FBaUMsRUFBRSwyQkFBMkI7d0JBQzlELGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMscUJBQXFCLEVBQUUsY0FBYzt3QkFDckMsV0FBVyxFQUFFLE1BQU07d0JBQ25CLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLHdCQUF3QixFQUFFLE1BQU07d0JBQ2hDLG9CQUFvQixFQUFFLE1BQU07cUJBQzdCLGtCQUNlLENBQUMsd0JBQXdCLENBQUM7OzBCQXFDdkMsUUFBUTs7MEJBQ1IsUUFBUTs0Q0E1QkQsVUFBVTtzQkFEbkIsU0FBUzt1QkFBQyxZQUFZO2dCQUliLGlCQUFpQjtzQkFEMUIsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTFDLE9BQU87c0JBRGhCLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUluQixXQUFXO3NCQURsQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBVzlDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBGb2N1c01vbml0b3IsXG4gIEZvY3VzT3JpZ2luLFxuICBJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBlbXB0eSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXV0b0lkIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2F1dG8taWQuZGVjb3JhdG9yJztcbmltcG9ydCB7IFVzZUNvbXBvbmVudFN0eWxlc09uSG9zdCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zYXBwaGlyZS12aWV3LWVuY2Fwc3VsYXRpb24nO1xuaW1wb3J0IHsgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9wb3BvdmVyL3NyYy9wb3BvdmVyLXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpc3Rib3hDaGlsZCwgTGlzdGJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2xpc3Rib3gvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBzZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbGlzdGJveC9zcmMvc2VjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmllbGRDb21wb25lbnQsIEZpZWxkQ29udHJvbCB9IGZyb20gJy4uLy4uLy4uL2ZpZWxkL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2NvbW1vbi9zZWxlY3QtY29tcG9uZW50LWJhc2UnO1xuaW1wb3J0IHtcbiAgTXVsdGlTZWxlY3REaXJlY3RpdmVCYXNlLFxuICBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgU2luZ2xlU2VsZWN0RGlyZWN0aXZlQmFzZSxcbn0gZnJvbSAnLi4vY29tbW9uL3NlbGVjdC12YWx1ZS1ob2xkZXInO1xuaW1wb3J0IHsgU2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4vc2VhcmNoYWJsZS1zZWxlY3QuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBFbmFibGVzIG11bHRpcGxlIHNlbGVjdGlvbi4gV2hlbiBwcmVzZW50LCBgdmFsdWVgIHdpbGwgYmUgb2YgdHlwZSBgc3RyaW5nW11gLCBhbmQgYHZhbHVlQ2hhbmdlYFxuICogd2lsbCBlbWl0IGBzdHJpbmdbXWAuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwLXNlbGVjdFttdWx0aXBsZV0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0RGlyZWN0aXZlKSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdERpcmVjdGl2ZSBleHRlbmRzIE11bHRpU2VsZWN0RGlyZWN0aXZlQmFzZSB7fVxuXG4vKipcbiAqIEVuYWJsZXMgc2luZ2xlIHNlbGVjdGlvbiwgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgU2VsZWN0LlxuICogV2hlbiBwcmVzZW50LCBgdmFsdWVgIHdpbGwgYmUgb2YgdHlwZSBgc3RyaW5nYCwgYW5kIGB2YWx1ZUNoYW5nZWAgd2lsbCBlbWl0IGBzdHJpbmdgLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzcC1zZWxlY3Q6bm90KFttdWx0aXBsZV0pJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU2VsZWN0VmFsdWVIb2xkZXIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTaW5nbGVTZWxlY3REaXJlY3RpdmUpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdERpcmVjdGl2ZSBleHRlbmRzIFNpbmdsZVNlbGVjdERpcmVjdGl2ZUJhc2Uge31cblxuLyoqXG4gKiBBbGxvd3MgdXNlciB0byBzZWxlY3QgYSBzaW5nbGUgb3B0aW9uIGZyb20gYSBsaXN0LCBzaW1pbGFyIHRvIG5hdGl2ZSBzZWxlY3RcbiAqIGNvbXBvbmVudC5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgdHN4XG4gKiA8c3AtZmllbGQ+XG4gKiAgIDxzcC1maWVsZC1sYWJlbD5MYWJlbCB0ZXh0PC9zcC1maWVsZC1sYWJlbD5cbiAqICAgPHNwLXNlbGVjdCBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhbiBvcHRpb25cIj5cbiAqICAgICA8c3Atb3B0aW9uIHZhbHVlPVwib3B0aW9uMVwiPkZpcnN0IE9wdGlvbjwvc3Atb3B0aW9uPlxuICogICAgIDxzcC1vcHRpb24gdmFsdWU9XCJvcHRpb24yXCI+U2Vjb25kIE9wdGlvbjwvc3Atb3B0aW9uPlxuICogICAgIDxzcC1vcHRpb24gdmFsdWU9XCJvcHRpb24zXCI+VGhpcmQgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiAgIDwvc3Atc2VsZWN0PlxuICogPC9zcC1maWVsZD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnc3BTZWxlY3QnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlbGVjdENvbXBvbmVudEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdzYXBwaGlyZS1zZWxlY3QnLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtc2VsZWN0LS1lcnJvcl0nOiAnX2ZpZWxkPy5oYXNFcnJvcigpJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLXNlbGVjdC0tbWVkaXVtXSc6ICdfZmllbGQ/LnNpemUgPT09IFwibWVkaXVtXCInLFxuICAgICdbY2xhc3MuaXMtZm9jdXNdJzogJ2lzRm9jdXNWaXNpYmxlKCknLFxuICAgICdbY2xhc3MuaXMtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQoKScsXG4gICAgJ1thdHRyLmlkXSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLnBsYWNlaG9sZGVyXSc6ICdudWxsJyxcbiAgfSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtVc2VDb21wb25lbnRTdHlsZXNPbkhvc3RdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnRcbiAgZXh0ZW5kcyBTZWxlY3RDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHMgRmllbGRDb250cm9sLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4gPSBudWxsO1xuICBmaWx0ZXJlZENoaWxkcmVuJDogT2JzZXJ2YWJsZTxMaXN0Ym94Q2hpbGRbXT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJSZWYnKVxuICBwcm90ZWN0ZWQgdHJpZ2dlclJlZjogUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlckVsZW1lbnRSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJvdGVjdGVkIHRyaWdnZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoTGlzdGJveENvbXBvbmVudClcbiAgcHJvdGVjdGVkIGxpc3Rib3g6IExpc3Rib3hDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBzZWFyY2hJbnB1dD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgZ2V0IHNlYXJjaGFibGUoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZSk7XG4gIH1cblxuICAvKipcbiAgICogaWQgb2YgdHJpZ2dlciB2YWx1ZSBhcmVhLCB3aGljaCB3aWxsIGNvbnRhaW4gZWl0aGVyIHRoZSBzZWxlY3RlZCB2YWx1ZSBvciB0aGUgcGxhY2Vob2xkZXIuXG4gICAqL1xuICBAQXV0b0lkKClcbiAgX3ZhbHVlQ29udGFpbmVySWQ6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB2YWx1ZUhvbGRlcjogU2VsZWN0VmFsdWVIb2xkZXIsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIGlucHV0TW9kYWxpdHk6IElucHV0TW9kYWxpdHlEZXRlY3RvcixcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgX2ZpZWxkPzogRmllbGRDb21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIF9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlPzogU2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZVxuICApIHtcbiAgICBzdXBlcih2YWx1ZUhvbGRlcik7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgY29uc3QgbGlzdGJveEl0ZW0kID0gdGhpcy5saXN0Ym94Q2hpbGRyZW4uY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMubGlzdGJveENoaWxkcmVuKVxuICAgICk7XG4gICAgY29uc3Qgc2VhcmNoYWJsZVNlbGVjdCA9IHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQgJiYgc2VhcmNoYWJsZVNlbGVjdCkge1xuICAgICAgY29uc3Qgc2VhcmNoSW5wdXRWYWx1ZSQgPSBzZWFyY2hhYmxlU2VsZWN0LnNlYXJjaFZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXG4gICAgICAgIHN0YXJ0V2l0aChzZWFyY2hhYmxlU2VsZWN0LnNlYXJjaFZhbHVlKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGZpbHRlclJlc3VsdCQgPSBjb21iaW5lTGF0ZXN0KHNlYXJjaElucHV0VmFsdWUkLCBsaXN0Ym94SXRlbSQpLnBpcGUoXG4gICAgICAgIG1hcCgoW3NlYXJjaFF1ZXJ5XSkgPT4ge1xuICAgICAgICAgIGlmICghc2VhcmNoUXVlcnkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGZpbHRlcmVkQ2hpbGRyZW46IHRoaXMubGlzdGJveENoaWxkcmVuLnRvQXJyYXkoKSxcbiAgICAgICAgICAgICAgZmlsdGVyZWRPdXRPcHRpb25zOiBbXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzZWFyY2hhYmxlU2VsZWN0LmZpbHRlckxpc3Rib3hJdGVtcyhcbiAgICAgICAgICAgIHRoaXMubGlzdGJveENoaWxkcmVuLFxuICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgIXNlYXJjaGFibGVTZWxlY3QuZmlsdGVyIHx8XG4gICAgICAgICAgICAgIHNlYXJjaGFibGVTZWxlY3QuZmlsdGVyKG9wdGlvbiwgc2VhcmNoUXVlcnkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLmZpbHRlcmVkQ2hpbGRyZW4kID0gdGhpcy5tdWx0aXBsZVxuICAgICAgICA/IC8vIEdyb3VwaW5nIHNlbGVjdGVkIG9wdGlvbnNcbiAgICAgICAgICBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgICAgZmlsdGVyUmVzdWx0JCxcbiAgICAgICAgICAgIHRoaXMudmFsdWVIb2xkZXIudmFsdWVDaGFuZ2UucGlwZShzdGFydFdpdGgoZW1wdHkoKSkpXG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbeyBmaWx0ZXJlZENoaWxkcmVuIH1dKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmxpc3Rib3hWYWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRDaGlsZHJlbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgZmlsdGVyZWRPdXRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRDaGlsZHJlbjogc2VsZWN0aW9uRXhjbHVkZWRDaGlsZHJlbixcbiAgICAgICAgICAgICAgfSA9IHNlYXJjaGFibGVTZWxlY3QuZmlsdGVyTGlzdGJveEl0ZW1zKFxuICAgICAgICAgICAgICAgIGZpbHRlcmVkQ2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gIXRoaXMubGlzdGJveFZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICAgPyBbc2VjdGlvbihzZWxlY3RlZE9wdGlvbnMpXVxuICAgICAgICAgICAgICAgICAgOiAoW10gYXMgTGlzdGJveENoaWxkW10pXG4gICAgICAgICAgICAgICkuY29uY2F0KHNlbGVjdGlvbkV4Y2x1ZGVkQ2hpbGRyZW4pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIDogZmlsdGVyUmVzdWx0JC5waXBlKG1hcCgoeyBmaWx0ZXJlZENoaWxkcmVuIH0pID0+IGZpbHRlcmVkQ2hpbGRyZW4pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZENoaWxkcmVuJCA9IGxpc3Rib3hJdGVtJDtcbiAgICB9XG4gIH1cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIF9nZXRBcmlhTGFiZWxsZWRCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIC8vIFRoZSBsb2dpYyBoZXJlIGlzIHNpbWlsYXIgdG8gdGhlIG9uZSBpbiByZWFjdC1hcmlhJ3MgdXNlU2VsZWN0LlxuICAgIGNvbnN0IGxhYmVsbGVkQnkgPSB0aGlzLmFyaWFMYWJlbGxlZGJ5IHx8IHRoaXMuX2ZpZWxkPy5sYWJlbD8uaWQ7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuX3ZhbHVlQ29udGFpbmVySWQsXG4gICAgICBsYWJlbGxlZEJ5LFxuICAgICAgdGhpcy5hcmlhTGFiZWwgJiYgIWxhYmVsbGVkQnkgPyB0aGlzLmlkIDogbnVsbCxcbiAgICBdXG4gICAgICAuZmlsdGVyKChpKSA9PiBpKVxuICAgICAgLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGlzRm9jdXNlZCgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmZvY3VzT3JpZ2luKTtcbiAgfVxuXG4gIGlzRm9jdXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzRm9jdXNlZCgpICYmXG4gICAgICAvLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGZvY3VzIGRvZXNuJ3QgY2hhbmdlIHdoZW4gYSBrZXkgKGUuZy4gRXNjYXBlKSBpcyBwcmVzc2VkIGluIHRoZSBzZWFyY2ggaW5wdXQuXG4gICAgICAodGhpcy5pbnB1dE1vZGFsaXR5Lm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyB8fFxuICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3Igd2hlbiBsYWJlbCBpcyBjbGlja2VkIGFuZCBmb2N1c09yaWdpbiBpcyBmb3JjZWQgdG8ga2V5Ym9hcmQsIGJ1dCBjdXJyZW50IG1vZGFsaXR5IGlzIG1vdXNlLlxuICAgICAgICB0aGlzLmZvY3VzT3JpZ2luID09PSAna2V5Ym9hcmQnKSAmJlxuICAgICAgIXRoaXMuaXNPcGVuKCkgLy8gVGhpcyBpcyBiZWNhdXNlIGluIHNlYXJjaGFibGUgc2VsZWN0LCB0aGUgYWN0dWFsIGZvY3VzIGlzIG9uIHRoZSBpbnB1dCxcbiAgICAgIC8vIGJ1dCBpdCdzIG1lYW50IHRvIGJlIHNob3duIG9uIHRoZSBsaXN0Ym94LiBJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gc2hvdyB0aGUgZm9jdXMgaW4gdHdvXG4gICAgICAvLyBwbGFjZXMuXG4gICAgKTtcbiAgfVxuXG4gIGZvY3VzKGZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJykge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKFxuICAgICAgdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudCA/PyB0aGlzLnRyaWdnZXJFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LFxuICAgICAgZm9jdXNPcmlnaW5cbiAgICApO1xuICB9XG5cbiAgX29uRm9jdXNDaGFuZ2UoZm9jdXNPcmlnaW46IEZvY3VzT3JpZ2luKSB7XG4gICAgdGhpcy5mb2N1c09yaWdpbiA9IGZvY3VzT3JpZ2luO1xuICB9XG5cbiAgX29uRm9jdXMoKSB7XG4gICAgLy8gV2hlbmV2ZXIgZm9jdXMgY29tZXMgdG8gdGhlIHRyaWdnZXIgLCBmb3J3YXJkIGl0IHRvIHRoZSBzZWFyY2ggaW5wdXQuIEl0J3MgbmVlZGVkIGZvciB3aGVuXG4gICAgLy8gdGhlIHRyaWdnZXIgaXMgcmUtZm9jdXNlZCBhZnRlciBwb3BvdmVyIGlzIGNsb3NlZC5cbiAgICB0aGlzLmZvY3VzKHRoaXMuZm9jdXNPcmlnaW4pO1xuICB9XG5cbiAgX2lzSW5wdXRWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbigpIC8qfHxcbiAgICAgICh0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmXG4gICAgICAgIHRoaXMubGlzdGJveFZhbHVlLmxlbmd0aCA9PT0gMCkqLztcbiAgfVxuXG4gIF9vbk9wZW4oKSB7XG4gICAgc3VwZXIuX29uT3BlbigpO1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlLnNldFNlYXJjaFZhbHVlKFxuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1swXT8ubGFiZWwgfHwgJydcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaElucHV0RWxlbWVudCA9IHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU/LnNlbGVjdFRleHRPbk9wZW4pIHtcbiAgICAgIHNlYXJjaElucHV0RWxlbWVudD8uc2VsZWN0KCk7XG4gICAgfVxuICAgIGNvbnN0IGZvY3VzVmlzaWJsZU9uT3BlbiA9IHRoaXMuaXNGb2N1c1Zpc2libGUoKTtcbiAgICAvLyBNb3ZlIGZvY3VzIHRvIHRoZSBzZWFyY2ggaW5wdXQuIFRoZSB0aW1lb3V0IGlzIG5lZWRlZCBiZWNhdXNlIHBvcG92ZXIgd2lsbCBhdXRvZm9jdXMgdGhlXG4gICAgLy8gY29udGVudCwgYW5kIHdlIG5lZWQgdG8gbGV0IHRoZSBmb2N1cyBmaXJzdCBsYW5kIGluIHRoZSBwb3BvdmVyLCBhbmQgdGhlbiBzdGVhbCBpdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNlYXJjaElucHV0RWxlbWVudD8uZm9jdXMoKTtcblxuICAgICAgLy8gTmVlZCB0byBydW4gdGhpcyBhbHNvIGFzeW5jaHJvbm91c2x5LCB0byBsZXQgdGhlIHBvcG92ZXIgKGFuZCBsaXN0Ym94KSBtb3VudFxuICAgICAgaWYgKCFmb2N1c1Zpc2libGVPbk9wZW4gJiYgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIHRvIHByZXZlbnQgdGhlIGZpcnN0IGl0ZW0gZnJvbSBiZWluZyBmb2N1c2VkIHdoZW4gdGhlIGRyb3Bkb3duIGlzIG9wZW5lZCB2aWEgbW91c2VcbiAgICAgICAgdGhpcy5saXN0Ym94Py5zZXRBY3RpdmVPcHRpb24obnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBfb25DbG9zZSgpIHtcbiAgICBzdXBlci5fb25DbG9zZSgpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0RWxlbWVudCA9IHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgc2VhcmNoSW5wdXRFbGVtZW50Py5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgIHNlYXJjaElucHV0RWxlbWVudC52YWx1ZS5sZW5ndGgsXG4gICAgICBzZWFyY2hJbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGaWVsZExhYmVsPygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9maWVsZD8ubGFiZWw/LmdldFRleHQoKSA/PyAnJztcbiAgfVxuXG4gIF9vbklucHV0S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IHNlbGVjdFZhbHVlID0gKHRvQmVTZWxlY3RlZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBsaXN0Ym94VmFsdWUgPSB0aGlzLmxpc3Rib3hWYWx1ZTtcbiAgICAgIGNvbnN0IGFscmVhZHlTZWxlY3RlZCA9IGxpc3Rib3hWYWx1ZS5pbmNsdWRlcyh0b0JlU2VsZWN0ZWQpO1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5saXN0Ym94VmFsdWUgPSBhbHJlYWR5U2VsZWN0ZWRcbiAgICAgICAgICA/IGxpc3Rib3hWYWx1ZS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdG9CZVNlbGVjdGVkKVxuICAgICAgICAgIDogWy4uLmxpc3Rib3hWYWx1ZSwgdG9CZVNlbGVjdGVkXTtcbiAgICAgIH0gZWxzZSBpZiAoIWFscmVhZHlTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLmxpc3Rib3hWYWx1ZSA9IFt0b0JlU2VsZWN0ZWRdO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgZmlyc3RPcHRpb25WYWx1ZSA9IHRoaXMub3B0aW9ucz8uZ2V0KDApPy52YWx1ZTtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgLy8gU2VsZWN0aW9uIGlzIGFscmVhZHkgaGFuZGxlZCBpZiB0aGVyZSBpcyBhbiBhY3RpdmUgb3B0aW9uXG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5saXN0Ym94Py5nZXRBY3RpdmVPcHRpb24oKSA9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGZpcnN0T3B0aW9uVmFsdWVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNlbGVjdFZhbHVlKGZpcnN0T3B0aW9uVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IHRvQmVTZWxlY3RlZCA9XG4gICAgICAgICAgICB0aGlzLmxpc3Rib3g/LmdldEFjdGl2ZU9wdGlvbigpIHx8IGZpcnN0T3B0aW9uVmFsdWU7XG4gICAgICAgICAgaWYgKHRvQmVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdFZhbHVlKHRvQmVTZWxlY3RlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIF9vblNlYXJjaElucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldD8udmFsdWU7XG4gICAgICB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlPy5zZXRTZWFyY2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAvLyBjbGVhcmluZyB0aGUgdmFsdWUgd2hlbiB0aGUgc2VhcmNoIGlucHV0IGlzIGNsZWFyZWQuXG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgIXZhbHVlICYmIHRoaXMubGlzdGJveFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5saXN0Ym94VmFsdWUgPSBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxpc3Rib3g/LnNldEFjdGl2ZU9wdGlvbihudWxsKTtcbiAgfVxuXG4gIF9oYW5kbGVTZWxlY3RlZCgpIHtcbiAgICBzdXBlci5faGFuZGxlU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmRpc2FibGVkKTtcbiAgfVxufVxuIiwiPHNwLWhpZGRlbi1zZWxlY3Q+PC9zcC1oaWRkZW4tc2VsZWN0PlxuPGRpdlxuICByb2xlPVwiYnV0dG9uXCJcbiAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICBjbGFzcz1cInNhcHBoaXJlLXNlbGVjdF9fYnV0dG9uXCJcbiAgW3NwUG9wb3ZlclRyaWdnZXJGb3JdPVwicG9wb3ZlclwiXG4gIFtzcFBvcG92ZXJUcmlnZ2VyRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBzcFBvcG92ZXJUcmlnZ2VyT3Blbk9uUHJlc3NTdGFydFxuICBzcFBvcG92ZXJUcmlnZ2VyQ2xvc2VPblNjcm9sbFxuICBzcFBvcG92ZXJQbGFjZW1lbnQ9XCJib3R0b20gc3RhcnRcIlxuICAjdHJpZ2dlckVsZW1lbnRSZWZcbiAgI3RyaWdnZXJSZWY9XCJzcFBvcG92ZXJUcmlnZ2VyXCJcbiAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgKHNwUG9wb3ZlclRyaWdnZXJDbG9zZWQpPVwiX29uQ2xvc2UoKVwiXG4gIChzcFBvcG92ZXJUcmlnZ2VyT3BlbmVkKT1cIl9vbk9wZW4oKVwiXG4gIChmb2N1cyk9XCJfb25Gb2N1cygpXCJcbiAgY2RrTW9uaXRvclN1YnRyZWVGb2N1c1xuICAoY2RrRm9jdXNDaGFuZ2UpPVwiX29uRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gIFtzcFBvcG92ZXJOb25Nb2RhbF09XCJzZWFyY2hhYmxlXCJcbiAgW2lkXT1cImlkXCJcbiAgW3RhYmluZGV4XT1cIi0xXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2dldEFyaWFMYWJlbGxlZEJ5KClcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtc2VsZWN0X192YWx1ZVwiIFtpZF09XCJfdmFsdWVDb250YWluZXJJZFwiPlxuICAgIDxpbnB1dFxuICAgICAgKm5nSWY9XCJzZWFyY2hhYmxlXCJcbiAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgY2xhc3M9XCJzYXBwaGlyZS1zZWxlY3RfX3NlYXJjaC1pbnB1dFwiXG4gICAgICBbc3BMaXN0Ym94SW5wdXRdPVwibGlzdGJveFwiXG4gICAgICBbc3BWaXN1YWxseUhpZGRlbl09XCIhX2lzSW5wdXRWaXNpYmxlKClcIlxuICAgICAgW2F0dHIuZGF0YS1oaWRkZW5dPVwiIV9pc0lucHV0VmlzaWJsZSgpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAoa2V5ZG93bik9XCJfb25JbnB1dEtleWRvd24oJGV2ZW50KVwiXG4gICAgICAoYmVmb3JlaW5wdXQpPVwib3BlbigpXCJcbiAgICAgIFt2YWx1ZV09XCJfc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZT8uc2VhcmNoVmFsdWVcIlxuICAgICAgKGlucHV0KT1cIl9vblNlYXJjaElucHV0KCRldmVudClcIlxuICAgIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWFyY2hhYmxlIHx8ICFfaXNJbnB1dFZpc2libGUoKVwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDBcIlxuICAgICAgICBjbGFzcz1cInNhcHBoaXJlLXNlbGVjdF9fcGxhY2Vob2xkZXJcIlxuICAgICAgPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3Rpb25UZXh0XCI+e3tcbiAgICAgICAgICBnZXRTZWxlY3Rpb25UZXh0KClcbiAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3Atc2VsZWN0aW9uLXRleHRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCI+XG4gICAgPHNwLWljb24gbmFtZT1cImNoZXZyb25Eb3duXCI+PC9zcC1pY29uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNwb3BvdmVyPlxuICA8c3AtcG9wb3ZlclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIlxuICAgICAgKGZpbHRlcmVkQ2hpbGRyZW4kIHwgYXN5bmMpPy5sZW5ndGggPT09IDAgPyAnbm9uZScgOiB1bmRlZmluZWRcbiAgICBcIlxuICAgIG5vUGFkZGluZ1xuICAgIFtzdHlsZS5taW4td2lkdGhdPVwidHJpZ2dlckVsZW1lbnRSZWYub2Zmc2V0V2lkdGggKyAncHgnXCJcbiAgPlxuICAgIDxzcC1saXN0Ym94XG4gICAgICBbc3BMaXN0Ym94SXRlbXNdPVwiKGZpbHRlcmVkQ2hpbGRyZW4kIHwgYXN5bmMpIHx8IHVuZGVmaW5lZFwiXG4gICAgICBuYXZpZ2F0aW9uV3JhcERpc2FibGVkXG4gICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgWyhzZWxlY3RlZFZhbHVlcyldPVwibGlzdGJveFZhbHVlXCJcbiAgICAgIChzZWxlY3RlZFZhbHVlc0NoYW5nZSk9XCJfc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZT8uc2V0U2VhcmNoVmFsdWUoJycpXCJcbiAgICAgIChzZWxlY3RlZCk9XCJfaGFuZGxlU2VsZWN0ZWQoKVwiXG4gICAgICBbc2l6ZV09XCJfZmllbGQ/LnNpemVcIlxuICAgID5cbiAgICA8L3NwLWxpc3Rib3g+XG4gIDwvc3AtcG9wb3Zlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,113 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { CdkListboxModule } from '@angular/cdk/listbox';
5
+ import { A11yModule } from '@angular/cdk/a11y';
6
+ import { SapphireIconModule } from '../../../icon/public_api';
7
+ import { SapphirePopoverModule } from '../../../popover/public_api';
8
+ import { MultiSelectDirective, SelectComponent, SingleSelectDirective, } from './select.component';
9
+ import { SapphireListboxModule } from '../../../listbox/src/listbox.module';
10
+ import { PortalModule } from '@angular/cdk/portal';
11
+ import { SelectionTextDirective } from './selection-text.directive';
12
+ import { VisuallyHiddenDirective } from '../../../common/visually-hidden.directive';
13
+ import { SapphireButtonModule } from '../../../button/public_api';
14
+ import { BasicSelectComponent, BasicSingleSelectDirective, } from '../basic-select/basic-select.component';
15
+ import { HiddenSelectComponent } from '../common/hidden-select.component';
16
+ import { SearchableSelectDirective } from './searchable-select.directive';
17
+ import { FieldLabelDirective } from '../../../field/src/field-label.directive';
18
+ import { FieldErrorDirective } from '../../../field/src/field-error.directive';
19
+ import { FieldNoteDirective } from '../../../field/src/field-note.directive';
20
+ import { LabelComponent } from '../../../label/public_api';
21
+ import { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';
22
+ import * as i0 from "@angular/core";
23
+ export class SapphireSelectModule {
24
+ }
25
+ SapphireSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ SapphireSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: SapphireSelectModule, declarations: [SelectComponent,
27
+ MultiSelectDirective,
28
+ SingleSelectDirective,
29
+ SelectionTextDirective,
30
+ BasicSelectComponent,
31
+ BasicSingleSelectDirective,
32
+ HiddenSelectComponent,
33
+ SearchableSelectDirective], imports: [CommonModule,
34
+ FormsModule,
35
+ SapphireIconModule,
36
+ SapphireListboxModule,
37
+ SapphirePopoverModule,
38
+ CdkListboxModule,
39
+ A11yModule,
40
+ PortalModule,
41
+ VisuallyHiddenDirective,
42
+ FieldLabelDirective,
43
+ FieldErrorDirective,
44
+ FieldNoteDirective,
45
+ SapphireButtonModule,
46
+ LabelComponent,
47
+ UseComponentStyles], exports: [SapphireListboxModule,
48
+ SelectComponent,
49
+ MultiSelectDirective,
50
+ SingleSelectDirective,
51
+ SelectionTextDirective,
52
+ BasicSelectComponent,
53
+ BasicSingleSelectDirective,
54
+ SearchableSelectDirective,
55
+ FieldLabelDirective,
56
+ FieldErrorDirective,
57
+ FieldNoteDirective] });
58
+ SapphireSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireSelectModule, imports: [CommonModule,
59
+ FormsModule,
60
+ SapphireIconModule,
61
+ SapphireListboxModule,
62
+ SapphirePopoverModule,
63
+ CdkListboxModule,
64
+ A11yModule,
65
+ PortalModule,
66
+ SapphireButtonModule,
67
+ LabelComponent, SapphireListboxModule] });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireSelectModule, decorators: [{
69
+ type: NgModule,
70
+ args: [{
71
+ declarations: [
72
+ SelectComponent,
73
+ MultiSelectDirective,
74
+ SingleSelectDirective,
75
+ SelectionTextDirective,
76
+ BasicSelectComponent,
77
+ BasicSingleSelectDirective,
78
+ HiddenSelectComponent,
79
+ SearchableSelectDirective,
80
+ ],
81
+ imports: [
82
+ CommonModule,
83
+ FormsModule,
84
+ SapphireIconModule,
85
+ SapphireListboxModule,
86
+ SapphirePopoverModule,
87
+ CdkListboxModule,
88
+ A11yModule,
89
+ PortalModule,
90
+ VisuallyHiddenDirective,
91
+ FieldLabelDirective,
92
+ FieldErrorDirective,
93
+ FieldNoteDirective,
94
+ SapphireButtonModule,
95
+ LabelComponent,
96
+ UseComponentStyles,
97
+ ],
98
+ exports: [
99
+ SapphireListboxModule,
100
+ SelectComponent,
101
+ MultiSelectDirective,
102
+ SingleSelectDirective,
103
+ SelectionTextDirective,
104
+ BasicSelectComponent,
105
+ BasicSingleSelectDirective,
106
+ SearchableSelectDirective,
107
+ FieldLabelDirective,
108
+ FieldErrorDirective,
109
+ FieldNoteDirective,
110
+ ],
111
+ }]
112
+ }] });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLHFCQUFxQixHQUN0QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDBCQUEwQixHQUMzQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUE0Q2pGLE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQixpQkF4QzdCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLHFCQUFxQjtRQUNyQix5QkFBeUIsYUFHekIsWUFBWTtRQUNaLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxrQkFBa0IsYUFHbEIscUJBQXFCO1FBQ3JCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6QixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGtCQUFrQjtrSEFHVCxvQkFBb0IsWUE5QjdCLFlBQVk7UUFDWixXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDVixZQUFZO1FBS1osb0JBQW9CO1FBQ3BCLGNBQWMsRUFJZCxxQkFBcUI7MkZBYVosb0JBQW9CO2tCQTFDaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIscUJBQXFCO3dCQUNyQix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2Qsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENka0xpc3Rib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGlzdGJveCc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU2FwcGhpcmVJY29uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vaWNvbi9wdWJsaWNfYXBpJztcbmltcG9ydCB7IFNhcHBoaXJlUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL3BvcG92ZXIvcHVibGljX2FwaSc7XG5pbXBvcnQge1xuICBNdWx0aVNlbGVjdERpcmVjdGl2ZSxcbiAgU2VsZWN0Q29tcG9uZW50LFxuICBTaW5nbGVTZWxlY3REaXJlY3RpdmUsXG59IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXBwaGlyZUxpc3Rib3hNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9saXN0Ym94L3NyYy9saXN0Ym94Lm1vZHVsZSc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IFNlbGVjdGlvblRleHREaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGlvbi10ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaXN1YWxseUhpZGRlbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi92aXN1YWxseS1oaWRkZW4uZGlyZWN0aXZlJztcbmltcG9ydCB7IFNhcHBoaXJlQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL3B1YmxpY19hcGknO1xuaW1wb3J0IHtcbiAgQmFzaWNTZWxlY3RDb21wb25lbnQsXG4gIEJhc2ljU2luZ2xlU2VsZWN0RGlyZWN0aXZlLFxufSBmcm9tICcuLi9iYXNpYy1zZWxlY3QvYmFzaWMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIaWRkZW5TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vaGlkZGVuLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4vc2VhcmNoYWJsZS1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZpZWxkTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9maWVsZC9zcmMvZmllbGQtbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZpZWxkRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9maWVsZC9zcmMvZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZpZWxkTm90ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2ZpZWxkL3NyYy9maWVsZC1ub3RlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2xhYmVsL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdERpcmVjdGl2ZSxcbiAgICBTaW5nbGVTZWxlY3REaXJlY3RpdmUsXG4gICAgU2VsZWN0aW9uVGV4dERpcmVjdGl2ZSxcbiAgICBCYXNpY1NlbGVjdENvbXBvbmVudCxcbiAgICBCYXNpY1NpbmdsZVNlbGVjdERpcmVjdGl2ZSxcbiAgICBIaWRkZW5TZWxlY3RDb21wb25lbnQsXG4gICAgU2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBTYXBwaGlyZUljb25Nb2R1bGUsXG4gICAgU2FwcGhpcmVMaXN0Ym94TW9kdWxlLFxuICAgIFNhcHBoaXJlUG9wb3Zlck1vZHVsZSxcbiAgICBDZGtMaXN0Ym94TW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIFZpc3VhbGx5SGlkZGVuRGlyZWN0aXZlLFxuICAgIEZpZWxkTGFiZWxEaXJlY3RpdmUsXG4gICAgRmllbGRFcnJvckRpcmVjdGl2ZSxcbiAgICBGaWVsZE5vdGVEaXJlY3RpdmUsXG4gICAgU2FwcGhpcmVCdXR0b25Nb2R1bGUsXG4gICAgTGFiZWxDb21wb25lbnQsXG4gICAgVXNlQ29tcG9uZW50U3R5bGVzLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2FwcGhpcmVMaXN0Ym94TW9kdWxlLFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdERpcmVjdGl2ZSxcbiAgICBTaW5nbGVTZWxlY3REaXJlY3RpdmUsXG4gICAgU2VsZWN0aW9uVGV4dERpcmVjdGl2ZSxcbiAgICBCYXNpY1NlbGVjdENvbXBvbmVudCxcbiAgICBCYXNpY1NpbmdsZVNlbGVjdERpcmVjdGl2ZSxcbiAgICBTZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlLFxuICAgIEZpZWxkTGFiZWxEaXJlY3RpdmUsXG4gICAgRmllbGRFcnJvckRpcmVjdGl2ZSxcbiAgICBGaWVsZE5vdGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhcHBoaXJlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Used to customize what is shown in select's trigger when selection is non-empty.
5
+ * By default, the (primary) text of the selected option is shown in single selection mode,
6
+ * and a short text indicating the number of selected items is shown in multiple selection mode,
7
+ * if more than 1 item is selected.
8
+ */
9
+ export class SelectionTextDirective {
10
+ }
11
+ SelectionTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SelectionTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
12
+ SelectionTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SelectionTextDirective, selector: "sp-selection-text", ngImport: i0 });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SelectionTextDirective, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: 'sp-selection-text',
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWxlY3Qvc3JjL3NlbGVjdC9zZWxlY3Rpb24tdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFVzZWQgdG8gY3VzdG9taXplIHdoYXQgaXMgc2hvd24gaW4gc2VsZWN0J3MgdHJpZ2dlciB3aGVuIHNlbGVjdGlvbiBpcyBub24tZW1wdHkuXG4gKiBCeSBkZWZhdWx0LCB0aGUgKHByaW1hcnkpIHRleHQgb2YgdGhlIHNlbGVjdGVkIG9wdGlvbiBpcyBzaG93biBpbiBzaW5nbGUgc2VsZWN0aW9uIG1vZGUsXG4gKiBhbmQgYSBzaG9ydCB0ZXh0IGluZGljYXRpbmcgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBpdGVtcyBpcyBzaG93biBpbiBtdWx0aXBsZSBzZWxlY3Rpb24gbW9kZSxcbiAqIGlmIG1vcmUgdGhhbiAxIGl0ZW0gaXMgc2VsZWN0ZWQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwLXNlbGVjdGlvbi10ZXh0Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uVGV4dERpcmVjdGl2ZSB7fVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './src/skeleton-text.directive';
2
+ export * from './src/skeleton.component';
3
+ export * from './src/skeleton-circle.directive';
4
+ export * from './src/skeleton-block.directive';
5
+ export * from './src/skeleton.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2tlbGV0b24vcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9za2VsZXRvbi10ZXh0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9za2VsZXRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2tlbGV0b24tY2lyY2xlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9za2VsZXRvbi1ibG9jay5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2tlbGV0b24ubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SkeletonBlockDirective {
4
+ }
5
+ SkeletonBlockDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SkeletonBlockDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ SkeletonBlockDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SkeletonBlockDirective, selector: "sp-skeleton-block", host: { classAttribute: "sapphire-skeleton--block" }, ngImport: i0 });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SkeletonBlockDirective, decorators: [{
8
+ type: Directive,
9
+ args: [{
10
+ selector: 'sp-skeleton-block',
11
+ host: {
12
+ class: 'sapphire-skeleton--block',
13
+ },
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tYmxvY2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9za2VsZXRvbi9zcmMvc2tlbGV0b24tYmxvY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFDLE1BQU0sT0FBTyxzQkFBc0I7O21IQUF0QixzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQU5sQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsMEJBQTBCO3FCQUNsQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzcC1za2VsZXRvbi1ibG9jaycsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NhcHBoaXJlLXNrZWxldG9uLS1ibG9jaycsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNrZWxldG9uQmxvY2tEaXJlY3RpdmUge31cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SkeletonCircleDirective {
4
+ }
5
+ SkeletonCircleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SkeletonCircleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ SkeletonCircleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SkeletonCircleDirective, selector: "sp-skeleton-circle", host: { classAttribute: "sapphire-skeleton--circle" }, ngImport: i0 });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SkeletonCircleDirective, decorators: [{
8
+ type: Directive,
9
+ args: [{
10
+ selector: 'sp-skeleton-circle',
11
+ host: {
12
+ class: 'sapphire-skeleton--circle',
13
+ },
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tY2lyY2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2tlbGV0b24vc3JjL3NrZWxldG9uLWNpcmNsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUMsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSwyQkFBMkI7cUJBQ25DO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwLXNrZWxldG9uLWNpcmNsZScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NhcHBoaXJlLXNrZWxldG9uLS1jaXJjbGUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkNpcmNsZURpcmVjdGl2ZSB7fVxuIl19