@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
@@ -1,63 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- const tokenRegex = /(\{\d+\})/;
5
- export class SkyFormatComponent {
6
- /**
7
- * The tokenized string that represents the template. Tokens use the `{n}` notation
8
- * where `n` is the ordinal of the item to replace the token.
9
- */
10
- set text(value) {
11
- this._text = value;
12
- this.updateItemsForDisplay();
13
- }
14
- get text() {
15
- return this._text;
16
- }
17
- /**
18
- * An array of `TemplateRef` objects to be placed in the template, where the `nth`
19
- * item is placed at the `{n}` location in the template.
20
- */
21
- set args(value) {
22
- this._args = value;
23
- this.updateItemsForDisplay();
24
- }
25
- get args() {
26
- return this._args;
27
- }
28
- updateItemsForDisplay() {
29
- this.itemsForDisplay = [];
30
- if (this.text && this.args) {
31
- const textParts = this.text.split(tokenRegex);
32
- for (const textPart of textParts) {
33
- // Disregard empty strings.
34
- if (textPart) {
35
- const item = {};
36
- if (tokenRegex.test(textPart)) {
37
- const valueIndex = +textPart.substring(1, textPart.length - 1);
38
- item.templateRef = this.args[valueIndex];
39
- }
40
- else {
41
- item.text = textPart;
42
- }
43
- this.itemsForDisplay.push(item);
44
- }
45
- }
46
- }
47
- }
48
- }
49
- SkyFormatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyFormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
- SkyFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyFormatComponent, decorators: [{
52
- type: Component,
53
- args: [{
54
- selector: 'sky-format',
55
- templateUrl: './format.component.html',
56
- changeDetection: ChangeDetectionStrategy.OnPush,
57
- }]
58
- }], propDecorators: { text: [{
59
- type: Input
60
- }], args: [{
61
- type: Input
62
- }] } });
63
- //# sourceMappingURL=format.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/format/format.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/format/format.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,KAAK,GAEN,MAAM,eAAe,CAAC;;;AAIvB,MAAM,UAAU,GAAG,WAAW,CAAC;AAO/B,MAAM,OAAO,kBAAkB;IAG7B;;;OAGG;IACH,IACW,IAAI,CAAC,KAAa;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,IACW,IAAI,CAAC,KAAyB;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAMO,qBAAqB;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAE9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,2BAA2B;gBAC3B,IAAI,QAAQ,EAAE;oBACZ,MAAM,IAAI,GAAkB,EAAE,CAAC;oBAE/B,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAC7B,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAE/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC1C;yBAAM;wBACL,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;qBACtB;oBAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACjC;aACF;SACF;IACH,CAAC;;gHA1DU,kBAAkB;oGAAlB,kBAAkB,0FChB/B,sRAQA;4FDQa,kBAAkB;kBAL9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,yBAAyB;oBACtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;8BASY,IAAI;sBADd,KAAK;gBAeK,IAAI;sBADd,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n} from '@angular/core';\n\nimport { SkyFormatItem } from './format-item';\n\nconst tokenRegex = /(\\{\\d+\\})/;\n\n@Component({\n selector: 'sky-format',\n templateUrl: './format.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyFormatComponent {\n public itemsForDisplay: SkyFormatItem[];\n\n /**\n * The tokenized string that represents the template. Tokens use the `{n}` notation\n * where `n` is the ordinal of the item to replace the token.\n */\n @Input()\n public set text(value: string) {\n this._text = value;\n this.updateItemsForDisplay();\n }\n\n public get text(): string {\n return this._text;\n }\n\n /**\n * An array of `TemplateRef` objects to be placed in the template, where the `nth`\n * item is placed at the `{n}` location in the template.\n */\n @Input()\n public set args(value: TemplateRef<any>[]) {\n this._args = value;\n this.updateItemsForDisplay();\n }\n\n public get args(): TemplateRef<any>[] {\n return this._args;\n }\n\n private _text: string;\n\n private _args: TemplateRef<any>[];\n\n private updateItemsForDisplay(): void {\n this.itemsForDisplay = [];\n\n if (this.text && this.args) {\n const textParts = this.text.split(tokenRegex);\n\n for (const textPart of textParts) {\n // Disregard empty strings.\n if (textPart) {\n const item: SkyFormatItem = {};\n\n if (tokenRegex.test(textPart)) {\n const valueIndex = +textPart.substring(1, textPart.length - 1);\n\n item.templateRef = this.args[valueIndex];\n } else {\n item.text = textPart;\n }\n\n this.itemsForDisplay.push(item);\n }\n }\n }\n }\n}\n","<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"]}
@@ -1,18 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { SkyFormatComponent } from './format.component';
4
- import * as i0 from "@angular/core";
5
- export class SkyFormatModule {
6
- }
7
- SkyFormatModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyFormatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- SkyFormatModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyFormatModule, declarations: [SkyFormatComponent], imports: [CommonModule], exports: [SkyFormatComponent] });
9
- SkyFormatModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyFormatModule, imports: [[CommonModule]] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyFormatModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [SkyFormatComponent],
14
- imports: [CommonModule],
15
- exports: [SkyFormatComponent],
16
- }]
17
- }] });
18
- //# sourceMappingURL=format.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/format/format.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;;AAOxD,MAAM,OAAO,eAAe;;6GAAf,eAAe;8GAAf,eAAe,iBAJX,kBAAkB,aACvB,YAAY,aACZ,kBAAkB;8GAEjB,eAAe,YAHjB,CAAC,YAAY,CAAC;4FAGZ,eAAe;kBAL3B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAC9B","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyFormatComponent } from './format.component';\n\n@NgModule({\n declarations: [SkyFormatComponent],\n imports: [CommonModule],\n exports: [SkyFormatComponent],\n})\nexport class SkyFormatModule {}\n"]}
@@ -1,115 +0,0 @@
1
- import { Injectable, RendererFactory2 } from '@angular/core';
2
- import { SkyCoreAdapterService } from '@skyux/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@skyux/core";
5
- /**
6
- * @internal
7
- */
8
- export class SkyInlineDeleteAdapterService {
9
- constructor(coreAdapterService, rendererFactory) {
10
- this.coreAdapterService = coreAdapterService;
11
- this.renderer = rendererFactory.createRenderer(undefined, undefined);
12
- }
13
- clearListeners() {
14
- /* istanbul ignore else */
15
- if (this.parentElUnlistenFn) {
16
- this.parentElUnlistenFn();
17
- }
18
- }
19
- setEl(element) {
20
- this.element = element;
21
- this.parentEl = element.parentElement;
22
- /* istanbul ignore else */
23
- if (this.parentEl) {
24
- this.parentElUnlistenFn = this.renderer.listen(this.parentEl, 'focusin', (event) => {
25
- const target = event.target;
26
- if (!this.element.contains(target) && this.parentEl !== target) {
27
- event.preventDefault();
28
- event.stopPropagation();
29
- event.stopImmediatePropagation();
30
- target.blur();
31
- this.focusNextElement(target, this.isShift(event), this.parentEl);
32
- }
33
- });
34
- }
35
- }
36
- focusNextElement(targetElement, shiftKey, busyEl) {
37
- const focussable = this.getFocussableElements();
38
- // If shift tab, go in the other direction
39
- const modifier = shiftKey ? -1 : 1;
40
- // Find the next navigable element that isn't waiting
41
- const startingIndex = focussable.indexOf(targetElement);
42
- let curIndex = startingIndex + modifier;
43
- while (focussable[curIndex] &&
44
- this.isElementHiddenOrCovered(focussable[curIndex])) {
45
- curIndex += modifier;
46
- }
47
- if (focussable[curIndex] &&
48
- !this.isElementHiddenOrCovered(focussable[curIndex])) {
49
- focussable[curIndex].focus();
50
- }
51
- else {
52
- // Try wrapping the navigation
53
- /* istanbul ignore next */
54
- curIndex = modifier > 0 ? 0 : focussable.length - 1;
55
- /* istanbul ignore next */
56
- while (curIndex !== startingIndex &&
57
- focussable[curIndex] &&
58
- this.isElementHiddenOrCovered(focussable[curIndex])) {
59
- curIndex += modifier;
60
- }
61
- /* istanbul ignore else */
62
- /* sanity check */
63
- if (focussable[curIndex] &&
64
- !this.isElementHiddenOrCovered(focussable[curIndex])) {
65
- focussable[curIndex].focus();
66
- }
67
- else {
68
- // No valid target, wipe focus
69
- // This should never happen in practice due to the multiple inline delete buttons
70
- if (document.activeElement && document.activeElement.blur) {
71
- document.activeElement.blur();
72
- }
73
- document.body.focus();
74
- }
75
- }
76
- // clear focussableElements list so that if things change between tabbing we know about it
77
- this.focussableElements = undefined;
78
- }
79
- getFocussableElements() {
80
- // Keep this cached so we can reduce querys
81
- if (this.focussableElements) {
82
- return this.focussableElements;
83
- }
84
- this.focussableElements = this.coreAdapterService.getFocusableChildren(document.body);
85
- return this.focussableElements;
86
- }
87
- isElementHiddenOrCovered(element) {
88
- // Check if the element is hidden by css, not within the inline delete, or a wait is covering it
89
- return (this.isElementHidden(element) ||
90
- (this.parentEl.contains(element) &&
91
- (!this.element.contains(element) ||
92
- this.parentEl.querySelector('.sky-wait-mask') !== null)));
93
- }
94
- isElementHidden(element) {
95
- const style = window.getComputedStyle(element);
96
- return style.display === 'none' || style.visibility === 'hidden';
97
- }
98
- isShift(event) {
99
- // Determine if shift+tab was used based on element order
100
- const elements = this.getFocussableElements().filter((elem) => !this.isElementHidden(elem));
101
- const previousInd = elements.indexOf(event.relatedTarget);
102
- const currentInd = elements.indexOf(event.target);
103
- /* istanbul ignore next */
104
- return (previousInd === currentInd + 1 ||
105
- (previousInd === 0 && currentInd === elements.length - 1) ||
106
- previousInd > currentInd ||
107
- !event.relatedTarget);
108
- }
109
- }
110
- SkyInlineDeleteAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
111
- SkyInlineDeleteAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteAdapterService });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteAdapterService, decorators: [{
113
- type: Injectable
114
- }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i0.RendererFactory2 }]; } });
115
- //# sourceMappingURL=inline-delete-adapter.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inline-delete-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete-adapter.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineDeleteAdapterService {\n private element: HTMLElement;\n private focussableElements: HTMLElement[];\n private parentEl: HTMLElement;\n private parentElUnlistenFn: () => void;\n private renderer: Renderer2;\n\n constructor(\n private coreAdapterService: SkyCoreAdapterService,\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public clearListeners(): void {\n /* istanbul ignore else */\n if (this.parentElUnlistenFn) {\n this.parentElUnlistenFn();\n }\n }\n\n public setEl(element: HTMLElement): void {\n this.element = element;\n this.parentEl = element.parentElement;\n\n /* istanbul ignore else */\n if (this.parentEl) {\n this.parentElUnlistenFn = this.renderer.listen(\n this.parentEl,\n 'focusin',\n (event: FocusEvent) => {\n const target: any = event.target;\n if (!this.element.contains(target) && this.parentEl !== target) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n target.blur();\n this.focusNextElement(target, this.isShift(event), this.parentEl);\n }\n }\n );\n }\n }\n\n private focusNextElement(\n targetElement: HTMLElement,\n shiftKey: boolean,\n busyEl: Element\n ): void {\n const focussable = this.getFocussableElements();\n\n // If shift tab, go in the other direction\n const modifier = shiftKey ? -1 : 1;\n\n // Find the next navigable element that isn't waiting\n const startingIndex = focussable.indexOf(targetElement);\n let curIndex = startingIndex + modifier;\n while (\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n if (\n focussable[curIndex] &&\n !this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // Try wrapping the navigation\n /* istanbul ignore next */\n curIndex = modifier > 0 ? 0 : focussable.length - 1;\n\n /* istanbul ignore next */\n while (\n curIndex !== startingIndex &&\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (\n focussable[curIndex] &&\n !this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // No valid target, wipe focus\n // This should never happen in practice due to the multiple inline delete buttons\n if (document.activeElement && (document.activeElement as any).blur) {\n (document.activeElement as any).blur();\n }\n document.body.focus();\n }\n }\n\n // clear focussableElements list so that if things change between tabbing we know about it\n this.focussableElements = undefined;\n }\n\n private getFocussableElements(): HTMLElement[] {\n // Keep this cached so we can reduce querys\n if (this.focussableElements) {\n return this.focussableElements;\n }\n\n this.focussableElements = this.coreAdapterService.getFocusableChildren(\n document.body\n );\n\n return this.focussableElements;\n }\n\n private isElementHiddenOrCovered(element: any): boolean {\n // Check if the element is hidden by css, not within the inline delete, or a wait is covering it\n return (\n this.isElementHidden(element) ||\n (this.parentEl.contains(element) &&\n (!this.element.contains(element) ||\n this.parentEl.querySelector('.sky-wait-mask') !== null))\n );\n }\n\n private isElementHidden(element: any): boolean {\n const style = window.getComputedStyle(element);\n return style.display === 'none' || style.visibility === 'hidden';\n }\n\n private isShift(event: Event): boolean {\n // Determine if shift+tab was used based on element order\n const elements = this.getFocussableElements().filter(\n (elem) => !this.isElementHidden(elem)\n );\n\n const previousInd = elements.indexOf((event as any).relatedTarget);\n const currentInd = elements.indexOf(event.target as HTMLElement);\n\n /* istanbul ignore next */\n return (\n previousInd === currentInd + 1 ||\n (previousInd === 0 && currentInd === elements.length - 1) ||\n previousInd > currentInd ||\n !(event as any).relatedTarget\n );\n }\n}\n"]}
@@ -1,16 +0,0 @@
1
- /**
2
- * Specifies the type of inline delete that is shown.
3
- * @internal
4
- */
5
- export var SkyInlineDeleteType;
6
- (function (SkyInlineDeleteType) {
7
- /**
8
- * The standard styling for inline deletes.
9
- */
10
- SkyInlineDeleteType["Standard"] = "standard";
11
- /**
12
- * The styling for inline delete components which are used in card components.
13
- */
14
- SkyInlineDeleteType["Card"] = "card";
15
- })(SkyInlineDeleteType || (SkyInlineDeleteType = {}));
16
- //# sourceMappingURL=inline-delete-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inline-delete-type.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete-type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,mBASX;AATD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,4CAAqB,CAAA;IACrB;;OAEG;IACH,oCAAa,CAAA;AACf,CAAC,EATW,mBAAmB,KAAnB,mBAAmB,QAS9B","sourcesContent":["/**\n * Specifies the type of inline delete that is shown.\n * @internal\n */\nexport enum SkyInlineDeleteType {\n /**\n * The standard styling for inline deletes.\n */\n Standard = 'standard',\n /**\n * The styling for inline delete components which are used in card components.\n */\n Card = 'card',\n}\n"]}
@@ -1,167 +0,0 @@
1
- import { animate, group, query, style, transition, trigger, } from '@angular/animations';
2
- import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
3
- import { SkyCoreAdapterService } from '@skyux/core';
4
- import { SkyInlineDeleteAdapterService } from './inline-delete-adapter.service';
5
- import { SkyInlineDeleteType } from './inline-delete-type';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./inline-delete-adapter.service";
8
- import * as i2 from "@skyux/indicators";
9
- import * as i3 from "@skyux/i18n";
10
- /**
11
- * Auto-incrementing integer used to generate unique ids for inline delete components.
12
- */
13
- let nextId = 0;
14
- export class SkyInlineDeleteComponent {
15
- constructor(adapterService, changeDetector, elRef) {
16
- this.adapterService = adapterService;
17
- this.changeDetector = changeDetector;
18
- this.elRef = elRef;
19
- /**
20
- * Indicates whether the deletion is pending.
21
- * @default false
22
- */
23
- this.pending = false;
24
- /**
25
- * Fires when users click the cancel button.
26
- */
27
- this.cancelTriggered = new EventEmitter();
28
- /**
29
- * Fires when users click the delete button.
30
- */
31
- this.deleteTriggered = new EventEmitter();
32
- this.animationState = 'shown';
33
- this.assistiveTextId = `sky-inline-delete-assistive-text-${++nextId}`;
34
- this.type = SkyInlineDeleteType.Standard;
35
- }
36
- /**
37
- * Initialization lifecycle hook
38
- * @internal
39
- */
40
- ngOnInit() {
41
- this.animationState = 'shown';
42
- }
43
- /**
44
- * Destruction lifecycle hook
45
- * @internal
46
- */
47
- ngOnDestroy() {
48
- this.adapterService.clearListeners();
49
- this.cancelTriggered.complete();
50
- this.deleteTriggered.complete();
51
- }
52
- /**
53
- * @internal
54
- */
55
- onCancelClick() {
56
- this.animationState = 'hidden';
57
- }
58
- /**
59
- * @internal
60
- */
61
- onDeleteClick() {
62
- this.deleteTriggered.emit();
63
- }
64
- /**
65
- * Sets the inline delete to one of its predefined types.
66
- * @param type The inline delete type
67
- * @internal
68
- */
69
- setType(type) {
70
- this.type = type;
71
- this.changeDetector.detectChanges();
72
- }
73
- /**
74
- * Handles actions that should be taken after the inline delete animates
75
- * @param event The animation event
76
- * @internal
77
- */
78
- onAnimationDone(event) {
79
- if (event.toState === 'hidden') {
80
- this.cancelTriggered.emit();
81
- }
82
- else {
83
- this.deleteButton.nativeElement.focus();
84
- /* istanbul ignore else */
85
- if (this.elRef) {
86
- this.adapterService.setEl(this.elRef.nativeElement);
87
- }
88
- }
89
- }
90
- }
91
- SkyInlineDeleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteComponent, deps: [{ token: i1.SkyInlineDeleteAdapterService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
92
- SkyInlineDeleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }], pipes: { "skyLibResources": i3.SkyLibResourcesPipe }, animations: [
93
- trigger('inlineDeleteAnimation', [
94
- transition('* => shown', [
95
- style({
96
- opacity: 0,
97
- }),
98
- query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(0.0)' })),
99
- group([
100
- animate('300ms ease-in-out', style({ opacity: 1 })),
101
- query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
102
- transform: 'scale(1)',
103
- }))),
104
- ]),
105
- ]),
106
- transition(`shown <=> *`, [
107
- query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(1)' })),
108
- group([
109
- animate('300ms ease-in-out', style({
110
- opacity: 0,
111
- })),
112
- query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
113
- transform: 'scale(0.0)',
114
- }))),
115
- ]),
116
- ]),
117
- ]),
118
- ] });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteComponent, decorators: [{
120
- type: Component,
121
- args: [{
122
- selector: 'sky-inline-delete',
123
- styleUrls: ['./inline-delete.component.scss'],
124
- templateUrl: './inline-delete.component.html',
125
- animations: [
126
- trigger('inlineDeleteAnimation', [
127
- transition('* => shown', [
128
- style({
129
- opacity: 0,
130
- }),
131
- query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(0.0)' })),
132
- group([
133
- animate('300ms ease-in-out', style({ opacity: 1 })),
134
- query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
135
- transform: 'scale(1)',
136
- }))),
137
- ]),
138
- ]),
139
- transition(`shown <=> *`, [
140
- query('.sky-inline-delete-content-animation-container', style({ transform: 'scale(1)' })),
141
- group([
142
- animate('300ms ease-in-out', style({
143
- opacity: 0,
144
- })),
145
- query('.sky-inline-delete-content-animation-container', animate('300ms ease-in-out', style({
146
- transform: 'scale(0.0)',
147
- }))),
148
- ]),
149
- ]),
150
- ]),
151
- ],
152
- providers: [SkyCoreAdapterService, SkyInlineDeleteAdapterService],
153
- }]
154
- }], ctorParameters: function () { return [{ type: i1.SkyInlineDeleteAdapterService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { pending: [{
155
- type: Input
156
- }], cancelTriggered: [{
157
- type: Output
158
- }], deleteTriggered: [{
159
- type: Output
160
- }], deleteButton: [{
161
- type: ViewChild,
162
- args: ['delete', {
163
- read: ElementRef,
164
- static: false,
165
- }]
166
- }] } });
167
- //# sourceMappingURL=inline-delete.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inline-delete.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AnimationEvent,\n animate,\n group,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\nimport { SkyInlineDeleteAdapterService } from './inline-delete-adapter.service';\nimport { SkyInlineDeleteType } from './inline-delete-type';\n\n/**\n * Auto-incrementing integer used to generate unique ids for inline delete components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-inline-delete',\n styleUrls: ['./inline-delete.component.scss'],\n templateUrl: './inline-delete.component.html',\n animations: [\n trigger('inlineDeleteAnimation', [\n transition('* => shown', [\n style({\n opacity: 0,\n }),\n query(\n '.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(0.0)' })\n ),\n group([\n animate('300ms ease-in-out', style({ opacity: 1 })),\n query(\n '.sky-inline-delete-content-animation-container',\n animate(\n '300ms ease-in-out',\n style({\n transform: 'scale(1)',\n })\n )\n ),\n ]),\n ]),\n transition(`shown <=> *`, [\n query(\n '.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(1)' })\n ),\n group([\n animate(\n '300ms ease-in-out',\n style({\n opacity: 0,\n })\n ),\n query(\n '.sky-inline-delete-content-animation-container',\n animate(\n '300ms ease-in-out',\n style({\n transform: 'scale(0.0)',\n })\n )\n ),\n ]),\n ]),\n ]),\n ],\n providers: [SkyCoreAdapterService, SkyInlineDeleteAdapterService],\n})\nexport class SkyInlineDeleteComponent implements OnDestroy, OnInit {\n /**\n * Indicates whether the deletion is pending.\n * @default false\n */\n @Input()\n public pending = false;\n\n /**\n * Fires when users click the cancel button.\n */\n @Output()\n public cancelTriggered = new EventEmitter<void>();\n\n /**\n * Fires when users click the delete button.\n */\n @Output()\n public deleteTriggered = new EventEmitter<void>();\n\n public animationState = 'shown';\n\n public assistiveTextId = `sky-inline-delete-assistive-text-${++nextId}`;\n\n public type: SkyInlineDeleteType = SkyInlineDeleteType.Standard;\n\n @ViewChild('delete', {\n read: ElementRef,\n static: false,\n })\n private deleteButton: ElementRef;\n\n constructor(\n private adapterService: SkyInlineDeleteAdapterService,\n private changeDetector: ChangeDetectorRef,\n private elRef: ElementRef\n ) {}\n\n /**\n * Initialization lifecycle hook\n * @internal\n */\n public ngOnInit(): void {\n this.animationState = 'shown';\n }\n\n /**\n * Destruction lifecycle hook\n * @internal\n */\n public ngOnDestroy(): void {\n this.adapterService.clearListeners();\n this.cancelTriggered.complete();\n this.deleteTriggered.complete();\n }\n\n /**\n * @internal\n */\n public onCancelClick(): void {\n this.animationState = 'hidden';\n }\n\n /**\n * @internal\n */\n public onDeleteClick(): void {\n this.deleteTriggered.emit();\n }\n\n /**\n * Sets the inline delete to one of its predefined types.\n * @param type The inline delete type\n * @internal\n */\n public setType(type: SkyInlineDeleteType): void {\n this.type = type;\n this.changeDetector.detectChanges();\n }\n\n /**\n * Handles actions that should be taken after the inline delete animates\n * @param event The animation event\n * @internal\n */\n public onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'hidden') {\n this.cancelTriggered.emit();\n } else {\n this.deleteButton.nativeElement.focus();\n /* istanbul ignore else */\n if (this.elRef) {\n this.adapterService.setEl(this.elRef.nativeElement);\n }\n }\n }\n}\n","<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"]}
@@ -1,34 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { SkyI18nModule } from '@skyux/i18n';
4
- import { SkyWaitModule } from '@skyux/indicators';
5
- import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
6
- import { SkyInlineDeleteComponent } from './inline-delete.component';
7
- import * as i0 from "@angular/core";
8
- export class SkyInlineDeleteModule {
9
- }
10
- SkyInlineDeleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- SkyInlineDeleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteModule, declarations: [SkyInlineDeleteComponent], imports: [CommonModule,
12
- SkyI18nModule,
13
- SkyLayoutResourcesModule,
14
- SkyWaitModule], exports: [SkyInlineDeleteComponent] });
15
- SkyInlineDeleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteModule, imports: [[
16
- CommonModule,
17
- SkyI18nModule,
18
- SkyLayoutResourcesModule,
19
- SkyWaitModule,
20
- ]] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInlineDeleteModule, decorators: [{
22
- type: NgModule,
23
- args: [{
24
- declarations: [SkyInlineDeleteComponent],
25
- imports: [
26
- CommonModule,
27
- SkyI18nModule,
28
- SkyLayoutResourcesModule,
29
- SkyWaitModule,
30
- ],
31
- exports: [SkyInlineDeleteComponent],
32
- }]
33
- }] });
34
- //# sourceMappingURL=inline-delete.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inline-delete.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;;AAYrE,MAAM,OAAO,qBAAqB;;mHAArB,qBAAqB;oHAArB,qBAAqB,iBATjB,wBAAwB,aAErC,YAAY;QACZ,aAAa;QACb,wBAAwB;QACxB,aAAa,aAEL,wBAAwB;oHAEvB,qBAAqB,YARvB;YACP,YAAY;YACZ,aAAa;YACb,wBAAwB;YACxB,aAAa;SACd;4FAGU,qBAAqB;kBAVjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,wBAAwB;wBACxB,aAAa;qBACd;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;iBACpC","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyWaitModule } from '@skyux/indicators';\n\nimport { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';\n\nimport { SkyInlineDeleteComponent } from './inline-delete.component';\n\n@NgModule({\n declarations: [SkyInlineDeleteComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyWaitModule,\n ],\n exports: [SkyInlineDeleteComponent],\n})\nexport class SkyInlineDeleteModule {}\n"]}
@@ -1,26 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * @internal
5
- */
6
- export class SkyPageThemeAdapterService {
7
- addTheme() {
8
- if (!this.styleEl) {
9
- this.styleEl = document.createElement('style');
10
- this.styleEl.appendChild(document.createTextNode('body { background-color: #fff; }'));
11
- document.head.appendChild(this.styleEl);
12
- }
13
- }
14
- removeTheme() {
15
- if (this.styleEl) {
16
- document.head.removeChild(this.styleEl);
17
- this.styleEl = undefined;
18
- }
19
- }
20
- }
21
- SkyPageThemeAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageThemeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
22
- SkyPageThemeAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageThemeAdapterService });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageThemeAdapterService, decorators: [{
24
- type: Injectable
25
- }] });
26
- //# sourceMappingURL=page-theme-adapter.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-theme-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page/page-theme-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAE3C;;GAEG;AAEH,MAAM,OAAO,0BAA0B;IAG9B,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,CACtB,QAAQ,CAAC,cAAc,CAAC,kCAAkC,CAAC,CAC5D,CAAC;YAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzC;IACH,CAAC;IAEM,WAAW;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;SAC1B;IACH,CAAC;;wHAnBU,0BAA0B;4HAA1B,0BAA0B;4FAA1B,0BAA0B;kBADtC,UAAU","sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageThemeAdapterService {\n private styleEl: HTMLStyleElement;\n\n public addTheme(): void {\n if (!this.styleEl) {\n this.styleEl = document.createElement('style');\n this.styleEl.appendChild(\n document.createTextNode('body { background-color: #fff; }')\n );\n\n document.head.appendChild(this.styleEl);\n }\n }\n\n public removeTheme(): void {\n if (this.styleEl) {\n document.head.removeChild(this.styleEl);\n this.styleEl = undefined;\n }\n }\n}\n"]}
@@ -1,31 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { SkyPageThemeAdapterService } from './page-theme-adapter.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./page-theme-adapter.service";
5
- /**
6
- * Resets the SPA's background to white and adds the `sky-theme-default` CSS class to the host
7
- * element to let consumers override CSS styling. Consumers can override any element by writing
8
- * CSS selectors like this: `:host-context(.sky-theme-default) .my-class {}`.
9
- */
10
- export class SkyPageComponent {
11
- constructor(themeAdapter) {
12
- this.themeAdapter = themeAdapter;
13
- }
14
- ngOnInit() {
15
- this.themeAdapter.addTheme();
16
- }
17
- ngOnDestroy() {
18
- this.themeAdapter.removeTheme();
19
- }
20
- }
21
- SkyPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageComponent, deps: [{ token: i1.SkyPageThemeAdapterService }], target: i0.ɵɵFactoryTarget.Component });
22
- SkyPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyPageComponent, selector: "sky-page", providers: [SkyPageThemeAdapterService], ngImport: i0, template: "<div class=\"sky-theme-default\">\n <ng-content></ng-content>\n</div>\n" });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageComponent, decorators: [{
24
- type: Component,
25
- args: [{
26
- selector: 'sky-page',
27
- templateUrl: './page.component.html',
28
- providers: [SkyPageThemeAdapterService],
29
- }]
30
- }], ctorParameters: function () { return [{ type: i1.SkyPageThemeAdapterService }]; } });
31
- //# sourceMappingURL=page.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page/page.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/page/page.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;;;AAE1E;;;;GAIG;AAMH,MAAM,OAAO,gBAAgB;IAC3B,YAAoB,YAAwC;QAAxC,iBAAY,GAAZ,YAAY,CAA4B;IAAG,CAAC;IAEzD,QAAQ;QACb,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;;8GATU,gBAAgB;kGAAhB,gBAAgB,mCAFhB,CAAC,0BAA0B,CAAC,0BCZzC,0EAGA;4FDWa,gBAAgB;kBAL5B,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,WAAW,EAAE,uBAAuB;oBACpC,SAAS,EAAE,CAAC,0BAA0B,CAAC;iBACxC","sourcesContent":["import { Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { SkyPageThemeAdapterService } from './page-theme-adapter.service';\n\n/**\n * Resets the SPA's background to white and adds the `sky-theme-default` CSS class to the host\n * element to let consumers override CSS styling. Consumers can override any element by writing\n * CSS selectors like this: `:host-context(.sky-theme-default) .my-class {}`.\n */\n@Component({\n selector: 'sky-page',\n templateUrl: './page.component.html',\n providers: [SkyPageThemeAdapterService],\n})\nexport class SkyPageComponent implements OnInit, OnDestroy {\n constructor(private themeAdapter: SkyPageThemeAdapterService) {}\n\n public ngOnInit(): void {\n this.themeAdapter.addTheme();\n }\n\n public ngOnDestroy(): void {\n this.themeAdapter.removeTheme();\n }\n}\n","<div class=\"sky-theme-default\">\n <ng-content></ng-content>\n</div>\n"]}
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { SkyPageComponent } from './page.component';
3
- import * as i0 from "@angular/core";
4
- export class SkyPageModule {
5
- }
6
- SkyPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- SkyPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageModule, declarations: [SkyPageComponent], exports: [SkyPageComponent] });
8
- SkyPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageModule });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- declarations: [SkyPageComponent],
13
- exports: [SkyPageComponent],
14
- }]
15
- }] });
16
- //# sourceMappingURL=page.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page/page.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;;AAMpD,MAAM,OAAO,aAAa;;2GAAb,aAAa;4GAAb,aAAa,iBAHT,gBAAgB,aACrB,gBAAgB;4GAEf,aAAa;4FAAb,aAAa;kBAJzB,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;iBAC5B","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { SkyPageComponent } from './page.component';\n\n@NgModule({\n declarations: [SkyPageComponent],\n exports: [SkyPageComponent],\n})\nexport class SkyPageModule {}\n"]}
@@ -1,23 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * @internal
5
- */
6
- export class SkyPageSummaryAdapterService {
7
- updateKeyInfoLocation(elRef, isXS) {
8
- const el = elRef.nativeElement;
9
- const keyInfoContainerEl = el.querySelector('.sky-page-summary-key-info-container');
10
- if (isXS) {
11
- el.querySelector('.sky-page-summary-key-info-xs').appendChild(keyInfoContainerEl);
12
- }
13
- else {
14
- el.querySelector('.sky-page-summary-key-info-sm').appendChild(keyInfoContainerEl);
15
- }
16
- }
17
- }
18
- SkyPageSummaryAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageSummaryAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
- SkyPageSummaryAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageSummaryAdapterService });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPageSummaryAdapterService, decorators: [{
21
- type: Injectable
22
- }] });
23
- //# sourceMappingURL=page-summary-adapter.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-summary-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,eAAe,CAAC;;AAEvD;;GAEG;AAEH,MAAM,OAAO,4BAA4B;IAChC,qBAAqB,CAAC,KAAiB,EAAE,IAAa;QAC3D,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,MAAM,kBAAkB,GAAG,EAAE,CAAC,aAAa,CACzC,sCAAsC,CACvC,CAAC;QAEF,IAAI,IAAI,EAAE;YACR,EAAE,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAC3D,kBAAkB,CACnB,CAAC;SACH;aAAM;YACL,EAAE,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAC3D,kBAAkB,CACnB,CAAC;SACH;IACH,CAAC;;0HAhBU,4BAA4B;8HAA5B,4BAA4B;4FAA5B,4BAA4B;kBADxC,UAAU","sourcesContent":["import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageSummaryAdapterService {\n public updateKeyInfoLocation(elRef: ElementRef, isXS: boolean) {\n const el = elRef.nativeElement;\n const keyInfoContainerEl = el.querySelector(\n '.sky-page-summary-key-info-container'\n );\n\n if (isXS) {\n el.querySelector('.sky-page-summary-key-info-xs').appendChild(\n keyInfoContainerEl\n );\n } else {\n el.querySelector('.sky-page-summary-key-info-sm').appendChild(\n keyInfoContainerEl\n );\n }\n }\n}\n"]}