@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,301 @@
1
+ import { __decorate } from "tslib";
2
+ import { OverlayConfig, } from '@angular/cdk/overlay';
3
+ import { TemplatePortal } from '@angular/cdk/portal';
4
+ import { Directive, EventEmitter, HostBinding, HostListener, InjectionToken, Injector, Input, Output, } from '@angular/core';
5
+ import { merge, Subject } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import { flip, toConnectedPosition } from '../../common/placement';
8
+ import { CoerceBoolean } from '../../common/coerce-boolean.decorator';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/cdk/overlay";
11
+ export const POPOVER_TRIGGER = new InjectionToken('sp-popover-trigger');
12
+ // TODO(UC-2728): improve event handling when reusable press utility is added
13
+ export class PopoverTriggerDirective {
14
+ get getPopoverId() {
15
+ return this.overlayRef?.hostElement.querySelector('[role="dialog"]')?.id;
16
+ }
17
+ constructor(changeDetectorRef, cdkOverlay, viewContainerRef, elementRef, injector) {
18
+ this.changeDetectorRef = changeDetectorRef;
19
+ this.cdkOverlay = cdkOverlay;
20
+ this.viewContainerRef = viewContainerRef;
21
+ this.elementRef = elementRef;
22
+ this.injector = injector;
23
+ this.placement = 'bottom';
24
+ this.templateRef = null;
25
+ /**
26
+ * Whether the popover should not block interaction with background.
27
+ */
28
+ this.nonModal = false;
29
+ /**
30
+ * Whether the popover should be opened on press start.
31
+ */
32
+ this.openOnPressStart = false;
33
+ /**
34
+ * Whether the popover should be closed when the container is scrolled.
35
+ * @default false
36
+ */
37
+ this.closeOnScroll = false;
38
+ /**
39
+ * Can be used to disable toggling popover on clicks. Useful if `spPopoverTrigger`
40
+ * is applied on an element which doesn't support `disabled` property.
41
+ */
42
+ this.disabled = false;
43
+ /** Emits when the attached popover is requested to open */
44
+ this.opened = new EventEmitter();
45
+ /** Emits when the attached popover is requested to close */
46
+ this.closed = new EventEmitter();
47
+ /** Emits when this trigger is destroyed. */
48
+ this.destroyed = new Subject();
49
+ /** A reference to the overlay which manages the triggered menu */
50
+ this.overlayRef = null;
51
+ this.isBeingPressed = false;
52
+ }
53
+ ngOnDestroy() {
54
+ this.destroyOverlay();
55
+ this.destroyed.next();
56
+ this.destroyed.complete();
57
+ }
58
+ /** Toggle the attached popover. */
59
+ toggle() {
60
+ this.isOpen() ? this.close() : this.open();
61
+ }
62
+ /** Open the attached popover. */
63
+ open() {
64
+ if (!this.isOpen() && this.templateRef != null && !this.disabled) {
65
+ this.opened.next();
66
+ if (!this.overlayRef) {
67
+ this.overlayRef = this.cdkOverlay.create(this.getOverlayConfig());
68
+ this.overlayRef.updatePositionStrategy(this.getOverlayPositionStrategy());
69
+ this.overlayRef.attach(this.getContentPortal());
70
+ this.overlayRef.detachments().subscribe(() => {
71
+ this.closed.next();
72
+ this.changeDetectorRef.detectChanges();
73
+ });
74
+ this.overlayRef
75
+ .outsidePointerEvents()
76
+ .pipe(takeUntil(merge(this.closed, this.destroyed)))
77
+ .subscribe((event) => {
78
+ if (
79
+ // If popover is opened on press start, an outside pointer event
80
+ // is emitted as the mouse is being released, which would immediately
81
+ // close the popover. Probably a bug in @angular/cdk/overlay.
82
+ !(this.openOnPressStart && this.isBeingPressed) &&
83
+ !this.elementRef.nativeElement.contains(event.target)) {
84
+ this.close();
85
+ }
86
+ });
87
+ }
88
+ else {
89
+ this.overlayRef.attach(this.getContentPortal());
90
+ }
91
+ this.changeDetectorRef.detectChanges();
92
+ }
93
+ }
94
+ /** Close the opened popover. */
95
+ close() {
96
+ if (this.isOpen()) {
97
+ this.overlayRef?.detach();
98
+ }
99
+ }
100
+ /** Whether the popover is open. */
101
+ isOpen() {
102
+ return !!this.overlayRef?.hasAttached();
103
+ }
104
+ handleMousedown(event) {
105
+ this.isBeingPressed = true;
106
+ if (this.openOnPressStart) {
107
+ if (event.currentTarget instanceof HTMLElement) {
108
+ // We need to focus the trigger before opening. Otherwise, the focus restoration logic will
109
+ // be messed up, since the wrong element would have the focus when the popover is mounted.
110
+ event.currentTarget.focus();
111
+ event.preventDefault();
112
+ document.addEventListener('mouseup', () => {
113
+ setTimeout(() => {
114
+ this.isBeingPressed = false;
115
+ });
116
+ }, { once: true });
117
+ }
118
+ this.toggle();
119
+ }
120
+ }
121
+ handleClick() {
122
+ if (!this.openOnPressStart) {
123
+ this.toggle();
124
+ }
125
+ }
126
+ /**
127
+ * While onFocusout takes care of closing the popover when focus goes out, in the rare cases
128
+ * that there is no more focusable element between the trigger and the popover, the focus can
129
+ * go to the popover on pressing `Tab`. But the popover should be closed when tabbing on the
130
+ * trigger.
131
+ */
132
+ handleTab() {
133
+ this.close();
134
+ }
135
+ /**
136
+ * In some use cases (e.g. in searchable select) popover trigger grabs the focus, right after
137
+ * the popover is opened. That requires popover trigger to detect when focus goes out of it
138
+ * and close the popover.
139
+ * Note: we can't use `blur` event since it won't bubble up, and the focus can be on an element
140
+ * inside the trigger, but not the trigger itself.
141
+ *
142
+ */
143
+ onFocusout(event) {
144
+ if (event.relatedTarget === null &&
145
+ document.activeElement === event.target) {
146
+ // This happens on tab switch, without focus being actually moved.
147
+ return;
148
+ }
149
+ const focusReceivingElement = event.relatedTarget instanceof Element ? event.relatedTarget : null;
150
+ if (
151
+ // focus is going nowhere
152
+ !focusReceivingElement ||
153
+ // focus is going anywhere outside popover and popover trigger
154
+ !(this.elementRef?.nativeElement?.contains(focusReceivingElement) ||
155
+ // This is to not have the popover closed as soon as mouse is down on something inside the
156
+ // popover, if the focus is currently on the trigger
157
+ this.overlayRef?.overlayElement?.contains(focusReceivingElement))) {
158
+ this.close();
159
+ }
160
+ }
161
+ handleKeyDown(event) {
162
+ if (event.target === this.elementRef.nativeElement &&
163
+ !(this.elementRef.nativeElement instanceof HTMLButtonElement) &&
164
+ (event.key === 'Enter' || event.key === ' ')) {
165
+ event.preventDefault();
166
+ this.toggle();
167
+ }
168
+ }
169
+ destroyOverlay() {
170
+ if (this.overlayRef) {
171
+ this.overlayRef.dispose();
172
+ this.overlayRef = null;
173
+ }
174
+ }
175
+ /** Get the configuration object used to create the overlay. */
176
+ getOverlayConfig() {
177
+ return new OverlayConfig({
178
+ scrollStrategy: this.nonModal
179
+ ? this.closeOnScroll
180
+ ? this.cdkOverlay.scrollStrategies.close()
181
+ : this.cdkOverlay.scrollStrategies.reposition()
182
+ : this.cdkOverlay.scrollStrategies.block(),
183
+ // Including a transparent backdrop according to the latest decision of making popovers modal.
184
+ hasBackdrop: !this.nonModal,
185
+ backdropClass: 'cdk-overlay-transparent-backdrop',
186
+ });
187
+ }
188
+ getContentPortal() {
189
+ if (this.templateRef) {
190
+ return new TemplatePortal(this.templateRef, this.viewContainerRef, null, Injector.create({
191
+ providers: [{ provide: POPOVER_TRIGGER, useValue: this }],
192
+ parent: this.injector,
193
+ }));
194
+ }
195
+ return null;
196
+ }
197
+ getOverlayPositionStrategy() {
198
+ const placement = this.placement || 'bottom';
199
+ const hasHorizontallyCenteredAlignment = !placement.includes('start') && !placement.includes('end');
200
+ return (this.cdkOverlay
201
+ .position()
202
+ .flexibleConnectedTo(this.elementRef)
203
+ .withLockedPosition()
204
+ .withGrowAfterOpen()
205
+ /**
206
+ * Disabling pushing, to fix an issue in FlexibleConnectedPositionStrategy where the
207
+ * overlay's bottom grows past the top of the trigger element (aka origin).
208
+ * I.e., when the overlay is supposed to be placed above the trigger element, it can
209
+ * grow in height and cover the trigger element. This is more of an issue when the trigger
210
+ * element remains interactive after the overlay is opened, such as in searchable select.
211
+ * Note that this is not the case when the overlay is placed above the trigger element.
212
+ * In that case the overlay will not eat up all available viewport height, and is sized in
213
+ * a way that respects the preferred placement above the trigger element.
214
+ * Disabling push is not the ideal solution but prevents the issue.
215
+ * push is disabled only for overlays where the horizontal alignment is anchored to left
216
+ * or right of the trigger element, based on the fair assumption that the connected
217
+ * element is itself within the viewport, and we won't need to push the overlay horizontally
218
+ * to have it within the viewport. It should also be ok not to push vertically, since we
219
+ * allow for vertical flipping if needed.
220
+ **/
221
+ .withPush(hasHorizontallyCenteredAlignment)
222
+ .withPositions([
223
+ toConnectedPosition(placement),
224
+ toConnectedPosition(flip(placement)),
225
+ ])
226
+ .withViewportMargin(placement.includes('end') ? 0 : 6));
227
+ }
228
+ }
229
+ PopoverTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PopoverTriggerDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
230
+ PopoverTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: { placement: ["spPopoverPlacement", "placement"], templateRef: ["spPopoverTriggerFor", "templateRef"], nonModal: ["spPopoverNonModal", "nonModal"], openOnPressStart: ["spPopoverTriggerOpenOnPressStart", "openOnPressStart"], closeOnScroll: ["spPopoverTriggerCloseOnScroll", "closeOnScroll"], disabled: ["spPopoverTriggerDisabled", "disabled"] }, outputs: { opened: "spPopoverTriggerOpened", closed: "spPopoverTriggerClosed" }, host: { listeners: { "mousedown": "handleMousedown($event)", "click": "handleClick($event)", "keydown.tab": "handleTab()", "focusout": "onFocusout($event)", "keydown": "handleKeyDown($event)" }, properties: { "class.is-active": "isOpen()", "attr.aria-expanded": "isOpen()", "attr.aria-controls": "this.getPopoverId" } }, providers: [
231
+ { provide: POPOVER_TRIGGER, useExisting: PopoverTriggerDirective },
232
+ ], exportAs: ["spPopoverTrigger"], ngImport: i0 });
233
+ __decorate([
234
+ CoerceBoolean
235
+ ], PopoverTriggerDirective.prototype, "nonModal", void 0);
236
+ __decorate([
237
+ CoerceBoolean
238
+ ], PopoverTriggerDirective.prototype, "openOnPressStart", void 0);
239
+ __decorate([
240
+ CoerceBoolean
241
+ ], PopoverTriggerDirective.prototype, "closeOnScroll", void 0);
242
+ __decorate([
243
+ CoerceBoolean
244
+ ], PopoverTriggerDirective.prototype, "disabled", void 0);
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
246
+ type: Directive,
247
+ args: [{
248
+ selector: '[spPopoverTriggerFor]',
249
+ providers: [
250
+ { provide: POPOVER_TRIGGER, useExisting: PopoverTriggerDirective },
251
+ ],
252
+ host: {
253
+ '[class.is-active]': 'isOpen()',
254
+ '[attr.aria-expanded]': 'isOpen()',
255
+ },
256
+ exportAs: 'spPopoverTrigger',
257
+ }]
258
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { placement: [{
259
+ type: Input,
260
+ args: ['spPopoverPlacement']
261
+ }], templateRef: [{
262
+ type: Input,
263
+ args: ['spPopoverTriggerFor']
264
+ }], nonModal: [{
265
+ type: Input,
266
+ args: ['spPopoverNonModal']
267
+ }], openOnPressStart: [{
268
+ type: Input,
269
+ args: ['spPopoverTriggerOpenOnPressStart']
270
+ }], closeOnScroll: [{
271
+ type: Input,
272
+ args: ['spPopoverTriggerCloseOnScroll']
273
+ }], disabled: [{
274
+ type: Input,
275
+ args: ['spPopoverTriggerDisabled']
276
+ }], opened: [{
277
+ type: Output,
278
+ args: ['spPopoverTriggerOpened']
279
+ }], closed: [{
280
+ type: Output,
281
+ args: ['spPopoverTriggerClosed']
282
+ }], getPopoverId: [{
283
+ type: HostBinding,
284
+ args: ['attr.aria-controls']
285
+ }], handleMousedown: [{
286
+ type: HostListener,
287
+ args: ['mousedown', ['$event']]
288
+ }], handleClick: [{
289
+ type: HostListener,
290
+ args: ['click', ['$event']]
291
+ }], handleTab: [{
292
+ type: HostListener,
293
+ args: ['keydown.tab']
294
+ }], onFocusout: [{
295
+ type: HostListener,
296
+ args: ['focusout', ['$event']]
297
+ }], handleKeyDown: [{
298
+ type: HostListener,
299
+ args: ['keydown', ['$event']]
300
+ }] } });
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcG9wb3Zlci9zcmMvcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLGFBQWEsR0FFZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBYSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBUXRFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDL0Msb0JBQW9CLENBQ3JCLENBQUM7QUFFRiw2RUFBNkU7QUFhN0UsTUFBTSxPQUFPLHVCQUF1QjtJQXFEbEMsSUFDVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRCxZQUNVLGlCQUFvQyxFQUNwQyxVQUFtQixFQUNuQixnQkFBa0MsRUFDbkMsVUFBbUMsRUFDbEMsUUFBa0I7UUFKbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQ25CLHFCQUFn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QUFLO3VCQUFDLHFCQUFxQjtnQkFRNUIsUUFBUTtzQkFGUCxLQUFLO3VCQUFDLG1CQUFtQjtnQkFTMUIsZ0JBQWdCO3NCQUZmLEtBQUs7dUJBQUMsa0NBQWtDO2dCQVV6QyxhQUFhO3NCQUZaLEtBQUs7dUJBQUMsK0JBQStCO2dCQVV0QyxRQUFRO3NCQUZQLEtBQUs7dUJBQUMsMEJBQTBCO2dCQU14QixNQUFNO3NCQURkLE1BQU07dUJBQUMsd0JBQXdCO2dCQUt2QixNQUFNO3NCQURkLE1BQU07dUJBQUMsd0JBQXdCO2dCQVlyQixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLG9CQUFvQjtnQkF5RXpCLGVBQWU7c0JBRHRCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdCN0IsV0FBVztzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBY3pCLFNBQVM7c0JBRGhCLFlBQVk7dUJBQUMsYUFBYTtnQkFjbkIsVUFBVTtzQkFEakIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkI1QixhQUFhO3NCQURwQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheUNvbmZpZyxcbiAgT3ZlcmxheVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZmxpcCwgUGxhY2VtZW50LCB0b0Nvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uL3BsYWNlbWVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29lcmNlQm9vbGVhbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb2VyY2UtYm9vbGVhbi5kZWNvcmF0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvcG92ZXJUcmlnZ2VyIHtcbiAgdG9nZ2xlKCk6IHZvaWQ7XG4gIG9wZW4oKTogdm9pZDtcbiAgY2xvc2UoKTogdm9pZDtcbiAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG59XG5leHBvcnQgY29uc3QgUE9QT1ZFUl9UUklHR0VSID0gbmV3IEluamVjdGlvblRva2VuPFBvcG92ZXJUcmlnZ2VyPihcbiAgJ3NwLXBvcG92ZXItdHJpZ2dlcidcbik7XG5cbi8vIFRPRE8oVUMtMjcyOCk6IGltcHJvdmUgZXZlbnQgaGFuZGxpbmcgd2hlbiByZXVzYWJsZSBwcmVzcyB1dGlsaXR5IGlzIGFkZGVkXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzcFBvcG92ZXJUcmlnZ2VyRm9yXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogUE9QT1ZFUl9UUklHR0VSLCB1c2VFeGlzdGluZzogUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaXMtYWN0aXZlXSc6ICdpc09wZW4oKScsXG4gICAgJ1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ2lzT3BlbigpJyxcbiAgfSxcbiAgZXhwb3J0QXM6ICdzcFBvcG92ZXJUcmlnZ2VyJyxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBQb3BvdmVyVHJpZ2dlciB7XG4gIEBJbnB1dCgnc3BQb3BvdmVyUGxhY2VtZW50JylcbiAgcHVibGljIHBsYWNlbWVudDogUGxhY2VtZW50ID0gJ2JvdHRvbSc7XG5cbiAgQElucHV0KCdzcFBvcG92ZXJUcmlnZ2VyRm9yJylcbiAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIG5vdCBibG9jayBpbnRlcmFjdGlvbiB3aXRoIGJhY2tncm91bmQuXG4gICAqL1xuICBASW5wdXQoJ3NwUG9wb3Zlck5vbk1vZGFsJylcbiAgQENvZXJjZUJvb2xlYW5cbiAgbm9uTW9kYWw6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSBvcGVuZWQgb24gcHJlc3Mgc3RhcnQuXG4gICAqL1xuICBASW5wdXQoJ3NwUG9wb3ZlclRyaWdnZXJPcGVuT25QcmVzc1N0YXJ0JylcbiAgQENvZXJjZUJvb2xlYW5cbiAgb3Blbk9uUHJlc3NTdGFydDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIHRoZSBjb250YWluZXIgaXMgc2Nyb2xsZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoJ3NwUG9wb3ZlclRyaWdnZXJDbG9zZU9uU2Nyb2xsJylcbiAgQENvZXJjZUJvb2xlYW5cbiAgY2xvc2VPblNjcm9sbDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENhbiBiZSB1c2VkIHRvIGRpc2FibGUgdG9nZ2xpbmcgcG9wb3ZlciBvbiBjbGlja3MuIFVzZWZ1bCBpZiBgc3BQb3BvdmVyVHJpZ2dlcmBcbiAgICogaXMgYXBwbGllZCBvbiBhbiBlbGVtZW50IHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydCBgZGlzYWJsZWRgIHByb3BlcnR5LlxuICAgKi9cbiAgQElucHV0KCdzcFBvcG92ZXJUcmlnZ2VyRGlzYWJsZWQnKVxuICBAQ29lcmNlQm9vbGVhblxuICBkaXNhYmxlZDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGF0dGFjaGVkIHBvcG92ZXIgaXMgcmVxdWVzdGVkIHRvIG9wZW4gKi9cbiAgQE91dHB1dCgnc3BQb3BvdmVyVHJpZ2dlck9wZW5lZCcpXG4gIHJlYWRvbmx5IG9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBhdHRhY2hlZCBwb3BvdmVyIGlzIHJlcXVlc3RlZCB0byBjbG9zZSAqL1xuICBAT3V0cHV0KCdzcFBvcG92ZXJUcmlnZ2VyQ2xvc2VkJylcbiAgcmVhZG9ubHkgY2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhpcyB0cmlnZ2VyIGlzIGRlc3Ryb3llZC4gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3llZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqIEEgcmVmZXJlbmNlIHRvIHRoZSBvdmVybGF5IHdoaWNoIG1hbmFnZXMgdGhlIHRyaWdnZXJlZCBtZW51ICovXG4gIHByb3RlY3RlZCBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBpc0JlaW5nUHJlc3NlZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWNvbnRyb2xzJylcbiAgcHVibGljIGdldCBnZXRQb3BvdmVySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZj8uaG9zdEVsZW1lbnQucXVlcnlTZWxlY3RvcignW3JvbGU9XCJkaWFsb2dcIl0nKT8uaWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGNka092ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSBhdHRhY2hlZCBwb3BvdmVyLiAqL1xuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4oKSA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgLyoqIE9wZW4gdGhlIGF0dGFjaGVkIHBvcG92ZXIuICovXG4gIG9wZW4oKSB7XG4gICAgaWYgKCF0aGlzLmlzT3BlbigpICYmIHRoaXMudGVtcGxhdGVSZWYgIT0gbnVsbCAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcGVuZWQubmV4dCgpO1xuICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jZGtPdmVybGF5LmNyZWF0ZSh0aGlzLmdldE92ZXJsYXlDb25maWcoKSk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KFxuICAgICAgICAgIHRoaXMuZ2V0T3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3koKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMuZ2V0Q29udGVudFBvcnRhbCgpKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlZC5uZXh0KCk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgICAub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbChtZXJnZSh0aGlzLmNsb3NlZCwgdGhpcy5kZXN0cm95ZWQpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAvLyBJZiBwb3BvdmVyIGlzIG9wZW5lZCBvbiBwcmVzcyBzdGFydCwgYW4gb3V0c2lkZSBwb2ludGVyIGV2ZW50XG4gICAgICAgICAgICAgIC8vIGlzIGVtaXR0ZWQgYXMgdGhlIG1vdXNlIGlzIGJlaW5nIHJlbGVhc2VkLCB3aGljaCB3b3VsZCBpbW1lZGlhdGVseVxuICAgICAgICAgICAgICAvLyBjbG9zZSB0aGUgcG9wb3Zlci4gUHJvYmFibHkgYSBidWcgaW4gQGFuZ3VsYXIvY2RrL292ZXJsYXkuXG4gICAgICAgICAgICAgICEodGhpcy5vcGVuT25QcmVzc1N0YXJ0ICYmIHRoaXMuaXNCZWluZ1ByZXNzZWQpICYmXG4gICAgICAgICAgICAgICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMuZ2V0Q29udGVudFBvcnRhbCgpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZSB0aGUgb3BlbmVkIHBvcG92ZXIuICovXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIGlzIG9wZW4uICovXG4gIGlzT3BlbigpIHtcbiAgICByZXR1cm4gISF0aGlzLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZU1vdXNlZG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaXNCZWluZ1ByZXNzZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLm9wZW5PblByZXNzU3RhcnQpIHtcbiAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBmb2N1cyB0aGUgdHJpZ2dlciBiZWZvcmUgb3BlbmluZy4gT3RoZXJ3aXNlLCB0aGUgZm9jdXMgcmVzdG9yYXRpb24gbG9naWMgd2lsbFxuICAgICAgICAvLyBiZSBtZXNzZWQgdXAsIHNpbmNlIHRoZSB3cm9uZyBlbGVtZW50IHdvdWxkIGhhdmUgdGhlIGZvY3VzIHdoZW4gdGhlIHBvcG92ZXIgaXMgbW91bnRlZC5cbiAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5mb2N1cygpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICdtb3VzZXVwJyxcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pc0JlaW5nUHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IG9uY2U6IHRydWUgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLm9wZW5PblByZXNzU3RhcnQpIHtcbiAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoaWxlIG9uRm9jdXNvdXQgdGFrZXMgY2FyZSBvZiBjbG9zaW5nIHRoZSBwb3BvdmVyIHdoZW4gZm9jdXMgZ29lcyBvdXQsIGluIHRoZSByYXJlIGNhc2VzXG4gICAqIHRoYXQgdGhlcmUgaXMgbm8gbW9yZSBmb2N1c2FibGUgZWxlbWVudCBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZCB0aGUgcG9wb3ZlciwgdGhlIGZvY3VzIGNhblxuICAgKiBnbyB0byB0aGUgcG9wb3ZlciBvbiBwcmVzc2luZyBgVGFiYC4gQnV0IHRoZSBwb3BvdmVyIHNob3VsZCBiZSBjbG9zZWQgd2hlbiB0YWJiaW5nIG9uIHRoZVxuICAgKiB0cmlnZ2VyLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi50YWInKVxuICBwcml2YXRlIGhhbmRsZVRhYigpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW4gc29tZSB1c2UgY2FzZXMgKGUuZy4gaW4gc2VhcmNoYWJsZSBzZWxlY3QpIHBvcG92ZXIgdHJpZ2dlciBncmFicyB0aGUgZm9jdXMsIHJpZ2h0IGFmdGVyXG4gICAqIHRoZSBwb3BvdmVyIGlzIG9wZW5lZC4gVGhhdCByZXF1aXJlcyBwb3BvdmVyIHRyaWdnZXIgdG8gZGV0ZWN0IHdoZW4gZm9jdXMgZ29lcyBvdXQgb2YgaXRcbiAgICogYW5kIGNsb3NlIHRoZSBwb3BvdmVyLlxuICAgKiBOb3RlOiB3ZSBjYW4ndCB1c2UgYGJsdXJgIGV2ZW50IHNpbmNlIGl0IHdvbid0IGJ1YmJsZSB1cCwgYW5kIHRoZSBmb2N1cyBjYW4gYmUgb24gYW4gZWxlbWVudFxuICAgKiBpbnNpZGUgdGhlIHRyaWdnZXIsIGJ1dCBub3QgdGhlIHRyaWdnZXIgaXRzZWxmLlxuICAgKlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uRm9jdXNvdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID09PSBudWxsICYmXG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXRcbiAgICApIHtcbiAgICAgIC8vIFRoaXMgaGFwcGVucyBvbiB0YWIgc3dpdGNoLCB3aXRob3V0IGZvY3VzIGJlaW5nIGFjdHVhbGx5IG1vdmVkLlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb2N1c1JlY2VpdmluZ0VsZW1lbnQgPVxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgPyBldmVudC5yZWxhdGVkVGFyZ2V0IDogbnVsbDtcbiAgICBpZiAoXG4gICAgICAvLyBmb2N1cyBpcyBnb2luZyBub3doZXJlXG4gICAgICAhZm9jdXNSZWNlaXZpbmdFbGVtZW50IHx8XG4gICAgICAvLyBmb2N1cyBpcyBnb2luZyBhbnl3aGVyZSBvdXRzaWRlIHBvcG92ZXIgYW5kIHBvcG92ZXIgdHJpZ2dlclxuICAgICAgIShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyhmb2N1c1JlY2VpdmluZ0VsZW1lbnQpIHx8XG4gICAgICAgIC8vIFRoaXMgaXMgdG8gbm90IGhhdmUgdGhlIHBvcG92ZXIgY2xvc2VkIGFzIHNvb24gYXMgbW91c2UgaXMgZG93biBvbiBzb21ldGhpbmcgaW5zaWRlIHRoZVxuICAgICAgICAvLyBwb3BvdmVyLCBpZiB0aGUgZm9jdXMgaXMgY3VycmVudGx5IG9uIHRoZSB0cmlnZ2VyXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQ/LmNvbnRhaW5zKGZvY3VzUmVjZWl2aW5nRWxlbWVudClcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAmJlxuICAgICAgISh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSAmJlxuICAgICAgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJylcbiAgICApIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldCB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QgdXNlZCB0byBjcmVhdGUgdGhlIG92ZXJsYXkuICovXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZygpIHtcbiAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMubm9uTW9kYWxcbiAgICAgICAgPyB0aGlzLmNsb3NlT25TY3JvbGxcbiAgICAgICAgICA/IHRoaXMuY2RrT3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKClcbiAgICAgICAgICA6IHRoaXMuY2RrT3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgICAgICA6IHRoaXMuY2RrT3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksIC8vIHRvIG1hdGNoIHdoYXQgd2UgaGF2ZSBpbiByZWFjdFxuXG4gICAgICAvLyBJbmNsdWRpbmcgYSB0cmFuc3BhcmVudCBiYWNrZHJvcCBhY2NvcmRpbmcgdG8gdGhlIGxhdGVzdCBkZWNpc2lvbiBvZiBtYWtpbmcgcG9wb3ZlcnMgbW9kYWwuXG4gICAgICBoYXNCYWNrZHJvcDogIXRoaXMubm9uTW9kYWwsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgZ2V0Q29udGVudFBvcnRhbCgpOiBUZW1wbGF0ZVBvcnRhbCB8IG51bGwge1xuICAgIGlmICh0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICByZXR1cm4gbmV3IFRlbXBsYXRlUG9ydGFsKFxuICAgICAgICB0aGlzLnRlbXBsYXRlUmVmLFxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIG51bGwsXG4gICAgICAgIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBQT1BPVkVSX1RSSUdHRVIsIHVzZVZhbHVlOiB0aGlzIH1dLFxuICAgICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5UG9zaXRpb25TdHJhdGVneSgpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIGNvbnN0IHBsYWNlbWVudCA9IHRoaXMucGxhY2VtZW50IHx8ICdib3R0b20nO1xuICAgIGNvbnN0IGhhc0hvcml6b250YWxseUNlbnRlcmVkQWxpZ25tZW50ID1cbiAgICAgICFwbGFjZW1lbnQuaW5jbHVkZXMoJ3N0YXJ0JykgJiYgIXBsYWNlbWVudC5pbmNsdWRlcygnZW5kJyk7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY2RrT3ZlcmxheVxuICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpXG4gICAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24oKVxuICAgICAgICAud2l0aEdyb3dBZnRlck9wZW4oKVxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzYWJsaW5nIHB1c2hpbmcsIHRvIGZpeCBhbiBpc3N1ZSBpbiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kgd2hlcmUgdGhlXG4gICAgICAgICAqIG92ZXJsYXkncyBib3R0b20gZ3Jvd3MgcGFzdCB0aGUgdG9wIG9mIHRoZSB0cmlnZ2VyIGVsZW1lbnQgKGFrYSBvcmlnaW4pLlxuICAgICAgICAgKiBJLmUuLCB3aGVuIHRoZSBvdmVybGF5IGlzIHN1cHBvc2VkIHRvIGJlIHBsYWNlZCBhYm92ZSB0aGUgdHJpZ2dlciBlbGVtZW50LCBpdCBjYW5cbiAgICAgICAgICogZ3JvdyBpbiBoZWlnaHQgYW5kIGNvdmVyIHRoZSB0cmlnZ2VyIGVsZW1lbnQuIFRoaXMgaXMgbW9yZSBvZiBhbiBpc3N1ZSB3aGVuIHRoZSB0cmlnZ2VyXG4gICAgICAgICAqIGVsZW1lbnQgcmVtYWlucyBpbnRlcmFjdGl2ZSBhZnRlciB0aGUgb3ZlcmxheSBpcyBvcGVuZWQsIHN1Y2ggYXMgaW4gc2VhcmNoYWJsZSBzZWxlY3QuXG4gICAgICAgICAqIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgY2FzZSB3aGVuIHRoZSBvdmVybGF5IGlzIHBsYWNlZCBhYm92ZSB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICAgICAgICAgKiBJbiB0aGF0IGNhc2UgdGhlIG92ZXJsYXkgd2lsbCBub3QgZWF0IHVwIGFsbCBhdmFpbGFibGUgdmlld3BvcnQgaGVpZ2h0LCBhbmQgaXMgc2l6ZWQgaW5cbiAgICAgICAgICogYSB3YXkgdGhhdCByZXNwZWN0cyB0aGUgcHJlZmVycmVkIHBsYWNlbWVudCBhYm92ZSB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICAgICAgICAgKiBEaXNhYmxpbmcgcHVzaCBpcyBub3QgdGhlIGlkZWFsIHNvbHV0aW9uIGJ1dCBwcmV2ZW50cyB0aGUgaXNzdWUuXG4gICAgICAgICAqIHB1c2ggaXMgZGlzYWJsZWQgb25seSBmb3Igb3ZlcmxheXMgd2hlcmUgdGhlIGhvcml6b250YWwgYWxpZ25tZW50IGlzIGFuY2hvcmVkIHRvIGxlZnRcbiAgICAgICAgICogb3IgcmlnaHQgb2YgdGhlIHRyaWdnZXIgZWxlbWVudCwgYmFzZWQgb24gdGhlIGZhaXIgYXNzdW1wdGlvbiB0aGF0IHRoZSBjb25uZWN0ZWRcbiAgICAgICAgICogZWxlbWVudCBpcyBpdHNlbGYgd2l0aGluIHRoZSB2aWV3cG9ydCwgYW5kIHdlIHdvbid0IG5lZWQgdG8gcHVzaCB0aGUgb3ZlcmxheSBob3Jpem9udGFsbHlcbiAgICAgICAgICogdG8gaGF2ZSBpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LiBJdCBzaG91bGQgYWxzbyBiZSBvayBub3QgdG8gcHVzaCB2ZXJ0aWNhbGx5LCBzaW5jZSB3ZVxuICAgICAgICAgKiBhbGxvdyBmb3IgdmVydGljYWwgZmxpcHBpbmcgaWYgbmVlZGVkLlxuICAgICAgICAgKiovXG4gICAgICAgIC53aXRoUHVzaChoYXNIb3Jpem9udGFsbHlDZW50ZXJlZEFsaWdubWVudClcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgIHRvQ29ubmVjdGVkUG9zaXRpb24ocGxhY2VtZW50KSxcbiAgICAgICAgICB0b0Nvbm5lY3RlZFBvc2l0aW9uKGZsaXAocGxhY2VtZW50KSksXG4gICAgICAgIF0pXG4gICAgICAgIC53aXRoVmlld3BvcnRNYXJnaW4ocGxhY2VtZW50LmluY2x1ZGVzKCdlbmQnKSA/IDAgOiA2KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,88 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, ContentChild, ElementRef, HostListener, Inject, Input, Optional, ViewChild, } from '@angular/core';
3
+ import { hasModifierKey } from '@angular/cdk/keycodes';
4
+ import { ThemeCheckDirective } from '../../theme/src/theme-check.directive';
5
+ import { CoerceBoolean } from '../../common/coerce-boolean.decorator';
6
+ import { POPOVER_TRIGGER } from './popover-trigger.directive';
7
+ import { PopoverTitleDirective } from './popover-title.directive';
8
+ import { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../theme/src/theme-check.directive";
11
+ import * as i2 from "../../common/sapphire-view-encapsulation";
12
+ import * as i3 from "@angular/cdk/a11y";
13
+ /**
14
+ * A generic popover component which lets you render arbitrary
15
+ * content in a popover overlay which is linked to a trigger, and is accessible
16
+ * as
17
+ * [dialog](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role).
18
+ */
19
+ export class PopoverComponent {
20
+ constructor(trigger) {
21
+ this.trigger = trigger;
22
+ this.ID = `sp-popover-${Math.floor(Math.random() * 1000000000)}`;
23
+ /**
24
+ * Keeps track of if the content is focused
25
+ */
26
+ this.contentFocused = false;
27
+ }
28
+ ngAfterViewInit() {
29
+ if (!this.contentFocused) {
30
+ this.contentWrapper?.nativeElement.focus();
31
+ }
32
+ }
33
+ handleEscape(event) {
34
+ if (!hasModifierKey(event)) {
35
+ event.preventDefault();
36
+ this.trigger?.close();
37
+ }
38
+ }
39
+ _contentFocusChanged(origin) {
40
+ this.contentFocused = origin != null;
41
+ if (!this.contentFocused) {
42
+ // cdkFocusChange doesn't give access to the native event, so we can't figure out where the
43
+ // focus is going. So we asynchronously check if the focus is outside the trigger and close
44
+ // in that case.
45
+ setTimeout(() => {
46
+ if (!this.trigger?.elementRef.nativeElement.contains(document.activeElement)) {
47
+ this.trigger?.close();
48
+ }
49
+ });
50
+ }
51
+ }
52
+ }
53
+ PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PopoverComponent, deps: [{ token: POPOVER_TRIGGER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
54
+ PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: PopoverComponent, selector: "sp-popover", inputs: { noPadding: "noPadding", noMaxWidth: "noMaxWidth" }, host: { attributes: { "role": "presentation" }, listeners: { "keydown.Escape": "handleEscape($event)" }, properties: { "class.sapphire-popover": "true", "class.sapphire-popover--padded": "!noPadding", "class.sapphire-popover--max-width": "!noMaxWidth" } }, queries: [{ propertyName: "title", first: true, predicate: PopoverTitleDirective, descendants: true }], viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true, read: ElementRef }], hostDirectives: [{ directive: i1.ThemeCheckDirective }, { directive: i2.UseComponentStylesOnHost }], ngImport: i0, template: "<!--\nNOTE: cdkTrapFocus is required for cdkTrapFocusAutoCapture to work, which would be similar to\n <FocusScope autoFocus /> in react-aria. It does NOT prevent focus from going out of popover,\n which is good, as we want the popover to close on blur.\n -->\n<div\n #contentWrapper\n [id]=\"ID\"\n role=\"dialog\"\n tabindex=\"-1\"\n cdkMonitorSubtreeFocus\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n class=\"dialog\"\n [attr.aria-labelledby]=\"title?.ID\"\n (cdkFocusChange)=\"_contentFocusChanged($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sapphire-popover{box-sizing:border-box;background-color:var(--sapphire-popover-color-background);box-shadow:var(--sapphire-popover-shadow);animation:fade-in var(--sapphire-popover-time-transition) ease-in-out;border-radius:var(--sapphire-popover-size-radius);overflow:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-popover--padded{padding:var(--sapphire-popover-size-spacing-padded)}.sapphire-popover--max-width{max-width:var(--sapphire-popover-size-max-width)}.dialog{outline:none}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }] });
55
+ __decorate([
56
+ CoerceBoolean
57
+ ], PopoverComponent.prototype, "noPadding", void 0);
58
+ __decorate([
59
+ CoerceBoolean
60
+ ], PopoverComponent.prototype, "noMaxWidth", void 0);
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PopoverComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'sp-popover', host: {
64
+ '[class.sapphire-popover]': 'true',
65
+ '[class.sapphire-popover--padded]': '!noPadding',
66
+ '[class.sapphire-popover--max-width]': '!noMaxWidth',
67
+ role: 'presentation',
68
+ }, hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost], template: "<!--\nNOTE: cdkTrapFocus is required for cdkTrapFocusAutoCapture to work, which would be similar to\n <FocusScope autoFocus /> in react-aria. It does NOT prevent focus from going out of popover,\n which is good, as we want the popover to close on blur.\n -->\n<div\n #contentWrapper\n [id]=\"ID\"\n role=\"dialog\"\n tabindex=\"-1\"\n cdkMonitorSubtreeFocus\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n class=\"dialog\"\n [attr.aria-labelledby]=\"title?.ID\"\n (cdkFocusChange)=\"_contentFocusChanged($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sapphire-popover{box-sizing:border-box;background-color:var(--sapphire-popover-color-background);box-shadow:var(--sapphire-popover-shadow);animation:fade-in var(--sapphire-popover-time-transition) ease-in-out;border-radius:var(--sapphire-popover-size-radius);overflow:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-popover--padded{padding:var(--sapphire-popover-size-spacing-padded)}.sapphire-popover--max-width{max-width:var(--sapphire-popover-size-max-width)}.dialog{outline:none}\n"] }]
69
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
70
+ type: Optional
71
+ }, {
72
+ type: Inject,
73
+ args: [POPOVER_TRIGGER]
74
+ }] }]; }, propDecorators: { noPadding: [{
75
+ type: Input
76
+ }], noMaxWidth: [{
77
+ type: Input
78
+ }], title: [{
79
+ type: ContentChild,
80
+ args: [PopoverTitleDirective]
81
+ }], contentWrapper: [{
82
+ type: ViewChild,
83
+ args: ['contentWrapper', { read: ElementRef }]
84
+ }], handleEscape: [{
85
+ type: HostListener,
86
+ args: ['keydown.Escape', ['$event']]
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BvcG92ZXIvc3JjL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9wb3BvdmVyL3NyYy9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBRXBGOzs7OztHQUtHO0FBYUgsTUFBTSxPQUFPLGdCQUFnQjtJQXFCM0IsWUFDK0MsT0FBd0I7UUFBeEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFSdkUsT0FBRSxHQUFXLGNBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUVwRTs7V0FFRztRQUNLLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBSTVCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBR08sWUFBWSxDQUFDLEtBQW9CO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBbUI7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLDJGQUEyRjtZQUMzRiwyRkFBMkY7WUFDM0YsZ0JBQWdCO1lBQ2hCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFDRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQzlDLFFBQVEsQ0FBQyxhQUFhLENBQ3ZCLEVBQ0Q7b0JBQ0EsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztpQkFDdkI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7NkdBdkRVLGdCQUFnQixrQkFzQkwsZUFBZTtpR0F0QjFCLGdCQUFnQixvWkFTYixxQkFBcUIsNklBRUUsVUFBVSxrSUNsRGpELG1qQkFtQkE7QUR1QkU7SUFEQyxhQUFhO21EQUNVO0FBSXhCO0lBREMsYUFBYTtvREFDVzsyRkFQZCxnQkFBZ0I7a0JBWjVCLFNBQVM7K0JBQ0UsWUFBWSxRQUdoQjt3QkFDSiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyxrQ0FBa0MsRUFBRSxZQUFZO3dCQUNoRCxxQ0FBcUMsRUFBRSxhQUFhO3dCQUNwRCxJQUFJLEVBQUUsY0FBYztxQkFDckIsa0JBQ2UsQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQzs7MEJBd0I1RCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7NENBbkJyQyxTQUFTO3NCQUZSLEtBQUs7Z0JBTU4sVUFBVTtzQkFGVCxLQUFLO2dCQUkrQixLQUFLO3NCQUF6QyxZQUFZO3VCQUFDLHFCQUFxQjtnQkFHM0IsY0FBYztzQkFEckIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBcUJ6QyxZQUFZO3NCQURuQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBoYXNNb2RpZmllcktleSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IFRoZW1lQ2hlY2tEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90aGVtZS9zcmMvdGhlbWUtY2hlY2suZGlyZWN0aXZlJztcbmltcG9ydCB7IENvZXJjZUJvb2xlYW4gfSBmcm9tICcuLi8uLi9jb21tb24vY29lcmNlLWJvb2xlYW4uZGVjb3JhdG9yJztcbmltcG9ydCB7IFBPUE9WRVJfVFJJR0dFUiwgUG9wb3ZlclRyaWdnZXIgfSBmcm9tICcuL3BvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9wb3ZlclRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLXRpdGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcblxuLyoqXG4gKiBBIGdlbmVyaWMgcG9wb3ZlciBjb21wb25lbnQgd2hpY2ggbGV0cyB5b3UgcmVuZGVyIGFyYml0cmFyeVxuICogY29udGVudCBpbiBhIHBvcG92ZXIgb3ZlcmxheSB3aGljaCBpcyBsaW5rZWQgdG8gYSB0cmlnZ2VyLCBhbmQgaXMgYWNjZXNzaWJsZVxuICogYXNcbiAqIFtkaWFsb2ddKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FjY2Vzc2liaWxpdHkvQVJJQS9Sb2xlcy9kaWFsb2dfcm9sZSkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcG92ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muc2FwcGhpcmUtcG9wb3Zlcl0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1wb3BvdmVyLS1wYWRkZWRdJzogJyFub1BhZGRpbmcnLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtcG9wb3Zlci0tbWF4LXdpZHRoXSc6ICchbm9NYXhXaWR0aCcsXG4gICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXG4gIH0sXG4gIGhvc3REaXJlY3RpdmVzOiBbVGhlbWVDaGVja0RpcmVjdGl2ZSwgVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0XSxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKVxuICBAQ29lcmNlQm9vbGVhblxuICBub1BhZGRpbmc6IEJvb2xlYW5JbnB1dDtcblxuICBASW5wdXQoKVxuICBAQ29lcmNlQm9vbGVhblxuICBub01heFdpZHRoOiBCb29sZWFuSW5wdXQ7XG5cbiAgQENvbnRlbnRDaGlsZChQb3BvdmVyVGl0bGVEaXJlY3RpdmUpIHRpdGxlPzogUG9wb3ZlclRpdGxlRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRXcmFwcGVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByaXZhdGUgY29udGVudFdyYXBwZXI/OiBFbGVtZW50UmVmO1xuXG4gIElEOiBzdHJpbmcgPSBgc3AtcG9wb3Zlci0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDApfWA7XG5cbiAgLyoqXG4gICAqIEtlZXBzIHRyYWNrIG9mIGlmIHRoZSBjb250ZW50IGlzIGZvY3VzZWRcbiAgICovXG4gIHByaXZhdGUgY29udGVudEZvY3VzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBPUE9WRVJfVFJJR0dFUikgcHJpdmF0ZSB0cmlnZ2VyPzogUG9wb3ZlclRyaWdnZXJcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udGVudEZvY3VzZWQpIHtcbiAgICAgIHRoaXMuY29udGVudFdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLkVzY2FwZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgaGFuZGxlRXNjYXBlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKCFoYXNNb2RpZmllcktleShldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnRyaWdnZXI/LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgX2NvbnRlbnRGb2N1c0NoYW5nZWQob3JpZ2luOiBGb2N1c09yaWdpbikge1xuICAgIHRoaXMuY29udGVudEZvY3VzZWQgPSBvcmlnaW4gIT0gbnVsbDtcbiAgICBpZiAoIXRoaXMuY29udGVudEZvY3VzZWQpIHtcbiAgICAgIC8vIGNka0ZvY3VzQ2hhbmdlIGRvZXNuJ3QgZ2l2ZSBhY2Nlc3MgdG8gdGhlIG5hdGl2ZSBldmVudCwgc28gd2UgY2FuJ3QgZmlndXJlIG91dCB3aGVyZSB0aGVcbiAgICAgIC8vIGZvY3VzIGlzIGdvaW5nLiBTbyB3ZSBhc3luY2hyb25vdXNseSBjaGVjayBpZiB0aGUgZm9jdXMgaXMgb3V0c2lkZSB0aGUgdHJpZ2dlciBhbmQgY2xvc2VcbiAgICAgIC8vIGluIHRoYXQgY2FzZS5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMudHJpZ2dlcj8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKFxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyPy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS1cbk5PVEU6IGNka1RyYXBGb2N1cyBpcyByZXF1aXJlZCBmb3IgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgdG8gd29yaywgd2hpY2ggd291bGQgYmUgc2ltaWxhciB0b1xuIDxGb2N1c1Njb3BlIGF1dG9Gb2N1cyAvPiBpbiByZWFjdC1hcmlhLiBJdCBkb2VzIE5PVCBwcmV2ZW50IGZvY3VzIGZyb20gZ29pbmcgb3V0IG9mIHBvcG92ZXIsXG4gd2hpY2ggaXMgZ29vZCwgYXMgd2Ugd2FudCB0aGUgcG9wb3ZlciB0byBjbG9zZSBvbiBibHVyLlxuICAtLT5cbjxkaXZcbiAgI2NvbnRlbnRXcmFwcGVyXG4gIFtpZF09XCJJRFwiXG4gIHJvbGU9XCJkaWFsb2dcIlxuICB0YWJpbmRleD1cIi0xXCJcbiAgY2RrTW9uaXRvclN1YnRyZWVGb2N1c1xuICBjZGtUcmFwRm9jdXNcbiAgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgY2xhc3M9XCJkaWFsb2dcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwidGl0bGU/LklEXCJcbiAgKGNka0ZvY3VzQ2hhbmdlKT1cIl9jb250ZW50Rm9jdXNDaGFuZ2VkKCRldmVudClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { A11yModule } from '@angular/cdk/a11y';
4
+ import { PopoverTriggerDirective } from './popover-trigger.directive';
5
+ import { PopoverComponent } from './popover.component';
6
+ import { PopoverCloseButtonDirective } from './popover-close-button.directive';
7
+ import { PopoverTitleDirective } from './popover-title.directive';
8
+ import * as i0 from "@angular/core";
9
+ export class SapphirePopoverModule {
10
+ }
11
+ SapphirePopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphirePopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ SapphirePopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: SapphirePopoverModule, declarations: [PopoverComponent,
13
+ PopoverTriggerDirective,
14
+ PopoverCloseButtonDirective,
15
+ PopoverTitleDirective], imports: [CommonModule, A11yModule], exports: [PopoverComponent,
16
+ PopoverTriggerDirective,
17
+ PopoverCloseButtonDirective,
18
+ PopoverTitleDirective] });
19
+ SapphirePopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphirePopoverModule, imports: [CommonModule, A11yModule] });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphirePopoverModule, decorators: [{
21
+ type: NgModule,
22
+ args: [{
23
+ declarations: [
24
+ PopoverComponent,
25
+ PopoverTriggerDirective,
26
+ PopoverCloseButtonDirective,
27
+ PopoverTitleDirective,
28
+ ],
29
+ imports: [CommonModule, A11yModule],
30
+ exports: [
31
+ PopoverComponent,
32
+ PopoverTriggerDirective,
33
+ PopoverCloseButtonDirective,
34
+ PopoverTitleDirective,
35
+ ],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BvcG92ZXIvc3JjL3BvcG92ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFpQmxFLE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFiOUIsZ0JBQWdCO1FBQ2hCLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0IscUJBQXFCLGFBRWIsWUFBWSxFQUFFLFVBQVUsYUFFaEMsZ0JBQWdCO1FBQ2hCLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0IscUJBQXFCO21IQUdaLHFCQUFxQixZQVJ0QixZQUFZLEVBQUUsVUFBVTsyRkFRdkIscUJBQXFCO2tCQWZqQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL3BvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9wb3ZlckNsb3NlQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLWNsb3NlLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9wb3ZlclRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLXRpdGxlLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUsXG4gICAgUG9wb3ZlckNsb3NlQnV0dG9uRGlyZWN0aXZlLFxuICAgIFBvcG92ZXJUaXRsZURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlLFxuICAgIFBvcG92ZXJDbG9zZUJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyVGl0bGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhcHBoaXJlUG9wb3Zlck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,8 @@
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/radio.component';
6
+ export * from './src/radio-group.component';
7
+ export * from './src/radio.module';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmFkaW8vcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RUFBNEU7QUFDNUUsNkVBQTZFO0FBQzdFLHNEQUFzRDtBQUN0RCxXQUFXO0FBQ1gsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXZSBoYXZlIHNlcGFyYXRlIHB1YmxpY19hcGkudHMgZmlsZSBmb3IgZWFjaCBhbmd1bGFyIG1vZHVsZSwgdG8gaGF2ZSB0aGVtXG4vLyBleHBvc2VkIGFzIHNlcGFyYXRlIGVudHJ5IHBvaW50cy4gVGhlIGJ1aWxkIGlzIHN0aWxsIG5vdCBlbWl0dGluZyBzZXBhcmF0ZVxuLy8gZW50cnkgcG9pbnRzLCB3aGljaCB3aWxsIGJlIGFkZHJlc3NlZCBpbiB0aGlzIHRhc2s6XG4vLyBXQ0NKLTgzOFxuZXhwb3J0ICogZnJvbSAnLi9zcmMvcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9yYWRpby5tb2R1bGUnO1xuIl19