@skyux/layout 5.2.0 → 5.5.0-alpha.0

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 (355) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-layout.umd.js +242 -240
  3. package/documentation.json +413 -64
  4. package/esm2015/index.js +74 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/action-button/action-button-adapter-service.js +43 -0
  7. package/esm2015/lib/modules/action-button/action-button-adapter-service.js.map +1 -0
  8. package/esm2015/lib/modules/action-button/action-button-container.component.js +145 -0
  9. package/esm2015/lib/modules/action-button/action-button-container.component.js.map +1 -0
  10. package/esm2015/lib/modules/action-button/action-button-details.component.js +17 -0
  11. package/esm2015/lib/modules/action-button/action-button-details.component.js.map +1 -0
  12. package/esm2015/{modules → lib/modules}/action-button/action-button-header.component.js +4 -4
  13. package/esm2015/lib/modules/action-button/action-button-header.component.js.map +1 -0
  14. package/esm2015/lib/modules/action-button/action-button-icon.component.js +44 -0
  15. package/esm2015/lib/modules/action-button/action-button-icon.component.js.map +1 -0
  16. package/esm2015/lib/modules/action-button/action-button-permalink.js +2 -0
  17. package/esm2015/lib/modules/action-button/action-button-permalink.js.map +1 -0
  18. package/esm2015/{modules → lib/modules}/action-button/action-button.component.js +4 -4
  19. package/esm2015/lib/modules/action-button/action-button.component.js.map +1 -0
  20. package/esm2015/lib/modules/action-button/action-button.module.js +62 -0
  21. package/esm2015/lib/modules/action-button/action-button.module.js.map +1 -0
  22. package/esm2015/lib/modules/action-button/types/action-button-container-align-items-type.js +2 -0
  23. package/esm2015/lib/modules/action-button/types/action-button-container-align-items-type.js.map +1 -0
  24. package/esm2015/lib/modules/action-button/types/action-button-container-align-items.js +2 -0
  25. package/esm2015/lib/modules/action-button/types/action-button-container-align-items.js.map +1 -0
  26. package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js +89 -0
  27. package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js.map +1 -0
  28. package/esm2015/lib/modules/back-to-top/back-to-top.component.js +31 -0
  29. package/esm2015/lib/modules/back-to-top/back-to-top.component.js.map +1 -0
  30. package/esm2015/lib/modules/back-to-top/back-to-top.directive.js +115 -0
  31. package/esm2015/lib/modules/back-to-top/back-to-top.directive.js.map +1 -0
  32. package/esm2015/lib/modules/back-to-top/back-top-top.module.js +36 -0
  33. package/esm2015/lib/modules/back-to-top/back-top-top.module.js.map +1 -0
  34. package/esm2015/lib/modules/back-to-top/models/back-to-top-message-type.js +11 -0
  35. package/esm2015/lib/modules/back-to-top/models/back-to-top-message-type.js.map +1 -0
  36. package/esm2015/lib/modules/back-to-top/models/back-to-top-message.js +2 -0
  37. package/esm2015/lib/modules/back-to-top/models/back-to-top-message.js.map +1 -0
  38. package/esm2015/lib/modules/back-to-top/models/back-to-top-options.js +2 -0
  39. package/esm2015/lib/modules/back-to-top/models/back-to-top-options.js.map +1 -0
  40. package/esm2015/lib/modules/box/box-content.component.js +18 -0
  41. package/esm2015/lib/modules/box/box-content.component.js.map +1 -0
  42. package/esm2015/lib/modules/box/box-controls.component.js +17 -0
  43. package/esm2015/lib/modules/box/box-controls.component.js.map +1 -0
  44. package/esm2015/lib/modules/box/box-header.component.js +17 -0
  45. package/esm2015/lib/modules/box/box-header.component.js.map +1 -0
  46. package/esm2015/lib/modules/box/box.component.js +26 -0
  47. package/esm2015/lib/modules/box/box.component.js.map +1 -0
  48. package/esm2015/lib/modules/box/box.module.js +38 -0
  49. package/esm2015/lib/modules/box/box.module.js.map +1 -0
  50. package/esm2015/lib/modules/card/card-actions.component.js +18 -0
  51. package/esm2015/lib/modules/card/card-actions.component.js.map +1 -0
  52. package/esm2015/lib/modules/card/card-content.component.js +17 -0
  53. package/esm2015/lib/modules/card/card-content.component.js.map +1 -0
  54. package/esm2015/lib/modules/card/card-title.component.js +17 -0
  55. package/esm2015/lib/modules/card/card-title.component.js.map +1 -0
  56. package/esm2015/lib/modules/card/card.component.js +79 -0
  57. package/esm2015/lib/modules/card/card.component.js.map +1 -0
  58. package/esm2015/lib/modules/card/card.module.js +61 -0
  59. package/esm2015/lib/modules/card/card.module.js.map +1 -0
  60. package/esm2015/lib/modules/definition-list/definition-list-content.component.js +19 -0
  61. package/esm2015/lib/modules/definition-list/definition-list-content.component.js.map +1 -0
  62. package/esm2015/lib/modules/definition-list/definition-list-heading.component.js +19 -0
  63. package/esm2015/lib/modules/definition-list/definition-list-heading.component.js.map +1 -0
  64. package/esm2015/lib/modules/definition-list/definition-list-label.component.js +25 -0
  65. package/esm2015/lib/modules/definition-list/definition-list-label.component.js.map +1 -0
  66. package/esm2015/lib/modules/definition-list/definition-list-value.component.js +25 -0
  67. package/esm2015/lib/modules/definition-list/definition-list-value.component.js.map +1 -0
  68. package/esm2015/lib/modules/definition-list/definition-list.component.js +44 -0
  69. package/esm2015/lib/modules/definition-list/definition-list.component.js.map +1 -0
  70. package/esm2015/lib/modules/definition-list/definition-list.module.js +44 -0
  71. package/esm2015/lib/modules/definition-list/definition-list.module.js.map +1 -0
  72. package/esm2015/lib/modules/definition-list/definition-list.service.js +18 -0
  73. package/esm2015/lib/modules/definition-list/definition-list.service.js.map +1 -0
  74. package/esm2015/lib/modules/description-list/description-list-adapter-service.js +43 -0
  75. package/esm2015/lib/modules/description-list/description-list-adapter-service.js.map +1 -0
  76. package/esm2015/lib/modules/description-list/description-list-content.component.js +25 -0
  77. package/esm2015/lib/modules/description-list/description-list-content.component.js.map +1 -0
  78. package/esm2015/lib/modules/description-list/description-list-description.component.js +53 -0
  79. package/esm2015/lib/modules/description-list/description-list-description.component.js.map +1 -0
  80. package/esm2015/lib/modules/description-list/description-list-term.component.js +24 -0
  81. package/esm2015/lib/modules/description-list/description-list-term.component.js.map +1 -0
  82. package/esm2015/lib/modules/description-list/description-list.component.js +107 -0
  83. package/esm2015/lib/modules/description-list/description-list.component.js.map +1 -0
  84. package/esm2015/lib/modules/description-list/description-list.module.js +53 -0
  85. package/esm2015/lib/modules/description-list/description-list.module.js.map +1 -0
  86. package/esm2015/lib/modules/description-list/description-list.service.js +26 -0
  87. package/esm2015/lib/modules/description-list/description-list.service.js.map +1 -0
  88. package/esm2015/lib/modules/description-list/types/description-list-mode-type.js +2 -0
  89. package/esm2015/lib/modules/description-list/types/description-list-mode-type.js.map +1 -0
  90. package/esm2015/lib/modules/description-list/types/description-list-mode.js +24 -0
  91. package/esm2015/lib/modules/description-list/types/description-list-mode.js.map +1 -0
  92. package/esm2015/lib/modules/fluid-grid/column.component.js +55 -0
  93. package/esm2015/lib/modules/fluid-grid/column.component.js.map +1 -0
  94. package/esm2015/lib/modules/fluid-grid/fluid-grid-gutter-size.js +20 -0
  95. package/esm2015/lib/modules/fluid-grid/fluid-grid-gutter-size.js.map +1 -0
  96. package/esm2015/lib/modules/fluid-grid/fluid-grid.component.js +66 -0
  97. package/esm2015/lib/modules/fluid-grid/fluid-grid.component.js.map +1 -0
  98. package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js +20 -0
  99. package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js.map +1 -0
  100. package/esm2015/{modules → lib/modules}/fluid-grid/row.component.js +4 -4
  101. package/esm2015/lib/modules/fluid-grid/row.component.js.map +1 -0
  102. package/esm2015/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.js +2 -0
  103. package/esm2015/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.js.map +1 -0
  104. package/esm2015/lib/modules/format/format-item.js +2 -0
  105. package/esm2015/lib/modules/format/format-item.js.map +1 -0
  106. package/esm2015/lib/modules/format/format.component.js +63 -0
  107. package/esm2015/lib/modules/format/format.component.js.map +1 -0
  108. package/esm2015/lib/modules/format/format.module.js +18 -0
  109. package/esm2015/lib/modules/format/format.module.js.map +1 -0
  110. package/esm2015/lib/modules/inline-delete/inline-delete-adapter.service.js +115 -0
  111. package/esm2015/lib/modules/inline-delete/inline-delete-adapter.service.js.map +1 -0
  112. package/esm2015/lib/modules/inline-delete/inline-delete-type.js +16 -0
  113. package/esm2015/lib/modules/inline-delete/inline-delete-type.js.map +1 -0
  114. package/esm2015/lib/modules/inline-delete/inline-delete.component.js +167 -0
  115. package/esm2015/lib/modules/inline-delete/inline-delete.component.js.map +1 -0
  116. package/esm2015/lib/modules/inline-delete/inline-delete.module.js +34 -0
  117. package/esm2015/lib/modules/inline-delete/inline-delete.module.js.map +1 -0
  118. package/esm2015/lib/modules/page/page-theme-adapter.service.js +26 -0
  119. package/esm2015/lib/modules/page/page-theme-adapter.service.js.map +1 -0
  120. package/esm2015/lib/modules/page/page.component.js +31 -0
  121. package/esm2015/lib/modules/page/page.component.js.map +1 -0
  122. package/esm2015/lib/modules/page/page.module.js +16 -0
  123. package/esm2015/lib/modules/page/page.module.js.map +1 -0
  124. package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js +23 -0
  125. package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js.map +1 -0
  126. package/esm2015/lib/modules/page-summary/page-summary-alert.component.js +21 -0
  127. package/esm2015/lib/modules/page-summary/page-summary-alert.component.js.map +1 -0
  128. package/esm2015/lib/modules/page-summary/page-summary-content.component.js +20 -0
  129. package/esm2015/lib/modules/page-summary/page-summary-content.component.js.map +1 -0
  130. package/esm2015/{modules → lib/modules}/page-summary/page-summary-image.component.js +4 -4
  131. package/esm2015/lib/modules/page-summary/page-summary-image.component.js.map +1 -0
  132. package/esm2015/{modules → lib/modules}/page-summary/page-summary-key-info.component.js +4 -4
  133. package/esm2015/lib/modules/page-summary/page-summary-key-info.component.js.map +1 -0
  134. package/esm2015/lib/modules/page-summary/page-summary-status.component.js +21 -0
  135. package/esm2015/lib/modules/page-summary/page-summary-status.component.js.map +1 -0
  136. package/esm2015/lib/modules/page-summary/page-summary-subtitle.component.js +20 -0
  137. package/esm2015/lib/modules/page-summary/page-summary-subtitle.component.js.map +1 -0
  138. package/esm2015/lib/modules/page-summary/page-summary-title.component.js +20 -0
  139. package/esm2015/lib/modules/page-summary/page-summary-title.component.js.map +1 -0
  140. package/esm2015/{modules → lib/modules}/page-summary/page-summary.component.js +6 -6
  141. package/esm2015/lib/modules/page-summary/page-summary.component.js.map +1 -0
  142. package/esm2015/lib/modules/page-summary/page-summary.module.js +57 -0
  143. package/esm2015/lib/modules/page-summary/page-summary.module.js.map +1 -0
  144. package/esm2015/lib/modules/shared/sky-layout-resources.module.js +60 -0
  145. package/esm2015/lib/modules/shared/sky-layout-resources.module.js.map +1 -0
  146. package/esm2015/lib/modules/text-expand/text-expand-adapter.service.js +31 -0
  147. package/esm2015/lib/modules/text-expand/text-expand-adapter.service.js.map +1 -0
  148. package/esm2015/lib/modules/text-expand/text-expand-modal-context.js +6 -0
  149. package/esm2015/lib/modules/text-expand/text-expand-modal-context.js.map +1 -0
  150. package/esm2015/lib/modules/text-expand/text-expand-modal.component.js +30 -0
  151. package/esm2015/lib/modules/text-expand/text-expand-modal.component.js.map +1 -0
  152. package/esm2015/lib/modules/text-expand/text-expand.component.js +252 -0
  153. package/esm2015/lib/modules/text-expand/text-expand.component.js.map +1 -0
  154. package/esm2015/lib/modules/text-expand/text-expand.module.js +36 -0
  155. package/esm2015/lib/modules/text-expand/text-expand.module.js.map +1 -0
  156. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.js +37 -0
  157. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.js.map +1 -0
  158. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js +176 -0
  159. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js.map +1 -0
  160. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js +20 -0
  161. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js.map +1 -0
  162. package/esm2015/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.js +2 -0
  163. package/esm2015/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.js.map +1 -0
  164. package/esm2015/{modules → lib/modules}/toolbar/toolbar-item.component.js +4 -4
  165. package/esm2015/lib/modules/toolbar/toolbar-item.component.js.map +1 -0
  166. package/esm2015/lib/modules/toolbar/toolbar-section.component.js +18 -0
  167. package/esm2015/lib/modules/toolbar/toolbar-section.component.js.map +1 -0
  168. package/esm2015/{modules → lib/modules}/toolbar/toolbar-view-actions.component.js +4 -4
  169. package/esm2015/lib/modules/toolbar/toolbar-view-actions.component.js.map +1 -0
  170. package/esm2015/{modules → lib/modules}/toolbar/toolbar.component.js +5 -5
  171. package/esm2015/lib/modules/toolbar/toolbar.component.js.map +1 -0
  172. package/esm2015/lib/modules/toolbar/toolbar.module.js +37 -0
  173. package/esm2015/lib/modules/toolbar/toolbar.module.js.map +1 -0
  174. package/esm2015/skyux-layout.js +2 -2
  175. package/esm2015/skyux-layout.js.map +1 -0
  176. package/esm2015/testing/action-button-fixture.js +1 -1
  177. package/esm2015/testing/action-button-fixture.js.map +1 -0
  178. package/esm2015/testing/card-fixture.js +1 -1
  179. package/esm2015/testing/card-fixture.js.map +1 -0
  180. package/esm2015/testing/page-summary-fixture.js +1 -1
  181. package/esm2015/testing/page-summary-fixture.js.map +1 -0
  182. package/esm2015/testing/public-api.js +1 -1
  183. package/esm2015/testing/public-api.js.map +1 -0
  184. package/esm2015/testing/skyux-layout-testing.js +1 -1
  185. package/esm2015/testing/skyux-layout-testing.js.map +1 -0
  186. package/fesm2015/skyux-layout-testing.js.map +1 -1
  187. package/fesm2015/skyux-layout.js +241 -239
  188. package/fesm2015/skyux-layout.js.map +1 -1
  189. package/index.d.ts +71 -0
  190. package/{modules → lib/modules}/action-button/action-button-adapter-service.d.ts +0 -0
  191. package/{modules → lib/modules}/action-button/action-button-container.component.d.ts +2 -1
  192. package/{modules → lib/modules}/action-button/action-button-details.component.d.ts +0 -0
  193. package/{modules → lib/modules}/action-button/action-button-header.component.d.ts +0 -0
  194. package/{modules → lib/modules}/action-button/action-button-icon.component.d.ts +1 -1
  195. package/{modules → lib/modules}/action-button/action-button-permalink.d.ts +0 -0
  196. package/{modules → lib/modules}/action-button/action-button.component.d.ts +0 -0
  197. package/{modules → lib/modules}/action-button/action-button.module.d.ts +0 -0
  198. package/{modules → lib/modules}/action-button/types/action-button-container-align-items-type.d.ts +0 -0
  199. package/{modules → lib/modules}/action-button/types/action-button-container-align-items.d.ts +0 -0
  200. package/{modules → lib/modules}/back-to-top/back-to-top-adapter.service.d.ts +0 -0
  201. package/{modules → lib/modules}/back-to-top/back-to-top.component.d.ts +0 -0
  202. package/{modules → lib/modules}/back-to-top/back-to-top.directive.d.ts +0 -0
  203. package/{modules → lib/modules}/back-to-top/back-top-top.module.d.ts +0 -0
  204. package/{modules → lib/modules}/back-to-top/models/back-to-top-message-type.d.ts +0 -0
  205. package/{modules → lib/modules}/back-to-top/models/back-to-top-message.d.ts +0 -0
  206. package/{modules → lib/modules}/back-to-top/models/back-to-top-options.d.ts +0 -0
  207. package/{modules → lib/modules}/box/box-content.component.d.ts +0 -0
  208. package/{modules → lib/modules}/box/box-controls.component.d.ts +0 -0
  209. package/{modules → lib/modules}/box/box-header.component.d.ts +0 -0
  210. package/{modules → lib/modules}/box/box.component.d.ts +0 -0
  211. package/{modules → lib/modules}/box/box.module.d.ts +0 -0
  212. package/{modules → lib/modules}/card/card-actions.component.d.ts +0 -0
  213. package/{modules → lib/modules}/card/card-content.component.d.ts +0 -0
  214. package/{modules → lib/modules}/card/card-title.component.d.ts +0 -0
  215. package/{modules → lib/modules}/card/card.component.d.ts +2 -2
  216. package/{modules → lib/modules}/card/card.module.d.ts +0 -0
  217. package/{modules → lib/modules}/definition-list/definition-list-content.component.d.ts +0 -0
  218. package/{modules → lib/modules}/definition-list/definition-list-heading.component.d.ts +0 -0
  219. package/{modules → lib/modules}/definition-list/definition-list-label.component.d.ts +0 -0
  220. package/{modules → lib/modules}/definition-list/definition-list-value.component.d.ts +0 -0
  221. package/{modules → lib/modules}/definition-list/definition-list.component.d.ts +2 -2
  222. package/{modules → lib/modules}/definition-list/definition-list.module.d.ts +0 -0
  223. package/{modules → lib/modules}/definition-list/definition-list.service.d.ts +0 -0
  224. package/{modules → lib/modules}/description-list/description-list-adapter-service.d.ts +0 -0
  225. package/{modules → lib/modules}/description-list/description-list-content.component.d.ts +0 -0
  226. package/{modules → lib/modules}/description-list/description-list-description.component.d.ts +0 -0
  227. package/{modules → lib/modules}/description-list/description-list-term.component.d.ts +0 -0
  228. package/{modules → lib/modules}/description-list/description-list.component.d.ts +4 -3
  229. package/{modules → lib/modules}/description-list/description-list.module.d.ts +0 -0
  230. package/{modules → lib/modules}/description-list/description-list.service.d.ts +0 -0
  231. package/{modules → lib/modules}/description-list/types/description-list-mode-type.d.ts +0 -0
  232. package/{modules → lib/modules}/description-list/types/description-list-mode.d.ts +0 -0
  233. package/{modules → lib/modules}/fluid-grid/column.component.d.ts +0 -0
  234. package/{modules → lib/modules}/fluid-grid/fluid-grid-gutter-size.d.ts +0 -0
  235. package/{modules → lib/modules}/fluid-grid/fluid-grid.component.d.ts +2 -2
  236. package/{modules → lib/modules}/fluid-grid/fluid-grid.module.d.ts +0 -0
  237. package/{modules → lib/modules}/fluid-grid/row.component.d.ts +0 -0
  238. package/{modules → lib/modules}/fluid-grid/types/fluid-grid-gutter-size-type.d.ts +0 -0
  239. package/{modules → lib/modules}/format/format-item.d.ts +0 -0
  240. package/{modules → lib/modules}/format/format.component.d.ts +0 -0
  241. package/{modules → lib/modules}/format/format.module.d.ts +0 -0
  242. package/{modules → lib/modules}/inline-delete/inline-delete-adapter.service.d.ts +0 -0
  243. package/{modules → lib/modules}/inline-delete/inline-delete-type.d.ts +0 -0
  244. package/{modules → lib/modules}/inline-delete/inline-delete.component.d.ts +1 -1
  245. package/{modules → lib/modules}/inline-delete/inline-delete.module.d.ts +0 -0
  246. package/{modules → lib/modules}/page/page-theme-adapter.service.d.ts +0 -0
  247. package/{modules → lib/modules}/page/page.component.d.ts +0 -0
  248. package/{modules → lib/modules}/page/page.module.d.ts +0 -0
  249. package/{modules → lib/modules}/page-summary/page-summary-adapter.service.d.ts +0 -0
  250. package/{modules → lib/modules}/page-summary/page-summary-alert.component.d.ts +1 -1
  251. package/{modules → lib/modules}/page-summary/page-summary-content.component.d.ts +0 -0
  252. package/{modules → lib/modules}/page-summary/page-summary-image.component.d.ts +0 -0
  253. package/{modules → lib/modules}/page-summary/page-summary-key-info.component.d.ts +0 -0
  254. package/{modules → lib/modules}/page-summary/page-summary-status.component.d.ts +0 -0
  255. package/{modules → lib/modules}/page-summary/page-summary-subtitle.component.d.ts +0 -0
  256. package/{modules → lib/modules}/page-summary/page-summary-title.component.d.ts +0 -0
  257. package/{modules → lib/modules}/page-summary/page-summary.component.d.ts +0 -0
  258. package/{modules → lib/modules}/page-summary/page-summary.module.d.ts +0 -0
  259. package/{modules → lib/modules}/shared/sky-layout-resources.module.d.ts +0 -0
  260. package/{modules → lib/modules}/text-expand/text-expand-adapter.service.d.ts +0 -0
  261. package/{modules → lib/modules}/text-expand/text-expand-modal-context.d.ts +0 -0
  262. package/{modules → lib/modules}/text-expand/text-expand-modal.component.d.ts +0 -0
  263. package/{modules → lib/modules}/text-expand/text-expand.component.d.ts +1 -1
  264. package/{modules → lib/modules}/text-expand/text-expand.module.d.ts +0 -0
  265. package/{modules → lib/modules}/text-expand-repeater/text-expand-repeater-adapter.service.d.ts +0 -0
  266. package/{modules → lib/modules}/text-expand-repeater/text-expand-repeater.component.d.ts +1 -1
  267. package/{modules → lib/modules}/text-expand-repeater/text-expand-repeater.module.d.ts +0 -0
  268. package/{modules → lib/modules}/text-expand-repeater/types/text-expand-repeater-list-style-type.d.ts +0 -0
  269. package/{modules → lib/modules}/toolbar/toolbar-item.component.d.ts +0 -0
  270. package/{modules → lib/modules}/toolbar/toolbar-section.component.d.ts +0 -0
  271. package/{modules → lib/modules}/toolbar/toolbar-view-actions.component.d.ts +0 -0
  272. package/{modules → lib/modules}/toolbar/toolbar.component.d.ts +0 -0
  273. package/{modules → lib/modules}/toolbar/toolbar.module.d.ts +0 -0
  274. package/package.json +12 -12
  275. package/skyux-layout.d.ts +1 -1
  276. package/LICENSE +0 -21
  277. package/bundles/skyux-layout-testing.umd.js.map +0 -1
  278. package/bundles/skyux-layout.umd.js.map +0 -1
  279. package/esm2015/modules/action-button/action-button-adapter-service.js +0 -43
  280. package/esm2015/modules/action-button/action-button-container.component.js +0 -142
  281. package/esm2015/modules/action-button/action-button-details.component.js +0 -17
  282. package/esm2015/modules/action-button/action-button-icon.component.js +0 -44
  283. package/esm2015/modules/action-button/action-button-permalink.js +0 -2
  284. package/esm2015/modules/action-button/action-button.module.js +0 -62
  285. package/esm2015/modules/action-button/types/action-button-container-align-items-type.js +0 -2
  286. package/esm2015/modules/action-button/types/action-button-container-align-items.js +0 -2
  287. package/esm2015/modules/back-to-top/back-to-top-adapter.service.js +0 -88
  288. package/esm2015/modules/back-to-top/back-to-top.component.js +0 -31
  289. package/esm2015/modules/back-to-top/back-to-top.directive.js +0 -114
  290. package/esm2015/modules/back-to-top/back-top-top.module.js +0 -36
  291. package/esm2015/modules/back-to-top/models/back-to-top-message-type.js +0 -11
  292. package/esm2015/modules/back-to-top/models/back-to-top-message.js +0 -2
  293. package/esm2015/modules/back-to-top/models/back-to-top-options.js +0 -2
  294. package/esm2015/modules/box/box-content.component.js +0 -18
  295. package/esm2015/modules/box/box-controls.component.js +0 -17
  296. package/esm2015/modules/box/box-header.component.js +0 -17
  297. package/esm2015/modules/box/box.component.js +0 -26
  298. package/esm2015/modules/box/box.module.js +0 -38
  299. package/esm2015/modules/card/card-actions.component.js +0 -18
  300. package/esm2015/modules/card/card-content.component.js +0 -17
  301. package/esm2015/modules/card/card-title.component.js +0 -17
  302. package/esm2015/modules/card/card.component.js +0 -79
  303. package/esm2015/modules/card/card.module.js +0 -61
  304. package/esm2015/modules/definition-list/definition-list-content.component.js +0 -19
  305. package/esm2015/modules/definition-list/definition-list-heading.component.js +0 -19
  306. package/esm2015/modules/definition-list/definition-list-label.component.js +0 -24
  307. package/esm2015/modules/definition-list/definition-list-value.component.js +0 -24
  308. package/esm2015/modules/definition-list/definition-list.component.js +0 -44
  309. package/esm2015/modules/definition-list/definition-list.module.js +0 -44
  310. package/esm2015/modules/definition-list/definition-list.service.js +0 -18
  311. package/esm2015/modules/description-list/description-list-adapter-service.js +0 -43
  312. package/esm2015/modules/description-list/description-list-content.component.js +0 -25
  313. package/esm2015/modules/description-list/description-list-description.component.js +0 -51
  314. package/esm2015/modules/description-list/description-list-term.component.js +0 -24
  315. package/esm2015/modules/description-list/description-list.component.js +0 -105
  316. package/esm2015/modules/description-list/description-list.module.js +0 -53
  317. package/esm2015/modules/description-list/description-list.service.js +0 -26
  318. package/esm2015/modules/description-list/types/description-list-mode-type.js +0 -2
  319. package/esm2015/modules/description-list/types/description-list-mode.js +0 -24
  320. package/esm2015/modules/fluid-grid/column.component.js +0 -55
  321. package/esm2015/modules/fluid-grid/fluid-grid-gutter-size.js +0 -20
  322. package/esm2015/modules/fluid-grid/fluid-grid.component.js +0 -66
  323. package/esm2015/modules/fluid-grid/fluid-grid.module.js +0 -20
  324. package/esm2015/modules/fluid-grid/types/fluid-grid-gutter-size-type.js +0 -2
  325. package/esm2015/modules/format/format-item.js +0 -2
  326. package/esm2015/modules/format/format.component.js +0 -63
  327. package/esm2015/modules/format/format.module.js +0 -18
  328. package/esm2015/modules/inline-delete/inline-delete-adapter.service.js +0 -114
  329. package/esm2015/modules/inline-delete/inline-delete-type.js +0 -16
  330. package/esm2015/modules/inline-delete/inline-delete.component.js +0 -167
  331. package/esm2015/modules/inline-delete/inline-delete.module.js +0 -34
  332. package/esm2015/modules/page/page-theme-adapter.service.js +0 -26
  333. package/esm2015/modules/page/page.component.js +0 -31
  334. package/esm2015/modules/page/page.module.js +0 -16
  335. package/esm2015/modules/page-summary/page-summary-adapter.service.js +0 -23
  336. package/esm2015/modules/page-summary/page-summary-alert.component.js +0 -21
  337. package/esm2015/modules/page-summary/page-summary-content.component.js +0 -20
  338. package/esm2015/modules/page-summary/page-summary-status.component.js +0 -21
  339. package/esm2015/modules/page-summary/page-summary-subtitle.component.js +0 -20
  340. package/esm2015/modules/page-summary/page-summary-title.component.js +0 -20
  341. package/esm2015/modules/page-summary/page-summary.module.js +0 -57
  342. package/esm2015/modules/shared/sky-layout-resources.module.js +0 -60
  343. package/esm2015/modules/text-expand/text-expand-adapter.service.js +0 -31
  344. package/esm2015/modules/text-expand/text-expand-modal-context.js +0 -6
  345. package/esm2015/modules/text-expand/text-expand-modal.component.js +0 -28
  346. package/esm2015/modules/text-expand/text-expand.component.js +0 -250
  347. package/esm2015/modules/text-expand/text-expand.module.js +0 -36
  348. package/esm2015/modules/text-expand-repeater/text-expand-repeater-adapter.service.js +0 -37
  349. package/esm2015/modules/text-expand-repeater/text-expand-repeater.component.js +0 -175
  350. package/esm2015/modules/text-expand-repeater/text-expand-repeater.module.js +0 -20
  351. package/esm2015/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.js +0 -2
  352. package/esm2015/modules/toolbar/toolbar-section.component.js +0 -18
  353. package/esm2015/modules/toolbar/toolbar.module.js +0 -37
  354. package/esm2015/public-api.js +0 -74
  355. package/public-api.d.ts +0 -71
@@ -1,250 +0,0 @@
1
- import { Component, ElementRef, Input, ViewChild, } from '@angular/core';
2
- import { forkJoin as observableForkJoin } from 'rxjs';
3
- import { take } from 'rxjs/operators';
4
- import { SkyTextExpandAdapterService } from './text-expand-adapter.service';
5
- import { SkyTextExpandModalComponent } from './text-expand-modal.component';
6
- import { SkyTextExpandModalContext } from './text-expand-modal-context';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@skyux/i18n";
9
- import * as i2 from "@skyux/modals";
10
- import * as i3 from "./text-expand-adapter.service";
11
- import * as i4 from "@angular/common";
12
- /**
13
- * Auto-incrementing integer used to generate unique ids for text expand components.
14
- */
15
- let nextId = 0;
16
- export class SkyTextExpandComponent {
17
- constructor(resources, modalService, textExpandAdapter) {
18
- this.resources = resources;
19
- this.modalService = modalService;
20
- this.textExpandAdapter = textExpandAdapter;
21
- /**
22
- * Specifies the maximum number of text characters to display inline when users select the link
23
- * to expand the full text. If the text exceeds this limit, then the component expands
24
- * the full text in a modal instead.
25
- */
26
- this.maxExpandedLength = 600;
27
- /**
28
- * Specifies the maximum number of newline characters to display inline when users select
29
- * the link to expand the full text. If the text exceeds this limit, then
30
- * the component expands the full text in a modal view instead.
31
- */
32
- this.maxExpandedNewlines = 2;
33
- /**
34
- * Indicates whether to replace newline characters in truncated text with spaces.
35
- */
36
- this.truncateNewlines = true;
37
- this.contentSectionId = `sky-text-expand-content-${++nextId}`;
38
- this.isExpanded = false;
39
- this._maxLength = 200;
40
- }
41
- /**
42
- * Specifies the number of text characters to display before truncating the text.
43
- * To avoid truncating text in the middle of a word, the component looks for a space
44
- * in the 10 characters before the last character.
45
- * @default 200
46
- */
47
- set maxLength(value) {
48
- this._maxLength = value;
49
- /* istanbul ignore else */
50
- if (this.textEl) {
51
- this.setup(this.expandedText);
52
- }
53
- }
54
- get maxLength() {
55
- return this._maxLength;
56
- }
57
- /**
58
- * Specifies the text to truncate.
59
- */
60
- set text(value) {
61
- /* istanbul ignore else */
62
- if (this.textEl) {
63
- this.setup(value);
64
- }
65
- }
66
- textExpand() {
67
- if (this.isModal) {
68
- // Modal View
69
- /* istanbul ignore else */
70
- /* sanity check */
71
- if (!this.isExpanded) {
72
- this.modalService.open(SkyTextExpandModalComponent, [
73
- {
74
- provide: SkyTextExpandModalContext,
75
- useValue: {
76
- header: this.expandModalTitle,
77
- text: this.expandedText,
78
- },
79
- },
80
- ]);
81
- }
82
- }
83
- else {
84
- // Normal View
85
- if (!this.isExpanded) {
86
- this.setContainerMaxHeight();
87
- setTimeout(() => {
88
- this.isExpanded = true;
89
- this.animateText(this.collapsedText, this.expandedText, true);
90
- }, 10);
91
- }
92
- else {
93
- this.setContainerMaxHeight();
94
- setTimeout(() => {
95
- this.isExpanded = false;
96
- this.animateText(this.expandedText, this.collapsedText, false);
97
- }, 10);
98
- }
99
- }
100
- }
101
- animationEnd() {
102
- // Ensure the correct text is displayed
103
- this.textExpandAdapter.setText(this.textEl, this.textToShow);
104
- // Set height back to auto so the browser can change the height as needed with window changes
105
- this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);
106
- }
107
- ngAfterContentInit() {
108
- observableForkJoin([
109
- this.resources.getString('skyux_text_expand_see_more'),
110
- this.resources.getString('skyux_text_expand_see_less'),
111
- ])
112
- .pipe(take(1))
113
- .subscribe((resources) => {
114
- this.seeMoreText = resources[0];
115
- this.seeLessText = resources[1];
116
- this.setup(this.expandedText);
117
- /* istanbul ignore else */
118
- if (!this.expandModalTitle) {
119
- this.resources
120
- .getString('skyux_text_expand_modal_title')
121
- .pipe(take(1))
122
- .subscribe((resource) => {
123
- this.expandModalTitle = resource;
124
- });
125
- }
126
- });
127
- }
128
- setContainerMaxHeight() {
129
- // ensure everything is reset
130
- this.animationEnd();
131
- /* Before animation is kicked off, ensure that a maxHeight exists */
132
- /* Once we have support for angular v4 animations with parameters we can use that instead */
133
- let currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);
134
- this.textExpandAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
135
- }
136
- setup(value) {
137
- if (value) {
138
- this.newlineCount = this.getNewlineCount(value);
139
- this.collapsedText = this.getTruncatedText(value, this.maxLength);
140
- this.expandedText = value;
141
- if (this.collapsedText !== value) {
142
- this.buttonText = this.seeMoreText;
143
- this.isExpanded = false;
144
- this.expandable = true;
145
- this.isModal =
146
- this.newlineCount > this.maxExpandedNewlines ||
147
- this.expandedText.length > this.maxExpandedLength;
148
- }
149
- else {
150
- this.expandable = false;
151
- }
152
- this.textToShow = this.collapsedText;
153
- }
154
- else {
155
- this.textToShow = '';
156
- this.expandable = false;
157
- }
158
- this.textExpandAdapter.setText(this.textEl, this.textToShow);
159
- }
160
- getNewlineCount(value) {
161
- let matches = value.match(/\n/gi);
162
- if (matches) {
163
- return matches.length;
164
- }
165
- return 0;
166
- }
167
- getTruncatedText(value, length) {
168
- let i;
169
- if (this.truncateNewlines) {
170
- value = value.replace(/\n+/gi, ' ');
171
- }
172
- // Jump ahead one character and see if it's a space, and if it isn't,
173
- // back up to the first space and break there so a word doesn't get cut
174
- // in half.
175
- if (length < value.length) {
176
- for (i = length; i > length - 10; i--) {
177
- if (/\s/.test(value.charAt(i))) {
178
- length = i;
179
- break;
180
- }
181
- }
182
- }
183
- return value.substr(0, length);
184
- }
185
- animateText(previousText, newText, expanding) {
186
- let adapter = this.textExpandAdapter;
187
- let container = this.containerEl;
188
- // Reset max height
189
- adapter.setContainerHeight(container, undefined);
190
- // Measure the current height so we can animate from it.
191
- let currentHeight = adapter.getContainerHeight(container);
192
- this.textToShow = newText;
193
- adapter.setText(this.textEl, this.textToShow);
194
- this.buttonText = expanding ? this.seeLessText : this.seeMoreText;
195
- // Measure the new height so we can animate to it.
196
- let newHeight = adapter.getContainerHeight(container);
197
- /* istanbul ignore if */
198
- if (newHeight < currentHeight) {
199
- // The new text is smaller than the old text, so put the old text back before doing
200
- // the collapse animation to avoid showing a big chunk of whitespace.
201
- adapter.setText(this.textEl, previousText);
202
- }
203
- adapter.setContainerHeight(container, `${currentHeight}px`);
204
- // This timeout is necessary due to the browser needing to pick up the non-auto height being set
205
- // in order to do the transtion in height correctly. Without it the transition does not fire.
206
- setTimeout(() => {
207
- adapter.setContainerHeight(container, `${newHeight}px`);
208
- /* This resets values if the transition does not get kicked off */
209
- setTimeout(() => {
210
- this.animationEnd();
211
- }, 500);
212
- }, 10);
213
- }
214
- }
215
- SkyTextExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandComponent, deps: [{ token: i1.SkyLibResourcesService }, { token: i2.SkyModalService }, { token: i3.SkyTextExpandAdapterService }], target: i0.ɵɵFactoryTarget.Component });
216
- SkyTextExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandComponent, decorators: [{
218
- type: Component,
219
- args: [{
220
- selector: 'sky-text-expand',
221
- templateUrl: './text-expand.component.html',
222
- styleUrls: ['./text-expand.component.scss'],
223
- providers: [SkyTextExpandAdapterService],
224
- }]
225
- }], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }, { type: i2.SkyModalService }, { type: i3.SkyTextExpandAdapterService }]; }, propDecorators: { expandModalTitle: [{
226
- type: Input
227
- }], maxExpandedLength: [{
228
- type: Input
229
- }], maxExpandedNewlines: [{
230
- type: Input
231
- }], maxLength: [{
232
- type: Input
233
- }], text: [{
234
- type: Input
235
- }], truncateNewlines: [{
236
- type: Input
237
- }], containerEl: [{
238
- type: ViewChild,
239
- args: ['container', {
240
- read: ElementRef,
241
- static: true,
242
- }]
243
- }], textEl: [{
244
- type: ViewChild,
245
- args: ['text', {
246
- read: ElementRef,
247
- static: true,
248
- }]
249
- }] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGF5b3V0L3NyYy9tb2R1bGVzL3RleHQtZXhwYW5kL3RleHQtZXhwYW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xheW91dC9zcmMvbW9kdWxlcy90ZXh0LWV4cGFuZC90ZXh0LWV4cGFuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxRQUFRLElBQUksa0JBQWtCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7QUFFeEU7O0dBRUc7QUFDSCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFRZixNQUFNLE9BQU8sc0JBQXNCO0lBaUdqQyxZQUNVLFNBQWlDLEVBQ2pDLFlBQTZCLEVBQzdCLGlCQUE4QztRQUY5QyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtRQTVGeEQ7Ozs7V0FJRztRQUVJLHNCQUFpQixHQUFXLEdBQUcsQ0FBQztRQUV2Qzs7OztXQUlHO1FBRUksd0JBQW1CLEdBQVcsQ0FBQyxDQUFDO1FBaUN2Qzs7V0FFRztRQUVJLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUlqQyxxQkFBZ0Is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QUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU2t5TW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IGZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3RleHQtZXhwYW5kLWFkYXB0ZXIuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreVRleHRFeHBhbmRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1leHBhbmQtbW9kYWwuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZE1vZGFsQ29udGV4dCB9IGZyb20gJy4vdGV4dC1leHBhbmQtbW9kYWwtY29udGV4dCc7XG5cbi8qKlxuICogQXV0by1pbmNyZW1lbnRpbmcgaW50ZWdlciB1c2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBpZHMgZm9yIHRleHQgZXhwYW5kIGNvbXBvbmVudHMuXG4gKi9cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1leHBhbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1leHBhbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWV4cGFuZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lUZXh0RXhwYW5kQWRhcHRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB0aXRsZSB0byBkaXNwbGF5IHdoZW4gdGhlIGNvbXBvbmVudCBleHBhbmRzIHRoZSBmdWxsIHRleHQgaW4gYSBtb2RhbC5cbiAgICogQGRlZmF1bHQgJ0V4cGFuZGVkIHZpZXcnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZXhwYW5kTW9kYWxUaXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRleHQgY2hhcmFjdGVycyB0byBkaXNwbGF5IGlubGluZSB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgbGlua1xuICAgKiB0byBleHBhbmQgdGhlIGZ1bGwgdGV4dC4gSWYgdGhlIHRleHQgZXhjZWVkcyB0aGlzIGxpbWl0LCB0aGVuIHRoZSBjb21wb25lbnQgZXhwYW5kc1xuICAgKiB0aGUgZnVsbCB0ZXh0IGluIGEgbW9kYWwgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhFeHBhbmRlZExlbmd0aDogbnVtYmVyID0gNjAwO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5ld2xpbmUgY2hhcmFjdGVycyB0byBkaXNwbGF5IGlubGluZSB3aGVuIHVzZXJzIHNlbGVjdFxuICAgKiB0aGUgbGluayB0byBleHBhbmQgdGhlIGZ1bGwgdGV4dC4gSWYgdGhlIHRleHQgZXhjZWVkcyB0aGlzIGxpbWl0LCB0aGVuXG4gICAqIHRoZSBjb21wb25lbnQgZXhwYW5kcyB0aGUgZnVsbCB0ZXh0IGluIGEgbW9kYWwgdmlldyBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1heEV4cGFuZGVkTmV3bGluZXM6IG51bWJlciA9IDI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHRleHQgY2hhcmFjdGVycyB0byBkaXNwbGF5IGJlZm9yZSB0cnVuY2F0aW5nIHRoZSB0ZXh0LlxuICAgKiBUbyBhdm9pZCB0cnVuY2F0aW5nIHRleHQgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQsIHRoZSBjb21wb25lbnQgbG9va3MgZm9yIGEgc3BhY2VcbiAgICogaW4gdGhlIDEwIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBsYXN0IGNoYXJhY3Rlci5cbiAgICogQGRlZmF1bHQgMjAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1heExlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4TGVuZ3RoID0gdmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnRleHRFbCkge1xuICAgICAgdGhpcy5zZXR1cCh0aGlzLmV4cGFuZGVkVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBtYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4TGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGV4dCB0byB0cnVuY2F0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy50ZXh0RWwpIHtcbiAgICAgIHRoaXMuc2V0dXAodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byByZXBsYWNlIG5ld2xpbmUgY2hhcmFjdGVycyBpbiB0cnVuY2F0ZWQgdGV4dCB3aXRoIHNwYWNlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cnVuY2F0ZU5ld2xpbmVzOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgYnV0dG9uVGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb250ZW50U2VjdGlvbklkOiBzdHJpbmcgPSBgc2t5LXRleHQtZXhwYW5kLWNvbnRlbnQtJHsrK25leHRJZH1gO1xuXG4gIHB1YmxpYyBleHBhbmRhYmxlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBpc0V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGlzTW9kYWw6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIGNvbnRhaW5lckVsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHQnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgdGV4dEVsOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgY29sbGFwc2VkVGV4dDogc3RyaW5nO1xuXG4gIHByaXZhdGUgZXhwYW5kZWRUZXh0OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBuZXdsaW5lQ291bnQ6IG51bWJlcjtcblxuICBwcml2YXRlIHNlZU1vcmVUZXh0OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZWVMZXNzVGV4dDogc3RyaW5nO1xuXG4gIHByaXZhdGUgdGV4dFRvU2hvdzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX21heExlbmd0aDogbnVtYmVyID0gMjAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBTa3lNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZXh0RXhwYW5kQWRhcHRlcjogU2t5VGV4dEV4cGFuZEFkYXB0ZXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgdGV4dEV4cGFuZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc01vZGFsKSB7XG4gICAgICAvLyBNb2RhbCBWaWV3XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFNreVRleHRFeHBhbmRNb2RhbENvbXBvbmVudCwgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNreVRleHRFeHBhbmRNb2RhbENvbnRleHQsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMuZXhwYW5kTW9kYWxUaXRsZSxcbiAgICAgICAgICAgICAgdGV4dDogdGhpcy5leHBhbmRlZFRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOb3JtYWwgVmlld1xuICAgICAgaWYgKCF0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJNYXhIZWlnaHQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmFuaW1hdGVUZXh0KHRoaXMuY29sbGFwc2VkVGV4dCwgdGhpcy5leHBhbmRlZFRleHQsIHRydWUpO1xuICAgICAgICB9LCAxMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldENvbnRhaW5lck1heEhlaWdodCgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmFuaW1hdGVUZXh0KHRoaXMuZXhwYW5kZWRUZXh0LCB0aGlzLmNvbGxhcHNlZFRleHQsIGZhbHNlKTtcbiAgICAgICAgfSwgMTApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhbmltYXRpb25FbmQoKTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIHRoZSBjb3JyZWN0IHRleHQgaXMgZGlzcGxheWVkXG4gICAgdGhpcy50ZXh0RXhwYW5kQWRhcHRlci5zZXRUZXh0KHRoaXMudGV4dEVsLCB0aGlzLnRleHRUb1Nob3cpO1xuICAgIC8vIFNldCBoZWlnaHQgYmFjayB0byBhdXRvIHNvIHRoZSBicm93c2VyIGNhbiBjaGFuZ2UgdGhlIGhlaWdodCBhcyBuZWVkZWQgd2l0aCB3aW5kb3cgY2hhbmdlc1xuICAgIHRoaXMudGV4dEV4cGFuZEFkYXB0ZXIuc2V0Q29udGFpbmVySGVpZ2h0KHRoaXMuY29udGFpbmVyRWwsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIG9ic2VydmFibGVGb3JrSm9pbihbXG4gICAgICB0aGlzLnJlc291cmNlcy5nZXRTdHJpbmcoJ3NreXV4X3RleHRfZXhwYW5kX3NlZV9tb3JlJyksXG4gICAgICB0aGlzLnJlc291cmNlcy5nZXRTdHJpbmcoJ3NreXV4X3RleHRfZXhwYW5kX3NlZV9sZXNzJyksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXNvdXJjZXMpID0+IHtcbiAgICAgICAgdGhpcy5zZWVNb3JlVGV4dCA9IHJlc291cmNlc1swXTtcbiAgICAgICAgdGhpcy5zZWVMZXNzVGV4dCA9IHJlc291cmNlc1sxXTtcbiAgICAgICAgdGhpcy5zZXR1cCh0aGlzLmV4cGFuZGVkVGV4dCk7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKCF0aGlzLmV4cGFuZE1vZGFsVGl0bGUpIHtcbiAgICAgICAgICB0aGlzLnJlc291cmNlc1xuICAgICAgICAgICAgLmdldFN0cmluZygnc2t5dXhfdGV4dF9leHBhbmRfbW9kYWxfdGl0bGUnKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXhwYW5kTW9kYWxUaXRsZSA9IHJlc291cmNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250YWluZXJNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgLy8gZW5zdXJlIGV2ZXJ5dGhpbmcgaXMgcmVzZXRcbiAgICB0aGlzLmFuaW1hdGlvbkVuZCgpO1xuICAgIC8qIEJlZm9yZSBhbmltYXRpb24gaXMga2lja2VkIG9mZiwgZW5zdXJlIHRoYXQgYSBtYXhIZWlnaHQgZXhpc3RzICovXG4gICAgLyogT25jZSB3ZSBoYXZlIHN1cHBvcnQgZm9yIGFuZ3VsYXIgdjQgYW5pbWF0aW9ucyB3aXRoIHBhcmFtZXRlcnMgd2UgY2FuIHVzZSB0aGF0IGluc3RlYWQgKi9cbiAgICBsZXQgY3VycmVudEhlaWdodCA9IHRoaXMudGV4dEV4cGFuZEFkYXB0ZXIuZ2V0Q29udGFpbmVySGVpZ2h0KFxuICAgICAgdGhpcy5jb250YWluZXJFbFxuICAgICk7XG4gICAgdGhpcy50ZXh0RXhwYW5kQWRhcHRlci5zZXRDb250YWluZXJIZWlnaHQoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLFxuICAgICAgYCR7Y3VycmVudEhlaWdodH1weGBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm5ld2xpbmVDb3VudCA9IHRoaXMuZ2V0TmV3bGluZUNvdW50KHZhbHVlKTtcbiAgICAgIHRoaXMuY29sbGFwc2VkVGV4dCA9IHRoaXMuZ2V0VHJ1bmNhdGVkVGV4dCh2YWx1ZSwgdGhpcy5tYXhMZW5ndGgpO1xuICAgICAgdGhpcy5leHBhbmRlZFRleHQgPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLmNvbGxhcHNlZFRleHQgIT09IHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuc2VlTW9yZVRleHQ7XG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmV4cGFuZGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzTW9kYWwgPVxuICAgICAgICAgIHRoaXMubmV3bGluZUNvdW50ID4gdGhpcy5tYXhFeHBhbmRlZE5ld2xpbmVzIHx8XG4gICAgICAgICAgdGhpcy5leHBhbmRlZFRleHQubGVuZ3RoID4gdGhpcy5tYXhFeHBhbmRlZExlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZXhwYW5kYWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy50ZXh0VG9TaG93ID0gdGhpcy5jb2xsYXBzZWRUZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRleHRUb1Nob3cgPSAnJztcbiAgICAgIHRoaXMuZXhwYW5kYWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnRleHRFeHBhbmRBZGFwdGVyLnNldFRleHQodGhpcy50ZXh0RWwsIHRoaXMudGV4dFRvU2hvdyk7XG4gIH1cblxuICBwcml2YXRlIGdldE5ld2xpbmVDb3VudCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgbWF0Y2hlcyA9IHZhbHVlLm1hdGNoKC9cXG4vZ2kpO1xuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIHJldHVybiBtYXRjaGVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJ1bmNhdGVkVGV4dCh2YWx1ZTogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IGk6IG51bWJlcjtcbiAgICBpZiAodGhpcy50cnVuY2F0ZU5ld2xpbmVzKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcbisvZ2ksICcgJyk7XG4gICAgfVxuICAgIC8vIEp1bXAgYWhlYWQgb25lIGNoYXJhY3RlciBhbmQgc2VlIGlmIGl0J3MgYSBzcGFjZSwgYW5kIGlmIGl0IGlzbid0LFxuICAgIC8vIGJhY2sgdXAgdG8gdGhlIGZpcnN0IHNwYWNlIGFuZCBicmVhayB0aGVyZSBzbyBhIHdvcmQgZG9lc24ndCBnZXQgY3V0XG4gICAgLy8gaW4gaGFsZi5cbiAgICBpZiAobGVuZ3RoIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICBmb3IgKGkgPSBsZW5ndGg7IGkgPiBsZW5ndGggLSAxMDsgaS0tKSB7XG4gICAgICAgIGlmICgvXFxzLy50ZXN0KHZhbHVlLmNoYXJBdChpKSkpIHtcbiAgICAgICAgICBsZW5ndGggPSBpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5zdWJzdHIoMCwgbGVuZ3RoKTtcbiAgfVxuXG4gIHByaXZhdGUgYW5pbWF0ZVRleHQoXG4gICAgcHJldmlvdXNUZXh0OiBzdHJpbmcsXG4gICAgbmV3VGV4dDogc3RyaW5nLFxuICAgIGV4cGFuZGluZzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBsZXQgYWRhcHRlciA9IHRoaXMudGV4dEV4cGFuZEFkYXB0ZXI7XG4gICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyRWw7XG4gICAgLy8gUmVzZXQgbWF4IGhlaWdodFxuICAgIGFkYXB0ZXIuc2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lciwgdW5kZWZpbmVkKTtcbiAgICAvLyBNZWFzdXJlIHRoZSBjdXJyZW50IGhlaWdodCBzbyB3ZSBjYW4gYW5pbWF0ZSBmcm9tIGl0LlxuICAgIGxldCBjdXJyZW50SGVpZ2h0ID0gYWRhcHRlci5nZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyKTtcbiAgICB0aGlzLnRleHRUb1Nob3cgPSBuZXdUZXh0O1xuICAgIGFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgdGhpcy50ZXh0VG9TaG93KTtcbiAgICB0aGlzLmJ1dHRvblRleHQgPSBleHBhbmRpbmcgPyB0aGlzLnNlZUxlc3NUZXh0IDogdGhpcy5zZWVNb3JlVGV4dDtcbiAgICAvLyBNZWFzdXJlIHRoZSBuZXcgaGVpZ2h0IHNvIHdlIGNhbiBhbmltYXRlIHRvIGl0LlxuICAgIGxldCBuZXdIZWlnaHQgPSBhZGFwdGVyLmdldENvbnRhaW5lckhlaWdodChjb250YWluZXIpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChuZXdIZWlnaHQgPCBjdXJyZW50SGVpZ2h0KSB7XG4gICAgICAvLyBUaGUgbmV3IHRleHQgaXMgc21hbGxlciB0aGFuIHRoZSBvbGQgdGV4dCwgc28gcHV0IHRoZSBvbGQgdGV4dCBiYWNrIGJlZm9yZSBkb2luZ1xuICAgICAgLy8gdGhlIGNvbGxhcHNlIGFuaW1hdGlvbiB0byBhdm9pZCBzaG93aW5nIGEgYmlnIGNodW5rIG9mIHdoaXRlc3BhY2UuXG4gICAgICBhZGFwdGVyLnNldFRleHQodGhpcy50ZXh0RWwsIHByZXZpb3VzVGV4dCk7XG4gICAgfVxuXG4gICAgYWRhcHRlci5zZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyLCBgJHtjdXJyZW50SGVpZ2h0fXB4YCk7XG4gICAgLy8gVGhpcyB0aW1lb3V0IGlzIG5lY2Vzc2FyeSBkdWUgdG8gdGhlIGJyb3dzZXIgbmVlZGluZyB0byBwaWNrIHVwIHRoZSBub24tYXV0byBoZWlnaHQgYmVpbmcgc2V0XG4gICAgLy8gaW4gb3JkZXIgdG8gZG8gdGhlIHRyYW5zdGlvbiBpbiBoZWlnaHQgY29ycmVjdGx5LiBXaXRob3V0IGl0IHRoZSB0cmFuc2l0aW9uIGRvZXMgbm90IGZpcmUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBhZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChjb250YWluZXIsIGAke25ld0hlaWdodH1weGApO1xuICAgICAgLyogVGhpcyByZXNldHMgdmFsdWVzIGlmIHRoZSB0cmFuc2l0aW9uIGRvZXMgbm90IGdldCBraWNrZWQgb2ZmICovXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25FbmQoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSwgMTApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLWNvbnRhaW5lclwiXG4gICh0cmFuc2l0aW9uZW5kKT1cImFuaW1hdGlvbkVuZCgpXCJcbiAgI2NvbnRhaW5lclxuPlxuICA8c3BhbiBjbGFzcz1cInNreS10ZXh0LWV4cGFuZC10ZXh0XCIgW2lkXT1cImNvbnRlbnRTZWN0aW9uSWRcIiAjdGV4dD48L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLWVsbGlwc2lzXCIgKm5nSWY9XCIhaXNFeHBhbmRlZCAmJiBleHBhbmRhYmxlXCJcbiAgICA+Li4uXG4gIDwvc3Bhbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiZXhwYW5kYWJsZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluay1pbmxpbmUgc2t5LXRleHQtZXhwYW5kLXNlZS1tb3JlXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzTW9kYWwgPyB1bmRlZmluZWQgOiBpc0V4cGFuZGVkXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlzTW9kYWwgPyB1bmRlZmluZWQgOiBjb250ZW50U2VjdGlvbklkXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImlzTW9kYWwgPyAnZGlhbG9nJyA6IHVuZGVmaW5lZFwiXG4gICAgKGNsaWNrKT1cInRleHRFeHBhbmQoKVwiXG4gID5cbiAgICB7eyBidXR0b25UZXh0IH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -1,36 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SkyI18nModule } from '@skyux/i18n';
4
- import { SkyModalModule } from '@skyux/modals';
5
- import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
6
- import { SkyTextExpandComponent } from './text-expand.component';
7
- import { SkyTextExpandModalComponent } from './text-expand-modal.component';
8
- import * as i0 from "@angular/core";
9
- export class SkyTextExpandModule {
10
- }
11
- SkyTextExpandModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- SkyTextExpandModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandModule, declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent], imports: [SkyI18nModule,
13
- SkyLayoutResourcesModule,
14
- SkyModalModule,
15
- CommonModule], exports: [SkyTextExpandComponent] });
16
- SkyTextExpandModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandModule, imports: [[
17
- SkyI18nModule,
18
- SkyLayoutResourcesModule,
19
- SkyModalModule,
20
- CommonModule,
21
- ]] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandModule, decorators: [{
23
- type: NgModule,
24
- args: [{
25
- declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent],
26
- imports: [
27
- SkyI18nModule,
28
- SkyLayoutResourcesModule,
29
- SkyModalModule,
30
- CommonModule,
31
- ],
32
- exports: [SkyTextExpandComponent],
33
- entryComponents: [SkyTextExpandModalComponent],
34
- }]
35
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGF5b3V0L3NyYy9tb2R1bGVzL3RleHQtZXhwYW5kL3RleHQtZXhwYW5kLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBYTVFLE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixpQkFWZixzQkFBc0IsRUFBRSwyQkFBMkIsYUFFaEUsYUFBYTtRQUNiLHdCQUF3QjtRQUN4QixjQUFjO1FBQ2QsWUFBWSxhQUVKLHNCQUFzQjtrSEFHckIsbUJBQW1CLFlBVHJCO1lBQ1AsYUFBYTtZQUNiLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsWUFBWTtTQUNiOzRGQUlVLG1CQUFtQjtrQkFYL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSwyQkFBMkIsQ0FBQztvQkFDbkUsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTa3lNb2RhbE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBTa3lMYXlvdXRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxheW91dC1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1leHBhbmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRleHRFeHBhbmRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1leHBhbmQtbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5VGV4dEV4cGFuZENvbXBvbmVudCwgU2t5VGV4dEV4cGFuZE1vZGFsQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIFNreUkxOG5Nb2R1bGUsXG4gICAgU2t5TGF5b3V0UmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1NreVRleHRFeHBhbmRDb21wb25lbnRdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtTa3lUZXh0RXhwYW5kTW9kYWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kTW9kdWxlIHt9XG4iXX0=
@@ -1,37 +0,0 @@
1
- import { Injectable, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * @internal
5
- */
6
- export class SkyTextExpandRepeaterAdapterService {
7
- constructor(rendererFactory) {
8
- this.rendererFactory = rendererFactory;
9
- this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
10
- }
11
- getItems(elRef) {
12
- return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');
13
- }
14
- hideItem(item) {
15
- this.renderer.setStyle(item, 'display', 'none');
16
- }
17
- showItem(item) {
18
- this.renderer.setStyle(item, 'display', 'list-item');
19
- }
20
- getContainerHeight(containerEl) {
21
- return containerEl.nativeElement.offsetHeight;
22
- }
23
- setContainerHeight(containerEl, height) {
24
- if (height === undefined) {
25
- this.renderer.removeStyle(containerEl.nativeElement, 'max-height');
26
- }
27
- else {
28
- this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);
29
- }
30
- }
31
- }
32
- SkyTextExpandRepeaterAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
33
- SkyTextExpandRepeaterAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterAdapterService });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, decorators: [{
35
- type: Injectable
36
- }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGF5b3V0L3NyYy9tb2R1bGVzL3RleHQtZXhwYW5kLXJlcGVhdGVyL3RleHQtZXhwYW5kLXJlcGVhdGVyLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxHQUdYLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxtQ0FBbUM7SUFHOUMsWUFBb0IsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBaUI7UUFDL0IsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN6QyxnQ0FBZ0MsQ0FDakMsQ0FBQztJQUNKLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBaUI7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQWlCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFdBQXVCO1FBQy9DLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDaEQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFdBQXVCLEVBQUUsTUFBYztRQUMvRCxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNwRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDOztpSUEvQlUsbUNBQW1DO3FJQUFuQyxtQ0FBbUM7NEZBQW5DLG1DQUFtQztrQkFEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbXMoZWxSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICByZXR1cm4gZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgJy5za3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItaXRlbSdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGhpZGVJdGVtKGl0ZW06IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpdGVtLCAnZGlzcGxheScsICdub25lJyk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0l0ZW0oaXRlbTogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGl0ZW0sICdkaXNwbGF5JywgJ2xpc3QtaXRlbScpO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRhaW5lckhlaWdodChjb250YWluZXJFbDogRWxlbWVudFJlZikge1xuICAgIHJldHVybiBjb250YWluZXJFbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyRWw6IEVsZW1lbnRSZWYsIGhlaWdodDogc3RyaW5nKSB7XG4gICAgaWYgKGhlaWdodCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQsICdtYXgtaGVpZ2h0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY29udGFpbmVyRWwubmF0aXZlRWxlbWVudCwgJ21heC1oZWlnaHQnLCBoZWlnaHQpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,175 +0,0 @@
1
- import { Component, ElementRef, Input, ViewChild, } from '@angular/core';
2
- import { forkJoin as observableForkJoin } from 'rxjs';
3
- import { take } from 'rxjs/operators';
4
- import { SkyTextExpandRepeaterAdapterService } from './text-expand-repeater-adapter.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@skyux/i18n";
7
- import * as i2 from "./text-expand-repeater-adapter.service";
8
- import * as i3 from "@angular/common";
9
- /**
10
- * Auto-incrementing integer used to generate unique ids for text expand repeater components.
11
- */
12
- let nextId = 0;
13
- export class SkyTextExpandRepeaterComponent {
14
- constructor(resources, elRef, textExpandRepeaterAdapter, changeDetector) {
15
- this.resources = resources;
16
- this.elRef = elRef;
17
- this.textExpandRepeaterAdapter = textExpandRepeaterAdapter;
18
- this.changeDetector = changeDetector;
19
- /**
20
- * Specifies the style of bullet to use
21
- * @default 'unordered'
22
- */
23
- this.listStyle = 'unordered';
24
- this.contentSectionId = `sky-text-expand-repeater-content-${++nextId}`;
25
- this.isExpanded = false;
26
- }
27
- ngAfterViewInit() {
28
- if (this.contentItems) {
29
- this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);
30
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
31
- this.textExpandRepeaterAdapter.hideItem(this.items[i]);
32
- }
33
- }
34
- observableForkJoin([
35
- this.resources.getString('skyux_text_expand_see_more'),
36
- this.resources.getString('skyux_text_expand_see_less'),
37
- ])
38
- .pipe(take(1))
39
- .subscribe((resources) => {
40
- this.seeMoreText = resources[0];
41
- this.seeLessText = resources[1];
42
- /* sanity check */
43
- /* istanbul ignore else */
44
- if (!this.isExpanded) {
45
- this.buttonText = this.seeMoreText;
46
- }
47
- else {
48
- this.buttonText = this.seeLessText;
49
- }
50
- this.changeDetector.detectChanges();
51
- });
52
- }
53
- ngOnChanges(changes) {
54
- /* istanbul ignore else */
55
- if (changes.maxItems || changes.data) {
56
- this.setup(this.data);
57
- }
58
- }
59
- animationEnd() {
60
- // Ensure the correct items are displayed
61
- if (!this.isExpanded) {
62
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
63
- this.textExpandRepeaterAdapter.hideItem(this.items[i]);
64
- }
65
- }
66
- // Set height back to auto so the browser can change the height as needed with window changes
67
- this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, undefined);
68
- }
69
- repeaterExpand() {
70
- if (!this.isExpanded) {
71
- this.setContainerMaxHeight();
72
- setTimeout(() => {
73
- this.isExpanded = true;
74
- this.animateRepeater(true);
75
- });
76
- }
77
- else {
78
- this.setContainerMaxHeight();
79
- setTimeout(() => {
80
- this.isExpanded = false;
81
- this.animateRepeater(false);
82
- });
83
- }
84
- }
85
- setContainerMaxHeight() {
86
- // ensure everything is reset
87
- this.animationEnd();
88
- /* Before animation is kicked off, ensure that a maxHeight exists */
89
- /* Once we have support for angular v4 animations with parameters we can use that instead */
90
- let currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);
91
- this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
92
- }
93
- animateRepeater(expanding) {
94
- let adapter = this.textExpandRepeaterAdapter;
95
- let container = this.containerEl;
96
- adapter.setContainerHeight(container, undefined);
97
- let currentHeight = adapter.getContainerHeight(container);
98
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
99
- if (!expanding) {
100
- adapter.hideItem(this.items[i]);
101
- }
102
- else {
103
- adapter.showItem(this.items[i]);
104
- }
105
- }
106
- let newHeight = adapter.getContainerHeight(container);
107
- if (!expanding) {
108
- this.buttonText = this.seeMoreText;
109
- }
110
- else {
111
- this.buttonText = this.seeLessText;
112
- }
113
- if (newHeight < currentHeight) {
114
- // The new text is smaller than the old text, so put the old text back before doing
115
- // the collapse animation to avoid showing a big chunk of whitespace.
116
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
117
- adapter.showItem(this.items[i]);
118
- }
119
- }
120
- adapter.setContainerHeight(container, `${currentHeight}px`);
121
- // This timeout is necessary due to the browser needing to pick up the non-auto height being set
122
- // in order to do the transtion in height correctly. Without it the transition does not fire.
123
- setTimeout(() => {
124
- adapter.setContainerHeight(container, `${newHeight}px`);
125
- /* This resets values if the transition does not get kicked off */
126
- setTimeout(() => {
127
- this.animationEnd();
128
- }, 500);
129
- }, 10);
130
- }
131
- setup(value) {
132
- if (value) {
133
- let length = value.length;
134
- if (length > this.maxItems) {
135
- this.expandable = true;
136
- this.buttonText = this.seeMoreText;
137
- this.isExpanded = false;
138
- }
139
- else {
140
- this.expandable = false;
141
- }
142
- this.contentItems = value;
143
- }
144
- else {
145
- this.contentItems = undefined;
146
- this.expandable = false;
147
- }
148
- }
149
- }
150
- SkyTextExpandRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterComponent, deps: [{ token: i1.SkyLibResourcesService }, { token: i0.ElementRef }, { token: i2.SkyTextExpandRepeaterAdapterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
151
- SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", 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"] }] });
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterComponent, decorators: [{
153
- type: Component,
154
- args: [{
155
- selector: 'sky-text-expand-repeater',
156
- templateUrl: './text-expand-repeater.component.html',
157
- styleUrls: ['./text-expand-repeater.component.scss'],
158
- providers: [SkyTextExpandRepeaterAdapterService],
159
- }]
160
- }], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }, { type: i0.ElementRef }, { type: i2.SkyTextExpandRepeaterAdapterService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
161
- type: Input
162
- }], itemTemplate: [{
163
- type: Input
164
- }], listStyle: [{
165
- type: Input
166
- }], maxItems: [{
167
- type: Input
168
- }], containerEl: [{
169
- type: ViewChild,
170
- args: ['container', {
171
- read: ElementRef,
172
- static: false,
173
- }]
174
- }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGF5b3V0L3NyYy9tb2R1bGVzL3RleHQtZXhwYW5kLXJlcGVhdGVyL3RleHQtZXhwYW5kLXJlcGVhdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xheW91dC9zcmMvbW9kdWxlcy90ZXh0LWV4cGFuZC1yZXBlYXRlci90ZXh0LWV4cGFuZC1yZXBlYXRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxRQUFRLElBQUksa0JBQWtCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQUU3Rjs7R0FFRztBQUNILElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVFmLE1BQU0sT0FBTyw4QkFBOEI7SUE4Q3pDLFlBQ1UsU0FBaUMsRUFDakMsS0FBaUIsRUFDakIseUJBQThELEVBQzlELGNBQWlDO1FBSGpDLGNBQVMsR0FBVCxTQUFTLENBQXdCO1FBQ2pDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUFxQztRQUM5RCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFuQzNDOzs7V0FHRztRQUVJLGNBQVMsR0FBdUMsV0FBVyxDQUFDO1FBVzVELHFCQUFnQixHQUFXLG9DQUFvQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRTFFLGVBQVUsR0FBWSxLQUFLLENBQUM7SUFrQmhDLENBQUM7SUFFRyxlQUFlO1FBQ3BCLElBQUks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LENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDSCxDQUFDOzs0SEF6TFUsOEJBQThCO2dIQUE5Qiw4QkFBOEIseUpBRjlCLENBQUMsbUNBQW1DLENBQUMsK0dBeUN4QyxVQUFVLGtEQ3hFcEIsMDlDQWtEQTs0RkRqQmEsOEJBQThCO2tCQU4xQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSx1Q0FBdUM7b0JBQ3BELFNBQVMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDO29CQUNwRCxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztpQkFDakQ7d05BUVEsSUFBSTtzQkFEVixLQUFLO2dCQU9DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBUUMsU0FBUztzQkFEZixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFpQkUsV0FBVztzQkFKbEIsU0FBUzt1QkFBQyxXQUFXLEVBQUU7d0JBQ3RCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBmb3JrSm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZFJlcGVhdGVyTGlzdFN0eWxlVHlwZSB9IGZyb20gJy4vdHlwZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXItbGlzdC1zdHlsZS10eXBlJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3RleHQtZXhwYW5kLXJlcGVhdGVyLWFkYXB0ZXIuc2VydmljZSc7XG5cbi8qKlxuICogQXV0by1pbmNyZW1lbnRpbmcgaW50ZWdlciB1c2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBpZHMgZm9yIHRleHQgZXhwYW5kIHJlcGVhdGVyIGNvbXBvbmVudHMuXG4gKi9cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWV4cGFuZC1yZXBlYXRlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFeHBhbmRSZXBlYXRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlc1xue1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBkYXRhIHRvIHRydW5jYXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE6IGFueVtdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB0ZW1wbGF0ZSBmb3IgaXRlbXMgaW4gdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHN0eWxlIG9mIGJ1bGxldCB0byB1c2VcbiAgICogQGRlZmF1bHQgJ3Vub3JkZXJlZCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsaXN0U3R5bGU6IFNreVRleHRFeHBhbmRSZXBlYXRlckxpc3RTdHlsZVR5cGUgPSAndW5vcmRlcmVkJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgaXRlbXMgdG8gZGlzcGxheSBiZWZvcmUgdHJ1bmNhdGluZyB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhJdGVtczogbnVtYmVyO1xuXG4gIHB1YmxpYyBidXR0b25UZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBjb250ZW50SXRlbXM6IEFycmF5PGFueT47XG4gIHB1YmxpYyBleHBhbmRhYmxlOiBib29sZWFuO1xuICBwdWJsaWMgY29udGVudFNlY3Rpb25JZDogc3RyaW5nID0gYHNreS10ZXh0LWV4cGFuZC1yZXBlYXRlci1jb250ZW50LSR7KytuZXh0SWR9YDtcblxuICBwdWJsaWMgaXNFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc2VlTW9yZVRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBzZWVMZXNzVGV4dDogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHByaXZhdGUgY29udGFpbmVyRWw6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBpdGVtczogQXJyYXk8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyOiBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZW50SXRlbXMpIHtcbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLnRleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIuZ2V0SXRlbXModGhpcy5lbFJlZik7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5tYXhJdGVtczsgaSA8IHRoaXMuY29udGVudEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMudGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5oaWRlSXRlbSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4oW1xuICAgICAgdGhpcy5yZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9zZWVfbW9yZScpLFxuICAgICAgdGhpcy5yZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9zZWVfbGVzcycpLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2VzKSA9PiB7XG4gICAgICAgIHRoaXMuc2VlTW9yZVRleHQgPSByZXNvdXJjZXNbMF07XG4gICAgICAgIHRoaXMuc2VlTGVzc1RleHQgPSByZXNvdXJjZXNbMV07XG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuc2VlTW9yZVRleHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5zZWVMZXNzVGV4dDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjaGFuZ2VzLm1heEl0ZW1zIHx8IGNoYW5nZXMuZGF0YSkge1xuICAgICAgdGhpcy5zZXR1cCh0aGlzLmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhbmltYXRpb25FbmQoKSB7XG4gICAgLy8gRW5zdXJlIHRoZSBjb3JyZWN0IGl0ZW1zIGFyZSBkaXNwbGF5ZWRcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMubWF4SXRlbXM7IGkgPCB0aGlzLmNvbnRlbnRJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLnRleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIuaGlkZUl0ZW0odGhpcy5pdGVtc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFNldCBoZWlnaHQgYmFjayB0byBhdXRvIHNvIHRoZSBicm93c2VyIGNhbiBjaGFuZ2UgdGhlIGhlaWdodCBhcyBuZWVkZWQgd2l0aCB3aW5kb3cgY2hhbmdlc1xuICAgIHRoaXMudGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5zZXRDb250YWluZXJIZWlnaHQoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZXBlYXRlckV4cGFuZCgpIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy5zZXRDb250YWluZXJNYXhIZWlnaHQoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmFuaW1hdGVSZXBlYXRlcih0cnVlKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldENvbnRhaW5lck1heEhlaWdodCgpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFuaW1hdGVSZXBlYXRlcihmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRhaW5lck1heEhlaWdodCgpIHtcbiAgICAvLyBlbnN1cmUgZXZlcnl0aGluZyBpcyByZXNldFxuICAgIHRoaXMuYW5pbWF0aW9uRW5kKCk7XG4gICAgLyogQmVmb3JlIGFuaW1hdGlvbiBpcyBraWNrZWQgb2ZmLCBlbnN1cmUgdGhhdCBhIG1heEhlaWdodCBleGlzdHMgKi9cbiAgICAvKiBPbmNlIHdlIGhhdmUgc3VwcG9ydCBmb3IgYW5ndWxhciB2NCBhbmltYXRpb25zIHdpdGggcGFyYW1ldGVycyB3ZSBjYW4gdXNlIHRoYXQgaW5zdGVhZCAqL1xuICAgIGxldCBjdXJyZW50SGVpZ2h0ID0gdGhpcy50ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyLmdldENvbnRhaW5lckhlaWdodChcbiAgICAgIHRoaXMuY29udGFpbmVyRWxcbiAgICApO1xuICAgIHRoaXMudGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5zZXRDb250YWluZXJIZWlnaHQoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLFxuICAgICAgYCR7Y3VycmVudEhlaWdodH1weGBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhbmltYXRlUmVwZWF0ZXIoZXhwYW5kaW5nOiBib29sZWFuKSB7XG4gICAgbGV0IGFkYXB0ZXIgPSB0aGlzLnRleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXI7XG4gICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyRWw7XG5cbiAgICBhZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChjb250YWluZXIsIHVuZGVmaW5lZCk7XG4gICAgbGV0IGN1cnJlbnRIZWlnaHQgPSBhZGFwdGVyLmdldENvbnRhaW5lckhlaWdodChjb250YWluZXIpO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLm1heEl0ZW1zOyBpIDwgdGhpcy5jb250ZW50SXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghZXhwYW5kaW5nKSB7XG4gICAgICAgIGFkYXB0ZXIuaGlkZUl0ZW0odGhpcy5pdGVtc1tpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGFwdGVyLnNob3dJdGVtKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgbmV3SGVpZ2h0ID0gYWRhcHRlci5nZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyKTtcbiAgICBpZiAoIWV4cGFuZGluZykge1xuICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5zZWVNb3JlVGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5zZWVMZXNzVGV4dDtcbiAgICB9XG4gICAgaWYgKG5ld0hlaWdodCA8IGN1cnJlbnRIZWlnaHQpIHtcbiAgICAgIC8vIFRoZSBuZXcgdGV4dCBpcyBzbWFsbGVyIHRoYW4gdGhlIG9sZCB0ZXh0LCBzbyBwdXQgdGhlIG9sZCB0ZXh0IGJhY2sgYmVmb3JlIGRvaW5nXG4gICAgICAvLyB0aGUgY29sbGFwc2UgYW5pbWF0aW9uIHRvIGF2b2lkIHNob3dpbmcgYSBiaWcgY2h1bmsgb2Ygd2hpdGVzcGFjZS5cbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLm1heEl0ZW1zOyBpIDwgdGhpcy5jb250ZW50SXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYWRhcHRlci5zaG93SXRlbSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChjb250YWluZXIsIGAke2N1cnJlbnRIZWlnaHR9cHhgKTtcbiAgICAvLyBUaGlzIHRpbWVvdXQgaXMgbmVjZXNzYXJ5IGR1ZSB0byB0aGUgYnJvd3NlciBuZWVkaW5nIHRvIHBpY2sgdXAgdGhlIG5vbi1hdXRvIGhlaWdodCBiZWluZyBzZXRcbiAgICAvLyBpbiBvcmRlciB0byBkbyB0aGUgdHJhbnN0aW9uIGluIGhlaWdodCBjb3JyZWN0bHkuIFdpdGhvdXQgaXQgdGhlIHRyYW5zaXRpb24gZG9lcyBub3QgZmlyZS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGFkYXB0ZXIuc2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lciwgYCR7bmV3SGVpZ2h0fXB4YCk7XG4gICAgICAvKiBUaGlzIHJlc2V0cyB2YWx1ZXMgaWYgdGhlIHRyYW5zaXRpb24gZG9lcyBub3QgZ2V0IGtpY2tlZCBvZmYgKi9cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZCgpO1xuICAgICAgfSwgNTAwKTtcbiAgICB9LCAxMCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwKHZhbHVlOiBBcnJheTxhbnk+KSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBsZXQgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCA+IHRoaXMubWF4SXRlbXMpIHtcbiAgICAgICAgdGhpcy5leHBhbmRhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5zZWVNb3JlVGV4dDtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29udGVudEl0ZW1zID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udGVudEl0ZW1zID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5leHBhbmRhYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyXCI+XG4gIDx1bFxuICAgICpuZ0lmPVwibGlzdFN0eWxlICE9PSAnb3JkZXJlZCdcIlxuICAgIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWNvbnRhaW5lclwiXG4gICAgW2lkXT1cImNvbnRlbnRTZWN0aW9uSWRcIlxuICAgICh0cmFuc2l0aW9uZW5kKT1cImFuaW1hdGlvbkVuZCgpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWxpc3Qtc3R5bGUtbm9uZSc6IGxpc3RTdHlsZSA9PT0gJ3Vuc3R5bGVkJ1xuICAgIH1cIlxuICAgICNjb250YWluZXJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0SXRlbVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC91bD5cbiAgPG9sXG4gICAgKm5nSWY9XCJsaXN0U3R5bGUgPT09ICdvcmRlcmVkJ1wiXG4gICAgY2xhc3M9XCJza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItY29udGFpbmVyXCJcbiAgICBbaWRdPVwiY29udGVudFNlY3Rpb25JZFwiXG4gICAgKHRyYW5zaXRpb25lbmQpPVwiYW5pbWF0aW9uRW5kKClcIlxuICAgICNjb250YWluZXJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0SXRlbVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9vbD5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiZXhwYW5kYWJsZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluay1pbmxpbmUgc2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLXNlZS1tb3JlXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiY29udGVudFNlY3Rpb25JZFwiXG4gICAgKGNsaWNrKT1cInJlcGVhdGVyRXhwYW5kKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItc2VlLW1vcmUtbGlzdC1zdHlsZS1ub25lJzpcbiAgICAgICAgbGlzdFN0eWxlID09PSAndW5zdHlsZWQnXG4gICAgfVwiXG4gID5cbiAgICB7eyBidXR0b25UZXh0IH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjZGVmYXVsdEl0ZW1UZW1wbGF0ZT5cbiAge3sgaXRlbSB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbVRlbXBsYXRlPlxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudEl0ZW1zXCIgY2xhc3M9XCJza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItaXRlbVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SkyI18nModule } from '@skyux/i18n';
4
- import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
5
- import { SkyTextExpandRepeaterComponent } from './text-expand-repeater.component';
6
- import * as i0 from "@angular/core";
7
- export class SkyTextExpandRepeaterModule {
8
- }
9
- SkyTextExpandRepeaterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- SkyTextExpandRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterModule, declarations: [SkyTextExpandRepeaterComponent], imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule], exports: [SkyTextExpandRepeaterComponent] });
11
- SkyTextExpandRepeaterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterModule, imports: [[SkyI18nModule, SkyLayoutResourcesModule, CommonModule]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyTextExpandRepeaterModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- declarations: [SkyTextExpandRepeaterComponent],
16
- imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule],
17
- exports: [SkyTextExpandRepeaterComponent],
18
- }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGF5b3V0L3NyYy9tb2R1bGVzL3RleHQtZXhwYW5kLXJlcGVhdGVyL3RleHQtZXhwYW5kLXJlcGVhdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU9sRixNQUFNLE9BQU8sMkJBQTJCOzt5SEFBM0IsMkJBQTJCOzBIQUEzQiwyQkFBMkIsaUJBSnZCLDhCQUE4QixhQUNuQyxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxhQUNyRCw4QkFBOEI7MEhBRTdCLDJCQUEyQixZQUg3QixDQUFDLGFBQWEsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLENBQUM7NEZBR3JELDJCQUEyQjtrQkFMdkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDOUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLHdCQUF3QixFQUFFLFlBQVksQ0FBQztvQkFDaEUsT0FBTyxFQUFFLENBQUMsOEJBQThCLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTa3lMYXlvdXRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxheW91dC1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZFJlcGVhdGVyQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWV4cGFuZC1yZXBlYXRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTa3lUZXh0RXhwYW5kUmVwZWF0ZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbU2t5STE4bk1vZHVsZSwgU2t5TGF5b3V0UmVzb3VyY2VzTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5VGV4dEV4cGFuZFJlcGVhdGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEV4cGFuZFJlcGVhdGVyTW9kdWxlIHt9XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXItbGlzdC1zdHlsZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGF5b3V0L3NyYy9tb2R1bGVzL3RleHQtZXhwYW5kLXJlcGVhdGVyL3R5cGVzL3RleHQtZXhwYW5kLXJlcGVhdGVyLWxpc3Qtc3R5bGUtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU2t5VGV4dEV4cGFuZFJlcGVhdGVyTGlzdFN0eWxlVHlwZSA9XG4gIHwgJ3Vub3JkZXJlZCdcbiAgfCAnb3JkZXJlZCdcbiAgfCAndW5zdHlsZWQnO1xuIl19