@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,18 @@
1
+ import { Directive } from '@angular/core';
2
+ import { ModalCloseButtonDirective } from '../modal-close-button.directive';
3
+ import { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../modal-close-button.directive";
6
+ import * as i2 from "../../../common/sapphire-view-encapsulation";
7
+ export class DialogCloseButtonDirective {
8
+ }
9
+ DialogCloseButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogCloseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
+ DialogCloseButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: DialogCloseButtonDirective, selector: "button[spDialogCloseButton]", hostDirectives: [{ directive: i1.ModalCloseButtonDirective }, { directive: i2.UseComponentStyles }], ngImport: i0 });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogCloseButtonDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: 'button[spDialogCloseButton]',
15
+ hostDirectives: [ModalCloseButtonDirective, UseComponentStyles],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNsb3NlLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL3NyYy9kaWFsb2cvZGlhbG9nLWNsb3NlLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7OztBQU1qRixNQUFNLE9BQU8sMEJBQTBCOzt1SEFBMUIsMEJBQTBCOzJHQUExQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxrQkFBa0IsQ0FBQztpQkFDaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGFsQ2xvc2VCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi9tb2RhbC1jbG9zZS1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFVzZUNvbXBvbmVudFN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zYXBwaGlyZS12aWV3LWVuY2Fwc3VsYXRpb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdidXR0b25bc3BEaWFsb2dDbG9zZUJ1dHRvbl0nLFxuICBob3N0RGlyZWN0aXZlczogW01vZGFsQ2xvc2VCdXR0b25EaXJlY3RpdmUsIFVzZUNvbXBvbmVudFN0eWxlc10sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0Nsb3NlQnV0dG9uRGlyZWN0aXZlIHt9XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Directive } from '@angular/core';
2
+ import { ScrollMonitorDirective } from '../../../common/scroll-monitor.directive';
3
+ import { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../common/scroll-monitor.directive";
6
+ import * as i2 from "../../../common/sapphire-view-encapsulation";
7
+ /**
8
+ *
9
+ */
10
+ export class DialogContentDirective {
11
+ constructor(_scrollMonitor) {
12
+ this._scrollMonitor = _scrollMonitor;
13
+ }
14
+ }
15
+ DialogContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogContentDirective, deps: [{ token: i1.ScrollMonitorDirective }], target: i0.ɵɵFactoryTarget.Directive });
16
+ DialogContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: DialogContentDirective, selector: "sp-dialog-content, [sp-dialog-content]", host: { properties: { "class": "\"sapphire-dialog-body\"", "class.sapphire-dialog-body--scrollable": "_scrollMonitor.scrollable", "class.sapphire-dialog-body--scrolled": "_scrollMonitor.scrolled" } }, hostDirectives: [{ directive: i1.ScrollMonitorDirective }, { directive: i2.UseComponentStyles }], ngImport: i0 });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogContentDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: 'sp-dialog-content, [sp-dialog-content]',
21
+ hostDirectives: [ScrollMonitorDirective, UseComponentStyles],
22
+ host: {
23
+ '[class]': '"sapphire-dialog-body"',
24
+ '[class.sapphire-dialog-body--scrollable]': '_scrollMonitor.scrollable',
25
+ '[class.sapphire-dialog-body--scrolled]': '_scrollMonitor.scrolled',
26
+ },
27
+ }]
28
+ }], ctorParameters: function () { return [{ type: i1.ScrollMonitorDirective }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RhbC9zcmMvZGlhbG9nL2RpYWxvZy1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7O0FBRWpGOztHQUVHO0FBVUgsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixjQUFzQztRQUF0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7SUFBRyxDQUFDOzttSEFEbEQsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFUbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxjQUFjLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQztvQkFDNUQsSUFBSSxFQUFFO3dCQUNKLFNBQVMsRUFBRSx3QkFBd0I7d0JBQ25DLDBDQUEwQyxFQUFFLDJCQUEyQjt3QkFDdkUsd0NBQXdDLEVBQUUseUJBQXlCO3FCQUNwRTtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2Nyb2xsTW9uaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zY3JvbGwtbW9uaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5cbi8qKlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3AtZGlhbG9nLWNvbnRlbnQsIFtzcC1kaWFsb2ctY29udGVudF0nLFxuICBob3N0RGlyZWN0aXZlczogW1Njcm9sbE1vbml0b3JEaXJlY3RpdmUsIFVzZUNvbXBvbmVudFN0eWxlc10sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzXSc6ICdcInNhcHBoaXJlLWRpYWxvZy1ib2R5XCInLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtZGlhbG9nLWJvZHktLXNjcm9sbGFibGVdJzogJ19zY3JvbGxNb25pdG9yLnNjcm9sbGFibGUnLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtZGlhbG9nLWJvZHktLXNjcm9sbGVkXSc6ICdfc2Nyb2xsTW9uaXRvci5zY3JvbGxlZCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbnRlbnREaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgX3Njcm9sbE1vbml0b3I6IFNjcm9sbE1vbml0b3JEaXJlY3RpdmUpIHt9XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { Component, Directive } from '@angular/core';
2
+ import { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../common/sapphire-view-encapsulation";
5
+ import * as i2 from "../../../button/src/button-group.component";
6
+ /**
7
+ * Marks a piece of UI as dialog footer. Use only for **custom** footer.
8
+ * For standard dialog footer (a list of right aligned buttons),
9
+ * use {@link DialogFooterComponent sp-dialog-footer} instead.
10
+ */
11
+ export class DialogFooterDirective {
12
+ }
13
+ DialogFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14
+ DialogFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: DialogFooterDirective, isStandalone: true, selector: "[spDialogFooter]", host: { classAttribute: "sapphire-dialog-footer" }, hostDirectives: [{ directive: i1.UseComponentStyles }], ngImport: i0 });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogFooterDirective, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ selector: '[spDialogFooter]',
19
+ host: {
20
+ class: 'sapphire-dialog-footer',
21
+ },
22
+ hostDirectives: [UseComponentStyles],
23
+ standalone: true,
24
+ }]
25
+ }] });
26
+ /**
27
+ * Standard dialog footer component. The content is supposed to be a list of
28
+ * buttons, which will be aligned to the right of the footer.
29
+ * For a custom footer, use {@link DialogFooterDirective spDialogFooter attribute directive}.
30
+ */
31
+ export class DialogFooterComponent {
32
+ }
33
+ DialogFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
+ DialogFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: DialogFooterComponent, selector: "sp-dialog-footer", hostDirectives: [{ directive: DialogFooterDirective }], ngImport: i0, template: '<sp-button-group align="right"><ng-content></ng-content></sp-button-group>', isInline: true, dependencies: [{ kind: "component", type: i2.ButtonGroupComponent, selector: "sp-button-group", inputs: ["align", "iconSpacing", "spacing", "orientation"] }] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogFooterComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'sp-dialog-footer',
39
+ template: '<sp-button-group align="right"><ng-content></ng-content></sp-button-group>',
40
+ hostDirectives: [DialogFooterDirective],
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL3NyYy9kaWFsb2cvZGlhbG9nLWZvb3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUFFakY7Ozs7R0FJRztBQVNILE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQVJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsd0JBQXdCO3FCQUNoQztvQkFDRCxjQUFjLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQUdEOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO3NHQUFyQixxQkFBcUIsOERBYnJCLHFCQUFxQiw2QkFVOUIsNEVBQTRFOzJGQUduRSxxQkFBcUI7a0JBTmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUNOLDRFQUE0RTtvQkFDOUUsY0FBYyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZUNvbXBvbmVudFN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zYXBwaGlyZS12aWV3LWVuY2Fwc3VsYXRpb24nO1xuXG4vKipcbiAqIE1hcmtzIGEgcGllY2Ugb2YgVUkgYXMgZGlhbG9nIGZvb3Rlci4gVXNlIG9ubHkgZm9yICoqY3VzdG9tKiogZm9vdGVyLlxuICogRm9yIHN0YW5kYXJkIGRpYWxvZyBmb290ZXIgKGEgbGlzdCBvZiByaWdodCBhbGlnbmVkIGJ1dHRvbnMpLFxuICogdXNlIHtAbGluayBEaWFsb2dGb290ZXJDb21wb25lbnQgc3AtZGlhbG9nLWZvb3Rlcn0gaW5zdGVhZC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NwRGlhbG9nRm9vdGVyXScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NhcHBoaXJlLWRpYWxvZy1mb290ZXInLFxuICB9LFxuICBob3N0RGlyZWN0aXZlczogW1VzZUNvbXBvbmVudFN0eWxlc10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSB7fVxuXG4vKipcbiAqIFN0YW5kYXJkIGRpYWxvZyBmb290ZXIgY29tcG9uZW50LiBUaGUgY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIGxpc3Qgb2ZcbiAqIGJ1dHRvbnMsIHdoaWNoIHdpbGwgYmUgYWxpZ25lZCB0byB0aGUgcmlnaHQgb2YgdGhlIGZvb3Rlci5cbiAqIEZvciBhIGN1c3RvbSBmb290ZXIsIHVzZSB7QGxpbmsgRGlhbG9nRm9vdGVyRGlyZWN0aXZlIHNwRGlhbG9nRm9vdGVyIGF0dHJpYnV0ZSBkaXJlY3RpdmV9LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1kaWFsb2ctZm9vdGVyJyxcbiAgdGVtcGxhdGU6XG4gICAgJzxzcC1idXR0b24tZ3JvdXAgYWxpZ249XCJyaWdodFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwLWJ1dHRvbi1ncm91cD4nLFxuICBob3N0RGlyZWN0aXZlczogW0RpYWxvZ0Zvb3RlckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0Zvb3RlckNvbXBvbmVudCB7fVxuIl19
@@ -0,0 +1,65 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Directive, forwardRef, HostBinding, Inject, Input, } from '@angular/core';
3
+ import { AutoId } from '../../../common/auto-id.decorator';
4
+ import { DialogComponent } from './dialog.component';
5
+ import { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../common/sapphire-view-encapsulation";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "../../../typography/src/heading.component";
10
+ import * as i4 from "../../../icon/src/icon.component";
11
+ import * as i5 from "../../../button/src/icon-button.component";
12
+ import * as i6 from "./dialog-close-button.directive";
13
+ import * as i7 from "./dialog.component";
14
+ /**
15
+ * Marks a piece of UI as dialog header. Use only for **custom** header.
16
+ * For standard dialog header (a heading, and a close button in passive
17
+ * dialogs), use {@link DialogHeaderComponent sp-dialog-header} instead.
18
+ */
19
+ export class DialogHeaderDirective {
20
+ constructor() {
21
+ this.id = '';
22
+ }
23
+ }
24
+ DialogHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
25
+ DialogHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: DialogHeaderDirective, isStandalone: true, selector: "[spDialogHeader]", inputs: { id: "id" }, host: { properties: { "id": "this.id" }, classAttribute: "sapphire-dialog-header" }, hostDirectives: [{ directive: i1.UseComponentStyles }], ngImport: i0 });
26
+ __decorate([
27
+ AutoId()
28
+ ], DialogHeaderDirective.prototype, "id", void 0);
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogHeaderDirective, decorators: [{
30
+ type: Directive,
31
+ args: [{
32
+ selector: '[spDialogHeader]',
33
+ host: {
34
+ class: 'sapphire-dialog-header',
35
+ },
36
+ hostDirectives: [UseComponentStyles],
37
+ standalone: true,
38
+ }]
39
+ }], propDecorators: { id: [{
40
+ type: HostBinding,
41
+ args: ['id']
42
+ }, {
43
+ type: Input
44
+ }] } });
45
+ /**
46
+ * Standard dialog header component, which is consisted of a heading (the
47
+ * content) and a close button, which is only visible in
48
+ * {@link DialogComponent#type passive} dialogs. For a custom header, use
49
+ * {@link DialogHeaderComponent spDialogHeader attribute directive}.
50
+ */
51
+ export class DialogHeaderComponent {
52
+ constructor(dialog) {
53
+ this.dialog = dialog;
54
+ }
55
+ }
56
+ DialogHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogHeaderComponent, deps: [{ token: forwardRef(() => DialogComponent) }], target: i0.ɵɵFactoryTarget.Component });
57
+ DialogHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: DialogHeaderComponent, selector: "sp-dialog-header", hostDirectives: [{ directive: DialogHeaderDirective, inputs: ["id", "id"] }], ngImport: i0, template: "<h4 sp-heading><ng-content></ng-content></h4>\n<div\n *ngIf=\"dialog.type === 'passive'\"\n class=\"sapphire-dialog-close-button-container\"\n>\n <button\n sp-icon-button\n variant=\"tertiary\"\n appearance=\"ghost\"\n size=\"large\"\n spDialogCloseButton\n >\n <sp-icon name=\"close\"></sp-icon>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.HeadingComponent, selector: "h1[sp-heading],h2[sp-heading],h3[sp-heading],h4[sp-heading],h5[sp-heading],h6[sp-heading]", inputs: ["sp-heading", "fontVariant"] }, { kind: "component", type: i4.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "component", type: i5.IconButtonComponent, selector: "button[sp-icon-button], a[sp-icon-button]", inputs: ["variant", "appearance", "surface", "size", "disabled", "type"] }, { kind: "directive", type: i6.DialogCloseButtonDirective, selector: "button[spDialogCloseButton]" }] });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogHeaderComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'sp-dialog-header', hostDirectives: [{ directive: DialogHeaderDirective, inputs: ['id'] }], template: "<h4 sp-heading><ng-content></ng-content></h4>\n<div\n *ngIf=\"dialog.type === 'passive'\"\n class=\"sapphire-dialog-close-button-container\"\n>\n <button\n sp-icon-button\n variant=\"tertiary\"\n appearance=\"ghost\"\n size=\"large\"\n spDialogCloseButton\n >\n <sp-icon name=\"close\"></sp-icon>\n </button>\n</div>\n" }]
61
+ }], ctorParameters: function () { return [{ type: i7.DialogComponent, decorators: [{
62
+ type: Inject,
63
+ args: [forwardRef(() => DialogComponent)]
64
+ }] }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL3NyYy9kaWFsb2cvZGlhbG9nLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL3NyYy9kaWFsb2cvZGlhbG9nLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7OztBQUVqRjs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLHFCQUFxQjtJQVJsQztRQVlFLE9BQUUsR0FBRyxFQUFFLENBQUM7S0FDVDs7a0hBTFkscUJBQXFCO3NHQUFyQixxQkFBcUI7QUFJaEM7SUFEQyxNQUFNLEVBQUU7aURBQ0Q7MkZBSkcscUJBQXFCO2tCQVJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsd0JBQXdCO3FCQUNoQztvQkFDRCxjQUFjLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUtDLEVBQUU7c0JBSEQsV0FBVzt1QkFBQyxJQUFJOztzQkFDaEIsS0FBSzs7QUFLUjs7Ozs7R0FLRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFFUyxNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtJQUM3QixDQUFDOztrSEFKTyxxQkFBcUIsa0JBRXRCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7c0dBRmhDLHFCQUFxQiw4REFsQnJCLHFCQUFxQixtREMxQmxDLHVWQWVBOzJGRDZCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGtCQUVaLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzs7MEJBSW5FLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEF1dG9JZCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9hdXRvLWlkLmRlY29yYXRvcic7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5cbi8qKlxuICogTWFya3MgYSBwaWVjZSBvZiBVSSBhcyBkaWFsb2cgaGVhZGVyLiBVc2Ugb25seSBmb3IgKipjdXN0b20qKiBoZWFkZXIuXG4gKiBGb3Igc3RhbmRhcmQgZGlhbG9nIGhlYWRlciAoYSBoZWFkaW5nLCBhbmQgYSBjbG9zZSBidXR0b24gaW4gcGFzc2l2ZVxuICogZGlhbG9ncyksIHVzZSB7QGxpbmsgRGlhbG9nSGVhZGVyQ29tcG9uZW50IHNwLWRpYWxvZy1oZWFkZXJ9IGluc3RlYWQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzcERpYWxvZ0hlYWRlcl0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdzYXBwaGlyZS1kaWFsb2ctaGVhZGVyJyxcbiAgfSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtVc2VDb21wb25lbnRTdHlsZXNdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dIZWFkZXJEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgQElucHV0KClcbiAgQEF1dG9JZCgpXG4gIGlkID0gJyc7XG59XG5cbi8qKlxuICogU3RhbmRhcmQgZGlhbG9nIGhlYWRlciBjb21wb25lbnQsIHdoaWNoIGlzIGNvbnNpc3RlZCBvZiBhIGhlYWRpbmcgKHRoZVxuICogY29udGVudCkgYW5kIGEgY2xvc2UgYnV0dG9uLCB3aGljaCBpcyBvbmx5IHZpc2libGUgaW5cbiAqIHtAbGluayBEaWFsb2dDb21wb25lbnQjdHlwZSBwYXNzaXZlfSBkaWFsb2dzLiBGb3IgYSBjdXN0b20gaGVhZGVyLCB1c2VcbiAqIHtAbGluayBEaWFsb2dIZWFkZXJDb21wb25lbnQgc3BEaWFsb2dIZWFkZXIgYXR0cmlidXRlIGRpcmVjdGl2ZX0uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLWRpYWxvZy1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IERpYWxvZ0hlYWRlckRpcmVjdGl2ZSwgaW5wdXRzOiBbJ2lkJ10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0hlYWRlckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBEaWFsb2dDb21wb25lbnQpKVxuICAgIHB1YmxpYyBkaWFsb2c6IERpYWxvZ0NvbXBvbmVudFxuICApIHt9XG59XG4iLCI8aDQgc3AtaGVhZGluZz48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9oND5cbjxkaXZcbiAgKm5nSWY9XCJkaWFsb2cudHlwZSA9PT0gJ3Bhc3NpdmUnXCJcbiAgY2xhc3M9XCJzYXBwaGlyZS1kaWFsb2ctY2xvc2UtYnV0dG9uLWNvbnRhaW5lclwiXG4+XG4gIDxidXR0b25cbiAgICBzcC1pY29uLWJ1dHRvblxuICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICBzaXplPVwibGFyZ2VcIlxuICAgIHNwRGlhbG9nQ2xvc2VCdXR0b25cbiAgPlxuICAgIDxzcC1pY29uIG5hbWU9XCJjbG9zZVwiPjwvc3AtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import { ModalTriggerDirective } from '../modal-trigger.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../modal.service";
5
+ /**
6
+ * Makes a clickable element a trigger for a dialog.
7
+ */
8
+ export class DialogTriggerDirective extends ModalTriggerDirective {
9
+ constructor(modalService) {
10
+ super(modalService);
11
+ this.modalService = modalService;
12
+ }
13
+ open() {
14
+ if (!this.templateRef) {
15
+ throw new Error('Template referenced by modal trigger not found.');
16
+ }
17
+ this.dialogRef = this.modalService.openDialog(this.templateRef, this);
18
+ }
19
+ }
20
+ DialogTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogTriggerDirective, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Directive });
21
+ DialogTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: DialogTriggerDirective, selector: "[spDialogTriggerFor]", inputs: { dismissable: ["spDialogDismissable", "dismissable"], keyboardDismissDisabled: ["spDialogDisableKeyboardDismissable", "keyboardDismissDisabled"], templateRef: ["spDialogTriggerFor", "templateRef"] }, host: { listeners: { "click": "open()" } }, exportAs: ["spDialogTrigger"], usesInheritance: true, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogTriggerDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: '[spDialogTriggerFor]',
26
+ inputs: [
27
+ 'dismissable: spDialogDismissable',
28
+ 'keyboardDismissDisabled: spDialogDisableKeyboardDismissable',
29
+ 'templateRef: spDialogTriggerFor',
30
+ ],
31
+ exportAs: 'spDialogTrigger',
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i1.ModalService }]; }, propDecorators: { open: [{
34
+ type: HostListener,
35
+ args: ['click']
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RhbC9zcmMvZGlhbG9nL2RpYWxvZy10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBR25FOztHQUVHO0FBVUgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHFCQUFxQjtJQUMvRCxZQUFzQixZQUEwQjtRQUM5QyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFEQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUVoRCxDQUFDO0lBR0QsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDOzttSEFYVSxzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQVRsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLE1BQU0sRUFBRTt3QkFDTixrQ0FBa0M7d0JBQ2xDLDZEQUE2RDt3QkFDN0QsaUNBQWlDO3FCQUNsQztvQkFDRCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QjttR0FPQyxJQUFJO3NCQURILFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbFRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9tb2RhbC10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9tb2RhbC5zZXJ2aWNlJztcblxuLyoqXG4gKiBNYWtlcyBhIGNsaWNrYWJsZSBlbGVtZW50IGEgdHJpZ2dlciBmb3IgYSBkaWFsb2cuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzcERpYWxvZ1RyaWdnZXJGb3JdJyxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc21pc3NhYmxlOiBzcERpYWxvZ0Rpc21pc3NhYmxlJyxcbiAgICAna2V5Ym9hcmREaXNtaXNzRGlzYWJsZWQ6IHNwRGlhbG9nRGlzYWJsZUtleWJvYXJkRGlzbWlzc2FibGUnLFxuICAgICd0ZW1wbGF0ZVJlZjogc3BEaWFsb2dUcmlnZ2VyRm9yJyxcbiAgXSxcbiAgZXhwb3J0QXM6ICdzcERpYWxvZ1RyaWdnZXInLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dUcmlnZ2VyRGlyZWN0aXZlIGV4dGVuZHMgTW9kYWxUcmlnZ2VyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7XG4gICAgc3VwZXIobW9kYWxTZXJ2aWNlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb3BlbigpIHtcbiAgICBpZiAoIXRoaXMudGVtcGxhdGVSZWYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVtcGxhdGUgcmVmZXJlbmNlZCBieSBtb2RhbCB0cmlnZ2VyIG5vdCBmb3VuZC4nKTtcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuRGlhbG9nKHRoaXMudGVtcGxhdGVSZWYsIHRoaXMpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { Component, ContentChild, Input } from '@angular/core';
2
+ import { DialogFooterDirective } from './dialog-footer.component';
3
+ import { DialogContentDirective } from './dialog-content.directive';
4
+ import { DialogHeaderDirective } from './dialog-header.component';
5
+ import { ModalBaseComponent } from '../modal-base.component';
6
+ import { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/cdk/dialog";
9
+ import * as i2 from "../../../common/sapphire-view-encapsulation";
10
+ /**
11
+ * Dialogs focus the user's attention exclusively on one task or piece of
12
+ * information via a dialog box that sits on top of the page content.
13
+ */
14
+ export class DialogComponent extends ModalBaseComponent {
15
+ /**
16
+ * Type of the dialog:
17
+ * - 'passive': A dialog without footer with actions. Passive dialogs are
18
+ * used to display information, that doesn't require any further action.
19
+ * - 'active': A dialog with a footer that contains actions. Active dialogs
20
+ * are used to display information based on which the user is supposed to
21
+ * decide on an action
22
+ */
23
+ get type() {
24
+ return this.contentInitialized && !Boolean(this.footer)
25
+ ? 'passive'
26
+ : 'active';
27
+ }
28
+ constructor(dialogRef) {
29
+ super(dialogRef);
30
+ this.dialogRef = dialogRef;
31
+ /**
32
+ * Dialog size, constraining the width of the dialog.
33
+ */
34
+ this.size = 'small';
35
+ }
36
+ }
37
+ DialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
38
+ DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: DialogComponent, selector: "sp-dialog", inputs: { size: "size" }, host: { properties: { "class.sapphire-dialog--small": "size === 'small'", "class.sapphire-dialog--medium": "size === 'medium'", "class.sapphire-dialog--large": "size === 'large'", "class.sapphire-dialog--passive": "type === 'passive'" }, classAttribute: "sapphire-dialog" }, queries: [{ propertyName: "footer", first: true, predicate: DialogFooterDirective, descendants: true }, { propertyName: "header", first: true, predicate: DialogHeaderDirective, descendants: true }, { propertyName: "content", first: true, predicate: DialogContentDirective, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i2.UseComponentStylesOnHost }], ngImport: i0, template: "<ng-content select=\"sp-dialog-header, [spDialogHeader]\"></ng-content>\n<ng-content select=\"sp-dialog-content, [sp-dialog-content]\"></ng-content>\n<ng-content select=\"sp-dialog-footer, [spDialogFooter]\"></ng-content>\n", styles: [".sapphire-dialog{border-radius:var(--sapphire-dialog-size-radius);background-color:var(--sapphire-dialog-color-background);font-family:var(--sapphire-dialog-font-name);color:var(--sapphire-dialog-color-content);box-sizing:border-box;overflow:hidden;max-height:90vh;max-width:90vw;display:flex;flex-direction:column;outline:none}.sapphire-dialog--small{width:var(--sapphire-dialog-size-width-s)}.sapphire-dialog--medium{width:var(--sapphire-dialog-size-width-m)}.sapphire-dialog--large{width:var(--sapphire-dialog-size-width-l)}.sapphire-dialog-header{padding:var(--sapphire-dialog-size-spacing-header-top-default) var(--sapphire-dialog-size-spacing-header-right-default) var(--sapphire-dialog-size-spacing-header-bottom-default) var(--sapphire-dialog-size-spacing-header-left-default);display:flex;justify-content:space-between;align-items:center}.sapphire-dialog--passive .sapphire-dialog-header{padding:var(--sapphire-dialog-size-spacing-header-top-passive) var(--sapphire-dialog-size-spacing-header-right-passive) var(--sapphire-dialog-size-spacing-header-bottom-passive) var(--sapphire-dialog-size-spacing-header-left-passive)}.sapphire-dialog-close-button-container{align-self:flex-start}.sapphire-dialog-body{padding:var(--sapphire-dialog-size-spacing-body-top-default) var(--sapphire-dialog-size-spacing-body-right-default) var(--sapphire-dialog-size-spacing-body-bottom-default) var(--sapphire-dialog-size-spacing-body-left-default);overflow-y:auto;overflow-x:hidden}.sapphire-dialog--passive .sapphire-dialog-body{padding:var(--sapphire-dialog-size-spacing-body-top-passive) var(--sapphire-dialog-size-spacing-body-right-passive) var(--sapphire-dialog-size-spacing-body-bottom-passive) var(--sapphire-dialog-size-spacing-body-left-passive)}.sapphire-dialog-footer{padding:var(--sapphire-dialog-size-spacing-footer-top-default) var(--sapphire-dialog-size-spacing-footer-right-default) var(--sapphire-dialog-size-spacing-footer-bottom-default) var(--sapphire-dialog-size-spacing-footer-left-default)}.sapphire-dialog-header+.sapphire-dialog-body{border-top:var(--sapphire-dialog-size-border) solid transparent}.sapphire-dialog-header+.sapphire-dialog-body.sapphire-dialog-body--scrolled{border-top:var(--sapphire-dialog-size-border) solid var(--sapphire-dialog-color-separator)}.sapphire-dialog-body+.sapphire-dialog-footer{border-top:var(--sapphire-dialog-size-border) solid transparent}.sapphire-dialog-body.sapphire-dialog-body--scrollable+.sapphire-dialog-footer{border-top:var(--sapphire-dialog-size-border) solid var(--sapphire-dialog-color-separator)}.sapphire-dialog:has(.sapphire-dialog-body--scrollable)>.sapphire-dialog-footer{padding:var(--sapphire-dialog-size-spacing-footer-top-scrollable) var(--sapphire-dialog-size-spacing-footer-right-scrollable) var(--sapphire-dialog-size-spacing-footer-bottom-scrollable) var(--sapphire-dialog-size-spacing-footer-left-scrollable)}\n"] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: DialogComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'sp-dialog', host: {
42
+ class: 'sapphire-dialog',
43
+ '[class.sapphire-dialog--small]': "size === 'small'",
44
+ '[class.sapphire-dialog--medium]': "size === 'medium'",
45
+ '[class.sapphire-dialog--large]': "size === 'large'",
46
+ '[class.sapphire-dialog--passive]': "type === 'passive'",
47
+ }, hostDirectives: [UseComponentStylesOnHost], template: "<ng-content select=\"sp-dialog-header, [spDialogHeader]\"></ng-content>\n<ng-content select=\"sp-dialog-content, [sp-dialog-content]\"></ng-content>\n<ng-content select=\"sp-dialog-footer, [spDialogFooter]\"></ng-content>\n", styles: [".sapphire-dialog{border-radius:var(--sapphire-dialog-size-radius);background-color:var(--sapphire-dialog-color-background);font-family:var(--sapphire-dialog-font-name);color:var(--sapphire-dialog-color-content);box-sizing:border-box;overflow:hidden;max-height:90vh;max-width:90vw;display:flex;flex-direction:column;outline:none}.sapphire-dialog--small{width:var(--sapphire-dialog-size-width-s)}.sapphire-dialog--medium{width:var(--sapphire-dialog-size-width-m)}.sapphire-dialog--large{width:var(--sapphire-dialog-size-width-l)}.sapphire-dialog-header{padding:var(--sapphire-dialog-size-spacing-header-top-default) var(--sapphire-dialog-size-spacing-header-right-default) var(--sapphire-dialog-size-spacing-header-bottom-default) var(--sapphire-dialog-size-spacing-header-left-default);display:flex;justify-content:space-between;align-items:center}.sapphire-dialog--passive .sapphire-dialog-header{padding:var(--sapphire-dialog-size-spacing-header-top-passive) var(--sapphire-dialog-size-spacing-header-right-passive) var(--sapphire-dialog-size-spacing-header-bottom-passive) var(--sapphire-dialog-size-spacing-header-left-passive)}.sapphire-dialog-close-button-container{align-self:flex-start}.sapphire-dialog-body{padding:var(--sapphire-dialog-size-spacing-body-top-default) var(--sapphire-dialog-size-spacing-body-right-default) var(--sapphire-dialog-size-spacing-body-bottom-default) var(--sapphire-dialog-size-spacing-body-left-default);overflow-y:auto;overflow-x:hidden}.sapphire-dialog--passive .sapphire-dialog-body{padding:var(--sapphire-dialog-size-spacing-body-top-passive) var(--sapphire-dialog-size-spacing-body-right-passive) var(--sapphire-dialog-size-spacing-body-bottom-passive) var(--sapphire-dialog-size-spacing-body-left-passive)}.sapphire-dialog-footer{padding:var(--sapphire-dialog-size-spacing-footer-top-default) var(--sapphire-dialog-size-spacing-footer-right-default) var(--sapphire-dialog-size-spacing-footer-bottom-default) var(--sapphire-dialog-size-spacing-footer-left-default)}.sapphire-dialog-header+.sapphire-dialog-body{border-top:var(--sapphire-dialog-size-border) solid transparent}.sapphire-dialog-header+.sapphire-dialog-body.sapphire-dialog-body--scrolled{border-top:var(--sapphire-dialog-size-border) solid var(--sapphire-dialog-color-separator)}.sapphire-dialog-body+.sapphire-dialog-footer{border-top:var(--sapphire-dialog-size-border) solid transparent}.sapphire-dialog-body.sapphire-dialog-body--scrollable+.sapphire-dialog-footer{border-top:var(--sapphire-dialog-size-border) solid var(--sapphire-dialog-color-separator)}.sapphire-dialog:has(.sapphire-dialog-body--scrollable)>.sapphire-dialog-footer{padding:var(--sapphire-dialog-size-spacing-footer-top-scrollable) var(--sapphire-dialog-size-spacing-footer-right-scrollable) var(--sapphire-dialog-size-spacing-footer-bottom-scrollable) var(--sapphire-dialog-size-spacing-footer-left-scrollable)}\n"] }]
48
+ }], ctorParameters: function () { return [{ type: i1.DialogRef }]; }, propDecorators: { size: [{
49
+ type: Input
50
+ }], footer: [{
51
+ type: ContentChild,
52
+ args: [DialogFooterDirective]
53
+ }], header: [{
54
+ type: ContentChild,
55
+ args: [DialogHeaderDirective]
56
+ }], content: [{
57
+ type: ContentChild,
58
+ args: [DialogContentDirective]
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kYWwvc3JjL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RhbC9zcmMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUFFdkY7OztHQUdHO0FBY0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsa0JBQWtCO0lBT3JEOzs7Ozs7O09BT0c7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNmLENBQUM7SUFXRCxZQUFzQixTQUFvQjtRQUN4QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBN0IxQzs7V0FFRztRQUVILFNBQUksR0FBaUMsT0FBTyxDQUFDO0lBMkI3QyxDQUFDOzs0R0FoQ1UsZUFBZTtnR0FBZixlQUFlLGtZQXFCWixxQkFBcUIseUVBR3JCLHFCQUFxQiwwRUFHckIsc0JBQXNCLHFJQ3BEdEMsaU9BR0E7MkZEc0JhLGVBQWU7a0JBYjNCLFNBQVM7K0JBQ0UsV0FBVyxRQUVmO3dCQUNKLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLGdDQUFnQyxFQUFFLGtCQUFrQjt3QkFDcEQsaUNBQWlDLEVBQUUsbUJBQW1CO3dCQUN0RCxnQ0FBZ0MsRUFBRSxrQkFBa0I7d0JBQ3BELGtDQUFrQyxFQUFFLG9CQUFvQjtxQkFDekQsa0JBQ2UsQ0FBQyx3QkFBd0IsQ0FBQztnR0FRMUMsSUFBSTtzQkFESCxLQUFLO2dCQWtCTixNQUFNO3NCQURMLFlBQVk7dUJBQUMscUJBQXFCO2dCQUluQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMscUJBQXFCO2dCQUluQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlhbG9nLWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vZGlhbG9nLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERpYWxvZ0hlYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlhbG9nLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5cbi8qKlxuICogRGlhbG9ncyBmb2N1cyB0aGUgdXNlcidzIGF0dGVudGlvbiBleGNsdXNpdmVseSBvbiBvbmUgdGFzayBvciBwaWVjZSBvZlxuICogaW5mb3JtYXRpb24gdmlhIGEgZGlhbG9nIGJveCB0aGF0IHNpdHMgb24gdG9wIG9mIHRoZSBwYWdlIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdzYXBwaGlyZS1kaWFsb2cnLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtZGlhbG9nLS1zbWFsbF0nOiBcInNpemUgPT09ICdzbWFsbCdcIixcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWRpYWxvZy0tbWVkaXVtXSc6IFwic2l6ZSA9PT0gJ21lZGl1bSdcIixcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWRpYWxvZy0tbGFyZ2VdJzogXCJzaXplID09PSAnbGFyZ2UnXCIsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1kaWFsb2ctLXBhc3NpdmVdJzogXCJ0eXBlID09PSAncGFzc2l2ZSdcIixcbiAgfSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtVc2VDb21wb25lbnRTdHlsZXNPbkhvc3RdLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgTW9kYWxCYXNlQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIERpYWxvZyBzaXplLCBjb25zdHJhaW5pbmcgdGhlIHdpZHRoIG9mIHRoZSBkaWFsb2cuXG4gICAqL1xuICBASW5wdXQoKVxuICBzaXplOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnID0gJ3NtYWxsJztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgZGlhbG9nOlxuICAgKiAgLSAncGFzc2l2ZSc6IEEgZGlhbG9nIHdpdGhvdXQgZm9vdGVyIHdpdGggYWN0aW9ucy4gUGFzc2l2ZSBkaWFsb2dzIGFyZVxuICAgKiAgICAgdXNlZCB0byBkaXNwbGF5IGluZm9ybWF0aW9uLCB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBhbnkgZnVydGhlciBhY3Rpb24uXG4gICAqICAtICdhY3RpdmUnOiBBIGRpYWxvZyB3aXRoIGEgZm9vdGVyIHRoYXQgY29udGFpbnMgYWN0aW9ucy4gQWN0aXZlIGRpYWxvZ3NcbiAgICogICAgIGFyZSB1c2VkIHRvIGRpc3BsYXkgaW5mb3JtYXRpb24gYmFzZWQgb24gd2hpY2ggdGhlIHVzZXIgaXMgc3VwcG9zZWQgdG9cbiAgICogICAgIGRlY2lkZSBvbiBhbiBhY3Rpb25cbiAgICovXG4gIGdldCB0eXBlKCk6ICdwYXNzaXZlJyB8ICdhY3RpdmUnIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50SW5pdGlhbGl6ZWQgJiYgIUJvb2xlYW4odGhpcy5mb290ZXIpXG4gICAgICA/ICdwYXNzaXZlJ1xuICAgICAgOiAnYWN0aXZlJztcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRGlhbG9nRm9vdGVyRGlyZWN0aXZlKVxuICBmb290ZXI/OiBEaWFsb2dGb290ZXJEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChEaWFsb2dIZWFkZXJEaXJlY3RpdmUpXG4gIGhlYWRlcj86IERpYWxvZ0hlYWRlckRpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKERpYWxvZ0NvbnRlbnREaXJlY3RpdmUpXG4gIGNvbnRlbnQ/OiBEaWFsb2dDb250ZW50RGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2dSZWY6IERpYWxvZ1JlZikge1xuICAgIHN1cGVyKGRpYWxvZ1JlZik7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cInNwLWRpYWxvZy1oZWFkZXIsIFtzcERpYWxvZ0hlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJzcC1kaWFsb2ctY29udGVudCwgW3NwLWRpYWxvZy1jb250ZW50XVwiPjwvbmctY29udGVudD5cbjxuZy1jb250ZW50IHNlbGVjdD1cInNwLWRpYWxvZy1mb290ZXIsIFtzcERpYWxvZ0Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { CdkDialogContainer, } from '@angular/cdk/dialog';
2
+ import { Component, Input, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/cdk/dialog";
5
+ export class ModalBaseComponent {
6
+ constructor(dialogRef) {
7
+ this.dialogRef = dialogRef;
8
+ this.contentInitialized = false;
9
+ }
10
+ ngOnChanges(changes) {
11
+ const containerInstance = this.dialogRef.containerInstance;
12
+ // Syncing some dialog config properties, when corresponding inputs are changed.
13
+ // Read more about it in implementation-decisions.md
14
+ if (containerInstance instanceof CdkDialogContainer) {
15
+ // Promise.resolve to avoid "Expression has changed after it was
16
+ // checked" error, which can happen in some cases.
17
+ Promise.resolve().then(() => {
18
+ const keys = ['ariaLabel', 'ariaLabelledBy', 'ariaDescribedBy', 'role'];
19
+ keys
20
+ .filter((key) => changes[key])
21
+ .forEach((key) => {
22
+ const value = this[key];
23
+ containerInstance._config[key] = value;
24
+ // ariaLabeledBy is for some reason treated differently in
25
+ // CdkDialogContainer, and is read off the instance itself, instead
26
+ // of the config object.
27
+ if (key === 'ariaLabelledBy' && value !== undefined) {
28
+ containerInstance._ariaLabelledBy = value;
29
+ }
30
+ });
31
+ });
32
+ }
33
+ }
34
+ ngAfterContentInit() {
35
+ // For some reason, when sp-dialog is wrapped (in sp-confirmation-dialog for
36
+ // example), "Expression changed ..." error is thrown, as `type` (which is
37
+ // used in sp-dialog-header) is changed form "passive" to "active"
38
+ // interestingly, this doesn't happen in active dialogs where sp-dialog
39
+ // is directly inside ng-template.
40
+ Promise.resolve().then(() => {
41
+ this.contentInitialized = true;
42
+ });
43
+ }
44
+ ngAfterContentChecked() {
45
+ const containerInstance = this.dialogRef.containerInstance;
46
+ const headerId = this.header?.id;
47
+ if (headerId &&
48
+ !this.ariaLabel &&
49
+ !this.ariaLabelledBy &&
50
+ containerInstance instanceof CdkDialogContainer &&
51
+ headerId !== containerInstance._ariaLabelledBy) {
52
+ Promise.resolve().then(() => {
53
+ containerInstance._ariaLabelledBy = headerId;
54
+ });
55
+ }
56
+ }
57
+ close() {
58
+ this.dialogRef.close();
59
+ }
60
+ }
61
+ ModalBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModalBaseComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
62
+ ModalBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModalBaseComponent, selector: "ng-component", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledBy: ["aria-labelledby", "ariaLabelledBy"], ariaDescribedBy: ["aria-describedby", "ariaDescribedBy"], role: "role" }, host: { properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "attr.role": "null" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModalBaseComponent, decorators: [{
64
+ type: Component,
65
+ args: [{
66
+ template: '',
67
+ host: {
68
+ // aria attributes neutralized here, since they are ported to the container
69
+ // Read more about it in implementation-decisions.md
70
+ '[attr.aria-label]': 'null',
71
+ '[attr.aria-labelledby]': 'null',
72
+ '[attr.aria-describedby]': 'null',
73
+ '[attr.role]': 'null',
74
+ },
75
+ }]
76
+ }], ctorParameters: function () { return [{ type: i1.DialogRef }]; }, propDecorators: { ariaLabel: [{
77
+ type: Input,
78
+ args: ['aria-label']
79
+ }], ariaLabelledBy: [{
80
+ type: Input,
81
+ args: ['aria-labelledby']
82
+ }], ariaDescribedBy: [{
83
+ type: Input,
84
+ args: ['aria-describedby']
85
+ }], role: [{
86
+ type: Input,
87
+ args: ['role']
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL3NyYy9tb2RhbC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEdBSW5CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUdMLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7OztBQWF2QixNQUFNLE9BQWdCLGtCQUFrQjtJQTZCdEMsWUFBc0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUhoQyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFHUSxDQUFDO0lBRTlDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7UUFDM0QsZ0ZBQWdGO1FBQ2hGLG9EQUFvRDtRQUNwRCxJQUFJLGlCQUFpQixZQUFZLGtCQUFrQixFQUFFO1lBQ25ELGdFQUFnRTtZQUNoRSxrREFBa0Q7WUFDbEQsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxHQUtOLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRCxJQUFJO3FCQUNELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQWEsQ0FBQyxDQUFDO3FCQUN2QyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQ3ZDLDBEQUEwRDtvQkFDMUQsbUVBQW1FO29CQUNuRSx3QkFBd0I7b0JBQ3hCLElBQUksR0FBRyxLQUFLLGdCQUFnQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7d0JBQ25ELGlCQUFpQixDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7cUJBQzNDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsNEVBQTRFO1FBQzVFLDBFQUEwRTtRQUMxRSxrRUFBa0U7UUFDbEUsdUVBQXVFO1FBQ3ZFLGtDQUFrQztRQUNsQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDakMsSUFDRSxRQUFRO1lBQ1IsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNmLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDcEIsaUJBQWlCLFlBQVksa0JBQWtCO1lBQy9DLFFBQVEsS0FBSyxpQkFBaUIsQ0FBQyxlQUFlLEVBQzlDO1lBQ0EsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQzFCLGlCQUFpQixDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzsrR0ExRm1CLGtCQUFrQjttR0FBbEIsa0JBQWtCLHVZQVY1QixFQUFFOzJGQVVRLGtCQUFrQjtrQkFYdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osMkVBQTJFO3dCQUMzRSxvREFBb0Q7d0JBQ3BELG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLHdCQUF3QixFQUFFLE1BQU07d0JBQ2hDLHlCQUF5QixFQUFFLE1BQU07d0JBQ2pDLGFBQWEsRUFBRSxNQUFNO3FCQUN0QjtpQkFDRjtnR0FVQyxTQUFTO3NCQURSLEtBQUs7dUJBQUMsWUFBWTtnQkFNbkIsY0FBYztzQkFEYixLQUFLO3VCQUFDLGlCQUFpQjtnQkFNeEIsZUFBZTtzQkFEZCxLQUFLO3VCQUFDLGtCQUFrQjtnQkFNekIsSUFBSTtzQkFESCxLQUFLO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDZGtEaWFsb2dDb250YWluZXIsXG4gIERpYWxvZ0NvbmZpZyxcbiAgRGlhbG9nUmVmLFxuICBEaWFsb2dSb2xlLFxufSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJycsXG4gIGhvc3Q6IHtcbiAgICAvLyBhcmlhIGF0dHJpYnV0ZXMgbmV1dHJhbGl6ZWQgaGVyZSwgc2luY2UgdGhleSBhcmUgcG9ydGVkIHRvIHRoZSBjb250YWluZXJcbiAgICAvLyBSZWFkIG1vcmUgYWJvdXQgaXQgaW4gaW1wbGVtZW50YXRpb24tZGVjaXNpb25zLm1kXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ251bGwnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ251bGwnLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdudWxsJyxcbiAgICAnW2F0dHIucm9sZV0nOiAnbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1vZGFsQmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZFxue1xuICAvLyBBY2Nlc3NpYmlsaXR5IGlucHV0cy4gV2UgbmVlZCB0aGVtIHRvIHN5bmMgdGhlbSB3aXRoIENka0RpYWxvZ0NvbnRhaW5lci5cbiAgLy8gUmVhZCBtb3JlIGFib3V0IGl0IGluIGltcGxlbWVudGF0aW9uLWRlY2lzaW9ucy5tZFxuICAvKipcbiAgICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGxhYmVscyB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCAob3IgZWxlbWVudHMpIHRoYXQgbGFiZWxzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpXG4gIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCAob3IgZWxlbWVudHMpIHRoYXQgZGVzY3JpYmVzIHRoZSBvYmplY3QuXG4gICAqL1xuICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKVxuICBhcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzaWJpbGl0eSByb2xlIGZvciB0aGUgZGlhbG9nLlxuICAgKi9cbiAgQElucHV0KCdyb2xlJylcbiAgcm9sZT86IERpYWxvZ1JvbGU7XG5cbiAgcHJvdGVjdGVkIGNvbnRlbnRJbml0aWFsaXplZCA9IGZhbHNlO1xuICBhYnN0cmFjdCBoZWFkZXI/OiB7IGlkOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGlhbG9nUmVmOiBEaWFsb2dSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckluc3RhbmNlID0gdGhpcy5kaWFsb2dSZWYuY29udGFpbmVySW5zdGFuY2U7XG4gICAgLy8gU3luY2luZyBzb21lIGRpYWxvZyBjb25maWcgcHJvcGVydGllcywgd2hlbiBjb3JyZXNwb25kaW5nIGlucHV0cyBhcmUgY2hhbmdlZC5cbiAgICAvLyBSZWFkIG1vcmUgYWJvdXQgaXQgaW4gaW1wbGVtZW50YXRpb24tZGVjaXNpb25zLm1kXG4gICAgaWYgKGNvbnRhaW5lckluc3RhbmNlIGluc3RhbmNlb2YgQ2RrRGlhbG9nQ29udGFpbmVyKSB7XG4gICAgICAvLyBQcm9taXNlLnJlc29sdmUgdG8gYXZvaWQgXCJFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhc1xuICAgICAgLy8gY2hlY2tlZFwiIGVycm9yLCB3aGljaCBjYW4gaGFwcGVuIGluIHNvbWUgY2FzZXMuXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3Qga2V5czogQXJyYXk8XG4gICAgICAgICAga2V5b2YgUGljazxcbiAgICAgICAgICAgIERpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICdyb2xlJyB8ICdhcmlhTGFiZWwnIHwgJ2FyaWFMYWJlbGxlZEJ5JyB8ICdhcmlhRGVzY3JpYmVkQnknXG4gICAgICAgICAgPlxuICAgICAgICA+ID0gWydhcmlhTGFiZWwnLCAnYXJpYUxhYmVsbGVkQnknLCAnYXJpYURlc2NyaWJlZEJ5JywgJ3JvbGUnXTtcbiAgICAgICAga2V5c1xuICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4gY2hhbmdlc1trZXkgYXMgc3RyaW5nXSlcbiAgICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXNba2V5XTtcbiAgICAgICAgICAgIGNvbnRhaW5lckluc3RhbmNlLl9jb25maWdba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgLy8gYXJpYUxhYmVsZWRCeSBpcyBmb3Igc29tZSByZWFzb24gdHJlYXRlZCBkaWZmZXJlbnRseSBpblxuICAgICAgICAgICAgLy8gQ2RrRGlhbG9nQ29udGFpbmVyLCBhbmQgaXMgcmVhZCBvZmYgdGhlIGluc3RhbmNlIGl0c2VsZiwgaW5zdGVhZFxuICAgICAgICAgICAgLy8gb2YgdGhlIGNvbmZpZyBvYmplY3QuXG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnYXJpYUxhYmVsbGVkQnknICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgY29udGFpbmVySW5zdGFuY2UuX2FyaWFMYWJlbGxlZEJ5ID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gRm9yIHNvbWUgcmVhc29uLCB3aGVuIHNwLWRpYWxvZyBpcyB3cmFwcGVkIChpbiBzcC1jb25maXJtYXRpb24tZGlhbG9nIGZvclxuICAgIC8vIGV4YW1wbGUpLCBcIkV4cHJlc3Npb24gY2hhbmdlZCAuLi5cIiBlcnJvciBpcyB0aHJvd24sIGFzIGB0eXBlYCAod2hpY2ggaXNcbiAgICAvLyB1c2VkIGluIHNwLWRpYWxvZy1oZWFkZXIpIGlzIGNoYW5nZWQgZm9ybSBcInBhc3NpdmVcIiB0byBcImFjdGl2ZVwiXG4gICAgLy8gaW50ZXJlc3RpbmdseSwgdGhpcyBkb2Vzbid0IGhhcHBlbiBpbiBhY3RpdmUgZGlhbG9ncyB3aGVyZSBzcC1kaWFsb2dcbiAgICAvLyBpcyBkaXJlY3RseSBpbnNpZGUgbmctdGVtcGxhdGUuXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmNvbnRlbnRJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVySW5zdGFuY2UgPSB0aGlzLmRpYWxvZ1JlZi5jb250YWluZXJJbnN0YW5jZTtcbiAgICBjb25zdCBoZWFkZXJJZCA9IHRoaXMuaGVhZGVyPy5pZDtcbiAgICBpZiAoXG4gICAgICBoZWFkZXJJZCAmJlxuICAgICAgIXRoaXMuYXJpYUxhYmVsICYmXG4gICAgICAhdGhpcy5hcmlhTGFiZWxsZWRCeSAmJlxuICAgICAgY29udGFpbmVySW5zdGFuY2UgaW5zdGFuY2VvZiBDZGtEaWFsb2dDb250YWluZXIgJiZcbiAgICAgIGhlYWRlcklkICE9PSBjb250YWluZXJJbnN0YW5jZS5fYXJpYUxhYmVsbGVkQnlcbiAgICApIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb250YWluZXJJbnN0YW5jZS5fYXJpYUxhYmVsbGVkQnkgPSBoZWFkZXJJZDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Directive, HostListener, Optional } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/cdk/dialog";
4
+ export class ModalCloseButtonDirective {
5
+ constructor(dialogRef) {
6
+ this.dialogRef = dialogRef;
7
+ }
8
+ close() {
9
+ this.dialogRef?.close();
10
+ }
11
+ }
12
+ ModalCloseButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModalCloseButtonDirective, deps: [{ token: i1.DialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
13
+ ModalCloseButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ModalCloseButtonDirective, isStandalone: true, host: { listeners: { "click": "close()" }, properties: { "attr.aria-label": "\"Dismiss\"" } }, ngImport: i0 });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModalCloseButtonDirective, decorators: [{
15
+ type: Directive,
16
+ args: [{
17
+ standalone: true,
18
+ host: {
19
+ '[attr.aria-label]': '"Dismiss"', // TODO: i18n
20
+ },
21
+ }]
22
+ }], ctorParameters: function () { return [{ type: i1.DialogRef, decorators: [{
23
+ type: Optional
24
+ }] }]; }, propDecorators: { close: [{
25
+ type: HostListener,
26
+ args: ['click']
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY2xvc2UtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kYWwvc3JjL21vZGFsLWNsb3NlLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRbEUsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFnQyxTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFHL0QsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7c0hBTlUseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFOckMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxhQUFhO3FCQUNoRDtpQkFDRjs7MEJBRWMsUUFBUTs0Q0FHckIsS0FBSztzQkFESixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdcIkRpc21pc3NcIicsIC8vIFRPRE86IGkxOG5cbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDbG9zZUJ1dHRvbkRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBEaWFsb2dSZWYgfCBudWxsKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { Directive } from '@angular/core';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./modal.service";
5
+ /**
6
+ * Makes a clickable element a trigger for a modal
7
+ */
8
+ export class ModalTriggerDirective {
9
+ get dismissable() {
10
+ return this._dismissable;
11
+ }
12
+ set dismissable(value) {
13
+ this._dismissable = coerceBooleanProperty(value);
14
+ }
15
+ get keyboardDismissDisabled() {
16
+ return this._keyboardDismissDisabled;
17
+ }
18
+ set keyboardDismissDisabled(value) {
19
+ this._keyboardDismissDisabled = coerceBooleanProperty(value);
20
+ }
21
+ constructor(modalService) {
22
+ this.modalService = modalService;
23
+ this.templateRef = null;
24
+ this._dismissable = false;
25
+ this._keyboardDismissDisabled = false;
26
+ }
27
+ close() {
28
+ this.dialogRef?.close();
29
+ }
30
+ }
31
+ ModalTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModalTriggerDirective, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Directive });
32
+ ModalTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ModalTriggerDirective, isStandalone: true, host: { properties: { "attr.aria-controls": "dialogRef?.id ?? null" } }, ngImport: i0 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModalTriggerDirective, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ host: {
37
+ '[attr.aria-controls]': 'dialogRef?.id ?? null',
38
+ },
39
+ standalone: true,
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i1.ModalService }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL3NyYy9tb2RhbC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRzVFOztHQUVHO0FBT0gsTUFBTSxPQUFnQixxQkFBcUI7SUFJekMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFHRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSx1QkFBdUIsQ0FBQyxLQUFtQjtRQUM3QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUdELFlBQXNCLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBbkJ0QyxnQkFBVyxHQUFnQyxJQUFJLENBQUM7UUFTbEQsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFROUIsNkJBQXdCLEdBQVksS0FBSyxDQUFDO0lBRUMsQ0FBQztJQUlwRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDOztrSEExQm1CLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTjFDLFNBQVM7bUJBQUM7b0JBQ1QsSUFBSSxFQUFFO3dCQUNKLHNCQUFzQixFQUFFLHVCQUF1QjtxQkFDaEQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMsIE1vZGFsU2VydmljZSB9IGZyb20gJy4vbW9kYWwuc2VydmljZSc7XG5cbi8qKlxuICogTWFrZXMgYSBjbGlja2FibGUgZWxlbWVudCBhIHRyaWdnZXIgZm9yIGEgbW9kYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnZGlhbG9nUmVmPy5pZCA/PyBudWxsJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kYWxUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgTW9kYWxPcHRpb25zIHtcbiAgcHJvdGVjdGVkIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgZGlhbG9nUmVmPzogRGlhbG9nUmVmO1xuXG4gIGdldCBkaXNtaXNzYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzbWlzc2FibGU7XG4gIH1cbiAgc2V0IGRpc21pc3NhYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNtaXNzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzbWlzc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQga2V5Ym9hcmREaXNtaXNzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2tleWJvYXJkRGlzbWlzc0Rpc2FibGVkO1xuICB9XG4gIHNldCBrZXlib2FyZERpc21pc3NEaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fa2V5Ym9hcmREaXNtaXNzRGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2tleWJvYXJkRGlzbWlzc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7fVxuXG4gIGFic3RyYWN0IG9wZW4oKTogdm9pZDtcblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxufVxuIl19