@theseam/ui-common 0.2.9

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 (1567) hide show
  1. package/asset-reader/asset-reader-helper.service.d.ts +7 -0
  2. package/asset-reader/asset-reader.module.d.ts +2 -0
  3. package/asset-reader/encrypted-asset-link.directive.d.ts +23 -0
  4. package/asset-reader/encrypted-asset-reader.d.ts +24 -0
  5. package/asset-reader/package.json +11 -0
  6. package/asset-reader/public-api.d.ts +4 -0
  7. package/asset-reader/theseam-ui-common-asset-reader.d.ts +4 -0
  8. package/asset-reader/theseam-ui-common-asset-reader.metadata.json +1 -0
  9. package/assets/.gitkeep +0 -0
  10. package/assets/vendor/intl-tel-input/css/intlTelInput.min.css +1 -0
  11. package/assets/vendor/intl-tel-input/img/flags.png +0 -0
  12. package/assets/vendor/intl-tel-input/img/flags@2x.png +0 -0
  13. package/assets/vendor/intl-tel-input/js/utils.js +501 -0
  14. package/breadcrumbs/breadcrumb.d.ts +11 -0
  15. package/breadcrumbs/breadcrumbs/breadcrumbs.component.d.ts +10 -0
  16. package/breadcrumbs/breadcrumbs-resolver.d.ts +5 -0
  17. package/breadcrumbs/breadcrumbs.module.d.ts +2 -0
  18. package/breadcrumbs/breadcrumbs.service.d.ts +20 -0
  19. package/breadcrumbs/package.json +11 -0
  20. package/breadcrumbs/public-api.d.ts +5 -0
  21. package/breadcrumbs/theseam-ui-common-breadcrumbs.d.ts +4 -0
  22. package/breadcrumbs/theseam-ui-common-breadcrumbs.metadata.json +1 -0
  23. package/bundles/theseam-ui-common-asset-reader.umd.js +533 -0
  24. package/bundles/theseam-ui-common-asset-reader.umd.js.map +1 -0
  25. package/bundles/theseam-ui-common-breadcrumbs.umd.js +587 -0
  26. package/bundles/theseam-ui-common-breadcrumbs.umd.js.map +1 -0
  27. package/bundles/theseam-ui-common-buttons.umd.js +719 -0
  28. package/bundles/theseam-ui-common-buttons.umd.js.map +1 -0
  29. package/bundles/theseam-ui-common-card.umd.js +480 -0
  30. package/bundles/theseam-ui-common-card.umd.js.map +1 -0
  31. package/bundles/theseam-ui-common-checkbox.umd.js +650 -0
  32. package/bundles/theseam-ui-common-checkbox.umd.js.map +1 -0
  33. package/bundles/theseam-ui-common-confirm-dialog.umd.js +491 -0
  34. package/bundles/theseam-ui-common-confirm-dialog.umd.js.map +1 -0
  35. package/bundles/theseam-ui-common-core.umd.js +604 -0
  36. package/bundles/theseam-ui-common-core.umd.js.map +1 -0
  37. package/bundles/theseam-ui-common-data-exporter.umd.js +96 -0
  38. package/bundles/theseam-ui-common-data-exporter.umd.js.map +1 -0
  39. package/bundles/theseam-ui-common-data-filters.umd.js +888 -0
  40. package/bundles/theseam-ui-common-data-filters.umd.js.map +1 -0
  41. package/bundles/theseam-ui-common-datatable-dynamic.umd.js +1499 -0
  42. package/bundles/theseam-ui-common-datatable-dynamic.umd.js.map +1 -0
  43. package/bundles/theseam-ui-common-datatable.umd.js +2247 -0
  44. package/bundles/theseam-ui-common-datatable.umd.js.map +1 -0
  45. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js +180 -0
  46. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js.map +1 -0
  47. package/bundles/theseam-ui-common-dynamic.umd.js +1253 -0
  48. package/bundles/theseam-ui-common-dynamic.umd.js.map +1 -0
  49. package/bundles/theseam-ui-common-footer-bar.umd.js +49 -0
  50. package/bundles/theseam-ui-common-footer-bar.umd.js.map +1 -0
  51. package/bundles/theseam-ui-common-form-field-error.umd.js +884 -0
  52. package/bundles/theseam-ui-common-form-field-error.umd.js.map +1 -0
  53. package/bundles/theseam-ui-common-form-field.umd.js +914 -0
  54. package/bundles/theseam-ui-common-form-field.umd.js.map +1 -0
  55. package/bundles/theseam-ui-common-framework.umd.js +3344 -0
  56. package/bundles/theseam-ui-common-framework.umd.js.map +1 -0
  57. package/bundles/theseam-ui-common-graphql.umd.js +357 -0
  58. package/bundles/theseam-ui-common-graphql.umd.js.map +1 -0
  59. package/bundles/theseam-ui-common-icon.umd.js +890 -0
  60. package/bundles/theseam-ui-common-icon.umd.js.map +1 -0
  61. package/bundles/theseam-ui-common-layout.umd.js +119 -0
  62. package/bundles/theseam-ui-common-layout.umd.js.map +1 -0
  63. package/bundles/theseam-ui-common-loading.umd.js +152 -0
  64. package/bundles/theseam-ui-common-loading.umd.js.map +1 -0
  65. package/bundles/theseam-ui-common-menu.umd.js +1152 -0
  66. package/bundles/theseam-ui-common-menu.umd.js.map +1 -0
  67. package/bundles/theseam-ui-common-modal.umd.js +1669 -0
  68. package/bundles/theseam-ui-common-modal.umd.js.map +1 -0
  69. package/bundles/theseam-ui-common-models.umd.js +63 -0
  70. package/bundles/theseam-ui-common-models.umd.js.map +1 -0
  71. package/bundles/theseam-ui-common-popover.umd.js +504 -0
  72. package/bundles/theseam-ui-common-popover.umd.js.map +1 -0
  73. package/bundles/theseam-ui-common-progress.umd.js +420 -0
  74. package/bundles/theseam-ui-common-progress.umd.js.map +1 -0
  75. package/bundles/theseam-ui-common-scrollbar.umd.js +240 -0
  76. package/bundles/theseam-ui-common-scrollbar.umd.js.map +1 -0
  77. package/bundles/theseam-ui-common-services.umd.js +178 -0
  78. package/bundles/theseam-ui-common-services.umd.js.map +1 -0
  79. package/bundles/theseam-ui-common-shared.umd.js +1115 -0
  80. package/bundles/theseam-ui-common-shared.umd.js.map +1 -0
  81. package/bundles/theseam-ui-common-storage.umd.js +178 -0
  82. package/bundles/theseam-ui-common-storage.umd.js.map +1 -0
  83. package/bundles/theseam-ui-common-story-helpers.umd.js +795 -0
  84. package/bundles/theseam-ui-common-story-helpers.umd.js.map +1 -0
  85. package/bundles/theseam-ui-common-tabbed.umd.js +628 -0
  86. package/bundles/theseam-ui-common-tabbed.umd.js.map +1 -0
  87. package/bundles/theseam-ui-common-table-cell-type.umd.js +222 -0
  88. package/bundles/theseam-ui-common-table-cell-type.umd.js.map +1 -0
  89. package/bundles/theseam-ui-common-table-cell-types.umd.js +1174 -0
  90. package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -0
  91. package/bundles/theseam-ui-common-table.umd.js +475 -0
  92. package/bundles/theseam-ui-common-table.umd.js.map +1 -0
  93. package/bundles/theseam-ui-common-tel-input.umd.js +1055 -0
  94. package/bundles/theseam-ui-common-tel-input.umd.js.map +1 -0
  95. package/bundles/theseam-ui-common-test-helpers.umd.js +94 -0
  96. package/bundles/theseam-ui-common-test-helpers.umd.js.map +1 -0
  97. package/bundles/theseam-ui-common-tiled-select.umd.js +849 -0
  98. package/bundles/theseam-ui-common-tiled-select.umd.js.map +1 -0
  99. package/bundles/theseam-ui-common-toggle-edit.umd.js +893 -0
  100. package/bundles/theseam-ui-common-toggle-edit.umd.js.map +1 -0
  101. package/bundles/theseam-ui-common-toggle-group.umd.js +629 -0
  102. package/bundles/theseam-ui-common-toggle-group.umd.js.map +1 -0
  103. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js +136 -0
  104. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js.map +1 -0
  105. package/bundles/theseam-ui-common-utils.umd.js +1245 -0
  106. package/bundles/theseam-ui-common-utils.umd.js.map +1 -0
  107. package/bundles/theseam-ui-common-validators.umd.js +105 -0
  108. package/bundles/theseam-ui-common-validators.umd.js.map +1 -0
  109. package/bundles/theseam-ui-common-viewers.umd.js +699 -0
  110. package/bundles/theseam-ui-common-viewers.umd.js.map +1 -0
  111. package/bundles/theseam-ui-common-widget.umd.js +1710 -0
  112. package/bundles/theseam-ui-common-widget.umd.js.map +1 -0
  113. package/bundles/theseam-ui-common.umd.js +54 -0
  114. package/bundles/theseam-ui-common.umd.js.map +1 -0
  115. package/buttons/badge-button/badge-button.component.d.ts +18 -0
  116. package/buttons/button/button.component.d.ts +28 -0
  117. package/buttons/buttons.module.d.ts +2 -0
  118. package/buttons/package.json +11 -0
  119. package/buttons/progress-circle-button/progress-circle-button.component.d.ts +19 -0
  120. package/buttons/public-api.d.ts +5 -0
  121. package/buttons/theseam-ui-common-buttons.d.ts +4 -0
  122. package/buttons/theseam-ui-common-buttons.metadata.json +1 -0
  123. package/buttons/toggle-button/toggle-button.component.d.ts +26 -0
  124. package/card/card-action/card-action.component.d.ts +9 -0
  125. package/card/card-body/card-body.component.d.ts +12 -0
  126. package/card/card-footer/card-footer.component.d.ts +5 -0
  127. package/card/card-header/card-header.component.d.ts +7 -0
  128. package/card/card.component.d.ts +6 -0
  129. package/card/card.module.d.ts +2 -0
  130. package/card/package.json +11 -0
  131. package/card/public-api.d.ts +6 -0
  132. package/card/theseam-ui-common-card.d.ts +4 -0
  133. package/card/theseam-ui-common-card.metadata.json +1 -0
  134. package/checkbox/checkbox.component.d.ts +140 -0
  135. package/checkbox/checkbox.module.d.ts +2 -0
  136. package/checkbox/package.json +11 -0
  137. package/checkbox/public-api.d.ts +2 -0
  138. package/checkbox/theseam-ui-common-checkbox.d.ts +4 -0
  139. package/checkbox/theseam-ui-common-checkbox.metadata.json +1 -0
  140. package/confirm-dialog/confirm-click.directive.d.ts +24 -0
  141. package/confirm-dialog/confirm-dialog.component.d.ts +6 -0
  142. package/confirm-dialog/confirm-dialog.module.d.ts +2 -0
  143. package/confirm-dialog/confirm-dialog.service.d.ts +11 -0
  144. package/confirm-dialog/package.json +11 -0
  145. package/confirm-dialog/public-api.d.ts +4 -0
  146. package/confirm-dialog/theseam-ui-common-confirm-dialog.d.ts +4 -0
  147. package/confirm-dialog/theseam-ui-common-confirm-dialog.metadata.json +1 -0
  148. package/core/common-behaviors/active.d.ts +8 -0
  149. package/core/common-behaviors/constructor.d.ts +9 -0
  150. package/core/common-behaviors/disabled.d.ts +17 -0
  151. package/core/common-behaviors/element-ref.d.ts +4 -0
  152. package/core/common-behaviors/index.d.ts +9 -0
  153. package/core/common-behaviors/initialized.d.ts +30 -0
  154. package/core/common-behaviors/renderer2.d.ts +4 -0
  155. package/core/common-behaviors/size.d.ts +9 -0
  156. package/core/common-behaviors/tabindex.d.ts +18 -0
  157. package/core/common-behaviors/theme.d.ts +10 -0
  158. package/core/input-decorators/index.d.ts +2 -0
  159. package/core/input-decorators/input-boolean.decorator.d.ts +12 -0
  160. package/core/input-decorators/input-number.decorator.d.ts +12 -0
  161. package/core/package.json +11 -0
  162. package/core/public-api.d.ts +2 -0
  163. package/core/theseam-ui-common-core.d.ts +4 -0
  164. package/core/theseam-ui-common-core.metadata.json +1 -0
  165. package/data-exporter/data-exporter.d.ts +30 -0
  166. package/data-exporter/data-exporter.module.d.ts +2 -0
  167. package/data-exporter/exporters/csv-exporter.d.ts +8 -0
  168. package/data-exporter/exporters/xlsx-exporter.d.ts +8 -0
  169. package/data-exporter/package.json +11 -0
  170. package/data-exporter/public-api.d.ts +4 -0
  171. package/data-exporter/theseam-ui-common-data-exporter.d.ts +4 -0
  172. package/data-exporter/theseam-ui-common-data-exporter.metadata.json +1 -0
  173. package/data-filters/data-filter-container.d.ts +8 -0
  174. package/data-filters/data-filter-def.d.ts +10 -0
  175. package/data-filters/data-filter.d.ts +49 -0
  176. package/data-filters/data-filters.module.d.ts +2 -0
  177. package/data-filters/filters/data-filter-search/data-filter-search.component.d.ts +36 -0
  178. package/data-filters/filters/data-filter-search/search-filter-options.d.ts +2 -0
  179. package/data-filters/filters/data-filter-text/data-filter-text.component.d.ts +34 -0
  180. package/data-filters/filters/data-filter-text/text-filter-options.d.ts +25 -0
  181. package/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.d.ts +43 -0
  182. package/data-filters/package.json +11 -0
  183. package/data-filters/public-api.d.ts +9 -0
  184. package/data-filters/theseam-ui-common-data-filters.d.ts +4 -0
  185. package/data-filters/theseam-ui-common-data-filters.metadata.json +1 -0
  186. package/datatable/datatable/datatable.component.d.ts +195 -0
  187. package/datatable/datatable-action-menu/datatable-action-menu.component.d.ts +15 -0
  188. package/datatable/datatable-action-menu-item/datatable-action-menu-item.component.d.ts +28 -0
  189. package/datatable/datatable-column/datatable-column.component.d.ts +41 -0
  190. package/datatable/datatable-column-preferences/datatable-column-preferences.component.d.ts +14 -0
  191. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +6 -0
  192. package/datatable/datatable-export-button/datatable-export-button.component.d.ts +24 -0
  193. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +17 -0
  194. package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +5 -0
  195. package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +5 -0
  196. package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +5 -0
  197. package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +5 -0
  198. package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +10 -0
  199. package/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.d.ts +5 -0
  200. package/datatable/datatable-row-detail/datatable-row-detail.directive.d.ts +37 -0
  201. package/datatable/datatable.module.d.ts +2 -0
  202. package/datatable/directives/datatable-action-menu-item.directive.d.ts +35 -0
  203. package/datatable/directives/datatable-action-menu-toggle.directive.d.ts +27 -0
  204. package/datatable/directives/datatable-cell-tpl.directive.d.ts +5 -0
  205. package/datatable/directives/datatable-filter.directive.d.ts +6 -0
  206. package/datatable/directives/datatable-row-action-item.directive.d.ts +5 -0
  207. package/datatable/models/datatable-accessor.d.ts +19 -0
  208. package/datatable/models/datatable-data-source.d.ts +14 -0
  209. package/datatable/models/datatable-gql-data-source.d.ts +7 -0
  210. package/datatable/models/menubar-item-data.d.ts +3 -0
  211. package/datatable/models/page-info.d.ts +6 -0
  212. package/datatable/models/preferences-accessor.d.ts +15 -0
  213. package/datatable/models/preferences.d.ts +9 -0
  214. package/datatable/models/sort-event.d.ts +4 -0
  215. package/datatable/models/sort-item.d.ts +4 -0
  216. package/datatable/models/table-column.d.ts +14 -0
  217. package/datatable/package.json +11 -0
  218. package/datatable/public-api.d.ts +38 -0
  219. package/datatable/services/datatable-column-changes.service.d.ts +6 -0
  220. package/datatable/services/datatable-preferences.service.d.ts +19 -0
  221. package/datatable/services/datatable-scrollbar-helper.service.d.ts +19 -0
  222. package/datatable/theseam-ui-common-datatable.d.ts +5 -0
  223. package/datatable/theseam-ui-common-datatable.metadata.json +1 -0
  224. package/datatable/tokens/datatable-accessor.d.ts +3 -0
  225. package/datatable/tokens/datatable-preferences-accessor.d.ts +3 -0
  226. package/datatable/tokens/menubar-item-data.d.ts +3 -0
  227. package/datatable/utils/with-stored-column-info.d.ts +3 -0
  228. package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +32 -0
  229. package/datatable-dynamic/datatable-dynamic-def.d.ts +71 -0
  230. package/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.d.ts +15 -0
  231. package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +61 -0
  232. package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +16 -0
  233. package/datatable-dynamic/datatable-dynamic-menu-bar-token.d.ts +3 -0
  234. package/datatable-dynamic/datatable-dynamic.component.d.ts +89 -0
  235. package/datatable-dynamic/datatable-dynamic.module.d.ts +2 -0
  236. package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +73 -0
  237. package/datatable-dynamic/dynamic-datatable-def.service.d.ts +59 -0
  238. package/datatable-dynamic/dynamic-datatable-row-actions.service.d.ts +16 -0
  239. package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +17 -0
  240. package/datatable-dynamic/models/dynamic-datatable-filter-menu-item.d.ts +7 -0
  241. package/datatable-dynamic/models/dynamic-datatable-menu-bar.d.ts +63 -0
  242. package/datatable-dynamic/models/dynamic-datatable-row-action-context.d.ts +5 -0
  243. package/datatable-dynamic/models/dynamic-datatable-row-action.d.ts +17 -0
  244. package/datatable-dynamic/models/index.d.ts +5 -0
  245. package/datatable-dynamic/package.json +11 -0
  246. package/datatable-dynamic/public-api.d.ts +13 -0
  247. package/datatable-dynamic/theseam-ui-common-datatable-dynamic.d.ts +4 -0
  248. package/datatable-dynamic/theseam-ui-common-datatable-dynamic.metadata.json +1 -0
  249. package/datatable-dynamic/utils/defaults/set-dynamic-datatable-columns-defaults.d.ts +2 -0
  250. package/datatable-dynamic/utils/defaults/set-dynamic-datatable-def-defaults.d.ts +2 -0
  251. package/datatable-dynamic/utils/defaults/set-dynamic-datatable-filter-menu-defaults.d.ts +2 -0
  252. package/datatable-dynamic/utils/defaults/set-dynamic-datatable-options-defaults.d.ts +2 -0
  253. package/datatable-dynamic/utils/index.d.ts +4 -0
  254. package/dynamic/action/api/dynamic-action-api-def.d.ts +35 -0
  255. package/dynamic/action/api/dynamic-action-api-errors.d.ts +1 -0
  256. package/dynamic/action/api/dynamic-action-api.d.ts +3 -0
  257. package/dynamic/action/api/dynamic-action-api.service.d.ts +30 -0
  258. package/dynamic/action/dynamic-action-helper.service.d.ts +36 -0
  259. package/dynamic/action/index.d.ts +10 -0
  260. package/dynamic/action/link/dynamic-action-link-def.d.ts +58 -0
  261. package/dynamic/action/link/dynamic-action-link.d.ts +3 -0
  262. package/dynamic/action/link/dynamic-action-link.service.d.ts +14 -0
  263. package/dynamic/action/modal/dynamic-action-modal-def.d.ts +10 -0
  264. package/dynamic/action/modal/dynamic-action-modal.d.ts +3 -0
  265. package/dynamic/action/modal/dynamic-action-modal.service.d.ts +29 -0
  266. package/dynamic/dynamic-value-helper.service.d.ts +34 -0
  267. package/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.d.ts +16 -0
  268. package/dynamic/evaluators/exporters-data-evaluator/exporters-data-value.d.ts +8 -0
  269. package/dynamic/evaluators/exporters-data-evaluator/index.d.ts +2 -0
  270. package/dynamic/evaluators/index.d.ts +2 -0
  271. package/dynamic/evaluators/jexl-evaluator/index.d.ts +2 -0
  272. package/dynamic/evaluators/jexl-evaluator/jexl-evaluator.d.ts +9 -0
  273. package/dynamic/evaluators/jexl-evaluator/jexl-value.d.ts +11 -0
  274. package/dynamic/models/dynamic-action-confirm-def.d.ts +10 -0
  275. package/dynamic/models/dynamic-action-context.d.ts +2 -0
  276. package/dynamic/models/dynamic-action-def.d.ts +9 -0
  277. package/dynamic/models/dynamic-action-ui-anchor-def.d.ts +39 -0
  278. package/dynamic/models/dynamic-action-ui-button-def.d.ts +13 -0
  279. package/dynamic/models/dynamic-action-ui-def.d.ts +37 -0
  280. package/dynamic/models/dynamic-action.d.ts +11 -0
  281. package/dynamic/models/dynamic-value-base-type.d.ts +4 -0
  282. package/dynamic/models/dynamic-value-evaluatable-type.d.ts +2 -0
  283. package/dynamic/models/dynamic-value-evaluator.d.ts +6 -0
  284. package/dynamic/models/dynamic-value-primitive.d.ts +1 -0
  285. package/dynamic/models/dynamic-value-type.d.ts +4 -0
  286. package/dynamic/models/dynamic-value.d.ts +3 -0
  287. package/dynamic/models/index.d.ts +13 -0
  288. package/dynamic/package.json +11 -0
  289. package/dynamic/public-api.d.ts +6 -0
  290. package/dynamic/theseam-ui-common-dynamic.d.ts +4 -0
  291. package/dynamic/theseam-ui-common-dynamic.metadata.json +1 -0
  292. package/dynamic/tokens/api-config.d.ts +30 -0
  293. package/dynamic/tokens/dynamic-action.d.ts +3 -0
  294. package/dynamic/tokens/dynamic-data.d.ts +2 -0
  295. package/dynamic/tokens/dynamic-value-evaluator.d.ts +3 -0
  296. package/dynamic/tokens/index.d.ts +4 -0
  297. package/dynamic/utils/index.d.ts +1 -0
  298. package/dynamic/utils/is-action-type.d.ts +2 -0
  299. package/dynamic-component-loader/dynamic-component-loader.module.d.ts +7 -0
  300. package/dynamic-component-loader/dynamic-component-loader.service.d.ts +15 -0
  301. package/dynamic-component-loader/dynamic-component-manifest.d.ts +9 -0
  302. package/dynamic-component-loader/dynamic-component-tokens.d.ts +4 -0
  303. package/dynamic-component-loader/package.json +11 -0
  304. package/dynamic-component-loader/public-api.d.ts +4 -0
  305. package/dynamic-component-loader/theseam-ui-common-dynamic-component-loader.d.ts +4 -0
  306. package/dynamic-component-loader/theseam-ui-common-dynamic-component-loader.metadata.json +1 -0
  307. package/esm2015/asset-reader/asset-reader-helper.service.js +68 -0
  308. package/esm2015/asset-reader/asset-reader.module.js +15 -0
  309. package/esm2015/asset-reader/encrypted-asset-link.directive.js +69 -0
  310. package/esm2015/asset-reader/encrypted-asset-reader.js +20 -0
  311. package/esm2015/asset-reader/public-api.js +5 -0
  312. package/esm2015/asset-reader/theseam-ui-common-asset-reader.js +5 -0
  313. package/esm2015/breadcrumbs/breadcrumb.js +2 -0
  314. package/esm2015/breadcrumbs/breadcrumbs/breadcrumbs.component.js +21 -0
  315. package/esm2015/breadcrumbs/breadcrumbs-resolver.js +2 -0
  316. package/esm2015/breadcrumbs/breadcrumbs.module.js +21 -0
  317. package/esm2015/breadcrumbs/breadcrumbs.service.js +158 -0
  318. package/esm2015/breadcrumbs/public-api.js +6 -0
  319. package/esm2015/breadcrumbs/theseam-ui-common-breadcrumbs.js +5 -0
  320. package/esm2015/buttons/badge-button/badge-button.component.js +79 -0
  321. package/esm2015/buttons/button/button.component.js +111 -0
  322. package/esm2015/buttons/buttons.module.js +34 -0
  323. package/esm2015/buttons/progress-circle-button/progress-circle-button.component.js +60 -0
  324. package/esm2015/buttons/public-api.js +6 -0
  325. package/esm2015/buttons/theseam-ui-common-buttons.js +5 -0
  326. package/esm2015/buttons/toggle-button/toggle-button.component.js +88 -0
  327. package/esm2015/card/card-action/card-action.component.js +27 -0
  328. package/esm2015/card/card-body/card-body.component.js +32 -0
  329. package/esm2015/card/card-footer/card-footer.component.js +15 -0
  330. package/esm2015/card/card-header/card-header.component.js +22 -0
  331. package/esm2015/card/card.component.js +20 -0
  332. package/esm2015/card/card.module.js +33 -0
  333. package/esm2015/card/public-api.js +7 -0
  334. package/esm2015/card/theseam-ui-common-card.js +5 -0
  335. package/esm2015/checkbox/checkbox.component.js +276 -0
  336. package/esm2015/checkbox/checkbox.module.js +21 -0
  337. package/esm2015/checkbox/public-api.js +3 -0
  338. package/esm2015/checkbox/theseam-ui-common-checkbox.js +5 -0
  339. package/esm2015/confirm-dialog/confirm-click.directive.js +62 -0
  340. package/esm2015/confirm-dialog/confirm-dialog.component.js +20 -0
  341. package/esm2015/confirm-dialog/confirm-dialog.module.js +35 -0
  342. package/esm2015/confirm-dialog/confirm-dialog.service.js +38 -0
  343. package/esm2015/confirm-dialog/public-api.js +5 -0
  344. package/esm2015/confirm-dialog/theseam-ui-common-confirm-dialog.js +5 -0
  345. package/esm2015/core/common-behaviors/active.js +13 -0
  346. package/esm2015/core/common-behaviors/constructor.js +9 -0
  347. package/esm2015/core/common-behaviors/disabled.js +20 -0
  348. package/esm2015/core/common-behaviors/element-ref.js +2 -0
  349. package/esm2015/core/common-behaviors/index.js +10 -0
  350. package/esm2015/core/common-behaviors/initialized.js +62 -0
  351. package/esm2015/core/common-behaviors/renderer2.js +2 -0
  352. package/esm2015/core/common-behaviors/size.js +24 -0
  353. package/esm2015/core/common-behaviors/tabindex.js +22 -0
  354. package/esm2015/core/common-behaviors/theme.js +24 -0
  355. package/esm2015/core/input-decorators/index.js +3 -0
  356. package/esm2015/core/input-decorators/input-boolean.decorator.js +27 -0
  357. package/esm2015/core/input-decorators/input-number.decorator.js +27 -0
  358. package/esm2015/core/public-api.js +3 -0
  359. package/esm2015/core/theseam-ui-common-core.js +5 -0
  360. package/esm2015/data-exporter/data-exporter.js +7 -0
  361. package/esm2015/data-exporter/data-exporter.module.js +17 -0
  362. package/esm2015/data-exporter/exporters/csv-exporter.js +32 -0
  363. package/esm2015/data-exporter/exporters/xlsx-exporter.js +30 -0
  364. package/esm2015/data-exporter/public-api.js +5 -0
  365. package/esm2015/data-exporter/theseam-ui-common-data-exporter.js +5 -0
  366. package/esm2015/data-filters/data-filter-container.js +3 -0
  367. package/esm2015/data-filters/data-filter-def.js +3 -0
  368. package/esm2015/data-filters/data-filter.js +22 -0
  369. package/esm2015/data-filters/data-filters.module.js +50 -0
  370. package/esm2015/data-filters/filters/data-filter-search/data-filter-search.component.js +110 -0
  371. package/esm2015/data-filters/filters/data-filter-search/search-filter-options.js +2 -0
  372. package/esm2015/data-filters/filters/data-filter-text/data-filter-text.component.js +138 -0
  373. package/esm2015/data-filters/filters/data-filter-text/text-filter-options.js +2 -0
  374. package/esm2015/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.js +151 -0
  375. package/esm2015/data-filters/public-api.js +10 -0
  376. package/esm2015/data-filters/theseam-ui-common-data-filters.js +5 -0
  377. package/esm2015/datatable/datatable/datatable.component.js +584 -0
  378. package/esm2015/datatable/datatable-action-menu/datatable-action-menu.component.js +101 -0
  379. package/esm2015/datatable/datatable-action-menu-item/datatable-action-menu-item.component.js +30 -0
  380. package/esm2015/datatable/datatable-column/datatable-column.component.js +83 -0
  381. package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js +46 -0
  382. package/esm2015/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.js +18 -0
  383. package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +98 -0
  384. package/esm2015/datatable/datatable-menu-bar/datatable-menu-bar.component.js +55 -0
  385. package/esm2015/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.js +16 -0
  386. package/esm2015/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.js +16 -0
  387. package/esm2015/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.js +16 -0
  388. package/esm2015/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.js +16 -0
  389. package/esm2015/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.js +32 -0
  390. package/esm2015/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.js +15 -0
  391. package/esm2015/datatable/datatable-row-detail/datatable-row-detail.directive.js +69 -0
  392. package/esm2015/datatable/datatable.module.js +120 -0
  393. package/esm2015/datatable/directives/datatable-action-menu-item.directive.js +46 -0
  394. package/esm2015/datatable/directives/datatable-action-menu-toggle.directive.js +128 -0
  395. package/esm2015/datatable/directives/datatable-cell-tpl.directive.js +15 -0
  396. package/esm2015/datatable/directives/datatable-filter.directive.js +21 -0
  397. package/esm2015/datatable/directives/datatable-row-action-item.directive.js +15 -0
  398. package/esm2015/datatable/models/datatable-accessor.js +2 -0
  399. package/esm2015/datatable/models/datatable-data-source.js +42 -0
  400. package/esm2015/datatable/models/datatable-gql-data-source.js +15 -0
  401. package/esm2015/datatable/models/menubar-item-data.js +2 -0
  402. package/esm2015/datatable/models/page-info.js +2 -0
  403. package/esm2015/datatable/models/preferences-accessor.js +2 -0
  404. package/esm2015/datatable/models/preferences.js +2 -0
  405. package/esm2015/datatable/models/sort-event.js +2 -0
  406. package/esm2015/datatable/models/sort-item.js +2 -0
  407. package/esm2015/datatable/models/table-column.js +2 -0
  408. package/esm2015/datatable/public-api.js +39 -0
  409. package/esm2015/datatable/services/datatable-column-changes.service.js +17 -0
  410. package/esm2015/datatable/services/datatable-preferences.service.js +113 -0
  411. package/esm2015/datatable/services/datatable-scrollbar-helper.service.js +51 -0
  412. package/esm2015/datatable/theseam-ui-common-datatable.js +6 -0
  413. package/esm2015/datatable/tokens/datatable-accessor.js +3 -0
  414. package/esm2015/datatable/tokens/datatable-preferences-accessor.js +3 -0
  415. package/esm2015/datatable/tokens/menubar-item-data.js +3 -0
  416. package/esm2015/datatable/utils/with-stored-column-info.js +20 -0
  417. package/esm2015/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.js +119 -0
  418. package/esm2015/datatable-dynamic/datatable-dynamic-def.js +2 -0
  419. package/esm2015/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.js +53 -0
  420. package/esm2015/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.js +160 -0
  421. package/esm2015/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.js +2 -0
  422. package/esm2015/datatable-dynamic/datatable-dynamic-menu-bar-token.js +3 -0
  423. package/esm2015/datatable-dynamic/datatable-dynamic.component.js +75 -0
  424. package/esm2015/datatable-dynamic/datatable-dynamic.module.js +49 -0
  425. package/esm2015/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.js +408 -0
  426. package/esm2015/datatable-dynamic/dynamic-datatable-def.service.js +84 -0
  427. package/esm2015/datatable-dynamic/dynamic-datatable-row-actions.service.js +47 -0
  428. package/esm2015/datatable-dynamic/models/dynamic-datatable-action-menu-record.js +2 -0
  429. package/esm2015/datatable-dynamic/models/dynamic-datatable-filter-menu-item.js +2 -0
  430. package/esm2015/datatable-dynamic/models/dynamic-datatable-menu-bar.js +2 -0
  431. package/esm2015/datatable-dynamic/models/dynamic-datatable-row-action-context.js +2 -0
  432. package/esm2015/datatable-dynamic/models/dynamic-datatable-row-action.js +2 -0
  433. package/esm2015/datatable-dynamic/models/index.js +6 -0
  434. package/esm2015/datatable-dynamic/public-api.js +14 -0
  435. package/esm2015/datatable-dynamic/theseam-ui-common-datatable-dynamic.js +5 -0
  436. package/esm2015/datatable-dynamic/utils/defaults/set-dynamic-datatable-columns-defaults.js +8 -0
  437. package/esm2015/datatable-dynamic/utils/defaults/set-dynamic-datatable-def-defaults.js +13 -0
  438. package/esm2015/datatable-dynamic/utils/defaults/set-dynamic-datatable-filter-menu-defaults.js +6 -0
  439. package/esm2015/datatable-dynamic/utils/defaults/set-dynamic-datatable-options-defaults.js +6 -0
  440. package/esm2015/datatable-dynamic/utils/index.js +5 -0
  441. package/esm2015/dynamic/action/api/dynamic-action-api-def.js +2 -0
  442. package/esm2015/dynamic/action/api/dynamic-action-api-errors.js +4 -0
  443. package/esm2015/dynamic/action/api/dynamic-action-api.js +2 -0
  444. package/esm2015/dynamic/action/api/dynamic-action-api.service.js +215 -0
  445. package/esm2015/dynamic/action/dynamic-action-helper.service.js +163 -0
  446. package/esm2015/dynamic/action/index.js +11 -0
  447. package/esm2015/dynamic/action/link/dynamic-action-link-def.js +2 -0
  448. package/esm2015/dynamic/action/link/dynamic-action-link.js +2 -0
  449. package/esm2015/dynamic/action/link/dynamic-action-link.service.js +50 -0
  450. package/esm2015/dynamic/action/modal/dynamic-action-modal-def.js +2 -0
  451. package/esm2015/dynamic/action/modal/dynamic-action-modal.js +2 -0
  452. package/esm2015/dynamic/action/modal/dynamic-action-modal.service.js +92 -0
  453. package/esm2015/dynamic/dynamic-value-helper.service.js +101 -0
  454. package/esm2015/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.js +33 -0
  455. package/esm2015/dynamic/evaluators/exporters-data-evaluator/exporters-data-value.js +2 -0
  456. package/esm2015/dynamic/evaluators/exporters-data-evaluator/index.js +3 -0
  457. package/esm2015/dynamic/evaluators/index.js +3 -0
  458. package/esm2015/dynamic/evaluators/jexl-evaluator/index.js +3 -0
  459. package/esm2015/dynamic/evaluators/jexl-evaluator/jexl-evaluator.js +29 -0
  460. package/esm2015/dynamic/evaluators/jexl-evaluator/jexl-value.js +2 -0
  461. package/esm2015/dynamic/models/dynamic-action-confirm-def.js +2 -0
  462. package/esm2015/dynamic/models/dynamic-action-context.js +2 -0
  463. package/esm2015/dynamic/models/dynamic-action-def.js +3 -0
  464. package/esm2015/dynamic/models/dynamic-action-ui-anchor-def.js +2 -0
  465. package/esm2015/dynamic/models/dynamic-action-ui-button-def.js +2 -0
  466. package/esm2015/dynamic/models/dynamic-action-ui-def.js +2 -0
  467. package/esm2015/dynamic/models/dynamic-action.js +2 -0
  468. package/esm2015/dynamic/models/dynamic-value-base-type.js +2 -0
  469. package/esm2015/dynamic/models/dynamic-value-evaluatable-type.js +2 -0
  470. package/esm2015/dynamic/models/dynamic-value-evaluator.js +2 -0
  471. package/esm2015/dynamic/models/dynamic-value-primitive.js +2 -0
  472. package/esm2015/dynamic/models/dynamic-value-type.js +2 -0
  473. package/esm2015/dynamic/models/dynamic-value.js +2 -0
  474. package/esm2015/dynamic/models/index.js +14 -0
  475. package/esm2015/dynamic/public-api.js +7 -0
  476. package/esm2015/dynamic/theseam-ui-common-dynamic.js +5 -0
  477. package/esm2015/dynamic/tokens/api-config.js +29 -0
  478. package/esm2015/dynamic/tokens/dynamic-action.js +3 -0
  479. package/esm2015/dynamic/tokens/dynamic-data.js +3 -0
  480. package/esm2015/dynamic/tokens/dynamic-value-evaluator.js +3 -0
  481. package/esm2015/dynamic/tokens/index.js +5 -0
  482. package/esm2015/dynamic/utils/index.js +2 -0
  483. package/esm2015/dynamic/utils/is-action-type.js +4 -0
  484. package/esm2015/dynamic-component-loader/dynamic-component-loader.module.js +47 -0
  485. package/esm2015/dynamic-component-loader/dynamic-component-loader.service.js +91 -0
  486. package/esm2015/dynamic-component-loader/dynamic-component-manifest.js +2 -0
  487. package/esm2015/dynamic-component-loader/dynamic-component-tokens.js +5 -0
  488. package/esm2015/dynamic-component-loader/public-api.js +5 -0
  489. package/esm2015/dynamic-component-loader/theseam-ui-common-dynamic-component-loader.js +5 -0
  490. package/esm2015/footer-bar/footer-bar/footer-bar.component.js +16 -0
  491. package/esm2015/footer-bar/footer-bar.module.js +15 -0
  492. package/esm2015/footer-bar/public-api.js +3 -0
  493. package/esm2015/footer-bar/theseam-ui-common-footer-bar.js +5 -0
  494. package/esm2015/form-field/form-field-error.directive.js +28 -0
  495. package/esm2015/form-field/form-field-help-text.directive.js +15 -0
  496. package/esm2015/form-field/form-field-label-tpl.directive.js +15 -0
  497. package/esm2015/form-field/form-field-required-indicator.component.js +38 -0
  498. package/esm2015/form-field/form-field.component.js +193 -0
  499. package/esm2015/form-field/form-field.module.js +40 -0
  500. package/esm2015/form-field/input.directive.js +195 -0
  501. package/esm2015/form-field/public-api.js +8 -0
  502. package/esm2015/form-field/theseam-ui-common-form-field.js +5 -0
  503. package/esm2015/form-field-error/form-field-error/form-field-error.component.js +27 -0
  504. package/esm2015/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.js +25 -0
  505. package/esm2015/form-field-error/form-field-error-list/form-field-error-list-item.directive.js +18 -0
  506. package/esm2015/form-field-error/form-field-error-list/form-field-error-list.component.js +370 -0
  507. package/esm2015/form-field-error/form-field-error.module.js +28 -0
  508. package/esm2015/form-field-error/public-api.js +6 -0
  509. package/esm2015/form-field-error/theseam-ui-common-form-field-error.js +5 -0
  510. package/esm2015/framework/base-layout/base-layout-action.js +2 -0
  511. package/esm2015/framework/base-layout/base-layout-nav.js +2 -0
  512. package/esm2015/framework/base-layout/base-layout-ref.js +2 -0
  513. package/esm2015/framework/base-layout/base-layout-tokens.js +3 -0
  514. package/esm2015/framework/base-layout/base-layout.component.js +117 -0
  515. package/esm2015/framework/base-layout/base-layout.module.js +45 -0
  516. package/esm2015/framework/base-layout/directives/base-layout-content-footer.directive.js +15 -0
  517. package/esm2015/framework/base-layout/directives/base-layout-content-header.directive.js +15 -0
  518. package/esm2015/framework/base-layout/directives/base-layout-content.directive.js +15 -0
  519. package/esm2015/framework/base-layout/directives/base-layout-nav-toggle.directive.js +37 -0
  520. package/esm2015/framework/base-layout/directives/base-layout-side-bar.directive.js +15 -0
  521. package/esm2015/framework/base-layout/directives/base-layout-top-bar.directive.js +15 -0
  522. package/esm2015/framework/base-layout/index.js +13 -0
  523. package/esm2015/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.js +19 -0
  524. package/esm2015/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.js +25 -0
  525. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.js +121 -0
  526. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets-item.js +2 -0
  527. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor-token.js +3 -0
  528. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor.js +2 -0
  529. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.js +173 -0
  530. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets.component.js +176 -0
  531. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets.service.js +165 -0
  532. package/esm2015/framework/dashboard/dashboard.component.js +25 -0
  533. package/esm2015/framework/dashboard/dashboard.module.js +39 -0
  534. package/esm2015/framework/dashboard/index.js +12 -0
  535. package/esm2015/framework/dynamic-router/dynamic-route-def.js +2 -0
  536. package/esm2015/framework/dynamic-router/dynamic-router.module.js +21 -0
  537. package/esm2015/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.js +256 -0
  538. package/esm2015/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.js +114 -0
  539. package/esm2015/framework/dynamic-router/index.js +6 -0
  540. package/esm2015/framework/dynamic-router/resolvers/hierarchy-level.resolver.js +26 -0
  541. package/esm2015/framework/public-api.js +7 -0
  542. package/esm2015/framework/schema-form/index.js +4 -0
  543. package/esm2015/framework/schema-form/schema-form-framework.component.js +16 -0
  544. package/esm2015/framework/schema-form/schema-form-framework.js +27 -0
  545. package/esm2015/framework/schema-form/schema-form.module.js +35 -0
  546. package/esm2015/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.js +41 -0
  547. package/esm2015/framework/schema-form-controls/schema-form-controls.module.js +50 -0
  548. package/esm2015/framework/schema-form-controls/schema-form-input/schema-form-input.component.js +34 -0
  549. package/esm2015/framework/schema-form-controls/schema-form-number/schema-form-number.component.js +40 -0
  550. package/esm2015/framework/schema-form-controls/schema-form-select/schema-form-select.component.js +36 -0
  551. package/esm2015/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.js +46 -0
  552. package/esm2015/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.js +142 -0
  553. package/esm2015/framework/side-nav/index.js +7 -0
  554. package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +151 -0
  555. package/esm2015/framework/side-nav/side-nav-toggle/side-nav-toggle.component.js +36 -0
  556. package/esm2015/framework/side-nav/side-nav-utils.js +81 -0
  557. package/esm2015/framework/side-nav/side-nav.component.js +195 -0
  558. package/esm2015/framework/side-nav/side-nav.models.js +2 -0
  559. package/esm2015/framework/side-nav/side-nav.module.js +37 -0
  560. package/esm2015/framework/side-nav/side-nav.service.js +174 -0
  561. package/esm2015/framework/theseam-ui-common-framework.js +13 -0
  562. package/esm2015/framework/top-bar/index.js +8 -0
  563. package/esm2015/framework/top-bar/top-bar-item.directive.js +15 -0
  564. package/esm2015/framework/top-bar/top-bar-menu-btn-detail.directive.js +15 -0
  565. package/esm2015/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.js +53 -0
  566. package/esm2015/framework/top-bar/top-bar-menu.directive.js +16 -0
  567. package/esm2015/framework/top-bar/top-bar-title/top-bar-title.component.js +19 -0
  568. package/esm2015/framework/top-bar/top-bar.component.js +82 -0
  569. package/esm2015/framework/top-bar/top-bar.module.js +46 -0
  570. package/esm2015/graphql/models/direction.js +8 -0
  571. package/esm2015/graphql/models/hint-definition.js +2 -0
  572. package/esm2015/graphql/models/hint-transform-operation.js +2 -0
  573. package/esm2015/graphql/models/hint-transformer.js +2 -0
  574. package/esm2015/graphql/models/hints-kind.js +9 -0
  575. package/esm2015/graphql/models/hints-token.js +2 -0
  576. package/esm2015/graphql/models/index.js +9 -0
  577. package/esm2015/graphql/models/query-processing-config.js +2 -0
  578. package/esm2015/graphql/models/variable.js +7 -0
  579. package/esm2015/graphql/public-api.js +2 -0
  580. package/esm2015/graphql/theseam-ui-common-graphql.js +5 -0
  581. package/esm2015/graphql/utils/contains-variable.js +14 -0
  582. package/esm2015/graphql/utils/gql-var.js +4 -0
  583. package/esm2015/graphql/utils/hints-tokens-containing-hint.js +4 -0
  584. package/esm2015/graphql/utils/index.js +11 -0
  585. package/esm2015/graphql/utils/inline-variables.js +50 -0
  586. package/esm2015/graphql/utils/parse-comments.js +24 -0
  587. package/esm2015/graphql/utils/parse-hints.js +116 -0
  588. package/esm2015/graphql/utils/remove-variable-definition.js +14 -0
  589. package/esm2015/graphql/utils/remove-variable-definitions-not-defined.js +19 -0
  590. package/esm2015/graphql/utils/remove-variable.js +22 -0
  591. package/esm2015/graphql/utils/to-gql.js +40 -0
  592. package/esm2015/icon/icon/icon.component.js +125 -0
  593. package/esm2015/icon/icon-btn/icon-btn.component.js +136 -0
  594. package/esm2015/icon/icon-notification/icon-notification.component.js +120 -0
  595. package/esm2015/icon/icon.js +2 -0
  596. package/esm2015/icon/icon.module.js +27 -0
  597. package/esm2015/icon/public-api.js +7 -0
  598. package/esm2015/icon/theseam-ui-common-icon.js +5 -0
  599. package/esm2015/icon/utils/file-extension-icon.js +33 -0
  600. package/esm2015/icon/utils/get-known-icon.js +82 -0
  601. package/esm2015/icon/utils/index.js +3 -0
  602. package/esm2015/layout/breakpoint-aliases.js +11 -0
  603. package/esm2015/layout/layout.module.js +18 -0
  604. package/esm2015/layout/layout.service.js +24 -0
  605. package/esm2015/layout/observe-media-query.js +41 -0
  606. package/esm2015/layout/public-api.js +5 -0
  607. package/esm2015/layout/theseam-ui-common-layout.js +5 -0
  608. package/esm2015/loading/loading/loading.component.js +28 -0
  609. package/esm2015/loading/loading-overlay.service.js +59 -0
  610. package/esm2015/loading/loading-themes.js +18 -0
  611. package/esm2015/loading/loading.models.js +2 -0
  612. package/esm2015/loading/loading.module.js +29 -0
  613. package/esm2015/loading/public-api.js +6 -0
  614. package/esm2015/loading/theseam-ui-common-loading.js +5 -0
  615. package/esm2015/menu/menu-animations.js +58 -0
  616. package/esm2015/menu/menu-divider.component.js +15 -0
  617. package/esm2015/menu/menu-footer/menu-footer.component.js +32 -0
  618. package/esm2015/menu/menu-footer-action/menu-footer-action.component.js +48 -0
  619. package/esm2015/menu/menu-header/menu-header.component.js +32 -0
  620. package/esm2015/menu/menu-item.component.js +127 -0
  621. package/esm2015/menu/menu-panel-token.js +6 -0
  622. package/esm2015/menu/menu-panel.js +2 -0
  623. package/esm2015/menu/menu-toggle.directive.js +248 -0
  624. package/esm2015/menu/menu.component.js +174 -0
  625. package/esm2015/menu/menu.module.js +43 -0
  626. package/esm2015/menu/public-api.js +12 -0
  627. package/esm2015/menu/theseam-ui-common-menu.js +5 -0
  628. package/esm2015/modal/directives/modal-close.directive.js +63 -0
  629. package/esm2015/modal/directives/modal-footer-tpl.directive.js +15 -0
  630. package/esm2015/modal/directives/modal-header-icon-tpl.directive.js +15 -0
  631. package/esm2015/modal/directives/modal-header-title-tpl.directive.js +15 -0
  632. package/esm2015/modal/directives/modal-title.directive.js +19 -0
  633. package/esm2015/modal/directives/modal.directive.js +25 -0
  634. package/esm2015/modal/modal/modal.component.js +149 -0
  635. package/esm2015/modal/modal-body/modal-body.component.js +22 -0
  636. package/esm2015/modal/modal-config.js +47 -0
  637. package/esm2015/modal/modal-container/modal-container.component.js +217 -0
  638. package/esm2015/modal/modal-footer/modal-footer.component.js +20 -0
  639. package/esm2015/modal/modal-header/modal-header.component.js +26 -0
  640. package/esm2015/modal/modal-injectors.js +23 -0
  641. package/esm2015/modal/modal-ref.js +126 -0
  642. package/esm2015/modal/modal-utils.js +14 -0
  643. package/esm2015/modal/modal.models.js +3 -0
  644. package/esm2015/modal/modal.module.js +83 -0
  645. package/esm2015/modal/modal.service.js +343 -0
  646. package/esm2015/modal/public-api.js +20 -0
  647. package/esm2015/modal/route-modal/route-modal.component.js +68 -0
  648. package/esm2015/modal/theseam-ui-common-modal.js +5 -0
  649. package/esm2015/models/component-type.js +4 -0
  650. package/esm2015/models/http-status-codes.js +20 -0
  651. package/esm2015/models/public-api.js +8 -0
  652. package/esm2015/models/size-prefixes.js +2 -0
  653. package/esm2015/models/size-types.js +2 -0
  654. package/esm2015/models/theme-names.js +26 -0
  655. package/esm2015/models/theme-prefixes.js +2 -0
  656. package/esm2015/models/theme-types.js +2 -0
  657. package/esm2015/models/theseam-ui-common-models.js +5 -0
  658. package/esm2015/popover/popover/popover.component.js +149 -0
  659. package/esm2015/popover/popover-animations.js +46 -0
  660. package/esm2015/popover/popover.directive.js +257 -0
  661. package/esm2015/popover/popover.module.js +30 -0
  662. package/esm2015/popover/public-api.js +5 -0
  663. package/esm2015/popover/theseam-ui-common-popover.js +5 -0
  664. package/esm2015/progress/progress-circle/progress-circle.component.js +63 -0
  665. package/esm2015/progress/progress.module.js +19 -0
  666. package/esm2015/progress/public-api.js +3 -0
  667. package/esm2015/progress/theseam-ui-common-progress.js +5 -0
  668. package/esm2015/public_api.js +43 -0
  669. package/esm2015/scrollbar/overlay-scrollbar.directive.js +61 -0
  670. package/esm2015/scrollbar/overlay-scrollbars-config-model.js +2 -0
  671. package/esm2015/scrollbar/overlay-scrollbars-config.js +13 -0
  672. package/esm2015/scrollbar/overlay-scrollbars.service.js +87 -0
  673. package/esm2015/scrollbar/public-api.js +6 -0
  674. package/esm2015/scrollbar/scrollbar.module.js +25 -0
  675. package/esm2015/scrollbar/theseam-ui-common-scrollbar.js +5 -0
  676. package/esm2015/services/asset-loader.service.js +33 -0
  677. package/esm2015/services/font-loader.service.js +81 -0
  678. package/esm2015/services/public-api.js +4 -0
  679. package/esm2015/services/router-helpers.service.js +26 -0
  680. package/esm2015/services/theseam-ui-common-services.js +5 -0
  681. package/esm2015/shared/components/index.js +2 -0
  682. package/esm2015/shared/components/password-input-reveal/password-input-reveal.component.js +71 -0
  683. package/esm2015/shared/directives/auto-focus.directive.js +53 -0
  684. package/esm2015/shared/directives/click-outside.directive.js +49 -0
  685. package/esm2015/shared/directives/disable-control.directive.js +27 -0
  686. package/esm2015/shared/directives/elem-resized.directive.js +29 -0
  687. package/esm2015/shared/directives/hover-class-toggle.directive.js +80 -0
  688. package/esm2015/shared/directives/hover-class.directive.js +74 -0
  689. package/esm2015/shared/directives/index.js +9 -0
  690. package/esm2015/shared/directives/ng-select-extra.directive.js +177 -0
  691. package/esm2015/shared/directives/ngx-quill-extra.directive.js +60 -0
  692. package/esm2015/shared/pipes/index.js +3 -0
  693. package/esm2015/shared/pipes/mask-chars.pipe.js +21 -0
  694. package/esm2015/shared/pipes/truncate.pipe.js +19 -0
  695. package/esm2015/shared/public-api.js +5 -0
  696. package/esm2015/shared/shared.module.js +58 -0
  697. package/esm2015/shared/theseam-ui-common-shared.js +5 -0
  698. package/esm2015/storage/local-storage.service.js +77 -0
  699. package/esm2015/storage/localstorage-memory.js +64 -0
  700. package/esm2015/storage/public-api.js +2 -0
  701. package/esm2015/storage/theseam-ui-common-storage.js +5 -0
  702. package/esm2015/story-helpers/arg-type-helpers.js +34 -0
  703. package/esm2015/story-helpers/args-to-tpl.js +76 -0
  704. package/esm2015/story-helpers/initial-route-factory.js +4 -0
  705. package/esm2015/story-helpers/initial-route.service.js +27 -0
  706. package/esm2015/story-helpers/on-story-bootstrapped-exec.js +64 -0
  707. package/esm2015/story-helpers/on-story-bootstrapped-trigger.js +38 -0
  708. package/esm2015/story-helpers/public-api.js +15 -0
  709. package/esm2015/story-helpers/route-button.js +12 -0
  710. package/esm2015/story-helpers/routes-arg-type.js +18 -0
  711. package/esm2015/story-helpers/story-empty-with-route.component.js +7 -0
  712. package/esm2015/story-helpers/story-empty.component.js +7 -0
  713. package/esm2015/story-helpers/story-helper-components.module.js +29 -0
  714. package/esm2015/story-helpers/story-initial-route.js +24 -0
  715. package/esm2015/story-helpers/story-modal-container.component.js +77 -0
  716. package/esm2015/story-helpers/story-toastr.service.js +33 -0
  717. package/esm2015/story-helpers/theseam-ui-common-story-helpers.js +5 -0
  718. package/esm2015/tabbed/directives/tabbed-tab-content.directive.js +14 -0
  719. package/esm2015/tabbed/directives/tabbed-tab.directive.js +36 -0
  720. package/esm2015/tabbed/public-api.js +8 -0
  721. package/esm2015/tabbed/tabbed-content/tabbed-content.component.js +17 -0
  722. package/esm2015/tabbed/tabbed-item/tabbed-item.component.js +30 -0
  723. package/esm2015/tabbed/tabbed.component.js +111 -0
  724. package/esm2015/tabbed/tabbed.module.js +36 -0
  725. package/esm2015/tabbed/tabbed.service.js +28 -0
  726. package/esm2015/tabbed/theseam-ui-common-tabbed.js +5 -0
  727. package/esm2015/table/public-api.js +3 -0
  728. package/esm2015/table/table/table.component.js +90 -0
  729. package/esm2015/table/table.module.js +23 -0
  730. package/esm2015/table/theseam-ui-common-table.js +5 -0
  731. package/esm2015/table-cell-type/public-api.js +12 -0
  732. package/esm2015/table-cell-type/services/table-cell-types-helpers.service.js +70 -0
  733. package/esm2015/table-cell-type/table-cell-type-action.js +2 -0
  734. package/esm2015/table-cell-type/table-cell-type-column.js +2 -0
  735. package/esm2015/table-cell-type/table-cell-type-config.js +2 -0
  736. package/esm2015/table-cell-type/table-cell-type-export-props.js +2 -0
  737. package/esm2015/table-cell-type/table-cell-type-manifest-provider.js +2 -0
  738. package/esm2015/table-cell-type/table-cell-type-models.js +2 -0
  739. package/esm2015/table-cell-type/table-cell-type-name.js +2 -0
  740. package/esm2015/table-cell-type/table-cell-type-selector.component.js +94 -0
  741. package/esm2015/table-cell-type/table-cell-type-tokens.js +4 -0
  742. package/esm2015/table-cell-type/table-cell-type.module.js +23 -0
  743. package/esm2015/table-cell-type/theseam-ui-common-table-cell-type.js +5 -0
  744. package/esm2015/table-cell-types/public-api.js +16 -0
  745. package/esm2015/table-cell-types/table-cell-type-date/table-cell-type-date-config.js +2 -0
  746. package/esm2015/table-cell-types/table-cell-type-date/table-cell-type-date.component.js +55 -0
  747. package/esm2015/table-cell-types/table-cell-type-date/table-cell-type-date.js +2 -0
  748. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.js +2 -0
  749. package/esm2015/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.js +2 -0
  750. package/esm2015/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.js +166 -0
  751. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.js +2 -0
  752. package/esm2015/table-cell-types/table-cell-type-manifests.js +91 -0
  753. package/esm2015/table-cell-types/table-cell-type-phone/table-cell-type-phone-config.js +2 -0
  754. package/esm2015/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.js +66 -0
  755. package/esm2015/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.js +2 -0
  756. package/esm2015/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.js +160 -0
  757. package/esm2015/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.js +2 -0
  758. package/esm2015/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.js +78 -0
  759. package/esm2015/table-cell-types/table-cell-type-string/table-cell-type-string-config.js +2 -0
  760. package/esm2015/table-cell-types/table-cell-type-string/table-cell-type-string.component.js +150 -0
  761. package/esm2015/table-cell-types/table-cell-types.module.js +71 -0
  762. package/esm2015/table-cell-types/theseam-ui-common-table-cell-types.js +5 -0
  763. package/esm2015/tel-input/intl-tel-input.js +55 -0
  764. package/esm2015/tel-input/models/index.js +3 -0
  765. package/esm2015/tel-input/models/tel-input-country-data.js +2 -0
  766. package/esm2015/tel-input/models/tel-input-number-format-name.js +8 -0
  767. package/esm2015/tel-input/phone-number.pipe.js +51 -0
  768. package/esm2015/tel-input/public-api.js +10 -0
  769. package/esm2015/tel-input/tel-input/tel-input.component.js +167 -0
  770. package/esm2015/tel-input/tel-input-constants.js +18 -0
  771. package/esm2015/tel-input/tel-input-validator.js +27 -0
  772. package/esm2015/tel-input/tel-input.directive.js +164 -0
  773. package/esm2015/tel-input/tel-input.module.js +29 -0
  774. package/esm2015/tel-input/theseam-ui-common-tel-input.js +5 -0
  775. package/esm2015/tel-input/utils/add-country-code.js +23 -0
  776. package/esm2015/tel-input/utils/coerce-phone-number-format.js +22 -0
  777. package/esm2015/tel-input/utils/get-country-code.js +9 -0
  778. package/esm2015/tel-input/utils/get-dial-code.js +45 -0
  779. package/esm2015/tel-input/utils/get-global-intl-tel-input-globals.js +4 -0
  780. package/esm2015/tel-input/utils/get-global-intl-tel-input-utils.js +4 -0
  781. package/esm2015/tel-input/utils/get-intl-tel-input-utils.js +17 -0
  782. package/esm2015/tel-input/utils/get-validation-error-message.js +12 -0
  783. package/esm2015/tel-input/utils/index.js +10 -0
  784. package/esm2015/tel-input/utils/process-country-codes.js +49 -0
  785. package/esm2015/test-helpers/public-api.js +2 -0
  786. package/esm2015/test-helpers/theseam-ui-common-test-helpers.js +5 -0
  787. package/esm2015/test-helpers/tick-helper.js +74 -0
  788. package/esm2015/theseam-ui-common.js +5 -0
  789. package/esm2015/tiled-select/components/tiled-select/tiled-select.component.js +197 -0
  790. package/esm2015/tiled-select/components/tiled-select-tile/tiled-select-tile.component.js +125 -0
  791. package/esm2015/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.js +54 -0
  792. package/esm2015/tiled-select/directives/tiled-select-tile-icon-tpl.directive.js +16 -0
  793. package/esm2015/tiled-select/directives/tiled-select-tile-label-tpl.directive.js +15 -0
  794. package/esm2015/tiled-select/directives/tiled-select-tile-overlay.directive.js +19 -0
  795. package/esm2015/tiled-select/public-api.js +9 -0
  796. package/esm2015/tiled-select/theseam-ui-common-tiled-select.js +5 -0
  797. package/esm2015/tiled-select/tiled-select.models.js +2 -0
  798. package/esm2015/tiled-select/tiled-select.module.js +35 -0
  799. package/esm2015/toggle-edit/models/can-toggle-edit.js +2 -0
  800. package/esm2015/toggle-edit/models/index.js +3 -0
  801. package/esm2015/toggle-edit/models/toggle-edit-ref.js +2 -0
  802. package/esm2015/toggle-edit/public-api.js +7 -0
  803. package/esm2015/toggle-edit/theseam-ui-common-toggle-edit.js +5 -0
  804. package/esm2015/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.js +15 -0
  805. package/esm2015/toggle-edit/toggle-edit-display-tpl.directive.js +15 -0
  806. package/esm2015/toggle-edit/toggle-edit-keyboard-listener.service.js +56 -0
  807. package/esm2015/toggle-edit/toggle-edit.component.js +403 -0
  808. package/esm2015/toggle-edit/toggle-edit.module.js +40 -0
  809. package/esm2015/toggle-group/public-api.js +4 -0
  810. package/esm2015/toggle-group/theseam-ui-common-toggle-group.js +5 -0
  811. package/esm2015/toggle-group/toggle-group-option.directive.js +44 -0
  812. package/esm2015/toggle-group/toggle-group.directive.js +192 -0
  813. package/esm2015/toggle-group/toggle-group.module.js +24 -0
  814. package/esm2015/unsaved-changes-dialog/public-api.js +5 -0
  815. package/esm2015/unsaved-changes-dialog/theseam-ui-common-unsaved-changes-dialog.js +5 -0
  816. package/esm2015/unsaved-changes-dialog/unsaved-changes-can-deactivate.js +27 -0
  817. package/esm2015/unsaved-changes-dialog/unsaved-changes-dialog.component.js +20 -0
  818. package/esm2015/unsaved-changes-dialog/unsaved-changes-dialog.guard.js +35 -0
  819. package/esm2015/unsaved-changes-dialog/unsaved-changes-dialog.module.js +12 -0
  820. package/esm2015/utils/calc-percentage.js +4 -0
  821. package/esm2015/utils/cdk/get-closest-widget-cdk-drag.js +18 -0
  822. package/esm2015/utils/create-padding.js +17 -0
  823. package/esm2015/utils/file-utils.js +68 -0
  824. package/esm2015/utils/form/get-control-name.js +31 -0
  825. package/esm2015/utils/form/get-control-path.js +37 -0
  826. package/esm2015/utils/form/has-required-control.js +50 -0
  827. package/esm2015/utils/form/is-empty-input-value.js +6 -0
  828. package/esm2015/utils/form/observe-control-is-different.js +18 -0
  829. package/esm2015/utils/form/observe-control-status.js +17 -0
  830. package/esm2015/utils/form/observe-control-valid.js +30 -0
  831. package/esm2015/utils/form/observe-control-value-change.js +10 -0
  832. package/esm2015/utils/form/observe-control-value.js +11 -0
  833. package/esm2015/utils/form/wait-on-non-pending-status.js +18 -0
  834. package/esm2015/utils/fractional-digits-count.js +19 -0
  835. package/esm2015/utils/get-attribute.js +7 -0
  836. package/esm2015/utils/has-attribute.js +7 -0
  837. package/esm2015/utils/has-property.js +7 -0
  838. package/esm2015/utils/input-masks.js +2 -0
  839. package/esm2015/utils/is-absolute-url.js +17 -0
  840. package/esm2015/utils/is-null-or-undefined.js +4 -0
  841. package/esm2015/utils/is-numeric.js +4 -0
  842. package/esm2015/utils/load-style-sheet.js +14 -0
  843. package/esm2015/utils/load-style.js +13 -0
  844. package/esm2015/utils/not-null-or-undefined.js +4 -0
  845. package/esm2015/utils/obj-utils.js +27 -0
  846. package/esm2015/utils/observe-query-list.js +5 -0
  847. package/esm2015/utils/operators/index.js +3 -0
  848. package/esm2015/utils/operators/map-each.js +6 -0
  849. package/esm2015/utils/operators/tap-first.js +14 -0
  850. package/esm2015/utils/pad-end.js +9 -0
  851. package/esm2015/utils/pad-start.js +9 -0
  852. package/esm2015/utils/polling-ticker.js +121 -0
  853. package/esm2015/utils/public-api.js +38 -0
  854. package/esm2015/utils/refreshable.js +65 -0
  855. package/esm2015/utils/router/index.js +7 -0
  856. package/esm2015/utils/router/is-empty-url-route.js +4 -0
  857. package/esm2015/utils/router/leaf-child-route.js +8 -0
  858. package/esm2015/utils/router/operators/activated-routes-with-data-property.js +11 -0
  859. package/esm2015/utils/router/route-snapshot-path-full.js +5 -0
  860. package/esm2015/utils/router/route-snapshot-path-relative.js +4 -0
  861. package/esm2015/utils/router/will-have-data-prop.js +10 -0
  862. package/esm2015/utils/subscriber-count.js +19 -0
  863. package/esm2015/utils/theseam-ui-common-utils.js +5 -0
  864. package/esm2015/utils/toggle-attribute.js +35 -0
  865. package/esm2015/utils/wait-on-condition-async.js +33 -0
  866. package/esm2015/utils/wrap-into-observable.js +8 -0
  867. package/esm2015/validators/decimal.validator.js +25 -0
  868. package/esm2015/validators/email-exists.validator.js +18 -0
  869. package/esm2015/validators/integer.validator.js +25 -0
  870. package/esm2015/validators/phone-length.validator.js +8 -0
  871. package/esm2015/validators/public-api.js +6 -0
  872. package/esm2015/validators/tax-id.validator.js +13 -0
  873. package/esm2015/validators/theseam-ui-common-validators.js +5 -0
  874. package/esm2015/viewers/pdf-viewer/index.js +4 -0
  875. package/esm2015/viewers/pdf-viewer/pdf-page/pdf-page.component.js +134 -0
  876. package/esm2015/viewers/pdf-viewer/pdf-renderer.service.js +27 -0
  877. package/esm2015/viewers/pdf-viewer/pdf-viewer.component.js +149 -0
  878. package/esm2015/viewers/pdf-viewer/pdf-viewer.module.js +24 -0
  879. package/esm2015/viewers/public-api.js +2 -0
  880. package/esm2015/viewers/theseam-ui-common-viewers.js +5 -0
  881. package/esm2015/widget/directives/widget-drag-handle.directive.js +146 -0
  882. package/esm2015/widget/directives/widget-icon-tpl.directive.js +15 -0
  883. package/esm2015/widget/directives/widget-title-tpl.directive.js +15 -0
  884. package/esm2015/widget/public-api.js +38 -0
  885. package/esm2015/widget/theseam-ui-common-widget.js +5 -0
  886. package/esm2015/widget/widget/widget.component.js +121 -0
  887. package/esm2015/widget/widget-content-components/widget-button-group/widget-button-group.component.js +16 -0
  888. package/esm2015/widget/widget-content-components/widget-button-group/widget-button-group.module.js +22 -0
  889. package/esm2015/widget/widget-content-components/widget-content-header/widget-content-header.component.js +16 -0
  890. package/esm2015/widget/widget-content-components/widget-content-header/widget-content-header.module.js +19 -0
  891. package/esm2015/widget/widget-content-components/widget-description/widget-description.component.js +12 -0
  892. package/esm2015/widget/widget-content-components/widget-description/widget-description.module.js +19 -0
  893. package/esm2015/widget/widget-content-components/widget-empty-label/widget-empty-label.component.js +39 -0
  894. package/esm2015/widget/widget-content-components/widget-empty-label/widget-empty-label.module.js +19 -0
  895. package/esm2015/widget/widget-content-components/widget-footer-link/widget-footer-link.component.js +16 -0
  896. package/esm2015/widget/widget-content-components/widget-footer-link/widget-footer-link.module.js +19 -0
  897. package/esm2015/widget/widget-content-components/widget-footer-text/widget-footer-text.component.js +16 -0
  898. package/esm2015/widget/widget-content-components/widget-footer-text/widget-footer-text.module.js +19 -0
  899. package/esm2015/widget/widget-content-components/widget-header-badge/widget-header-badge.component.js +31 -0
  900. package/esm2015/widget/widget-content-components/widget-header-badge/widget-header-badge.module.js +19 -0
  901. package/esm2015/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.js +16 -0
  902. package/esm2015/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.js +162 -0
  903. package/esm2015/widget/widget-content-components/widget-list-group/widget-list-group.component.js +19 -0
  904. package/esm2015/widget/widget-content-components/widget-list-group/widget-list-group.module.js +31 -0
  905. package/esm2015/widget/widget-content-components/widget-table/widget-table.component.js +35 -0
  906. package/esm2015/widget/widget-content-components/widget-table/widget-table.module.js +23 -0
  907. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.js +19 -0
  908. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.js +43 -0
  909. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.js +16 -0
  910. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.js +16 -0
  911. package/esm2015/widget/widget-content-components/widget-tile/widget-tile.component.js +108 -0
  912. package/esm2015/widget/widget-content-components/widget-tile/widget-tile.module.js +33 -0
  913. package/esm2015/widget/widget-content-components/widget-tile-list/widget-tile-list.component.js +15 -0
  914. package/esm2015/widget/widget-content-components/widget-tile-list/widget-tile-list.module.js +21 -0
  915. package/esm2015/widget/widget-footer/widget-footer.component.js +16 -0
  916. package/esm2015/widget/widget-registry.models.js +2 -0
  917. package/esm2015/widget/widget-registry.service.js +56 -0
  918. package/esm2015/widget/widget-token.js +3 -0
  919. package/esm2015/widget/widget.module.js +70 -0
  920. package/fesm2015/theseam-ui-common-asset-reader.js +173 -0
  921. package/fesm2015/theseam-ui-common-asset-reader.js.map +1 -0
  922. package/fesm2015/theseam-ui-common-breadcrumbs.js +202 -0
  923. package/fesm2015/theseam-ui-common-breadcrumbs.js.map +1 -0
  924. package/fesm2015/theseam-ui-common-buttons.js +362 -0
  925. package/fesm2015/theseam-ui-common-buttons.js.map +1 -0
  926. package/fesm2015/theseam-ui-common-card.js +145 -0
  927. package/fesm2015/theseam-ui-common-card.js.map +1 -0
  928. package/fesm2015/theseam-ui-common-checkbox.js +302 -0
  929. package/fesm2015/theseam-ui-common-checkbox.js.map +1 -0
  930. package/fesm2015/theseam-ui-common-confirm-dialog.js +153 -0
  931. package/fesm2015/theseam-ui-common-confirm-dialog.js.map +1 -0
  932. package/fesm2015/theseam-ui-common-core.js +231 -0
  933. package/fesm2015/theseam-ui-common-core.js.map +1 -0
  934. package/fesm2015/theseam-ui-common-data-exporter.js +81 -0
  935. package/fesm2015/theseam-ui-common-data-exporter.js.map +1 -0
  936. package/fesm2015/theseam-ui-common-data-filters.js +452 -0
  937. package/fesm2015/theseam-ui-common-data-filters.js.map +1 -0
  938. package/fesm2015/theseam-ui-common-datatable-dynamic.js +991 -0
  939. package/fesm2015/theseam-ui-common-datatable-dynamic.js.map +1 -0
  940. package/fesm2015/theseam-ui-common-datatable.js +1714 -0
  941. package/fesm2015/theseam-ui-common-datatable.js.map +1 -0
  942. package/fesm2015/theseam-ui-common-dynamic-component-loader.js +143 -0
  943. package/fesm2015/theseam-ui-common-dynamic-component-loader.js.map +1 -0
  944. package/fesm2015/theseam-ui-common-dynamic.js +699 -0
  945. package/fesm2015/theseam-ui-common-dynamic.js.map +1 -0
  946. package/fesm2015/theseam-ui-common-footer-bar.js +36 -0
  947. package/fesm2015/theseam-ui-common-footer-bar.js.map +1 -0
  948. package/fesm2015/theseam-ui-common-form-field-error.js +464 -0
  949. package/fesm2015/theseam-ui-common-form-field-error.js.map +1 -0
  950. package/fesm2015/theseam-ui-common-form-field.js +506 -0
  951. package/fesm2015/theseam-ui-common-form-field.js.map +1 -0
  952. package/fesm2015/theseam-ui-common-framework.js +2650 -0
  953. package/fesm2015/theseam-ui-common-framework.js.map +1 -0
  954. package/fesm2015/theseam-ui-common-graphql.js +331 -0
  955. package/fesm2015/theseam-ui-common-graphql.js.map +1 -0
  956. package/fesm2015/theseam-ui-common-icon.js +518 -0
  957. package/fesm2015/theseam-ui-common-icon.js.map +1 -0
  958. package/fesm2015/theseam-ui-common-layout.js +89 -0
  959. package/fesm2015/theseam-ui-common-layout.js.map +1 -0
  960. package/fesm2015/theseam-ui-common-loading.js +131 -0
  961. package/fesm2015/theseam-ui-common-loading.js.map +1 -0
  962. package/fesm2015/theseam-ui-common-menu.js +762 -0
  963. package/fesm2015/theseam-ui-common-menu.js.map +1 -0
  964. package/fesm2015/theseam-ui-common-modal.js +1234 -0
  965. package/fesm2015/theseam-ui-common-modal.js.map +1 -0
  966. package/fesm2015/theseam-ui-common-models.js +54 -0
  967. package/fesm2015/theseam-ui-common-models.js.map +1 -0
  968. package/fesm2015/theseam-ui-common-popover.js +476 -0
  969. package/fesm2015/theseam-ui-common-popover.js.map +1 -0
  970. package/fesm2015/theseam-ui-common-progress.js +87 -0
  971. package/fesm2015/theseam-ui-common-progress.js.map +1 -0
  972. package/fesm2015/theseam-ui-common-scrollbar.js +184 -0
  973. package/fesm2015/theseam-ui-common-scrollbar.js.map +1 -0
  974. package/fesm2015/theseam-ui-common-services.js +140 -0
  975. package/fesm2015/theseam-ui-common-services.js.map +1 -0
  976. package/fesm2015/theseam-ui-common-shared.js +696 -0
  977. package/fesm2015/theseam-ui-common-shared.js.map +1 -0
  978. package/fesm2015/theseam-ui-common-storage.js +147 -0
  979. package/fesm2015/theseam-ui-common-storage.js.map +1 -0
  980. package/fesm2015/theseam-ui-common-story-helpers.js +441 -0
  981. package/fesm2015/theseam-ui-common-story-helpers.js.map +1 -0
  982. package/fesm2015/theseam-ui-common-tabbed.js +262 -0
  983. package/fesm2015/theseam-ui-common-tabbed.js.map +1 -0
  984. package/fesm2015/theseam-ui-common-table-cell-type.js +191 -0
  985. package/fesm2015/theseam-ui-common-table-cell-type.js.map +1 -0
  986. package/fesm2015/theseam-ui-common-table-cell-types.js +799 -0
  987. package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -0
  988. package/fesm2015/theseam-ui-common-table.js +118 -0
  989. package/fesm2015/theseam-ui-common-table.js.map +1 -0
  990. package/fesm2015/theseam-ui-common-tel-input.js +681 -0
  991. package/fesm2015/theseam-ui-common-tel-input.js.map +1 -0
  992. package/fesm2015/theseam-ui-common-test-helpers.js +81 -0
  993. package/fesm2015/theseam-ui-common-test-helpers.js.map +1 -0
  994. package/fesm2015/theseam-ui-common-tiled-select.js +448 -0
  995. package/fesm2015/theseam-ui-common-tiled-select.js.map +1 -0
  996. package/fesm2015/theseam-ui-common-toggle-edit.js +521 -0
  997. package/fesm2015/theseam-ui-common-toggle-edit.js.map +1 -0
  998. package/fesm2015/theseam-ui-common-toggle-group.js +260 -0
  999. package/fesm2015/theseam-ui-common-toggle-group.js.map +1 -0
  1000. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.js +97 -0
  1001. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.js.map +1 -0
  1002. package/fesm2015/theseam-ui-common-utils.js +797 -0
  1003. package/fesm2015/theseam-ui-common-utils.js.map +1 -0
  1004. package/fesm2015/theseam-ui-common-validators.js +94 -0
  1005. package/fesm2015/theseam-ui-common-validators.js.map +1 -0
  1006. package/fesm2015/theseam-ui-common-viewers.js +328 -0
  1007. package/fesm2015/theseam-ui-common-viewers.js.map +1 -0
  1008. package/fesm2015/theseam-ui-common-widget.js +1187 -0
  1009. package/fesm2015/theseam-ui-common-widget.js.map +1 -0
  1010. package/fesm2015/theseam-ui-common.js +47 -0
  1011. package/fesm2015/theseam-ui-common.js.map +1 -0
  1012. package/footer-bar/footer-bar/footer-bar.component.d.ts +5 -0
  1013. package/footer-bar/footer-bar.module.d.ts +2 -0
  1014. package/footer-bar/package.json +11 -0
  1015. package/footer-bar/public-api.d.ts +2 -0
  1016. package/footer-bar/theseam-ui-common-footer-bar.d.ts +4 -0
  1017. package/footer-bar/theseam-ui-common-footer-bar.metadata.json +1 -0
  1018. package/form-field/form-field-error.directive.d.ts +12 -0
  1019. package/form-field/form-field-help-text.directive.d.ts +5 -0
  1020. package/form-field/form-field-label-tpl.directive.d.ts +5 -0
  1021. package/form-field/form-field-required-indicator.component.d.ts +9 -0
  1022. package/form-field/form-field.component.d.ts +114 -0
  1023. package/form-field/form-field.module.d.ts +2 -0
  1024. package/form-field/input.directive.d.ts +72 -0
  1025. package/form-field/package.json +11 -0
  1026. package/form-field/public-api.d.ts +7 -0
  1027. package/form-field/theseam-ui-common-form-field.d.ts +4 -0
  1028. package/form-field/theseam-ui-common-form-field.metadata.json +1 -0
  1029. package/form-field-error/form-field-error/form-field-error.component.d.ts +8 -0
  1030. package/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.d.ts +9 -0
  1031. package/form-field-error/form-field-error-list/form-field-error-list-item.directive.d.ts +6 -0
  1032. package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +63 -0
  1033. package/form-field-error/form-field-error.module.d.ts +2 -0
  1034. package/form-field-error/package.json +11 -0
  1035. package/form-field-error/public-api.d.ts +5 -0
  1036. package/form-field-error/theseam-ui-common-form-field-error.d.ts +4 -0
  1037. package/form-field-error/theseam-ui-common-form-field-error.metadata.json +1 -0
  1038. package/framework/base-layout/_base-layout-theme.scss +3 -0
  1039. package/framework/base-layout/base-layout-action.d.ts +31 -0
  1040. package/framework/base-layout/base-layout-nav.d.ts +18 -0
  1041. package/framework/base-layout/base-layout-ref.d.ts +14 -0
  1042. package/framework/base-layout/base-layout-tokens.d.ts +3 -0
  1043. package/framework/base-layout/base-layout.component.d.ts +43 -0
  1044. package/framework/base-layout/base-layout.component.scss +81 -0
  1045. package/framework/base-layout/base-layout.module.d.ts +2 -0
  1046. package/framework/base-layout/directives/base-layout-content-footer.directive.d.ts +6 -0
  1047. package/framework/base-layout/directives/base-layout-content-header.directive.d.ts +6 -0
  1048. package/framework/base-layout/directives/base-layout-content.directive.d.ts +6 -0
  1049. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +14 -0
  1050. package/framework/base-layout/directives/base-layout-side-bar.directive.d.ts +6 -0
  1051. package/framework/base-layout/directives/base-layout-top-bar.directive.d.ts +6 -0
  1052. package/framework/base-layout/index.d.ts +12 -0
  1053. package/framework/base-layout/styles/_utilities.scss +3 -0
  1054. package/framework/base-layout/styles/_variables.scss +9 -0
  1055. package/framework/dashboard/_dashboard-theme.scss +3 -0
  1056. package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +8 -0
  1057. package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.scss +0 -0
  1058. package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +11 -0
  1059. package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.scss +0 -0
  1060. package/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.d.ts +47 -0
  1061. package/framework/dashboard/dashboard-widgets/dashboard-widgets-item.d.ts +43 -0
  1062. package/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor-token.d.ts +3 -0
  1063. package/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor.d.ts +15 -0
  1064. package/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.d.ts +27 -0
  1065. package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.d.ts +58 -0
  1066. package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +48 -0
  1067. package/framework/dashboard/dashboard-widgets/dashboard-widgets.service.d.ts +34 -0
  1068. package/framework/dashboard/dashboard.component.d.ts +8 -0
  1069. package/framework/dashboard/dashboard.component.scss +0 -0
  1070. package/framework/dashboard/dashboard.module.d.ts +2 -0
  1071. package/framework/dashboard/index.d.ts +11 -0
  1072. package/framework/dashboard/styles/_utilities.scss +3 -0
  1073. package/framework/dashboard/styles/_variables.scss +2 -0
  1074. package/framework/dynamic-router/dynamic-route-def.d.ts +8 -0
  1075. package/framework/dynamic-router/dynamic-router.module.d.ts +2 -0
  1076. package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.d.ts +5 -0
  1077. package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +23 -0
  1078. package/framework/dynamic-router/index.d.ts +5 -0
  1079. package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +7 -0
  1080. package/framework/package.json +11 -0
  1081. package/framework/public-api.d.ts +6 -0
  1082. package/framework/schema-form/index.d.ts +3 -0
  1083. package/framework/schema-form/schema-form-framework.component.d.ts +5 -0
  1084. package/framework/schema-form/schema-form-framework.d.ts +18 -0
  1085. package/framework/schema-form/schema-form.module.d.ts +2 -0
  1086. package/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.d.ts +21 -0
  1087. package/framework/schema-form-controls/schema-form-controls.module.d.ts +2 -0
  1088. package/framework/schema-form-controls/schema-form-input/schema-form-input.component.d.ts +19 -0
  1089. package/framework/schema-form-controls/schema-form-number/schema-form-number.component.d.ts +22 -0
  1090. package/framework/schema-form-controls/schema-form-select/schema-form-select.component.d.ts +20 -0
  1091. package/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.d.ts +18 -0
  1092. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +34 -0
  1093. package/framework/side-nav/_side-nav-theme.scss +5 -0
  1094. package/framework/side-nav/index.d.ts +6 -0
  1095. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +65 -0
  1096. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +158 -0
  1097. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +11 -0
  1098. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +32 -0
  1099. package/framework/side-nav/side-nav-utils.d.ts +18 -0
  1100. package/framework/side-nav/side-nav.component.d.ts +40 -0
  1101. package/framework/side-nav/side-nav.component.scss +47 -0
  1102. package/framework/side-nav/side-nav.models.d.ts +64 -0
  1103. package/framework/side-nav/side-nav.module.d.ts +2 -0
  1104. package/framework/side-nav/side-nav.service.d.ts +21 -0
  1105. package/framework/side-nav/styles/_themes/light/_variables.scss +29 -0
  1106. package/framework/side-nav/styles/_themes/primary/_variables.scss +31 -0
  1107. package/framework/side-nav/styles/_utilities.scss +3 -0
  1108. package/framework/side-nav/styles/_variables.scss +2 -0
  1109. package/framework/theseam-ui-common-framework.d.ts +12 -0
  1110. package/framework/theseam-ui-common-framework.metadata.json +1 -0
  1111. package/framework/top-bar/index.d.ts +7 -0
  1112. package/framework/top-bar/top-bar-item.directive.d.ts +5 -0
  1113. package/framework/top-bar/top-bar-menu-btn-detail.directive.d.ts +5 -0
  1114. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +20 -0
  1115. package/framework/top-bar/top-bar-menu.directive.d.ts +5 -0
  1116. package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +7 -0
  1117. package/framework/top-bar/top-bar.component.d.ts +59 -0
  1118. package/framework/top-bar/top-bar.module.d.ts +2 -0
  1119. package/graphql/models/direction.d.ts +6 -0
  1120. package/graphql/models/hint-definition.d.ts +7 -0
  1121. package/graphql/models/hint-transform-operation.d.ts +5 -0
  1122. package/graphql/models/hint-transformer.d.ts +3 -0
  1123. package/graphql/models/hints-kind.d.ts +7 -0
  1124. package/graphql/models/hints-token.d.ts +7 -0
  1125. package/graphql/models/index.d.ts +8 -0
  1126. package/graphql/models/query-processing-config.d.ts +9 -0
  1127. package/graphql/models/variable.d.ts +5 -0
  1128. package/graphql/package.json +11 -0
  1129. package/graphql/public-api.d.ts +1 -0
  1130. package/graphql/theseam-ui-common-graphql.d.ts +4 -0
  1131. package/graphql/theseam-ui-common-graphql.metadata.json +1 -0
  1132. package/graphql/utils/contains-variable.d.ts +2 -0
  1133. package/graphql/utils/gql-var.d.ts +3 -0
  1134. package/graphql/utils/hints-tokens-containing-hint.d.ts +2 -0
  1135. package/graphql/utils/index.d.ts +10 -0
  1136. package/graphql/utils/inline-variables.d.ts +2 -0
  1137. package/graphql/utils/parse-comments.d.ts +2 -0
  1138. package/graphql/utils/parse-hints.d.ts +17 -0
  1139. package/graphql/utils/remove-variable-definition.d.ts +2 -0
  1140. package/graphql/utils/remove-variable-definitions-not-defined.d.ts +3 -0
  1141. package/graphql/utils/remove-variable.d.ts +2 -0
  1142. package/graphql/utils/to-gql.d.ts +1 -0
  1143. package/icon/icon/icon.component.d.ts +54 -0
  1144. package/icon/icon-btn/icon-btn.component.d.ts +74 -0
  1145. package/icon/icon-notification/icon-notification.component.d.ts +47 -0
  1146. package/icon/icon.d.ts +2 -0
  1147. package/icon/icon.module.d.ts +2 -0
  1148. package/icon/package.json +11 -0
  1149. package/icon/public-api.d.ts +6 -0
  1150. package/icon/theseam-ui-common-icon.d.ts +4 -0
  1151. package/icon/theseam-ui-common-icon.metadata.json +1 -0
  1152. package/icon/utils/file-extension-icon.d.ts +3 -0
  1153. package/icon/utils/get-known-icon.d.ts +2 -0
  1154. package/icon/utils/index.d.ts +2 -0
  1155. package/layout/breakpoint-aliases.d.ts +20 -0
  1156. package/layout/layout.module.d.ts +2 -0
  1157. package/layout/layout.service.d.ts +12 -0
  1158. package/layout/observe-media-query.d.ts +8 -0
  1159. package/layout/package.json +11 -0
  1160. package/layout/public-api.d.ts +4 -0
  1161. package/layout/theseam-ui-common-layout.d.ts +4 -0
  1162. package/layout/theseam-ui-common-layout.metadata.json +1 -0
  1163. package/loading/loading/loading.component.d.ts +9 -0
  1164. package/loading/loading-overlay.service.d.ts +13 -0
  1165. package/loading/loading-themes.d.ts +3 -0
  1166. package/loading/loading.models.d.ts +1 -0
  1167. package/loading/loading.module.d.ts +4 -0
  1168. package/loading/package.json +11 -0
  1169. package/loading/public-api.d.ts +5 -0
  1170. package/loading/theseam-ui-common-loading.d.ts +4 -0
  1171. package/loading/theseam-ui-common-loading.metadata.json +1 -0
  1172. package/menu/menu-animations.d.ts +8 -0
  1173. package/menu/menu-divider.component.d.ts +2 -0
  1174. package/menu/menu-footer/menu-footer.component.d.ts +9 -0
  1175. package/menu/menu-footer-action/menu-footer-action.component.d.ts +19 -0
  1176. package/menu/menu-header/menu-header.component.d.ts +9 -0
  1177. package/menu/menu-item.component.d.ts +41 -0
  1178. package/menu/menu-panel-token.d.ts +6 -0
  1179. package/menu/menu-panel.d.ts +20 -0
  1180. package/menu/menu-toggle.directive.d.ts +53 -0
  1181. package/menu/menu.component.d.ts +62 -0
  1182. package/menu/menu.module.d.ts +2 -0
  1183. package/menu/package.json +11 -0
  1184. package/menu/public-api.d.ts +11 -0
  1185. package/menu/theseam-ui-common-menu.d.ts +4 -0
  1186. package/menu/theseam-ui-common-menu.metadata.json +1 -0
  1187. package/modal/directives/modal-close.directive.d.ts +20 -0
  1188. package/modal/directives/modal-footer-tpl.directive.d.ts +5 -0
  1189. package/modal/directives/modal-header-icon-tpl.directive.d.ts +5 -0
  1190. package/modal/directives/modal-header-title-tpl.directive.d.ts +5 -0
  1191. package/modal/directives/modal-title.directive.d.ts +6 -0
  1192. package/modal/directives/modal.directive.d.ts +8 -0
  1193. package/modal/modal/modal.component.d.ts +56 -0
  1194. package/modal/modal-body/modal-body.component.d.ts +7 -0
  1195. package/modal/modal-config.d.ts +93 -0
  1196. package/modal/modal-container/modal-container.component.d.ts +77 -0
  1197. package/modal/modal-footer/modal-footer.component.d.ts +6 -0
  1198. package/modal/modal-header/modal-header.component.d.ts +11 -0
  1199. package/modal/modal-injectors.d.ts +23 -0
  1200. package/modal/modal-ref.d.ts +50 -0
  1201. package/modal/modal-utils.d.ts +8 -0
  1202. package/modal/modal.models.d.ts +24 -0
  1203. package/modal/modal.module.d.ts +2 -0
  1204. package/modal/modal.service.d.ts +95 -0
  1205. package/modal/package.json +11 -0
  1206. package/modal/public-api.d.ts +19 -0
  1207. package/modal/route-modal/route-modal.component.d.ts +16 -0
  1208. package/modal/theseam-ui-common-modal.d.ts +4 -0
  1209. package/modal/theseam-ui-common-modal.metadata.json +1 -0
  1210. package/models/component-type.d.ts +2 -0
  1211. package/models/http-status-codes.d.ts +18 -0
  1212. package/models/package.json +11 -0
  1213. package/models/public-api.d.ts +7 -0
  1214. package/models/size-prefixes.d.ts +1 -0
  1215. package/models/size-types.d.ts +1 -0
  1216. package/models/theme-names.d.ts +2 -0
  1217. package/models/theme-prefixes.d.ts +1 -0
  1218. package/models/theme-types.d.ts +2 -0
  1219. package/models/theseam-ui-common-models.d.ts +4 -0
  1220. package/models/theseam-ui-common-models.metadata.json +1 -0
  1221. package/package.json +61 -0
  1222. package/popover/package.json +11 -0
  1223. package/popover/popover/popover.component.d.ts +44 -0
  1224. package/popover/popover-animations.d.ts +4 -0
  1225. package/popover/popover.directive.d.ts +57 -0
  1226. package/popover/popover.module.d.ts +2 -0
  1227. package/popover/public-api.d.ts +4 -0
  1228. package/popover/theseam-ui-common-popover.d.ts +4 -0
  1229. package/popover/theseam-ui-common-popover.metadata.json +1 -0
  1230. package/progress/package.json +11 -0
  1231. package/progress/progress-circle/_progress-circle-theme.scss +3 -0
  1232. package/progress/progress-circle/progress-circle.component.d.ts +27 -0
  1233. package/progress/progress-circle/progress-circle.component.scss +105 -0
  1234. package/progress/progress-circle/styles/_utilities.scss +3 -0
  1235. package/progress/progress-circle/styles/_variables.scss +8 -0
  1236. package/progress/progress.module.d.ts +2 -0
  1237. package/progress/public-api.d.ts +2 -0
  1238. package/progress/theseam-ui-common-progress.d.ts +4 -0
  1239. package/progress/theseam-ui-common-progress.metadata.json +1 -0
  1240. package/public_api.d.ts +2 -0
  1241. package/scrollbar/overlay-scrollbar.directive.d.ts +21 -0
  1242. package/scrollbar/overlay-scrollbars-config-model.d.ts +2 -0
  1243. package/scrollbar/overlay-scrollbars-config.d.ts +51 -0
  1244. package/scrollbar/overlay-scrollbars.service.d.ts +20 -0
  1245. package/scrollbar/package.json +11 -0
  1246. package/scrollbar/public-api.d.ts +5 -0
  1247. package/scrollbar/scrollbar.module.d.ts +2 -0
  1248. package/scrollbar/theseam-ui-common-scrollbar.d.ts +4 -0
  1249. package/scrollbar/theseam-ui-common-scrollbar.metadata.json +1 -0
  1250. package/services/asset-loader.service.d.ts +13 -0
  1251. package/services/font-loader.service.d.ts +43 -0
  1252. package/services/package.json +11 -0
  1253. package/services/public-api.d.ts +3 -0
  1254. package/services/router-helpers.service.d.ts +7 -0
  1255. package/services/theseam-ui-common-services.d.ts +4 -0
  1256. package/services/theseam-ui-common-services.metadata.json +1 -0
  1257. package/shared/components/index.d.ts +1 -0
  1258. package/shared/components/password-input-reveal/password-input-reveal.component.d.ts +14 -0
  1259. package/shared/directives/auto-focus.directive.d.ts +15 -0
  1260. package/shared/directives/click-outside.directive.d.ts +10 -0
  1261. package/shared/directives/disable-control.directive.d.ts +6 -0
  1262. package/shared/directives/elem-resized.directive.d.ts +17 -0
  1263. package/shared/directives/hover-class-toggle.directive.d.ts +33 -0
  1264. package/shared/directives/hover-class.directive.d.ts +28 -0
  1265. package/shared/directives/index.d.ts +8 -0
  1266. package/shared/directives/ng-select-extra.directive.d.ts +39 -0
  1267. package/shared/directives/ngx-quill-extra.directive.d.ts +20 -0
  1268. package/shared/package.json +11 -0
  1269. package/shared/pipes/index.d.ts +2 -0
  1270. package/shared/pipes/mask-chars.pipe.d.ts +4 -0
  1271. package/shared/pipes/truncate.pipe.d.ts +4 -0
  1272. package/shared/public-api.d.ts +4 -0
  1273. package/shared/shared.module.d.ts +2 -0
  1274. package/shared/theseam-ui-common-shared.d.ts +4 -0
  1275. package/shared/theseam-ui-common-shared.metadata.json +1 -0
  1276. package/storage/local-storage.service.d.ts +28 -0
  1277. package/storage/localstorage-memory.d.ts +37 -0
  1278. package/storage/package.json +11 -0
  1279. package/storage/public-api.d.ts +1 -0
  1280. package/storage/theseam-ui-common-storage.d.ts +4 -0
  1281. package/storage/theseam-ui-common-storage.metadata.json +1 -0
  1282. package/story-helpers/arg-type-helpers.d.ts +5 -0
  1283. package/story-helpers/args-to-tpl.d.ts +24 -0
  1284. package/story-helpers/initial-route-factory.d.ts +2 -0
  1285. package/story-helpers/initial-route.service.d.ts +7 -0
  1286. package/story-helpers/on-story-bootstrapped-exec.d.ts +29 -0
  1287. package/story-helpers/on-story-bootstrapped-trigger.d.ts +23 -0
  1288. package/story-helpers/package.json +11 -0
  1289. package/story-helpers/public-api.d.ts +14 -0
  1290. package/story-helpers/route-button.d.ts +5 -0
  1291. package/story-helpers/routes-arg-type.d.ts +2 -0
  1292. package/story-helpers/story-empty-with-route.component.d.ts +2 -0
  1293. package/story-helpers/story-empty.component.d.ts +2 -0
  1294. package/story-helpers/story-helper-components.module.d.ts +2 -0
  1295. package/story-helpers/story-initial-route.d.ts +4 -0
  1296. package/story-helpers/story-modal-container.component.d.ts +20 -0
  1297. package/story-helpers/story-toastr.service.d.ts +30 -0
  1298. package/story-helpers/theseam-ui-common-story-helpers.d.ts +4 -0
  1299. package/story-helpers/theseam-ui-common-story-helpers.metadata.json +1 -0
  1300. package/styles/_storybook-fixes.scss +7 -0
  1301. package/styles/_variables.scss +0 -0
  1302. package/styles/bootstrap/_bootstrap.scss +45 -0
  1303. package/styles/bootstrap/_bs-styles.scss +105 -0
  1304. package/styles/bootstrap/_bs-utilities.scss +5 -0
  1305. package/styles/bootstrap/_bs-variables.scss +141 -0
  1306. package/styles/common/_forms.scss +15 -0
  1307. package/styles/common/_global.scss +9 -0
  1308. package/styles/common/_hacks.scss +14 -0
  1309. package/styles/common/_table.scss +124 -0
  1310. package/styles/common/_text.scss +1 -0
  1311. package/styles/theme.scss +19 -0
  1312. package/styles/utilities.scss +14 -0
  1313. package/styles/vendor/_vendor.scss +3 -0
  1314. package/styles/vendor/ng-select/_ng-select-bs4.scss +445 -0
  1315. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +108 -0
  1316. package/styles/vendor/quill/_quill.scss +26 -0
  1317. package/tabbed/directives/tabbed-tab-content.directive.d.ts +4 -0
  1318. package/tabbed/directives/tabbed-tab.directive.d.ts +9 -0
  1319. package/tabbed/package.json +11 -0
  1320. package/tabbed/public-api.d.ts +7 -0
  1321. package/tabbed/tabbed-content/tabbed-content.component.d.ts +7 -0
  1322. package/tabbed/tabbed-item/tabbed-item.component.d.ts +14 -0
  1323. package/tabbed/tabbed.component.d.ts +36 -0
  1324. package/tabbed/tabbed.module.d.ts +2 -0
  1325. package/tabbed/tabbed.service.d.ts +8 -0
  1326. package/tabbed/theseam-ui-common-tabbed.d.ts +4 -0
  1327. package/tabbed/theseam-ui-common-tabbed.metadata.json +1 -0
  1328. package/table/package.json +11 -0
  1329. package/table/public-api.d.ts +2 -0
  1330. package/table/table/table.component.d.ts +43 -0
  1331. package/table/table.module.d.ts +2 -0
  1332. package/table/theseam-ui-common-table.d.ts +4 -0
  1333. package/table/theseam-ui-common-table.metadata.json +1 -0
  1334. package/table-cell-type/package.json +11 -0
  1335. package/table-cell-type/public-api.d.ts +11 -0
  1336. package/table-cell-type/services/table-cell-types-helpers.service.d.ts +15 -0
  1337. package/table-cell-type/table-cell-type-action.d.ts +13 -0
  1338. package/table-cell-type/table-cell-type-column.d.ts +12 -0
  1339. package/table-cell-type/table-cell-type-config.d.ts +12 -0
  1340. package/table-cell-type/table-cell-type-export-props.d.ts +15 -0
  1341. package/table-cell-type/table-cell-type-manifest-provider.d.ts +7 -0
  1342. package/table-cell-type/table-cell-type-models.d.ts +39 -0
  1343. package/table-cell-type/table-cell-type-name.d.ts +1 -0
  1344. package/table-cell-type/table-cell-type-selector.component.d.ts +25 -0
  1345. package/table-cell-type/table-cell-type-tokens.d.ts +4 -0
  1346. package/table-cell-type/table-cell-type.module.d.ts +2 -0
  1347. package/table-cell-type/theseam-ui-common-table-cell-type.d.ts +4 -0
  1348. package/table-cell-type/theseam-ui-common-table-cell-type.metadata.json +1 -0
  1349. package/table-cell-types/package.json +11 -0
  1350. package/table-cell-types/public-api.d.ts +15 -0
  1351. package/table-cell-types/table-cell-type-date/table-cell-type-date-config.d.ts +9 -0
  1352. package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +12 -0
  1353. package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +3 -0
  1354. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +3 -0
  1355. package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +34 -0
  1356. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +53 -0
  1357. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +3 -0
  1358. package/table-cell-types/table-cell-type-manifests.d.ts +10 -0
  1359. package/table-cell-types/table-cell-type-phone/table-cell-type-phone-config.d.ts +13 -0
  1360. package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +17 -0
  1361. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +29 -0
  1362. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +48 -0
  1363. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +49 -0
  1364. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +21 -0
  1365. package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +10 -0
  1366. package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +45 -0
  1367. package/table-cell-types/table-cell-types.module.d.ts +2 -0
  1368. package/table-cell-types/theseam-ui-common-table-cell-types.d.ts +6 -0
  1369. package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -0
  1370. package/tel-input/intl-tel-input.d.ts +300 -0
  1371. package/tel-input/models/index.d.ts +2 -0
  1372. package/tel-input/models/tel-input-country-data.d.ts +9 -0
  1373. package/tel-input/models/tel-input-number-format-name.d.ts +4 -0
  1374. package/tel-input/package.json +11 -0
  1375. package/tel-input/phone-number.pipe.d.ts +11 -0
  1376. package/tel-input/public-api.d.ts +9 -0
  1377. package/tel-input/tel-input/tel-input.component.d.ts +83 -0
  1378. package/tel-input/tel-input-constants.d.ts +4 -0
  1379. package/tel-input/tel-input-validator.d.ts +7 -0
  1380. package/tel-input/tel-input.directive.d.ts +28 -0
  1381. package/tel-input/tel-input.module.d.ts +2 -0
  1382. package/tel-input/theseam-ui-common-tel-input.d.ts +4 -0
  1383. package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -0
  1384. package/tel-input/utils/add-country-code.d.ts +7 -0
  1385. package/tel-input/utils/coerce-phone-number-format.d.ts +7 -0
  1386. package/tel-input/utils/get-country-code.d.ts +2 -0
  1387. package/tel-input/utils/get-dial-code.d.ts +9 -0
  1388. package/tel-input/utils/get-global-intl-tel-input-globals.d.ts +2 -0
  1389. package/tel-input/utils/get-global-intl-tel-input-utils.d.ts +2 -0
  1390. package/tel-input/utils/get-intl-tel-input-utils.d.ts +2 -0
  1391. package/tel-input/utils/get-validation-error-message.d.ts +5 -0
  1392. package/tel-input/utils/index.d.ts +9 -0
  1393. package/tel-input/utils/process-country-codes.d.ts +8 -0
  1394. package/test-helpers/package.json +11 -0
  1395. package/test-helpers/public-api.d.ts +1 -0
  1396. package/test-helpers/theseam-ui-common-test-helpers.d.ts +4 -0
  1397. package/test-helpers/theseam-ui-common-test-helpers.metadata.json +1 -0
  1398. package/test-helpers/tick-helper.d.ts +70 -0
  1399. package/theseam-ui-common.d.ts +4 -0
  1400. package/theseam-ui-common.metadata.json +1 -0
  1401. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +50 -0
  1402. package/tiled-select/components/tiled-select-tile/tiled-select-tile.component.d.ts +41 -0
  1403. package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +26 -0
  1404. package/tiled-select/directives/tiled-select-tile-icon-tpl.directive.d.ts +5 -0
  1405. package/tiled-select/directives/tiled-select-tile-label-tpl.directive.d.ts +5 -0
  1406. package/tiled-select/directives/tiled-select-tile-overlay.directive.d.ts +7 -0
  1407. package/tiled-select/package.json +11 -0
  1408. package/tiled-select/public-api.d.ts +8 -0
  1409. package/tiled-select/theseam-ui-common-tiled-select.d.ts +4 -0
  1410. package/tiled-select/theseam-ui-common-tiled-select.metadata.json +1 -0
  1411. package/tiled-select/tiled-select.models.d.ts +11 -0
  1412. package/tiled-select/tiled-select.module.d.ts +2 -0
  1413. package/toggle-edit/models/can-toggle-edit.d.ts +7 -0
  1414. package/toggle-edit/models/index.d.ts +2 -0
  1415. package/toggle-edit/models/toggle-edit-ref.d.ts +30 -0
  1416. package/toggle-edit/package.json +11 -0
  1417. package/toggle-edit/public-api.d.ts +6 -0
  1418. package/toggle-edit/theseam-ui-common-toggle-edit.d.ts +4 -0
  1419. package/toggle-edit/theseam-ui-common-toggle-edit.metadata.json +1 -0
  1420. package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +5 -0
  1421. package/toggle-edit/toggle-edit-display-tpl.directive.d.ts +5 -0
  1422. package/toggle-edit/toggle-edit-keyboard-listener.service.d.ts +14 -0
  1423. package/toggle-edit/toggle-edit.component.d.ts +90 -0
  1424. package/toggle-edit/toggle-edit.module.d.ts +2 -0
  1425. package/toggle-group/package.json +11 -0
  1426. package/toggle-group/public-api.d.ts +3 -0
  1427. package/toggle-group/theseam-ui-common-toggle-group.d.ts +4 -0
  1428. package/toggle-group/theseam-ui-common-toggle-group.metadata.json +1 -0
  1429. package/toggle-group/toggle-group-option.directive.d.ts +15 -0
  1430. package/toggle-group/toggle-group.directive.d.ts +36 -0
  1431. package/toggle-group/toggle-group.module.d.ts +2 -0
  1432. package/unsaved-changes-dialog/package.json +11 -0
  1433. package/unsaved-changes-dialog/public-api.d.ts +4 -0
  1434. package/unsaved-changes-dialog/theseam-ui-common-unsaved-changes-dialog.d.ts +4 -0
  1435. package/unsaved-changes-dialog/theseam-ui-common-unsaved-changes-dialog.metadata.json +1 -0
  1436. package/unsaved-changes-dialog/unsaved-changes-can-deactivate.d.ts +4 -0
  1437. package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +5 -0
  1438. package/unsaved-changes-dialog/unsaved-changes-dialog.guard.d.ts +8 -0
  1439. package/unsaved-changes-dialog/unsaved-changes-dialog.module.d.ts +2 -0
  1440. package/utils/calc-percentage.d.ts +1 -0
  1441. package/utils/cdk/get-closest-widget-cdk-drag.d.ts +8 -0
  1442. package/utils/create-padding.d.ts +1 -0
  1443. package/utils/file-utils.d.ts +12 -0
  1444. package/utils/form/get-control-name.d.ts +22 -0
  1445. package/utils/form/get-control-path.d.ts +27 -0
  1446. package/utils/form/has-required-control.d.ts +31 -0
  1447. package/utils/form/is-empty-input-value.d.ts +1 -0
  1448. package/utils/form/observe-control-is-different.d.ts +13 -0
  1449. package/utils/form/observe-control-status.d.ts +7 -0
  1450. package/utils/form/observe-control-valid.d.ts +14 -0
  1451. package/utils/form/observe-control-value-change.d.ts +9 -0
  1452. package/utils/form/observe-control-value.d.ts +6 -0
  1453. package/utils/form/wait-on-non-pending-status.d.ts +12 -0
  1454. package/utils/fractional-digits-count.d.ts +8 -0
  1455. package/utils/get-attribute.d.ts +4 -0
  1456. package/utils/has-attribute.d.ts +4 -0
  1457. package/utils/has-property.d.ts +1 -0
  1458. package/utils/input-masks.d.ts +1 -0
  1459. package/utils/is-absolute-url.d.ts +1 -0
  1460. package/utils/is-null-or-undefined.d.ts +1 -0
  1461. package/utils/is-numeric.d.ts +1 -0
  1462. package/utils/load-style-sheet.d.ts +1 -0
  1463. package/utils/load-style.d.ts +1 -0
  1464. package/utils/not-null-or-undefined.d.ts +1 -0
  1465. package/utils/obj-utils.d.ts +8 -0
  1466. package/utils/observe-query-list.d.ts +3 -0
  1467. package/utils/operators/index.d.ts +2 -0
  1468. package/utils/operators/map-each.d.ts +2 -0
  1469. package/utils/operators/tap-first.d.ts +5 -0
  1470. package/utils/package.json +11 -0
  1471. package/utils/pad-end.d.ts +1 -0
  1472. package/utils/pad-start.d.ts +1 -0
  1473. package/utils/polling-ticker.d.ts +13 -0
  1474. package/utils/public-api.d.ts +37 -0
  1475. package/utils/refreshable.d.ts +20 -0
  1476. package/utils/router/index.d.ts +6 -0
  1477. package/utils/router/is-empty-url-route.d.ts +2 -0
  1478. package/utils/router/leaf-child-route.d.ts +2 -0
  1479. package/utils/router/operators/activated-routes-with-data-property.d.ts +7 -0
  1480. package/utils/router/route-snapshot-path-full.d.ts +2 -0
  1481. package/utils/router/route-snapshot-path-relative.d.ts +2 -0
  1482. package/utils/router/will-have-data-prop.d.ts +2 -0
  1483. package/utils/subscriber-count.d.ts +1 -0
  1484. package/utils/theseam-ui-common-utils.d.ts +4 -0
  1485. package/utils/theseam-ui-common-utils.metadata.json +1 -0
  1486. package/utils/toggle-attribute.d.ts +16 -0
  1487. package/utils/wait-on-condition-async.d.ts +1 -0
  1488. package/utils/wrap-into-observable.d.ts +2 -0
  1489. package/validators/decimal.validator.d.ts +9 -0
  1490. package/validators/email-exists.validator.d.ts +10 -0
  1491. package/validators/integer.validator.d.ts +9 -0
  1492. package/validators/package.json +11 -0
  1493. package/validators/phone-length.validator.d.ts +7 -0
  1494. package/validators/public-api.d.ts +5 -0
  1495. package/validators/tax-id.validator.d.ts +11 -0
  1496. package/validators/theseam-ui-common-validators.d.ts +4 -0
  1497. package/validators/theseam-ui-common-validators.metadata.json +1 -0
  1498. package/viewers/package.json +11 -0
  1499. package/viewers/pdf-viewer/index.d.ts +3 -0
  1500. package/viewers/pdf-viewer/pdf-page/pdf-page.component.d.ts +39 -0
  1501. package/viewers/pdf-viewer/pdf-renderer.service.d.ts +6 -0
  1502. package/viewers/pdf-viewer/pdf-viewer.component.d.ts +59 -0
  1503. package/viewers/pdf-viewer/pdf-viewer.module.d.ts +2 -0
  1504. package/viewers/public-api.d.ts +1 -0
  1505. package/viewers/theseam-ui-common-viewers.d.ts +4 -0
  1506. package/viewers/theseam-ui-common-viewers.metadata.json +1 -0
  1507. package/widget/_widget-theme.scss +15 -0
  1508. package/widget/directives/widget-drag-handle.directive.d.ts +53 -0
  1509. package/widget/directives/widget-icon-tpl.directive.d.ts +5 -0
  1510. package/widget/directives/widget-title-tpl.directive.d.ts +5 -0
  1511. package/widget/package.json +11 -0
  1512. package/widget/public-api.d.ts +37 -0
  1513. package/widget/styles/_utilities.scss +3 -0
  1514. package/widget/styles/_variables.scss +27 -0
  1515. package/widget/theseam-ui-common-widget.d.ts +4 -0
  1516. package/widget/theseam-ui-common-widget.metadata.json +1 -0
  1517. package/widget/widget/widget.component.d.ts +78 -0
  1518. package/widget/widget/widget.component.scss +107 -0
  1519. package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +5 -0
  1520. package/widget/widget-content-components/widget-button-group/widget-button-group.component.scss +3 -0
  1521. package/widget/widget-content-components/widget-button-group/widget-button-group.module.d.ts +2 -0
  1522. package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +5 -0
  1523. package/widget/widget-content-components/widget-content-header/widget-content-header.component.scss +6 -0
  1524. package/widget/widget-content-components/widget-content-header/widget-content-header.module.d.ts +2 -0
  1525. package/widget/widget-content-components/widget-description/widget-description.component.d.ts +2 -0
  1526. package/widget/widget-content-components/widget-description/widget-description.component.scss +0 -0
  1527. package/widget/widget-content-components/widget-description/widget-description.module.d.ts +2 -0
  1528. package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +15 -0
  1529. package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.scss +9 -0
  1530. package/widget/widget-content-components/widget-empty-label/widget-empty-label.module.d.ts +2 -0
  1531. package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +5 -0
  1532. package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.scss +8 -0
  1533. package/widget/widget-content-components/widget-footer-link/widget-footer-link.module.d.ts +2 -0
  1534. package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +5 -0
  1535. package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.scss +7 -0
  1536. package/widget/widget-content-components/widget-footer-text/widget-footer-text.module.d.ts +2 -0
  1537. package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +12 -0
  1538. package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.scss +5 -0
  1539. package/widget/widget-content-components/widget-header-badge/widget-header-badge.module.d.ts +2 -0
  1540. package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.d.ts +5 -0
  1541. package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +57 -0
  1542. package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.scss +0 -0
  1543. package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +5 -0
  1544. package/widget/widget-content-components/widget-list-group/widget-list-group.component.scss +0 -0
  1545. package/widget/widget-content-components/widget-list-group/widget-list-group.module.d.ts +2 -0
  1546. package/widget/widget-content-components/widget-table/widget-table.component.d.ts +14 -0
  1547. package/widget/widget-content-components/widget-table/widget-table.component.scss +0 -0
  1548. package/widget/widget-content-components/widget-table/widget-table.module.d.ts +2 -0
  1549. package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +5 -0
  1550. package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.scss +0 -0
  1551. package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +15 -0
  1552. package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.scss +5 -0
  1553. package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +5 -0
  1554. package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.scss +14 -0
  1555. package/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.d.ts +5 -0
  1556. package/widget/widget-content-components/widget-tile/widget-tile.component.d.ts +44 -0
  1557. package/widget/widget-content-components/widget-tile/widget-tile.component.scss +70 -0
  1558. package/widget/widget-content-components/widget-tile/widget-tile.module.d.ts +2 -0
  1559. package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +5 -0
  1560. package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.scss +6 -0
  1561. package/widget/widget-content-components/widget-tile-list/widget-tile-list.module.d.ts +2 -0
  1562. package/widget/widget-footer/widget-footer.component.d.ts +5 -0
  1563. package/widget/widget-footer/widget-footer.component.scss +16 -0
  1564. package/widget/widget-registry.models.d.ts +20 -0
  1565. package/widget/widget-registry.service.d.ts +16 -0
  1566. package/widget/widget-token.d.ts +3 -0
  1567. package/widget/widget.module.d.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theseam-ui-common-framework.js","sources":["../../../projects/ui-common/framework/base-layout/directives/base-layout-content-footer.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-content-header.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-content.directive.ts","../../../projects/ui-common/framework/base-layout/base-layout-tokens.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-nav-toggle.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-side-bar.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-top-bar.directive.ts","../../../projects/ui-common/framework/base-layout/base-layout.component.ts","../../../projects/ui-common/framework/base-layout/base-layout.module.ts","../../../projects/ui-common/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor-token.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets.service.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets.component.ts","../../../projects/ui-common/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.ts","../../../projects/ui-common/framework/dashboard/dashboard.component.ts","../../../projects/ui-common/framework/dashboard/dashboard.module.ts","../../../projects/ui-common/framework/side-nav/side-nav-utils.ts","../../../projects/ui-common/framework/side-nav/side-nav.service.ts","../../../projects/ui-common/framework/side-nav/side-nav.component.ts","../../../projects/ui-common/framework/side-nav/side-nav-item/side-nav-item.component.ts","../../../projects/ui-common/framework/side-nav/side-nav-toggle/side-nav-toggle.component.ts","../../../projects/ui-common/framework/side-nav/side-nav.module.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.ts","../../../projects/ui-common/framework/top-bar/top-bar-title/top-bar-title.component.ts","../../../projects/ui-common/framework/top-bar/top-bar-item.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu-btn-detail.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar.component.ts","../../../projects/ui-common/framework/top-bar/top-bar.module.ts","../../../projects/ui-common/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.ts","../../../projects/ui-common/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.ts","../../../projects/ui-common/framework/dynamic-router/resolvers/hierarchy-level.resolver.ts","../../../projects/ui-common/framework/dynamic-router/dynamic-router.module.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-input/schema-form-input.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-number/schema-form-number.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-select/schema-form-select.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.ts","../../../projects/ui-common/framework/schema-form/schema-form-framework.component.ts","../../../projects/ui-common/framework/schema-form/schema-form-framework.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-controls.module.ts","../../../projects/ui-common/framework/schema-form/schema-form.module.ts","../../../projects/ui-common/framework/theseam-ui-common-framework.ts"],"sourcesContent":["import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContentFooter]'\n})\nexport class BaseLayoutContentFooterDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContentHeader]'\n})\nexport class BaseLayoutContentHeaderDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContent]'\n})\nexport class BaseLayoutContentDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamBaseLayoutRef } from './base-layout-ref'\n\nexport const THESEAM_BASE_LAYOUT_REF = new InjectionToken<ITheSeamBaseLayoutRef>('seamBaseLayoutRef')\n","import { Directive, HostBinding, HostListener, Inject, Input, Optional } from '@angular/core'\n\nimport type { ITheSeamBaseLayoutRef } from '../base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from '../base-layout-tokens'\n\n/**\n * Can be used to toggle the expand state of the registered nav.\n */\n@Directive({\n selector: 'button[seamBaseLayoutNavToggle]',\n exportAs: 'seamBaseLayoutNavToggle'\n})\nexport class BaseLayoutNavToggleDirective {\n\n public baseLayout: ITheSeamBaseLayoutRef | undefined\n\n @HostBinding('attr.type')\n get _attrType() { return this.type }\n\n @Input() type: string | undefined | null = 'button'\n\n @HostBinding('attr.aria-label')\n get _attrAriaLabel() { return this.ariaLabel || null }\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string | undefined | null = 'Navigation toggle'\n\n @HostListener('click')\n _onClick() {\n if (this.baseLayout && this.baseLayout.registeredNav) {\n this.baseLayout.registeredNav.toggle()\n }\n }\n\n constructor(\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) _baseLayout: ITheSeamBaseLayoutRef\n ) {\n this.baseLayout = _baseLayout\n }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutSideBar]'\n})\nexport class BaseLayoutSideBarDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutTopBar]'\n})\nexport class BaseLayoutTopBarDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { TemplatePortal } from '@angular/cdk/portal'\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n forwardRef,\n Input,\n isDevMode,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, from, isObservable, Observable } from 'rxjs'\n\nimport { faAngleDoubleLeft, faAngleDoubleRight } from '@fortawesome/free-solid-svg-icons'\n\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { BaseLayoutAction, IBaseLayoutActionButton } from './base-layout-action'\nimport { ITheSeamBaseLayoutNav } from './base-layout-nav'\nimport { ITheSeamBaseLayoutRef } from './base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from './base-layout-tokens'\nimport { BaseLayoutContentFooterDirective } from './directives/base-layout-content-footer.directive'\nimport { BaseLayoutContentHeaderDirective } from './directives/base-layout-content-header.directive'\nimport { BaseLayoutContentDirective } from './directives/base-layout-content.directive'\nimport { BaseLayoutSideBarDirective } from './directives/base-layout-side-bar.directive'\nimport { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.directive'\n\nexport const THE_SEAM_BASE_LAYOUT: any = {\n provide: THESEAM_BASE_LAYOUT_REF,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => TheSeamBaseLayoutComponent),\n multi: false,\n}\n\n@Component({\n selector: 'seam-base-layout',\n templateUrl: './base-layout.component.html',\n styleUrls: ['./base-layout.component.scss'],\n providers: [ THE_SEAM_BASE_LAYOUT ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TheSeamBaseLayoutComponent implements OnInit, ITheSeamBaseLayoutRef {\n\n faAngleDoubleRight = faAngleDoubleRight\n faAngleDoubleLeft = faAngleDoubleLeft\n\n @Input() overlayNav = false\n\n // TODO: Consider making the template queries not be dynamic. I can see this\n // potentially causing confusion or issues with potential layouts built with\n // this component.\n @ContentChild(BaseLayoutTopBarDirective, { static: true, read: TemplateRef }) _topBarTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutSideBarDirective, { static: true, read: TemplateRef }) _sideBarTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentDirective, { static: true, read: TemplateRef }) _contentTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentHeaderDirective, { static: true, read: TemplateRef }) _contentHeaderTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentFooterDirective, { static: true, read: TemplateRef }) _contentFooterTpl?: TemplateRef<any> | null\n\n _topBarPortal?: TemplatePortal\n _sideBarPortal?: TemplatePortal\n _contentPortal?: TemplatePortal\n _contentHeaderPortal?: TemplatePortal\n _contentFooterPortal?: TemplatePortal\n\n private _hasSideBar = new BehaviorSubject<boolean>(false)\n\n public hasSideBar$: Observable<boolean>\n public isMobile$: Observable<boolean>\n\n get registeredNav() { return this._registeredNav.value }\n private _registeredNav = new BehaviorSubject<ITheSeamBaseLayoutNav | undefined>(undefined)\n public registeredNav$ = this._registeredNav.asObservable()\n\n get registeredActions() { return this._registeredActions.value }\n private _registeredActions = new BehaviorSubject<BaseLayoutAction[]>([])\n public registeredActions$: Observable<BaseLayoutAction[]>\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _layout: TheSeamLayoutService\n ) {\n this.registeredActions$ = this._registeredActions.asObservable()\n\n this.isMobile$ = this._layout.isMobile$\n this.hasSideBar$ = this._hasSideBar.asObservable()\n }\n\n ngOnInit() {\n if (this._topBarTpl) {\n this._topBarPortal = new TemplatePortal(this._topBarTpl, this._viewContainerRef)\n }\n\n if (this._sideBarTpl) {\n this._sideBarPortal = new TemplatePortal(this._sideBarTpl, this._viewContainerRef)\n this._hasSideBar.next(true)\n }\n\n if (this._contentTpl) {\n this._contentPortal = new TemplatePortal(this._contentTpl, this._viewContainerRef)\n }\n\n if (this._contentHeaderTpl) {\n this._contentHeaderPortal = new TemplatePortal(this._contentHeaderTpl, this._viewContainerRef)\n }\n\n if (this._contentFooterTpl) {\n this._contentFooterPortal = new TemplatePortal(this._contentFooterTpl, this._viewContainerRef)\n }\n }\n\n public registerNav(nav: ITheSeamBaseLayoutNav): void {\n // TODO: Allow multiple registered navs\n // if (this.registeredNav) {\n // throw new Error('[TheSeamBaseLayoutComponent] A nav is already registered.')\n // }\n // console.log('register nav', nav)\n this._registeredNav.next(nav)\n }\n\n public unregisterNav(nav: ITheSeamBaseLayoutNav): void {\n if (this.registeredNav === nav) {\n this._registeredNav.next(undefined)\n }\n }\n\n public registerAction(action: BaseLayoutAction): void {\n const actions = this._registeredActions.value\n if (actions.findIndex(a => a.name === action.name) !== -1) {\n if (isDevMode()) {\n console.warn(\n `[TheSeamBaseLayoutComponent] registerAction(): Action ${action.name} not ` +\n 'registered, because another action by that name is already registered.'\n )\n }\n return\n }\n actions.push(action)\n }\n\n public unregisterAction(action: BaseLayoutAction | string): void {\n const actionName = typeof action === 'string' ? action : action.name\n const actions = this._registeredActions.value\n this._registeredActions.next(actions.filter(f => f.name !== actionName))\n }\n\n public isActionRegistered(actionName: string): boolean {\n const actions = this._registeredActions.value\n const action = actions.find(f => f.name === actionName)\n return !!action\n }\n\n _handleButtonAction(action: IBaseLayoutActionButton): void {\n this._execButtonAction(action).subscribe()\n }\n\n _execButtonAction(action: IBaseLayoutActionButton): Observable<void> {\n const fnRes = action.exec()\n return isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes))\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar'\n\nimport { TheSeamBaseLayoutComponent } from './base-layout.component'\nimport { BaseLayoutContentFooterDirective } from './directives/base-layout-content-footer.directive'\nimport { BaseLayoutContentHeaderDirective } from './directives/base-layout-content-header.directive'\nimport { BaseLayoutContentDirective } from './directives/base-layout-content.directive'\nimport { BaseLayoutNavToggleDirective } from './directives/base-layout-nav-toggle.directive'\nimport { BaseLayoutSideBarDirective } from './directives/base-layout-side-bar.directive'\nimport { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.directive'\n\n\n\n@NgModule({\n declarations: [\n TheSeamBaseLayoutComponent,\n BaseLayoutContentDirective,\n BaseLayoutSideBarDirective,\n BaseLayoutTopBarDirective,\n BaseLayoutNavToggleDirective,\n BaseLayoutContentHeaderDirective,\n BaseLayoutContentFooterDirective\n ],\n imports: [\n CommonModule,\n PortalModule,\n TheSeamScrollbarModule,\n TheSeamIconModule,\n TheSeamButtonsModule\n ],\n exports: [\n TheSeamBaseLayoutComponent,\n BaseLayoutContentDirective,\n BaseLayoutSideBarDirective,\n BaseLayoutTopBarDirective,\n BaseLayoutNavToggleDirective,\n BaseLayoutContentHeaderDirective,\n BaseLayoutContentFooterDirective\n ]\n})\nexport class TheSeamBaseLayoutModule { }\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core'\n\nimport type { IDashboardWidgetsItemDef } from '../dashboard-widgets/dashboard-widgets-item'\n\n@Component({\n selector: 'seam-dashboard-widget-container',\n templateUrl: './dashboard-widget-container.component.html',\n styleUrls: ['./dashboard-widget-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardWidgetContainerComponent implements OnInit {\n\n @Input() def: IDashboardWidgetsItemDef | undefined | null\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n constructor() { }\n\n ngOnInit() { }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamDashboardWidgetsPreferencesAccessor } from './dashboard-widgets-preferences-accessor'\n\nexport const THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR = new InjectionToken<ITheSeamDashboardWidgetsPreferencesAccessor>(\n 'ITheSeamDashboardWidgetsPreferencesAccessor'\n)\n","import { Inject, Injectable, isDevMode, Optional } from '@angular/core'\nimport { Observable, of, Subject } from 'rxjs'\nimport { auditTime, map, mapTo, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport {\n IDashboardWidgetItemLayout,\n IDashboardWidgetItemLayoutPreference,\n IDashboardWidgetsItem,\n IDashboardWidgetsItemDef,\n IDashboardWidgetsItemSerialized,\n IDashboardWidgetsPreferences\n} from './dashboard-widgets-item'\nimport type { ITheSeamDashboardWidgetsPreferencesAccessor } from './dashboard-widgets-preferences-accessor'\nimport { THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR } from './dashboard-widgets-preferences-accessor-token'\n\nexport interface IDashboardWidgetsPreferencesMapRecord {\n observable: Observable<IDashboardWidgetsPreferences>\n refresh: Subject<void>\n}\n\n// TODO: This needs a unit test to make sure it will not cause a race condition\n// if update is called faster than the previous can respond.\n//\n// The ideal approach I am thinking, without steping through the process too\n// thoroughly is to hold the new data emit until all pending updates are done.\n// Any pending updates other than the most recently requested will be ignored\n// and just wait on the most recent, and if already running it should be\n// canceled if possible. Also, incase something happens that causes the new data\n// emissions to get held up too long, there could be a threshold time that the\n// new data can be held up.\n\n\n/**\n * Manages anything dealing with retrieving and updating dashboard widget\n * preference data from the provided accessor.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardWidgetsPreferencesService {\n\n private readonly _tablePrefsMap = new Map<string, IDashboardWidgetsPreferencesMapRecord>()\n // private _pending = false\n\n // public get pending() { return this._pending }\n\n constructor(\n @Optional() @Inject(THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR) private _prefsAccessor?: ITheSeamDashboardWidgetsPreferencesAccessor\n ) { }\n\n public preferences(preferenceKey: string): Observable<IDashboardWidgetsPreferences> {\n let prefs = this._tablePrefsMap.get(preferenceKey)\n if (!prefs) {\n const refreshSubject = new Subject<void>()\n prefs = {\n observable: this._createObservable(refreshSubject, preferenceKey),\n refresh: refreshSubject\n }\n this._tablePrefsMap.set(preferenceKey, prefs)\n }\n return prefs.observable\n }\n\n private _createObservable(refreshSubject: Subject<void>, prefKey: string): Observable<IDashboardWidgetsPreferences> {\n if (!this._prefsAccessor) {\n return of({})\n }\n\n const accessor = (key: string): Observable<string> =>\n this._prefsAccessor ? this._prefsAccessor.get(key) : of('{}')\n\n return refreshSubject.pipe(\n startWith({}),\n // tap(() => console.log('Start requesting: ', prefKey)),\n switchMap(() => accessor(prefKey).pipe(\n map(v => {\n if (!v) {\n return null\n }\n\n // TODO: Add a schema validator and migration tool to avoid parsing issues.\n try {\n return JSON.parse(v) as IDashboardWidgetsPreferences\n } catch (error) {\n if (isDevMode()) {\n console.error(error)\n }\n return null\n }\n }),\n map(v => !!v ? v : {}),\n // tap(v => console.log('preferences$', v))\n // tap(v => this._pending = false)\n )),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n public refresh(preferenceKey: string): Observable<void> {\n const prefs = this._tablePrefsMap.get(preferenceKey)\n if (prefs) {\n // this._pending = true\n // prefs.refresh.next()\n return prefs.observable.pipe(\n // tap(() => prefs.refresh.next()),\n tap(() => setTimeout(() => { prefs.refresh.next() }, 0)),\n mapTo(undefined),\n take(1),\n // tap(() => console.log('Done refreshing: ', preferenceKey)),\n )\n }\n\n return of(undefined)\n }\n\n public selectLayout(preferenceKey: string, layoutName: string): Observable<IDashboardWidgetItemLayoutPreference | undefined> {\n return this.preferences(preferenceKey).pipe(\n map(prefs => (prefs.layouts || []).find(l => l.name === layoutName))\n )\n }\n\n // TODO: Improve this updating to not be more generic, so we can quickly add\n // edits for different preference schema's.\n //\n // TODO: Decide if a send queue/merging of pending queue is needed to avoid\n // out of order updates. This shouldn't be an issue, with how fast preferences\n // will most likely be changing, but it could happen in situations, such as\n // network issues.\n public updateLayout(preferenceKey: string, layout: IDashboardWidgetItemLayout): Observable<void> {\n if (!this._prefsAccessor) {\n return of(undefined)\n }\n\n if (!hasProperty(layout, 'name')) {\n throw Error(`Unable to save layout preference. 'name' is required for a layout preference.`)\n }\n\n const _layout = this.toSerializeableLayout(layout)\n\n // this._pending = true\n return this.preferences(preferenceKey).pipe(\n map(prefs => {\n // Making the preferences immutable may not be necessary, but for now\n // this obj->str->obj will work as a naive clone.\n const layouts = JSON.parse(JSON.stringify(prefs.layouts || []))\n const _layoutPref = layouts.find((c: any) => c.name === _layout.name)\n // console.log('has', _layoutPref)\n if (_layoutPref) {\n if (hasProperty(_layout, 'name')) { _layoutPref.name = _layout.name }\n if (hasProperty(_layout, 'label')) { _layoutPref.label = _layout.label }\n if (hasProperty(_layout, 'items')) { _layoutPref.items = _layout.items }\n } else {\n layouts.push({ ..._layout })\n }\n const newPrefs: IDashboardWidgetsPreferences = { ...prefs, layouts }\n return newPrefs\n }),\n // tap(v => console.log('newPrefs', v)),\n take(1),\n switchMap(newPrefs => this._prefsAccessor\n ? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))\n : of(newPrefs)\n ),\n switchMap(() => this.refresh(preferenceKey).pipe(mapTo(undefined)))\n )\n // .subscribe()\n }\n\n public toSerializeableLayout(layout: IDashboardWidgetItemLayout): IDashboardWidgetItemLayoutPreference {\n const serialized: IDashboardWidgetItemLayoutPreference = {\n name: layout.name,\n label: layout.label,\n items: this.toSerializeableItems(layout.items as any) || []\n }\n return serialized\n }\n\n // public toDeserializedLayout(layout: IDashboardWidgetItemLayoutSerialized): IDashboardWidgetItemLayoutDef {\n // // For now there is nothing to do. Eventually this should have at least\n // // validation on the deserialized object.\n // return layout\n // }\n\n /**\n * Returns the serializable widget items as objects that can be serialized to\n * a JSON string for storage.\n */\n public toSerializeableItems(widgets: IDashboardWidgetsItem[]): IDashboardWidgetsItemSerialized[] {\n const serialized: IDashboardWidgetsItemSerialized[] = []\n for (const w of widgets) {\n // if (!w.__itemDef.component || typeof w.__itemDef.component !== 'string') {\n // console.warn(`[DashboardWidgetsService] Widget item def must have a string 'component' property to be serialized.`, w)\n // continue\n // }\n // serialized.push({\n // widgetId: w.widgetId,\n // col: w.col,\n // order: w.order,\n // component: w.__itemDef.component\n // })\n\n // TODO: Remove this, it is only here for initial dev debugging.\n serialized.push({\n widgetId: w.widgetId,\n col: w.col,\n order: w.order,\n // component: w.__itemDef.component as string\n })\n }\n return serialized\n }\n\n // public toDeserializedItems(widgets: IDashboardWidgetsItemSerialized[]): IDashboardWidgetsItemDef[] {\n // const items: IDashboardWidgetsItemDef[] = []\n // for (const w of widgets) {\n // items.push({\n // widgetId: w.widgetId,\n // col: w.col,\n // order: w.order,\n // // component: w.component\n // })\n // }\n // return items\n // }\n\n}\n","import { ComponentPortal } from '@angular/cdk/portal'\nimport { Injectable, isDevMode, ViewContainerRef } from '@angular/core'\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs'\nimport { auditTime, map, mapTo, shareReplay, switchMap, take, tap } from 'rxjs/operators'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport {\n IDashboardWidgetItemLayoutPreference,\n IDashboardWidgetsColumnRecord,\n IDashboardWidgetsItem,\n IDashboardWidgetsItemDef\n} from './dashboard-widgets-item'\nimport { DashboardWidgetsPreferencesService } from './dashboard-widgets-preferences.service'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardWidgetsService {\n\n public readonly preferenceKey: string = 'datatable-widgets'\n\n public readonly defaultNumColumns: number = 3\n\n /** Used for operations, such as 'addWidget', if the column is not specified. */\n public readonly defaultColumn: number = 0\n\n get widgets(): IDashboardWidgetsItemDef[] { return this._widgets.value }\n set widgets(value: IDashboardWidgetsItemDef[]) { this._widgets.next(value) }\n private _widgets = new BehaviorSubject<IDashboardWidgetsItemDef[]>([])\n\n get numColumns(): number { return this._numColumns.value }\n set numColumns(value: number) {\n if (value !== this._numColumns.value) {\n this._numColumns.next(value)\n }\n }\n private _numColumns = new BehaviorSubject<number>(this.defaultNumColumns)\n\n public readonly numColumns$: Observable<number>\n public readonly widgetItems$: Observable<IDashboardWidgetsItem[]>\n public readonly widgetColumns$: Observable<IDashboardWidgetsColumnRecord[]>\n\n private readonly _viewContainerRefSubject = new BehaviorSubject<ViewContainerRef | undefined>(undefined)\n\n constructor(\n private readonly _dynamicComponentLoaderModule: TheSeamDynamicComponentLoader,\n private readonly _preferences: DashboardWidgetsPreferencesService\n ) {\n this.numColumns$ = this._numColumns.asObservable()\n\n // Widget items without preferences\n const _widgetItems$ = combineLatest([ this._widgets, this._viewContainerRefSubject ])\n .pipe(switchMap(([ defs, vcr ]) => this.createWidgetItems(defs, vcr)))\n\n // Widget items with preferences\n this.widgetItems$ = combineLatest([ _widgetItems$, this.numColumns$ ])\n .pipe(\n // Wait until the current tick is done, incase both the widgets and\n // number of columns are set durring the same tick. Without the audit,\n // this would get called twice when the component is initialized with\n // both inputs set one after the other individually.\n auditTime(0),\n switchMap(([ items, numColumns ]) =>\n this._preferences.selectLayout(this.preferenceKey, this._layoutName(numColumns)).pipe(\n map(layout => layout ? this.withLayoutPreferences(items, layout) : items)\n )\n ),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.widgetColumns$ = this.widgetItems$\n .pipe(\n map(items => this.toColumnRecords(items)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n private _layoutName(numColumns: number): string {\n return `columns-${numColumns}`\n }\n\n public setViewContainerRef(vcr: ViewContainerRef | undefined) {\n this._viewContainerRefSubject.next(vcr)\n }\n\n public createWidgetItems(defs: IDashboardWidgetsItemDef[], vcr?: ViewContainerRef): Observable<IDashboardWidgetsItem[]> {\n const _createObservables = (defs || []).map(d => this.createWidgetItem(d, vcr))\n const items$ = _createObservables.length > 0 ? combineLatest(_createObservables) : of([])\n return items$.pipe(\n map(items => items.filter(notNullOrUndefined)),\n tap(items => {\n if (isDevMode()) {\n const ids: string[] = items.map(v => v.widgetId)\n if ((new Set(ids)).size !== ids.length) {\n console.warn(`[DashboardWidgetsService] Duplicate widget's with the same 'widgetId' found.`)\n }\n }\n })\n )\n }\n\n public createWidgetItem(def: IDashboardWidgetsItemDef, vcr?: ViewContainerRef): Observable<IDashboardWidgetsItem | undefined> {\n if (!def.widgetId || typeof def.widgetId !== 'string' || def.widgetId.length < 1) {\n if (isDevMode()) {\n console.warn(`[DashboardWidgetsService] Widget ignored. All widgets must have a 'widgetId'.`, def)\n }\n return of(undefined)\n }\n\n return this.createWidgetPortal(def, vcr).pipe(\n map(portal => ({\n ...def,\n col: def.col || this.defaultColumn,\n order: def.order || 0,\n portal,\n __itemDef: def\n }))\n )\n }\n\n public createWidgetPortal(def: IDashboardWidgetsItemDef, vcr?: ViewContainerRef): Observable<ComponentPortal<any>> {\n if (typeof def.component === 'string') {\n return this._dynamicComponentLoaderModule\n .getComponentFactory(def.component)\n .pipe(\n map(componentFactory => {\n return new ComponentPortal(\n componentFactory.componentType,\n vcr,\n undefined,\n (<any /* ComponentFactoryBoundToModule */>componentFactory).ngModule.componentFactoryResolver\n )\n }),\n take(1)\n )\n }\n\n return def.componentFactoryResolver\n ? of(new ComponentPortal(def.component, vcr, undefined, def.componentFactoryResolver))\n : of(new ComponentPortal(def.component, vcr))\n }\n\n public updateOrder(): Observable<void> {\n return this.widgetColumns$\n .pipe(\n take(1),\n tap(columns => columns.forEach(col => {\n let i = 0\n col.items.forEach(itm => itm.order = i++)\n })),\n mapTo(undefined)\n )\n }\n\n public toColumnRecords(items: IDashboardWidgetsItem[]): IDashboardWidgetsColumnRecord[] {\n let columns: IDashboardWidgetsColumnRecord[] = []\n\n for (let i = 0; i < this.numColumns; i++) {\n columns.push({ column: i, items: [] })\n }\n\n const colNotFound: IDashboardWidgetsItem[] = []\n\n // Distribute items into columns\n for (const item of items) {\n const col: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === item.col)\n if (!col) {\n // columns.push({ column: item.col, items: [ item ] })\n // if (item.col < 0) {\n // const col0: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === 0)\n // if (col0) {\n // col0.items.push(item)\n // }\n // } else if (item.col > this.numColumns - 1) {\n // const colMax: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === this.numColumns - 1)\n // if (colMax) {\n // colMax.items.push(item)\n // }\n // }\n colNotFound.push(item)\n } else {\n col.items.push(item)\n }\n }\n\n for (let i = 0; i < colNotFound.length; i++) {\n const item = colNotFound[i]\n\n const col: IDashboardWidgetsColumnRecord | undefined = columns\n .find(c => c.column === i % this.numColumns)\n\n if (col) {\n col.items.push(item)\n }\n }\n\n // Sort columns\n columns = columns.sort((a, b) => a.column - b.column)\n\n // Sort columns items\n columns.forEach(col => col.items.sort((a, b) => a.order - b.order))\n\n return columns\n }\n\n public withLayoutPreferences(items: IDashboardWidgetsItem[], layout: IDashboardWidgetItemLayoutPreference): IDashboardWidgetsItem[] {\n const _items: IDashboardWidgetsItem[] = []\n\n for (const item of items) {\n const itemPref = layout.items.find(x => x.widgetId === item.widgetId)\n _items.push({\n ...item,\n ...(itemPref || {})\n })\n }\n\n return _items\n }\n\n public savePreferences(): Observable<void> {\n // Right now the items are moved between the column record arrays, but the\n // 'col' prop is not updated, so it is mapped to corrected items here from\n // the column records.\n const items$ = this.widgetColumns$.pipe(\n map(columns => ([] as IDashboardWidgetsItem[])\n .concat(...(columns.map(c => c.items.map(itm => ({ ...itm, col: c.column })))))\n ),\n )\n\n return combineLatest([ items$, this.numColumns$ ]).pipe(\n auditTime(0),\n take(1),\n switchMap(([ items, numColumns ]) => {\n return this._preferences.updateLayout(this.preferenceKey, {\n name: this._layoutName(numColumns),\n items\n })\n }),\n mapTo(undefined)\n )\n }\n\n}\n","import { BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion'\nimport { CdkDrag, CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop'\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { auditTime, debounceTime, distinctUntilChanged, finalize, map, shareReplay, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\nimport { faLock, faUnlock } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { IElementResizedEvent } from '@theseam/ui-common/shared'\nimport { THESEAM_WIDGET_ACCESSOR } from '@theseam/ui-common/widget'\n\nimport type { ITheSeamBaseLayoutRef } from '../../base-layout/base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from '../../base-layout/base-layout-tokens'\nimport { DashboardWidgetContainerComponent } from '../dashboard-widget-container/dashboard-widget-container.component'\n\nimport type { IDashboardWidgetsColumnRecord, IDashboardWidgetsItem, IDashboardWidgetsItemDef } from './dashboard-widgets-item'\nimport { DashboardWidgetsService } from './dashboard-widgets.service'\n\n@Component({\n selector: 'seam-dashboard-widgets',\n templateUrl: './dashboard-widgets.component.html',\n styleUrls: ['./dashboard-widgets.component.scss'],\n providers: [\n {\n provide: THESEAM_WIDGET_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DashboardWidgetsComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class DashboardWidgetsComponent implements OnInit, OnDestroy, AfterViewInit {\n static ngAcceptInputType_gapSize: NumberInput\n static ngAcceptInputType_numColumns: NumberInput\n static ngAcceptInputType_widgetsDraggable: BooleanInput\n static ngAcceptInputType_dragToggleVisible: BooleanInput\n static ngAcceptInputType_widgets: IDashboardWidgetsItemDef[] | undefined | null\n\n faLock = faLock\n faUnlock = faUnlock\n\n public readonly _actionWidgetDragToggleName = 'widget-drag-toggle'\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get gapSize(): number { return this._gapSize.value }\n set gapSize(val: number) {\n this._gapSize.next(coerceNumberProperty(val))\n }\n private readonly _gapSize = new BehaviorSubject<number>(30)\n\n @Input() @InputBoolean() widgetsDraggable: boolean = false\n\n @Input()\n get dragToggleVisible(): boolean { return this._dragToggleVisible.value }\n set dragToggleVisible(val: boolean) {\n this._dragToggleVisible.next(coerceBooleanProperty(val))\n }\n private _dragToggleVisible = new BehaviorSubject<boolean>(true)\n\n @Input()\n get numColumns(): number { return this._dashboardWidgets.numColumns }\n set numColumns(val: number) {\n this._dashboardWidgets.numColumns = coerceNumberProperty(val)\n }\n\n @Input()\n set widgets(value: IDashboardWidgetsItemDef[]) { this._dashboardWidgets.widgets = value || [] }\n get widgets(): IDashboardWidgetsItemDef[] { return this._dashboardWidgets.widgets }\n\n public widgetItems$: Observable<IDashboardWidgetsItem[]>\n public widgetColumns$: Observable<IDashboardWidgetsColumnRecord[]>\n public containers$: Observable<DashboardWidgetContainerComponent[]>\n\n readonly _gapStyleSize$: Observable<number>\n\n @ViewChildren(DashboardWidgetContainerComponent) containers?: QueryList<DashboardWidgetContainerComponent>\n @ViewChildren(CdkDrag) cdkDragDirectives?: QueryList<CdkDrag>\n\n @ViewChild('toggleBtnTpl', { static: true }) _toggleBtnTpl?: TemplateRef<any>\n\n private _containers = new BehaviorSubject<DashboardWidgetContainerComponent[]>([])\n private _layoutChange = new Subject<void>()\n\n @Output() widgetsChange = new EventEmitter<IDashboardWidgetsItem[]>()\n\n private readonly _widthChange = new Subject<number>()\n\n constructor(\n private _dashboardWidgets: DashboardWidgetsService,\n private _viewContainerRef: ViewContainerRef,\n private _cdr: ChangeDetectorRef,\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) private _baseLayoutRef?: ITheSeamBaseLayoutRef\n ) {\n this.containers$ = this._containers.asObservable()\n\n this._gapStyleSize$ = this._gapSize.pipe(\n auditTime(0),\n map(size => size / 2),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this._widthChange.pipe(\n debounceTime(30),\n tap(width => {\n if (width > 1300) {\n this.numColumns = 3\n } else if (width > 800) {\n this.numColumns = 2\n } else {\n this.numColumns = 1\n }\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n\n this.widgetItems$ = this._dashboardWidgets.widgetItems$\n this.widgetColumns$ = this._dashboardWidgets.widgetColumns$\n }\n\n ngOnInit() {\n // this._dashboardWidgets.setViewContainerRef(this._viewContainerRef)\n\n this._layoutChange.pipe(\n switchMap(() => this.widgetItems$.pipe(\n take(1),\n tap(widgetItems => this.widgetsChange.emit(widgetItems)),\n // map(widgetItems => this._dashboardWidgets.toSerializeableItems(widgetItems)),\n // tap(v => console.log('serializable', v)),\n switchMap(() => this._dashboardWidgets.savePreferences())\n )),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n }\n\n ngOnDestroy() {\n this._unregisterToggleAction()\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() {\n if (this._baseLayoutRef) {\n this._dragToggleVisible.pipe(\n distinctUntilChanged(),\n tap(visible => {\n const isRegistered = this._isActionToggleActionRegistered()\n if (visible && !isRegistered) {\n this._registerToggleAction()\n } else if (!visible && isRegistered) {\n this._unregisterToggleAction()\n }\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n }\n\n this.containers?.changes.pipe(\n startWith(undefined),\n map(() => this.containers?.toArray() || []),\n takeUntil(this._ngUnsubscribe),\n finalize(() => this._containers.next([]))\n ).subscribe(v => this._containers.next(v))\n }\n\n private _registerToggleAction() {\n if (this._baseLayoutRef) {\n // This should probably use a component dynamically created from the\n // config and return a ref to it, instead of using a template.\n if (this._toggleBtnTpl) {\n this._baseLayoutRef.registerAction({\n // type: 'button',\n type: 'template',\n name: this._actionWidgetDragToggleName,\n label: 'Toggle Widget Dragging',\n // exec: () => {\n // console.log('toggle')\n // },\n template: this._toggleBtnTpl\n })\n }\n }\n }\n\n private _unregisterToggleAction() {\n if (this._baseLayoutRef) {\n this._baseLayoutRef.unregisterAction(this._actionWidgetDragToggleName)\n }\n }\n\n private _isActionToggleActionRegistered() {\n if (!this._baseLayoutRef) {\n return false\n }\n return this._baseLayoutRef.isActionRegistered(this._actionWidgetDragToggleName)\n }\n\n drop(event: CdkDragDrop<string[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex)\n this._dashboardWidgets.updateOrder().subscribe(() => this._layoutChange.next())\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n )\n this._dashboardWidgets.updateOrder().subscribe(() => this._layoutChange.next())\n }\n }\n\n _containerTrackByFn(index: number, item: IDashboardWidgetsItem) {\n return item.widgetId\n }\n\n _columnsTrackByFn(index: number, record: IDashboardWidgetsColumnRecord) {\n return record.column\n }\n\n toggleDragging() {\n this.widgetsDraggable = !this.widgetsDraggable\n this._cdr.detectChanges()\n }\n\n _resized(event: IElementResizedEvent) {\n this._widthChange.next(event.size.width)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport type { IDashboardWidgetsItem } from '../dashboard-widgets/dashboard-widgets-item'\nimport { DashboardWidgetsComponent } from '../dashboard-widgets/dashboard-widgets.component'\n\n@Component({\n selector: 'seam-dashboard-widget-template-container',\n templateUrl: './dashboard-widget-template-container.component.html',\n styleUrls: ['./dashboard-widget-template-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardWidgetTemplateContainerComponent implements OnInit {\n\n @Input() item: IDashboardWidgetsItem | undefined | null\n\n public template$: Observable<TemplateRef<any> | undefined>\n\n constructor(\n private _dashboardWidgetsComponent: DashboardWidgetsComponent\n ) {\n this.template$ = this._dashboardWidgetsComponent.containers$.pipe(\n map(containers => containers.find((c: any) => c.def.widgetId === this.item?.widgetId)),\n map(container => container && container.templateRef)\n )\n }\n\n ngOnInit() { }\n\n}\n","import { BasePortalOutlet, CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal'\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewContainerRef\n} from '@angular/core'\n\n/**\n * Mostly copied from\n * `https://github.com/angular/components/blob/master/src/cdk/portal/portal-directives.ts`\n * until I can figure out how to hold off removing the DOM nodes with the\n * cdkPortalOutlet. When we update to Angular 9 I may be able to do this better\n * with the new DomPortal.\n *\n * Directive version of a PortalOutlet. Because the directive *is* a\n * PortalOutlet, portals can be directly attached to it, enabling declarative\n * use.\n *\n * Usage: `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[seamDashboardWidgetPortalOutlet]',\n exportAs: 'seamDashboardWidgetPortalOutlet',\n inputs: ['portal: seamDashboardWidgetPortalOutlet']\n})\nexport class DashboardWidgetPortalOutletDirective extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef?: CdkPortalOutletAttachedRef\n\n constructor(\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _elementRef: ElementRef\n ) {\n super()\n }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal\n }\n\n set portal(portal: Portal<any> | null) {\n // console.log('[DashboardWidgetPortalOutletDirective] set portal', portal, this.hasAttached())\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return\n }\n\n if (this.hasAttached()) {\n super.detach()\n }\n\n if (portal) {\n super.attach(portal)\n }\n\n this._attachedPortal = portal\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>()\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef | undefined {\n return this._attachedRef\n }\n\n ngOnInit() {\n this._isInitialized = true\n }\n\n ngOnDestroy() {\n // console.log('[DashboardWidgetPortalOutletDirective] ngOnDestroy')\n\n // TODO: Figure out the right way to call dispose without messing up\n // animation. This setTimeout way assumes the transition is 500ms, but that\n // may not always be the case and isn't guaranteed to match the animation ms\n // duration, since setTimeout isn't really meant for accurate timing. It\n // also makes debugging animations difficult, because you can pause an\n // animation, but the timeout will still run.\n setTimeout(() => {\n super.dispose()\n this._attachedPortal = null\n this._attachedRef = null\n }, 500)\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this)\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef\n\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver\n const componentFactory = resolver.resolveComponentFactory(portal.component)\n const ref = viewContainerRef.createComponent(\n componentFactory, viewContainerRef.length,\n portal.injector || viewContainerRef.injector)\n\n super.setDisposeFn(() => ref.destroy())\n this._attachedPortal = portal\n this._attachedRef = ref\n this.attached.emit(ref)\n\n return ref\n }\n\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this)\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context)\n super.setDisposeFn(() => this._viewContainerRef.clear())\n\n this._attachedPortal = portal\n this._attachedRef = viewRef\n this.attached.emit(viewRef)\n\n return viewRef\n }\n\n // static ngAcceptInputType_portal: Portal<any> | null | undefined | '';\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { IDashboardWidgetsItemDef } from './dashboard-widgets/dashboard-widgets-item'\n\n@Component({\n selector: 'seam-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardComponent {\n static ngAcceptInputType_val: BooleanInput\n\n @Input() widgets: IDashboardWidgetsItemDef[] | undefined | null\n @Input() @InputBoolean() widgetsDraggable: boolean = true\n\n constructor() { }\n\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\n\nimport { DashboardWidgetContainerComponent } from './dashboard-widget-container/dashboard-widget-container.component'\nimport {\n DashboardWidgetTemplateContainerComponent\n} from './dashboard-widget-template-container/dashboard-widget-template-container.component'\nimport { DashboardWidgetPortalOutletDirective } from './dashboard-widgets/dashboard-widget-portal-outlet.directive'\nimport { DashboardWidgetsComponent } from './dashboard-widgets/dashboard-widgets.component'\nimport { DashboardComponent } from './dashboard.component'\n\n@NgModule({\n declarations: [\n DashboardComponent,\n DashboardWidgetsComponent,\n DashboardWidgetContainerComponent,\n DashboardWidgetTemplateContainerComponent,\n DashboardWidgetPortalOutletDirective\n ],\n imports: [\n CommonModule,\n PortalModule,\n DragDropModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n TheSeamSharedModule\n ],\n exports: [\n DashboardComponent,\n DashboardWidgetsComponent,\n DashboardWidgetPortalOutletDirective\n ]\n})\nexport class TheSeamDashboardModule { }\n","import { hasProperty } from '@theseam/ui-common/utils'\n\nimport {\n ISideNavBasic,\n ISideNavButton,\n ISideNavDivider,\n ISideNavItem,\n ISideNavItemState,\n ISideNavLink,\n ISideNavTitle,\n SideNavItemCanHaveChildren,\n SideNavItemCanHaveState\n} from './side-nav.models'\n\nexport function isNavItemType(item: ISideNavItem, type: 'title'): item is ISideNavTitle\nexport function isNavItemType(item: ISideNavItem, type: 'divider'): item is ISideNavDivider\nexport function isNavItemType(item: ISideNavItem, type: 'basic'): item is ISideNavBasic\nexport function isNavItemType(item: ISideNavItem, type: 'link'): item is ISideNavLink\nexport function isNavItemType(item: ISideNavItem, type: 'button'): item is ISideNavButton\nexport function isNavItemType(item: ISideNavItem, type: string): item is ISideNavItem {\n return item.itemType === type\n}\n\nexport function isNavItemActive(item: ISideNavItem): boolean {\n return item.__state?.active ?? false\n}\n\nexport function isExpanded(item: ISideNavItem): boolean {\n return item.__state?.expanded ?? false\n}\n\nexport function hasChildren(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) & Required<SideNavItemCanHaveChildren> {\n return canHaveChildren(item) && hasProperty(item, 'children') && item.children.length > 0\n}\n\nexport function canHaveChildren(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return isNavItemType(item, 'basic') || isNavItemType(item, 'link')\n}\n\nexport function hasActiveChild(item: ISideNavItem): boolean {\n if (!hasChildren(item)) {\n return false\n }\n\n for (const child of item.children) {\n if (getItemStateProp(child, 'active')) {\n return true\n }\n }\n\n return false\n}\n\nexport function hasExpandedChild(item: ISideNavItem): boolean {\n if (!hasChildren(item)) {\n return false\n }\n\n for (const child of item.children) {\n if (getItemStateProp(child, 'expanded')) {\n return true\n }\n }\n\n return false\n}\n\nexport function canBeActive(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return isNavItemType(item, 'basic') || isNavItemType(item, 'link')\n}\n\nexport function canExpand(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return canHaveChildren(item)\n}\n\nexport function findLinkItems(items: ISideNavItem[]): ISideNavLink[] {\n const linkItems: ISideNavLink[] = []\n\n const _fn = (_items: ISideNavItem[]) => {\n for (const item of _items) {\n if (isNavItemType(item, 'link')) {\n linkItems.push(item)\n }\n if (canHaveChildren(item) && hasProperty(item, 'children')) {\n _fn(item.children)\n }\n }\n }\n _fn(items)\n\n return linkItems\n}\n\nexport function setItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K, value: ISideNavItemState[K]): void {\n if (hasProperty(item, '__state')) {\n item.__state[prop] = value\n }\n}\n\nexport function getItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K): ISideNavItemState[K] {\n return setDefaultState(item).__state[prop]\n}\n\nexport function setDefaultState(item: ISideNavItem): ISideNavItem & Required<SideNavItemCanHaveState> {\n if (hasProperty(item, '__state')) {\n return item\n }\n\n item.__state = {\n active: false,\n expanded: false\n }\n\n // TODO: See if there is a nice way to fix the typing for this.\n return item as any\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRoute, IsActiveMatchOptions, NavigationEnd, Router, UrlCreationOptions } from '@angular/router'\nimport { BehaviorSubject, combineLatest, defer, Observable, of, Subject, Subscriber } from 'rxjs'\nimport { distinctUntilChanged, filter, map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport {\n canExpand,\n findLinkItems,\n getItemStateProp,\n hasActiveChild,\n hasChildren,\n hasExpandedChild,\n isNavItemType,\n setDefaultState,\n setItemStateProp\n} from './side-nav-utils'\nimport { ISideNavItem, ISideNavItemState, ISideNavLink, SideNavItemStateChanged } from './side-nav.models'\n\n@Injectable()\nexport class TheSeamSideNavService {\n\n private readonly _updatingCount = new BehaviorSubject<number>(0)\n\n public readonly loading$: Observable<boolean>\n\n public readonly itemChanged = new Subject<SideNavItemStateChanged>()\n\n constructor(\n private readonly _router: Router\n ) {\n this.loading$ = this._updatingCount.pipe(\n map(count => count > 0),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n public createItemsObservable(items: ISideNavItem[]): Observable<ISideNavItem[]> {\n return defer(() => {\n this.updateItemsStates(items)\n return new Observable((subscriber: Subscriber<ISideNavItem[]>) => {\n const stateChangeSub = this.itemChanged.pipe(\n switchMap(() => this.loading$.pipe(filter(loading => !loading)))\n ).subscribe(() => {\n subscriber.next(items)\n })\n\n try {\n this.updateItemsStates(items)\n } catch (err) {\n subscriber.error(err)\n }\n\n // const linkItems = findLinkItems(items)\n\n const routeChangeSub = this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n // ).subscribe(() => linkItems.forEach(itm => this.updateItemState(itm)))\n ).subscribe(() => {\n try {\n this.updateItemsStates(items)\n } catch (err) {\n subscriber.error(err)\n }\n })\n\n return () => {\n stateChangeSub.unsubscribe()\n routeChangeSub.unsubscribe()\n }\n }).pipe(startWith(items))\n })\n }\n\n private _incUpdatingCount(): void {\n this._updatingCount.next(this._updatingCount.value + 1)\n }\n\n private _decrUpdatingCount(): void {\n this._updatingCount.next(this._updatingCount.value - 1)\n }\n\n public updateItemsStates(items: ISideNavItem[]): void {\n this._incUpdatingCount()\n\n try {\n for (const item of items) {\n if (hasChildren(item)) {\n this.updateItemsStates(item.children)\n }\n\n this.updateItemState(item)\n }\n\n this._decrUpdatingCount()\n } catch (err) {\n this._decrUpdatingCount()\n throw err\n }\n }\n\n public updateItemState(item: ISideNavItem): void {\n this._incUpdatingCount()\n\n try {\n setDefaultState(item)\n\n if (isNavItemType(item, 'link')) {\n const url = this._getUrl(item)\n if (notNullOrUndefined(url)) {\n const opts = this._getMatchOptions(item)\n this.setItemStateProp(item, 'active', this._router.isActive(url, opts))\n }\n }\n\n // TODO: Implement this in a more optimized way. Unless our apps start\n // having large side-navs constantly updating their state, this shouldn't\n // have much impact on performance.\n this._updateItemExpandedState(item)\n\n this._decrUpdatingCount()\n } catch (err) {\n this._decrUpdatingCount()\n throw err\n }\n }\n\n private _updateItemsExpandedState(items: ISideNavItem[]): void {\n for (const item of items) {\n if (hasChildren(item)) {\n this._updateItemsExpandedState(item.children)\n }\n this._updateItemExpandedState(item)\n }\n }\n\n private _updateItemExpandedState(item: ISideNavItem): void {\n if (!canExpand(item)) {\n if (getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', false)\n }\n return\n }\n\n if (hasChildren(item)) {\n this._updateItemsExpandedState(item.children)\n }\n\n if (hasActiveChild(item) || hasExpandedChild(item)) {\n if (!getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', true)\n }\n } else {\n if (getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', false)\n }\n }\n }\n\n private _getNavExtras(item: ISideNavLink): UrlCreationOptions {\n const navigationExtras: UrlCreationOptions = { }\n if (hasProperty(item, 'queryParams')) {\n navigationExtras.queryParams = item.queryParams\n }\n if (hasProperty(item, 'fragment')) {\n navigationExtras.fragment = item.fragment\n }\n if (hasProperty(item, 'queryParamsHandling')) {\n navigationExtras.queryParamsHandling = item.queryParamsHandling\n }\n if (hasProperty(item, 'preserveFragment')) {\n navigationExtras.preserveFragment = item.preserveFragment\n }\n return navigationExtras\n }\n\n private _getUrl(item: ISideNavLink): string | null {\n const link = item.link\n\n if (typeof link === 'string') {\n return this._router.createUrlTree([ link ], this._getNavExtras(item)).toString()\n } else if (Array.isArray(link)) {\n return this._router.createUrlTree(link, this._getNavExtras(item)).toString()\n }\n\n return null\n }\n\n private _getMatchOptions(item: ISideNavLink): IsActiveMatchOptions {\n const defaultMatchOpts: IsActiveMatchOptions = {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n }\n\n if (hasProperty(item, 'matchOptions')) {\n return {\n ...defaultMatchOpts,\n ...item.matchOptions\n }\n }\n\n return defaultMatchOpts\n }\n\n public setItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K, value: ISideNavItemState[K]): void {\n const currentValue = getItemStateProp(item, prop)\n if (currentValue !== value) {\n setItemStateProp(item, prop, value)\n\n const changed: SideNavItemStateChanged = {\n item,\n prop,\n prevValue: currentValue,\n newValue: value\n }\n this.itemChanged.next(changed)\n }\n }\n}\n","import {\n animate,\n animateChild,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations'\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core'\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router'\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, map, mapTo, pairwise, shareReplay, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { ITheSeamBaseLayoutNav, ITheSeamBaseLayoutRef, THESEAM_BASE_LAYOUT_REF } from '../base-layout/index'\n\nimport { ISideNavItem } from './side-nav.models'\nimport { TheSeamSideNavService } from './side-nav.service'\n\nconst EXPANDED_STATE = 'expanded'\nconst COLLAPSED_STATE = 'collapsed'\n\nconst EXPANDED_OVERLAY_STATE = 'expanded-overlay'\nconst COLLAPSED_OVERLAY_STATE = 'collapsed-overlay'\n\nconst EXPANDED_STATES = [ EXPANDED_STATE, EXPANDED_OVERLAY_STATE ]\nconst COLLAPSED_STATES = [ COLLAPSED_STATE, COLLAPSED_OVERLAY_STATE ]\nconst EXPAND_STATES = [ ...EXPANDED_STATES, ...COLLAPSED_STATES ]\n\nexport function sideNavExpandStateChangeFn(fromState: string, toState: string) {\n // console.log({ fromState, toState })\n return fromState !== toState &&\n (\n // NOTE: The current way the side nav is being used it causes the\n // component to sometimes get placed in the wrong location initially. It\n // is fast enough to not be noticed without an initial animation usually,\n // so it is commented out below until the initial placement issue it\n // fixed.\n //\n // (\n // fromState === 'void' && EXPAND_STATES.indexOf(toState) !== -1\n // ||\n // toState === 'void' && EXPAND_STATES.indexOf(fromState) !== -1\n // )\n // ||\n (\n (EXPANDED_STATES.indexOf(fromState) !== -1 && COLLAPSED_STATES.indexOf(toState) !== -1)\n ||\n (EXPANDED_STATES.indexOf(toState) !== -1 && COLLAPSED_STATES.indexOf(fromState) !== -1)\n )\n )\n}\n\n@Component({\n selector: 'seam-side-nav',\n templateUrl: './side-nav.component.html',\n styleUrls: ['./side-nav.component.scss'],\n providers: [\n TheSeamSideNavService\n ],\n animations: [\n\n //\n // TODO: This animation code turned into a mess. Clean it up and make it\n // more smooth.\n //\n\n trigger('sideNavAnim', [\n transition(sideNavExpandStateChangeFn, [\n group([\n query('@sideNavBackdrop', animateChild(), { optional: true }),\n query('@sideNavExpand', animateChild(), { optional: true }),\n ]),\n ]),\n ]),\n\n trigger('sideNavBackdrop', [\n state(EXPANDED_OVERLAY_STATE, style({ opacity: '1' })),\n state(COLLAPSED_OVERLAY_STATE, style({ opacity: '0' })),\n\n // transition((fromState, toState, element, params) => {\n // console.log('sideNavBackdrop v', fromState, toState, element, params)\n // return false\n // }, []),\n\n transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),\n ]),\n\n trigger('sideNavExpand', [\n // TODO: Make width configurable.\n state(EXPANDED_STATE, style({ width: '260px' })),\n state(COLLAPSED_STATE, style({ width: '50px', 'overflow-x': 'hidden' })),\n\n state(EXPANDED_OVERLAY_STATE, style({\n position: 'absolute',\n top: 0,\n height: '100%',\n bottom: 0,\n left: 0,\n float: 'left',\n zIndex: '9999',\n width: 'calc(100vw - 50px)',\n transform: 'translateX(0)'\n })),\n state(COLLAPSED_OVERLAY_STATE, style({\n position: 'absolute',\n top: 0,\n height: '100%',\n bottom: 0,\n left: 0,\n float: 'left',\n zIndex: '9999',\n width: 'calc(100vw - 50px)',\n transform: 'translateX(calc(-100vw + 50px))',\n 'overflow-x': 'hidden'\n })),\n\n // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\n\n transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),\n\n // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, [\n // // query(':leave', animateChild(), { optional: true }),\n // // query(':enter', animateChild(), { optional: true }),\n // group([\n // query(':leave', animateChild(), { optional: true }),\n // query(':enter', animateChild(), { optional: true }),\n // query('@compactAnim', animateChild(), { optional: true }),\n // animate('5.2s ease-in-out')\n // ])\n // ]),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavComponent implements OnInit, OnDestroy, ITheSeamBaseLayoutNav {\n static ngAcceptInputType_hasHeaderToggle: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject()\n\n // @HostBinding('@sideNavExpand') _sideNavExpand = EXPANDED_STATE\n // _sideNavExpand = EXPANDED_STATE\n\n // @HostBinding('@sideNavAnim') _sideNavExpand = EXPANDED_STATE\n @HostBinding('@sideNavAnim') _sideNavExpand = 'initial'\n\n @Input() @InputBoolean() hasHeaderToggle = true\n\n @Input()\n get items(): ISideNavItem[] { return this._items.value }\n set items(value: ISideNavItem[]) { this._items.next(value) }\n private _items = new BehaviorSubject<ISideNavItem[]>([])\n public readonly items$: Observable<ISideNavItem[]>\n\n @Input()\n get expanded(): boolean { return this._expanded.value }\n set expanded(value: boolean) { this._expanded.next(coerceBooleanProperty(value)) }\n private _expanded = new BehaviorSubject<boolean>(true)\n public readonly expanded$ = this._expanded.asObservable()\n\n @Input()\n get overlay(): boolean { return this._overlay.value }\n set overlay(value: boolean) { this._overlay.next(coerceBooleanProperty(value)) }\n private _overlay = new BehaviorSubject<boolean>(false)\n public readonly overlay$ = this._overlay.asObservable()\n\n public readonly isMobile$: Observable<boolean>\n public readonly sideNavExpandedState$: Observable<string>\n public _backdropHidden = new BehaviorSubject<boolean>(true)\n\n constructor(\n private readonly _layout: TheSeamLayoutService,\n private readonly _sideNav: TheSeamSideNavService,\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) private readonly _baseLayoutRef: ITheSeamBaseLayoutRef\n ) {\n this.items$ = this._items.asObservable().pipe(\n switchMap(items => this._sideNav.createItemsObservable(items)),\n shareReplay({ bufferSize: 1, refCount: true }),\n )\n\n this.isMobile$ = this._layout.isMobile$.pipe(\n tap(isMobile => isMobile && this.collapse())\n )\n\n this.sideNavExpandedState$ = combineLatest([ this.expanded$, this.overlay$ ]).pipe(\n map(([ expanded, overlay ]) => expanded\n ? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE\n : overlay ? COLLAPSED_OVERLAY_STATE : COLLAPSED_STATE\n ),\n distinctUntilChanged()\n )\n }\n\n ngOnInit() {\n if (this._baseLayoutRef) { this._baseLayoutRef.registerNav(this) }\n\n this.isMobile$\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(b => this.overlay = b)\n\n this.sideNavExpandedState$\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => this._sideNavExpand = v)\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n if (this._baseLayoutRef) { this._baseLayoutRef.unregisterNav(this) }\n }\n\n public expand() {\n this.expanded = true\n }\n\n public collapse() {\n this.expanded = false\n }\n\n public toggle() {\n this.expanded = !this.expanded\n }\n\n public animateStart() {\n if (this.expanded) {\n this._backdropHidden.next(false)\n }\n }\n\n public animateEnd() {\n if (!this.expanded) {\n this._backdropHidden.next(true)\n }\n }\n\n}\n","import {\n animate,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations'\nimport { BooleanInput, coerceBooleanProperty, NumberInput } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n Optional,\n SkipSelf,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { faAngleLeft } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\nimport type { SeamIcon } from '@theseam/ui-common/icon'\nimport type { ThemeTypes } from '@theseam/ui-common/models'\n\nimport { SideNavComponent } from '../side-nav.component'\nimport { ISideNavItem } from '../side-nav.models'\n\nexport interface SideNavItemBadgeTooltip {\n tooltip?: string\n class?: string\n placement?: string\n container?: string\n disabled?: boolean\n}\n\nconst EXPANDED_STATE = 'expanded'\nconst COLLAPSED_STATE = 'collapsed'\n\nconst FULL_STATE = 'full'\nconst COMPACT_STATE = 'compact'\n\n@Component({\n selector: 'seam-side-nav-item',\n templateUrl: './side-nav-item.component.html',\n styleUrls: ['./side-nav-item.component.scss'],\n exportAs: 'seamSideNavItem',\n animations: [\n trigger('childGroupAnim', [\n state(EXPANDED_STATE, style({ height: '*' })),\n state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),\n transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\n ]),\n\n\n trigger('compactAnim', [\n // transition('* <=> *', [\n // query(':enter', [\n // style({ opacity: '0' }),\n // animate('5.2s ease-in-out', style({ opacity: '1' }))\n // ], { optional: true }),\n // query(':leave', [\n // style({ opacity: '1' }),\n // animate('5.2s ease-in-out', style({ opacity: '0' }))\n // ], { optional: true })\n // ])\n\n // state(FULL_STATE, style({ opacity: '1' })),\n // state(COMPACT_STATE, style({ opacity: '0' })),\n // transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, animate('5.2s ease-in-out')),\n // transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, [\n // transition('* <=> *', [\n // query(':leave', [\n // style({ opacity: '1' }),\n // animate('5.2s ease-in-out', style({ opacity: '0' }))\n // ], { optional: true })\n // ]),\n\n\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavItemComponent implements OnDestroy {\n static ngAcceptInputType_hierLevel: NumberInput\n static ngAcceptInputType_indentSize: NumberInput\n static ngAcceptInputType_expanded: BooleanInput\n static ngAcceptInputType_compact: BooleanInput\n static ngAcceptInputType_active: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject()\n\n readonly faAngleLeft = faAngleLeft\n\n @Input() itemType: 'divider' | 'basic' | 'link' | 'button' | 'title' | undefined | null\n\n @Input() icon: SeamIcon | undefined | null\n\n @Input() label: string | undefined | null\n\n @Input() @InputBoolean() active: boolean = false\n\n @Input()\n set link(value: string | undefined | null) { this._link.next(value) }\n get link() { return this._link.value }\n private readonly _link = new BehaviorSubject<string | undefined | null>(undefined)\n public readonly link$ = this._link.asObservable()\n\n @Input() queryParams: { [k: string]: any } | undefined | null\n\n @Input() children: ISideNavItem[] | undefined | null\n\n @Input() @InputNumber(0) hierLevel: number = 0\n\n @Input() @InputNumber(10) indentSize: number = 10\n\n @Input()\n set expanded(value: boolean) { this._expanded.next(coerceBooleanProperty(value)) }\n get expanded() { return this._expanded.value }\n private readonly _expanded = new BehaviorSubject<boolean>(false)\n public readonly expanded$ = this._expanded.asObservable()\n\n @Input()\n set compact(value: boolean) { this._compact.next(coerceBooleanProperty(value)) }\n get compact() { return this._compact.value }\n private readonly _compact = new BehaviorSubject<boolean>(false)\n public readonly compact$ = this._compact.asObservable()\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: ThemeTypes | undefined | null = 'danger'\n\n /**\n * Content to provide to assistive technology, such as screen readers.\n */\n @Input() badgeSrContent: string | undefined | null\n\n @Input()\n get badgeTooltip() { return this._badgeTooltip }\n set badgeTooltip(value: string | SideNavItemBadgeTooltip | undefined | null) {\n if (value !== null && value !== undefined) {\n if (typeof value === 'string') {\n this._badgeTooltip = {\n tooltip: value,\n placement: 'auto',\n disabled: false\n }\n } else {\n this._badgeTooltip = {\n ...value,\n placement: value.placement || 'auto',\n disabled: typeof value?.disabled === 'boolean'\n ? value.disabled\n : typeof value.tooltip === 'string' ? false : true\n }\n }\n } else {\n this._badgeTooltip = undefined\n }\n }\n private _badgeTooltip: SideNavItemBadgeTooltip | undefined | null\n\n @HostBinding('class.seam-side-nav-item--active') get _isActiveCssClass() { return this.active }\n\n @HostBinding('attr.data-hier-level') get _attrDataHierLevel() { return this.hierLevel }\n\n public readonly childGroupAnimState$: Observable<string>\n public readonly compactAnimState$: Observable<string>\n\n constructor(\n private readonly _sideNav: SideNavComponent,\n @Optional() @SkipSelf() @Host() private readonly _parent?: SideNavItemComponent\n ) {\n this.childGroupAnimState$ = this.expanded$\n .pipe(map(expanded => expanded ? EXPANDED_STATE : COLLAPSED_STATE))\n\n this.compactAnimState$ = this.compact$\n .pipe(map(compact => compact ? COMPACT_STATE : FULL_STATE))\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n get hasChildren() {\n return Array.isArray(this.children) && this.children.length > 0\n }\n\n public toggleChildren(): void {\n this.expanded = !this.expanded\n }\n\n _linkClicked() {\n // Close nav when link is clicked while in overlay state\n if (this._sideNav.overlay) {\n this._sideNav.collapse()\n }\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core'\n\nimport { faBars } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\n@Component({\n selector: 'seam-side-nav-toggle',\n templateUrl: './side-nav-toggle.component.html',\n styleUrls: ['./side-nav-toggle.component.scss'],\n host: {\n '[class.side-nav-toggle--compact]': '!expanded'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavToggleComponent implements OnInit {\n static ngAcceptInputType_expanded: BooleanInput\n\n faBars = faBars\n\n @Input() @InputBoolean() expanded = false\n\n @Output() toggleExpand = new EventEmitter<void>()\n\n constructor() { }\n\n ngOnInit() { }\n\n toggle() {\n this.toggleExpand.emit()\n }\n\n}\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLayoutModule } from '@theseam/ui-common/layout'\nimport { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar'\n\nimport { SideNavItemComponent } from './side-nav-item/side-nav-item.component'\nimport { SideNavToggleComponent } from './side-nav-toggle/side-nav-toggle.component'\nimport { SideNavComponent } from './side-nav.component'\n\n@NgModule({\n declarations: [\n SideNavItemComponent,\n SideNavComponent,\n SideNavToggleComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n TheSeamIconModule,\n A11yModule,\n TheSeamScrollbarModule,\n TheSeamLayoutModule,\n NgbTooltipModule\n ],\n exports: [\n SideNavItemComponent,\n SideNavComponent,\n SideNavToggleComponent\n ]\n})\nexport class TheSeamSideNavModule { }\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core'\n\nimport { faUserCircle } from '@fortawesome/free-regular-svg-icons'\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\n\nimport { CanDisableCtor, InputBoolean, mixinDisabled } from '@theseam/ui-common/core'\n\nclass TopBarMenuButtonBase {}\n\nconst _TopBarMenuButtonMixinBase: CanDisableCtor & typeof TopBarMenuButtonBase =\n mixinDisabled(TopBarMenuButtonBase)\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'button[seamTopBarMenuButton]',\n templateUrl: './top-bar-menu-button.component.html',\n styleUrls: ['./top-bar-menu-button.component.scss'],\n exportAs: 'seamButton',\n // tslint:disable-next-line:use-input-property-decorator\n inputs: [ 'disabled' ],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'attr.type': 'button',\n 'class': 'btn border text-decoration-none py-0',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopBarMenuButtonComponent extends _TopBarMenuButtonMixinBase implements OnInit, OnDestroy {\n static ngAcceptInputType_compact: BooleanInput\n\n faAngleDown = faAngleDown\n profileIcon = faUserCircle\n\n @Input() detailTpl: TemplateRef<{}> | undefined | null\n\n @Input() @InputBoolean() compact: boolean = false\n\n @HostBinding('class.top-bar-menu-button--compact') get _hasCompactClass() { return this.compact }\n @HostBinding('class.p-0') get _hasPadding0Class() { return this.compact }\n @HostBinding('class.rounded') get _hasRoundedClass() { return this.compact }\n @HostBinding('class.btn-link') get _hasBtnLinkClass() { return !this.compact }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-top-bar-title',\n templateUrl: './top-bar-title.component.html',\n styleUrls: ['./top-bar-title.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopBarTitleComponent implements OnInit {\n\n @Input() titleText: string | undefined | null\n @Input() subTitleText: string | undefined | null\n\n constructor() { }\n\n ngOnInit() { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTopBarItem]'\n})\nexport class TopBarItemDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTopBarMenuBtnDetail]'\n})\nexport class TopBarMenuBtnDetailDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, Self } from '@angular/core'\n\nimport { MenuComponent } from '@theseam/ui-common/menu'\n\n@Directive({\n selector: 'seam-menu[seamTopBarMenu]'\n})\nexport class TopBarMenuDirective {\n\n constructor(\n @Self() public menu: MenuComponent\n ) { }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n OnDestroy,\n OnInit,\n QueryList\n} from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\nimport { map, shareReplay, startWith, takeUntil } from 'rxjs/operators'\n\nimport { faBars } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { TopBarItemDirective } from './top-bar-item.directive'\nimport { TopBarMenuBtnDetailDirective } from './top-bar-menu-btn-detail.directive'\nimport { TopBarMenuDirective } from './top-bar-menu.directive'\n\n/**\n * Top bar of an app.\n *\n * The top bar is fairly opinionated, so most parts are not intended to be\n * customized unless there is an input.\n *\n * > If you have to make a change and apply it externally with a css class or js\n * > make sure there is an issue to get the feature changed, so we don't have\n * > different modifications across our apps. Also, this will help make sure\n * > your change should have even been done.\n */\n@Component({\n selector: 'seam-top-bar',\n templateUrl: './top-bar.component.html',\n styleUrls: ['./top-bar.component.scss'],\n exportAs: 'seamTopBar',\n host: {\n 'class': 'bg-white'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamTopBarComponent implements OnInit, OnDestroy, AfterContentInit {\n static ngAcceptInputType_hasTitle: BooleanInput\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n /** @ignore */\n faBars = faBars\n\n /** @ignore */\n @ContentChild(TopBarMenuDirective, { static: true }) _topBarMenu?: TopBarMenuDirective | null\n /** @ignore */\n @ContentChildren(TopBarItemDirective) _topBarItems?: QueryList<TopBarItemDirective>\n /** @ignore */\n @ContentChild(TopBarMenuBtnDetailDirective) _topBarMenuBtnDetailTpl?: TopBarMenuBtnDetailDirective | null\n\n /** Logo displayed on the top bar. */\n @Input() logo: string | undefined | null\n /** Logo displayed on the top bar when a smaller logo is needed. */\n @Input() logoSm: string | undefined | null\n\n /** External url to link to when `logo` is clicked. */\n @Input() logoHref?: string | null\n\n /** Link target used when `logoHref` is specified. Defaults to `\"_blank\"` */\n @Input() logoHrefTarget: string = '_blank'\n\n /** Route to link to when `logo` is clicked. Defaults to `/`. */\n @Input() logoRoute: string = '/'\n\n /** Determines if the title should be displayed. */\n @Input() @InputBoolean() hasTitle: boolean = false\n\n /** Title text displayed when `hasTitle` is true. */\n @Input() titleText: string | undefined | null\n\n /** Sub Title text displayed when `hasTitle` is true. The sub title will be less prominent. */\n @Input() subTitleText: string | undefined | null\n\n /** @ignore */\n _items$?: Observable<TopBarItemDirective[]>\n\n /** @ignore */\n isMobile$: Observable<boolean>\n\n constructor(\n private _layout: TheSeamLayoutService\n ) {\n this.isMobile$ = this._layout.isMobile$\n }\n\n /** @ignore */\n ngOnInit() { }\n\n /** @ignore */\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n /** @ignore */\n ngAfterContentInit() {\n if (this._topBarItems) {\n this._items$ = this._topBarItems.changes.pipe(\n startWith(undefined),\n takeUntil(this._ngUnsubscribe),\n map(() => this._topBarItems?.toArray() || []),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLayoutModule } from '@theseam/ui-common/layout'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\nimport { TheSeamBaseLayoutModule } from '../base-layout/index'\n\nimport { TopBarItemDirective } from './top-bar-item.directive'\nimport { TopBarMenuBtnDetailDirective } from './top-bar-menu-btn-detail.directive'\nimport { TopBarMenuButtonComponent } from './top-bar-menu-button/top-bar-menu-button.component'\nimport { TopBarMenuDirective } from './top-bar-menu.directive'\nimport { TopBarTitleComponent } from './top-bar-title/top-bar-title.component'\nimport { TheSeamTopBarComponent } from './top-bar.component'\n\n@NgModule({\n declarations: [\n TheSeamTopBarComponent,\n TopBarTitleComponent,\n TopBarMenuButtonComponent,\n TopBarMenuDirective,\n TopBarItemDirective,\n TopBarMenuBtnDetailDirective\n ],\n imports: [\n CommonModule,\n TheSeamLayoutModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n TheSeamMenuModule,\n TheSeamBaseLayoutModule,\n RouterModule\n ],\n exports: [\n TheSeamTopBarComponent,\n TopBarMenuButtonComponent,\n TopBarMenuDirective,\n TheSeamMenuModule,\n TopBarItemDirective,\n TopBarMenuBtnDetailDirective\n ]\n})\nexport class TheSeamTopBarModule { }\n","import {\n animate,\n animateChild,\n group,\n keyframes,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations'\n\n\nexport const fader =\n trigger('routeAnimations', [\n transition('* <=> *', [\n // Set a default style for enter and leave\n query(':enter, :leave', [\n style({\n position: 'absolute',\n left: 0,\n width: '100%',\n opacity: 0,\n transform: 'scale(0) translateY(100%)',\n }),\n ], { optional: true }),\n // Animate the new page in\n query(':enter', [\n animate('600ms ease', style({ opacity: 1, transform: 'scale(1) translateY(0)' })),\n ], { optional: true })\n ]),\n ])\n\n\n// function slideTo(direction) {\n// return [\n// query(':enter, :leave', [\n// style({\n// position: 'absolute',\n// top: 0,\n// [direction]: 0,\n// width: '100%'\n// })\n// ], { optional: true }),\n// query(':enter', [\n// style({ [direction]: '-100%'})\n// ], { optional: true }),\n// group([\n// query(':leave', [\n// animate('1000ms ease', style({ [direction]: '100%'}))\n// ], { optional: true }),\n// query(':enter', [\n// animate('1000ms ease', style({ [direction]: '0%'}))\n// ], { optional: true })\n// ]),\n// // Normalize the page style... Might not be necessary\n\n// // Required only if you have child animations on the page\n// query(':leave', animateChild(), { optional: true }),\n// query(':enter', animateChild(), { optional: true }),\n// ]\n// }\n\n// TODO: Refactor the slider animation, because AOT or ng-packagr, I haven't\n// looked into what exactly is preventing it, doesn't allow the function call.\n// export const slider =\n// trigger('routeAnimations', [\n// transition('* => isLeft', slideTo('left') ),\n// transition('* => isRight', slideTo('right') ),\n// transition('isRight => *', slideTo('left') ),\n// transition('isLeft => *', slideTo('right') )\n// ])\n\n// export const contentLeave =\n// trigger('contentLeave', [\n// transition(':leave', [\n\n// ])\n// ])\n\nexport const slider =\n trigger('routeAnimations', [\n transition('* => isLeft', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ left: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ left: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ left: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('* => isRight', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ right: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ right: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ right: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('isRight => *', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ left: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ left: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ left: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('isLeft => *', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ right: '-100%'})\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ right: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ right: '0%'}))\n ], { optional: true })\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ])\n ])\n\n\nexport const transformer =\n trigger('routeAnimations', [\n transition('* => isLeft', transformTo({ x: -100, y: -100, rotate: -720 }) ),\n transition('* => isRight', transformTo({ x: 100, y: -100, rotate: 90 }) ),\n transition('isRight => *', transformTo({ x: -100, y: -100, rotate: 360 }) ),\n transition('isLeft => *', transformTo({ x: 100, y: -100, rotate: -360 }) )\n])\n\nfunction transformTo({x = 100, y = 0, rotate = 0}) {\n const optional = { optional: true }\n return [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], optional),\n query(':enter', [\n style({ transform: `translate(${x}%, ${y}%) rotate(${rotate}deg)`})\n ], { optional: true }),\n group([\n query(':leave', [\n animate('600ms ease-out', style({ transform: `translate(${x}%, ${y}%) rotate(${rotate}deg)`}))\n ], optional),\n query(':enter', [\n animate('600ms ease-out', style({ transform: `translate(0, 0) rotate(0)`}))\n ], { optional: true })\n ]),\n ]\n}\n\n\nexport const stepper =\n trigger('routeAnimations', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n left: 0,\n width: '100%',\n }),\n ], { optional: true }),\n group([\n query(':enter', [\n animate('2000ms ease', keyframes([\n style({ transform: 'scale(0) translateX(100%)', offset: 0 }),\n style({ transform: 'scale(0.5) translateX(25%)', offset: 0.3 }),\n style({ transform: 'scale(1) translateX(0%)', offset: 1 }),\n ])),\n ], { optional: true }),\n query(':leave', [\n animate('2000ms ease', keyframes([\n style({ transform: 'scale(1)', offset: 0 }),\n style({ transform: 'scale(0.5) translateX(-25%) rotate(0)', offset: 0.35 }),\n style({ opacity: 0, transform: 'translateX(-50%) rotate(-180deg) scale(6)', offset: 1 }),\n ])),\n ], { optional: true })\n ]),\n ])\n ])\n\n\nexport const sideToSide = trigger('routeAnimations', [\n transition('* => *', [\n style({\n position: 'fixed',\n width: '100%',\n transform: 'translateX(-100%)'\n }),\n animate('1000ms ease', style({ transform: 'translateX(0%)' }))\n ]),\n transition(':leave', [\n style({\n position: 'fixed',\n width: '100%',\n transform: 'translateX(0%)'\n }),\n animate('1000ms ease', style({ transform: 'translateX(-100%)' }))\n ])\n])\n","import { ChangeDetectionStrategy, Component, HostBinding, OnDestroy, OnInit } from '@angular/core'\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Router, RouterOutlet } from '@angular/router'\nimport { combineLatest, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { fader, sideToSide, slider, stepper, transformer } from './hierarchy-route-animations'\n\nexport function routeChanges(router: Router) {\n return router.events.pipe(\n filter(event => event instanceof NavigationStart || event instanceof NavigationEnd),\n distinctUntilChanged((x: any, y: any) => x.id === y.id),\n map(event => ({ url: event.url }))\n )\n}\n\n\n//\n// TODO: Animation improvement: Try adding a full component animation that\n// queries the <ng-content> and <router-outlet> blocks. When the outlet\n// activates, set the animation state to a transition that moves both blocks\n// together.\n//\n\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-hierarchy-router-outlet',\n templateUrl: './hierarchy-router-outlet.component.html',\n styleUrls: ['./hierarchy-router-outlet.component.scss'],\n animations: [\n // fader,\n slider,\n // transformer,\n // stepper,\n // sideToSide\n // contentLeave\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HierarchyRouterOutletComponent implements OnInit, OnDestroy {\n\n private _uid = _uid++\n\n private readonly _ngUnsubscribe = new Subject()\n\n animState = 'isRight'\n // animState = ''\n\n outletActive = false\n\n ngContentVisible = true\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router\n ) {\n this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n // tap(v => console.log(`_hasChildren()[${this._uid}]`, this._hasChildren())),\n takeUntil(this._ngUnsubscribe)\n )\n .subscribe()\n\n // routeChanges(this._router)\n // .pipe(\n // untilDestroyed(this),\n // tap(() => {\n // // if (this._hasChildren()) {\n // // this.animState = 'isLeft'\n // // } else {\n // // this.animState = 'isRight'\n // // }\n // })\n // )\n // .subscribe(v => console.log(`routeChanges[${this._uid}]`, v))\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _hasChildren() {\n const count = this._route.pathFromRoot.length - 1\n let countFull = 0\n if (this._router.parseUrl(this._router.url).root.children.primary) {\n countFull = this._router.parseUrl(this._router.url).root.children.primary.segments.length\n }\n // console.log(`_hasChildren[${this._uid}]`, { count, countFull })\n return countFull > count\n }\n\n prepareRoute(outlet: RouterOutlet) {\n // console.log(`outlet[${this._uid}]`, outlet, this.animState, this._hasChildren(), this.outletActive)\n if (outlet.isActivated) {\n // console.log(outlet.isActivated)\n // console.log(outlet.component)\n console.log(this.animState)\n return this.animState\n } else {\n return undefined\n }\n // console.log(`prepareRoute[${this._uid}]`, this.animState, this._hasChildren())\n // console.log('activatedRouteData', outlet && outlet.activatedRouteData)\n // if (outlet && outlet.isActivated) {\n // console.log('activatedRoute', outlet.activatedRoute && outlet.activatedRoute.snapshot.url)\n // }\n // return outlet && outlet.activatedRouteData && outlet.activatedRouteData['animation']\n // console.log('')\n // return this.animState\n }\n\n outletActivate(event: any) {\n // console.log(`outletActivate[${this._uid}]`, event)\n this.outletActive = true\n }\n\n outletDeactivate(event: any) {\n // console.log(`outletDeactivate[${this._uid}]`, event)\n this.outletActive = false\n }\n\n routeAnimationsStart(event: any) {\n // console.log('routeAnimationsStart', event)\n this.ngContentVisible = true\n }\n\n routeAnimationsDone(event: any) {\n // console.log('routeAnimationsDone', event)\n this.ngContentVisible = !this.outletActive\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'\nimport { Observable } from 'rxjs'\nimport { map, take } from 'rxjs/operators'\n\n@Injectable({ providedIn: 'root' })\nexport class HierarchyLevelResolver implements Resolve<number> {\n\n constructor() {}\n\n resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<number> | Promise<number> | number {\n // console.log('[HierarchyLevelResolver]', route)\n // console.log('[HierarchyLevelResolver]', state)\n return this._getMaxHierLevel(route)\n }\n\n private _getMaxHierLevel(route: ActivatedRouteSnapshot) {\n let curr = route\n while (curr.parent) {\n curr = curr.parent\n if (curr.data['hierLevel']) {\n return curr.data['hierLevel'] + 1\n }\n }\n\n return 0\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { HierarchyRouterOutletComponent } from './hierarchy-router-outlet/hierarchy-router-outlet.component'\n\n\n\n@NgModule({\n declarations: [\n HierarchyRouterOutletComponent\n ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [\n HierarchyRouterOutletComponent\n ]\n})\nexport class TheSeamDynamicRouterModule { }\n","import { Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-checkbox',\n templateUrl: './schema-form-checkbox.component.html',\n styleUrls: ['./schema-form-checkbox.component.scss']\n})\nexport class TheSeamSchemaFormCheckboxComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n trueValue: any = true\n falseValue: any = false\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n }\n\n updateValue(event: any) {\n event.preventDefault()\n this.jsf.updateValue(this, event.target.checked ? this.trueValue : this.falseValue)\n }\n\n get isChecked() {\n return this.jsf.getFormControlValue(this) === this.trueValue\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-input',\n templateUrl: './schema-form-input.component.html',\n styleUrls: ['./schema-form-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormInputComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue?: string\n controlDisabled = false\n boundControl = false\n options: any\n autoCompleteList: string[] = []\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.target.value)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-number',\n templateUrl: './schema-form-number.component.html',\n styleUrls: ['./schema-form-number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormNumberComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n allowNegative = true\n allowDecimal = true\n allowExponents = false\n lastValidNumber = ''\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (this.layoutNode.dataType === 'integer') { this.allowDecimal = false }\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.target.value)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { buildTitleMap, isArray, JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-select',\n templateUrl: './schema-form-select.component.html',\n styleUrls: ['./schema-form-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormSelectComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n selectList: any[] = []\n isArray = isArray\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n )\n\n this.jsf.initializeControl(this)\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.value)\n }\n\n}\n","import { Component, Input, isDevMode, OnDestroy, OnInit } from '@angular/core'\nimport { AbstractControl, FormControl } from '@angular/forms'\nimport { Subject } from 'rxjs'\n\nimport { buildTitleMap, hasOwn, JsonSchemaFormService, TitleMapItem } from '@ajsf/core'\n\nimport { observeControlStatus, observeControlValue } from '@theseam/ui-common/utils'\nimport { takeUntil } from 'rxjs/operators'\n\n// NOTE: This is aliasing TitleMapItem, because we may want to extend it's\n// options. For simplicity, I am letting this work similar to a 'select' widget.\nexport type TheSeamSchemaFormSubmitSplitItem = TitleMapItem\n\n// NOTE: This component is a little hacky, because I am basically creating a\n// data widget that acts like a data and 'submit' widget at the same time.\n//\n// TODO: Try and think of a nicer way to implement this, but still make sense\n// from a schema definition. The library may need to me forked to actually\n// support this in the way I expect, but maybe there is another way.\n@Component({\n selector: 'seam-schema-form-submit-split',\n templateUrl: './schema-form-submit-split.component.html',\n styleUrls: ['./schema-form-submit-split.component.scss'],\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormSubmitSplitComponent implements OnInit, OnDestroy {\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n _buttonLabel = ''\n\n _dropdownObj: any\n _dropdownDisabled = false\n _selectList: TheSeamSchemaFormSubmitSplitItem[] = []\n _selectedItem?: TheSeamSchemaFormSubmitSplitItem\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n /** @ignore */\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n\n // NOTE: This is commented out, because there is a bug with submit widgets\n // manually defined in layout. All nodes initialized from the provided\n // layout have their options populated from the defaults and 'disabled' is\n // on of the default properties, so the 'disableInvalidSubmit' condition\n // never gets reached.\n //\n // My initial idea for fixing would be to check if the disabled property\n // exists and is a boolean, or possibly anything defined that can coerce\n // into a boolean. I can't think of a reason disabled should be anything\n // else, so that may be an acceptable fix, but I don't want to enable that\n // yet.\n //\n // if (hasOwn(this.options, 'disabled')) {\n // console.log('[TheSeamSchemaFormSubmitSplitComponent] hasDisabled', this.options.disabled)\n // this.controlDisabled = this.options.disabled\n // } else\n if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid)\n }\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n\n if (hasOwn(this.options, 'title')) {\n this._buttonLabel = this.options.title\n }\n\n this._initDropdown()\n\n // console.log('this', this)\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n updateValue(event: any) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event)\n } else {\n this.jsf.updateValue(this, event.target.value)\n }\n }\n\n private _initDropdown(): void {\n if (!hasOwn(this.layoutNode, 'items') || !(this.layoutNode.items || []).length) {\n return\n }\n\n if (isDevMode()) {\n if (this.layoutNode.items.length > 1) {\n console.warn(\n `TheSeamSchemaFormSubmitSplitComponent only supports one item.` +\n ` items after index 0 will be ignored.`\n )\n }\n }\n\n const idx = 0\n const item = this.layoutNode.items[idx]\n this._dropdownObj = {\n layoutNode: item,\n layoutIndex: (this.layoutIndex || []).concat(idx),\n dataIndex: this.layoutNode?.dataType === 'array' ? (this.dataIndex || []).concat(idx) : this.dataIndex,\n\n options: item.options || {}\n }\n\n this.jsf.initializeControl(this._dropdownObj)\n\n\n const items = buildTitleMap(\n this._dropdownObj.options.titleMap || this._dropdownObj.options.enumNames,\n this._dropdownObj.options.enum,\n !!this._dropdownObj.options.required,\n !!this._dropdownObj.options.flatList\n )\n\n this._selectList = items\n\n // TODO: Should this be checking if the control is bound?\n const dropdownControl = this._getDropdownControl()\n if (!dropdownControl) {\n return\n }\n\n observeControlValue(dropdownControl).pipe(\n takeUntil(this._ngUnsubscribe)\n ).subscribe(value => {\n this._setSelectListCheckedProp(value)\n this._selectedItem = this._getSelectedItem()\n })\n\n observeControlStatus(dropdownControl).pipe(\n takeUntil(this._ngUnsubscribe)\n ).subscribe(value => {\n this._dropdownDisabled = dropdownControl.disabled\n })\n }\n\n private _getDropdownControl(): FormControl | undefined {\n return this._dropdownObj.formControl as FormControl\n }\n\n private _setSelectListCheckedProp(value: any) {\n const items = this._selectList\n for (const item of items) {\n if (item.value === value) {\n item.checked = true\n } else if (item.checked) {\n item.checked = false\n }\n }\n this._selectList = [ ...items ]\n }\n\n private _getSelectedItem(): TheSeamSchemaFormSubmitSplitItem | undefined {\n return (this._selectList || []).find(x => x.checked === true)\n }\n\n _setDropdownValue(value: any) {\n const formControl = this._getDropdownControl()\n formControl?.setValue(value)\n }\n\n}\n","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'seam-schema-form-framework',\n templateUrl: './schema-form-framework.component.html',\n styleUrls: ['./schema-form-framework.component.scss']\n})\nexport class TheSeamSchemaFormFrameworkComponent {\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n}\n","import { Injectable } from '@angular/core'\n\nimport { Framework } from '@ajsf/core'\n\nimport { TheSeamSchemaFormCheckboxComponent } from '../schema-form-controls/schema-form-checkbox/schema-form-checkbox.component'\nimport { TheSeamSchemaFormInputComponent } from '../schema-form-controls/schema-form-input/schema-form-input.component'\nimport { TheSeamSchemaFormNumberComponent } from '../schema-form-controls/schema-form-number/schema-form-number.component'\nimport { TheSeamSchemaFormSelectComponent } from '../schema-form-controls/schema-form-select/schema-form-select.component'\nimport { TheSeamSchemaFormSubmitSplitComponent } from '../schema-form-controls/schema-form-submit-split/schema-form-submit-split.component'\nimport { TheSeamSchemaFormSubmitComponent } from '../schema-form-controls/schema-form-submit/schema-form-submit.component'\n\nimport { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.component'\n\n@Injectable()\nexport class TheSeamFramework extends Framework {\n name = 'seam-framework'\n\n framework = TheSeamSchemaFormFrameworkComponent\n\n widgets = {\n 'checkbox': TheSeamSchemaFormCheckboxComponent,\n // 'submit': TheSeamSchemaFormSubmitComponent,\n 'submit': TheSeamSchemaFormSubmitSplitComponent,\n 'text': TheSeamSchemaFormInputComponent,\n 'number': TheSeamSchemaFormNumberComponent,\n 'select': TheSeamSchemaFormSelectComponent\n }\n}\n","import { Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { hasOwn, JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-submit',\n templateUrl: './schema-form-submit.component.html',\n styles: []\n})\nexport class TheSeamSchemaFormSubmitComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (hasOwn(this.options, 'disabled')) {\n this.controlDisabled = this.options.disabled\n } else if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid)\n }\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n }\n\n updateValue(event: any) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event)\n } else {\n this.jsf.updateValue(this, event.target.value)\n }\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { JsonSchemaFormModule } from '@ajsf/core'\nimport { NgSelectModule } from '@ng-select/ng-select'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamCheckboxModule } from '@theseam/ui-common/checkbox'\nimport { TheSeamFormFieldModule } from '@theseam/ui-common/form-field'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\n\nimport { TheSeamSchemaFormCheckboxComponent } from './schema-form-checkbox/schema-form-checkbox.component'\nimport { TheSeamSchemaFormInputComponent } from './schema-form-input/schema-form-input.component'\nimport { TheSeamSchemaFormNumberComponent } from './schema-form-number/schema-form-number.component'\nimport { TheSeamSchemaFormSelectComponent } from './schema-form-select/schema-form-select.component'\nimport { TheSeamSchemaFormSubmitSplitComponent } from './schema-form-submit-split/schema-form-submit-split.component'\nimport { TheSeamSchemaFormSubmitComponent } from './schema-form-submit/schema-form-submit.component'\n\nconst controls = [\n TheSeamSchemaFormCheckboxComponent,\n TheSeamSchemaFormSubmitComponent,\n TheSeamSchemaFormSelectComponent,\n TheSeamSchemaFormInputComponent,\n TheSeamSchemaFormNumberComponent,\n TheSeamSchemaFormSubmitSplitComponent\n]\n\n@NgModule({\n declarations: [\n ...controls\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n JsonSchemaFormModule,\n TheSeamFormFieldModule,\n TheSeamCheckboxModule,\n TheSeamMenuModule,\n TheSeamButtonsModule,\n NgSelectModule\n ],\n exports: [\n ...controls,\n JsonSchemaFormModule\n ],\n entryComponents: [\n ...controls\n ]\n})\nexport class TheSeamSchemaFormControlsModule { }\n","import { CommonModule } from '@angular/common'\nimport { Directive, NgModule } from '@angular/core'\n\nimport {\n Framework,\n FrameworkLibraryService,\n JsonSchemaFormModule,\n JsonSchemaFormService,\n WidgetLibraryModule, WidgetLibraryService\n} from '@ajsf/core'\n\nimport { TheSeamSchemaFormControlsModule } from '../schema-form-controls/schema-form-controls.module'\nimport { TheSeamFramework } from './schema-form-framework'\nimport { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.component'\n\n@NgModule({\n declarations: [\n TheSeamSchemaFormFrameworkComponent\n ],\n imports: [\n CommonModule,\n JsonSchemaFormModule,\n TheSeamSchemaFormControlsModule,\n WidgetLibraryModule,\n ],\n providers: [\n JsonSchemaFormService,\n FrameworkLibraryService,\n WidgetLibraryService,\n { provide: Framework, useClass: TheSeamFramework, multi: true }\n ],\n exports: [\n TheSeamSchemaFormFrameworkComponent,\n JsonSchemaFormModule\n ],\n entryComponents: [\n TheSeamSchemaFormFrameworkComponent\n ]\n})\nexport class TheSeamSchemaFormModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TheSeamSchemaFormCheckboxComponent as ɵc} from './schema-form-controls/schema-form-checkbox/schema-form-checkbox.component';\nexport {TheSeamSchemaFormControlsModule as ɵb} from './schema-form-controls/schema-form-controls.module';\nexport {TheSeamSchemaFormInputComponent as ɵf} from './schema-form-controls/schema-form-input/schema-form-input.component';\nexport {TheSeamSchemaFormNumberComponent as ɵg} from './schema-form-controls/schema-form-number/schema-form-number.component';\nexport {TheSeamSchemaFormSelectComponent as ɵe} from './schema-form-controls/schema-form-select/schema-form-select.component';\nexport {TheSeamSchemaFormSubmitSplitComponent as ɵh} from './schema-form-controls/schema-form-submit-split/schema-form-submit-split.component';\nexport {TheSeamSchemaFormSubmitComponent as ɵd} from './schema-form-controls/schema-form-submit/schema-form-submit.component';\nexport {TheSeamSideNavService as ɵa} from './side-nav/side-nav.service';"],"names":["EXPANDED_STATE","COLLAPSED_STATE"],"mappings":"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"}
@@ -0,0 +1,331 @@
1
+ import { visit, BREAK } from 'graphql/language';
2
+ import { isDevMode } from '@angular/core';
3
+ import { hasProperty, notNullOrUndefined, isNullOrUndefined } from '@theseam/ui-common/utils';
4
+ import { visit as visit$1, parse, BREAK as BREAK$1 } from 'graphql';
5
+
6
+ function containsVariable(node, variableName) {
7
+ let found = false;
8
+ visit(node, {
9
+ Variable(variable) {
10
+ if (variableName === variable.name.value) {
11
+ found = true;
12
+ return BREAK;
13
+ }
14
+ }
15
+ });
16
+ return found;
17
+ }
18
+
19
+ function gqlVar(varName) {
20
+ return { gqlVar: `$${varName}` };
21
+ }
22
+
23
+ function inlineVariable(query, variableName, variableValue) {
24
+ // return visit(query, {
25
+ // VariableDefinition(node) {
26
+ // if (variableName === node.variable.name.value) {
27
+ // console.log(node)
28
+ // // found = true
29
+ // console.log('insert', variableValue)
30
+ // // return BREAK
31
+ // // node.defaultValue = variableValue
32
+ // return {
33
+ // ...node,
34
+ // defaultValue: variableValue
35
+ // }
36
+ // }
37
+ // }
38
+ // })
39
+ // console.log('~inlineVariable', variableName, variableValue)
40
+ // TODO: Decide if this is a good solution.
41
+ if (hasProperty(variableValue, 'value') && variableValue.value === 'undefined') {
42
+ if (isDevMode()) {
43
+ console.warn(`Ignoring attempt to inline '${variableName}', because it is undefined.`);
44
+ }
45
+ return visit$1(query, {
46
+ SelectionSet(selectionSetNode) {
47
+ return visit$1(selectionSetNode, {
48
+ Variable(variableNode) {
49
+ if (variableName === variableNode.name.value) {
50
+ return null;
51
+ }
52
+ }
53
+ });
54
+ }
55
+ });
56
+ }
57
+ return visit$1(query, {
58
+ SelectionSet(selectionSetNode) {
59
+ return visit$1(selectionSetNode, {
60
+ Variable(variableNode) {
61
+ if (variableName === variableNode.name.value) {
62
+ return variableValue;
63
+ }
64
+ }
65
+ });
66
+ }
67
+ });
68
+ }
69
+
70
+ // Based on Prettier's comment parsing.
71
+ //
72
+ // Source: https://github.com/prettier/prettier/blob/4e46f92b8648c7f25de62bfaf4368aa3f2e588d9/src/language-graphql/parser-graphql.js#L6
73
+ function parseComments(ast) {
74
+ const comments = [];
75
+ if (ast.loc === undefined) {
76
+ return comments;
77
+ }
78
+ const startToken = ast.loc.startToken;
79
+ let next = startToken.next;
80
+ while (next !== null && next.kind !== '<EOF>') {
81
+ if (next.kind === 'Comment') {
82
+ Object.assign(next, {
83
+ // The Comment token's column starts _after_ the `#`,
84
+ // but we need to make sure the node captures the `#`
85
+ column: next.column - 1
86
+ });
87
+ comments.push(next);
88
+ }
89
+ next = next.next;
90
+ }
91
+ return comments;
92
+ }
93
+
94
+ class GQLDirection {
95
+ constructor(direction) {
96
+ this.direction = direction;
97
+ }
98
+ }
99
+ GQLDirection.ASC = new GQLDirection('ASC');
100
+ GQLDirection.DESC = new GQLDirection('DESC');
101
+
102
+ var HintsKind;
103
+ (function (HintsKind) {
104
+ HintsKind["OperationDefinition"] = "OperationDefinition";
105
+ HintsKind["Field"] = "Field";
106
+ HintsKind["VariableDefinition"] = "VariableDefinition";
107
+ HintsKind["Variable"] = "Variable";
108
+ HintsKind["Argument"] = "Argument";
109
+ })(HintsKind || (HintsKind = {}));
110
+
111
+ const DEFAULT_TO_REMOVE_ON_UNDEFINED = ['where', 'order'];
112
+
113
+ class GQLVariable {
114
+ constructor(name, type) {
115
+ this.name = name;
116
+ this.type = type;
117
+ }
118
+ }
119
+
120
+ const HINT_PREFIX_REGEX = /^\s*@gql-hint:.+/;
121
+ const HINT_NAMES_CAPTURE_REGEX = /^\s*@gql-hint:([a-zA-z-\d\s]+)$/;
122
+ /**
123
+ * If AST loc has startToken prop then return same AST else reparse with config
124
+ * to contain comments and loc at each node.
125
+ */
126
+ function parseAst(ast) {
127
+ if (ast.loc === undefined) {
128
+ throw Error(`Expected AST to have loc.`);
129
+ }
130
+ if (ast.loc.startToken !== undefined) {
131
+ return ast;
132
+ }
133
+ return parse(ast.loc.source, {
134
+ allowLegacySDLImplementsInterfaces: false,
135
+ experimentalFragmentVariables: true,
136
+ });
137
+ }
138
+ function isCommentToken(token) {
139
+ return token.kind === 'Comment';
140
+ }
141
+ function isHintToken(token) {
142
+ var _a, _b;
143
+ return isCommentToken(token) &&
144
+ (((_b = (_a = token.value) === null || _a === void 0 ? void 0 : _a.match(HINT_PREFIX_REGEX)) === null || _b === void 0 ? void 0 : _b.length) || 0) > 0 || false;
145
+ }
146
+ function isInlineComment(token) {
147
+ return isCommentToken(token) &&
148
+ token.prev !== null &&
149
+ token.prev.line === token.line;
150
+ }
151
+ function hintNamesFromHintToken(token) {
152
+ var _a;
153
+ const grp = (_a = token.value) === null || _a === void 0 ? void 0 : _a.match(HINT_NAMES_CAPTURE_REGEX);
154
+ if (grp === null || grp === undefined || grp.length === 0) {
155
+ return [];
156
+ }
157
+ return grp[1].split(' ').map(x => x.trim()).filter(x => x.length > 0);
158
+ }
159
+ function getTokenAppliesTo(token) {
160
+ var _a;
161
+ if (isInlineComment(token)) {
162
+ return token.prev;
163
+ }
164
+ let t = token.next;
165
+ if ((t === null || t === void 0 ? void 0 : t.kind) === '$' && ((_a = t.next) === null || _a === void 0 ? void 0 : _a.kind) === 'Name') {
166
+ t = t.next;
167
+ }
168
+ return t;
169
+ }
170
+ function createHintsToken(token, node, kind) {
171
+ return {
172
+ node,
173
+ hints: hintNamesFromHintToken(token),
174
+ kind
175
+ };
176
+ }
177
+ function getHintsToken(token, ast) {
178
+ console.log('getHintsToken', token);
179
+ const appliesTo = getTokenAppliesTo(token);
180
+ if (appliesTo === null) {
181
+ return null;
182
+ }
183
+ let appliesToNode = null;
184
+ visit$1(ast, {
185
+ OperationDefinition(node) {
186
+ var _a;
187
+ if (((_a = node.loc) === null || _a === void 0 ? void 0 : _a.start) === appliesTo.start) {
188
+ appliesToNode = createHintsToken(token, node, HintsKind.OperationDefinition);
189
+ return BREAK$1;
190
+ }
191
+ },
192
+ VariableDefinition(node) {
193
+ var _a;
194
+ if (((_a = node.variable.name.loc) === null || _a === void 0 ? void 0 : _a.start) === appliesTo.start) {
195
+ appliesToNode = createHintsToken(token, node, HintsKind.VariableDefinition);
196
+ return BREAK$1;
197
+ }
198
+ },
199
+ Variable(node) {
200
+ var _a;
201
+ if (((_a = node.name.loc) === null || _a === void 0 ? void 0 : _a.start) === appliesTo.start) {
202
+ appliesToNode = createHintsToken(token, node, HintsKind.Variable);
203
+ return BREAK$1;
204
+ }
205
+ },
206
+ Argument(node) {
207
+ var _a;
208
+ if (((_a = node.name.loc) === null || _a === void 0 ? void 0 : _a.start) === appliesTo.start) {
209
+ appliesToNode = createHintsToken(token, node, HintsKind.Argument);
210
+ return BREAK$1;
211
+ }
212
+ },
213
+ Field(node) {
214
+ var _a;
215
+ if (((_a = node.name.loc) === null || _a === void 0 ? void 0 : _a.start) === appliesTo.start) {
216
+ appliesToNode = createHintsToken(token, node, HintsKind.Field);
217
+ return BREAK$1;
218
+ }
219
+ }
220
+ });
221
+ return appliesToNode;
222
+ }
223
+ function parseHints(ast) {
224
+ const _ast = parseAst(ast);
225
+ console.log('_ast', _ast);
226
+ return parseComments(_ast)
227
+ .filter(isHintToken)
228
+ .map(r => getHintsToken(r, _ast))
229
+ .filter(notNullOrUndefined);
230
+ }
231
+
232
+ function removeVariableDefinition(query, variableName) {
233
+ return visit$1(query, {
234
+ VariableDefinition: {
235
+ enter(variable) {
236
+ const name = variable.variable.name.value;
237
+ if (name === variableName) {
238
+ return null;
239
+ }
240
+ }
241
+ }
242
+ });
243
+ }
244
+
245
+ function removeVariableDefinitionsNotDefined(query, node, variables) {
246
+ return visit$1(query, {
247
+ OperationDefinition(opDef) {
248
+ if (opDef === node) {
249
+ return visit$1(opDef, {
250
+ VariableDefinition(varDef) {
251
+ const name = varDef.variable.name.value;
252
+ if (isNullOrUndefined(variables[name])) {
253
+ return null;
254
+ }
255
+ }
256
+ });
257
+ }
258
+ }
259
+ });
260
+ }
261
+
262
+ function removeVariable(query, variableName) {
263
+ return visit$1(query, {
264
+ VariableDefinition: {
265
+ enter(variable) {
266
+ const name = variable.variable.name.value;
267
+ if (name === variableName) {
268
+ return null;
269
+ }
270
+ }
271
+ },
272
+ Argument: {
273
+ enter(variable) {
274
+ const name = variable.name.value;
275
+ if (name === variableName) {
276
+ return null;
277
+ }
278
+ }
279
+ }
280
+ });
281
+ }
282
+
283
+ // Naive initial implementation. This is intended for dynamic values, such as
284
+ // sorting and filtering. If you are defining a schema, use the gql template
285
+ // function from 'apollo-angular'.
286
+ //
287
+ // TODO: Try to find a maintained library that will handle this. Ideally a
288
+ // type-safe one, but that is becoming surprisingly harder to find than I
289
+ // expected for GraphQL.
290
+ function toGQL(json) {
291
+ const props = Object.keys(json).map(prop => {
292
+ const value = json[prop];
293
+ let resultValue;
294
+ if (typeof value === 'string') {
295
+ resultValue = `\"${value}\"`;
296
+ }
297
+ else if (value instanceof GQLDirection) {
298
+ resultValue = `${value.direction}`;
299
+ }
300
+ else if (Array.isArray(value)) {
301
+ resultValue = `[${value.map(v => toGQL(v)).join(',')}]`;
302
+ }
303
+ else if (typeof value === 'object') {
304
+ if (value.hasOwnProperty('gqlVar')) {
305
+ resultValue = `${value.gqlVar}`;
306
+ }
307
+ else {
308
+ resultValue = toGQL(value);
309
+ }
310
+ }
311
+ else {
312
+ resultValue = `${value}`;
313
+ }
314
+ if (typeof resultValue !== 'string') {
315
+ throw Error(`Unexpected value.`);
316
+ }
317
+ return `${prop}: ${resultValue}`;
318
+ });
319
+ return `{${props.join(', ')}}`;
320
+ }
321
+
322
+ function hintsTokensContainingHint(hintsTokens, hint) {
323
+ return hintsTokens.filter(r => r.hints.indexOf(hint) !== -1);
324
+ }
325
+
326
+ /**
327
+ * Generated bundle index. Do not edit.
328
+ */
329
+
330
+ export { HINT_NAMES_CAPTURE_REGEX, HINT_PREFIX_REGEX, containsVariable, createHintsToken, getHintsToken, getTokenAppliesTo, gqlVar, hintNamesFromHintToken, hintsTokensContainingHint, inlineVariable, isCommentToken, isHintToken, isInlineComment, parseAst, parseComments, parseHints, removeVariable, removeVariableDefinition, removeVariableDefinitionsNotDefined, toGQL };
331
+ //# sourceMappingURL=theseam-ui-common-graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theseam-ui-common-graphql.js","sources":["../../../projects/ui-common/graphql/utils/contains-variable.ts","../../../projects/ui-common/graphql/utils/gql-var.ts","../../../projects/ui-common/graphql/utils/inline-variables.ts","../../../projects/ui-common/graphql/utils/parse-comments.ts","../../../projects/ui-common/graphql/models/direction.ts","../../../projects/ui-common/graphql/models/hints-kind.ts","../../../projects/ui-common/graphql/models/query-processing-config.ts","../../../projects/ui-common/graphql/models/variable.ts","../../../projects/ui-common/graphql/utils/parse-hints.ts","../../../projects/ui-common/graphql/utils/remove-variable-definition.ts","../../../projects/ui-common/graphql/utils/remove-variable-definitions-not-defined.ts","../../../projects/ui-common/graphql/utils/remove-variable.ts","../../../projects/ui-common/graphql/utils/to-gql.ts","../../../projects/ui-common/graphql/utils/hints-tokens-containing-hint.ts","../../../projects/ui-common/graphql/theseam-ui-common-graphql.ts"],"sourcesContent":["import { BREAK, DocumentNode, ValueNode, visit } from 'graphql/language'\n\nexport function containsVariable(node: DocumentNode | ValueNode, variableName: string) {\n let found = false\n\n visit(node, {\n Variable(variable) {\n if (variableName === variable.name.value) {\n found = true\n return BREAK\n }\n }\n })\n\n return found\n}\n","\nexport function gqlVar(varName: string): { gqlVar: string } {\n return { gqlVar: `$${varName}` }\n}\n","import { isDevMode } from '@angular/core'\n\nimport { hasProperty } from '@theseam/ui-common/utils'\nimport { BREAK, DocumentNode, ValueNode, visit } from 'graphql'\n\nexport function inlineVariable(query: DocumentNode, variableName: string, variableValue: ValueNode): DocumentNode {\n // return visit(query, {\n // VariableDefinition(node) {\n // if (variableName === node.variable.name.value) {\n // console.log(node)\n // // found = true\n // console.log('insert', variableValue)\n // // return BREAK\n\n // // node.defaultValue = variableValue\n // return {\n // ...node,\n // defaultValue: variableValue\n // }\n // }\n // }\n // })\n\n\n // console.log('~inlineVariable', variableName, variableValue)\n\n // TODO: Decide if this is a good solution.\n if (hasProperty(variableValue as any, 'value') && (variableValue as any).value === 'undefined') {\n if (isDevMode()) {\n console.warn(`Ignoring attempt to inline '${variableName}', because it is undefined.`)\n }\n return visit(query, {\n SelectionSet(selectionSetNode) {\n return visit(selectionSetNode, {\n Variable(variableNode) {\n if (variableName === variableNode.name.value) {\n return null\n }\n }\n })\n }\n })\n }\n\n\n return visit(query, {\n SelectionSet(selectionSetNode) {\n return visit(selectionSetNode, {\n Variable(variableNode) {\n if (variableName === variableNode.name.value) {\n return variableValue\n }\n }\n })\n }\n })\n}\n","import { DocumentNode, Token } from 'graphql/language'\n\n// Based on Prettier's comment parsing.\n//\n// Source: https://github.com/prettier/prettier/blob/4e46f92b8648c7f25de62bfaf4368aa3f2e588d9/src/language-graphql/parser-graphql.js#L6\nexport function parseComments(ast: DocumentNode): Token[] {\n const comments: Token[] = []\n\n if (ast.loc === undefined) {\n return comments\n }\n\n const startToken = ast.loc.startToken\n let next = startToken.next\n while (next !== null && next.kind !== '<EOF>') {\n if (next.kind === 'Comment') {\n Object.assign(next, {\n // The Comment token's column starts _after_ the `#`,\n // but we need to make sure the node captures the `#`\n column: next.column - 1\n })\n comments.push(next)\n }\n next = next.next\n }\n\n return comments\n}\n","export class GQLDirection {\n constructor(public readonly direction: string) { }\n public static readonly ASC = new GQLDirection('ASC')\n public static readonly DESC = new GQLDirection('DESC')\n}\n","export enum HintsKind {\n OperationDefinition = 'OperationDefinition',\n Field = 'Field',\n VariableDefinition = 'VariableDefinition',\n Variable = 'Variable',\n Argument = 'Argument'\n}\n","export const DEFAULT_TO_REMOVE_ON_UNDEFINED = [ 'where', 'order' ]\n\nexport interface QueryProcessingVariablesConfig {\n removeIfNotDefined?: string[]\n removeIfNotUsed?: string[]\n inline?: string[]\n}\n\nexport interface QueryProcessingConfig {\n variables: QueryProcessingVariablesConfig\n}\n","export class GQLVariable {\n constructor(\n public readonly name: string,\n public readonly type: string\n ) {}\n}\n","import {\n ArgumentNode,\n BREAK,\n DocumentNode,\n FieldNode,\n OperationDefinitionNode,\n parse,\n Token,\n VariableDefinitionNode,\n VariableNode,\n visit\n} from 'graphql'\n\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { HintsKind, HintsToken } from '../models'\nimport { parseComments } from './parse-comments'\n\nexport const HINT_PREFIX_REGEX = /^\\s*@gql-hint:.+/\nexport const HINT_NAMES_CAPTURE_REGEX = /^\\s*@gql-hint:([a-zA-z-\\d\\s]+)$/\n\n/**\n * If AST loc has startToken prop then return same AST else reparse with config\n * to contain comments and loc at each node.\n */\nexport function parseAst(ast: DocumentNode): DocumentNode {\n if (ast.loc === undefined) {\n throw Error(`Expected AST to have loc.`)\n }\n\n if (ast.loc.startToken !== undefined) {\n return ast\n }\n\n return parse(ast.loc.source, {\n allowLegacySDLImplementsInterfaces: false,\n experimentalFragmentVariables: true,\n })\n}\n\nexport function isCommentToken(token: Token): boolean {\n return token.kind === 'Comment'\n}\n\nexport function isHintToken(token: Token): boolean {\n return isCommentToken(token) &&\n (token.value?.match(HINT_PREFIX_REGEX)?.length || 0) > 0 || false\n}\n\nexport function isInlineComment(token: Token): boolean {\n return isCommentToken(token) &&\n token.prev !== null &&\n token.prev.line === token.line\n}\n\nexport function hintNamesFromHintToken(token: Token): string[] {\n const grp = token.value?.match(HINT_NAMES_CAPTURE_REGEX)\n if (grp === null || grp === undefined || grp.length === 0) {\n return []\n }\n return grp[1].split(' ').map(x => x.trim()).filter(x => x.length > 0)\n}\n\nexport function getTokenAppliesTo(token: Token): Token | null {\n if (isInlineComment(token)) {\n return token.prev\n }\n\n let t = token.next\n if (t?.kind === '$' && t.next?.kind === 'Name') {\n t = t.next\n }\n return t\n}\n\nexport function createHintsToken(token: Token, node: HintsToken['node'], kind: HintsKind): HintsToken {\n return {\n node,\n hints: hintNamesFromHintToken(token),\n kind\n }\n}\n\nexport function getHintsToken(token: Token, ast: DocumentNode): HintsToken | null {\n console.log('getHintsToken', token)\n const appliesTo = getTokenAppliesTo(token)\n if (appliesTo === null) {\n return null\n }\n\n let appliesToNode: HintsToken | null = null\n visit(ast, {\n OperationDefinition(node: OperationDefinitionNode) {\n if (node.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.OperationDefinition)\n return BREAK\n }\n },\n VariableDefinition(node: VariableDefinitionNode) {\n if (node.variable.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.VariableDefinition)\n return BREAK\n }\n },\n Variable(node: VariableNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Variable)\n return BREAK\n }\n },\n Argument(node: ArgumentNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Argument)\n return BREAK\n }\n },\n Field(node: FieldNode) {\n if (node.name.loc?.start === appliesTo.start) {\n appliesToNode = createHintsToken(token, node, HintsKind.Field)\n return BREAK\n }\n }\n })\n return appliesToNode\n}\n\nexport function parseHints(ast: DocumentNode): HintsToken[] {\n const _ast = parseAst(ast)\n console.log('_ast', _ast)\n return parseComments(_ast)\n .filter(isHintToken)\n .map(r => getHintsToken(r, _ast))\n .filter(notNullOrUndefined)\n}\n","import { DocumentNode, visit } from 'graphql'\n\nexport function removeVariableDefinition(query: DocumentNode, variableName: string): DocumentNode {\n return visit(query, {\n VariableDefinition: {\n enter(variable) {\n const name = variable.variable.name.value\n if (name === variableName) {\n return null\n }\n }\n }\n })\n}\n","import { Operation } from '@apollo/client'\nimport { DocumentNode, OperationDefinitionNode, visit } from 'graphql'\n\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nexport function removeVariableDefinitionsNotDefined(\n query: DocumentNode,\n node: OperationDefinitionNode,\n variables: Operation['variables']\n) {\n return visit(query, {\n OperationDefinition(opDef) {\n if (opDef === node) {\n return visit(opDef, {\n VariableDefinition(varDef) {\n const name = varDef.variable.name.value\n if (isNullOrUndefined(variables[name])) {\n return null\n }\n }\n })\n }\n }\n })\n}\n","import { DocumentNode, visit } from 'graphql'\n\nexport function removeVariable(query: DocumentNode, variableName: string): DocumentNode {\n return visit(query, {\n VariableDefinition: {\n enter(variable) {\n const name = variable.variable.name.value\n if (name === variableName) {\n return null\n }\n }\n },\n Argument: {\n enter(variable) {\n const name = variable.name.value\n if (name === variableName) {\n return null\n }\n }\n }\n })\n}\n","import { GQLDirection } from '../models'\n\n// Naive initial implementation. This is intended for dynamic values, such as\n// sorting and filtering. If you are defining a schema, use the gql template\n// function from 'apollo-angular'.\n//\n// TODO: Try to find a maintained library that will handle this. Ideally a\n// type-safe one, but that is becoming surprisingly harder to find than I\n// expected for GraphQL.\nexport function toGQL(json: any): string {\n const props: string[] = Object.keys(json).map(prop => {\n const value = json[prop]\n let resultValue: string | undefined\n if (typeof value === 'string') {\n resultValue = `\\\"${value}\\\"`\n } else if (value instanceof GQLDirection) {\n resultValue = `${value.direction}`\n } else if (Array.isArray(value)) {\n resultValue = `[${value.map(v => toGQL(v)).join(',')}]`\n } else if (typeof value === 'object') {\n if (value.hasOwnProperty('gqlVar')) {\n resultValue = `${value.gqlVar}`\n } else {\n resultValue = toGQL(value)\n }\n } else {\n resultValue = `${value}`\n }\n if (typeof resultValue !== 'string') {\n throw Error(`Unexpected value.`)\n }\n return `${prop}: ${resultValue}`\n })\n return `{${props.join(', ')}}`\n}\n","import { HintsToken } from '../models'\n\nexport function hintsTokensContainingHint(hintsTokens: HintsToken[], hint: string): HintsToken[] {\n return hintsTokens.filter(r => r.hints.indexOf(hint) !== -1)\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["visit","BREAK"],"mappings":"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"}
@@ -0,0 +1,518 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, ElementRef, Renderer2, Input, HostBinding, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
4
+ import { __decorate } from 'tslib';
5
+ import { InputBoolean } from '@theseam/ui-common/core';
6
+ import { animation, style, animate, keyframes, trigger, transition, useAnimation } from '@angular/animations';
7
+ import { faCircle, faBan, faChartLine, faChartArea, faChartBar, faCheck, faCloudUploadAlt, faCog, faEdit, faExclamation, faExclamationCircle, faExclamationTriangle, faExternalLinkSquareAlt, faFileContract, faFileCsv, faFileDownload, faFileExport, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePrescription, faFileSignature, faFileUpload, faInbox, faInfoCircle, faLock, faLockOpen, faPrint, faReceipt, faReply, faShare, faSignature, faTimes, faTrash, faUserCheck, faUserEdit, faUserTimes, faUsers, faUserPlus } from '@fortawesome/free-solid-svg-icons';
8
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
9
+ import { faFilePdf, faFileWord, faFileExcel, faFileImage, faFileArchive, faFilePowerpoint, faFileAlt, faFile, faAddressCard, faBell, faBookmark, faCheckCircle, faClock, faComment, faEnvelope, faEnvelopeOpen, faFileAudio, faFileCode, faFileVideo, faFolder, faFolderOpen, faImage, faImages, faQuestionCircle, faSave, faStickyNote, faTimesCircle, faTrashAlt, faUser, faUserCircle } from '@fortawesome/free-regular-svg-icons';
10
+
11
+ class IconBtnComponent {
12
+ constructor(_elementRef, _renderer) {
13
+ this._elementRef = _elementRef;
14
+ this._renderer = _renderer;
15
+ /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */
16
+ this.grayscaleOnDisable = true;
17
+ /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */
18
+ this.disabled = false;
19
+ /**
20
+ * Toggles whether an image that has thrown the `onerror` event should show
21
+ * the `defaultIcon` instead.
22
+ */
23
+ this.showDefaultOnError = false;
24
+ /**
25
+ * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.
26
+ *
27
+ * NOTE: Not supported for icon-btn yet.
28
+ */
29
+ // @Input() defaultIcon: SeamIcon
30
+ this.iconType = 'image-fill';
31
+ this._cssPadding0 = true;
32
+ this._btn = true;
33
+ this._textNoWrap = true;
34
+ this.btnTheme = 'default';
35
+ this.badgeTheme = 'light';
36
+ this.badgeText = '';
37
+ }
38
+ get _btnDefault() { return this.isBtnTheme('default'); }
39
+ get _btnPrimary() { return this.isBtnTheme('primary'); }
40
+ get _btnSecondary() { return this.isBtnTheme('secondary'); }
41
+ get _btnSuccess() { return this.isBtnTheme('success'); }
42
+ get _btnDanger() { return this.isBtnTheme('danger'); }
43
+ get _btnWarning() { return this.isBtnTheme('warning'); }
44
+ get _btnInfo() { return this.isBtnTheme('info'); }
45
+ get _btnLight() { return this.isBtnTheme('light'); }
46
+ get _btnDark() { return this.isBtnTheme('dark'); }
47
+ get _btnLightGray() { return this.isBtnTheme('lightgray'); }
48
+ get _btnSizeSm() { return this.btnSize === 'sm'; }
49
+ get _btnSizeLg() { return this.btnSize === 'lg'; }
50
+ get type() { return this._type; }
51
+ set type(value) {
52
+ this._type = value;
53
+ }
54
+ get role() { return this._role; }
55
+ set role(value) {
56
+ this._role = value;
57
+ }
58
+ ngOnInit() { }
59
+ ngDoCheck() {
60
+ if (this._isButton()) {
61
+ this._renderer.setAttribute(this._elementRef.nativeElement, 'type', this._type || 'button');
62
+ }
63
+ else if (this._isAnchor()) {
64
+ this._renderer.setAttribute(this._elementRef.nativeElement, 'role', this._role || 'button');
65
+ }
66
+ }
67
+ isBtnTheme(type) {
68
+ return this.btnTheme === type;
69
+ }
70
+ _isButton() {
71
+ return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button';
72
+ }
73
+ _isAnchor() {
74
+ return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button';
75
+ }
76
+ }
77
+ IconBtnComponent.decorators = [
78
+ { type: Component, args: [{
79
+ // tslint:disable-next-line:component-selector
80
+ selector: 'button[seamIconBtn]',
81
+ template: `
82
+ <seam-icon *ngIf="icon"
83
+ [grayscaleOnDisable]="grayscaleOnDisable"
84
+ [disabled]="disabled"
85
+ [iconClass]="iconClass"
86
+ [icon]="icon"
87
+ [size]="size"
88
+ [showDefaultOnError]="showDefaultOnError"
89
+ [iconType]="iconType">
90
+ </seam-icon>
91
+ <ng-content select=".sr-only,seam-icon-notification"></ng-content>
92
+ `,
93
+ // tslint:disable-next-line:use-host-property-decorator
94
+ host: {
95
+ '[attr.aria-disabled]': 'disabled.toString()',
96
+ '[attr.disabled]': 'disabled || null',
97
+ }
98
+ },] }
99
+ ];
100
+ IconBtnComponent.ctorParameters = () => [
101
+ { type: ElementRef },
102
+ { type: Renderer2 }
103
+ ];
104
+ IconBtnComponent.propDecorators = {
105
+ grayscaleOnDisable: [{ type: Input }],
106
+ disabled: [{ type: Input }],
107
+ iconClass: [{ type: Input }],
108
+ icon: [{ type: Input }],
109
+ size: [{ type: Input }],
110
+ showDefaultOnError: [{ type: Input }],
111
+ iconType: [{ type: Input }],
112
+ _cssPadding0: [{ type: HostBinding, args: ['class.p-0',] }],
113
+ _btn: [{ type: HostBinding, args: ['class.btn',] }],
114
+ _textNoWrap: [{ type: HostBinding, args: ['class.text-nowrap',] }],
115
+ _btnDefault: [{ type: HostBinding, args: ['class.btn-default',] }],
116
+ _btnPrimary: [{ type: HostBinding, args: ['class.btn-primary',] }],
117
+ _btnSecondary: [{ type: HostBinding, args: ['class.btn-secondary',] }],
118
+ _btnSuccess: [{ type: HostBinding, args: ['class.btn-success',] }],
119
+ _btnDanger: [{ type: HostBinding, args: ['class.btn-danger',] }],
120
+ _btnWarning: [{ type: HostBinding, args: ['class.btn-warning',] }],
121
+ _btnInfo: [{ type: HostBinding, args: ['class.btn-info',] }],
122
+ _btnLight: [{ type: HostBinding, args: ['class.btn-light',] }],
123
+ _btnDark: [{ type: HostBinding, args: ['class.btn-dark',] }],
124
+ _btnLightGray: [{ type: HostBinding, args: ['class.btn-lightgray',] }],
125
+ _btnSizeSm: [{ type: HostBinding, args: ['class.btn-sm',] }],
126
+ _btnSizeLg: [{ type: HostBinding, args: ['class.btn-lg',] }],
127
+ btnTheme: [{ type: Input }],
128
+ badgeTheme: [{ type: Input }],
129
+ badgeText: [{ type: Input }],
130
+ btnSize: [{ type: Input }],
131
+ type: [{ type: Input }],
132
+ role: [{ type: Input }]
133
+ };
134
+ __decorate([
135
+ InputBoolean()
136
+ ], IconBtnComponent.prototype, "grayscaleOnDisable", void 0);
137
+ __decorate([
138
+ InputBoolean()
139
+ ], IconBtnComponent.prototype, "disabled", void 0);
140
+ __decorate([
141
+ InputBoolean()
142
+ ], IconBtnComponent.prototype, "showDefaultOnError", void 0);
143
+
144
+ const pulseAnimation = animation([
145
+ style({ transform: 'scale(1)' }),
146
+ animate('{{ timings }}', keyframes([
147
+ style({ transform: 'scale(1)', offset: 0 }),
148
+ style({ transform: 'scale({{ scale }})', offset: 0.5 }),
149
+ style({ transform: 'scale(1)', offset: 1 })
150
+ ]))
151
+ ]);
152
+ class IconNotificationComponent {
153
+ constructor(_elementRef) {
154
+ this._elementRef = _elementRef;
155
+ this.hidden = false;
156
+ /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */
157
+ this.grayscaleOnDisable = true;
158
+ /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */
159
+ this.disabled = false;
160
+ /**
161
+ * The icon to display.
162
+ *
163
+ * If the input icon is a string an `img` element will be used with icon as `src`.
164
+ * If the input is not a string it will be assumed to be a font-awesome IconProp object.
165
+ */
166
+ this.icon = faCircle;
167
+ /**
168
+ * Toggles whether an image that has thrown the `onerror` event should show
169
+ * the `defaultIcon` instead.
170
+ */
171
+ this.showDefaultOnError = false;
172
+ this.iconType = 'image-fill';
173
+ }
174
+ ngOnInit() {
175
+ if (this._elementRef && this._elementRef.nativeElement && this._elementRef.nativeElement.parentElement) {
176
+ this._elementRef.nativeElement.parentElement.style.position = 'relative';
177
+ }
178
+ }
179
+ }
180
+ IconNotificationComponent.decorators = [
181
+ { type: Component, args: [{
182
+ selector: 'seam-icon-notification',
183
+ template: `
184
+ <seam-icon *ngIf="icon && !hidden" [@counterChange]="count"
185
+ [grayscaleOnDisable]="grayscaleOnDisable"
186
+ [disabled]="disabled"
187
+ [iconClass]="iconClass"
188
+ [icon]="icon"
189
+ [size]="size"
190
+ [showDefaultOnError]="showDefaultOnError"
191
+ [iconType]="iconType">
192
+ </seam-icon>
193
+ <ng-content select=".sr-only"></ng-content>
194
+ `,
195
+ // tslint:disable-next-line:use-host-property-decorator
196
+ host: {
197
+ '[attr.aria-disabled]': 'disabled.toString()',
198
+ '[attr.disabled]': 'disabled || null',
199
+ },
200
+ animations: [
201
+ trigger('counterChange', [
202
+ transition(':increment', useAnimation(pulseAnimation, {
203
+ params: {
204
+ timings: '400ms ease-in-out',
205
+ scale: 1.2
206
+ }
207
+ }))
208
+ ])
209
+ ],
210
+ changeDetection: ChangeDetectionStrategy.OnPush,
211
+ styles: [`
212
+ :host {
213
+ position: absolute;
214
+ top: 0;
215
+ right: 0;
216
+ left: 0;
217
+ bottom: 0;
218
+ }
219
+
220
+ seam-icon {
221
+ position: absolute;
222
+ top: 4px;
223
+ right: 4px;
224
+ width: 25% !important;
225
+ height: 25% !important;
226
+ min-width: 15px;
227
+ min-height: 15px;
228
+ }
229
+ `]
230
+ },] }
231
+ ];
232
+ IconNotificationComponent.ctorParameters = () => [
233
+ { type: ElementRef }
234
+ ];
235
+ IconNotificationComponent.propDecorators = {
236
+ count: [{ type: Input }],
237
+ hidden: [{ type: Input }],
238
+ grayscaleOnDisable: [{ type: Input }],
239
+ disabled: [{ type: Input }],
240
+ iconClass: [{ type: Input }],
241
+ icon: [{ type: Input }],
242
+ showDefaultOnError: [{ type: Input }],
243
+ size: [{ type: Input }],
244
+ iconType: [{ type: Input }]
245
+ };
246
+ __decorate([
247
+ InputBoolean()
248
+ ], IconNotificationComponent.prototype, "hidden", void 0);
249
+ __decorate([
250
+ InputBoolean()
251
+ ], IconNotificationComponent.prototype, "grayscaleOnDisable", void 0);
252
+ __decorate([
253
+ InputBoolean()
254
+ ], IconNotificationComponent.prototype, "disabled", void 0);
255
+ __decorate([
256
+ InputBoolean()
257
+ ], IconNotificationComponent.prototype, "showDefaultOnError", void 0);
258
+
259
+ //
260
+ // TODO: Ensure all inputs correctly update the state whenever changed, not just
261
+ // on initial load.
262
+ //
263
+ // Browsers that do not support css grayscale filter.
264
+ const needToFix = /(MSIE 10)|(Trident.*rv:11\.0)|( Edge\/[\d\.]+$)/.test(navigator.userAgent);
265
+ class IconComponent {
266
+ constructor() {
267
+ this.needToFix = needToFix;
268
+ /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */
269
+ this.grayscaleOnDisable = true;
270
+ /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */
271
+ this.disabled = false;
272
+ this._showDefaultOnError = false;
273
+ this._hasError = false;
274
+ }
275
+ /**
276
+ * The icon to display.
277
+ *
278
+ * If the input icon is a string an `img` element will be used with icon as `src`.
279
+ * If the input is not a string it will be assumed to be a font-awesome IconProp object.
280
+ */
281
+ get icon() { return this._iconUrl || this._iconObj; }
282
+ set icon(value) {
283
+ if (typeof value === 'string') {
284
+ this._iconUrl = value;
285
+ this._iconObj = undefined;
286
+ }
287
+ else {
288
+ this._iconUrl = undefined;
289
+ this._iconObj = value;
290
+ }
291
+ this._iconUrlBeforeError = undefined;
292
+ this._iconObjBeforeError = undefined;
293
+ if (!this._iconUrl && !this._iconObj) {
294
+ this._iconUrl = this._defaultIconUrl;
295
+ this._iconObj = this._defaultIconObj;
296
+ }
297
+ }
298
+ /**
299
+ * Toggles whether an image that has thrown the `onerror` event should show
300
+ * the `defaultIcon` instead.
301
+ */
302
+ get showDefaultOnError() { return this._showDefaultOnError; }
303
+ set showDefaultOnError(value) {
304
+ this._showDefaultOnError = coerceBooleanProperty(value);
305
+ if (this._hasError) {
306
+ if (this._iconUrlBeforeError || this._iconObjBeforeError) {
307
+ this._iconUrl = this._iconUrlBeforeError;
308
+ this._iconObj = this._iconObjBeforeError;
309
+ this._iconUrlBeforeError = undefined;
310
+ this._iconObjBeforeError = undefined;
311
+ }
312
+ else if (this._showDefaultOnError) {
313
+ this._iconUrl = this._defaultIconUrl;
314
+ this._iconObj = this._defaultIconObj;
315
+ }
316
+ }
317
+ }
318
+ /**
319
+ * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.
320
+ */
321
+ get defaultIcon() { return this._defaultIconUrl || this._defaultIconObj; }
322
+ set defaultIcon(value) {
323
+ if (typeof value === 'string') {
324
+ this._defaultIconUrl = value;
325
+ this._defaultIconObj = undefined;
326
+ }
327
+ else {
328
+ this._defaultIconUrl = undefined;
329
+ this._defaultIconObj = value;
330
+ }
331
+ if (!this._defaultIconUrl && !this._defaultIconObj) {
332
+ this._iconUrl = this._iconUrlBeforeError;
333
+ this._iconObj = this._iconObjBeforeError;
334
+ }
335
+ if (!this._iconUrl && !this._iconObj) {
336
+ this._iconUrl = this._defaultIconUrl;
337
+ this._iconObj = this._defaultIconObj;
338
+ }
339
+ }
340
+ get _iconTypeAttr() { return this.iconType; }
341
+ _imgError(event) {
342
+ this._hasError = true;
343
+ if (this._showDefaultOnError && (this._defaultIconUrl || this._defaultIconObj)) {
344
+ this._iconUrlBeforeError = this._iconUrl;
345
+ this._iconObjBeforeError = this._iconObj;
346
+ this._iconUrl = this._defaultIconUrl;
347
+ this._iconObj = this._defaultIconObj;
348
+ }
349
+ }
350
+ get _cssDisabled() { return this.disabled || null; }
351
+ get _cssNoGreyscale() { return !this.grayscaleOnDisable; }
352
+ }
353
+ IconComponent.decorators = [
354
+ { type: Component, args: [{
355
+ selector: 'seam-icon',
356
+ template: "<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" /></filter></defs>\n <image filter=\"url(&quot;#gray&quot;)\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n",
357
+ styles: [":host{display:inline-block}:host.disabled:not(.no-grayscale),:host:disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=borderless-styled-square],:host[icon-type=styled-square]{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=borderless-styled-square] img,:host[icon-type=styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=borderless-styled-square] .seam-icon--fa,:host[icon-type=styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}"]
358
+ },] }
359
+ ];
360
+ IconComponent.propDecorators = {
361
+ grayscaleOnDisable: [{ type: Input }],
362
+ disabled: [{ type: Input }],
363
+ iconClass: [{ type: Input }],
364
+ icon: [{ type: Input }],
365
+ size: [{ type: Input }],
366
+ showDefaultOnError: [{ type: Input }],
367
+ defaultIcon: [{ type: Input }],
368
+ iconType: [{ type: Input }],
369
+ _iconTypeAttr: [{ type: HostBinding, args: ['attr.icon-type',] }],
370
+ _cssDisabled: [{ type: HostBinding, args: ['class.disabled',] }],
371
+ _cssNoGreyscale: [{ type: HostBinding, args: ['class.no-grayscale',] }]
372
+ };
373
+ __decorate([
374
+ InputBoolean()
375
+ ], IconComponent.prototype, "grayscaleOnDisable", void 0);
376
+ __decorate([
377
+ InputBoolean()
378
+ ], IconComponent.prototype, "disabled", void 0);
379
+
380
+ class TheSeamIconModule {
381
+ }
382
+ TheSeamIconModule.decorators = [
383
+ { type: NgModule, args: [{
384
+ declarations: [
385
+ IconComponent,
386
+ IconBtnComponent,
387
+ IconNotificationComponent
388
+ ],
389
+ imports: [
390
+ CommonModule,
391
+ FontAwesomeModule
392
+ ],
393
+ exports: [
394
+ IconComponent,
395
+ IconBtnComponent,
396
+ IconNotificationComponent
397
+ ]
398
+ },] }
399
+ ];
400
+
401
+ const FILE_EXTENSION_ICONS = {
402
+ 'pdf': faFilePdf,
403
+ 'doc': faFileWord,
404
+ 'docx': faFileWord,
405
+ 'xls': faFileExcel,
406
+ 'xlsx': faFileExcel,
407
+ 'gif': faFileImage,
408
+ 'jpg': faFileImage,
409
+ 'jpeg': faFileImage,
410
+ 'png': faFileImage,
411
+ 'zip': faFileArchive,
412
+ 'ppt': faFilePowerpoint,
413
+ 'pptx': faFilePowerpoint,
414
+ 'txt': faFileAlt,
415
+ 'json': faFileAlt
416
+ };
417
+ const DEFAULT_FILE_EXTENSION_ICON = faFile;
418
+ function fileExtensionIcon(extension, defaultIfNotFound = true) {
419
+ if (!extension) {
420
+ return defaultIfNotFound ? DEFAULT_FILE_EXTENSION_ICON : undefined;
421
+ }
422
+ let ext = extension;
423
+ if (ext.charAt(0) === '.') {
424
+ ext = ext.substr(1);
425
+ }
426
+ const icon = FILE_EXTENSION_ICONS[ext];
427
+ if (!icon && defaultIfNotFound) {
428
+ return DEFAULT_FILE_EXTENSION_ICON;
429
+ }
430
+ return icon;
431
+ }
432
+
433
+ // TODO: Decide a good way to do this, so that we don't have to import full icon
434
+ // libraries, but still provide icon choices to use from a string. One way could
435
+ // be to define a dictionary of app icons that we can use that map a unique
436
+ // string to an icon definition.
437
+ const knownIcons = {
438
+ 'faAddressCard': faAddressCard,
439
+ 'faBan': faBan,
440
+ 'faBell': faBell,
441
+ 'faBookmark': faBookmark,
442
+ 'faChartLine': faChartLine,
443
+ 'faChartArea': faChartArea,
444
+ 'faChartBar': faChartBar,
445
+ 'faCheck': faCheck,
446
+ 'faCheckCircle': faCheckCircle,
447
+ 'faClock': faClock,
448
+ 'faCloudUploadAlt': faCloudUploadAlt,
449
+ 'faComment': faComment,
450
+ 'faCog': faCog,
451
+ 'faEdit': faEdit,
452
+ 'faEnvelope': faEnvelope,
453
+ 'faEnvelopeOpen': faEnvelopeOpen,
454
+ 'faExclamation': faExclamation,
455
+ 'faExclamationCircle': faExclamationCircle,
456
+ 'faExclamationTriangle': faExclamationTriangle,
457
+ 'faExternalLinkSquareAlt': faExternalLinkSquareAlt,
458
+ 'faFile': faFile,
459
+ 'faFileAlt': faFileAlt,
460
+ 'faFileArchive': faFileArchive,
461
+ 'faFileAudio': faFileAudio,
462
+ 'faFileCode': faFileCode,
463
+ 'faFileContract': faFileContract,
464
+ 'faFileCsv': faFileCsv,
465
+ 'faFileDownload': faFileDownload,
466
+ 'faFileExcel': faFileExcel,
467
+ 'faFileExport': faFileExport,
468
+ 'faFileImage': faFileImage,
469
+ 'faFileImport': faFileImport,
470
+ 'faFileInvoice': faFileInvoice,
471
+ 'faFileInvoiceDollar': faFileInvoiceDollar,
472
+ 'faFileMedical': faFileMedical,
473
+ 'faFileMedicalAlt': faFileMedicalAlt,
474
+ 'faFilePdf': faFilePdf,
475
+ 'faFilePowerpoint': faFilePowerpoint,
476
+ 'faFilePrescription': faFilePrescription,
477
+ 'faFileSignature': faFileSignature,
478
+ 'faFileUpload': faFileUpload,
479
+ 'faFileVideo': faFileVideo,
480
+ 'faFileWord': faFileWord,
481
+ 'faFolder': faFolder,
482
+ 'faFolderOpen': faFolderOpen,
483
+ 'faImage': faImage,
484
+ 'faImages': faImages,
485
+ 'faInbox': faInbox,
486
+ 'faInfoCircle': faInfoCircle,
487
+ 'faLock': faLock,
488
+ 'faLockOpen': faLockOpen,
489
+ 'faPrint': faPrint,
490
+ 'faQuestionCircle': faQuestionCircle,
491
+ 'faReceipt': faReceipt,
492
+ 'faReply': faReply,
493
+ 'faSave': faSave,
494
+ 'faShare': faShare,
495
+ 'faSignature': faSignature,
496
+ 'faStickyNote': faStickyNote,
497
+ 'faTimes': faTimes,
498
+ 'faTimesCircle': faTimesCircle,
499
+ 'faTrash': faTrash,
500
+ 'faTrashAlt': faTrashAlt,
501
+ 'faUser': faUser,
502
+ 'faUserCheck': faUserCheck,
503
+ 'faUserCircle': faUserCircle,
504
+ 'faUserEdit': faUserEdit,
505
+ 'faUserTimes': faUserTimes,
506
+ 'faUsers': faUsers,
507
+ 'faUserPlus': faUserPlus
508
+ };
509
+ function getKnownIcon(iconStr) {
510
+ return knownIcons[iconStr];
511
+ }
512
+
513
+ /**
514
+ * Generated bundle index. Do not edit.
515
+ */
516
+
517
+ export { DEFAULT_FILE_EXTENSION_ICON, IconBtnComponent, IconComponent, IconNotificationComponent, TheSeamIconModule, fileExtensionIcon, getKnownIcon, pulseAnimation };
518
+ //# sourceMappingURL=theseam-ui-common-icon.js.map