@skyux/layout 5.7.2 → 6.0.0-beta.2

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 (289) hide show
  1. package/documentation.json +4 -4
  2. package/esm2020/index.mjs +74 -0
  3. package/esm2020/lib/modules/action-button/action-button-adapter-service.mjs +43 -0
  4. package/esm2020/lib/modules/action-button/action-button-container.component.mjs +139 -0
  5. package/esm2020/lib/modules/action-button/action-button-details.component.mjs +14 -0
  6. package/esm2020/lib/modules/action-button/action-button-header.component.mjs +15 -0
  7. package/esm2020/lib/modules/action-button/action-button-icon.component.mjs +40 -0
  8. package/esm2020/lib/modules/action-button/action-button-permalink.mjs +2 -0
  9. package/esm2020/lib/modules/action-button/action-button.component.mjs +34 -0
  10. package/esm2020/lib/modules/action-button/action-button.module.mjs +62 -0
  11. package/esm2020/lib/modules/action-button/types/action-button-container-align-items-type.mjs +2 -0
  12. package/esm2020/lib/modules/action-button/types/action-button-container-align-items.mjs +2 -0
  13. package/esm2020/lib/modules/back-to-top/back-to-top-adapter.service.mjs +84 -0
  14. package/esm2020/lib/modules/back-to-top/back-to-top.component.mjs +26 -0
  15. package/esm2020/lib/modules/back-to-top/back-to-top.directive.mjs +114 -0
  16. package/esm2020/lib/modules/back-to-top/back-to-top.module.mjs +35 -0
  17. package/esm2020/lib/modules/back-to-top/models/back-to-top-message-type.mjs +11 -0
  18. package/esm2020/lib/modules/back-to-top/models/back-to-top-message.mjs +2 -0
  19. package/esm2020/lib/modules/back-to-top/models/back-to-top-options.mjs +2 -0
  20. package/esm2020/lib/modules/box/box-content.component.mjs +15 -0
  21. package/esm2020/lib/modules/box/box-controls.component.mjs +14 -0
  22. package/esm2020/lib/modules/box/box-header.component.mjs +14 -0
  23. package/esm2020/lib/modules/box/box.component.mjs +21 -0
  24. package/esm2020/lib/modules/box/box.module.mjs +38 -0
  25. package/esm2020/lib/modules/card/card-actions.component.mjs +14 -0
  26. package/esm2020/lib/modules/card/card-content.component.mjs +14 -0
  27. package/esm2020/lib/modules/card/card-title.component.mjs +14 -0
  28. package/esm2020/lib/modules/card/card.component.mjs +75 -0
  29. package/esm2020/lib/modules/card/card.module.mjs +61 -0
  30. package/esm2020/lib/modules/definition-list/definition-list-content.component.mjs +14 -0
  31. package/esm2020/lib/modules/definition-list/definition-list-heading.component.mjs +14 -0
  32. package/esm2020/lib/modules/definition-list/definition-list-label.component.mjs +20 -0
  33. package/esm2020/lib/modules/definition-list/definition-list-value.component.mjs +21 -0
  34. package/esm2020/lib/modules/definition-list/definition-list.component.mjs +38 -0
  35. package/esm2020/lib/modules/definition-list/definition-list.module.mjs +44 -0
  36. package/esm2020/lib/modules/definition-list/definition-list.service.mjs +18 -0
  37. package/esm2020/lib/modules/description-list/description-list-adapter-service.mjs +43 -0
  38. package/esm2020/lib/modules/description-list/description-list-content.component.mjs +22 -0
  39. package/esm2020/lib/modules/description-list/description-list-description.component.mjs +49 -0
  40. package/esm2020/lib/modules/description-list/description-list-term.component.mjs +20 -0
  41. package/esm2020/lib/modules/description-list/description-list.component.mjs +101 -0
  42. package/esm2020/lib/modules/description-list/description-list.module.mjs +53 -0
  43. package/esm2020/lib/modules/description-list/description-list.service.mjs +26 -0
  44. package/esm2020/lib/modules/description-list/types/description-list-mode-type.mjs +2 -0
  45. package/esm2020/lib/modules/description-list/types/description-list-mode.mjs +24 -0
  46. package/esm2020/lib/modules/fluid-grid/column.component.mjs +53 -0
  47. package/esm2020/lib/modules/fluid-grid/fluid-grid-gutter-size.mjs +20 -0
  48. package/esm2020/lib/modules/fluid-grid/fluid-grid.component.mjs +62 -0
  49. package/esm2020/lib/modules/fluid-grid/fluid-grid.module.mjs +20 -0
  50. package/esm2020/lib/modules/fluid-grid/row.component.mjs +25 -0
  51. package/esm2020/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.mjs +2 -0
  52. package/esm2020/lib/modules/format/format-item.mjs +2 -0
  53. package/esm2020/lib/modules/format/format.component.mjs +59 -0
  54. package/esm2020/lib/modules/format/format.module.mjs +18 -0
  55. package/esm2020/lib/modules/inline-delete/inline-delete-adapter.service.mjs +115 -0
  56. package/esm2020/lib/modules/inline-delete/inline-delete-type.mjs +16 -0
  57. package/esm2020/lib/modules/inline-delete/inline-delete.component.mjs +161 -0
  58. package/esm2020/lib/modules/inline-delete/inline-delete.module.mjs +34 -0
  59. package/esm2020/lib/modules/page/page-theme-adapter.service.mjs +26 -0
  60. package/esm2020/lib/modules/page/page.component.mjs +27 -0
  61. package/esm2020/lib/modules/page/page.module.mjs +16 -0
  62. package/esm2020/lib/modules/page-summary/page-summary-adapter.service.mjs +23 -0
  63. package/esm2020/lib/modules/page-summary/page-summary-alert.component.mjs +17 -0
  64. package/esm2020/lib/modules/page-summary/page-summary-content.component.mjs +16 -0
  65. package/esm2020/lib/modules/page-summary/page-summary-image.component.mjs +17 -0
  66. package/esm2020/lib/modules/page-summary/page-summary-key-info.component.mjs +15 -0
  67. package/esm2020/lib/modules/page-summary/page-summary-status.component.mjs +17 -0
  68. package/esm2020/lib/modules/page-summary/page-summary-subtitle.component.mjs +16 -0
  69. package/esm2020/lib/modules/page-summary/page-summary-title.component.mjs +16 -0
  70. package/esm2020/lib/modules/page-summary/page-summary.component.mjs +45 -0
  71. package/esm2020/lib/modules/page-summary/page-summary.module.mjs +57 -0
  72. package/esm2020/lib/modules/shared/sky-layout-resources.module.mjs +60 -0
  73. package/esm2020/lib/modules/text-expand/text-expand-adapter.service.mjs +31 -0
  74. package/esm2020/lib/modules/text-expand/text-expand-modal-context.mjs +6 -0
  75. package/esm2020/lib/modules/text-expand/text-expand-modal.component.mjs +26 -0
  76. package/esm2020/lib/modules/text-expand/text-expand.component.mjs +247 -0
  77. package/esm2020/lib/modules/text-expand/text-expand.module.mjs +35 -0
  78. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +37 -0
  79. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +171 -0
  80. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.module.mjs +20 -0
  81. package/esm2020/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.mjs +2 -0
  82. package/esm2020/lib/modules/toolbar/toolbar-item.component.mjs +14 -0
  83. package/esm2020/lib/modules/toolbar/toolbar-section.component.mjs +14 -0
  84. package/esm2020/lib/modules/toolbar/toolbar-view-actions.component.mjs +15 -0
  85. package/esm2020/lib/modules/toolbar/toolbar.component.mjs +25 -0
  86. package/esm2020/lib/modules/toolbar/toolbar.module.mjs +37 -0
  87. package/esm2020/skyux-layout.mjs +5 -0
  88. package/esm2020/testing/action-button-fixture.mjs +44 -0
  89. package/esm2020/testing/card-fixture.mjs +63 -0
  90. package/esm2020/testing/page-summary-fixture.mjs +29 -0
  91. package/esm2020/testing/public-api.mjs +4 -0
  92. package/esm2020/testing/skyux-layout-testing.mjs +5 -0
  93. package/fesm2015/{skyux-layout-testing.js → skyux-layout-testing.mjs} +1 -1
  94. package/fesm2015/skyux-layout-testing.mjs.map +1 -0
  95. package/fesm2015/skyux-layout.mjs +2724 -0
  96. package/fesm2015/skyux-layout.mjs.map +1 -0
  97. package/fesm2020/skyux-layout-testing.mjs +139 -0
  98. package/fesm2020/skyux-layout-testing.mjs.map +1 -0
  99. package/fesm2020/skyux-layout.mjs +2722 -0
  100. package/fesm2020/skyux-layout.mjs.map +1 -0
  101. package/package.json +45 -21
  102. package/testing/package.json +5 -5
  103. package/bundles/skyux-layout-testing.umd.js +0 -191
  104. package/bundles/skyux-layout.umd.js +0 -3570
  105. package/esm2015/index.js +0 -74
  106. package/esm2015/index.js.map +0 -1
  107. package/esm2015/lib/modules/action-button/action-button-adapter-service.js +0 -43
  108. package/esm2015/lib/modules/action-button/action-button-adapter-service.js.map +0 -1
  109. package/esm2015/lib/modules/action-button/action-button-container.component.js +0 -145
  110. package/esm2015/lib/modules/action-button/action-button-container.component.js.map +0 -1
  111. package/esm2015/lib/modules/action-button/action-button-details.component.js +0 -17
  112. package/esm2015/lib/modules/action-button/action-button-details.component.js.map +0 -1
  113. package/esm2015/lib/modules/action-button/action-button-header.component.js +0 -19
  114. package/esm2015/lib/modules/action-button/action-button-header.component.js.map +0 -1
  115. package/esm2015/lib/modules/action-button/action-button-icon.component.js +0 -44
  116. package/esm2015/lib/modules/action-button/action-button-icon.component.js.map +0 -1
  117. package/esm2015/lib/modules/action-button/action-button-permalink.js +0 -2
  118. package/esm2015/lib/modules/action-button/action-button-permalink.js.map +0 -1
  119. package/esm2015/lib/modules/action-button/action-button.component.js +0 -39
  120. package/esm2015/lib/modules/action-button/action-button.component.js.map +0 -1
  121. package/esm2015/lib/modules/action-button/action-button.module.js +0 -62
  122. package/esm2015/lib/modules/action-button/action-button.module.js.map +0 -1
  123. package/esm2015/lib/modules/action-button/types/action-button-container-align-items-type.js +0 -2
  124. package/esm2015/lib/modules/action-button/types/action-button-container-align-items-type.js.map +0 -1
  125. package/esm2015/lib/modules/action-button/types/action-button-container-align-items.js +0 -2
  126. package/esm2015/lib/modules/action-button/types/action-button-container-align-items.js.map +0 -1
  127. package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js +0 -84
  128. package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js.map +0 -1
  129. package/esm2015/lib/modules/back-to-top/back-to-top.component.js +0 -31
  130. package/esm2015/lib/modules/back-to-top/back-to-top.component.js.map +0 -1
  131. package/esm2015/lib/modules/back-to-top/back-to-top.directive.js +0 -114
  132. package/esm2015/lib/modules/back-to-top/back-to-top.directive.js.map +0 -1
  133. package/esm2015/lib/modules/back-to-top/back-to-top.module.js +0 -36
  134. package/esm2015/lib/modules/back-to-top/back-to-top.module.js.map +0 -1
  135. package/esm2015/lib/modules/back-to-top/models/back-to-top-message-type.js +0 -11
  136. package/esm2015/lib/modules/back-to-top/models/back-to-top-message-type.js.map +0 -1
  137. package/esm2015/lib/modules/back-to-top/models/back-to-top-message.js +0 -2
  138. package/esm2015/lib/modules/back-to-top/models/back-to-top-message.js.map +0 -1
  139. package/esm2015/lib/modules/back-to-top/models/back-to-top-options.js +0 -2
  140. package/esm2015/lib/modules/back-to-top/models/back-to-top-options.js.map +0 -1
  141. package/esm2015/lib/modules/box/box-content.component.js +0 -18
  142. package/esm2015/lib/modules/box/box-content.component.js.map +0 -1
  143. package/esm2015/lib/modules/box/box-controls.component.js +0 -17
  144. package/esm2015/lib/modules/box/box-controls.component.js.map +0 -1
  145. package/esm2015/lib/modules/box/box-header.component.js +0 -17
  146. package/esm2015/lib/modules/box/box-header.component.js.map +0 -1
  147. package/esm2015/lib/modules/box/box.component.js +0 -26
  148. package/esm2015/lib/modules/box/box.component.js.map +0 -1
  149. package/esm2015/lib/modules/box/box.module.js +0 -38
  150. package/esm2015/lib/modules/box/box.module.js.map +0 -1
  151. package/esm2015/lib/modules/card/card-actions.component.js +0 -18
  152. package/esm2015/lib/modules/card/card-actions.component.js.map +0 -1
  153. package/esm2015/lib/modules/card/card-content.component.js +0 -17
  154. package/esm2015/lib/modules/card/card-content.component.js.map +0 -1
  155. package/esm2015/lib/modules/card/card-title.component.js +0 -17
  156. package/esm2015/lib/modules/card/card-title.component.js.map +0 -1
  157. package/esm2015/lib/modules/card/card.component.js +0 -79
  158. package/esm2015/lib/modules/card/card.component.js.map +0 -1
  159. package/esm2015/lib/modules/card/card.module.js +0 -61
  160. package/esm2015/lib/modules/card/card.module.js.map +0 -1
  161. package/esm2015/lib/modules/definition-list/definition-list-content.component.js +0 -19
  162. package/esm2015/lib/modules/definition-list/definition-list-content.component.js.map +0 -1
  163. package/esm2015/lib/modules/definition-list/definition-list-heading.component.js +0 -19
  164. package/esm2015/lib/modules/definition-list/definition-list-heading.component.js.map +0 -1
  165. package/esm2015/lib/modules/definition-list/definition-list-label.component.js +0 -25
  166. package/esm2015/lib/modules/definition-list/definition-list-label.component.js.map +0 -1
  167. package/esm2015/lib/modules/definition-list/definition-list-value.component.js +0 -25
  168. package/esm2015/lib/modules/definition-list/definition-list-value.component.js.map +0 -1
  169. package/esm2015/lib/modules/definition-list/definition-list.component.js +0 -44
  170. package/esm2015/lib/modules/definition-list/definition-list.component.js.map +0 -1
  171. package/esm2015/lib/modules/definition-list/definition-list.module.js +0 -44
  172. package/esm2015/lib/modules/definition-list/definition-list.module.js.map +0 -1
  173. package/esm2015/lib/modules/definition-list/definition-list.service.js +0 -18
  174. package/esm2015/lib/modules/definition-list/definition-list.service.js.map +0 -1
  175. package/esm2015/lib/modules/description-list/description-list-adapter-service.js +0 -43
  176. package/esm2015/lib/modules/description-list/description-list-adapter-service.js.map +0 -1
  177. package/esm2015/lib/modules/description-list/description-list-content.component.js +0 -25
  178. package/esm2015/lib/modules/description-list/description-list-content.component.js.map +0 -1
  179. package/esm2015/lib/modules/description-list/description-list-description.component.js +0 -53
  180. package/esm2015/lib/modules/description-list/description-list-description.component.js.map +0 -1
  181. package/esm2015/lib/modules/description-list/description-list-term.component.js +0 -24
  182. package/esm2015/lib/modules/description-list/description-list-term.component.js.map +0 -1
  183. package/esm2015/lib/modules/description-list/description-list.component.js +0 -107
  184. package/esm2015/lib/modules/description-list/description-list.component.js.map +0 -1
  185. package/esm2015/lib/modules/description-list/description-list.module.js +0 -53
  186. package/esm2015/lib/modules/description-list/description-list.module.js.map +0 -1
  187. package/esm2015/lib/modules/description-list/description-list.service.js +0 -26
  188. package/esm2015/lib/modules/description-list/description-list.service.js.map +0 -1
  189. package/esm2015/lib/modules/description-list/types/description-list-mode-type.js +0 -2
  190. package/esm2015/lib/modules/description-list/types/description-list-mode-type.js.map +0 -1
  191. package/esm2015/lib/modules/description-list/types/description-list-mode.js +0 -24
  192. package/esm2015/lib/modules/description-list/types/description-list-mode.js.map +0 -1
  193. package/esm2015/lib/modules/fluid-grid/column.component.js +0 -58
  194. package/esm2015/lib/modules/fluid-grid/column.component.js.map +0 -1
  195. package/esm2015/lib/modules/fluid-grid/fluid-grid-gutter-size.js +0 -20
  196. package/esm2015/lib/modules/fluid-grid/fluid-grid-gutter-size.js.map +0 -1
  197. package/esm2015/lib/modules/fluid-grid/fluid-grid.component.js +0 -66
  198. package/esm2015/lib/modules/fluid-grid/fluid-grid.component.js.map +0 -1
  199. package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js +0 -20
  200. package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js.map +0 -1
  201. package/esm2015/lib/modules/fluid-grid/row.component.js +0 -29
  202. package/esm2015/lib/modules/fluid-grid/row.component.js.map +0 -1
  203. package/esm2015/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.js +0 -2
  204. package/esm2015/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.js.map +0 -1
  205. package/esm2015/lib/modules/format/format-item.js +0 -2
  206. package/esm2015/lib/modules/format/format-item.js.map +0 -1
  207. package/esm2015/lib/modules/format/format.component.js +0 -63
  208. package/esm2015/lib/modules/format/format.component.js.map +0 -1
  209. package/esm2015/lib/modules/format/format.module.js +0 -18
  210. package/esm2015/lib/modules/format/format.module.js.map +0 -1
  211. package/esm2015/lib/modules/inline-delete/inline-delete-adapter.service.js +0 -115
  212. package/esm2015/lib/modules/inline-delete/inline-delete-adapter.service.js.map +0 -1
  213. package/esm2015/lib/modules/inline-delete/inline-delete-type.js +0 -16
  214. package/esm2015/lib/modules/inline-delete/inline-delete-type.js.map +0 -1
  215. package/esm2015/lib/modules/inline-delete/inline-delete.component.js +0 -167
  216. package/esm2015/lib/modules/inline-delete/inline-delete.component.js.map +0 -1
  217. package/esm2015/lib/modules/inline-delete/inline-delete.module.js +0 -34
  218. package/esm2015/lib/modules/inline-delete/inline-delete.module.js.map +0 -1
  219. package/esm2015/lib/modules/page/page-theme-adapter.service.js +0 -26
  220. package/esm2015/lib/modules/page/page-theme-adapter.service.js.map +0 -1
  221. package/esm2015/lib/modules/page/page.component.js +0 -31
  222. package/esm2015/lib/modules/page/page.component.js.map +0 -1
  223. package/esm2015/lib/modules/page/page.module.js +0 -16
  224. package/esm2015/lib/modules/page/page.module.js.map +0 -1
  225. package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js +0 -23
  226. package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js.map +0 -1
  227. package/esm2015/lib/modules/page-summary/page-summary-alert.component.js +0 -21
  228. package/esm2015/lib/modules/page-summary/page-summary-alert.component.js.map +0 -1
  229. package/esm2015/lib/modules/page-summary/page-summary-content.component.js +0 -20
  230. package/esm2015/lib/modules/page-summary/page-summary-content.component.js.map +0 -1
  231. package/esm2015/lib/modules/page-summary/page-summary-image.component.js +0 -21
  232. package/esm2015/lib/modules/page-summary/page-summary-image.component.js.map +0 -1
  233. package/esm2015/lib/modules/page-summary/page-summary-key-info.component.js +0 -19
  234. package/esm2015/lib/modules/page-summary/page-summary-key-info.component.js.map +0 -1
  235. package/esm2015/lib/modules/page-summary/page-summary-status.component.js +0 -21
  236. package/esm2015/lib/modules/page-summary/page-summary-status.component.js.map +0 -1
  237. package/esm2015/lib/modules/page-summary/page-summary-subtitle.component.js +0 -20
  238. package/esm2015/lib/modules/page-summary/page-summary-subtitle.component.js.map +0 -1
  239. package/esm2015/lib/modules/page-summary/page-summary-title.component.js +0 -20
  240. package/esm2015/lib/modules/page-summary/page-summary-title.component.js.map +0 -1
  241. package/esm2015/lib/modules/page-summary/page-summary.component.js +0 -50
  242. package/esm2015/lib/modules/page-summary/page-summary.component.js.map +0 -1
  243. package/esm2015/lib/modules/page-summary/page-summary.module.js +0 -57
  244. package/esm2015/lib/modules/page-summary/page-summary.module.js.map +0 -1
  245. package/esm2015/lib/modules/shared/sky-layout-resources.module.js +0 -60
  246. package/esm2015/lib/modules/shared/sky-layout-resources.module.js.map +0 -1
  247. package/esm2015/lib/modules/text-expand/text-expand-adapter.service.js +0 -31
  248. package/esm2015/lib/modules/text-expand/text-expand-adapter.service.js.map +0 -1
  249. package/esm2015/lib/modules/text-expand/text-expand-modal-context.js +0 -6
  250. package/esm2015/lib/modules/text-expand/text-expand-modal-context.js.map +0 -1
  251. package/esm2015/lib/modules/text-expand/text-expand-modal.component.js +0 -30
  252. package/esm2015/lib/modules/text-expand/text-expand-modal.component.js.map +0 -1
  253. package/esm2015/lib/modules/text-expand/text-expand.component.js +0 -252
  254. package/esm2015/lib/modules/text-expand/text-expand.component.js.map +0 -1
  255. package/esm2015/lib/modules/text-expand/text-expand.module.js +0 -36
  256. package/esm2015/lib/modules/text-expand/text-expand.module.js.map +0 -1
  257. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.js +0 -37
  258. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.js.map +0 -1
  259. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js +0 -176
  260. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js.map +0 -1
  261. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js +0 -20
  262. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js.map +0 -1
  263. package/esm2015/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.js +0 -2
  264. package/esm2015/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.js.map +0 -1
  265. package/esm2015/lib/modules/toolbar/toolbar-item.component.js +0 -18
  266. package/esm2015/lib/modules/toolbar/toolbar-item.component.js.map +0 -1
  267. package/esm2015/lib/modules/toolbar/toolbar-section.component.js +0 -18
  268. package/esm2015/lib/modules/toolbar/toolbar-section.component.js.map +0 -1
  269. package/esm2015/lib/modules/toolbar/toolbar-view-actions.component.js +0 -20
  270. package/esm2015/lib/modules/toolbar/toolbar-view-actions.component.js.map +0 -1
  271. package/esm2015/lib/modules/toolbar/toolbar.component.js +0 -29
  272. package/esm2015/lib/modules/toolbar/toolbar.component.js.map +0 -1
  273. package/esm2015/lib/modules/toolbar/toolbar.module.js +0 -37
  274. package/esm2015/lib/modules/toolbar/toolbar.module.js.map +0 -1
  275. package/esm2015/skyux-layout.js +0 -5
  276. package/esm2015/skyux-layout.js.map +0 -1
  277. package/esm2015/testing/action-button-fixture.js +0 -44
  278. package/esm2015/testing/action-button-fixture.js.map +0 -1
  279. package/esm2015/testing/card-fixture.js +0 -63
  280. package/esm2015/testing/card-fixture.js.map +0 -1
  281. package/esm2015/testing/page-summary-fixture.js +0 -29
  282. package/esm2015/testing/page-summary-fixture.js.map +0 -1
  283. package/esm2015/testing/public-api.js +0 -4
  284. package/esm2015/testing/public-api.js.map +0 -1
  285. package/esm2015/testing/skyux-layout-testing.js +0 -5
  286. package/esm2015/testing/skyux-layout-testing.js.map +0 -1
  287. package/fesm2015/skyux-layout-testing.js.map +0 -1
  288. package/fesm2015/skyux-layout.js +0 -2912
  289. package/fesm2015/skyux-layout.js.map +0 -1
@@ -0,0 +1,2724 @@
1
+ import * as i3 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, EventEmitter, Component, ViewEncapsulation, Input, Output, ElementRef, Optional, ContentChildren, ViewChild, HostListener, NgModule, ChangeDetectionStrategy, Directive, TemplateRef, HostBinding } from '@angular/core';
5
+ import * as i2 from '@angular/router';
6
+ import { RouterModule } from '@angular/router';
7
+ import * as i2$1 from '@skyux/indicators';
8
+ import { SkyIconModule, SkyWaitModule } from '@skyux/indicators';
9
+ import * as i4 from '@skyux/router';
10
+ import { SkyHrefModule } from '@skyux/router';
11
+ import * as i3$1 from '@skyux/theme';
12
+ import { SkyThemeModule } from '@skyux/theme';
13
+ import { Subject, BehaviorSubject, forkJoin } from 'rxjs';
14
+ import { takeUntil, take } from 'rxjs/operators';
15
+ import * as i1 from '@skyux/core';
16
+ import { SkyMediaBreakpoints, SkyDockModule, SkyCoreAdapterService } from '@skyux/core';
17
+ import * as i1$1 from '@skyux/i18n';
18
+ import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
19
+ import * as i3$2 from '@angular/forms';
20
+ import { FormsModule } from '@angular/forms';
21
+ import * as i1$2 from '@skyux/forms';
22
+ import { SkyCheckboxModule } from '@skyux/forms';
23
+ import { trigger, transition, style, query, group, animate } from '@angular/animations';
24
+ import * as i2$2 from '@skyux/modals';
25
+ import { SkyModalModule } from '@skyux/modals';
26
+
27
+ const RESPONSIVE_CLASS_SM = 'sky-action-button-container-sm';
28
+ const RESPONSIVE_CLASS_MD = 'sky-action-button-container-md';
29
+ const RESPONSIVE_CLASS_LG = 'sky-action-button-container-lg';
30
+ const BREAKPOINT_MD = 912;
31
+ const BREAKPOINT_LG = 1378;
32
+ /**
33
+ * @internal
34
+ */
35
+ class SkyActionButtonAdapterService {
36
+ constructor(rendererFactory) {
37
+ this.renderer = rendererFactory.createRenderer(undefined, undefined);
38
+ }
39
+ getParentWidth(element) {
40
+ return element.nativeElement.parentNode.getBoundingClientRect().width;
41
+ }
42
+ setResponsiveClass(element, width) {
43
+ const el = element.nativeElement;
44
+ const className = this.getResponsiveClassName(width);
45
+ this.renderer.removeClass(el, RESPONSIVE_CLASS_SM);
46
+ this.renderer.removeClass(el, RESPONSIVE_CLASS_MD);
47
+ this.renderer.removeClass(el, RESPONSIVE_CLASS_LG);
48
+ this.renderer.addClass(el, className);
49
+ }
50
+ getResponsiveClassName(width) {
51
+ if (width < BREAKPOINT_MD) {
52
+ return RESPONSIVE_CLASS_SM;
53
+ }
54
+ else if (width > BREAKPOINT_MD && width < BREAKPOINT_LG) {
55
+ return RESPONSIVE_CLASS_MD;
56
+ }
57
+ else {
58
+ return RESPONSIVE_CLASS_LG;
59
+ }
60
+ }
61
+ }
62
+ SkyActionButtonAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
63
+ SkyActionButtonAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonAdapterService });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonAdapterService, decorators: [{
65
+ type: Injectable
66
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
67
+
68
+ /**
69
+ * Creates a button to present users with an option to move forward with tasks.
70
+ */
71
+ class SkyActionButtonComponent {
72
+ constructor() {
73
+ /**
74
+ * Fires when users select the action button.
75
+ */
76
+ this.actionClick = new EventEmitter();
77
+ }
78
+ buttonClicked() {
79
+ this.actionClick.emit();
80
+ }
81
+ enterPress() {
82
+ this.actionClick.emit();
83
+ }
84
+ }
85
+ SkyActionButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
+ SkyActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyActionButtonComponent, selector: "sky-action-button", inputs: { permalink: "permalink" }, outputs: { actionClick: "actionClick" }, ngImport: i0, template: "<a\n *ngIf=\"permalink && permalink.route\"\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [fragment]=\"permalink.route?.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n [queryParams]=\"permalink.route?.extras?.queryParams\"\n [queryParamsHandling]=\"permalink.route?.extras?.queryParamsHandling\"\n [routerLink]=\"permalink.route?.commands\"\n>\n <ng-container *ngTemplateOutlet=\"actionButtonContent\"> </ng-container>\n</a>\n\n<a\n *ngIf=\"permalink && !permalink.route\"\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [skyHref]=\"permalink.url\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n>\n <ng-container *ngTemplateOutlet=\"actionButtonContent\"> </ng-container>\n</a>\n\n<div\n *ngIf=\"!permalink\"\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n role=\"button\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n (click)=\"buttonClicked()\"\n (keydown.enter)=\"enterPress()\"\n>\n <ng-container *ngTemplateOutlet=\"actionButtonContent\"> </ng-container>\n</div>\n\n<ng-template #actionButtonContent>\n <ng-container *skyThemeIf=\"'default'\">\n <div class=\"sky-action-button-icon-header-container\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"details\"></ng-container>\n </ng-container>\n\n <ng-container *skyThemeIf=\"'modern'\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n <div class=\"sky-action-button-content\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <div\n class=\"sky-action-button-details\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern'\n }\"\n >\n <ng-container *ngTemplateOutlet=\"details\"></ng-container>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #icon>\n <ng-content select=\"sky-action-button-icon\"></ng-content>\n</ng-template>\n\n<ng-template #header>\n <ng-content select=\"sky-action-button-header\"></ng-content>\n</ng-template>\n\n<ng-template #details>\n <ng-content select=\"sky-action-button-details\"></ng-content>\n</ng-template>\n", styles: [".sky-action-button{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;cursor:pointer;text-align:center;text-decoration:none!important;display:block}.sky-action-button:hover{border-color:#c2c4c6}.sky-action-button-icon-header-container{display:flex;justify-content:center}.sky-action-button{padding:20px 20px 30px;margin:0 15px}.sky-action-button-icon-header-container{margin-bottom:20px}.sky-responsive-container-xs .sky-action-button,.sky-responsive-container-sm .sky-action-button,.sky-responsive-container-md .sky-action-button,.sky-responsive-container-lg .sky-action-button{padding:20px 20px 30px;margin:0 15px}.sky-responsive-container-xs .sky-action-button-icon-header-container,.sky-responsive-container-sm .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-action-button-icon-header-container{margin-bottom:20px}@media (min-width: 768px){.sky-action-button{padding:30px 20px;margin:0;max-width:236px}.sky-action-button-icon-header-container{margin-bottom:0;flex-direction:column}}.sky-responsive-container-sm .sky-action-button,.sky-responsive-container-md .sky-action-button,.sky-responsive-container-lg .sky-action-button{padding:30px 20px;margin:0;max-width:236px}.sky-responsive-container-sm .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-action-button-icon-header-container{margin-bottom:0;flex-direction:column}.sky-theme-modern .sky-action-button{display:flex;flex-flow:row nowrap;padding:30px;text-align:left;border:none}.sky-theme-modern .sky-action-button .sky-action-button-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-theme-modern .sky-action-button,.sky-theme-modern .sky-responsive-container-xs .sky-action-button,.sky-theme-modern .sky-responsive-container-sm .sky-action-button,.sky-theme-modern .sky-responsive-container-md .sky-action-button,.sky-theme-modern .sky-responsive-container-lg .sky-action-button{padding:30px;margin:0;max-width:446px}@media (min-width: 768px){.sky-theme-modern .sky-action-button{padding:30px;margin:0}}.sky-theme-modern .sky-responsive-container-sm .sky-action-button,.sky-theme-modern .sky-responsive-container-md .sky-action-button,.sky-theme-modern .sky-responsive-container-lg .sky-action-button{padding:30px;margin:0}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.λ1, selector: "[skyHref]", inputs: ["skyHref", "skyHrefElse"] }, { type: i3$1.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], encapsulation: i0.ViewEncapsulation.None });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 'sky-action-button', encapsulation: ViewEncapsulation.None, template: "<a\n *ngIf=\"permalink && permalink.route\"\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [fragment]=\"permalink.route?.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n [queryParams]=\"permalink.route?.extras?.queryParams\"\n [queryParamsHandling]=\"permalink.route?.extras?.queryParamsHandling\"\n [routerLink]=\"permalink.route?.commands\"\n>\n <ng-container *ngTemplateOutlet=\"actionButtonContent\"> </ng-container>\n</a>\n\n<a\n *ngIf=\"permalink && !permalink.route\"\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [skyHref]=\"permalink.url\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n>\n <ng-container *ngTemplateOutlet=\"actionButtonContent\"> </ng-container>\n</a>\n\n<div\n *ngIf=\"!permalink\"\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n role=\"button\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n (click)=\"buttonClicked()\"\n (keydown.enter)=\"enterPress()\"\n>\n <ng-container *ngTemplateOutlet=\"actionButtonContent\"> </ng-container>\n</div>\n\n<ng-template #actionButtonContent>\n <ng-container *skyThemeIf=\"'default'\">\n <div class=\"sky-action-button-icon-header-container\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"details\"></ng-container>\n </ng-container>\n\n <ng-container *skyThemeIf=\"'modern'\">\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\n <div class=\"sky-action-button-content\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <div\n class=\"sky-action-button-details\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern'\n }\"\n >\n <ng-container *ngTemplateOutlet=\"details\"></ng-container>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #icon>\n <ng-content select=\"sky-action-button-icon\"></ng-content>\n</ng-template>\n\n<ng-template #header>\n <ng-content select=\"sky-action-button-header\"></ng-content>\n</ng-template>\n\n<ng-template #details>\n <ng-content select=\"sky-action-button-details\"></ng-content>\n</ng-template>\n", styles: [".sky-action-button{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;cursor:pointer;text-align:center;text-decoration:none!important;display:block}.sky-action-button:hover{border-color:#c2c4c6}.sky-action-button-icon-header-container{display:flex;justify-content:center}.sky-action-button{padding:20px 20px 30px;margin:0 15px}.sky-action-button-icon-header-container{margin-bottom:20px}.sky-responsive-container-xs .sky-action-button,.sky-responsive-container-sm .sky-action-button,.sky-responsive-container-md .sky-action-button,.sky-responsive-container-lg .sky-action-button{padding:20px 20px 30px;margin:0 15px}.sky-responsive-container-xs .sky-action-button-icon-header-container,.sky-responsive-container-sm .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-action-button-icon-header-container{margin-bottom:20px}@media (min-width: 768px){.sky-action-button{padding:30px 20px;margin:0;max-width:236px}.sky-action-button-icon-header-container{margin-bottom:0;flex-direction:column}}.sky-responsive-container-sm .sky-action-button,.sky-responsive-container-md .sky-action-button,.sky-responsive-container-lg .sky-action-button{padding:30px 20px;margin:0;max-width:236px}.sky-responsive-container-sm .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-action-button-icon-header-container{margin-bottom:0;flex-direction:column}.sky-theme-modern .sky-action-button{display:flex;flex-flow:row nowrap;padding:30px;text-align:left;border:none}.sky-theme-modern .sky-action-button .sky-action-button-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-theme-modern .sky-action-button,.sky-theme-modern .sky-responsive-container-xs .sky-action-button,.sky-theme-modern .sky-responsive-container-sm .sky-action-button,.sky-theme-modern .sky-responsive-container-md .sky-action-button,.sky-theme-modern .sky-responsive-container-lg .sky-action-button{padding:30px;margin:0;max-width:446px}@media (min-width: 768px){.sky-theme-modern .sky-action-button{padding:30px;margin:0}}.sky-theme-modern .sky-responsive-container-sm .sky-action-button,.sky-theme-modern .sky-responsive-container-md .sky-action-button,.sky-theme-modern .sky-responsive-container-lg .sky-action-button{padding:30px;margin:0}\n"] }]
90
+ }], propDecorators: { permalink: [{
91
+ type: Input
92
+ }], actionClick: [{
93
+ type: Output
94
+ }] } });
95
+
96
+ /**
97
+ * Wraps action buttons to ensures that they have consistent height and spacing.
98
+ * @required
99
+ */
100
+ class SkyActionButtonContainerComponent {
101
+ constructor(actionButtonAdapterService, changeRef, coreAdapterService, hostElRef, mutationObserverSvc, ngZone, themeSvc) {
102
+ this.actionButtonAdapterService = actionButtonAdapterService;
103
+ this.changeRef = changeRef;
104
+ this.coreAdapterService = coreAdapterService;
105
+ this.hostElRef = hostElRef;
106
+ this.mutationObserverSvc = mutationObserverSvc;
107
+ this.ngZone = ngZone;
108
+ this.themeSvc = themeSvc;
109
+ this.ngUnsubscribe = new Subject();
110
+ }
111
+ /**
112
+ * Specifies how to display the action buttons inside the action button container.
113
+ * Options are `"center"` or `"left"`.
114
+ * @default "center"
115
+ */
116
+ set alignItems(value) {
117
+ this._alignItems = value;
118
+ }
119
+ get alignItems() {
120
+ return this._alignItems || 'center';
121
+ }
122
+ set themeName(value) {
123
+ this._themeName = value;
124
+ this.updateResponsiveClass();
125
+ this.updateHeight();
126
+ }
127
+ ngOnInit() {
128
+ /* istanbul ignore else */
129
+ if (this.themeSvc) {
130
+ this.themeSvc.settingsChange
131
+ .pipe(takeUntil(this.ngUnsubscribe))
132
+ .subscribe((themeSettings) => {
133
+ this.themeName = themeSettings.currentSettings.theme.name;
134
+ this.changeRef.markForCheck();
135
+ });
136
+ }
137
+ // Wait for children components to complete rendering before container width is determined.
138
+ setTimeout(() => {
139
+ this.updateResponsiveClass();
140
+ });
141
+ }
142
+ ngAfterContentInit() {
143
+ // Watch for dynamic action button changes and recalculate height.
144
+ /* istanbul ignore else */
145
+ if (this.actionButtons) {
146
+ this.actionButtons.changes
147
+ .pipe(takeUntil(this.ngUnsubscribe))
148
+ .subscribe(() => {
149
+ this.updateHeight();
150
+ });
151
+ }
152
+ this.initMutationObserver();
153
+ }
154
+ ngOnDestroy() {
155
+ this.ngUnsubscribe.next();
156
+ this.ngUnsubscribe.complete();
157
+ this.destroyMutationObserver();
158
+ }
159
+ onWindowResize() {
160
+ this.updateResponsiveClass();
161
+ }
162
+ initMutationObserver() {
163
+ /* istanbul ignore else */
164
+ if (!this.mutationObserver) {
165
+ const el = this.containerRef.nativeElement;
166
+ // MutationObserver is patched by Zone.js and therefore becomes part of the
167
+ // Angular change detection cycle, but this can lead to infinite loops in some
168
+ // scenarios. This will keep MutationObserver from triggering change detection.
169
+ this.ngZone.runOutsideAngular(() => {
170
+ this.mutationObserver = this.mutationObserverSvc.create(() => {
171
+ this.updateHeight();
172
+ });
173
+ this.mutationObserver.observe(el, {
174
+ characterData: true,
175
+ subtree: true,
176
+ });
177
+ });
178
+ }
179
+ }
180
+ destroyMutationObserver() {
181
+ if (this.mutationObserver) {
182
+ this.mutationObserver.disconnect();
183
+ this.mutationObserver = undefined;
184
+ }
185
+ }
186
+ updateHeight() {
187
+ this.coreAdapterService.resetHeight(this.containerRef, '.sky-action-button');
188
+ if (this._themeName === 'modern') {
189
+ // Wait for children components to complete rendering before height is determined.
190
+ setTimeout(() => {
191
+ this.coreAdapterService.syncMaxHeight(this.containerRef, '.sky-action-button');
192
+ });
193
+ }
194
+ }
195
+ updateResponsiveClass() {
196
+ const parentWidth = this.actionButtonAdapterService.getParentWidth(this.hostElRef);
197
+ this.actionButtonAdapterService.setResponsiveClass(this.containerRef, parentWidth);
198
+ }
199
+ }
200
+ SkyActionButtonContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonContainerComponent, deps: [{ token: SkyActionButtonAdapterService }, { token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: i1.MutationObserverService }, { token: i0.NgZone }, { token: i3$1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
201
+ SkyActionButtonContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyActionButtonContainerComponent, selector: "sky-action-button-container", inputs: { alignItems: "alignItems" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [SkyActionButtonAdapterService], queries: [{ propertyName: "actionButtons", predicate: SkyActionButtonComponent }], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"sky-action-button-container\" #container>\n <div\n class=\"sky-action-button-flex\"\n [ngClass]=\"{\n 'sky-action-button-flex-align-left': alignItems === 'left',\n 'sky-action-button-flex-align-center': alignItems === 'center'\n }\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block}.sky-action-button-flex sky-action-button{display:block}.sky-action-button-flex .sky-action-button{height:100%;min-width:236px;margin-left:10px;margin-right:10px}.sky-action-button-flex{display:block;padding:0}.sky-action-button-flex sky-action-button{margin:20px 0}.sky-responsive-container-xs .sky-action-button-flex,.sky-responsive-container-sm .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-flex{display:block;padding:0}.sky-responsive-container-xs .sky-action-button-flex sky-action-button,.sky-responsive-container-sm .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-flex sky-action-button{margin:20px 0}@media (min-width: 768px){.sky-action-button-flex{display:flex;flex-flow:row wrap;padding:10px 0}.sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-action-button-flex sky-action-button{margin:10px 0}}.sky-responsive-container-sm .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:10px 0}.sky-responsive-container-sm .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-md .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-lg .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-responsive-container-sm .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-md .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-lg .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-responsive-container-sm .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-flex sky-action-button{margin:10px 0}.sky-theme-modern .sky-action-button-container{margin:0 auto}.sky-theme-modern .sky-action-button-container.sky-action-button-container-sm{max-width:446px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-md{max-width:912px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-lg{max-width:1378px}.sky-theme-modern .sky-action-button-container .sky-action-button-flex .sky-action-button{height:auto;min-width:auto;margin:0}.sky-theme-modern .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-theme-modern .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}.sky-theme-modern .sky-responsive-container-xs .sky-action-button-flex,.sky-theme-modern .sky-responsive-container-sm .sky-action-button-flex,.sky-theme-modern .sky-responsive-container-md .sky-action-button-flex,.sky-theme-modern .sky-responsive-container-lg .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-theme-modern .sky-responsive-container-xs .sky-action-button-flex sky-action-button,.sky-theme-modern .sky-responsive-container-sm .sky-action-button-flex sky-action-button,.sky-theme-modern .sky-responsive-container-md .sky-action-button-flex sky-action-button,.sky-theme-modern .sky-responsive-container-lg .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None });
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonContainerComponent, decorators: [{
203
+ type: Component,
204
+ args: [{ selector: 'sky-action-button-container', providers: [SkyActionButtonAdapterService], encapsulation: ViewEncapsulation.None, template: "<div class=\"sky-action-button-container\" #container>\n <div\n class=\"sky-action-button-flex\"\n [ngClass]=\"{\n 'sky-action-button-flex-align-left': alignItems === 'left',\n 'sky-action-button-flex-align-center': alignItems === 'center'\n }\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{display:block}.sky-action-button-flex sky-action-button{display:block}.sky-action-button-flex .sky-action-button{height:100%;min-width:236px;margin-left:10px;margin-right:10px}.sky-action-button-flex{display:block;padding:0}.sky-action-button-flex sky-action-button{margin:20px 0}.sky-responsive-container-xs .sky-action-button-flex,.sky-responsive-container-sm .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-flex{display:block;padding:0}.sky-responsive-container-xs .sky-action-button-flex sky-action-button,.sky-responsive-container-sm .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-flex sky-action-button{margin:20px 0}@media (min-width: 768px){.sky-action-button-flex{display:flex;flex-flow:row wrap;padding:10px 0}.sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-action-button-flex sky-action-button{margin:10px 0}}.sky-responsive-container-sm .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:10px 0}.sky-responsive-container-sm .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-md .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-lg .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-responsive-container-sm .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-md .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-lg .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-responsive-container-sm .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-flex sky-action-button{margin:10px 0}.sky-theme-modern .sky-action-button-container{margin:0 auto}.sky-theme-modern .sky-action-button-container.sky-action-button-container-sm{max-width:446px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-md{max-width:912px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-lg{max-width:1378px}.sky-theme-modern .sky-action-button-container .sky-action-button-flex .sky-action-button{height:auto;min-width:auto;margin:0}.sky-theme-modern .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-theme-modern .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}.sky-theme-modern .sky-responsive-container-xs .sky-action-button-flex,.sky-theme-modern .sky-responsive-container-sm .sky-action-button-flex,.sky-theme-modern .sky-responsive-container-md .sky-action-button-flex,.sky-theme-modern .sky-responsive-container-lg .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-theme-modern .sky-responsive-container-xs .sky-action-button-flex sky-action-button,.sky-theme-modern .sky-responsive-container-sm .sky-action-button-flex sky-action-button,.sky-theme-modern .sky-responsive-container-md .sky-action-button-flex sky-action-button,.sky-theme-modern .sky-responsive-container-lg .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}\n"] }]
205
+ }], ctorParameters: function () {
206
+ return [{ type: SkyActionButtonAdapterService }, { type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: i1.MutationObserverService }, { type: i0.NgZone }, { type: i3$1.SkyThemeService, decorators: [{
207
+ type: Optional
208
+ }] }];
209
+ }, propDecorators: { alignItems: [{
210
+ type: Input
211
+ }], actionButtons: [{
212
+ type: ContentChildren,
213
+ args: [SkyActionButtonComponent]
214
+ }], containerRef: [{
215
+ type: ViewChild,
216
+ args: ['container', {
217
+ read: ElementRef,
218
+ static: true,
219
+ }]
220
+ }], onWindowResize: [{
221
+ type: HostListener,
222
+ args: ['window:resize']
223
+ }] } });
224
+
225
+ /**
226
+ * Specifies a description to display on an action button.
227
+ */
228
+ class SkyActionButtonDetailsComponent {
229
+ }
230
+ SkyActionButtonDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
231
+ SkyActionButtonDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyActionButtonDetailsComponent, selector: "sky-action-button-details", ngImport: i0, template: "<ng-content></ng-content>\n" });
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonDetailsComponent, decorators: [{
233
+ type: Component,
234
+ args: [{ selector: 'sky-action-button-details', template: "<ng-content></ng-content>\n" }]
235
+ }] });
236
+
237
+ /**
238
+ * Specifies a header to display on an action button.
239
+ */
240
+ class SkyActionButtonHeaderComponent {
241
+ }
242
+ SkyActionButtonHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
243
+ SkyActionButtonHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyActionButtonHeaderComponent, selector: "sky-action-button-header", ngImport: i0, template: "<div\n class=\"sky-action-button-header\"\n [skyThemeClass]=\"{\n 'sky-headline': 'modern',\n 'sky-section-heading': 'default'\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [":host .sky-action-button-header{margin:0 5px}:host-context(.sky-responsive-container-xs) .sky-action-button-header,:host-context(.sky-responsive-container-sm) .sky-action-button-header,:host-context(.sky-responsive-container-md) .sky-action-button-header,:host-context(.sky-responsive-container-lg) .sky-action-button-header{margin:0 5px}@media (min-width: 768px){:host .sky-action-button-header{margin:0 0 20px}}:host-context(.sky-responsive-container-sm) .sky-action-button-header,:host-context(.sky-responsive-container-md) .sky-action-button-header,:host-context(.sky-responsive-container-lg) .sky-action-button-header{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-action-button-header{margin:0 0 10px}.sky-theme-modern .sky-action-button-header{margin:0 0 10px}\n"], directives: [{ type: i3$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] });
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonHeaderComponent, decorators: [{
245
+ type: Component,
246
+ args: [{ selector: 'sky-action-button-header', template: "<div\n class=\"sky-action-button-header\"\n [skyThemeClass]=\"{\n 'sky-headline': 'modern',\n 'sky-section-heading': 'default'\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [":host .sky-action-button-header{margin:0 5px}:host-context(.sky-responsive-container-xs) .sky-action-button-header,:host-context(.sky-responsive-container-sm) .sky-action-button-header,:host-context(.sky-responsive-container-md) .sky-action-button-header,:host-context(.sky-responsive-container-lg) .sky-action-button-header{margin:0 5px}@media (min-width: 768px){:host .sky-action-button-header{margin:0 0 20px}}:host-context(.sky-responsive-container-sm) .sky-action-button-header,:host-context(.sky-responsive-container-md) .sky-action-button-header,:host-context(.sky-responsive-container-lg) .sky-action-button-header{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-action-button-header{margin:0 0 10px}.sky-theme-modern .sky-action-button-header{margin:0 0 10px}\n"] }]
247
+ }] });
248
+
249
+ const FONTSIZECLASS_SMALL = '2x';
250
+ const FONTSIZECLASS_LARGE = '3x';
251
+ /**
252
+ * Specifies an icon to display on the action button.
253
+ */
254
+ class SkyActionButtonIconComponent {
255
+ constructor(mediaQueryService) {
256
+ this.mediaQueryService = mediaQueryService;
257
+ this.fontSizeClass = FONTSIZECLASS_LARGE;
258
+ this.subscription = this.mediaQueryService.subscribe((args) => {
259
+ if (args === SkyMediaBreakpoints.xs) {
260
+ this.fontSizeClass = FONTSIZECLASS_SMALL;
261
+ }
262
+ else {
263
+ this.fontSizeClass = FONTSIZECLASS_LARGE;
264
+ }
265
+ });
266
+ }
267
+ ngOnDestroy() {
268
+ /* istanbul ignore else */
269
+ /* sanity check */
270
+ if (this.subscription) {
271
+ this.subscription.unsubscribe();
272
+ }
273
+ }
274
+ }
275
+ SkyActionButtonIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonIconComponent, deps: [{ token: i1.SkyMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
276
+ SkyActionButtonIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyActionButtonIconComponent, selector: "sky-action-button-icon", inputs: { iconType: "iconType" }, ngImport: i0, template: "<div aria-hidden=\"true\" class=\"sky-action-button-icon-container\">\n <sky-icon\n class=\"sky-action-button-icon\"\n [icon]=\"iconType\"\n [size]=\"fontSizeClass\"\n ></sky-icon>\n</div>\n", styles: [":host .sky-action-button-icon-container{margin:0 5px}:host-context(.sky-responsive-container-xs) .sky-action-button-icon-container,:host-context(.sky-responsive-container-sm) .sky-action-button-icon-container,:host-context(.sky-responsive-container-md) .sky-action-button-icon-container,:host-context(.sky-responsive-container-lg) .sky-action-button-icon-container{margin:0 5px}@media (min-width: 768px){:host .sky-action-button-icon-container{margin:0 0 20px}}:host-context(.sky-responsive-container-sm) .sky-action-button-icon-container,:host-context(.sky-responsive-container-md) .sky-action-button-icon-container,:host-context(.sky-responsive-container-lg) .sky-action-button-icon-container{margin:0 0 20px}.sky-action-button-icon{color:#0974a1}:host-context(.sky-theme-modern) .sky-action-button-icon-container{color:#0974a1;background:#e8f8ff;margin:0 20px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}:host-context(.sky-theme-modern) .sky-action-button-icon-container ::ng-deep .sky-icon{font-size:24px!important}.sky-theme-modern .sky-action-button-icon-container{color:#0974a1;background:#e8f8ff;margin:0 20px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-theme-modern .sky-action-button-icon-container ::ng-deep .sky-icon{font-size:24px!important}\n"], components: [{ type: i2$1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }] });
277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonIconComponent, decorators: [{
278
+ type: Component,
279
+ args: [{ selector: 'sky-action-button-icon', template: "<div aria-hidden=\"true\" class=\"sky-action-button-icon-container\">\n <sky-icon\n class=\"sky-action-button-icon\"\n [icon]=\"iconType\"\n [size]=\"fontSizeClass\"\n ></sky-icon>\n</div>\n", styles: [":host .sky-action-button-icon-container{margin:0 5px}:host-context(.sky-responsive-container-xs) .sky-action-button-icon-container,:host-context(.sky-responsive-container-sm) .sky-action-button-icon-container,:host-context(.sky-responsive-container-md) .sky-action-button-icon-container,:host-context(.sky-responsive-container-lg) .sky-action-button-icon-container{margin:0 5px}@media (min-width: 768px){:host .sky-action-button-icon-container{margin:0 0 20px}}:host-context(.sky-responsive-container-sm) .sky-action-button-icon-container,:host-context(.sky-responsive-container-md) .sky-action-button-icon-container,:host-context(.sky-responsive-container-lg) .sky-action-button-icon-container{margin:0 0 20px}.sky-action-button-icon{color:#0974a1}:host-context(.sky-theme-modern) .sky-action-button-icon-container{color:#0974a1;background:#e8f8ff;margin:0 20px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}:host-context(.sky-theme-modern) .sky-action-button-icon-container ::ng-deep .sky-icon{font-size:24px!important}.sky-theme-modern .sky-action-button-icon-container{color:#0974a1;background:#e8f8ff;margin:0 20px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-theme-modern .sky-action-button-icon-container ::ng-deep .sky-icon{font-size:24px!important}\n"] }]
280
+ }], ctorParameters: function () { return [{ type: i1.SkyMediaQueryService }]; }, propDecorators: { iconType: [{
281
+ type: Input
282
+ }] } });
283
+
284
+ class SkyActionButtonModule {
285
+ }
286
+ SkyActionButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
287
+ SkyActionButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonModule, declarations: [SkyActionButtonComponent,
288
+ SkyActionButtonContainerComponent,
289
+ SkyActionButtonDetailsComponent,
290
+ SkyActionButtonHeaderComponent,
291
+ SkyActionButtonIconComponent], imports: [CommonModule,
292
+ RouterModule,
293
+ SkyHrefModule,
294
+ SkyIconModule,
295
+ SkyThemeModule], exports: [SkyActionButtonComponent,
296
+ SkyActionButtonContainerComponent,
297
+ SkyActionButtonDetailsComponent,
298
+ SkyActionButtonHeaderComponent,
299
+ SkyActionButtonIconComponent] });
300
+ SkyActionButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonModule, imports: [[
301
+ CommonModule,
302
+ RouterModule,
303
+ SkyHrefModule,
304
+ SkyIconModule,
305
+ SkyThemeModule,
306
+ ]] });
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyActionButtonModule, decorators: [{
308
+ type: NgModule,
309
+ args: [{
310
+ declarations: [
311
+ SkyActionButtonComponent,
312
+ SkyActionButtonContainerComponent,
313
+ SkyActionButtonDetailsComponent,
314
+ SkyActionButtonHeaderComponent,
315
+ SkyActionButtonIconComponent,
316
+ ],
317
+ imports: [
318
+ CommonModule,
319
+ RouterModule,
320
+ SkyHrefModule,
321
+ SkyIconModule,
322
+ SkyThemeModule,
323
+ ],
324
+ exports: [
325
+ SkyActionButtonComponent,
326
+ SkyActionButtonContainerComponent,
327
+ SkyActionButtonDetailsComponent,
328
+ SkyActionButtonHeaderComponent,
329
+ SkyActionButtonIconComponent,
330
+ ],
331
+ }]
332
+ }] });
333
+
334
+ /**
335
+ * NOTICE: DO NOT MODIFY THIS FILE!
336
+ * The contents of this file were automatically generated by
337
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-layout' schematic.
338
+ * To update this file, simply rerun the command.
339
+ */
340
+ const RESOURCES = {
341
+ 'EN-US': {
342
+ skyux_back_to_top: { message: 'Back to top' },
343
+ skyux_card_checkbox_label: { message: 'Select card' },
344
+ skyux_definition_list_none_found: { message: 'None found.' },
345
+ skyux_description_list_none_found: { message: 'None found.' },
346
+ skyux_inline_delete_assistive_text: {
347
+ message: 'Are you sure you want to delete this item?',
348
+ },
349
+ skyux_inline_delete_cancel: { message: 'Cancel' },
350
+ skyux_inline_delete_confirm_deletion: { message: 'Confirm deletion' },
351
+ skyux_inline_delete_delete: { message: 'Delete' },
352
+ skyux_text_expand_close_text: { message: 'Close' },
353
+ skyux_text_expand_modal_title: { message: 'Expanded view' },
354
+ skyux_text_expand_see_less: { message: 'See less' },
355
+ skyux_text_expand_see_more: { message: 'See more' },
356
+ },
357
+ };
358
+ class SkyLayoutResourcesProvider {
359
+ getString(localeInfo, name) {
360
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
361
+ }
362
+ }
363
+ /**
364
+ * Import into any component library module that needs to use resource strings.
365
+ */
366
+ class SkyLayoutResourcesModule {
367
+ }
368
+ SkyLayoutResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLayoutResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
369
+ SkyLayoutResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLayoutResourcesModule, exports: [SkyI18nModule] });
370
+ SkyLayoutResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLayoutResourcesModule, providers: [
371
+ {
372
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
373
+ useClass: SkyLayoutResourcesProvider,
374
+ multi: true,
375
+ },
376
+ ], imports: [SkyI18nModule] });
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLayoutResourcesModule, decorators: [{
378
+ type: NgModule,
379
+ args: [{
380
+ exports: [SkyI18nModule],
381
+ providers: [
382
+ {
383
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
384
+ useClass: SkyLayoutResourcesProvider,
385
+ multi: true,
386
+ },
387
+ ],
388
+ }]
389
+ }] });
390
+
391
+ /**
392
+ * @internal
393
+ */
394
+ class SkyBackToTopComponent {
395
+ constructor() {
396
+ this._scrollToTopClick = new Subject();
397
+ }
398
+ get scrollToTopClick() {
399
+ return this._scrollToTopClick.asObservable();
400
+ }
401
+ onScrollToTopClick() {
402
+ this._scrollToTopClick.next();
403
+ this._scrollToTopClick.complete();
404
+ }
405
+ }
406
+ SkyBackToTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
407
+ SkyBackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyBackToTopComponent, selector: "sky-back-to-top", ngImport: i0, template: "<div class=\"sky-back-to-top sky-padding-squish-large\">\n <button\n class=\"sky-btn sky-btn-link-inline\"\n type=\"button\"\n (click)=\"onScrollToTopClick()\"\n >\n {{ 'skyux_back_to_top' | skyLibResources }}\n </button>\n</div>\n", styles: [".sky-back-to-top{display:flex;align-items:center;width:100%;background-color:#fff;box-shadow:0 -3px 3px #cdcfd2}\n"], pipes: { "skyLibResources": i1$1.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopComponent, decorators: [{
409
+ type: Component,
410
+ args: [{ selector: 'sky-back-to-top', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-back-to-top sky-padding-squish-large\">\n <button\n class=\"sky-btn sky-btn-link-inline\"\n type=\"button\"\n (click)=\"onScrollToTopClick()\"\n >\n {{ 'skyux_back_to_top' | skyLibResources }}\n </button>\n</div>\n", styles: [".sky-back-to-top{display:flex;align-items:center;width:100%;background-color:#fff;box-shadow:0 -3px 3px #cdcfd2}\n"] }]
411
+ }] });
412
+
413
+ /**
414
+ * @internal
415
+ */
416
+ class SkyBackToTopDomAdapterService {
417
+ constructor(windowRef, scrollableHostService) {
418
+ this.windowRef = windowRef;
419
+ this.scrollableHostService = scrollableHostService;
420
+ this.ngUnsubscribe = new Subject();
421
+ this.scrollableHostScrollEventUnsubscribe = new Subject();
422
+ }
423
+ ngOnDestroy() {
424
+ this.ngUnsubscribe.next();
425
+ this.ngUnsubscribe.complete();
426
+ this.scrollableHostScrollEventUnsubscribe.next();
427
+ this.scrollableHostScrollEventUnsubscribe.complete();
428
+ }
429
+ /**
430
+ * This event returns a boolean on scroll indicating whether the provided element is in view.
431
+ * @param elementRef The target element reference.
432
+ */
433
+ elementInViewOnScroll(elementRef) {
434
+ const scrollableHostObservable = this.scrollableHostService.watchScrollableHostScrollEvents(elementRef);
435
+ const isInitiallyInView = this.isElementScrolledInView(elementRef);
436
+ const returnedObservable = new BehaviorSubject(isInitiallyInView);
437
+ scrollableHostObservable
438
+ .pipe(takeUntil(this.scrollableHostScrollEventUnsubscribe))
439
+ .subscribe(() => {
440
+ const isInView = this.isElementScrolledInView(elementRef);
441
+ returnedObservable.next(isInView);
442
+ });
443
+ return returnedObservable;
444
+ }
445
+ /**
446
+ * Scrolls the window or scrollable parent to the provided element.
447
+ * @param elementRef The target element reference.
448
+ */
449
+ scrollToElement(elementRef) {
450
+ /* sanity check */
451
+ /* istanbul ignore if */
452
+ if (!elementRef || !elementRef.nativeElement) {
453
+ return;
454
+ }
455
+ const scrollableHost = this.scrollableHostService.getScrollableHost(elementRef);
456
+ if (scrollableHost instanceof Window) {
457
+ // Scroll to top of window, but account for the body margin that allows for the omnibar if it exists.
458
+ const bodyMarginOffset = parseInt(getComputedStyle(document.body).marginTop, 10);
459
+ const newOffsetTop = elementRef.nativeElement.offsetTop - bodyMarginOffset;
460
+ this.windowRef.nativeWindow.scrollTo(elementRef.nativeElement.offsetLeft, newOffsetTop);
461
+ }
462
+ else {
463
+ // Scroll to top of parent element.
464
+ scrollableHost.scrollTop =
465
+ scrollableHost.offsetTop - elementRef.nativeElement.offsetTop;
466
+ }
467
+ }
468
+ isElementScrolledInView(element) {
469
+ const parentElement = this.scrollableHostService.getScrollableHost(element.nativeElement);
470
+ if (!element.nativeElement.offsetParent) {
471
+ return true;
472
+ }
473
+ const buffer = 25;
474
+ const elementRect = element.nativeElement.getBoundingClientRect();
475
+ /* istanbul ignore else */
476
+ if (parentElement instanceof HTMLElement) {
477
+ const parentRect = parentElement.getBoundingClientRect();
478
+ return elementRect.top > parentRect.top - buffer;
479
+ }
480
+ else {
481
+ return elementRect.top > -buffer;
482
+ }
483
+ }
484
+ }
485
+ SkyBackToTopDomAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopDomAdapterService, deps: [{ token: i1.SkyAppWindowRef }, { token: i1.SkyScrollableHostService }], target: i0.ɵɵFactoryTarget.Injectable });
486
+ SkyBackToTopDomAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopDomAdapterService });
487
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopDomAdapterService, decorators: [{
488
+ type: Injectable
489
+ }], ctorParameters: function () { return [{ type: i1.SkyAppWindowRef }, { type: i1.SkyScrollableHostService }]; } });
490
+
491
+ /**
492
+ * Specifies the type of message to send to the back to top component.
493
+ */
494
+ var SkyBackToTopMessageType;
495
+ (function (SkyBackToTopMessageType) {
496
+ /**
497
+ * Scrolls the element back to the top.
498
+ */
499
+ SkyBackToTopMessageType[SkyBackToTopMessageType["BackToTop"] = 0] = "BackToTop";
500
+ })(SkyBackToTopMessageType || (SkyBackToTopMessageType = {}));
501
+
502
+ /**
503
+ * Associates a button with an element on the page and displays that button
504
+ * to return to the element after users scroll away.
505
+ */
506
+ class SkyBackToTopDirective {
507
+ constructor(dockService, domAdapter, element) {
508
+ this.dockService = dockService;
509
+ this.domAdapter = domAdapter;
510
+ this.element = element;
511
+ this.buttonHidden = false;
512
+ this.ngUnsubscribe = new Subject();
513
+ }
514
+ /**
515
+ * Specifies configuration options for the back to top component.
516
+ */
517
+ set skyBackToTop(value) {
518
+ this.buttonHidden = !!(value === null || value === void 0 ? void 0 : value.buttonHidden);
519
+ this.handleBackToTopButton(this.elementInView);
520
+ }
521
+ /**
522
+ * Provides an observable to send commands to the back to top component.
523
+ * The commands respect the `SkyBackToTopMessage` type.
524
+ */
525
+ set skyBackToTopMessageStream(value) {
526
+ if (this._skyBackToTopMessageStream) {
527
+ this._skyBackToTopMessageStream.unsubscribe();
528
+ }
529
+ this._skyBackToTopMessageStream = value;
530
+ this._skyBackToTopMessageStream
531
+ .pipe(takeUntil(this.ngUnsubscribe))
532
+ .subscribe((message) => this.handleIncomingMessages(message));
533
+ }
534
+ ngAfterViewInit() {
535
+ this.elementInView = this.domAdapter.isElementScrolledInView(this.element);
536
+ this.handleBackToTopButton(this.elementInView);
537
+ this.setBackToTopListeners();
538
+ }
539
+ ngOnDestroy() {
540
+ if (this.dockItem) {
541
+ this.dockItem.destroy();
542
+ }
543
+ }
544
+ handleBackToTopButton(elementInView) {
545
+ // Add back to top button if user scrolls down and button is not hidden.
546
+ if (!this.dockItem &&
547
+ elementInView !== undefined &&
548
+ !elementInView &&
549
+ !this.buttonHidden) {
550
+ this.addBackToTop();
551
+ }
552
+ // Remove back to top button if user scrolls back up.
553
+ if (elementInView || this.buttonHidden) {
554
+ this.destroyBackToTop();
555
+ }
556
+ }
557
+ addBackToTop() {
558
+ this.dockItem = this.dockService.insertComponent(SkyBackToTopComponent);
559
+ // Listen for clicks on the "back to top" button so we know when to scroll up.
560
+ this.dockItem.componentInstance.scrollToTopClick
561
+ .pipe(takeUntil(this.ngUnsubscribe))
562
+ .subscribe(() => {
563
+ this.domAdapter.scrollToElement(this.element);
564
+ });
565
+ }
566
+ handleIncomingMessages(message) {
567
+ /* istanbul ignore else */
568
+ if (message.type === SkyBackToTopMessageType.BackToTop) {
569
+ this.domAdapter.scrollToElement(this.element);
570
+ }
571
+ }
572
+ setBackToTopListeners() {
573
+ /* istanbul ignore else */
574
+ if (this.element) {
575
+ this.domAdapter
576
+ .elementInViewOnScroll(this.element)
577
+ .pipe(takeUntil(this.ngUnsubscribe))
578
+ .subscribe((elementInView) => {
579
+ this.elementInView = elementInView;
580
+ this.handleBackToTopButton(elementInView);
581
+ });
582
+ }
583
+ }
584
+ destroyBackToTop() {
585
+ /* istanbul ignore else */
586
+ if (this.dockItem) {
587
+ this.dockItem.destroy();
588
+ this.dockItem = undefined;
589
+ }
590
+ }
591
+ }
592
+ SkyBackToTopDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopDirective, deps: [{ token: i1.SkyDockService }, { token: SkyBackToTopDomAdapterService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
593
+ SkyBackToTopDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyBackToTopDirective, selector: "[skyBackToTop]", inputs: { skyBackToTop: "skyBackToTop", skyBackToTopMessageStream: "skyBackToTopMessageStream" }, providers: [SkyBackToTopDomAdapterService], ngImport: i0 });
594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopDirective, decorators: [{
595
+ type: Directive,
596
+ args: [{
597
+ selector: '[skyBackToTop]',
598
+ providers: [SkyBackToTopDomAdapterService],
599
+ }]
600
+ }], ctorParameters: function () { return [{ type: i1.SkyDockService }, { type: SkyBackToTopDomAdapterService }, { type: i0.ElementRef }]; }, propDecorators: { skyBackToTop: [{
601
+ type: Input
602
+ }], skyBackToTopMessageStream: [{
603
+ type: Input
604
+ }] } });
605
+
606
+ class SkyBackToTopModule {
607
+ }
608
+ SkyBackToTopModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
609
+ SkyBackToTopModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopModule, declarations: [SkyBackToTopComponent, SkyBackToTopDirective], imports: [CommonModule,
610
+ SkyDockModule,
611
+ SkyI18nModule,
612
+ SkyLayoutResourcesModule], exports: [SkyBackToTopComponent, SkyBackToTopDirective] });
613
+ SkyBackToTopModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopModule, imports: [[
614
+ CommonModule,
615
+ SkyDockModule,
616
+ SkyI18nModule,
617
+ SkyLayoutResourcesModule,
618
+ ]] });
619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBackToTopModule, decorators: [{
620
+ type: NgModule,
621
+ args: [{
622
+ declarations: [SkyBackToTopComponent, SkyBackToTopDirective],
623
+ imports: [
624
+ CommonModule,
625
+ SkyDockModule,
626
+ SkyI18nModule,
627
+ SkyLayoutResourcesModule,
628
+ ],
629
+ exports: [SkyBackToTopComponent, SkyBackToTopDirective],
630
+ }]
631
+ }] });
632
+
633
+ /**
634
+ * Specifies the body content to display inside the box and provides padding around that content.
635
+ */
636
+ class SkyBoxContentComponent {
637
+ }
638
+ SkyBoxContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
639
+ SkyBoxContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyBoxContentComponent, selector: "sky-box-content", ngImport: i0, template: "<div\n class=\"sky-box-content\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default',\n 'sky-padding-even-xl': 'modern'\n }\"\n>\n <ng-content></ng-content>\n</div>\n", directives: [{ type: i3$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] });
640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxContentComponent, decorators: [{
641
+ type: Component,
642
+ args: [{ selector: 'sky-box-content', template: "<div\n class=\"sky-box-content\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default',\n 'sky-padding-even-xl': 'modern'\n }\"\n>\n <ng-content></ng-content>\n</div>\n" }]
643
+ }] });
644
+
645
+ /**
646
+ * Specifies the controls to display in upper right corner of the box. These buttons typically let users edit the box content.
647
+ */
648
+ class SkyBoxControlsComponent {
649
+ }
650
+ SkyBoxControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
651
+ SkyBoxControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyBoxControlsComponent, selector: "sky-box-controls", ngImport: i0, template: "<div class=\"sky-box-controls\">\n <ng-content></ng-content>\n</div>\n" });
652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxControlsComponent, decorators: [{
653
+ type: Component,
654
+ args: [{ selector: 'sky-box-controls', template: "<div class=\"sky-box-controls\">\n <ng-content></ng-content>\n</div>\n" }]
655
+ }] });
656
+
657
+ /**
658
+ * Specifies a header for the box.
659
+ */
660
+ class SkyBoxHeaderComponent {
661
+ }
662
+ SkyBoxHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
663
+ SkyBoxHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyBoxHeaderComponent, selector: "sky-box-header", ngImport: i0, template: "<div class=\"sky-box-header\">\n <ng-content></ng-content>\n</div>\n" });
664
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxHeaderComponent, decorators: [{
665
+ type: Component,
666
+ args: [{ selector: 'sky-box-header', template: "<div class=\"sky-box-header\">\n <ng-content></ng-content>\n</div>\n" }]
667
+ }] });
668
+
669
+ /**
670
+ * Provides a common look-and-feel for box content with options to display a common box header, specify body content, and display common box controls.
671
+ */
672
+ class SkyBoxComponent {
673
+ }
674
+ SkyBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
675
+ SkyBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyBoxComponent, selector: "sky-box", inputs: { ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaRole: "ariaRole" }, ngImport: i0, template: "<section\n class=\"sky-box\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [skyThemeClass]=\"{\n 'sky-shadow sky-border-dark': 'default',\n 'sky-elevation-1-bordered': 'modern'\n }\"\n>\n <div class=\"sky-box-header-content\">\n <ng-content select=\"sky-box-header\"></ng-content>\n <ng-content select=\"sky-box-controls\"></ng-content>\n </div>\n <ng-content></ng-content>\n</section>\n", styles: [".sky-box{background-color:#fff}.sky-box .sky-box-header-content{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;padding:20px 20px 0}.sky-box .sky-box-header-content:empty{display:none}.sky-box .sky-box-header-content sky-box-header{flex:1 0;order:0}.sky-box .sky-box-header-content sky-box-header .sky-box-header{padding:0 20px 0 0}.sky-box .sky-box-header-content sky-box-header .sky-box-header h1,.sky-box .sky-box-header-content sky-box-header .sky-box-header h2,.sky-box .sky-box-header-content sky-box-header .sky-box-header h3,.sky-box .sky-box-header-content sky-box-header .sky-box-header h4,.sky-box .sky-box-header-content sky-box-header .sky-box-header h5,.sky-box .sky-box-header-content sky-box-header .sky-box-header h6{margin:0}.sky-box .sky-box-header-content sky-box-controls{order:1}.sky-box .sky-box-header-content sky-box-controls .sky-box-controls{position:relative;top:-2px}.sky-box sky-box-content{flex:0 1 100%;order:2}.sky-box sky-box-content .sky-box-content{padding:20px}.sky-theme-modern .sky-box{border-radius:6px;overflow:hidden}.sky-theme-modern .sky-box .sky-box-header-content{padding:30px 30px 0}.sky-theme-modern .sky-box .sky-box-header-content sky-box-header .sky-box-header{padding:0 30px 0 0}.sky-theme-modern .sky-box sky-box-content .sky-box-content{padding:30px}\n"], directives: [{ type: i3$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], encapsulation: i0.ViewEncapsulation.None });
676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxComponent, decorators: [{
677
+ type: Component,
678
+ args: [{ selector: 'sky-box', encapsulation: ViewEncapsulation.None, template: "<section\n class=\"sky-box\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [skyThemeClass]=\"{\n 'sky-shadow sky-border-dark': 'default',\n 'sky-elevation-1-bordered': 'modern'\n }\"\n>\n <div class=\"sky-box-header-content\">\n <ng-content select=\"sky-box-header\"></ng-content>\n <ng-content select=\"sky-box-controls\"></ng-content>\n </div>\n <ng-content></ng-content>\n</section>\n", styles: [".sky-box{background-color:#fff}.sky-box .sky-box-header-content{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;padding:20px 20px 0}.sky-box .sky-box-header-content:empty{display:none}.sky-box .sky-box-header-content sky-box-header{flex:1 0;order:0}.sky-box .sky-box-header-content sky-box-header .sky-box-header{padding:0 20px 0 0}.sky-box .sky-box-header-content sky-box-header .sky-box-header h1,.sky-box .sky-box-header-content sky-box-header .sky-box-header h2,.sky-box .sky-box-header-content sky-box-header .sky-box-header h3,.sky-box .sky-box-header-content sky-box-header .sky-box-header h4,.sky-box .sky-box-header-content sky-box-header .sky-box-header h5,.sky-box .sky-box-header-content sky-box-header .sky-box-header h6{margin:0}.sky-box .sky-box-header-content sky-box-controls{order:1}.sky-box .sky-box-header-content sky-box-controls .sky-box-controls{position:relative;top:-2px}.sky-box sky-box-content{flex:0 1 100%;order:2}.sky-box sky-box-content .sky-box-content{padding:20px}.sky-theme-modern .sky-box{border-radius:6px;overflow:hidden}.sky-theme-modern .sky-box .sky-box-header-content{padding:30px 30px 0}.sky-theme-modern .sky-box .sky-box-header-content sky-box-header .sky-box-header{padding:0 30px 0 0}.sky-theme-modern .sky-box sky-box-content .sky-box-content{padding:30px}\n"] }]
679
+ }], propDecorators: { ariaLabel: [{
680
+ type: Input
681
+ }], ariaLabelledBy: [{
682
+ type: Input
683
+ }], ariaRole: [{
684
+ type: Input
685
+ }] } });
686
+
687
+ class SkyBoxModule {
688
+ }
689
+ SkyBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
690
+ SkyBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxModule, declarations: [SkyBoxComponent,
691
+ SkyBoxHeaderComponent,
692
+ SkyBoxContentComponent,
693
+ SkyBoxControlsComponent], imports: [CommonModule, SkyThemeModule], exports: [SkyBoxComponent,
694
+ SkyBoxHeaderComponent,
695
+ SkyBoxContentComponent,
696
+ SkyBoxControlsComponent] });
697
+ SkyBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxModule, imports: [[CommonModule, SkyThemeModule]] });
698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyBoxModule, decorators: [{
699
+ type: NgModule,
700
+ args: [{
701
+ declarations: [
702
+ SkyBoxComponent,
703
+ SkyBoxHeaderComponent,
704
+ SkyBoxContentComponent,
705
+ SkyBoxControlsComponent,
706
+ ],
707
+ imports: [CommonModule, SkyThemeModule],
708
+ exports: [
709
+ SkyBoxComponent,
710
+ SkyBoxHeaderComponent,
711
+ SkyBoxContentComponent,
712
+ SkyBoxControlsComponent,
713
+ ],
714
+ }]
715
+ }] });
716
+
717
+ /**
718
+ * @internal
719
+ */
720
+ class SkyInlineDeleteAdapterService {
721
+ constructor(coreAdapterService, rendererFactory) {
722
+ this.coreAdapterService = coreAdapterService;
723
+ this.renderer = rendererFactory.createRenderer(undefined, undefined);
724
+ }
725
+ clearListeners() {
726
+ /* istanbul ignore else */
727
+ if (this.parentElUnlistenFn) {
728
+ this.parentElUnlistenFn();
729
+ }
730
+ }
731
+ setEl(element) {
732
+ this.element = element;
733
+ this.parentEl = element.parentElement;
734
+ /* istanbul ignore else */
735
+ if (this.parentEl) {
736
+ this.parentElUnlistenFn = this.renderer.listen(this.parentEl, 'focusin', (event) => {
737
+ const target = event.target;
738
+ if (!this.element.contains(target) && this.parentEl !== target) {
739
+ event.preventDefault();
740
+ event.stopPropagation();
741
+ event.stopImmediatePropagation();
742
+ target.blur();
743
+ this.focusNextElement(target, this.isShift(event), this.parentEl);
744
+ }
745
+ });
746
+ }
747
+ }
748
+ focusNextElement(targetElement, shiftKey, busyEl) {
749
+ const focussable = this.getFocussableElements();
750
+ // If shift tab, go in the other direction
751
+ const modifier = shiftKey ? -1 : 1;
752
+ // Find the next navigable element that isn't waiting
753
+ const startingIndex = focussable.indexOf(targetElement);
754
+ let curIndex = startingIndex + modifier;
755
+ while (focussable[curIndex] &&
756
+ this.isElementHiddenOrCovered(focussable[curIndex])) {
757
+ curIndex += modifier;
758
+ }
759
+ if (focussable[curIndex] &&
760
+ !this.isElementHiddenOrCovered(focussable[curIndex])) {
761
+ focussable[curIndex].focus();
762
+ }
763
+ else {
764
+ // Try wrapping the navigation
765
+ /* istanbul ignore next */
766
+ curIndex = modifier > 0 ? 0 : focussable.length - 1;
767
+ /* istanbul ignore next */
768
+ while (curIndex !== startingIndex &&
769
+ focussable[curIndex] &&
770
+ this.isElementHiddenOrCovered(focussable[curIndex])) {
771
+ curIndex += modifier;
772
+ }
773
+ /* istanbul ignore else */
774
+ /* sanity check */
775
+ if (focussable[curIndex] &&
776
+ !this.isElementHiddenOrCovered(focussable[curIndex])) {
777
+ focussable[curIndex].focus();
778
+ }
779
+ else {
780
+ // No valid target, wipe focus
781
+ // This should never happen in practice due to the multiple inline delete buttons
782
+ if (document.activeElement && document.activeElement.blur) {
783
+ document.activeElement.blur();
784
+ }
785
+ document.body.focus();
786
+ }
787
+ }
788
+ // clear focussableElements list so that if things change between tabbing we know about it
789
+ this.focussableElements = undefined;
790
+ }
791
+ getFocussableElements() {
792
+ // Keep this cached so we can reduce querys
793
+ if (this.focussableElements) {
794
+ return this.focussableElements;
795
+ }
796
+ this.focussableElements = this.coreAdapterService.getFocusableChildren(document.body);
797
+ return this.focussableElements;
798
+ }
799
+ isElementHiddenOrCovered(element) {
800
+ // Check if the element is hidden by css, not within the inline delete, or a wait is covering it
801
+ return (this.isElementHidden(element) ||
802
+ (this.parentEl.contains(element) &&
803
+ (!this.element.contains(element) ||
804
+ this.parentEl.querySelector('.sky-wait-mask') !== null)));
805
+ }
806
+ isElementHidden(element) {
807
+ const style = window.getComputedStyle(element);
808
+ return style.display === 'none' || style.visibility === 'hidden';
809
+ }
810
+ isShift(event) {
811
+ // Determine if shift+tab was used based on element order
812
+ const elements = this.getFocussableElements().filter((elem) => !this.isElementHidden(elem));
813
+ const previousInd = elements.indexOf(event.relatedTarget);
814
+ const currentInd = elements.indexOf(event.target);
815
+ /* istanbul ignore next */
816
+ return (previousInd === currentInd + 1 ||
817
+ (previousInd === 0 && currentInd === elements.length - 1) ||
818
+ previousInd > currentInd ||
819
+ !event.relatedTarget);
820
+ }
821
+ }
822
+ SkyInlineDeleteAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
823
+ SkyInlineDeleteAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteAdapterService });
824
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteAdapterService, decorators: [{
825
+ type: Injectable
826
+ }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i0.RendererFactory2 }]; } });
827
+
828
+ /**
829
+ * Specifies the type of inline delete that is shown.
830
+ * @internal
831
+ */
832
+ var SkyInlineDeleteType;
833
+ (function (SkyInlineDeleteType) {
834
+ /**
835
+ * The standard styling for inline deletes.
836
+ */
837
+ SkyInlineDeleteType["Standard"] = "standard";
838
+ /**
839
+ * The styling for inline delete components which are used in card components.
840
+ */
841
+ SkyInlineDeleteType["Card"] = "card";
842
+ })(SkyInlineDeleteType || (SkyInlineDeleteType = {}));
843
+
844
+ /**
845
+ * Auto-incrementing integer used to generate unique ids for inline delete components.
846
+ */
847
+ let nextId$2 = 0;
848
+ class SkyInlineDeleteComponent {
849
+ constructor(adapterService, changeDetector, elRef) {
850
+ this.adapterService = adapterService;
851
+ this.changeDetector = changeDetector;
852
+ this.elRef = elRef;
853
+ /**
854
+ * Indicates whether the deletion is pending.
855
+ * @default false
856
+ */
857
+ this.pending = false;
858
+ /**
859
+ * Fires when users click the cancel button.
860
+ */
861
+ this.cancelTriggered = new EventEmitter();
862
+ /**
863
+ * Fires when users click the delete button.
864
+ */
865
+ this.deleteTriggered = new EventEmitter();
866
+ this.animationState = 'shown';
867
+ this.assistiveTextId = `sky-inline-delete-assistive-text-${++nextId$2}`;
868
+ this.type = SkyInlineDeleteType.Standard;
869
+ }
870
+ /**
871
+ * Initialization lifecycle hook
872
+ * @internal
873
+ */
874
+ ngOnInit() {
875
+ this.animationState = 'shown';
876
+ }
877
+ /**
878
+ * Destruction lifecycle hook
879
+ * @internal
880
+ */
881
+ ngOnDestroy() {
882
+ this.adapterService.clearListeners();
883
+ this.cancelTriggered.complete();
884
+ this.deleteTriggered.complete();
885
+ }
886
+ /**
887
+ * @internal
888
+ */
889
+ onCancelClick() {
890
+ this.animationState = 'hidden';
891
+ }
892
+ /**
893
+ * @internal
894
+ */
895
+ onDeleteClick() {
896
+ this.deleteTriggered.emit();
897
+ }
898
+ /**
899
+ * Sets the inline delete to one of its predefined types.
900
+ * @param type The inline delete type
901
+ * @internal
902
+ */
903
+ setType(type) {
904
+ this.type = type;
905
+ this.changeDetector.detectChanges();
906
+ }
907
+ /**
908
+ * Handles actions that should be taken after the inline delete animates
909
+ * @param event The animation event
910
+ * @internal
911
+ */
912
+ onAnimationDone(event) {
913
+ if (event.toState === 'hidden') {
914
+ this.cancelTriggered.emit();
915
+ }
916
+ else {
917
+ this.deleteButton.nativeElement.focus();
918
+ /* istanbul ignore else */
919
+ if (this.elRef) {
920
+ this.adapterService.setEl(this.elRef.nativeElement);
921
+ }
922
+ }
923
+ }
924
+ }
925
+ SkyInlineDeleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteComponent, deps: [{ token: SkyInlineDeleteAdapterService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
926
+ SkyInlineDeleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyInlineDeleteComponent, selector: "sky-inline-delete", inputs: { pending: "pending" }, outputs: { cancelTriggered: "cancelTriggered", deleteTriggered: "deleteTriggered" }, providers: [SkyCoreAdapterService, SkyInlineDeleteAdapterService], viewQueries: [{ propertyName: "deleteButton", first: true, predicate: ["delete"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-inline-delete sky-inline-delete-{{ type }}\"\n role=\"alertdialog\"\n [@inlineDeleteAnimation]=\"animationState\"\n (@inlineDeleteAnimation.done)=\"onAnimationDone($event)\"\n [attr.aria-describedby]=\"assistiveTextId\"\n [attr.aria-label]=\"'skyux_inline_delete_confirm_deletion' | skyLibResources\"\n>\n <span class=\"sky-inline-delete-assistive-text\" [id]=\"assistiveTextId\">\n {{ 'skyux_inline_delete_assistive_text' | skyLibResources }}\n </span>\n <sky-wait class=\"sky-inline-delete-wait\" [isWaiting]=\"pending\"></sky-wait>\n <div class=\"sky-inline-delete-content\">\n <div class=\"sky-inline-delete-content-animation-container\">\n <button\n class=\"sky-btn sky-btn-danger sky-inline-delete-button\"\n type=\"button\"\n (click)=\"onDeleteClick()\"\n #delete\n >\n {{ 'skyux_inline_delete_delete' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"onCancelClick()\"\n >\n {{ 'skyux_inline_delete_cancel' | skyLibResources }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".sky-inline-delete{position:absolute!important;top:0px;left:0px;width:100%;height:100%;background-color:#00000080;z-index:999;border:2px solid #ef4044}.sky-inline-delete-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}.sky-inline-delete-button{margin-right:10px}.sky-inline-delete-card .sky-inline-delete-content{position:absolute;bottom:10px;text-align:center;width:100%}.sky-inline-delete-standard .sky-inline-delete-content{position:absolute;top:50%;transform:translateY(-50%);left:20px}.sky-inline-delete-wait{height:100%}\n"], components: [{ type: i2$1.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }], pipes: { "skyLibResources": i1$1.SkyLibResourcesPipe }, animations: [
927
+ trigger('inlineDeleteAnimation', [
928
+ transition('* => shown', [
929
+ style({
930
+ opacity: 0,
931
+ }),
932
+ query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(0.0)' })),
933
+ group([
934
+ animate('300ms ease-in-out', style({ opacity: 1 })),
935
+ query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
936
+ transform: 'scale(1)',
937
+ }))),
938
+ ]),
939
+ ]),
940
+ transition(`shown <=> *`, [
941
+ query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(1)' })),
942
+ group([
943
+ animate('300ms ease-in-out', style({
944
+ opacity: 0,
945
+ })),
946
+ query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
947
+ transform: 'scale(0.0)',
948
+ }))),
949
+ ]),
950
+ ]),
951
+ ]),
952
+ ] });
953
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteComponent, decorators: [{
954
+ type: Component,
955
+ args: [{ selector: 'sky-inline-delete', animations: [
956
+ trigger('inlineDeleteAnimation', [
957
+ transition('* => shown', [
958
+ style({
959
+ opacity: 0,
960
+ }),
961
+ query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(0.0)' })),
962
+ group([
963
+ animate('300ms ease-in-out', style({ opacity: 1 })),
964
+ query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
965
+ transform: 'scale(1)',
966
+ }))),
967
+ ]),
968
+ ]),
969
+ transition(`shown <=> *`, [
970
+ query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(1)' })),
971
+ group([
972
+ animate('300ms ease-in-out', style({
973
+ opacity: 0,
974
+ })),
975
+ query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
976
+ transform: 'scale(0.0)',
977
+ }))),
978
+ ]),
979
+ ]),
980
+ ]),
981
+ ], providers: [SkyCoreAdapterService, SkyInlineDeleteAdapterService], template: "<div\n class=\"sky-inline-delete sky-inline-delete-{{ type }}\"\n role=\"alertdialog\"\n [@inlineDeleteAnimation]=\"animationState\"\n (@inlineDeleteAnimation.done)=\"onAnimationDone($event)\"\n [attr.aria-describedby]=\"assistiveTextId\"\n [attr.aria-label]=\"'skyux_inline_delete_confirm_deletion' | skyLibResources\"\n>\n <span class=\"sky-inline-delete-assistive-text\" [id]=\"assistiveTextId\">\n {{ 'skyux_inline_delete_assistive_text' | skyLibResources }}\n </span>\n <sky-wait class=\"sky-inline-delete-wait\" [isWaiting]=\"pending\"></sky-wait>\n <div class=\"sky-inline-delete-content\">\n <div class=\"sky-inline-delete-content-animation-container\">\n <button\n class=\"sky-btn sky-btn-danger sky-inline-delete-button\"\n type=\"button\"\n (click)=\"onDeleteClick()\"\n #delete\n >\n {{ 'skyux_inline_delete_delete' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"onCancelClick()\"\n >\n {{ 'skyux_inline_delete_cancel' | skyLibResources }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".sky-inline-delete{position:absolute!important;top:0px;left:0px;width:100%;height:100%;background-color:#00000080;z-index:999;border:2px solid #ef4044}.sky-inline-delete-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}.sky-inline-delete-button{margin-right:10px}.sky-inline-delete-card .sky-inline-delete-content{position:absolute;bottom:10px;text-align:center;width:100%}.sky-inline-delete-standard .sky-inline-delete-content{position:absolute;top:50%;transform:translateY(-50%);left:20px}.sky-inline-delete-wait{height:100%}\n"] }]
982
+ }], ctorParameters: function () { return [{ type: SkyInlineDeleteAdapterService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { pending: [{
983
+ type: Input
984
+ }], cancelTriggered: [{
985
+ type: Output
986
+ }], deleteTriggered: [{
987
+ type: Output
988
+ }], deleteButton: [{
989
+ type: ViewChild,
990
+ args: ['delete', {
991
+ read: ElementRef,
992
+ static: false,
993
+ }]
994
+ }] } });
995
+
996
+ class SkyInlineDeleteModule {
997
+ }
998
+ SkyInlineDeleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
999
+ SkyInlineDeleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteModule, declarations: [SkyInlineDeleteComponent], imports: [CommonModule,
1000
+ SkyI18nModule,
1001
+ SkyLayoutResourcesModule,
1002
+ SkyWaitModule], exports: [SkyInlineDeleteComponent] });
1003
+ SkyInlineDeleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteModule, imports: [[
1004
+ CommonModule,
1005
+ SkyI18nModule,
1006
+ SkyLayoutResourcesModule,
1007
+ SkyWaitModule,
1008
+ ]] });
1009
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyInlineDeleteModule, decorators: [{
1010
+ type: NgModule,
1011
+ args: [{
1012
+ declarations: [SkyInlineDeleteComponent],
1013
+ imports: [
1014
+ CommonModule,
1015
+ SkyI18nModule,
1016
+ SkyLayoutResourcesModule,
1017
+ SkyWaitModule,
1018
+ ],
1019
+ exports: [SkyInlineDeleteComponent],
1020
+ }]
1021
+ }] });
1022
+
1023
+ /**
1024
+ * Specifies an action that users can perform on the card.
1025
+ */
1026
+ class SkyCardActionsComponent {
1027
+ }
1028
+ SkyCardActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1029
+ SkyCardActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyCardActionsComponent, selector: "sky-card-actions", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block;border-top:1px solid #e2e3e4;padding:7px 0}\n"] });
1030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardActionsComponent, decorators: [{
1031
+ type: Component,
1032
+ args: [{ selector: 'sky-card-actions', template: "<ng-content></ng-content>\n", styles: [":host{display:block;border-top:1px solid #e2e3e4;padding:7px 0}\n"] }]
1033
+ }] });
1034
+
1035
+ /**
1036
+ * Specifies the content to display in the body of the card.
1037
+ */
1038
+ class SkyCardContentComponent {
1039
+ }
1040
+ SkyCardContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1041
+ SkyCardContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyCardContentComponent, selector: "sky-card-content", ngImport: i0, template: "<ng-content></ng-content>\n" });
1042
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardContentComponent, decorators: [{
1043
+ type: Component,
1044
+ args: [{ selector: 'sky-card-content', template: "<ng-content></ng-content>\n" }]
1045
+ }] });
1046
+
1047
+ /**
1048
+ * Specifies a title to identify what the card represents.
1049
+ */
1050
+ class SkyCardTitleComponent {
1051
+ }
1052
+ SkyCardTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1053
+ SkyCardTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyCardTitleComponent, selector: "sky-card-title", ngImport: i0, template: "<ng-content></ng-content>\n" });
1054
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardTitleComponent, decorators: [{
1055
+ type: Component,
1056
+ args: [{ selector: 'sky-card-title', template: "<ng-content></ng-content>\n" }]
1057
+ }] });
1058
+
1059
+ /**
1060
+ * Creates a a small container to highlight important information.
1061
+ */
1062
+ class SkyCardComponent {
1063
+ constructor() {
1064
+ /**
1065
+ * Fires when users select or deselect the card.
1066
+ */
1067
+ this.selectedChange = new EventEmitter();
1068
+ this.showTitle = true;
1069
+ }
1070
+ ngAfterContentInit() {
1071
+ this.showTitle = this.titleComponent.length > 0;
1072
+ this.subscription = this.titleComponent.changes.subscribe(() => {
1073
+ this.showTitle = this.titleComponent.length > 0;
1074
+ });
1075
+ this.inlineDeleteComponent.forEach((item) => {
1076
+ item.setType(SkyInlineDeleteType.Card);
1077
+ });
1078
+ this.inlineDeleteComponent.changes.subscribe(() => {
1079
+ this.inlineDeleteComponent.forEach((item) => {
1080
+ item.setType(SkyInlineDeleteType.Card);
1081
+ });
1082
+ });
1083
+ }
1084
+ contentClick() {
1085
+ if (this.selectable) {
1086
+ this.selected = !this.selected;
1087
+ this.selectedChange.emit(this.selected);
1088
+ }
1089
+ }
1090
+ onCheckboxChange(newValue) {
1091
+ if (this.selectable && this.selected !== newValue) {
1092
+ this.selected = newValue;
1093
+ this.selectedChange.emit(this.selected);
1094
+ }
1095
+ }
1096
+ ngOnDestroy() {
1097
+ /* istanbul ignore else */
1098
+ /* sanity check */
1099
+ if (this.subscription) {
1100
+ this.subscription.unsubscribe();
1101
+ }
1102
+ }
1103
+ }
1104
+ SkyCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1105
+ SkyCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyCardComponent, selector: "sky-card", inputs: { size: "size", selectable: "selectable", selected: "selected" }, outputs: { selectedChange: "selectedChange" }, queries: [{ propertyName: "inlineDeleteComponent", predicate: SkyInlineDeleteComponent }, { propertyName: "titleComponent", predicate: SkyCardTitleComponent }], ngImport: i0, template: "<section\n class=\"sky-card sky-shadow\"\n [ngClass]=\"\n {\n 'sky-card-small': size === 'small',\n 'sky-card-selectable': selectable,\n 'sky-card-selected': selectable &amp;&amp; selected\n }\"\n>\n <ng-content select=\"sky-inline-delete\"></ng-content>\n <header>\n <div\n *ngIf=\"selectable || showTitle\"\n class=\"sky-card-header\"\n (click)=\"contentClick()\"\n >\n <div class=\"sky-card-heading-middle\">\n <h1 *ngIf=\"showTitle\" class=\"sky-card-title sky-section-heading\">\n <ng-content select=\"sky-card-title\"></ng-content>\n </h1>\n </div>\n <div *ngIf=\"selectable\" class=\"sky-card-check\">\n <sky-checkbox\n [label]=\"'skyux_card_checkbox_label' | skyLibResources\"\n [ngModel]=\"selected\"\n (click)=\"$event.stopPropagation()\"\n (ngModelChange)=\"onCheckboxChange($event)\"\n ></sky-checkbox>\n </div>\n </div>\n </header>\n <div\n class=\"sky-card-content sky-padding-even-default\"\n (click)=\"contentClick()\"\n >\n <ng-content select=\"sky-card-content\"></ng-content>\n </div>\n <div\n class=\"sky-card-actions\"\n [hidden]=\"actionsEl.children.length === 0\"\n #actionsEl\n >\n <ng-content select=\"sky-card-actions\"></ng-content>\n </div>\n</section>\n", styles: [".sky-card{background-color:#fff;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;display:inline-flex;flex-direction:column;height:350px;margin:0 10px 10px 0;transition:background-color .15s;vertical-align:top;width:350px;position:relative}.sky-card-small{height:250px;width:225px}.sky-card-selectable .sky-card-header,.sky-card-selectable .sky-card-content{cursor:pointer}.sky-card-selected{background-color:#f1eef6;transition:background-color .15s}.sky-card-header{align-items:center;display:flex;flex-shrink:0;margin:0;padding:10px 0 0}.sky-card-heading-left,.sky-card-heading-right{font-weight:400;max-width:34px}.sky-card-heading-left{padding-left:10px}.sky-card-heading-right{padding-right:10px}.sky-card-heading-middle{flex-grow:1;padding:0 10px;overflow:hidden}.sky-card-title{margin:0;line-height:1.428571429}.sky-card-check{flex-shrink:0;padding-right:10px}.sky-card-check .sky-check-wrapper{margin-bottom:2px}.sky-card-content{flex-grow:1;font-weight:400;margin:0;overflow:hidden}.sky-card-actions{bottom:0;flex-shrink:0;text-align:center}.sky-card-actions .sky-context-menu-btn{height:32px;width:32px}\n"], components: [{ type: i1$2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i1$1.SkyLibResourcesPipe } });
1106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardComponent, decorators: [{
1107
+ type: Component,
1108
+ args: [{ selector: 'sky-card', template: "<section\n class=\"sky-card sky-shadow\"\n [ngClass]=\"\n {\n 'sky-card-small': size === 'small',\n 'sky-card-selectable': selectable,\n 'sky-card-selected': selectable &amp;&amp; selected\n }\"\n>\n <ng-content select=\"sky-inline-delete\"></ng-content>\n <header>\n <div\n *ngIf=\"selectable || showTitle\"\n class=\"sky-card-header\"\n (click)=\"contentClick()\"\n >\n <div class=\"sky-card-heading-middle\">\n <h1 *ngIf=\"showTitle\" class=\"sky-card-title sky-section-heading\">\n <ng-content select=\"sky-card-title\"></ng-content>\n </h1>\n </div>\n <div *ngIf=\"selectable\" class=\"sky-card-check\">\n <sky-checkbox\n [label]=\"'skyux_card_checkbox_label' | skyLibResources\"\n [ngModel]=\"selected\"\n (click)=\"$event.stopPropagation()\"\n (ngModelChange)=\"onCheckboxChange($event)\"\n ></sky-checkbox>\n </div>\n </div>\n </header>\n <div\n class=\"sky-card-content sky-padding-even-default\"\n (click)=\"contentClick()\"\n >\n <ng-content select=\"sky-card-content\"></ng-content>\n </div>\n <div\n class=\"sky-card-actions\"\n [hidden]=\"actionsEl.children.length === 0\"\n #actionsEl\n >\n <ng-content select=\"sky-card-actions\"></ng-content>\n </div>\n</section>\n", styles: [".sky-card{background-color:#fff;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;display:inline-flex;flex-direction:column;height:350px;margin:0 10px 10px 0;transition:background-color .15s;vertical-align:top;width:350px;position:relative}.sky-card-small{height:250px;width:225px}.sky-card-selectable .sky-card-header,.sky-card-selectable .sky-card-content{cursor:pointer}.sky-card-selected{background-color:#f1eef6;transition:background-color .15s}.sky-card-header{align-items:center;display:flex;flex-shrink:0;margin:0;padding:10px 0 0}.sky-card-heading-left,.sky-card-heading-right{font-weight:400;max-width:34px}.sky-card-heading-left{padding-left:10px}.sky-card-heading-right{padding-right:10px}.sky-card-heading-middle{flex-grow:1;padding:0 10px;overflow:hidden}.sky-card-title{margin:0;line-height:1.428571429}.sky-card-check{flex-shrink:0;padding-right:10px}.sky-card-check .sky-check-wrapper{margin-bottom:2px}.sky-card-content{flex-grow:1;font-weight:400;margin:0;overflow:hidden}.sky-card-actions{bottom:0;flex-shrink:0;text-align:center}.sky-card-actions .sky-context-menu-btn{height:32px;width:32px}\n"] }]
1109
+ }], propDecorators: { size: [{
1110
+ type: Input
1111
+ }], selectable: [{
1112
+ type: Input
1113
+ }], selected: [{
1114
+ type: Input
1115
+ }], selectedChange: [{
1116
+ type: Output
1117
+ }], inlineDeleteComponent: [{
1118
+ type: ContentChildren,
1119
+ args: [SkyInlineDeleteComponent]
1120
+ }], titleComponent: [{
1121
+ type: ContentChildren,
1122
+ args: [SkyCardTitleComponent]
1123
+ }] } });
1124
+
1125
+ class SkyCardModule {
1126
+ }
1127
+ SkyCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1128
+ SkyCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardModule, declarations: [SkyCardActionsComponent,
1129
+ SkyCardComponent,
1130
+ SkyCardContentComponent,
1131
+ SkyCardTitleComponent], imports: [CommonModule,
1132
+ FormsModule,
1133
+ SkyCheckboxModule,
1134
+ SkyI18nModule,
1135
+ SkyLayoutResourcesModule,
1136
+ SkyInlineDeleteModule], exports: [SkyCardActionsComponent,
1137
+ SkyCardComponent,
1138
+ SkyCardContentComponent,
1139
+ SkyCardTitleComponent] });
1140
+ SkyCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardModule, imports: [[
1141
+ CommonModule,
1142
+ FormsModule,
1143
+ SkyCheckboxModule,
1144
+ SkyI18nModule,
1145
+ SkyLayoutResourcesModule,
1146
+ SkyInlineDeleteModule,
1147
+ ]] });
1148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCardModule, decorators: [{
1149
+ type: NgModule,
1150
+ args: [{
1151
+ declarations: [
1152
+ SkyCardActionsComponent,
1153
+ SkyCardComponent,
1154
+ SkyCardContentComponent,
1155
+ SkyCardTitleComponent,
1156
+ ],
1157
+ imports: [
1158
+ CommonModule,
1159
+ FormsModule,
1160
+ SkyCheckboxModule,
1161
+ SkyI18nModule,
1162
+ SkyLayoutResourcesModule,
1163
+ SkyInlineDeleteModule,
1164
+ ],
1165
+ exports: [
1166
+ SkyCardActionsComponent,
1167
+ SkyCardComponent,
1168
+ SkyCardContentComponent,
1169
+ SkyCardTitleComponent,
1170
+ ],
1171
+ }]
1172
+ }] });
1173
+
1174
+ /**
1175
+ * Wraps the label-value pairs in the definition list.
1176
+ */
1177
+ class SkyDefinitionListContentComponent {
1178
+ }
1179
+ SkyDefinitionListContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1180
+ SkyDefinitionListContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDefinitionListContentComponent, selector: "sky-definition-list-content", ngImport: i0, template: "<div class=\"sky-definition-list-content\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-definition-list-content{display:flex;flex-wrap:wrap;margin-bottom:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListContentComponent, decorators: [{
1182
+ type: Component,
1183
+ args: [{ selector: 'sky-definition-list-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-definition-list-content\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-definition-list-content{display:flex;flex-wrap:wrap;margin-bottom:5px}\n"] }]
1184
+ }] });
1185
+
1186
+ /**
1187
+ * Specifies a title for the definition list.
1188
+ */
1189
+ class SkyDefinitionListHeadingComponent {
1190
+ }
1191
+ SkyDefinitionListHeadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListHeadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1192
+ SkyDefinitionListHeadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDefinitionListHeadingComponent, selector: "sky-definition-list-heading", ngImport: i0, template: "<div class=\"sky-subsection-heading sky-definition-list-heading\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-definition-list-heading{margin-bottom:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListHeadingComponent, decorators: [{
1194
+ type: Component,
1195
+ args: [{ selector: 'sky-definition-list-heading', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-subsection-heading sky-definition-list-heading\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-definition-list-heading{margin-bottom:5px}\n"] }]
1196
+ }] });
1197
+
1198
+ /**
1199
+ * @internal
1200
+ */
1201
+ class SkyDefinitionListService {
1202
+ constructor() {
1203
+ this.labelWidth = new BehaviorSubject('');
1204
+ this.defaultValue = new BehaviorSubject('');
1205
+ }
1206
+ }
1207
+ SkyDefinitionListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1208
+ SkyDefinitionListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListService });
1209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListService, decorators: [{
1210
+ type: Injectable
1211
+ }] });
1212
+
1213
+ /**
1214
+ * Specifies the label in a label-value pair.
1215
+ */
1216
+ class SkyDefinitionListLabelComponent {
1217
+ constructor(service) {
1218
+ this.service = service;
1219
+ }
1220
+ }
1221
+ SkyDefinitionListLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListLabelComponent, deps: [{ token: SkyDefinitionListService }], target: i0.ɵɵFactoryTarget.Component });
1222
+ SkyDefinitionListLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDefinitionListLabelComponent, selector: "sky-definition-list-label", ngImport: i0, template: "<div\n class=\"sky-field-label sky-definition-list-label\"\n [ngStyle]=\"{\n width: (service.labelWidth | async) || ''\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [":host{flex:0 0 90px}.sky-definition-list-label{margin-right:10px;word-wrap:break-word}\n"], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListLabelComponent, decorators: [{
1224
+ type: Component,
1225
+ args: [{ selector: 'sky-definition-list-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-field-label sky-definition-list-label\"\n [ngStyle]=\"{\n width: (service.labelWidth | async) || ''\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [":host{flex:0 0 90px}.sky-definition-list-label{margin-right:10px;word-wrap:break-word}\n"] }]
1226
+ }], ctorParameters: function () { return [{ type: SkyDefinitionListService }]; } });
1227
+
1228
+ /**
1229
+ * Specifies the value in a label-value pair.
1230
+ */
1231
+ class SkyDefinitionListValueComponent {
1232
+ constructor(service) {
1233
+ this.service = service;
1234
+ }
1235
+ }
1236
+ SkyDefinitionListValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListValueComponent, deps: [{ token: SkyDefinitionListService }], target: i0.ɵɵFactoryTarget.Component });
1237
+ SkyDefinitionListValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDefinitionListValueComponent, selector: "sky-definition-list-value", ngImport: i0, template: "<div class=\"sky-definition-list-value\">\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span class=\"sky-deemphasized\" *ngIf=\"!valueEl.textContent.trim()\">\n {{\n (service.defaultValue | async) ||\n ('skyux_definition_list_none_found' | skyLibResources)\n }}\n </span>\n</div>\n", styles: [":host{flex:1}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe, "skyLibResources": i1$1.SkyLibResourcesPipe } });
1238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListValueComponent, decorators: [{
1239
+ type: Component,
1240
+ args: [{ selector: 'sky-definition-list-value', template: "<div class=\"sky-definition-list-value\">\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span class=\"sky-deemphasized\" *ngIf=\"!valueEl.textContent.trim()\">\n {{\n (service.defaultValue | async) ||\n ('skyux_definition_list_none_found' | skyLibResources)\n }}\n </span>\n</div>\n", styles: [":host{flex:1}\n"] }]
1241
+ }], ctorParameters: function () { return [{ type: SkyDefinitionListService }]; } });
1242
+
1243
+ /**
1244
+ * Creates a definition list to display label-value pairs.
1245
+ */
1246
+ class SkyDefinitionListComponent {
1247
+ constructor(service) {
1248
+ this.service = service;
1249
+ }
1250
+ /**
1251
+ * Specifies the width of the label portion of the definition list.
1252
+ * @default "90px"
1253
+ */
1254
+ set labelWidth(value) {
1255
+ this.service.labelWidth.next(value);
1256
+ }
1257
+ /**
1258
+ * Specifies a default value to display when no value is provided
1259
+ * for a label-value pair.
1260
+ * @default "None found"
1261
+ */
1262
+ set defaultValue(value) {
1263
+ this.service.defaultValue.next(value);
1264
+ }
1265
+ }
1266
+ SkyDefinitionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListComponent, deps: [{ token: SkyDefinitionListService }], target: i0.ɵɵFactoryTarget.Component });
1267
+ SkyDefinitionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDefinitionListComponent, selector: "sky-definition-list", inputs: { labelWidth: "labelWidth", defaultValue: "defaultValue" }, providers: [SkyDefinitionListService], ngImport: i0, template: "<div class=\"sky-definition-list\">\n <ng-content select=\"sky-definition-list-heading\"></ng-content>\n <ng-content select=\"sky-definition-list-content\"></ng-content>\n</div>\n", styles: [".sky-definition-list{margin-right:50px;margin-bottom:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListComponent, decorators: [{
1269
+ type: Component,
1270
+ args: [{ selector: 'sky-definition-list', providers: [SkyDefinitionListService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-definition-list\">\n <ng-content select=\"sky-definition-list-heading\"></ng-content>\n <ng-content select=\"sky-definition-list-content\"></ng-content>\n</div>\n", styles: [".sky-definition-list{margin-right:50px;margin-bottom:20px}\n"] }]
1271
+ }], ctorParameters: function () { return [{ type: SkyDefinitionListService }]; }, propDecorators: { labelWidth: [{
1272
+ type: Input
1273
+ }], defaultValue: [{
1274
+ type: Input
1275
+ }] } });
1276
+
1277
+ class SkyDefinitionListModule {
1278
+ }
1279
+ SkyDefinitionListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1280
+ SkyDefinitionListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListModule, declarations: [SkyDefinitionListComponent,
1281
+ SkyDefinitionListContentComponent,
1282
+ SkyDefinitionListHeadingComponent,
1283
+ SkyDefinitionListLabelComponent,
1284
+ SkyDefinitionListValueComponent], imports: [CommonModule, SkyI18nModule, SkyLayoutResourcesModule], exports: [SkyDefinitionListComponent,
1285
+ SkyDefinitionListContentComponent,
1286
+ SkyDefinitionListHeadingComponent,
1287
+ SkyDefinitionListLabelComponent,
1288
+ SkyDefinitionListValueComponent] });
1289
+ SkyDefinitionListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListModule, imports: [[CommonModule, SkyI18nModule, SkyLayoutResourcesModule]] });
1290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDefinitionListModule, decorators: [{
1291
+ type: NgModule,
1292
+ args: [{
1293
+ declarations: [
1294
+ SkyDefinitionListComponent,
1295
+ SkyDefinitionListContentComponent,
1296
+ SkyDefinitionListHeadingComponent,
1297
+ SkyDefinitionListLabelComponent,
1298
+ SkyDefinitionListValueComponent,
1299
+ ],
1300
+ imports: [CommonModule, SkyI18nModule, SkyLayoutResourcesModule],
1301
+ exports: [
1302
+ SkyDefinitionListComponent,
1303
+ SkyDefinitionListContentComponent,
1304
+ SkyDefinitionListHeadingComponent,
1305
+ SkyDefinitionListLabelComponent,
1306
+ SkyDefinitionListValueComponent,
1307
+ ],
1308
+ }]
1309
+ }] });
1310
+
1311
+ /**
1312
+ * @internal
1313
+ */
1314
+ class SkyDescriptionListService {
1315
+ constructor() {
1316
+ this._defaultDescription = new BehaviorSubject('');
1317
+ }
1318
+ get defaultDescription() {
1319
+ return this._defaultDescription.asObservable();
1320
+ }
1321
+ ngOnDestroy() {
1322
+ this._defaultDescription.complete();
1323
+ }
1324
+ updateDefaultDescription(value) {
1325
+ this._defaultDescription.next(value);
1326
+ }
1327
+ }
1328
+ SkyDescriptionListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1329
+ SkyDescriptionListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListService });
1330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListService, decorators: [{
1331
+ type: Injectable
1332
+ }] });
1333
+
1334
+ /**
1335
+ * Specifies the description in a term-description pair.
1336
+ */
1337
+ class SkyDescriptionListDescriptionComponent {
1338
+ constructor(service, changeRef, themeSvc) {
1339
+ this.service = service;
1340
+ this.changeRef = changeRef;
1341
+ this.themeSvc = themeSvc;
1342
+ this.ngUnsubscribe = new Subject();
1343
+ }
1344
+ ngOnInit() {
1345
+ /* istanbul ignore else */
1346
+ if (this.themeSvc) {
1347
+ this.themeSvc.settingsChange
1348
+ .pipe(takeUntil(this.ngUnsubscribe))
1349
+ .subscribe((themeSettings) => {
1350
+ this.themeName = themeSettings.currentSettings.theme.name;
1351
+ this.changeRef.markForCheck();
1352
+ });
1353
+ }
1354
+ }
1355
+ ngOnDestroy() {
1356
+ this.ngUnsubscribe.next();
1357
+ this.ngUnsubscribe.complete();
1358
+ }
1359
+ }
1360
+ SkyDescriptionListDescriptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListDescriptionComponent, deps: [{ token: SkyDescriptionListService }, { token: i0.ChangeDetectorRef }, { token: i3$1.SkyThemeService }], target: i0.ɵɵFactoryTarget.Component });
1361
+ SkyDescriptionListDescriptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDescriptionListDescriptionComponent, selector: "sky-description-list-description", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["descriptionTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #descriptionTemplateRef>\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"!valueEl.textContent.trim()\"\n data-sky-id=\"sky-description-list-default-value\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n {{\n (service.defaultDescription | async) ||\n ('skyux_description_list_none_found' | skyLibResources)\n }}\n </span>\n</ng-template>\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "async": i3.AsyncPipe, "skyLibResources": i1$1.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListDescriptionComponent, decorators: [{
1363
+ type: Component,
1364
+ args: [{ selector: 'sky-description-list-description', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #descriptionTemplateRef>\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"!valueEl.textContent.trim()\"\n data-sky-id=\"sky-description-list-default-value\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n {{\n (service.defaultDescription | async) ||\n ('skyux_description_list_none_found' | skyLibResources)\n }}\n </span>\n</ng-template>\n" }]
1365
+ }], ctorParameters: function () { return [{ type: SkyDescriptionListService }, { type: i0.ChangeDetectorRef }, { type: i3$1.SkyThemeService }]; }, propDecorators: { templateRef: [{
1366
+ type: ViewChild,
1367
+ args: ['descriptionTemplateRef', {
1368
+ read: TemplateRef,
1369
+ static: true,
1370
+ }]
1371
+ }] } });
1372
+
1373
+ /**
1374
+ * Specifies the term in a term-description pair.
1375
+ */
1376
+ class SkyDescriptionListTermComponent {
1377
+ }
1378
+ SkyDescriptionListTermComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListTermComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1379
+ SkyDescriptionListTermComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDescriptionListTermComponent, selector: "sky-description-list-term", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["termTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #termTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListTermComponent, decorators: [{
1381
+ type: Component,
1382
+ args: [{ selector: 'sky-description-list-term', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #termTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n" }]
1383
+ }], propDecorators: { templateRef: [{
1384
+ type: ViewChild,
1385
+ args: ['termTemplateRef', {
1386
+ read: TemplateRef,
1387
+ static: true,
1388
+ }]
1389
+ }] } });
1390
+
1391
+ /**
1392
+ * Wraps the term-description pairs in the description list.
1393
+ */
1394
+ class SkyDescriptionListContentComponent {
1395
+ }
1396
+ SkyDescriptionListContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1397
+ SkyDescriptionListContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDescriptionListContentComponent, selector: "sky-description-list-content", queries: [{ propertyName: "termComponents", predicate: SkyDescriptionListTermComponent }, { propertyName: "descriptionComponents", predicate: SkyDescriptionListDescriptionComponent }], ngImport: i0, template: "<ng-content></ng-content>\n" });
1398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListContentComponent, decorators: [{
1399
+ type: Component,
1400
+ args: [{ selector: 'sky-description-list-content', template: "<ng-content></ng-content>\n" }]
1401
+ }], propDecorators: { termComponents: [{
1402
+ type: ContentChildren,
1403
+ args: [SkyDescriptionListTermComponent]
1404
+ }], descriptionComponents: [{
1405
+ type: ContentChildren,
1406
+ args: [SkyDescriptionListDescriptionComponent]
1407
+ }] } });
1408
+
1409
+ /**
1410
+ * @internal
1411
+ */
1412
+ class SkyDescriptionListAdapterService {
1413
+ constructor(rendererFactory) {
1414
+ this.renderer = rendererFactory.createRenderer(undefined, undefined);
1415
+ }
1416
+ getWidth(elementRef) {
1417
+ return elementRef.nativeElement.clientWidth;
1418
+ }
1419
+ setResponsiveClass(element) {
1420
+ const nativeEl = element.nativeElement;
1421
+ const width = this.getWidth(element);
1422
+ const className = this.getResponsiveClassName(width);
1423
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');
1424
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');
1425
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');
1426
+ this.renderer.addClass(nativeEl, className);
1427
+ }
1428
+ getResponsiveClassName(width) {
1429
+ const xsBreakpointMaxPixels = 479;
1430
+ const smBreakpointMinPixels = 480;
1431
+ const smBreakpointMaxPixels = 767;
1432
+ if (width <= xsBreakpointMaxPixels) {
1433
+ return 'sky-responsive-container-xs';
1434
+ }
1435
+ else if (width >= smBreakpointMinPixels &&
1436
+ width <= smBreakpointMaxPixels) {
1437
+ return 'sky-responsive-container-sm';
1438
+ }
1439
+ else {
1440
+ return 'sky-responsive-container-md';
1441
+ }
1442
+ }
1443
+ }
1444
+ SkyDescriptionListAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
1445
+ SkyDescriptionListAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListAdapterService });
1446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListAdapterService, decorators: [{
1447
+ type: Injectable
1448
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
1449
+
1450
+ /**
1451
+ * Creates a description list to display term-description pairs.
1452
+ */
1453
+ class SkyDescriptionListComponent {
1454
+ constructor(adapterService, changeDetector, descriptionListService, mutationSvc) {
1455
+ this.adapterService = adapterService;
1456
+ this.changeDetector = changeDetector;
1457
+ this.descriptionListService = descriptionListService;
1458
+ this.mutationSvc = mutationSvc;
1459
+ this.ngUnsubscribe = new Subject();
1460
+ }
1461
+ /**
1462
+ * Specifies a default description to display when no description is provided
1463
+ * for a term-description pair.
1464
+ * @default "None found"
1465
+ */
1466
+ set defaultDescription(value) {
1467
+ this.descriptionListService.updateDefaultDescription(value);
1468
+ }
1469
+ /**
1470
+ * Specifies how to display term-description pairs within the description list.
1471
+ * Options include `"horizontal"`, `"longDescription"`, and `"vertical"`.
1472
+ * @default "vertical"
1473
+ */
1474
+ set mode(value) {
1475
+ this._mode = value;
1476
+ }
1477
+ get mode() {
1478
+ return this._mode || 'vertical';
1479
+ }
1480
+ ngAfterContentInit() {
1481
+ // Wait for all content to render before detecting parent width.
1482
+ setTimeout(() => {
1483
+ this.updateResponsiveClass();
1484
+ });
1485
+ this.contentComponents.changes
1486
+ .pipe(takeUntil(this.ngUnsubscribe))
1487
+ .subscribe(() => {
1488
+ this.changeDetector.markForCheck();
1489
+ });
1490
+ }
1491
+ ngAfterViewInit() {
1492
+ this.contentObserver = this.mutationSvc.create(() => {
1493
+ this.changeDetector.markForCheck();
1494
+ });
1495
+ this.contentObserver.observe(this.elementRef.nativeElement, {
1496
+ childList: true,
1497
+ characterData: true,
1498
+ subtree: true,
1499
+ });
1500
+ }
1501
+ ngOnDestroy() {
1502
+ this.ngUnsubscribe.next();
1503
+ this.ngUnsubscribe.complete();
1504
+ this.contentObserver.disconnect();
1505
+ }
1506
+ onWindowResize() {
1507
+ this.updateResponsiveClass();
1508
+ }
1509
+ updateResponsiveClass() {
1510
+ this.adapterService.setResponsiveClass(this.elementRef);
1511
+ this.changeDetector.markForCheck();
1512
+ }
1513
+ }
1514
+ SkyDescriptionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListComponent, deps: [{ token: SkyDescriptionListAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyDescriptionListService }, { token: i1.MutationObserverService }], target: i0.ɵɵFactoryTarget.Component });
1515
+ SkyDescriptionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDescriptionListComponent, selector: "sky-description-list", inputs: { defaultDescription: "defaultDescription", listItemWidth: "listItemWidth", mode: "mode" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [SkyDescriptionListAdapterService, SkyDescriptionListService], queries: [{ propertyName: "contentComponents", predicate: SkyDescriptionListContentComponent }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["descriptionListElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<dl\n class=\"sky-description-list\"\n [ngClass]=\"{\n 'sky-description-list-long-description-mode': mode === 'longDescription',\n 'sky-description-list-vertical-mode': mode === 'vertical',\n 'sky-description-list-horizontal-mode': mode === 'horizontal'\n }\"\n #descriptionListElement\n>\n <!--\n Wrapping div is for horizontal flexing. Also injecting children's templateRef directly\n to avoid adding non-semantic HTML tags to DOM\n -->\n <div\n *ngFor=\"let contentComponent of contentComponents\"\n class=\"sky-description-list-content\"\n [style.width]=\"mode === 'horizontal' ? listItemWidth : ''\"\n >\n <dt *ngFor=\"let termComponent of contentComponent?.termComponents\">\n <ng-container\n *ngTemplateOutlet=\"termComponent.templateRef\"\n ></ng-container>\n </dt>\n <dd\n *ngFor=\"\n let descriptionComponent of contentComponent?.descriptionComponents\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"descriptionComponent.templateRef\"\n ></ng-container>\n </dd>\n </div>\n</dl>\n", styles: [".sky-description-list{margin:0;padding:0}.sky-description-list dt{color:#686c73;font-size:14px;font-weight:400;margin:0 0 3px;padding:0}.sky-description-list dd{margin:0;padding:0}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 15px;width:auto}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap}.sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 15px;padding:0 60px 0 0;min-width:100px;width:auto}.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-xs .sky-description-list-content,.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-sm .sky-description-list-content{width:50%}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content{display:flex}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content:not(:last-child){margin:0 0 10px}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dt{color:#212327;font-size:16px;font-weight:600;margin:0 20px 0 0;width:25%;word-break:break-word}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dd{flex:1}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content{flex-direction:column}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dt{margin:0 0 3px;width:100%}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dd{margin:0 0 10px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1516
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListComponent, decorators: [{
1517
+ type: Component,
1518
+ args: [{ selector: 'sky-description-list', providers: [SkyDescriptionListAdapterService, SkyDescriptionListService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dl\n class=\"sky-description-list\"\n [ngClass]=\"{\n 'sky-description-list-long-description-mode': mode === 'longDescription',\n 'sky-description-list-vertical-mode': mode === 'vertical',\n 'sky-description-list-horizontal-mode': mode === 'horizontal'\n }\"\n #descriptionListElement\n>\n <!--\n Wrapping div is for horizontal flexing. Also injecting children's templateRef directly\n to avoid adding non-semantic HTML tags to DOM\n -->\n <div\n *ngFor=\"let contentComponent of contentComponents\"\n class=\"sky-description-list-content\"\n [style.width]=\"mode === 'horizontal' ? listItemWidth : ''\"\n >\n <dt *ngFor=\"let termComponent of contentComponent?.termComponents\">\n <ng-container\n *ngTemplateOutlet=\"termComponent.templateRef\"\n ></ng-container>\n </dt>\n <dd\n *ngFor=\"\n let descriptionComponent of contentComponent?.descriptionComponents\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"descriptionComponent.templateRef\"\n ></ng-container>\n </dd>\n </div>\n</dl>\n", styles: [".sky-description-list{margin:0;padding:0}.sky-description-list dt{color:#686c73;font-size:14px;font-weight:400;margin:0 0 3px;padding:0}.sky-description-list dd{margin:0;padding:0}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 15px;width:auto}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap}.sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 15px;padding:0 60px 0 0;min-width:100px;width:auto}.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-xs .sky-description-list-content,.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-sm .sky-description-list-content{width:50%}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content{display:flex}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content:not(:last-child){margin:0 0 10px}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dt{color:#212327;font-size:16px;font-weight:600;margin:0 20px 0 0;width:25%;word-break:break-word}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dd{flex:1}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content{flex-direction:column}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dt{margin:0 0 3px;width:100%}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dd{margin:0 0 10px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}\n"] }]
1519
+ }], ctorParameters: function () { return [{ type: SkyDescriptionListAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyDescriptionListService }, { type: i1.MutationObserverService }]; }, propDecorators: { defaultDescription: [{
1520
+ type: Input
1521
+ }], listItemWidth: [{
1522
+ type: Input
1523
+ }], mode: [{
1524
+ type: Input
1525
+ }], contentComponents: [{
1526
+ type: ContentChildren,
1527
+ args: [SkyDescriptionListContentComponent]
1528
+ }], elementRef: [{
1529
+ type: ViewChild,
1530
+ args: ['descriptionListElement', {
1531
+ read: ElementRef,
1532
+ static: true,
1533
+ }]
1534
+ }], onWindowResize: [{
1535
+ type: HostListener,
1536
+ args: ['window:resize']
1537
+ }] } });
1538
+
1539
+ class SkyDescriptionListModule {
1540
+ }
1541
+ SkyDescriptionListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1542
+ SkyDescriptionListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListModule, declarations: [SkyDescriptionListComponent,
1543
+ SkyDescriptionListContentComponent,
1544
+ SkyDescriptionListTermComponent,
1545
+ SkyDescriptionListDescriptionComponent], imports: [CommonModule,
1546
+ SkyI18nModule,
1547
+ SkyLayoutResourcesModule,
1548
+ SkyThemeModule], exports: [SkyDescriptionListComponent,
1549
+ SkyDescriptionListContentComponent,
1550
+ SkyDescriptionListTermComponent,
1551
+ SkyDescriptionListDescriptionComponent] });
1552
+ SkyDescriptionListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListModule, imports: [[
1553
+ CommonModule,
1554
+ SkyI18nModule,
1555
+ SkyLayoutResourcesModule,
1556
+ SkyThemeModule,
1557
+ ]] });
1558
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDescriptionListModule, decorators: [{
1559
+ type: NgModule,
1560
+ args: [{
1561
+ declarations: [
1562
+ SkyDescriptionListComponent,
1563
+ SkyDescriptionListContentComponent,
1564
+ SkyDescriptionListTermComponent,
1565
+ SkyDescriptionListDescriptionComponent,
1566
+ ],
1567
+ imports: [
1568
+ CommonModule,
1569
+ SkyI18nModule,
1570
+ SkyLayoutResourcesModule,
1571
+ SkyThemeModule,
1572
+ ],
1573
+ exports: [
1574
+ SkyDescriptionListComponent,
1575
+ SkyDescriptionListContentComponent,
1576
+ SkyDescriptionListTermComponent,
1577
+ SkyDescriptionListDescriptionComponent,
1578
+ ],
1579
+ }]
1580
+ }] });
1581
+
1582
+ /**
1583
+ * @deprecated Use `SkyDescriptionListModeType` instead.
1584
+ * @internal
1585
+ * Specifies how to display the term-description pairs within a description list.
1586
+ */
1587
+ var SkyDescriptionListMode;
1588
+ (function (SkyDescriptionListMode) {
1589
+ /**
1590
+ * Displays term-description pairs side by side in a horizontal list.
1591
+ * This mode provides a responsive layout.
1592
+ */
1593
+ SkyDescriptionListMode["horizontal"] = "horizontal";
1594
+ /**
1595
+ * Displays terms and descriptions side by side with the term on the left and the description
1596
+ * on the right. This mode includes room for long descriptions and uses a responsive layout
1597
+ * that stacks term-description pairs vertically.
1598
+ */
1599
+ SkyDescriptionListMode["longDescription"] = "longDescription";
1600
+ /**
1601
+ * Displays term-description pairs in a vertical list.
1602
+ */
1603
+ SkyDescriptionListMode["vertical"] = "vertical";
1604
+ })(SkyDescriptionListMode || (SkyDescriptionListMode = {}));
1605
+
1606
+ /**
1607
+ * @deprecated Use `SkyFluidGridGutterSizeType` instead.
1608
+ * @internal
1609
+ */
1610
+ var SkyFluidGridGutterSize;
1611
+ (function (SkyFluidGridGutterSize) {
1612
+ /**
1613
+ * Specifies a small gutter.
1614
+ */
1615
+ SkyFluidGridGutterSize[SkyFluidGridGutterSize["Small"] = 0] = "Small";
1616
+ /**
1617
+ * Specifies a medium gutter.
1618
+ */
1619
+ SkyFluidGridGutterSize[SkyFluidGridGutterSize["Medium"] = 1] = "Medium";
1620
+ /**
1621
+ * Specifies a large gutter.
1622
+ */
1623
+ SkyFluidGridGutterSize[SkyFluidGridGutterSize["Large"] = 2] = "Large";
1624
+ })(SkyFluidGridGutterSize || (SkyFluidGridGutterSize = {}));
1625
+
1626
+ /**
1627
+ * Displays a column within a row of the fluid grid.
1628
+ */
1629
+ class SkyColumnComponent {
1630
+ ngOnChanges(changes) {
1631
+ /* istanbul ignore else */
1632
+ if (changes.screenXSmall ||
1633
+ changes.screenSmall ||
1634
+ changes.screenMedium ||
1635
+ changes.screenLarge) {
1636
+ this.classnames = this.getClassNames();
1637
+ }
1638
+ }
1639
+ getClassNames() {
1640
+ const classnames = ['sky-column'];
1641
+ if (this.screenXSmall) {
1642
+ classnames.push(`sky-column-xs-${this.screenXSmall}`);
1643
+ }
1644
+ if (this.screenSmall) {
1645
+ classnames.push(`sky-column-sm-${this.screenSmall}`);
1646
+ }
1647
+ if (this.screenMedium) {
1648
+ classnames.push(`sky-column-md-${this.screenMedium}`);
1649
+ }
1650
+ if (this.screenLarge) {
1651
+ classnames.push(`sky-column-lg-${this.screenLarge}`);
1652
+ }
1653
+ return classnames.join(' ');
1654
+ }
1655
+ ngOnInit() {
1656
+ this.classnames = this.getClassNames();
1657
+ }
1658
+ }
1659
+ SkyColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1660
+ SkyColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyColumnComponent, selector: "sky-column", inputs: { screenXSmall: "screenXSmall", screenSmall: "screenSmall", screenMedium: "screenMedium", screenLarge: "screenLarge" }, host: { properties: { "class": "this.classnames" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["sky-column.sky-column{padding-right:15px;padding-left:15px;width:100%;min-height:1px}.sky-theme-modern sky-column.sky-column{padding-right:30px;padding-left:30px}.sky-fluid-grid-gutter-size-small sky-column.sky-column{padding-right:5px;padding-left:5px}.sky-fluid-grid-gutter-size-medium sky-column.sky-column{padding-right:10px;padding-left:10px}.sky-theme-modern .sky-fluid-grid-gutter-size-small sky-column.sky-column{padding-right:10px;padding-left:10px}.sky-theme-modern .sky-fluid-grid-gutter-size-medium sky-column.sky-column{padding-right:15px;padding-left:15px}sky-column.sky-column-xs-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-xs-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-xs-3{width:25%}sky-column.sky-column-xs-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-xs-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-xs-6{width:50%}sky-column.sky-column-xs-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-xs-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-xs-9{width:75%}sky-column.sky-column-xs-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-xs-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-xs-12{width:100%}sky-column:not([class*=sky-column-xs-]){width:100%}.sky-responsive-container-xs sky-column.sky-column-xs-1,.sky-responsive-container-sm sky-column.sky-column-xs-1,.sky-responsive-container-md sky-column.sky-column-xs-1,.sky-responsive-container-lg sky-column.sky-column-xs-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-2,.sky-responsive-container-sm sky-column.sky-column-xs-2,.sky-responsive-container-md sky-column.sky-column-xs-2,.sky-responsive-container-lg sky-column.sky-column-xs-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-3,.sky-responsive-container-sm sky-column.sky-column-xs-3,.sky-responsive-container-md sky-column.sky-column-xs-3,.sky-responsive-container-lg sky-column.sky-column-xs-3{width:25%}.sky-responsive-container-xs sky-column.sky-column-xs-4,.sky-responsive-container-sm sky-column.sky-column-xs-4,.sky-responsive-container-md sky-column.sky-column-xs-4,.sky-responsive-container-lg sky-column.sky-column-xs-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-5,.sky-responsive-container-sm sky-column.sky-column-xs-5,.sky-responsive-container-md sky-column.sky-column-xs-5,.sky-responsive-container-lg sky-column.sky-column-xs-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-6,.sky-responsive-container-sm sky-column.sky-column-xs-6,.sky-responsive-container-md sky-column.sky-column-xs-6,.sky-responsive-container-lg sky-column.sky-column-xs-6{width:50%}.sky-responsive-container-xs sky-column.sky-column-xs-7,.sky-responsive-container-sm sky-column.sky-column-xs-7,.sky-responsive-container-md sky-column.sky-column-xs-7,.sky-responsive-container-lg sky-column.sky-column-xs-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-8,.sky-responsive-container-sm sky-column.sky-column-xs-8,.sky-responsive-container-md sky-column.sky-column-xs-8,.sky-responsive-container-lg sky-column.sky-column-xs-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-9,.sky-responsive-container-sm sky-column.sky-column-xs-9,.sky-responsive-container-md sky-column.sky-column-xs-9,.sky-responsive-container-lg sky-column.sky-column-xs-9{width:75%}.sky-responsive-container-xs sky-column.sky-column-xs-10,.sky-responsive-container-sm sky-column.sky-column-xs-10,.sky-responsive-container-md sky-column.sky-column-xs-10,.sky-responsive-container-lg sky-column.sky-column-xs-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-11,.sky-responsive-container-sm sky-column.sky-column-xs-11,.sky-responsive-container-md sky-column.sky-column-xs-11,.sky-responsive-container-lg sky-column.sky-column-xs-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-12,.sky-responsive-container-sm sky-column.sky-column-xs-12,.sky-responsive-container-md sky-column.sky-column-xs-12,.sky-responsive-container-lg sky-column.sky-column-xs-12{width:100%}.sky-responsive-container-xs sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-sm sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-md sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-lg sky-column:not([class*=sky-column-xs-]){width:100%}@media (min-width: 768px){sky-column.sky-column-sm-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-sm-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-sm-3{width:25%}sky-column.sky-column-sm-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-sm-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-sm-6{width:50%}sky-column.sky-column-sm-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-sm-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-sm-9{width:75%}sky-column.sky-column-sm-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-sm-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-sm-12{width:100%}}.sky-responsive-container-sm sky-column.sky-column-sm-1,.sky-responsive-container-md sky-column.sky-column-sm-1,.sky-responsive-container-lg sky-column.sky-column-sm-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-2,.sky-responsive-container-md sky-column.sky-column-sm-2,.sky-responsive-container-lg sky-column.sky-column-sm-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-3,.sky-responsive-container-md sky-column.sky-column-sm-3,.sky-responsive-container-lg sky-column.sky-column-sm-3{width:25%}.sky-responsive-container-sm sky-column.sky-column-sm-4,.sky-responsive-container-md sky-column.sky-column-sm-4,.sky-responsive-container-lg sky-column.sky-column-sm-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-5,.sky-responsive-container-md sky-column.sky-column-sm-5,.sky-responsive-container-lg sky-column.sky-column-sm-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-6,.sky-responsive-container-md sky-column.sky-column-sm-6,.sky-responsive-container-lg sky-column.sky-column-sm-6{width:50%}.sky-responsive-container-sm sky-column.sky-column-sm-7,.sky-responsive-container-md sky-column.sky-column-sm-7,.sky-responsive-container-lg sky-column.sky-column-sm-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-8,.sky-responsive-container-md sky-column.sky-column-sm-8,.sky-responsive-container-lg sky-column.sky-column-sm-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-9,.sky-responsive-container-md sky-column.sky-column-sm-9,.sky-responsive-container-lg sky-column.sky-column-sm-9{width:75%}.sky-responsive-container-sm sky-column.sky-column-sm-10,.sky-responsive-container-md sky-column.sky-column-sm-10,.sky-responsive-container-lg sky-column.sky-column-sm-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-11,.sky-responsive-container-md sky-column.sky-column-sm-11,.sky-responsive-container-lg sky-column.sky-column-sm-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-12,.sky-responsive-container-md sky-column.sky-column-sm-12,.sky-responsive-container-lg sky-column.sky-column-sm-12{width:100%}@media (min-width: 992px){sky-column.sky-column-md-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-md-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-md-3{width:25%}sky-column.sky-column-md-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-md-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-md-6{width:50%}sky-column.sky-column-md-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-md-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-md-9{width:75%}sky-column.sky-column-md-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-md-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-md-12{width:100%}}.sky-responsive-container-md sky-column.sky-column-md-1,.sky-responsive-container-lg sky-column.sky-column-md-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-2,.sky-responsive-container-lg sky-column.sky-column-md-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-3,.sky-responsive-container-lg sky-column.sky-column-md-3{width:25%}.sky-responsive-container-md sky-column.sky-column-md-4,.sky-responsive-container-lg sky-column.sky-column-md-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-5,.sky-responsive-container-lg sky-column.sky-column-md-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-6,.sky-responsive-container-lg sky-column.sky-column-md-6{width:50%}.sky-responsive-container-md sky-column.sky-column-md-7,.sky-responsive-container-lg sky-column.sky-column-md-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-8,.sky-responsive-container-lg sky-column.sky-column-md-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-9,.sky-responsive-container-lg sky-column.sky-column-md-9{width:75%}.sky-responsive-container-md sky-column.sky-column-md-10,.sky-responsive-container-lg sky-column.sky-column-md-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-11,.sky-responsive-container-lg sky-column.sky-column-md-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-12,.sky-responsive-container-lg sky-column.sky-column-md-12{width:100%}@media (min-width: 1200px){sky-column.sky-column-lg-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-lg-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-lg-3{width:25%}sky-column.sky-column-lg-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-lg-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-lg-6{width:50%}sky-column.sky-column-lg-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-lg-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-lg-9{width:75%}sky-column.sky-column-lg-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-lg-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-lg-12{width:100%}}.sky-responsive-container-lg sky-column.sky-column-lg-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-3{width:25%}.sky-responsive-container-lg sky-column.sky-column-lg-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-6{width:50%}.sky-responsive-container-lg sky-column.sky-column-lg-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-9{width:75%}.sky-responsive-container-lg sky-column.sky-column-lg-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-12{width:100%}\n"], encapsulation: i0.ViewEncapsulation.None });
1661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColumnComponent, decorators: [{
1662
+ type: Component,
1663
+ args: [{ selector: 'sky-column', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: ["sky-column.sky-column{padding-right:15px;padding-left:15px;width:100%;min-height:1px}.sky-theme-modern sky-column.sky-column{padding-right:30px;padding-left:30px}.sky-fluid-grid-gutter-size-small sky-column.sky-column{padding-right:5px;padding-left:5px}.sky-fluid-grid-gutter-size-medium sky-column.sky-column{padding-right:10px;padding-left:10px}.sky-theme-modern .sky-fluid-grid-gutter-size-small sky-column.sky-column{padding-right:10px;padding-left:10px}.sky-theme-modern .sky-fluid-grid-gutter-size-medium sky-column.sky-column{padding-right:15px;padding-left:15px}sky-column.sky-column-xs-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-xs-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-xs-3{width:25%}sky-column.sky-column-xs-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-xs-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-xs-6{width:50%}sky-column.sky-column-xs-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-xs-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-xs-9{width:75%}sky-column.sky-column-xs-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-xs-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-xs-12{width:100%}sky-column:not([class*=sky-column-xs-]){width:100%}.sky-responsive-container-xs sky-column.sky-column-xs-1,.sky-responsive-container-sm sky-column.sky-column-xs-1,.sky-responsive-container-md sky-column.sky-column-xs-1,.sky-responsive-container-lg sky-column.sky-column-xs-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-2,.sky-responsive-container-sm sky-column.sky-column-xs-2,.sky-responsive-container-md sky-column.sky-column-xs-2,.sky-responsive-container-lg sky-column.sky-column-xs-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-3,.sky-responsive-container-sm sky-column.sky-column-xs-3,.sky-responsive-container-md sky-column.sky-column-xs-3,.sky-responsive-container-lg sky-column.sky-column-xs-3{width:25%}.sky-responsive-container-xs sky-column.sky-column-xs-4,.sky-responsive-container-sm sky-column.sky-column-xs-4,.sky-responsive-container-md sky-column.sky-column-xs-4,.sky-responsive-container-lg sky-column.sky-column-xs-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-5,.sky-responsive-container-sm sky-column.sky-column-xs-5,.sky-responsive-container-md sky-column.sky-column-xs-5,.sky-responsive-container-lg sky-column.sky-column-xs-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-6,.sky-responsive-container-sm sky-column.sky-column-xs-6,.sky-responsive-container-md sky-column.sky-column-xs-6,.sky-responsive-container-lg sky-column.sky-column-xs-6{width:50%}.sky-responsive-container-xs sky-column.sky-column-xs-7,.sky-responsive-container-sm sky-column.sky-column-xs-7,.sky-responsive-container-md sky-column.sky-column-xs-7,.sky-responsive-container-lg sky-column.sky-column-xs-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-8,.sky-responsive-container-sm sky-column.sky-column-xs-8,.sky-responsive-container-md sky-column.sky-column-xs-8,.sky-responsive-container-lg sky-column.sky-column-xs-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-9,.sky-responsive-container-sm sky-column.sky-column-xs-9,.sky-responsive-container-md sky-column.sky-column-xs-9,.sky-responsive-container-lg sky-column.sky-column-xs-9{width:75%}.sky-responsive-container-xs sky-column.sky-column-xs-10,.sky-responsive-container-sm sky-column.sky-column-xs-10,.sky-responsive-container-md sky-column.sky-column-xs-10,.sky-responsive-container-lg sky-column.sky-column-xs-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-11,.sky-responsive-container-sm sky-column.sky-column-xs-11,.sky-responsive-container-md sky-column.sky-column-xs-11,.sky-responsive-container-lg sky-column.sky-column-xs-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-12,.sky-responsive-container-sm sky-column.sky-column-xs-12,.sky-responsive-container-md sky-column.sky-column-xs-12,.sky-responsive-container-lg sky-column.sky-column-xs-12{width:100%}.sky-responsive-container-xs sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-sm sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-md sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-lg sky-column:not([class*=sky-column-xs-]){width:100%}@media (min-width: 768px){sky-column.sky-column-sm-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-sm-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-sm-3{width:25%}sky-column.sky-column-sm-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-sm-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-sm-6{width:50%}sky-column.sky-column-sm-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-sm-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-sm-9{width:75%}sky-column.sky-column-sm-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-sm-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-sm-12{width:100%}}.sky-responsive-container-sm sky-column.sky-column-sm-1,.sky-responsive-container-md sky-column.sky-column-sm-1,.sky-responsive-container-lg sky-column.sky-column-sm-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-2,.sky-responsive-container-md sky-column.sky-column-sm-2,.sky-responsive-container-lg sky-column.sky-column-sm-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-3,.sky-responsive-container-md sky-column.sky-column-sm-3,.sky-responsive-container-lg sky-column.sky-column-sm-3{width:25%}.sky-responsive-container-sm sky-column.sky-column-sm-4,.sky-responsive-container-md sky-column.sky-column-sm-4,.sky-responsive-container-lg sky-column.sky-column-sm-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-5,.sky-responsive-container-md sky-column.sky-column-sm-5,.sky-responsive-container-lg sky-column.sky-column-sm-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-6,.sky-responsive-container-md sky-column.sky-column-sm-6,.sky-responsive-container-lg sky-column.sky-column-sm-6{width:50%}.sky-responsive-container-sm sky-column.sky-column-sm-7,.sky-responsive-container-md sky-column.sky-column-sm-7,.sky-responsive-container-lg sky-column.sky-column-sm-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-8,.sky-responsive-container-md sky-column.sky-column-sm-8,.sky-responsive-container-lg sky-column.sky-column-sm-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-9,.sky-responsive-container-md sky-column.sky-column-sm-9,.sky-responsive-container-lg sky-column.sky-column-sm-9{width:75%}.sky-responsive-container-sm sky-column.sky-column-sm-10,.sky-responsive-container-md sky-column.sky-column-sm-10,.sky-responsive-container-lg sky-column.sky-column-sm-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-11,.sky-responsive-container-md sky-column.sky-column-sm-11,.sky-responsive-container-lg sky-column.sky-column-sm-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-12,.sky-responsive-container-md sky-column.sky-column-sm-12,.sky-responsive-container-lg sky-column.sky-column-sm-12{width:100%}@media (min-width: 992px){sky-column.sky-column-md-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-md-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-md-3{width:25%}sky-column.sky-column-md-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-md-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-md-6{width:50%}sky-column.sky-column-md-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-md-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-md-9{width:75%}sky-column.sky-column-md-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-md-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-md-12{width:100%}}.sky-responsive-container-md sky-column.sky-column-md-1,.sky-responsive-container-lg sky-column.sky-column-md-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-2,.sky-responsive-container-lg sky-column.sky-column-md-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-3,.sky-responsive-container-lg sky-column.sky-column-md-3{width:25%}.sky-responsive-container-md sky-column.sky-column-md-4,.sky-responsive-container-lg sky-column.sky-column-md-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-5,.sky-responsive-container-lg sky-column.sky-column-md-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-6,.sky-responsive-container-lg sky-column.sky-column-md-6{width:50%}.sky-responsive-container-md sky-column.sky-column-md-7,.sky-responsive-container-lg sky-column.sky-column-md-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-8,.sky-responsive-container-lg sky-column.sky-column-md-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-9,.sky-responsive-container-lg sky-column.sky-column-md-9{width:75%}.sky-responsive-container-md sky-column.sky-column-md-10,.sky-responsive-container-lg sky-column.sky-column-md-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-11,.sky-responsive-container-lg sky-column.sky-column-md-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-12,.sky-responsive-container-lg sky-column.sky-column-md-12{width:100%}@media (min-width: 1200px){sky-column.sky-column-lg-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-lg-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-lg-3{width:25%}sky-column.sky-column-lg-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-lg-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-lg-6{width:50%}sky-column.sky-column-lg-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-lg-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-lg-9{width:75%}sky-column.sky-column-lg-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-lg-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-lg-12{width:100%}}.sky-responsive-container-lg sky-column.sky-column-lg-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-3{width:25%}.sky-responsive-container-lg sky-column.sky-column-lg-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-6{width:50%}.sky-responsive-container-lg sky-column.sky-column-lg-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-9{width:75%}.sky-responsive-container-lg sky-column.sky-column-lg-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-12{width:100%}\n"] }]
1664
+ }], propDecorators: { screenXSmall: [{
1665
+ type: Input
1666
+ }], screenSmall: [{
1667
+ type: Input
1668
+ }], screenMedium: [{
1669
+ type: Input
1670
+ }], screenLarge: [{
1671
+ type: Input
1672
+ }], classnames: [{
1673
+ type: HostBinding,
1674
+ args: ['class']
1675
+ }] } });
1676
+
1677
+ /**
1678
+ * Wraps the fluid grid to ensure proper spacing. Without the wrapper, the
1679
+ * alignment, padding, and margins do not behave as expected.
1680
+ */
1681
+ class SkyFluidGridComponent {
1682
+ /**
1683
+ * Disables the outer left and right margin of the fluid grid container.
1684
+ * @default false
1685
+ */
1686
+ set disableMargin(value) {
1687
+ this._disableMargin = value;
1688
+ }
1689
+ get disableMargin() {
1690
+ return this._disableMargin || false;
1691
+ }
1692
+ /**
1693
+ * Specifies a `SkyFluidGridGutterSizeType` to define the size of the padding
1694
+ * between columns. Options include: `any`, `1`, `2`, `"small"`, `"medium"`, and `"large"`.
1695
+ * @default "large"
1696
+ */
1697
+ set gutterSize(value) {
1698
+ this._gutterSize = value;
1699
+ }
1700
+ get gutterSize() {
1701
+ return this._gutterSize === undefined ? 'large' : this._gutterSize;
1702
+ }
1703
+ /**
1704
+ * @internal
1705
+ */
1706
+ get gutterSizeResolved() {
1707
+ // Before this change, the template did a `==` comparison, implicitly converting numerical
1708
+ // string values to their numeric values before comparing them. Checking for the numerical
1709
+ // string value in addition to the values allowed by the type maintains this behavior.
1710
+ switch (this.gutterSize) {
1711
+ case 'medium':
1712
+ case SkyFluidGridGutterSize.Medium:
1713
+ case SkyFluidGridGutterSize.Medium.toString():
1714
+ return 'medium';
1715
+ case 'small':
1716
+ case SkyFluidGridGutterSize.Small:
1717
+ case SkyFluidGridGutterSize.Small.toString():
1718
+ return 'small';
1719
+ default:
1720
+ return 'large';
1721
+ }
1722
+ }
1723
+ }
1724
+ SkyFluidGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFluidGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1725
+ SkyFluidGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyFluidGridComponent, selector: "sky-fluid-grid", inputs: { disableMargin: "disableMargin", gutterSize: "gutterSize" }, ngImport: i0, template: "<div\n class=\"sky-fluid-grid\"\n [ngClass]=\"{\n 'sky-fluid-grid-gutter-size-small': gutterSizeResolved === 'small',\n 'sky-fluid-grid-gutter-size-medium': gutterSizeResolved === 'medium',\n 'sky-fluid-grid-gutter-size-large': gutterSizeResolved === 'large',\n 'sky-fluid-grid-no-margin': disableMargin\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-fluid-grid-gutter-size-small{padding-left:5px;padding-right:5px}.sky-fluid-grid-gutter-size-medium{padding-left:10px;padding-right:10px}.sky-fluid-grid-gutter-size-large{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-small{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-medium{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-large{padding-left:30px;padding-right:30px}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFluidGridComponent, decorators: [{
1727
+ type: Component,
1728
+ args: [{ selector: 'sky-fluid-grid', template: "<div\n class=\"sky-fluid-grid\"\n [ngClass]=\"{\n 'sky-fluid-grid-gutter-size-small': gutterSizeResolved === 'small',\n 'sky-fluid-grid-gutter-size-medium': gutterSizeResolved === 'medium',\n 'sky-fluid-grid-gutter-size-large': gutterSizeResolved === 'large',\n 'sky-fluid-grid-no-margin': disableMargin\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-fluid-grid-gutter-size-small{padding-left:5px;padding-right:5px}.sky-fluid-grid-gutter-size-medium{padding-left:10px;padding-right:10px}.sky-fluid-grid-gutter-size-large{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-small{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-medium{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-large{padding-left:30px;padding-right:30px}\n"] }]
1729
+ }], propDecorators: { disableMargin: [{
1730
+ type: Input
1731
+ }], gutterSize: [{
1732
+ type: Input
1733
+ }] } });
1734
+
1735
+ /**
1736
+ * Displays a row within the `sky-fluid-grid` wrapper. Previously, you could display a row
1737
+ * without a wrapper, but we no longer officially support that option.
1738
+ */
1739
+ class SkyRowComponent {
1740
+ constructor() {
1741
+ /**
1742
+ * Indicates whether to reverse the display order for columns in the row.
1743
+ * @default false
1744
+ */
1745
+ this.reverseColumnOrder = false;
1746
+ }
1747
+ }
1748
+ SkyRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1749
+ SkyRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyRowComponent, selector: "sky-row", inputs: { reverseColumnOrder: "reverseColumnOrder" }, ngImport: i0, template: "<div class=\"sky-row\" [ngClass]=\"{ 'sky-row-reverse': reverseColumnOrder }\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-row{display:flex;flex-direction:row;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}:host-context(.sky-fluid-grid-gutter-size-small) .sky-row{margin-left:-5px;margin-right:-5px}:host-context(.sky-fluid-grid-gutter-size-small.sky-fluid-grid-no-margin) .sky-row{margin-left:-10px;margin-right:-10px}:host-context(.sky-fluid-grid-gutter-size-medium) .sky-row{margin-left:-10px;margin-right:-10px}:host-context(.sky-fluid-grid-gutter-size-medium.sky-fluid-grid-no-margin) .sky-row{margin-left:-20px;margin-right:-20px}:host-context(.sky-fluid-grid-gutter-size-large) .sky-row{margin-left:-15px;margin-right:-15px}:host-context(.sky-fluid-grid-gutter-size-large.sky-fluid-grid-no-margin) .sky-row{margin-left:-30px;margin-right:-30px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-small) .sky-row{margin-left:-10px;margin-right:-10px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-small.sky-fluid-grid-no-margin) .sky-row{margin-left:-20px;margin-right:-20px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-medium) .sky-row{margin-left:-15px;margin-right:-15px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-medium.sky-fluid-grid-no-margin) .sky-row{margin-left:-30px;margin-right:-30px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-large) .sky-row{margin-left:-30px;margin-right:-30px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-large.sky-fluid-grid-no-margin) .sky-row{margin-left:-60px;margin-right:-60px}:host .sky-row.sky-row-reverse{flex-direction:row}:host-context(.sky-responsive-container-xs) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-sm) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-md) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-lg) .sky-row.sky-row-reverse{flex-direction:row}@media (min-width: 768px){:host .sky-row.sky-row-reverse{flex-direction:row-reverse}}:host-context(.sky-responsive-container-sm) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-md) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-lg) .sky-row.sky-row-reverse{flex-direction:row-reverse}:host-context(.sky-theme-modern) .sky-row{margin-left:-30px;margin-right:-30px}.sky-theme-modern .sky-row{margin-left:-30px;margin-right:-30px}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRowComponent, decorators: [{
1751
+ type: Component,
1752
+ args: [{ selector: 'sky-row', template: "<div class=\"sky-row\" [ngClass]=\"{ 'sky-row-reverse': reverseColumnOrder }\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-row{display:flex;flex-direction:row;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}:host-context(.sky-fluid-grid-gutter-size-small) .sky-row{margin-left:-5px;margin-right:-5px}:host-context(.sky-fluid-grid-gutter-size-small.sky-fluid-grid-no-margin) .sky-row{margin-left:-10px;margin-right:-10px}:host-context(.sky-fluid-grid-gutter-size-medium) .sky-row{margin-left:-10px;margin-right:-10px}:host-context(.sky-fluid-grid-gutter-size-medium.sky-fluid-grid-no-margin) .sky-row{margin-left:-20px;margin-right:-20px}:host-context(.sky-fluid-grid-gutter-size-large) .sky-row{margin-left:-15px;margin-right:-15px}:host-context(.sky-fluid-grid-gutter-size-large.sky-fluid-grid-no-margin) .sky-row{margin-left:-30px;margin-right:-30px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-small) .sky-row{margin-left:-10px;margin-right:-10px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-small.sky-fluid-grid-no-margin) .sky-row{margin-left:-20px;margin-right:-20px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-medium) .sky-row{margin-left:-15px;margin-right:-15px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-medium.sky-fluid-grid-no-margin) .sky-row{margin-left:-30px;margin-right:-30px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-large) .sky-row{margin-left:-30px;margin-right:-30px}:host-context(.sky-theme-modern .sky-fluid-grid-gutter-size-large.sky-fluid-grid-no-margin) .sky-row{margin-left:-60px;margin-right:-60px}:host .sky-row.sky-row-reverse{flex-direction:row}:host-context(.sky-responsive-container-xs) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-sm) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-md) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-lg) .sky-row.sky-row-reverse{flex-direction:row}@media (min-width: 768px){:host .sky-row.sky-row-reverse{flex-direction:row-reverse}}:host-context(.sky-responsive-container-sm) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-md) .sky-row.sky-row-reverse,:host-context(.sky-responsive-container-lg) .sky-row.sky-row-reverse{flex-direction:row-reverse}:host-context(.sky-theme-modern) .sky-row{margin-left:-30px;margin-right:-30px}.sky-theme-modern .sky-row{margin-left:-30px;margin-right:-30px}\n"] }]
1753
+ }], propDecorators: { reverseColumnOrder: [{
1754
+ type: Input
1755
+ }] } });
1756
+
1757
+ class SkyFluidGridModule {
1758
+ }
1759
+ SkyFluidGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFluidGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1760
+ SkyFluidGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFluidGridModule, declarations: [SkyRowComponent, SkyColumnComponent, SkyFluidGridComponent], imports: [CommonModule], exports: [SkyRowComponent, SkyColumnComponent, SkyFluidGridComponent] });
1761
+ SkyFluidGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFluidGridModule, imports: [[CommonModule]] });
1762
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFluidGridModule, decorators: [{
1763
+ type: NgModule,
1764
+ args: [{
1765
+ imports: [CommonModule],
1766
+ declarations: [SkyRowComponent, SkyColumnComponent, SkyFluidGridComponent],
1767
+ exports: [SkyRowComponent, SkyColumnComponent, SkyFluidGridComponent],
1768
+ }]
1769
+ }] });
1770
+
1771
+ const tokenRegex = /(\{\d+\})/;
1772
+ class SkyFormatComponent {
1773
+ /**
1774
+ * The tokenized string that represents the template. Tokens use the `{n}` notation
1775
+ * where `n` is the ordinal of the item to replace the token.
1776
+ */
1777
+ set text(value) {
1778
+ this._text = value;
1779
+ this.updateItemsForDisplay();
1780
+ }
1781
+ get text() {
1782
+ return this._text;
1783
+ }
1784
+ /**
1785
+ * An array of `TemplateRef` objects to be placed in the template, where the `nth`
1786
+ * item is placed at the `{n}` location in the template.
1787
+ */
1788
+ set args(value) {
1789
+ this._args = value;
1790
+ this.updateItemsForDisplay();
1791
+ }
1792
+ get args() {
1793
+ return this._args;
1794
+ }
1795
+ updateItemsForDisplay() {
1796
+ this.itemsForDisplay = [];
1797
+ if (this.text && this.args) {
1798
+ const textParts = this.text.split(tokenRegex);
1799
+ for (const textPart of textParts) {
1800
+ // Disregard empty strings.
1801
+ if (textPart) {
1802
+ const item = {};
1803
+ if (tokenRegex.test(textPart)) {
1804
+ const valueIndex = +textPart.substring(1, textPart.length - 1);
1805
+ item.templateRef = this.args[valueIndex];
1806
+ }
1807
+ else {
1808
+ item.text = textPart;
1809
+ }
1810
+ this.itemsForDisplay.push(item);
1811
+ }
1812
+ }
1813
+ }
1814
+ }
1815
+ }
1816
+ SkyFormatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1817
+ SkyFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyFormatComponent, selector: "sky-format", inputs: { text: "text", args: "args" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of itemsForDisplay\">\n <!--\n The following ng-container must be on one line so no extra whitespace is introduced.\n -->\n <ng-container *ngIf=\"item.text; else item.templateRef\">{{\n item.text\n }}</ng-container>\n</ng-container>\n", directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFormatComponent, decorators: [{
1819
+ type: Component,
1820
+ args: [{ selector: 'sky-format', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let item of itemsForDisplay\">\n <!--\n The following ng-container must be on one line so no extra whitespace is introduced.\n -->\n <ng-container *ngIf=\"item.text; else item.templateRef\">{{\n item.text\n }}</ng-container>\n</ng-container>\n" }]
1821
+ }], propDecorators: { text: [{
1822
+ type: Input
1823
+ }], args: [{
1824
+ type: Input
1825
+ }] } });
1826
+
1827
+ class SkyFormatModule {
1828
+ }
1829
+ SkyFormatModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFormatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1830
+ SkyFormatModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFormatModule, declarations: [SkyFormatComponent], imports: [CommonModule], exports: [SkyFormatComponent] });
1831
+ SkyFormatModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFormatModule, imports: [[CommonModule]] });
1832
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyFormatModule, decorators: [{
1833
+ type: NgModule,
1834
+ args: [{
1835
+ declarations: [SkyFormatComponent],
1836
+ imports: [CommonModule],
1837
+ exports: [SkyFormatComponent],
1838
+ }]
1839
+ }] });
1840
+
1841
+ /**
1842
+ * @internal
1843
+ */
1844
+ class SkyPageThemeAdapterService {
1845
+ addTheme() {
1846
+ if (!this.styleEl) {
1847
+ this.styleEl = document.createElement('style');
1848
+ this.styleEl.appendChild(document.createTextNode('body { background-color: #fff; }'));
1849
+ document.head.appendChild(this.styleEl);
1850
+ }
1851
+ }
1852
+ removeTheme() {
1853
+ if (this.styleEl) {
1854
+ document.head.removeChild(this.styleEl);
1855
+ this.styleEl = undefined;
1856
+ }
1857
+ }
1858
+ }
1859
+ SkyPageThemeAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageThemeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1860
+ SkyPageThemeAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageThemeAdapterService });
1861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageThemeAdapterService, decorators: [{
1862
+ type: Injectable
1863
+ }] });
1864
+
1865
+ /**
1866
+ * Resets the SPA's background to white and adds the `sky-theme-default` CSS class to the host
1867
+ * element to let consumers override CSS styling. Consumers can override any element by writing
1868
+ * CSS selectors like this: `:host-context(.sky-theme-default) .my-class {}`.
1869
+ */
1870
+ class SkyPageComponent {
1871
+ constructor(themeAdapter) {
1872
+ this.themeAdapter = themeAdapter;
1873
+ }
1874
+ ngOnInit() {
1875
+ this.themeAdapter.addTheme();
1876
+ }
1877
+ ngOnDestroy() {
1878
+ this.themeAdapter.removeTheme();
1879
+ }
1880
+ }
1881
+ SkyPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageComponent, deps: [{ token: SkyPageThemeAdapterService }], target: i0.ɵɵFactoryTarget.Component });
1882
+ SkyPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageComponent, selector: "sky-page", providers: [SkyPageThemeAdapterService], ngImport: i0, template: "<div class=\"sky-theme-default\">\n <ng-content></ng-content>\n</div>\n" });
1883
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageComponent, decorators: [{
1884
+ type: Component,
1885
+ args: [{ selector: 'sky-page', providers: [SkyPageThemeAdapterService], template: "<div class=\"sky-theme-default\">\n <ng-content></ng-content>\n</div>\n" }]
1886
+ }], ctorParameters: function () { return [{ type: SkyPageThemeAdapterService }]; } });
1887
+
1888
+ class SkyPageModule {
1889
+ }
1890
+ SkyPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1891
+ SkyPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageModule, declarations: [SkyPageComponent], exports: [SkyPageComponent] });
1892
+ SkyPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageModule });
1893
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageModule, decorators: [{
1894
+ type: NgModule,
1895
+ args: [{
1896
+ declarations: [SkyPageComponent],
1897
+ exports: [SkyPageComponent],
1898
+ }]
1899
+ }] });
1900
+
1901
+ /**
1902
+ * Displays messages that require immediate attention as [alerts](https://developer.blackbaud.com/skyux/components/alert) within
1903
+ * the page summary.
1904
+ */
1905
+ /* istanbul ignore next */
1906
+ /* Code coverage having problems with no statements in classes */
1907
+ class SkyPageSummaryAlertComponent {
1908
+ }
1909
+ SkyPageSummaryAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1910
+ SkyPageSummaryAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummaryAlertComponent, selector: "sky-page-summary-alert", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["::ng-deep .sky-alert{margin-top:0;margin-bottom:20px;line-height:initial}\n"] });
1911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryAlertComponent, decorators: [{
1912
+ type: Component,
1913
+ args: [{ selector: 'sky-page-summary-alert', template: "<ng-content></ng-content>\n", styles: ["::ng-deep .sky-alert{margin-top:0;margin-bottom:20px;line-height:initial}\n"] }]
1914
+ }] });
1915
+
1916
+ /**
1917
+ * Displays content in the arbitrary section of the page summary.
1918
+ */
1919
+ /* istanbul ignore next */
1920
+ /* Code coverage having problems with no statements in classes */
1921
+ class SkyPageSummaryContentComponent {
1922
+ }
1923
+ SkyPageSummaryContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1924
+ SkyPageSummaryContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummaryContentComponent, selector: "sky-page-summary-content", ngImport: i0, template: "<div class=\"sky-page-summary-content\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-page-summary-content{margin-top:20px}\n"] });
1925
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryContentComponent, decorators: [{
1926
+ type: Component,
1927
+ args: [{ selector: 'sky-page-summary-content', template: "<div class=\"sky-page-summary-content\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-page-summary-content{margin-top:20px}\n"] }]
1928
+ }] });
1929
+
1930
+ /**
1931
+ * Displays an image in the page summary to identify a record
1932
+ * or help users complete a core task.
1933
+ */
1934
+ /* istanbul ignore next */
1935
+ /* Code coverage having problems with no statements in classes */
1936
+ class SkyPageSummaryImageComponent {
1937
+ }
1938
+ SkyPageSummaryImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1939
+ SkyPageSummaryImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummaryImageComponent, selector: "sky-page-summary-image", ngImport: i0, template: "<div class=\"sky-page-summary-image\">\n <ng-content></ng-content>\n</div>\n", styles: [":host .sky-page-summary-image{width:100px;margin-left:auto;margin-right:auto;margin-bottom:10px}:host-context(.sky-responsive-container-xs) .sky-page-summary-image,:host-context(.sky-responsive-container-sm) .sky-page-summary-image,:host-context(.sky-responsive-container-md) .sky-page-summary-image,:host-context(.sky-responsive-container-lg) .sky-page-summary-image{width:100px;margin-left:auto;margin-right:auto;margin-bottom:10px}@media (min-width: 768px){:host .sky-page-summary-image{width:120px;flex:0 0 120px;margin:initial}}:host-context(.sky-responsive-container-sm) .sky-page-summary-image,:host-context(.sky-responsive-container-md) .sky-page-summary-image,:host-context(.sky-responsive-container-lg) .sky-page-summary-image{width:120px;flex:0 0 120px;margin:initial}\n"] });
1940
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryImageComponent, decorators: [{
1941
+ type: Component,
1942
+ args: [{ selector: 'sky-page-summary-image', template: "<div class=\"sky-page-summary-image\">\n <ng-content></ng-content>\n</div>\n", styles: [":host .sky-page-summary-image{width:100px;margin-left:auto;margin-right:auto;margin-bottom:10px}:host-context(.sky-responsive-container-xs) .sky-page-summary-image,:host-context(.sky-responsive-container-sm) .sky-page-summary-image,:host-context(.sky-responsive-container-md) .sky-page-summary-image,:host-context(.sky-responsive-container-lg) .sky-page-summary-image{width:100px;margin-left:auto;margin-right:auto;margin-bottom:10px}@media (min-width: 768px){:host .sky-page-summary-image{width:120px;flex:0 0 120px;margin:initial}}:host-context(.sky-responsive-container-sm) .sky-page-summary-image,:host-context(.sky-responsive-container-md) .sky-page-summary-image,:host-context(.sky-responsive-container-lg) .sky-page-summary-image{width:120px;flex:0 0 120px;margin:initial}\n"] }]
1943
+ }] });
1944
+
1945
+ /**
1946
+ * Highlights important information about a page in the key information section of the
1947
+ * page summary.
1948
+ */
1949
+ class SkyPageSummaryKeyInfoComponent {
1950
+ }
1951
+ SkyPageSummaryKeyInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryKeyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1952
+ SkyPageSummaryKeyInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummaryKeyInfoComponent, selector: "sky-page-summary-key-info", ngImport: i0, template: "<div class=\"sky-page-summary-key-info\">\n <ng-content></ng-content>\n</div>\n", styles: [":host .sky-page-summary-key-info{margin-top:20px}:host-context(.sky-responsive-container-xs) .sky-page-summary-key-info,:host-context(.sky-responsive-container-sm) .sky-page-summary-key-info,:host-context(.sky-responsive-container-md) .sky-page-summary-key-info,:host-context(.sky-responsive-container-lg) .sky-page-summary-key-info{margin-top:20px}@media (min-width: 768px){:host .sky-page-summary-key-info{margin-top:initial}}:host-context(.sky-responsive-container-sm) .sky-page-summary-key-info,:host-context(.sky-responsive-container-md) .sky-page-summary-key-info,:host-context(.sky-responsive-container-lg) .sky-page-summary-key-info{margin-top:initial}.sky-page-summary-key-info ::ng-deep .sky-key-info{display:block}\n"] });
1953
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryKeyInfoComponent, decorators: [{
1954
+ type: Component,
1955
+ args: [{ selector: 'sky-page-summary-key-info', template: "<div class=\"sky-page-summary-key-info\">\n <ng-content></ng-content>\n</div>\n", styles: [":host .sky-page-summary-key-info{margin-top:20px}:host-context(.sky-responsive-container-xs) .sky-page-summary-key-info,:host-context(.sky-responsive-container-sm) .sky-page-summary-key-info,:host-context(.sky-responsive-container-md) .sky-page-summary-key-info,:host-context(.sky-responsive-container-lg) .sky-page-summary-key-info{margin-top:20px}@media (min-width: 768px){:host .sky-page-summary-key-info{margin-top:initial}}:host-context(.sky-responsive-container-sm) .sky-page-summary-key-info,:host-context(.sky-responsive-container-md) .sky-page-summary-key-info,:host-context(.sky-responsive-container-lg) .sky-page-summary-key-info{margin-top:initial}.sky-page-summary-key-info ::ng-deep .sky-key-info{display:block}\n"] }]
1956
+ }] });
1957
+
1958
+ /**
1959
+ * Displays [labels](https://developer.blackbaud.com/skyux/components/label)
1960
+ * to highlight important status information about a page's content.
1961
+ */
1962
+ /* istanbul ignore next */
1963
+ /* Code coverage having problems with no statements in classes */
1964
+ class SkyPageSummaryStatusComponent {
1965
+ }
1966
+ SkyPageSummaryStatusComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1967
+ SkyPageSummaryStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummaryStatusComponent, selector: "sky-page-summary-status", ngImport: i0, template: "<div class=\"sky-page-summary-status\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-page-summary-status{margin-top:10px}.sky-page-summary-status ::ng-deep .sky-label{margin-right:5px}\n"] });
1968
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryStatusComponent, decorators: [{
1969
+ type: Component,
1970
+ args: [{ selector: 'sky-page-summary-status', template: "<div class=\"sky-page-summary-status\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-page-summary-status{margin-top:10px}.sky-page-summary-status ::ng-deep .sky-label{margin-right:5px}\n"] }]
1971
+ }] });
1972
+
1973
+ /**
1974
+ * Specifies a subtitle to identify the page content.
1975
+ */
1976
+ /* istanbul ignore next */
1977
+ /* Code coverage having problems with no statements in classes */
1978
+ class SkyPageSummarySubtitleComponent {
1979
+ }
1980
+ SkyPageSummarySubtitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummarySubtitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1981
+ SkyPageSummarySubtitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummarySubtitleComponent, selector: "sky-page-summary-subtitle", ngImport: i0, template: "<p class=\"sky-page-summary-subtitle sky-emphasized\">\n <ng-content></ng-content>\n</p>\n", styles: [".sky-page-summary-subtitle{margin-top:0;margin-bottom:10px;line-height:1.1}\n"] });
1982
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummarySubtitleComponent, decorators: [{
1983
+ type: Component,
1984
+ args: [{ selector: 'sky-page-summary-subtitle', template: "<p class=\"sky-page-summary-subtitle sky-emphasized\">\n <ng-content></ng-content>\n</p>\n", styles: [".sky-page-summary-subtitle{margin-top:0;margin-bottom:10px;line-height:1.1}\n"] }]
1985
+ }] });
1986
+
1987
+ /**
1988
+ * Specifies a title to identify the page content.
1989
+ */
1990
+ /* istanbul ignore next */
1991
+ /* Code coverage having problems with no statements in classes */
1992
+ class SkyPageSummaryTitleComponent {
1993
+ }
1994
+ SkyPageSummaryTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1995
+ SkyPageSummaryTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummaryTitleComponent, selector: "sky-page-summary-title", ngImport: i0, template: "<h1 class=\"sky-page-summary-title sky-page-heading\">\n <ng-content></ng-content>\n</h1>\n", styles: [".sky-page-summary-title{margin-top:0;margin-bottom:5px}\n"] });
1996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryTitleComponent, decorators: [{
1997
+ type: Component,
1998
+ args: [{ selector: 'sky-page-summary-title', template: "<h1 class=\"sky-page-summary-title sky-page-heading\">\n <ng-content></ng-content>\n</h1>\n", styles: [".sky-page-summary-title{margin-top:0;margin-bottom:5px}\n"] }]
1999
+ }] });
2000
+
2001
+ /**
2002
+ * @internal
2003
+ */
2004
+ class SkyPageSummaryAdapterService {
2005
+ updateKeyInfoLocation(elRef, isXS) {
2006
+ const el = elRef.nativeElement;
2007
+ const keyInfoContainerEl = el.querySelector('.sky-page-summary-key-info-container');
2008
+ if (isXS) {
2009
+ el.querySelector('.sky-page-summary-key-info-xs').appendChild(keyInfoContainerEl);
2010
+ }
2011
+ else {
2012
+ el.querySelector('.sky-page-summary-key-info-sm').appendChild(keyInfoContainerEl);
2013
+ }
2014
+ }
2015
+ }
2016
+ SkyPageSummaryAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2017
+ SkyPageSummaryAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryAdapterService });
2018
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryAdapterService, decorators: [{
2019
+ type: Injectable
2020
+ }] });
2021
+
2022
+ /**
2023
+ * Specifies the components to display in the page summary.
2024
+ */
2025
+ class SkyPageSummaryComponent {
2026
+ constructor(elRef, adapter, mediaQueryService) {
2027
+ this.elRef = elRef;
2028
+ this.adapter = adapter;
2029
+ this.mediaQueryService = mediaQueryService;
2030
+ }
2031
+ get hasKeyInfo() {
2032
+ return this.keyInfoComponents.length > 0;
2033
+ }
2034
+ ngAfterViewInit() {
2035
+ this.breakpointSubscription = this.mediaQueryService.subscribe((args) => {
2036
+ this.adapter.updateKeyInfoLocation(this.elRef, args === SkyMediaBreakpoints.xs);
2037
+ });
2038
+ }
2039
+ ngOnDestroy() {
2040
+ /* istanbul ignore else */
2041
+ /* sanity check */
2042
+ if (this.breakpointSubscription) {
2043
+ this.breakpointSubscription.unsubscribe();
2044
+ }
2045
+ }
2046
+ }
2047
+ SkyPageSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryComponent, deps: [{ token: i0.ElementRef }, { token: SkyPageSummaryAdapterService }, { token: i1.SkyMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
2048
+ SkyPageSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPageSummaryComponent, selector: "sky-page-summary", providers: [SkyPageSummaryAdapterService], queries: [{ propertyName: "keyInfoComponents", predicate: SkyPageSummaryKeyInfoComponent, read: SkyPageSummaryKeyInfoComponent }], ngImport: i0, template: "<div\n class=\"sky-page-summary\"\n [ngClass]=\"{ 'sky-page-summary-with-key-info': hasKeyInfo }\"\n>\n <ng-content select=\"sky-page-summary-alert\"></ng-content>\n <div class=\"sky-page-summary-row\">\n <div class=\"sky-page-summary-left\">\n <ng-content select=\"sky-page-summary-image\"></ng-content>\n <div class=\"sky-page-summary-data\">\n <ng-content select=\"sky-page-summary-title\"></ng-content>\n <ng-content select=\"sky-page-summary-subtitle\"></ng-content>\n <ng-content select=\"sky-page-summary-status\"></ng-content>\n <div class=\"sky-page-summary-key-info-xs\"></div>\n <ng-content select=\"sky-page-summary-content\"></ng-content>\n </div>\n </div>\n <div class=\"sky-page-summary-key-info-sm\">\n <div class=\"sky-page-summary-key-info-container\">\n <ng-content select=\"sky-page-summary-key-info\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-page-summary{background-color:#fff;padding:20px 15px}.sky-page-summary-row{align-items:stretch;display:flex}:host .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}@media (min-width: 768px){:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host .sky-page-summary-left{align-items:stretch;display:flex}:host .sky-page-summary-data{flex-grow:1}}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{align-items:stretch;display:flex}:host-context(.sky-responsive-container-sm) .sky-page-summary-data,:host-context(.sky-responsive-container-md) .sky-page-summary-data,:host-context(.sky-responsive-container-lg) .sky-page-summary-data{flex-grow:1}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2049
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryComponent, decorators: [{
2050
+ type: Component,
2051
+ args: [{ selector: 'sky-page-summary', providers: [SkyPageSummaryAdapterService], template: "<div\n class=\"sky-page-summary\"\n [ngClass]=\"{ 'sky-page-summary-with-key-info': hasKeyInfo }\"\n>\n <ng-content select=\"sky-page-summary-alert\"></ng-content>\n <div class=\"sky-page-summary-row\">\n <div class=\"sky-page-summary-left\">\n <ng-content select=\"sky-page-summary-image\"></ng-content>\n <div class=\"sky-page-summary-data\">\n <ng-content select=\"sky-page-summary-title\"></ng-content>\n <ng-content select=\"sky-page-summary-subtitle\"></ng-content>\n <ng-content select=\"sky-page-summary-status\"></ng-content>\n <div class=\"sky-page-summary-key-info-xs\"></div>\n <ng-content select=\"sky-page-summary-content\"></ng-content>\n </div>\n </div>\n <div class=\"sky-page-summary-key-info-sm\">\n <div class=\"sky-page-summary-key-info-container\">\n <ng-content select=\"sky-page-summary-key-info\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-page-summary{background-color:#fff;padding:20px 15px}.sky-page-summary-row{align-items:stretch;display:flex}:host .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}@media (min-width: 768px){:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host .sky-page-summary-left{align-items:stretch;display:flex}:host .sky-page-summary-data{flex-grow:1}}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{align-items:stretch;display:flex}:host-context(.sky-responsive-container-sm) .sky-page-summary-data,:host-context(.sky-responsive-container-md) .sky-page-summary-data,:host-context(.sky-responsive-container-lg) .sky-page-summary-data{flex-grow:1}\n"] }]
2052
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyPageSummaryAdapterService }, { type: i1.SkyMediaQueryService }]; }, propDecorators: { keyInfoComponents: [{
2053
+ type: ContentChildren,
2054
+ args: [SkyPageSummaryKeyInfoComponent, {
2055
+ read: SkyPageSummaryKeyInfoComponent,
2056
+ }]
2057
+ }] } });
2058
+
2059
+ class SkyPageSummaryModule {
2060
+ }
2061
+ SkyPageSummaryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2062
+ SkyPageSummaryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryModule, declarations: [SkyPageSummaryAlertComponent,
2063
+ SkyPageSummaryComponent,
2064
+ SkyPageSummaryContentComponent,
2065
+ SkyPageSummaryImageComponent,
2066
+ SkyPageSummaryKeyInfoComponent,
2067
+ SkyPageSummaryStatusComponent,
2068
+ SkyPageSummarySubtitleComponent,
2069
+ SkyPageSummaryTitleComponent], imports: [CommonModule], exports: [SkyPageSummaryAlertComponent,
2070
+ SkyPageSummaryComponent,
2071
+ SkyPageSummaryContentComponent,
2072
+ SkyPageSummaryImageComponent,
2073
+ SkyPageSummaryKeyInfoComponent,
2074
+ SkyPageSummaryStatusComponent,
2075
+ SkyPageSummarySubtitleComponent,
2076
+ SkyPageSummaryTitleComponent] });
2077
+ SkyPageSummaryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryModule, imports: [[CommonModule]] });
2078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPageSummaryModule, decorators: [{
2079
+ type: NgModule,
2080
+ args: [{
2081
+ declarations: [
2082
+ SkyPageSummaryAlertComponent,
2083
+ SkyPageSummaryComponent,
2084
+ SkyPageSummaryContentComponent,
2085
+ SkyPageSummaryImageComponent,
2086
+ SkyPageSummaryKeyInfoComponent,
2087
+ SkyPageSummaryStatusComponent,
2088
+ SkyPageSummarySubtitleComponent,
2089
+ SkyPageSummaryTitleComponent,
2090
+ ],
2091
+ imports: [CommonModule],
2092
+ exports: [
2093
+ SkyPageSummaryAlertComponent,
2094
+ SkyPageSummaryComponent,
2095
+ SkyPageSummaryContentComponent,
2096
+ SkyPageSummaryImageComponent,
2097
+ SkyPageSummaryKeyInfoComponent,
2098
+ SkyPageSummaryStatusComponent,
2099
+ SkyPageSummarySubtitleComponent,
2100
+ SkyPageSummaryTitleComponent,
2101
+ ],
2102
+ }]
2103
+ }] });
2104
+
2105
+ /**
2106
+ * @internal
2107
+ */
2108
+ class SkyTextExpandModalContext {
2109
+ }
2110
+
2111
+ /**
2112
+ * @internal
2113
+ */
2114
+ class SkyTextExpandModalComponent {
2115
+ constructor(context, instance) {
2116
+ this.context = context;
2117
+ this.instance = instance;
2118
+ }
2119
+ close() {
2120
+ this.instance.close();
2121
+ }
2122
+ }
2123
+ SkyTextExpandModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModalComponent, deps: [{ token: SkyTextExpandModalContext }, { token: i2$2.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
2124
+ SkyTextExpandModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyTextExpandModalComponent, selector: "sky-text-expand-modal", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>{{ context.header }}</sky-modal-header>\n <sky-modal-content class=\"sky-text-expand-modal-content\">{{\n context.text\n }}</sky-modal-content>\n <sky-modal-footer>\n <button class=\"sky-btn sky-btn-link\" (click)=\"close()\">\n {{ 'skyux_text_expand_close_text' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], components: [{ type: i2$2.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i2$2.λ4, selector: "sky-modal-header" }, { type: i2$2.λ2, selector: "sky-modal-content" }, { type: i2$2.λ3, selector: "sky-modal-footer" }], pipes: { "skyLibResources": i1$1.SkyLibResourcesPipe } });
2125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModalComponent, decorators: [{
2126
+ type: Component,
2127
+ args: [{ selector: 'sky-text-expand-modal', template: "<sky-modal>\n <sky-modal-header>{{ context.header }}</sky-modal-header>\n <sky-modal-content class=\"sky-text-expand-modal-content\">{{\n context.text\n }}</sky-modal-content>\n <sky-modal-footer>\n <button class=\"sky-btn sky-btn-link\" (click)=\"close()\">\n {{ 'skyux_text_expand_close_text' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
2128
+ }], ctorParameters: function () { return [{ type: SkyTextExpandModalContext }, { type: i2$2.SkyModalInstance }]; } });
2129
+
2130
+ /**
2131
+ * @internal
2132
+ */
2133
+ class SkyTextExpandAdapterService {
2134
+ constructor(rendererFactory) {
2135
+ this.rendererFactory = rendererFactory;
2136
+ this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
2137
+ }
2138
+ getContainerHeight(containerEl) {
2139
+ return containerEl.nativeElement.offsetHeight;
2140
+ }
2141
+ setContainerHeight(containerEl, height) {
2142
+ if (height === undefined) {
2143
+ this.renderer.removeStyle(containerEl.nativeElement, 'max-height');
2144
+ }
2145
+ else {
2146
+ this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);
2147
+ }
2148
+ }
2149
+ setText(textEl, text) {
2150
+ textEl.nativeElement.textContent = text;
2151
+ }
2152
+ }
2153
+ SkyTextExpandAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
2154
+ SkyTextExpandAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandAdapterService });
2155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandAdapterService, decorators: [{
2156
+ type: Injectable
2157
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
2158
+
2159
+ /**
2160
+ * Auto-incrementing integer used to generate unique ids for text expand components.
2161
+ */
2162
+ let nextId$1 = 0;
2163
+ class SkyTextExpandComponent {
2164
+ constructor(resources, modalService, textExpandAdapter) {
2165
+ this.resources = resources;
2166
+ this.modalService = modalService;
2167
+ this.textExpandAdapter = textExpandAdapter;
2168
+ /**
2169
+ * Specifies the maximum number of text characters to display inline when users select the link
2170
+ * to expand the full text. If the text exceeds this limit, then the component expands
2171
+ * the full text in a modal instead.
2172
+ */
2173
+ this.maxExpandedLength = 600;
2174
+ /**
2175
+ * Specifies the maximum number of newline characters to display inline when users select
2176
+ * the link to expand the full text. If the text exceeds this limit, then
2177
+ * the component expands the full text in a modal view instead.
2178
+ */
2179
+ this.maxExpandedNewlines = 2;
2180
+ /**
2181
+ * Indicates whether to replace newline characters in truncated text with spaces.
2182
+ */
2183
+ this.truncateNewlines = true;
2184
+ this.contentSectionId = `sky-text-expand-content-${++nextId$1}`;
2185
+ this.isExpanded = false;
2186
+ this._maxLength = 200;
2187
+ }
2188
+ /**
2189
+ * Specifies the number of text characters to display before truncating the text.
2190
+ * To avoid truncating text in the middle of a word, the component looks for a space
2191
+ * in the 10 characters before the last character.
2192
+ * @default 200
2193
+ */
2194
+ set maxLength(value) {
2195
+ this._maxLength = value;
2196
+ /* istanbul ignore else */
2197
+ if (this.textEl) {
2198
+ this.setup(this.expandedText);
2199
+ }
2200
+ }
2201
+ get maxLength() {
2202
+ return this._maxLength;
2203
+ }
2204
+ /**
2205
+ * Specifies the text to truncate.
2206
+ */
2207
+ set text(value) {
2208
+ /* istanbul ignore else */
2209
+ if (this.textEl) {
2210
+ this.setup(value);
2211
+ }
2212
+ }
2213
+ textExpand() {
2214
+ if (this.isModal) {
2215
+ // Modal View
2216
+ /* istanbul ignore else */
2217
+ /* sanity check */
2218
+ if (!this.isExpanded) {
2219
+ this.modalService.open(SkyTextExpandModalComponent, [
2220
+ {
2221
+ provide: SkyTextExpandModalContext,
2222
+ useValue: {
2223
+ header: this.expandModalTitle,
2224
+ text: this.expandedText,
2225
+ },
2226
+ },
2227
+ ]);
2228
+ }
2229
+ }
2230
+ else {
2231
+ // Normal View
2232
+ if (!this.isExpanded) {
2233
+ this.setContainerMaxHeight();
2234
+ setTimeout(() => {
2235
+ this.isExpanded = true;
2236
+ this.animateText(this.collapsedText, this.expandedText, true);
2237
+ }, 10);
2238
+ }
2239
+ else {
2240
+ this.setContainerMaxHeight();
2241
+ setTimeout(() => {
2242
+ this.isExpanded = false;
2243
+ this.animateText(this.expandedText, this.collapsedText, false);
2244
+ }, 10);
2245
+ }
2246
+ }
2247
+ }
2248
+ animationEnd() {
2249
+ // Ensure the correct text is displayed
2250
+ this.textExpandAdapter.setText(this.textEl, this.textToShow);
2251
+ // Set height back to auto so the browser can change the height as needed with window changes
2252
+ this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);
2253
+ }
2254
+ ngAfterContentInit() {
2255
+ forkJoin([
2256
+ this.resources.getString('skyux_text_expand_see_more'),
2257
+ this.resources.getString('skyux_text_expand_see_less'),
2258
+ ])
2259
+ .pipe(take(1))
2260
+ .subscribe((resources) => {
2261
+ this.seeMoreText = resources[0];
2262
+ this.seeLessText = resources[1];
2263
+ this.setup(this.expandedText);
2264
+ /* istanbul ignore else */
2265
+ if (!this.expandModalTitle) {
2266
+ this.resources
2267
+ .getString('skyux_text_expand_modal_title')
2268
+ .pipe(take(1))
2269
+ .subscribe((resource) => {
2270
+ this.expandModalTitle = resource;
2271
+ });
2272
+ }
2273
+ });
2274
+ }
2275
+ setContainerMaxHeight() {
2276
+ // ensure everything is reset
2277
+ this.animationEnd();
2278
+ /* Before animation is kicked off, ensure that a maxHeight exists */
2279
+ /* Once we have support for angular v4 animations with parameters we can use that instead */
2280
+ const currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);
2281
+ this.textExpandAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
2282
+ }
2283
+ setup(value) {
2284
+ if (value) {
2285
+ this.newlineCount = this.getNewlineCount(value);
2286
+ this.collapsedText = this.getTruncatedText(value, this.maxLength);
2287
+ this.expandedText = value;
2288
+ if (this.collapsedText !== value) {
2289
+ this.buttonText = this.seeMoreText;
2290
+ this.isExpanded = false;
2291
+ this.expandable = true;
2292
+ this.isModal =
2293
+ this.newlineCount > this.maxExpandedNewlines ||
2294
+ this.expandedText.length > this.maxExpandedLength;
2295
+ }
2296
+ else {
2297
+ this.expandable = false;
2298
+ }
2299
+ this.textToShow = this.collapsedText;
2300
+ }
2301
+ else {
2302
+ this.textToShow = '';
2303
+ this.expandable = false;
2304
+ }
2305
+ this.textExpandAdapter.setText(this.textEl, this.textToShow);
2306
+ }
2307
+ getNewlineCount(value) {
2308
+ const matches = value.match(/\n/gi);
2309
+ if (matches) {
2310
+ return matches.length;
2311
+ }
2312
+ return 0;
2313
+ }
2314
+ getTruncatedText(value, length) {
2315
+ let i;
2316
+ if (this.truncateNewlines) {
2317
+ value = value.replace(/\n+/gi, ' ');
2318
+ }
2319
+ // Jump ahead one character and see if it's a space, and if it isn't,
2320
+ // back up to the first space and break there so a word doesn't get cut
2321
+ // in half.
2322
+ if (length < value.length) {
2323
+ for (i = length; i > length - 10; i--) {
2324
+ if (/\s/.test(value.charAt(i))) {
2325
+ length = i;
2326
+ break;
2327
+ }
2328
+ }
2329
+ }
2330
+ return value.substr(0, length);
2331
+ }
2332
+ animateText(previousText, newText, expanding) {
2333
+ const adapter = this.textExpandAdapter;
2334
+ const container = this.containerEl;
2335
+ // Reset max height
2336
+ adapter.setContainerHeight(container, undefined);
2337
+ // Measure the current height so we can animate from it.
2338
+ const currentHeight = adapter.getContainerHeight(container);
2339
+ this.textToShow = newText;
2340
+ adapter.setText(this.textEl, this.textToShow);
2341
+ this.buttonText = expanding ? this.seeLessText : this.seeMoreText;
2342
+ // Measure the new height so we can animate to it.
2343
+ const newHeight = adapter.getContainerHeight(container);
2344
+ /* istanbul ignore if */
2345
+ if (newHeight < currentHeight) {
2346
+ // The new text is smaller than the old text, so put the old text back before doing
2347
+ // the collapse animation to avoid showing a big chunk of whitespace.
2348
+ adapter.setText(this.textEl, previousText);
2349
+ }
2350
+ adapter.setContainerHeight(container, `${currentHeight}px`);
2351
+ // This timeout is necessary due to the browser needing to pick up the non-auto height being set
2352
+ // in order to do the transtion in height correctly. Without it the transition does not fire.
2353
+ setTimeout(() => {
2354
+ adapter.setContainerHeight(container, `${newHeight}px`);
2355
+ /* This resets values if the transition does not get kicked off */
2356
+ setTimeout(() => {
2357
+ this.animationEnd();
2358
+ }, 500);
2359
+ }, 10);
2360
+ }
2361
+ }
2362
+ SkyTextExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandComponent, deps: [{ token: i1$1.SkyLibResourcesService }, { token: i2$2.SkyModalService }, { token: SkyTextExpandAdapterService }], target: i0.ɵɵFactoryTarget.Component });
2363
+ SkyTextExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyTextExpandComponent, selector: "sky-text-expand", inputs: { expandModalTitle: "expandModalTitle", maxExpandedLength: "maxExpandedLength", maxExpandedNewlines: "maxExpandedNewlines", maxLength: "maxLength", text: "text", truncateNewlines: "truncateNewlines" }, providers: [SkyTextExpandAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "textEl", first: true, predicate: ["text"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-text-expand-container\"\n (transitionend)=\"animationEnd()\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandComponent, decorators: [{
2365
+ type: Component,
2366
+ args: [{ selector: 'sky-text-expand', providers: [SkyTextExpandAdapterService], template: "<div\n class=\"sky-text-expand-container\"\n (transitionend)=\"animationEnd()\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
2367
+ }], ctorParameters: function () { return [{ type: i1$1.SkyLibResourcesService }, { type: i2$2.SkyModalService }, { type: SkyTextExpandAdapterService }]; }, propDecorators: { expandModalTitle: [{
2368
+ type: Input
2369
+ }], maxExpandedLength: [{
2370
+ type: Input
2371
+ }], maxExpandedNewlines: [{
2372
+ type: Input
2373
+ }], maxLength: [{
2374
+ type: Input
2375
+ }], text: [{
2376
+ type: Input
2377
+ }], truncateNewlines: [{
2378
+ type: Input
2379
+ }], containerEl: [{
2380
+ type: ViewChild,
2381
+ args: ['container', {
2382
+ read: ElementRef,
2383
+ static: true,
2384
+ }]
2385
+ }], textEl: [{
2386
+ type: ViewChild,
2387
+ args: ['text', {
2388
+ read: ElementRef,
2389
+ static: true,
2390
+ }]
2391
+ }] } });
2392
+
2393
+ class SkyTextExpandModule {
2394
+ }
2395
+ SkyTextExpandModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2396
+ SkyTextExpandModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent], imports: [SkyI18nModule,
2397
+ SkyLayoutResourcesModule,
2398
+ SkyModalModule,
2399
+ CommonModule], exports: [SkyTextExpandComponent] });
2400
+ SkyTextExpandModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, imports: [[
2401
+ SkyI18nModule,
2402
+ SkyLayoutResourcesModule,
2403
+ SkyModalModule,
2404
+ CommonModule,
2405
+ ]] });
2406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, decorators: [{
2407
+ type: NgModule,
2408
+ args: [{
2409
+ declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent],
2410
+ imports: [
2411
+ SkyI18nModule,
2412
+ SkyLayoutResourcesModule,
2413
+ SkyModalModule,
2414
+ CommonModule,
2415
+ ],
2416
+ exports: [SkyTextExpandComponent],
2417
+ }]
2418
+ }] });
2419
+
2420
+ /**
2421
+ * @internal
2422
+ */
2423
+ class SkyTextExpandRepeaterAdapterService {
2424
+ constructor(rendererFactory) {
2425
+ this.rendererFactory = rendererFactory;
2426
+ this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
2427
+ }
2428
+ getItems(elRef) {
2429
+ return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');
2430
+ }
2431
+ hideItem(item) {
2432
+ this.renderer.setStyle(item, 'display', 'none');
2433
+ }
2434
+ showItem(item) {
2435
+ this.renderer.setStyle(item, 'display', 'list-item');
2436
+ }
2437
+ getContainerHeight(containerEl) {
2438
+ return containerEl.nativeElement.offsetHeight;
2439
+ }
2440
+ setContainerHeight(containerEl, height) {
2441
+ if (height === undefined) {
2442
+ this.renderer.removeStyle(containerEl.nativeElement, 'max-height');
2443
+ }
2444
+ else {
2445
+ this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);
2446
+ }
2447
+ }
2448
+ }
2449
+ SkyTextExpandRepeaterAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
2450
+ SkyTextExpandRepeaterAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService });
2451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, decorators: [{
2452
+ type: Injectable
2453
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
2454
+
2455
+ /**
2456
+ * Auto-incrementing integer used to generate unique ids for text expand repeater components.
2457
+ */
2458
+ let nextId = 0;
2459
+ class SkyTextExpandRepeaterComponent {
2460
+ constructor(resources, elRef, textExpandRepeaterAdapter, changeDetector) {
2461
+ this.resources = resources;
2462
+ this.elRef = elRef;
2463
+ this.textExpandRepeaterAdapter = textExpandRepeaterAdapter;
2464
+ this.changeDetector = changeDetector;
2465
+ /**
2466
+ * Specifies the style of bullet to use
2467
+ * @default "unordered"
2468
+ */
2469
+ this.listStyle = 'unordered';
2470
+ this.contentSectionId = `sky-text-expand-repeater-content-${++nextId}`;
2471
+ this.isExpanded = false;
2472
+ }
2473
+ ngAfterViewInit() {
2474
+ if (this.contentItems) {
2475
+ this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);
2476
+ for (let i = this.maxItems; i < this.contentItems.length; i++) {
2477
+ this.textExpandRepeaterAdapter.hideItem(this.items[i]);
2478
+ }
2479
+ }
2480
+ forkJoin([
2481
+ this.resources.getString('skyux_text_expand_see_more'),
2482
+ this.resources.getString('skyux_text_expand_see_less'),
2483
+ ])
2484
+ .pipe(take(1))
2485
+ .subscribe((resources) => {
2486
+ this.seeMoreText = resources[0];
2487
+ this.seeLessText = resources[1];
2488
+ /* sanity check */
2489
+ /* istanbul ignore else */
2490
+ if (!this.isExpanded) {
2491
+ this.buttonText = this.seeMoreText;
2492
+ }
2493
+ else {
2494
+ this.buttonText = this.seeLessText;
2495
+ }
2496
+ this.changeDetector.detectChanges();
2497
+ });
2498
+ }
2499
+ ngOnChanges(changes) {
2500
+ /* istanbul ignore else */
2501
+ if (changes.maxItems || changes.data) {
2502
+ this.setup(this.data);
2503
+ }
2504
+ }
2505
+ animationEnd() {
2506
+ // Ensure the correct items are displayed
2507
+ if (!this.isExpanded) {
2508
+ for (let i = this.maxItems; i < this.contentItems.length; i++) {
2509
+ this.textExpandRepeaterAdapter.hideItem(this.items[i]);
2510
+ }
2511
+ }
2512
+ // Set height back to auto so the browser can change the height as needed with window changes
2513
+ this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, undefined);
2514
+ }
2515
+ repeaterExpand() {
2516
+ if (!this.isExpanded) {
2517
+ this.setContainerMaxHeight();
2518
+ setTimeout(() => {
2519
+ this.isExpanded = true;
2520
+ this.animateRepeater(true);
2521
+ });
2522
+ }
2523
+ else {
2524
+ this.setContainerMaxHeight();
2525
+ setTimeout(() => {
2526
+ this.isExpanded = false;
2527
+ this.animateRepeater(false);
2528
+ });
2529
+ }
2530
+ }
2531
+ setContainerMaxHeight() {
2532
+ // ensure everything is reset
2533
+ this.animationEnd();
2534
+ /* Before animation is kicked off, ensure that a maxHeight exists */
2535
+ /* Once we have support for angular v4 animations with parameters we can use that instead */
2536
+ const currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);
2537
+ this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
2538
+ }
2539
+ animateRepeater(expanding) {
2540
+ const adapter = this.textExpandRepeaterAdapter;
2541
+ const container = this.containerEl;
2542
+ adapter.setContainerHeight(container, undefined);
2543
+ const currentHeight = adapter.getContainerHeight(container);
2544
+ for (let i = this.maxItems; i < this.contentItems.length; i++) {
2545
+ if (!expanding) {
2546
+ adapter.hideItem(this.items[i]);
2547
+ }
2548
+ else {
2549
+ adapter.showItem(this.items[i]);
2550
+ }
2551
+ }
2552
+ const newHeight = adapter.getContainerHeight(container);
2553
+ if (!expanding) {
2554
+ this.buttonText = this.seeMoreText;
2555
+ }
2556
+ else {
2557
+ this.buttonText = this.seeLessText;
2558
+ }
2559
+ if (newHeight < currentHeight) {
2560
+ // The new text is smaller than the old text, so put the old text back before doing
2561
+ // the collapse animation to avoid showing a big chunk of whitespace.
2562
+ for (let i = this.maxItems; i < this.contentItems.length; i++) {
2563
+ adapter.showItem(this.items[i]);
2564
+ }
2565
+ }
2566
+ adapter.setContainerHeight(container, `${currentHeight}px`);
2567
+ // This timeout is necessary due to the browser needing to pick up the non-auto height being set
2568
+ // in order to do the transtion in height correctly. Without it the transition does not fire.
2569
+ setTimeout(() => {
2570
+ adapter.setContainerHeight(container, `${newHeight}px`);
2571
+ /* This resets values if the transition does not get kicked off */
2572
+ setTimeout(() => {
2573
+ this.animationEnd();
2574
+ }, 500);
2575
+ }, 10);
2576
+ }
2577
+ setup(value) {
2578
+ if (value) {
2579
+ const length = value.length;
2580
+ if (length > this.maxItems) {
2581
+ this.expandable = true;
2582
+ this.buttonText = this.seeMoreText;
2583
+ this.isExpanded = false;
2584
+ }
2585
+ else {
2586
+ this.expandable = false;
2587
+ }
2588
+ this.contentItems = value;
2589
+ }
2590
+ else {
2591
+ this.contentItems = undefined;
2592
+ this.expandable = false;
2593
+ }
2594
+ }
2595
+ }
2596
+ SkyTextExpandRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterComponent, deps: [{ token: i1$1.SkyLibResourcesService }, { token: i0.ElementRef }, { token: SkyTextExpandRepeaterAdapterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2597
+ SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of contentItems\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;transition:max-height .25s}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterComponent, decorators: [{
2599
+ type: Component,
2600
+ args: [{ selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of contentItems\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;transition:max-height .25s}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
2601
+ }], ctorParameters: function () { return [{ type: i1$1.SkyLibResourcesService }, { type: i0.ElementRef }, { type: SkyTextExpandRepeaterAdapterService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
2602
+ type: Input
2603
+ }], itemTemplate: [{
2604
+ type: Input
2605
+ }], listStyle: [{
2606
+ type: Input
2607
+ }], maxItems: [{
2608
+ type: Input
2609
+ }], containerEl: [{
2610
+ type: ViewChild,
2611
+ args: ['container', {
2612
+ read: ElementRef,
2613
+ static: false,
2614
+ }]
2615
+ }] } });
2616
+
2617
+ class SkyTextExpandRepeaterModule {
2618
+ }
2619
+ SkyTextExpandRepeaterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2620
+ SkyTextExpandRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, declarations: [SkyTextExpandRepeaterComponent], imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule], exports: [SkyTextExpandRepeaterComponent] });
2621
+ SkyTextExpandRepeaterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, imports: [[SkyI18nModule, SkyLayoutResourcesModule, CommonModule]] });
2622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, decorators: [{
2623
+ type: NgModule,
2624
+ args: [{
2625
+ declarations: [SkyTextExpandRepeaterComponent],
2626
+ imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule],
2627
+ exports: [SkyTextExpandRepeaterComponent],
2628
+ }]
2629
+ }] });
2630
+
2631
+ /**
2632
+ * Specifies a container for an item in the toolbar.
2633
+ */
2634
+ class SkyToolbarItemComponent {
2635
+ }
2636
+ SkyToolbarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2637
+ SkyToolbarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyToolbarItemComponent, selector: "sky-toolbar-item", ngImport: i0, template: "<div class=\"sky-toolbar-item\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-toolbar-item{margin-right:5px;margin-bottom:5px}:host-context(.sky-theme-modern) .sky-toolbar-item{margin-top:5px;margin-bottom:5px;margin-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-item ::ng-deep .sky-btn{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled){background-color:transparent;border:none}:host-context(.sky-theme-modern) .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled):not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}.sky-theme-modern .sky-toolbar-item{margin-top:5px;margin-bottom:5px;margin-right:10px}.sky-theme-modern .sky-toolbar-item ::ng-deep .sky-btn{padding-left:10px;padding-right:10px}.sky-theme-modern .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled){background-color:transparent;border:none}.sky-theme-modern .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled):not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}\n"] });
2638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarItemComponent, decorators: [{
2639
+ type: Component,
2640
+ args: [{ selector: 'sky-toolbar-item', template: "<div class=\"sky-toolbar-item\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-toolbar-item{margin-right:5px;margin-bottom:5px}:host-context(.sky-theme-modern) .sky-toolbar-item{margin-top:5px;margin-bottom:5px;margin-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-item ::ng-deep .sky-btn{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled){background-color:transparent;border:none}:host-context(.sky-theme-modern) .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled):not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}.sky-theme-modern .sky-toolbar-item{margin-top:5px;margin-bottom:5px;margin-right:10px}.sky-theme-modern .sky-toolbar-item ::ng-deep .sky-btn{padding-left:10px;padding-right:10px}.sky-theme-modern .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled){background-color:transparent;border:none}.sky-theme-modern .sky-toolbar-item ::ng-deep .sky-btn.sky-btn-default:not(:disabled):not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}\n"] }]
2641
+ }] });
2642
+
2643
+ /**
2644
+ * Specifies a section to group items within the toolbar. The section displays items in a separate horizontal row.
2645
+ */
2646
+ class SkyToolbarSectionComponent {
2647
+ }
2648
+ SkyToolbarSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2649
+ SkyToolbarSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyToolbarSectionComponent, selector: "sky-toolbar-section", ngImport: i0, template: "<div class=\"sky-toolbar-section\">\n <div class=\"sky-toolbar-section-items\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sky-toolbar-view-actions\"></ng-content>\n</div>\n", styles: [".sky-toolbar-section{display:flex;flex-wrap:nowrap;padding:5px 10px 0;min-height:49px;align-items:center;position:relative;overflow-x:auto}.sky-toolbar-section-items{display:flex;flex-wrap:wrap;align-items:center}:host-context(.sky-theme-modern) .sky-toolbar-section{padding:10px 0}.sky-theme-modern .sky-toolbar-section{padding:10px 0}\n"] });
2650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarSectionComponent, decorators: [{
2651
+ type: Component,
2652
+ args: [{ selector: 'sky-toolbar-section', template: "<div class=\"sky-toolbar-section\">\n <div class=\"sky-toolbar-section-items\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sky-toolbar-view-actions\"></ng-content>\n</div>\n", styles: [".sky-toolbar-section{display:flex;flex-wrap:nowrap;padding:5px 10px 0;min-height:49px;align-items:center;position:relative;overflow-x:auto}.sky-toolbar-section-items{display:flex;flex-wrap:wrap;align-items:center}:host-context(.sky-theme-modern) .sky-toolbar-section{padding:10px 0}.sky-theme-modern .sky-toolbar-section{padding:10px 0}\n"] }]
2653
+ }] });
2654
+
2655
+ /**
2656
+ * Adds a section on the right side of the toolbar for items that substantially alter
2657
+ * the view of the content container. This includes simple filters and view switchers.
2658
+ */
2659
+ class SkyToolbarViewActionsComponent {
2660
+ }
2661
+ SkyToolbarViewActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarViewActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2662
+ SkyToolbarViewActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyToolbarViewActionsComponent, selector: "sky-toolbar-view-actions", ngImport: i0, template: "<div class=\"sky-toolbar-view-actions\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{margin-left:auto}.sky-toolbar-view-actions{display:flex;align-items:center;margin-bottom:5px}.sky-toolbar-view-actions ::ng-deep>:not(:last-child){margin-right:5px}:host-context(.sky-theme-modern) .sky-toolbar-view-actions{margin-bottom:0}:host-context(.sky-theme-modern) .sky-toolbar-view-actions ::ng-deep>:not(:last-child){margin-top:5px;margin-bottom:5px;margin-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-view-actions ::ng-deep .sky-btn{background-color:transparent;border:none;padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-view-actions ::ng-deep .sky-btn:not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}.sky-theme-modern .sky-toolbar-view-actions{margin-bottom:0}.sky-theme-modern .sky-toolbar-view-actions ::ng-deep>:not(:last-child){margin-top:5px;margin-bottom:5px;margin-right:10px}.sky-theme-modern .sky-toolbar-view-actions ::ng-deep .sky-btn{background-color:transparent;border:none;padding-left:10px;padding-right:10px}.sky-theme-modern .sky-toolbar-view-actions ::ng-deep .sky-btn:not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarViewActionsComponent, decorators: [{
2664
+ type: Component,
2665
+ args: [{ selector: 'sky-toolbar-view-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-toolbar-view-actions\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{margin-left:auto}.sky-toolbar-view-actions{display:flex;align-items:center;margin-bottom:5px}.sky-toolbar-view-actions ::ng-deep>:not(:last-child){margin-right:5px}:host-context(.sky-theme-modern) .sky-toolbar-view-actions{margin-bottom:0}:host-context(.sky-theme-modern) .sky-toolbar-view-actions ::ng-deep>:not(:last-child){margin-top:5px;margin-bottom:5px;margin-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-view-actions ::ng-deep .sky-btn{background-color:transparent;border:none;padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-toolbar-view-actions ::ng-deep .sky-btn:not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}.sky-theme-modern .sky-toolbar-view-actions{margin-bottom:0}.sky-theme-modern .sky-toolbar-view-actions ::ng-deep>:not(:last-child){margin-top:5px;margin-bottom:5px;margin-right:10px}.sky-theme-modern .sky-toolbar-view-actions ::ng-deep .sky-btn{background-color:transparent;border:none;padding-left:10px;padding-right:10px}.sky-theme-modern .sky-toolbar-view-actions ::ng-deep .sky-btn:not(:hover):not(:active):not(:focus){box-shadow:inset 0 0 0 1px transparent}\n"] }]
2666
+ }] });
2667
+
2668
+ /**
2669
+ * Displays actions for lists, records, and tiles.
2670
+ */
2671
+ class SkyToolbarComponent {
2672
+ constructor() {
2673
+ this.hasSections = false;
2674
+ }
2675
+ ngAfterContentInit() {
2676
+ this.hasSections = this.sectionComponents.length > 0;
2677
+ }
2678
+ }
2679
+ SkyToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2680
+ SkyToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyToolbarComponent, selector: "sky-toolbar", queries: [{ propertyName: "sectionComponents", predicate: SkyToolbarSectionComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-toolbar-container\"\n [ngClass]=\"{ 'sky-toolbar-sectioned': hasSections }\"\n>\n <ng-content select=\"sky-toolbar-section\"></ng-content>\n <div class=\"sky-toolbar-items\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sky-toolbar-view-actions\"></ng-content>\n</div>\n", styles: [".sky-toolbar-container{min-height:49px;background-color:#fff;padding:5px 10px 0;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;display:flex;flex-wrap:wrap;align-items:center;position:relative}.sky-toolbar-container ::ng-deep sky-toolbar-section:not(:first-child) .sky-toolbar-section{border-top:1px solid #cdcfd2}.sky-toolbar-container:not(.sky-toolbar-sectioned){flex-wrap:nowrap}.sky-toolbar-sectioned{display:block;padding:0}.sky-toolbar-items{display:flex;flex-wrap:wrap;align-items:center}:host-context(.sky-theme-modern .sky-viewkeeper-fixed) .sky-toolbar-container{background-color:#fcfcfc}:host-context(.sky-theme-modern.sky-theme-mode-dark .sky-viewkeeper-fixed) .sky-toolbar-container{background-color:#121212}:host-context(.sky-theme-modern) .sky-toolbar-container{background-color:transparent;border:none;padding:10px 0}:host-context(.sky-theme-modern) .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#fcfcfc}:host-context(.sky-theme-modern) .sky-toolbar-container ::ng-deep sky-toolbar-section:not(:first-child) .sky-toolbar-section{border-top:1px solid #d2d2d2}:host-context(.sky-theme-modern) .sky-toolbar-sectioned{padding:0}.sky-theme-modern .sky-toolbar-container{background-color:transparent;border:none;padding:10px 0}.sky-theme-modern .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#fcfcfc}.sky-theme-modern .sky-toolbar-container ::ng-deep sky-toolbar-section:not(:first-child) .sky-toolbar-section{border-top:1px solid #d2d2d2}.sky-theme-modern .sky-toolbar-sectioned{padding:0}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#121212}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarComponent, decorators: [{
2682
+ type: Component,
2683
+ args: [{ selector: 'sky-toolbar', template: "<div\n class=\"sky-toolbar-container\"\n [ngClass]=\"{ 'sky-toolbar-sectioned': hasSections }\"\n>\n <ng-content select=\"sky-toolbar-section\"></ng-content>\n <div class=\"sky-toolbar-items\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sky-toolbar-view-actions\"></ng-content>\n</div>\n", styles: [".sky-toolbar-container{min-height:49px;background-color:#fff;padding:5px 10px 0;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;display:flex;flex-wrap:wrap;align-items:center;position:relative}.sky-toolbar-container ::ng-deep sky-toolbar-section:not(:first-child) .sky-toolbar-section{border-top:1px solid #cdcfd2}.sky-toolbar-container:not(.sky-toolbar-sectioned){flex-wrap:nowrap}.sky-toolbar-sectioned{display:block;padding:0}.sky-toolbar-items{display:flex;flex-wrap:wrap;align-items:center}:host-context(.sky-theme-modern .sky-viewkeeper-fixed) .sky-toolbar-container{background-color:#fcfcfc}:host-context(.sky-theme-modern.sky-theme-mode-dark .sky-viewkeeper-fixed) .sky-toolbar-container{background-color:#121212}:host-context(.sky-theme-modern) .sky-toolbar-container{background-color:transparent;border:none;padding:10px 0}:host-context(.sky-theme-modern) .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#fcfcfc}:host-context(.sky-theme-modern) .sky-toolbar-container ::ng-deep sky-toolbar-section:not(:first-child) .sky-toolbar-section{border-top:1px solid #d2d2d2}:host-context(.sky-theme-modern) .sky-toolbar-sectioned{padding:0}.sky-theme-modern .sky-toolbar-container{background-color:transparent;border:none;padding:10px 0}.sky-theme-modern .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#fcfcfc}.sky-theme-modern .sky-toolbar-container ::ng-deep sky-toolbar-section:not(:first-child) .sky-toolbar-section{border-top:1px solid #d2d2d2}.sky-theme-modern .sky-toolbar-sectioned{padding:0}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-toolbar-container.sky-viewkeeper-fixed{background-color:#121212}\n"] }]
2684
+ }], propDecorators: { sectionComponents: [{
2685
+ type: ContentChildren,
2686
+ args: [SkyToolbarSectionComponent, { descendants: true }]
2687
+ }] } });
2688
+
2689
+ class SkyToolbarModule {
2690
+ }
2691
+ SkyToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2692
+ SkyToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarModule, declarations: [SkyToolbarComponent,
2693
+ SkyToolbarItemComponent,
2694
+ SkyToolbarSectionComponent,
2695
+ SkyToolbarViewActionsComponent], imports: [CommonModule], exports: [SkyToolbarComponent,
2696
+ SkyToolbarItemComponent,
2697
+ SkyToolbarSectionComponent,
2698
+ SkyToolbarViewActionsComponent] });
2699
+ SkyToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarModule, imports: [[CommonModule]] });
2700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyToolbarModule, decorators: [{
2701
+ type: NgModule,
2702
+ args: [{
2703
+ declarations: [
2704
+ SkyToolbarComponent,
2705
+ SkyToolbarItemComponent,
2706
+ SkyToolbarSectionComponent,
2707
+ SkyToolbarViewActionsComponent,
2708
+ ],
2709
+ imports: [CommonModule],
2710
+ exports: [
2711
+ SkyToolbarComponent,
2712
+ SkyToolbarItemComponent,
2713
+ SkyToolbarSectionComponent,
2714
+ SkyToolbarViewActionsComponent,
2715
+ ],
2716
+ }]
2717
+ }] });
2718
+
2719
+ /**
2720
+ * Generated bundle index. Do not edit.
2721
+ */
2722
+
2723
+ export { SkyActionButtonModule, SkyBackToTopMessageType, SkyBackToTopModule, SkyBoxModule, SkyCardModule, SkyDefinitionListModule, SkyDescriptionListMode, SkyDescriptionListModule, SkyFluidGridGutterSize, SkyFluidGridModule, SkyFormatModule, SkyInlineDeleteModule, SkyInlineDeleteType, SkyPageModule, SkyPageSummaryModule, SkyTextExpandModule, SkyTextExpandRepeaterModule, SkyToolbarModule, SkyActionButtonComponent as λ1, SkyCardActionsComponent as λ10, SkyCardContentComponent as λ11, SkyCardTitleComponent as λ12, SkyDefinitionListComponent as λ13, SkyDefinitionListContentComponent as λ14, SkyDefinitionListHeadingComponent as λ15, SkyDefinitionListLabelComponent as λ16, SkyDefinitionListValueComponent as λ17, SkyDescriptionListComponent as λ18, SkyDescriptionListTermComponent as λ19, SkyActionButtonContainerComponent as λ2, SkyDescriptionListDescriptionComponent as λ20, SkyDescriptionListContentComponent as λ21, SkyFluidGridComponent as λ22, SkyRowComponent as λ23, SkyColumnComponent as λ24, SkyFormatComponent as λ25, SkyPageComponent as λ26, SkyPageSummaryComponent as λ27, SkyPageSummaryAlertComponent as λ28, SkyPageSummaryContentComponent as λ29, SkyActionButtonDetailsComponent as λ3, SkyPageSummaryImageComponent as λ30, SkyPageSummaryKeyInfoComponent as λ31, SkyPageSummaryStatusComponent as λ32, SkyPageSummarySubtitleComponent as λ33, SkyPageSummaryTitleComponent as λ34, SkyTextExpandComponent as λ35, SkyTextExpandRepeaterComponent as λ36, SkyToolbarComponent as λ37, SkyToolbarSectionComponent as λ38, SkyToolbarItemComponent as λ39, SkyActionButtonHeaderComponent as λ4, SkyToolbarViewActionsComponent as λ40, SkyBoxComponent as λ41, SkyBoxHeaderComponent as λ42, SkyBoxContentComponent as λ43, SkyBoxControlsComponent as λ44, SkyActionButtonIconComponent as λ5, SkyBackToTopComponent as λ6, SkyBackToTopDirective as λ7, SkyInlineDeleteComponent as λ8, SkyCardComponent as λ9 };
2724
+ //# sourceMappingURL=skyux-layout.mjs.map