@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,67 @@
1
+ import { Component, Inject, Input, Optional, } from '@angular/core';
2
+ import * as icons from '@danske/sapphire-icons/js';
3
+ import { ICON_SIZE_PROVIDER } from './icon-size-provider';
4
+ import * as i0 from "@angular/core";
5
+ export class IconComponent {
6
+ set name(value) {
7
+ // TODO(v2): We will be upgrading icons package with icons not having size as part of the name
8
+ // thus we don't allow even passing such icon names and can remove this backwards compatibility
9
+ const derivedValue = value && /[a-z](Small|Medium|Large)$/.test(value)
10
+ ? value
11
+ : `${value}Medium`;
12
+ this.elementRef.nativeElement.innerHTML = icons[derivedValue]?.data || '';
13
+ this._name = value;
14
+ }
15
+ get name() {
16
+ return this._name;
17
+ }
18
+ constructor(elementRef, sizeProvider) {
19
+ this.elementRef = elementRef;
20
+ this.sizeProvider = sizeProvider;
21
+ }
22
+ ngDoCheck() {
23
+ const providedSize = this.sizeProvider?.size &&
24
+ `${this.sizeProvider?.size && sizeMap[this.sizeProvider.size]}px`;
25
+ const size = this.size ?? providedSize;
26
+ this.applySize(size);
27
+ }
28
+ applySize(value) {
29
+ if (value && value !== this.appliedSize) {
30
+ const svgElem = this.elementRef.nativeElement.querySelector('svg');
31
+ svgElem?.setAttribute('width', value);
32
+ svgElem?.setAttribute('height', value);
33
+ }
34
+ this.appliedSize = value;
35
+ }
36
+ }
37
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: IconComponent, deps: [{ token: i0.ElementRef }, { token: ICON_SIZE_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
38
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: IconComponent, selector: "sp-icon", inputs: { name: "name", size: "size" }, ngImport: i0, template: '', isInline: true, styles: [":host{line-height:0}\n"] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: IconComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'sp-icon', template: '', styles: [":host{line-height:0}\n"] }]
42
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
43
+ type: Optional
44
+ }, {
45
+ type: Inject,
46
+ args: [ICON_SIZE_PROVIDER]
47
+ }] }]; }, propDecorators: { name: [{
48
+ type: Input
49
+ }], size: [{
50
+ type: Input
51
+ }] } });
52
+ /**
53
+ * TODO(v2): add standard size options to icon when peer dependency to @sapphire/icon is updated
54
+ * to the latest version where there are no different sources for each size.
55
+ * With standard icon sizes, there is no need for mapping like this, since the input would accept
56
+ * predefined string values, and the right class will be applied for each case, instead of
57
+ * manually setting the size attribute on the svg element.
58
+ * @deprecated
59
+ */
60
+ const sizeMap = {
61
+ extraSmall: 16,
62
+ small: 16,
63
+ medium: 20,
64
+ large: 24,
65
+ extraLarge: 32,
66
+ };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ljb24vc3JjL2ljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sc0JBQXNCLENBQUM7O0FBTzVFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLElBQ0ksSUFBSSxDQUFDLEtBQThDO1FBQ3JELDhGQUE4RjtRQUM5RiwrRkFBK0Y7UUFDL0YsTUFBTSxZQUFZLEdBQ2hCLEtBQUssSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQy9DLENBQUMsQ0FBRSxLQUE0QjtZQUMvQixDQUFDLENBQUUsR0FBRyxLQUFLLFFBQStCLENBQUM7UUFFL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTFFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQVFELFlBQ1UsVUFBc0IsRUFHdEIsWUFBK0I7UUFIL0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUd0QixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7SUFDdEMsQ0FBQztJQUVKLFNBQVM7UUFDUCxNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJO1lBQ3ZCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNwRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBeUI7UUFDekMsSUFBSSxLQUFLLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdkMsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQzs7MEdBL0NVLGFBQWEsNENBMkJkLGtCQUFrQjs4RkEzQmpCLGFBQWEsdUZBSGQsRUFBRTsyRkFHRCxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVMsWUFDVCxFQUFFOzswQkE2QlQsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxrQkFBa0I7NENBekJ4QixJQUFJO3NCQURQLEtBQUs7Z0JBbUJOLElBQUk7c0JBREgsS0FBSzs7QUErQlI7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxHQUFpRTtJQUM1RSxVQUFVLEVBQUUsRUFBRTtJQUNkLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7SUFDVixLQUFLLEVBQUUsRUFBRTtJQUNULFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgaWNvbnMgZnJvbSAnQGRhbnNrZS9zYXBwaGlyZS1pY29ucy9qcyc7XG5pbXBvcnQgeyBJQ09OX1NJWkVfUFJPVklERVIsIEljb25TaXplUHJvdmlkZXIgfSBmcm9tICcuL2ljb24tc2l6ZS1wcm92aWRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLWljb24nLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlczogWyc6aG9zdCB7IGxpbmUtaGVpZ2h0OiAwOyB9J10sXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgQElucHV0KClcbiAgc2V0IG5hbWUodmFsdWU6IHVuZGVmaW5lZCB8IGtleW9mIHR5cGVvZiBpY29ucyB8IHN0cmluZykge1xuICAgIC8vIFRPRE8odjIpOiBXZSB3aWxsIGJlIHVwZ3JhZGluZyBpY29ucyBwYWNrYWdlIHdpdGggaWNvbnMgbm90IGhhdmluZyBzaXplIGFzIHBhcnQgb2YgdGhlIG5hbWVcbiAgICAvLyB0aHVzIHdlIGRvbid0IGFsbG93IGV2ZW4gcGFzc2luZyBzdWNoIGljb24gbmFtZXMgYW5kIGNhbiByZW1vdmUgdGhpcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIGNvbnN0IGRlcml2ZWRWYWx1ZSA9XG4gICAgICB2YWx1ZSAmJiAvW2Etel0oU21hbGx8TWVkaXVtfExhcmdlKSQvLnRlc3QodmFsdWUpXG4gICAgICAgID8gKHZhbHVlIGFzIGtleW9mIHR5cGVvZiBpY29ucylcbiAgICAgICAgOiAoYCR7dmFsdWV9TWVkaXVtYCBhcyBrZXlvZiB0eXBlb2YgaWNvbnMpO1xuXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gaWNvbnNbZGVyaXZlZFZhbHVlXT8uZGF0YSB8fCAnJztcblxuICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcbiAgfVxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuICBwcml2YXRlIF9uYW1lPzoga2V5b2YgdHlwZW9mIGljb25zIHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhcHBsaWVkU2l6ZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KElDT05fU0laRV9QUk9WSURFUilcbiAgICBwcml2YXRlIHNpemVQcm92aWRlcj86IEljb25TaXplUHJvdmlkZXJcbiAgKSB7fVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICBjb25zdCBwcm92aWRlZFNpemUgPVxuICAgICAgdGhpcy5zaXplUHJvdmlkZXI/LnNpemUgJiZcbiAgICAgIGAke3RoaXMuc2l6ZVByb3ZpZGVyPy5zaXplICYmIHNpemVNYXBbdGhpcy5zaXplUHJvdmlkZXIuc2l6ZV19cHhgO1xuICAgIGNvbnN0IHNpemUgPSB0aGlzLnNpemUgPz8gcHJvdmlkZWRTaXplO1xuICAgIHRoaXMuYXBwbHlTaXplKHNpemUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNpemUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdGhpcy5hcHBsaWVkU2l6ZSkge1xuICAgICAgY29uc3Qgc3ZnRWxlbTogU1ZHU1ZHRWxlbWVudCA9XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgICAgc3ZnRWxlbT8uc2V0QXR0cmlidXRlKCd3aWR0aCcsIHZhbHVlKTtcbiAgICAgIHN2Z0VsZW0/LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgdmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmFwcGxpZWRTaXplID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBUT0RPKHYyKTogYWRkIHN0YW5kYXJkIHNpemUgb3B0aW9ucyB0byBpY29uIHdoZW4gcGVlciBkZXBlbmRlbmN5IHRvIEBzYXBwaGlyZS9pY29uIGlzIHVwZGF0ZWRcbiAqICB0byB0aGUgbGF0ZXN0IHZlcnNpb24gd2hlcmUgdGhlcmUgYXJlIG5vIGRpZmZlcmVudCBzb3VyY2VzIGZvciBlYWNoIHNpemUuXG4gKiAgV2l0aCBzdGFuZGFyZCBpY29uIHNpemVzLCB0aGVyZSBpcyBubyBuZWVkIGZvciBtYXBwaW5nIGxpa2UgdGhpcywgc2luY2UgdGhlIGlucHV0IHdvdWxkIGFjY2VwdFxuICogIHByZWRlZmluZWQgc3RyaW5nIHZhbHVlcywgYW5kIHRoZSByaWdodCBjbGFzcyB3aWxsIGJlIGFwcGxpZWQgZm9yIGVhY2ggY2FzZSwgaW5zdGVhZCBvZlxuICogIG1hbnVhbGx5IHNldHRpbmcgdGhlIHNpemUgYXR0cmlidXRlIG9uIHRoZSBzdmcgZWxlbWVudC5cbiAqIEBkZXByZWNhdGVkXG4gKi9cbmNvbnN0IHNpemVNYXA6IFJlY29yZDxFeGNsdWRlPEljb25TaXplUHJvdmlkZXJbJ3NpemUnXSwgdW5kZWZpbmVkPiwgbnVtYmVyPiA9IHtcbiAgZXh0cmFTbWFsbDogMTYsXG4gIHNtYWxsOiAxNixcbiAgbWVkaXVtOiAyMCxcbiAgbGFyZ2U6IDI0LFxuICBleHRyYUxhcmdlOiAzMixcbn07XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IconComponent } from './icon.component';
4
+ import * as i0 from "@angular/core";
5
+ export class SapphireIconModule {
6
+ }
7
+ SapphireIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ SapphireIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: SapphireIconModule, declarations: [IconComponent], imports: [CommonModule], exports: [IconComponent] });
9
+ SapphireIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireIconModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireIconModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [IconComponent],
14
+ imports: [CommonModule],
15
+ exports: [IconComponent],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ljb24vc3JjL2ljb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPakQsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUpkLGFBQWEsYUFDbEIsWUFBWSxhQUNaLGFBQWE7Z0hBRVosa0JBQWtCLFlBSG5CLFlBQVk7MkZBR1gsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0ljb25Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0ljb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTYXBwaGlyZUljb25Nb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ /**
2
+ * NOTE: label is intentionally kept internal for now. We need to add docs and stories
3
+ * if we decide to expose it.
4
+ */
5
+ export { LabelComponent } from './src/label.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbGFiZWwvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5PVEU6IGxhYmVsIGlzIGludGVudGlvbmFsbHkga2VwdCBpbnRlcm5hbCBmb3Igbm93LiBXZSBuZWVkIHRvIGFkZCBkb2NzIGFuZCBzdG9yaWVzXG4gKiBpZiB3ZSBkZWNpZGUgdG8gZXhwb3NlIGl0LlxuICovXG5leHBvcnQgeyBMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vc3JjL2xhYmVsLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgIf } from '@angular/common';
3
+ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
4
+ import { AutoId } from '../../common/auto-id.decorator';
5
+ import { CoerceBoolean } from '../../common/coerce-boolean.decorator';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Label UI, currently used exclusively in sp-field.
9
+ * @internal
10
+ */
11
+ export class LabelComponent {
12
+ constructor() {
13
+ /**
14
+ * id prop set on the underlying label element. Useful to set aria-labelledby
15
+ * on the corresponding control, if it doesn't support labeling via {@link #for}
16
+ */
17
+ this.id = '';
18
+ /**
19
+ * @default "large"
20
+ */
21
+ this.size = 'large';
22
+ /**
23
+ * Emits when the label text is clicked.
24
+ */
25
+ this.labelClick = new EventEmitter();
26
+ }
27
+ /**
28
+ * @returns the text content of the label.
29
+ */
30
+ getText() {
31
+ return this.labelElementRef?.nativeElement.textContent ?? '';
32
+ }
33
+ }
34
+ LabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ LabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: LabelComponent, isStandalone: true, selector: "sp-label", inputs: { id: "id", for: "for", disabled: "disabled", necessityIndicator: "necessityIndicator", size: "size" }, outputs: { labelClick: "labelClick" }, viewQueries: [{ propertyName: "labelElementRef", first: true, predicate: ["label"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sapphire-label\" [class.sapphire-label--medium]=\"size === 'medium'\">\n <label\n class=\"sapphire-label__text\"\n (click)=\"!disabled && labelClick.emit($event)\"\n [attr.for]=\"for\"\n [attr.id]=\"id\"\n #label\n ><ng-content></ng-content\n ></label>\n\n <span\n *ngIf=\"necessityIndicator === 'required'\"\n class=\"sapphire-label__required-indicator\"\n ></span>\n <span\n *ngIf=\"necessityIndicator === 'optional'\"\n class=\"sapphire-label__optional-indicator\"\n >(Optional)<!-- TODO(i18n) --></span\n >\n\n <ng-content select=\"sp-contextual-help\"></ng-content>\n</div>\n", styles: [".sapphire-label{display:inline-flex;align-items:center;min-height:var(--sapphire-label-size-height-l);line-height:var(--sapphire-label-size-line-height-l);font-size:var(--sapphire-label-size-font-l);gap:var(--sapphire-label-size-spacing-horizontal)}.sapphire-label--medium{line-height:var(--sapphire-label-size-line-height-m);font-size:var(--sapphire-label-size-font-m);min-height:var(--sapphire-label-size-height-m)}.sapphire-label__text{font-weight:var(--sapphire-label-size-font-weight);color:var(--sapphire-label-color-text)}.sapphire-label__required-indicator{background-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.99999 0.583344C4.41421 0.583344 4.74999 0.91913 4.74999 1.33334V3.22127L6.6017 2.62001C6.99567 2.49208 7.41874 2.70775 7.54666 3.10172C7.67459 3.49568 7.45892 3.91876 7.06495 4.04668L5.21363 4.64782L6.3601 6.22585C6.60356 6.56096 6.52927 7.02998 6.19416 7.27345C5.85905 7.51691 5.39002 7.44262 5.14656 7.10751L3.99999 5.52935L2.85343 7.10751C2.60996 7.44262 2.14094 7.51691 1.80583 7.27345C1.47072 7.02998 1.39642 6.56096 1.63989 6.22585L2.78636 4.64782L0.935036 4.04668C0.541071 3.91876 0.325401 3.49568 0.453323 3.10172C0.581246 2.70775 1.00432 2.49208 1.39829 2.62001L3.24999 3.22127V1.33334C3.24999 0.91913 3.58578 0.583344 3.99999 0.583344Z' fill='%23DD3254'/%3E%3C/svg%3E%0A\");width:8px;height:8px}.sapphire-label__optional-indicator{color:var(--sapphire-label-color-necessity-indicator)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
36
+ __decorate([
37
+ AutoId()
38
+ ], LabelComponent.prototype, "id", void 0);
39
+ __decorate([
40
+ CoerceBoolean
41
+ ], LabelComponent.prototype, "disabled", void 0);
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: LabelComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'sp-label', standalone: true, imports: [NgIf], template: "<div class=\"sapphire-label\" [class.sapphire-label--medium]=\"size === 'medium'\">\n <label\n class=\"sapphire-label__text\"\n (click)=\"!disabled && labelClick.emit($event)\"\n [attr.for]=\"for\"\n [attr.id]=\"id\"\n #label\n ><ng-content></ng-content\n ></label>\n\n <span\n *ngIf=\"necessityIndicator === 'required'\"\n class=\"sapphire-label__required-indicator\"\n ></span>\n <span\n *ngIf=\"necessityIndicator === 'optional'\"\n class=\"sapphire-label__optional-indicator\"\n >(Optional)<!-- TODO(i18n) --></span\n >\n\n <ng-content select=\"sp-contextual-help\"></ng-content>\n</div>\n", styles: [".sapphire-label{display:inline-flex;align-items:center;min-height:var(--sapphire-label-size-height-l);line-height:var(--sapphire-label-size-line-height-l);font-size:var(--sapphire-label-size-font-l);gap:var(--sapphire-label-size-spacing-horizontal)}.sapphire-label--medium{line-height:var(--sapphire-label-size-line-height-m);font-size:var(--sapphire-label-size-font-m);min-height:var(--sapphire-label-size-height-m)}.sapphire-label__text{font-weight:var(--sapphire-label-size-font-weight);color:var(--sapphire-label-color-text)}.sapphire-label__required-indicator{background-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.99999 0.583344C4.41421 0.583344 4.74999 0.91913 4.74999 1.33334V3.22127L6.6017 2.62001C6.99567 2.49208 7.41874 2.70775 7.54666 3.10172C7.67459 3.49568 7.45892 3.91876 7.06495 4.04668L5.21363 4.64782L6.3601 6.22585C6.60356 6.56096 6.52927 7.02998 6.19416 7.27345C5.85905 7.51691 5.39002 7.44262 5.14656 7.10751L3.99999 5.52935L2.85343 7.10751C2.60996 7.44262 2.14094 7.51691 1.80583 7.27345C1.47072 7.02998 1.39642 6.56096 1.63989 6.22585L2.78636 4.64782L0.935036 4.04668C0.541071 3.91876 0.325401 3.49568 0.453323 3.10172C0.581246 2.70775 1.00432 2.49208 1.39829 2.62001L3.24999 3.22127V1.33334C3.24999 0.91913 3.58578 0.583344 3.99999 0.583344Z' fill='%23DD3254'/%3E%3C/svg%3E%0A\");width:8px;height:8px}.sapphire-label__optional-indicator{color:var(--sapphire-label-color-necessity-indicator)}\n"] }]
45
+ }], propDecorators: { id: [{
46
+ type: Input
47
+ }], for: [{
48
+ type: Input
49
+ }], disabled: [{
50
+ type: Input
51
+ }], necessityIndicator: [{
52
+ type: Input
53
+ }], size: [{
54
+ type: Input
55
+ }], labelClick: [{
56
+ type: Output
57
+ }], labelElementRef: [{
58
+ type: ViewChild,
59
+ args: ['label', { read: ElementRef }]
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9sYWJlbC9zcmMvbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9sYWJlbC9zcmMvbGFiZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFHdEU7OztHQUdHO0FBUUgsTUFBTSxPQUFPLGNBQWM7SUFQM0I7UUFRRTs7O1dBR0c7UUFHSCxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBdUJSOztXQUVHO1FBRUgsU0FBSSxHQUF3QixPQUFPLENBQUM7UUFFcEM7O1dBRUc7UUFFSCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztLQVc3QztJQVRDOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUMvRCxDQUFDOzsyR0EvQ1UsY0FBYzsrRkFBZCxjQUFjLGdUQWlERyxVQUFVLDZCQ3pFeEMsMm5CQXNCQSwya0RERlksSUFBSTtBQVVkO0lBREMsTUFBTSxFQUFFOzBDQUVEO0FBZVI7SUFEQyxhQUFhO2dEQUNVOzJGQXRCYixjQUFjO2tCQVAxQixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7OEJBV2YsRUFBRTtzQkFERCxLQUFLO2dCQVNOLEdBQUc7c0JBREYsS0FBSztnQkFRTixRQUFRO3NCQUZQLEtBQUs7Z0JBUU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFPTixVQUFVO3NCQURULE1BQU07Z0JBV0MsZUFBZTtzQkFEdEIsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dG9JZCB9IGZyb20gJy4uLy4uL2NvbW1vbi9hdXRvLWlkLmRlY29yYXRvcic7XG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG4vKipcbiAqIExhYmVsIFVJLCBjdXJyZW50bHkgdXNlZCBleGNsdXNpdmVseSBpbiBzcC1maWVsZC5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1sYWJlbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGFiZWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGFiZWxDb21wb25lbnQge1xuICAvKipcbiAgICogaWQgcHJvcCBzZXQgb24gdGhlIHVuZGVybHlpbmcgbGFiZWwgZWxlbWVudC4gVXNlZnVsIHRvIHNldCBhcmlhLWxhYmVsbGVkYnlcbiAgICogb24gdGhlIGNvcnJlc3BvbmRpbmcgY29udHJvbCwgaWYgaXQgZG9lc24ndCBzdXBwb3J0IGxhYmVsaW5nIHZpYSB7QGxpbmsgI2Zvcn1cbiAgICovXG4gIEBBdXRvSWQoKVxuICBASW5wdXQoKVxuICBpZCA9ICcnO1xuXG4gIC8qKlxuICAgKiBodG1sIGxhYmVsIFwiZm9yXCIgYXR0cmlidXRlLCBzZXQgb24gdGhlIHVuZGVybHlpbmcgbGFiZWwgZWxlbWVudCwgaW4gY2FzZSB0aGUgbGFiZWxlZCBjb250cm9sXG4gICAqIGhhcyBhbiBpZCBhbmQgaXNcbiAgICogW2xhYmVsYWJsZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9Db250ZW50X2NhdGVnb3JpZXMjbGFiZWxhYmxlKVxuICAgKi9cbiAgQElucHV0KClcbiAgZm9yPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsYWJlbCBpcyBkaXNhYmxlZC4gRGlzYWJsZWQgbGFiZWwgd29uJ3QgZW1pdCBsYWJlbENsaWNrLlxuICAgKi9cbiAgQElucHV0KClcbiAgQENvZXJjZUJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgbmVjZXNzaXR5IG9mIHRoZSBjb3JyZXNwb25kaW5nIGZvcm0gY29udHJvbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG5lY2Vzc2l0eUluZGljYXRvcj86ICdyZXF1aXJlZCcgfCAnb3B0aW9uYWwnO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBcImxhcmdlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNpemU/OiAnbGFyZ2UnIHwgJ21lZGl1bScgPSAnbGFyZ2UnO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBsYWJlbCB0ZXh0IGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgbGFiZWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAvKipcbiAgICogQHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0aGUgbGFiZWwuXG4gICAqL1xuICBnZXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWxFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50ID8/ICcnO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnbGFiZWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBsYWJlbEVsZW1lbnRSZWY/OiBFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+O1xufVxuIiwiPGRpdiBjbGFzcz1cInNhcHBoaXJlLWxhYmVsXCIgW2NsYXNzLnNhcHBoaXJlLWxhYmVsLS1tZWRpdW1dPVwic2l6ZSA9PT0gJ21lZGl1bSdcIj5cbiAgPGxhYmVsXG4gICAgY2xhc3M9XCJzYXBwaGlyZS1sYWJlbF9fdGV4dFwiXG4gICAgKGNsaWNrKT1cIiFkaXNhYmxlZCAmJiBsYWJlbENsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgW2F0dHIuZm9yXT1cImZvclwiXG4gICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICNsYWJlbFxuICAgID48bmctY29udGVudD48L25nLWNvbnRlbnRcbiAgPjwvbGFiZWw+XG5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIm5lY2Vzc2l0eUluZGljYXRvciA9PT0gJ3JlcXVpcmVkJ1wiXG4gICAgY2xhc3M9XCJzYXBwaGlyZS1sYWJlbF9fcmVxdWlyZWQtaW5kaWNhdG9yXCJcbiAgPjwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIm5lY2Vzc2l0eUluZGljYXRvciA9PT0gJ29wdGlvbmFsJ1wiXG4gICAgY2xhc3M9XCJzYXBwaGlyZS1sYWJlbF9fb3B0aW9uYWwtaW5kaWNhdG9yXCJcbiAgICA+KE9wdGlvbmFsKTwhLS0gVE9ETyhpMThuKSAtLT48L3NwYW5cbiAgPlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLWNvbnRleHR1YWwtaGVscFwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,7 @@
1
+ // We have separate public_api.ts file for each angular module, to have them
2
+ // exposed as separate entry points. The build is still not emitting separate
3
+ // entry points, which will be addressed in this task:
4
+ // WCCJ-838
5
+ export * from './src/link.component';
6
+ export * from './src/link.module';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbGluay9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRFQUE0RTtBQUM1RSw2RUFBNkU7QUFDN0Usc0RBQXNEO0FBQ3RELFdBQVc7QUFDWCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXZSBoYXZlIHNlcGFyYXRlIHB1YmxpY19hcGkudHMgZmlsZSBmb3IgZWFjaCBhbmd1bGFyIG1vZHVsZSwgdG8gaGF2ZSB0aGVtXG4vLyBleHBvc2VkIGFzIHNlcGFyYXRlIGVudHJ5IHBvaW50cy4gVGhlIGJ1aWxkIGlzIHN0aWxsIG5vdCBlbWl0dGluZyBzZXBhcmF0ZVxuLy8gZW50cnkgcG9pbnRzLCB3aGljaCB3aWxsIGJlIGFkZHJlc3NlZCBpbiB0aGlzIHRhc2s6XG4vLyBXQ0NKLTgzOFxuZXhwb3J0ICogZnJvbSAnLi9zcmMvbGluay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvbGluay5tb2R1bGUnO1xuIl19
@@ -0,0 +1,62 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input, HostListener } from '@angular/core';
3
+ import { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';
4
+ import { CoerceBoolean } from '../../common/coerce-boolean.decorator';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../common/sapphire-view-encapsulation";
7
+ export class LinkComponent {
8
+ constructor() {
9
+ this.variant = 'primary';
10
+ this.size = 'large';
11
+ this.disabled = false;
12
+ this.tabindex = null;
13
+ this.tabIndex = null;
14
+ }
15
+ // TODO: This will prevent navigation on click,
16
+ // but it won't prevent the link being focused on click
17
+ handleDisableInteraction(e) {
18
+ if (this.disabled)
19
+ e.preventDefault();
20
+ }
21
+ }
22
+ LinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: LinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ LinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: LinkComponent, isStandalone: true, selector: "a[sp-link]", inputs: { variant: "variant", size: "size", disabled: "disabled", tabindex: "tabindex", tabIndex: "tabIndex" }, host: { listeners: { "click": "handleDisableInteraction($event)", "pointerdown": "handleDisableInteraction($event)", "mousedown": "handleDisableInteraction($event)", "keydown": "handleDisableInteraction($event)" }, properties: { "class.sapphire-link--primary": "variant === \"primary\"", "class.sapphire-link--secondary": "variant === \"secondary\"", "class.sapphire-link--medium": "size === \"medium\"", "class.sapphire-link--small": "size === \"small\"", "attr.tabindex": "disabled ? -1 : (tabindex || tabIndex)", "attr.aria-disabled": "disabled || null", "class.is-disabled": "disabled" }, classAttribute: "sapphire-link" }, hostDirectives: [{ directive: i1.UseComponentStylesOnHost }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [".sapphire-link{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:var(--sapphire-link-font-name);font-size:var(--sapphire-link-size-font-l);line-height:var(--sapphire-link-size-line-height);cursor:pointer;outline:0;border-radius:var(--sapphire-link-size-radius)}.sapphire-link.is-disabled{opacity:var(--sapphire-link-opacity-disabled);cursor:not-allowed}.sapphire-link--primary{color:var(--sapphire-link-color-content-primary-default)}.sapphire-link--primary:not(:disabled):not(.is-disabled):not(:active):not(.is-active):not(.js-hover):hover,.sapphire-link--primary:not(:disabled):not(.is-disabled):not(:active):not(.is-active).is-hover{color:var(--sapphire-link-color-content-primary-hover)}.sapphire-link--primary.is-focus,.sapphire-link--primary:not(.js-focus):focus-visible{color:var(--sapphire-link-color-content-primary-default);outline:var(--sapphire-link-size-focus-ring-border) solid var(--sapphire-link-color-focus-ring)}.sapphire-link--primary:not(:disabled):not(.is-disabled).is-active,.sapphire-link--primary:not(:disabled):not(.is-disabled):active,.sapphire-link--primary:not(:disabled):not(.is-disabled):focus-visible:active{color:var(--sapphire-link-color-content-primary-active)}.sapphire-link--secondary{color:var(--sapphire-link-color-content-secondary-default)}.sapphire-link--secondary:not(:disabled):not(.is-disabled):not(:active):not(.is-active):not(.js-hover):hover,.sapphire-link--secondary:not(:disabled):not(.is-disabled):not(:active):not(.is-active).is-hover{color:var(--sapphire-link-color-content-secondary-hover)}.sapphire-link--secondary.is-focus,.sapphire-link--secondary:not(.js-focus):focus-visible{color:var(--sapphire-link-color-content-secondary-default);outline:var(--sapphire-link-size-focus-ring-border) solid var(--sapphire-link-color-focus-ring)}.sapphire-link--secondary:not(:disabled):not(.is-disabled).is-active,.sapphire-link--secondary:not(:disabled):not(.is-disabled):active,.sapphire-link--secondary:not(:disabled):not(.is-disabled):focus-visible:active{color:var(--sapphire-link-color-content-secondary-active)}.sapphire-link--medium{font-size:var(--sapphire-link-size-font-m)}.sapphire-link--small{font-size:var(--sapphire-link-size-font-s)}\n"] });
24
+ __decorate([
25
+ CoerceBoolean
26
+ ], LinkComponent.prototype, "disabled", void 0);
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: LinkComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'a[sp-link]', standalone: true, template: `<ng-content></ng-content>`, host: {
30
+ class: 'sapphire-link',
31
+ '[class.sapphire-link--primary]': 'variant === "primary"',
32
+ '[class.sapphire-link--secondary]': 'variant === "secondary"',
33
+ '[class.sapphire-link--medium]': 'size === "medium"',
34
+ '[class.sapphire-link--small]': 'size === "small"',
35
+ '[attr.tabindex]': 'disabled ? -1 : (tabindex || tabIndex)',
36
+ '[attr.aria-disabled]': 'disabled || null',
37
+ '[class.is-disabled]': 'disabled',
38
+ }, hostDirectives: [UseComponentStylesOnHost], styles: [".sapphire-link{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:var(--sapphire-link-font-name);font-size:var(--sapphire-link-size-font-l);line-height:var(--sapphire-link-size-line-height);cursor:pointer;outline:0;border-radius:var(--sapphire-link-size-radius)}.sapphire-link.is-disabled{opacity:var(--sapphire-link-opacity-disabled);cursor:not-allowed}.sapphire-link--primary{color:var(--sapphire-link-color-content-primary-default)}.sapphire-link--primary:not(:disabled):not(.is-disabled):not(:active):not(.is-active):not(.js-hover):hover,.sapphire-link--primary:not(:disabled):not(.is-disabled):not(:active):not(.is-active).is-hover{color:var(--sapphire-link-color-content-primary-hover)}.sapphire-link--primary.is-focus,.sapphire-link--primary:not(.js-focus):focus-visible{color:var(--sapphire-link-color-content-primary-default);outline:var(--sapphire-link-size-focus-ring-border) solid var(--sapphire-link-color-focus-ring)}.sapphire-link--primary:not(:disabled):not(.is-disabled).is-active,.sapphire-link--primary:not(:disabled):not(.is-disabled):active,.sapphire-link--primary:not(:disabled):not(.is-disabled):focus-visible:active{color:var(--sapphire-link-color-content-primary-active)}.sapphire-link--secondary{color:var(--sapphire-link-color-content-secondary-default)}.sapphire-link--secondary:not(:disabled):not(.is-disabled):not(:active):not(.is-active):not(.js-hover):hover,.sapphire-link--secondary:not(:disabled):not(.is-disabled):not(:active):not(.is-active).is-hover{color:var(--sapphire-link-color-content-secondary-hover)}.sapphire-link--secondary.is-focus,.sapphire-link--secondary:not(.js-focus):focus-visible{color:var(--sapphire-link-color-content-secondary-default);outline:var(--sapphire-link-size-focus-ring-border) solid var(--sapphire-link-color-focus-ring)}.sapphire-link--secondary:not(:disabled):not(.is-disabled).is-active,.sapphire-link--secondary:not(:disabled):not(.is-disabled):active,.sapphire-link--secondary:not(:disabled):not(.is-disabled):focus-visible:active{color:var(--sapphire-link-color-content-secondary-active)}.sapphire-link--medium{font-size:var(--sapphire-link-size-font-m)}.sapphire-link--small{font-size:var(--sapphire-link-size-font-s)}\n"] }]
39
+ }], propDecorators: { variant: [{
40
+ type: Input
41
+ }], size: [{
42
+ type: Input
43
+ }], disabled: [{
44
+ type: Input
45
+ }], tabindex: [{
46
+ type: Input
47
+ }], tabIndex: [{
48
+ type: Input
49
+ }], handleDisableInteraction: [{
50
+ type: HostListener,
51
+ args: ['click', ['$event']]
52
+ }, {
53
+ type: HostListener,
54
+ args: ['pointerdown', ['$event']]
55
+ }, {
56
+ type: HostListener,
57
+ args: ['mousedown', ['$event']]
58
+ }, {
59
+ type: HostListener,
60
+ args: ['keydown', ['$event']]
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2xpbmsvc3JjL2xpbmsuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFzQnRFLE1BQU0sT0FBTyxhQUFhO0lBcEIxQjtRQXNCRSxZQUFPLEdBQTZCLFNBQVMsQ0FBQztRQUc5QyxTQUFJLEdBQWtDLE9BQU8sQ0FBQztRQUk5QyxhQUFRLEdBQWtCLEtBQUssQ0FBQztRQUdoQyxhQUFRLEdBQW1CLElBQUksQ0FBQztRQUVoQyxhQUFRLEdBQW1CLElBQUksQ0FBQztLQVdqQztJQVRDLCtDQUErQztJQUMvQyx1REFBdUQ7SUFLL0Msd0JBQXdCLENBQUMsQ0FBUTtRQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7OzBHQXhCVSxhQUFhOzhGQUFiLGFBQWEsdzJCQWhCZCwyQkFBMkI7QUF5QnJDO0lBREMsYUFBYTsrQ0FDa0I7MkZBVHJCLGFBQWE7a0JBcEJ6QixTQUFTOytCQUNFLFlBQVksY0FFVixJQUFJLFlBQ04sMkJBQTJCLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxlQUFlO3dCQUV0QixnQ0FBZ0MsRUFBRSx1QkFBdUI7d0JBQ3pELGtDQUFrQyxFQUFFLHlCQUF5Qjt3QkFFN0QsK0JBQStCLEVBQUUsbUJBQW1CO3dCQUNwRCw4QkFBOEIsRUFBRSxrQkFBa0I7d0JBRWxELGlCQUFpQixFQUFFLHdDQUF3Qzt3QkFDM0Qsc0JBQXNCLEVBQUUsa0JBQWtCO3dCQUMxQyxxQkFBcUIsRUFBRSxVQUFVO3FCQUNsQyxrQkFDZSxDQUFDLHdCQUF3QixDQUFDOzhCQUkxQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUtOLFFBQVE7c0JBRlAsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQVNFLHdCQUF3QjtzQkFKL0IsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3RDLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDcEMsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcbmltcG9ydCB7IENvZXJjZUJvb2xlYW4gfSBmcm9tICcuLi8uLi9jb21tb24vY29lcmNlLWJvb2xlYW4uZGVjb3JhdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYVtzcC1saW5rXScsXG4gIHN0eWxlVXJsczogWycuL2xpbmsuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnc2FwcGhpcmUtbGluaycsXG5cbiAgICAnW2NsYXNzLnNhcHBoaXJlLWxpbmstLXByaW1hcnldJzogJ3ZhcmlhbnQgPT09IFwicHJpbWFyeVwiJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWxpbmstLXNlY29uZGFyeV0nOiAndmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIicsXG5cbiAgICAnW2NsYXNzLnNhcHBoaXJlLWxpbmstLW1lZGl1bV0nOiAnc2l6ZSA9PT0gXCJtZWRpdW1cIicsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1saW5rLS1zbWFsbF0nOiAnc2l6ZSA9PT0gXCJzbWFsbFwiJyxcblxuICAgICdbYXR0ci50YWJpbmRleF0nOiAnZGlzYWJsZWQgPyAtMSA6ICh0YWJpbmRleCB8fCB0YWJJbmRleCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gIH0sXG4gIGhvc3REaXJlY3RpdmVzOiBbVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0XSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHZhcmlhbnQ/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyA9ICdwcmltYXJ5JztcblxuICBASW5wdXQoKVxuICBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdsYXJnZSc7XG5cbiAgQElucHV0KClcbiAgQENvZXJjZUJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICB0YWJpbmRleD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKVxuICB0YWJJbmRleD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFRPRE86IFRoaXMgd2lsbCBwcmV2ZW50IG5hdmlnYXRpb24gb24gY2xpY2ssXG4gIC8vIGJ1dCBpdCB3b24ndCBwcmV2ZW50IHRoZSBsaW5rIGJlaW5nIGZvY3VzZWQgb24gY2xpY2tcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZURpc2FibGVJbnRlcmFjdGlvbihlOiBFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSBlLnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { LinkComponent } from './link.component';
3
+ import * as i0 from "@angular/core";
4
+ export class SapphireLinkModule {
5
+ }
6
+ SapphireLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ SapphireLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: SapphireLinkModule, imports: [LinkComponent], exports: [LinkComponent] });
8
+ SapphireLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireLinkModule, imports: [LinkComponent] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireLinkModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [LinkComponent],
13
+ exports: [LinkComponent],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2xpbmsvc3JjL2xpbmsubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsWUFIbkIsYUFBYSxhQUNiLGFBQWE7Z0hBRVosa0JBQWtCLFlBSG5CLGFBQWE7MkZBR1osa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9saW5rLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtMaW5rQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0xpbmtDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTYXBwaGlyZUxpbmtNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export { SapphireListboxModule } from './src/listbox.module';
2
+ export { ListboxComponent } from './src/listbox.component';
3
+ export { OptionComponent } from './src/option.component';
4
+ export { SectionDirective } from './src/section.directive';
5
+ export { OptionIconDirective } from './src/option-icon.directive';
6
+ export { OptionPrimaryTextDirective } from './src/option-primary-text.directive';
7
+ export { OptionSecondaryTextDirective } from './src/option-secondary-text.directive';
8
+ export { ListboxInputDirective } from './src/listbox-input.directive';
9
+ export { ListboxChild } from './src/listbox-child';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbGlzdGJveC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTYXBwaGlyZUxpc3Rib3hNb2R1bGUgfSBmcm9tICcuL3NyYy9saXN0Ym94Lm1vZHVsZSc7XG5leHBvcnQgeyBMaXN0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi9zcmMvbGlzdGJveC5jb21wb25lbnQnO1xuZXhwb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zcmMvb3B0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvc2VjdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgT3B0aW9uSWNvbkRpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL29wdGlvbi1pY29uLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBPcHRpb25QcmltYXJ5VGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL29wdGlvbi1wcmltYXJ5LXRleHQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IE9wdGlvblNlY29uZGFyeVRleHREaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9vcHRpb24tc2Vjb25kYXJ5LXRleHQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IExpc3Rib3hJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2xpc3Rib3gtaW5wdXQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IExpc3Rib3hDaGlsZCB9IGZyb20gJy4vc3JjL2xpc3Rib3gtY2hpbGQnO1xuIl19
@@ -0,0 +1,30 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/cdk/listbox";
4
+ /**
5
+ A workaround for an issue in cdkListbox, where the active item is not scrolled
6
+ into view when it's not physically focused (i.e. useActiveDescendant is true).
7
+ * TODO: remove when https://github.com/angular/components/issues/28989 is fixed
8
+ */
9
+ export class CdkOptionScrollIssuePatch {
10
+ constructor(cdkListbox, cdkOption, elementRef) {
11
+ this.cdkListbox = cdkListbox;
12
+ this.cdkOption = cdkOption;
13
+ this.elementRef = elementRef;
14
+ }
15
+ ngAfterViewChecked() {
16
+ if (this.cdkListbox.useActiveDescendant && this.cdkOption.isActive()) {
17
+ this.elementRef.nativeElement.scrollIntoView({ block: 'nearest' });
18
+ }
19
+ }
20
+ }
21
+ CdkOptionScrollIssuePatch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: CdkOptionScrollIssuePatch, deps: [{ token: i1.CdkListbox }, { token: i1.CdkOption }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
22
+ CdkOptionScrollIssuePatch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: CdkOptionScrollIssuePatch, isStandalone: true, selector: "[cdkOption]", ngImport: i0 });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: CdkOptionScrollIssuePatch, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ selector: '[cdkOption]',
27
+ standalone: true,
28
+ }]
29
+ }], ctorParameters: function () { return [{ type: i1.CdkListbox }, { type: i1.CdkOption }, { type: i0.ElementRef }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW9wdGlvbi1zY3JvbGwtaXNzdWUtcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2xpc3Rib3gvc3JjL2Nkay1vcHRpb24tc2Nyb2xsLWlzc3VlLXBhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7OztBQUV0RDs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUNVLFVBQXNCLEVBQ3RCLFNBQW9CLEVBQ3BCLFVBQW1DO1FBRm5DLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtJQUMxQyxDQUFDO0lBRUosa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQzs7c0hBWFUseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrTGlzdGJveCwgQ2RrT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xpc3Rib3gnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuIEEgd29ya2Fyb3VuZCBmb3IgYW4gaXNzdWUgaW4gY2RrTGlzdGJveCwgd2hlcmUgdGhlIGFjdGl2ZSBpdGVtIGlzIG5vdCBzY3JvbGxlZFxuIGludG8gdmlldyB3aGVuIGl0J3Mgbm90IHBoeXNpY2FsbHkgZm9jdXNlZCAoaS5lLiB1c2VBY3RpdmVEZXNjZW5kYW50IGlzIHRydWUpLlxuICogVE9ETzogcmVtb3ZlIHdoZW4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMjg5ODkgaXMgZml4ZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nka09wdGlvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDZGtPcHRpb25TY3JvbGxJc3N1ZVBhdGNoIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZGtMaXN0Ym94OiBDZGtMaXN0Ym94LFxuICAgIHByaXZhdGUgY2RrT3B0aW9uOiBDZGtPcHRpb24sXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNka0xpc3Rib3gudXNlQWN0aXZlRGVzY2VuZGFudCAmJiB0aGlzLmNka09wdGlvbi5pc0FjdGl2ZSgpKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Base class for valid listbox children (option and section), to be able to
3
+ * query all with @ContentChildren.
4
+ */
5
+ export class ListboxChild {
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC1jaGlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbGlzdGJveC9zcmMvbGlzdGJveC1jaGlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFlBQVk7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdmFsaWQgbGlzdGJveCBjaGlsZHJlbiAob3B0aW9uIGFuZCBzZWN0aW9uKSwgdG8gYmUgYWJsZSB0b1xuICogcXVlcnkgYWxsIHdpdGggQENvbnRlbnRDaGlsZHJlbi5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3Rib3hDaGlsZCB7fVxuIl19
@@ -0,0 +1,42 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * A low-level directive to connect a listbox to an input, for use cases like search.
5
+ * It adds event handlers to enable navigation via arrow keys. It also makes
6
+ * the listbox use virtual focus, since the actual focus will be on the connected input.
7
+ */
8
+ export class ListboxInputDirective {
9
+ set listbox(listbox) {
10
+ this.handlers = listbox?.connectToInput(this);
11
+ }
12
+ onKeyDown(event) {
13
+ this.handlers?.onKeydown?.(event);
14
+ }
15
+ onFocus() {
16
+ this.handlers?.onFocus?.();
17
+ }
18
+ onBlur() {
19
+ this.handlers?.onBlur?.();
20
+ }
21
+ }
22
+ ListboxInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ListboxInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ ListboxInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ListboxInputDirective, selector: "input[spListboxInput]", inputs: { listbox: ["spListboxInput", "listbox"] }, host: { listeners: { "keydown": "onKeyDown($event)", "focus": "onFocus()", "blur": "onBlur()" } }, ngImport: i0 });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ListboxInputDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ selector: 'input[spListboxInput]',
28
+ }]
29
+ }], propDecorators: { listbox: [{
30
+ type: Input,
31
+ args: ['spListboxInput']
32
+ }], onKeyDown: [{
33
+ type: HostListener,
34
+ args: ['keydown', ['$event']]
35
+ }], onFocus: [{
36
+ type: HostListener,
37
+ args: ['focus']
38
+ }], onBlur: [{
39
+ type: HostListener,
40
+ args: ['blur']
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2xpc3Rib3gvc3JjL2xpc3Rib3gtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHL0Q7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFDSSxPQUFPLENBQUMsT0FBcUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFTTyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBR08sT0FBTztRQUNiLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUM1QixDQUFDOztrSEF4QlUscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2lCQUNsQzs4QkFHSyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVlmLFNBQVM7c0JBRGhCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU0zQixPQUFPO3NCQURkLFlBQVk7dUJBQUMsT0FBTztnQkFLYixNQUFNO3NCQURiLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdGJveENvbXBvbmVudCB9IGZyb20gJy4vbGlzdGJveC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEEgbG93LWxldmVsIGRpcmVjdGl2ZSB0byBjb25uZWN0IGEgbGlzdGJveCB0byBhbiBpbnB1dCwgZm9yIHVzZSBjYXNlcyBsaWtlIHNlYXJjaC5cbiAqIEl0IGFkZHMgZXZlbnQgaGFuZGxlcnMgdG8gZW5hYmxlIG5hdmlnYXRpb24gdmlhIGFycm93IGtleXMuIEl0IGFsc28gbWFrZXNcbiAqIHRoZSBsaXN0Ym94IHVzZSB2aXJ0dWFsIGZvY3VzLCBzaW5jZSB0aGUgYWN0dWFsIGZvY3VzIHdpbGwgYmUgb24gdGhlIGNvbm5lY3RlZCBpbnB1dC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbc3BMaXN0Ym94SW5wdXRdJyxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdGJveElucHV0RGlyZWN0aXZlIHtcbiAgQElucHV0KCdzcExpc3Rib3hJbnB1dCcpXG4gIHNldCBsaXN0Ym94KGxpc3Rib3g6IExpc3Rib3hDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmhhbmRsZXJzID0gbGlzdGJveD8uY29ubmVjdFRvSW5wdXQodGhpcyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZXJzPzoge1xuICAgIG9uS2V5ZG93bjogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICAgIG9uRm9jdXM6ICgpID0+IHZvaWQ7XG4gICAgb25CbHVyOiAoKSA9PiB2b2lkO1xuICB9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlcnM/Lm9uS2V5ZG93bj8uKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgcHJpdmF0ZSBvbkZvY3VzKCkge1xuICAgIHRoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwcml2YXRlIG9uQmx1cigpIHtcbiAgICB0aGlzLmhhbmRsZXJzPy5vbkJsdXI/LigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { PressedDirective } from '../../common/pressed.directive';
3
+ import { FocusedDirective } from '../../common/focused.directive';
4
+ import { UseComponentStyles } from '../../common/sapphire-view-encapsulation';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../common/pressed.directive";
7
+ import * as i2 from "../../common/sapphire-view-encapsulation";
8
+ import * as i3 from "../../common/focused.directive";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "../../icon/src/icon.component";
11
+ import * as i6 from "@angular/cdk/portal";
12
+ /**
13
+ * Used internally in listbox component to render items. The primary reason
14
+ * this is extracted into a component is to be reused outside and inside
15
+ * sections. Using a ng-template inside listbox component, as an alternative
16
+ * approach, leads to out of sync queries of cdkOptions, which leads to bugs.
17
+ */
18
+ export class ListboxItemComponent {
19
+ constructor(pressedDirective) {
20
+ this.size = 'large';
21
+ pressedDirective.pressedClass = 'is-pressed';
22
+ }
23
+ }
24
+ ListboxItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ListboxItemComponent, deps: [{ token: i1.PressedDirective }], target: i0.ɵɵFactoryTarget.Component });
25
+ ListboxItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ListboxItemComponent, selector: "li[sp-listbox-item]", inputs: { selected: "selected", focused: "focused", option: "option", size: "size" }, host: { properties: { "class.sapphire-listbox__item--selected": "selected", "class.is-disabled": "option.disabled" }, classAttribute: "sapphire-listbox__item" }, hostDirectives: [{ directive: i2.UseComponentStyles }, { directive: i1.PressedDirective }, { directive: i3.FocusedDirective, inputs: ["spFocused", "focused"] }], ngImport: i0, template: "<div class=\"sapphire-listbox__content\" _spUseComponentStyles>\n <div\n class=\"sapphire-listbox__icon\"\n _spUseComponentStyles\n *ngIf=\"option.icon?.contentPortal as icon\"\n >\n <ng-container *cdkPortalOutlet=\"icon\"></ng-container>\n </div>\n <div class=\"sapphire-listbox__text-container\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__primary-text\" _spUseComponentStyles>\n <ng-container *ngIf=\"option.primaryText\">\n <ng-container *cdkPortalOutlet=\"option.primaryText\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-listbox__secondary-text\"\n _spUseComponentStyles\n *ngIf=\"option.secondaryText?.contentPortal as secondaryText\"\n >\n <ng-container *cdkPortalOutlet=\"secondaryText\"></ng-container>\n </div>\n </div>\n <div class=\"sapphire-listbox__icon\" _spUseComponentStyles *ngIf=\"selected\">\n <sp-icon name=\"checkMark\"></sp-icon>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2.UseComponentStyles, selector: "[_spUseComponentStyles]" }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ListboxItemComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'li[sp-listbox-item]', host: {
29
+ class: 'sapphire-listbox__item',
30
+ '[class.sapphire-listbox__item--selected]': 'selected',
31
+ '[class.is-disabled]': 'option.disabled',
32
+ }, hostDirectives: [
33
+ UseComponentStyles,
34
+ PressedDirective,
35
+ {
36
+ directive: FocusedDirective,
37
+ inputs: ['spFocused: focused'],
38
+ },
39
+ ], template: "<div class=\"sapphire-listbox__content\" _spUseComponentStyles>\n <div\n class=\"sapphire-listbox__icon\"\n _spUseComponentStyles\n *ngIf=\"option.icon?.contentPortal as icon\"\n >\n <ng-container *cdkPortalOutlet=\"icon\"></ng-container>\n </div>\n <div class=\"sapphire-listbox__text-container\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__primary-text\" _spUseComponentStyles>\n <ng-container *ngIf=\"option.primaryText\">\n <ng-container *cdkPortalOutlet=\"option.primaryText\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-listbox__secondary-text\"\n _spUseComponentStyles\n *ngIf=\"option.secondaryText?.contentPortal as secondaryText\"\n >\n <ng-container *cdkPortalOutlet=\"secondaryText\"></ng-container>\n </div>\n </div>\n <div class=\"sapphire-listbox__icon\" _spUseComponentStyles *ngIf=\"selected\">\n <sp-icon name=\"checkMark\"></sp-icon>\n </div>\n</div>\n" }]
40
+ }], ctorParameters: function () { return [{ type: i1.PressedDirective }]; }, propDecorators: { selected: [{
41
+ type: Input
42
+ }], focused: [{
43
+ type: Input
44
+ }], option: [{
45
+ type: Input
46
+ }], size: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbGlzdGJveC9zcmMvbGlzdGJveC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbGlzdGJveC9zcmMvbGlzdGJveC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7OztBQUM5RTs7Ozs7R0FLRztBQWtCSCxNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLFlBQVksZ0JBQWtDO1FBRjlDLFNBQUksR0FBa0MsT0FBTyxDQUFDO1FBRzVDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDL0MsQ0FBQzs7aUhBZlUsb0JBQW9CO3FHQUFwQixvQkFBb0IscWRDNUJqQyx3OUJBMEJBOzJGREVhLG9CQUFvQjtrQkFqQmhDLFNBQVM7K0JBQ0UscUJBQXFCLFFBRXpCO3dCQUNKLEtBQUssRUFBRSx3QkFBd0I7d0JBQy9CLDBDQUEwQyxFQUFFLFVBQVU7d0JBQ3RELHFCQUFxQixFQUFFLGlCQUFpQjtxQkFDekMsa0JBQ2U7d0JBQ2Qsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCOzRCQUNFLFNBQVMsRUFBRSxnQkFBZ0I7NEJBQzNCLE1BQU0sRUFBRSxDQUFDLG9CQUFvQixDQUFDO3lCQUMvQjtxQkFDRjt1R0FJRCxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmVzc2VkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3ByZXNzZWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvY3VzZWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9jb21tb24vZm9jdXNlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZUNvbXBvbmVudFN0eWxlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9zYXBwaGlyZS12aWV3LWVuY2Fwc3VsYXRpb24nO1xuLyoqXG4gKiBVc2VkIGludGVybmFsbHkgaW4gbGlzdGJveCBjb21wb25lbnQgdG8gcmVuZGVyIGl0ZW1zLiBUaGUgcHJpbWFyeSByZWFzb25cbiAqIHRoaXMgaXMgZXh0cmFjdGVkIGludG8gYSBjb21wb25lbnQgaXMgdG8gYmUgcmV1c2VkIG91dHNpZGUgYW5kIGluc2lkZVxuICogc2VjdGlvbnMuIFVzaW5nIGEgbmctdGVtcGxhdGUgaW5zaWRlIGxpc3Rib3ggY29tcG9uZW50LCBhcyBhbiBhbHRlcm5hdGl2ZVxuICogYXBwcm9hY2gsIGxlYWRzIHRvIG91dCBvZiBzeW5jIHF1ZXJpZXMgb2YgY2RrT3B0aW9ucywgd2hpY2ggbGVhZHMgdG8gYnVncy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGlbc3AtbGlzdGJveC1pdGVtXScsXG4gIHRlbXBsYXRlVXJsOiAnbGlzdGJveC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnc2FwcGhpcmUtbGlzdGJveF9faXRlbScsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1saXN0Ym94X19pdGVtLS1zZWxlY3RlZF0nOiAnc2VsZWN0ZWQnLFxuICAgICdbY2xhc3MuaXMtZGlzYWJsZWRdJzogJ29wdGlvbi5kaXNhYmxlZCcsXG4gIH0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgVXNlQ29tcG9uZW50U3R5bGVzLFxuICAgIFByZXNzZWREaXJlY3RpdmUsXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBGb2N1c2VkRGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ3NwRm9jdXNlZDogZm9jdXNlZCddLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExpc3Rib3hJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGZvY3VzZWQ/OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbiE6IE9wdGlvbkNvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBzaXplPzogJ2xhcmdlJyB8ICdtZWRpdW0nIHwgJ3NtYWxsJyA9ICdsYXJnZSc7XG5cbiAgY29uc3RydWN0b3IocHJlc3NlZERpcmVjdGl2ZTogUHJlc3NlZERpcmVjdGl2ZSkge1xuICAgIHByZXNzZWREaXJlY3RpdmUucHJlc3NlZENsYXNzID0gJ2lzLXByZXNzZWQnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2FwcGhpcmUtbGlzdGJveF9fY29udGVudFwiIF9zcFVzZUNvbXBvbmVudFN0eWxlcz5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2FwcGhpcmUtbGlzdGJveF9faWNvblwiXG4gICAgX3NwVXNlQ29tcG9uZW50U3R5bGVzXG4gICAgKm5nSWY9XCJvcHRpb24uaWNvbj8uY29udGVudFBvcnRhbCBhcyBpY29uXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKmNka1BvcnRhbE91dGxldD1cImljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1saXN0Ym94X190ZXh0LWNvbnRhaW5lclwiIF9zcFVzZUNvbXBvbmVudFN0eWxlcz5cbiAgICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtbGlzdGJveF9fcHJpbWFyeS10ZXh0XCIgX3NwVXNlQ29tcG9uZW50U3R5bGVzPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbi5wcmltYXJ5VGV4dFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpjZGtQb3J0YWxPdXRsZXQ9XCJvcHRpb24ucHJpbWFyeVRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2FwcGhpcmUtbGlzdGJveF9fc2Vjb25kYXJ5LXRleHRcIlxuICAgICAgX3NwVXNlQ29tcG9uZW50U3R5bGVzXG4gICAgICAqbmdJZj1cIm9wdGlvbi5zZWNvbmRhcnlUZXh0Py5jb250ZW50UG9ydGFsIGFzIHNlY29uZGFyeVRleHRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKmNka1BvcnRhbE91dGxldD1cInNlY29uZGFyeVRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1saXN0Ym94X19pY29uXCIgX3NwVXNlQ29tcG9uZW50U3R5bGVzICpuZ0lmPVwic2VsZWN0ZWRcIj5cbiAgICA8c3AtaWNvbiBuYW1lPVwiY2hlY2tNYXJrXCI+PC9zcC1pY29uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19