@theseam/ui-common 0.2.10 → 0.2.14

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 (353) hide show
  1. package/assets/vendor/intl-tel-input/js/utils.js +255 -254
  2. package/bundles/theseam-ui-common-asset-reader.umd.js +7 -9
  3. package/bundles/theseam-ui-common-asset-reader.umd.js.map +1 -1
  4. package/bundles/theseam-ui-common-breadcrumbs.umd.js +6 -8
  5. package/bundles/theseam-ui-common-breadcrumbs.umd.js.map +1 -1
  6. package/bundles/theseam-ui-common-buttons.umd.js +5 -5
  7. package/bundles/theseam-ui-common-buttons.umd.js.map +1 -1
  8. package/bundles/theseam-ui-common-card.umd.js +6 -6
  9. package/bundles/theseam-ui-common-card.umd.js.map +1 -1
  10. package/bundles/theseam-ui-common-checkbox.umd.js +4 -4
  11. package/bundles/theseam-ui-common-checkbox.umd.js.map +1 -1
  12. package/bundles/theseam-ui-common-confirm-dialog.umd.js +4 -4
  13. package/bundles/theseam-ui-common-confirm-dialog.umd.js.map +1 -1
  14. package/bundles/theseam-ui-common-core.umd.js +4 -4
  15. package/bundles/theseam-ui-common-core.umd.js.map +1 -1
  16. package/bundles/theseam-ui-common-data-exporter.umd.js +5 -5
  17. package/bundles/theseam-ui-common-data-filters.umd.js +9 -6
  18. package/bundles/theseam-ui-common-data-filters.umd.js.map +1 -1
  19. package/bundles/theseam-ui-common-datatable-dynamic.umd.js +7 -7
  20. package/bundles/theseam-ui-common-datatable-dynamic.umd.js.map +1 -1
  21. package/bundles/theseam-ui-common-datatable.umd.js +1313 -378
  22. package/bundles/theseam-ui-common-datatable.umd.js.map +1 -1
  23. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js +5 -7
  24. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js.map +1 -1
  25. package/bundles/theseam-ui-common-dynamic.umd.js +7 -9
  26. package/bundles/theseam-ui-common-dynamic.umd.js.map +1 -1
  27. package/bundles/theseam-ui-common-footer-bar.umd.js +3 -3
  28. package/bundles/theseam-ui-common-form-field-error.umd.js +5 -5
  29. package/bundles/theseam-ui-common-form-field-error.umd.js.map +1 -1
  30. package/bundles/theseam-ui-common-form-field.umd.js +5 -5
  31. package/bundles/theseam-ui-common-form-field.umd.js.map +1 -1
  32. package/bundles/theseam-ui-common-framework.umd.js +27 -29
  33. package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
  34. package/bundles/theseam-ui-common-graphql.umd.js +958 -8
  35. package/bundles/theseam-ui-common-graphql.umd.js.map +1 -1
  36. package/bundles/theseam-ui-common-icon.umd.js +5 -5
  37. package/bundles/theseam-ui-common-icon.umd.js.map +1 -1
  38. package/bundles/theseam-ui-common-layout.umd.js +5 -7
  39. package/bundles/theseam-ui-common-layout.umd.js.map +1 -1
  40. package/bundles/theseam-ui-common-loading.umd.js +4 -4
  41. package/bundles/theseam-ui-common-menu.umd.js +5 -5
  42. package/bundles/theseam-ui-common-menu.umd.js.map +1 -1
  43. package/bundles/theseam-ui-common-modal.umd.js +6 -6
  44. package/bundles/theseam-ui-common-modal.umd.js.map +1 -1
  45. package/bundles/theseam-ui-common-models.umd.js +3 -3
  46. package/bundles/theseam-ui-common-popover.umd.js +4 -4
  47. package/bundles/theseam-ui-common-progress.umd.js +5 -5
  48. package/bundles/theseam-ui-common-progress.umd.js.map +1 -1
  49. package/bundles/theseam-ui-common-scrollbar.umd.js +7 -9
  50. package/bundles/theseam-ui-common-scrollbar.umd.js.map +1 -1
  51. package/bundles/theseam-ui-common-services.umd.js +6 -8
  52. package/bundles/theseam-ui-common-services.umd.js.map +1 -1
  53. package/bundles/theseam-ui-common-shared.umd.js +4 -4
  54. package/bundles/theseam-ui-common-shared.umd.js.map +1 -1
  55. package/bundles/theseam-ui-common-storage.umd.js +5 -7
  56. package/bundles/theseam-ui-common-storage.umd.js.map +1 -1
  57. package/bundles/theseam-ui-common-story-helpers.umd.js +4 -4
  58. package/bundles/theseam-ui-common-story-helpers.umd.js.map +1 -1
  59. package/bundles/theseam-ui-common-tabbed.umd.js +5 -5
  60. package/bundles/theseam-ui-common-tabbed.umd.js.map +1 -1
  61. package/bundles/theseam-ui-common-table-cell-type.umd.js +5 -7
  62. package/bundles/theseam-ui-common-table-cell-type.umd.js.map +1 -1
  63. package/bundles/theseam-ui-common-table-cell-types.umd.js +258 -32
  64. package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
  65. package/bundles/theseam-ui-common-table.umd.js +5 -5
  66. package/bundles/theseam-ui-common-table.umd.js.map +1 -1
  67. package/bundles/theseam-ui-common-tel-input.umd.js +6 -6
  68. package/bundles/theseam-ui-common-tel-input.umd.js.map +1 -1
  69. package/bundles/theseam-ui-common-testing.umd.js +568 -0
  70. package/bundles/theseam-ui-common-testing.umd.js.map +1 -0
  71. package/bundles/theseam-ui-common-tiled-select.umd.js +56 -39
  72. package/bundles/theseam-ui-common-tiled-select.umd.js.map +1 -1
  73. package/bundles/theseam-ui-common-toggle-edit.umd.js +8 -10
  74. package/bundles/theseam-ui-common-toggle-edit.umd.js.map +1 -1
  75. package/bundles/theseam-ui-common-toggle-group.umd.js +4 -4
  76. package/bundles/theseam-ui-common-toggle-group.umd.js.map +1 -1
  77. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js +5 -7
  78. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js.map +1 -1
  79. package/bundles/theseam-ui-common-utils.umd.js +174 -81
  80. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  81. package/bundles/theseam-ui-common-validators.umd.js +3 -3
  82. package/bundles/theseam-ui-common-viewers.umd.js +6 -8
  83. package/bundles/theseam-ui-common-viewers.umd.js.map +1 -1
  84. package/bundles/theseam-ui-common-widget.umd.js +18 -20
  85. package/bundles/theseam-ui-common-widget.umd.js.map +1 -1
  86. package/bundles/theseam-ui-common.umd.js +2 -2
  87. package/buttons/theseam-ui-common-buttons.metadata.json +1 -1
  88. package/card/theseam-ui-common-card.metadata.json +1 -1
  89. package/data-filters/data-filter.d.ts +10 -6
  90. package/data-filters/theseam-ui-common-data-filters.metadata.json +1 -1
  91. package/datatable/datatable/datatable.component.d.ts +46 -32
  92. package/datatable/datatable-column/datatable-column.component.d.ts +26 -25
  93. package/datatable/datatable-column-preferences/datatable-column-preferences.component.d.ts +7 -5
  94. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +7 -1
  95. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +1 -1
  96. package/datatable/directives/datatable-filter.directive.d.ts +1 -1
  97. package/datatable/models/columns-alteration.d.ts +61 -0
  98. package/datatable/models/columns-alterations/hide-column.columns-alteration.d.ts +15 -0
  99. package/datatable/models/columns-alterations/order.columns-alteration.d.ts +20 -0
  100. package/datatable/models/columns-alterations/sort.columns-alteration.d.ts +14 -0
  101. package/datatable/models/columns-alterations/width.columns-alteration.d.ts +16 -0
  102. package/datatable/models/datatable-accessor.d.ts +5 -3
  103. package/datatable/models/internal-column-props.d.ts +7 -0
  104. package/datatable/models/page-info.d.ts +12 -0
  105. package/datatable/models/preferences-accessor.d.ts +1 -1
  106. package/datatable/models/preferences.d.ts +11 -3
  107. package/datatable/models/sort-item.d.ts +2 -1
  108. package/datatable/services/columns-alterations-manager.service.d.ts +39 -0
  109. package/datatable/services/columns-manager.service.d.ts +55 -0
  110. package/datatable/services/datatable-preferences.service.d.ts +10 -7
  111. package/datatable/theseam-ui-common-datatable.d.ts +2 -0
  112. package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
  113. package/datatable/tokens/datatable-preferences-accessor.d.ts +2 -2
  114. package/datatable/utils/create-action-menu-column.d.ts +3 -0
  115. package/datatable/utils/create-checkbox-column.d.ts +3 -0
  116. package/datatable/utils/get-column-prop.d.ts +5 -0
  117. package/datatable/utils/map-columns-alterations-states.d.ts +2 -0
  118. package/datatable/utils/remove-unused-diffs.d.ts +7 -0
  119. package/datatable/utils/set-column-defaults.d.ts +2 -0
  120. package/datatable/utils/translate-templates.d.ts +2 -0
  121. package/datatable/utils/with-stored-column-info.d.ts +2 -2
  122. package/datatable-dynamic/theseam-ui-common-datatable-dynamic.metadata.json +1 -1
  123. package/esm2015/buttons/progress-circle-button/progress-circle-button.component.js +1 -1
  124. package/esm2015/card/card-action/card-action.component.js +1 -1
  125. package/esm2015/card/card-body/card-body.component.js +1 -1
  126. package/esm2015/data-filters/data-filter.js +5 -2
  127. package/esm2015/data-filters/filters/data-filter-search/data-filter-search.component.js +1 -1
  128. package/esm2015/data-filters/filters/data-filter-text/data-filter-text.component.js +1 -1
  129. package/esm2015/datatable/datatable/datatable.component.js +195 -211
  130. package/esm2015/datatable/datatable-action-menu/datatable-action-menu.component.js +1 -1
  131. package/esm2015/datatable/datatable-column/datatable-column.component.js +1 -1
  132. package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js +42 -19
  133. package/esm2015/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.js +38 -4
  134. package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +7 -6
  135. package/esm2015/datatable/datatable-menu-bar/datatable-menu-bar.component.js +1 -1
  136. package/esm2015/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.js +1 -1
  137. package/esm2015/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.js +1 -1
  138. package/esm2015/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.js +1 -1
  139. package/esm2015/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.js +1 -1
  140. package/esm2015/datatable/models/columns-alteration.js +38 -0
  141. package/esm2015/datatable/models/columns-alterations/hide-column.columns-alteration.js +38 -0
  142. package/esm2015/datatable/models/columns-alterations/order.columns-alteration.js +81 -0
  143. package/esm2015/datatable/models/columns-alterations/sort.columns-alteration.js +33 -0
  144. package/esm2015/datatable/models/columns-alterations/width.columns-alteration.js +41 -0
  145. package/esm2015/datatable/models/datatable-accessor.js +1 -1
  146. package/esm2015/datatable/models/internal-column-props.js +15 -0
  147. package/esm2015/datatable/models/page-info.js +1 -1
  148. package/esm2015/datatable/models/preferences-accessor.js +1 -1
  149. package/esm2015/datatable/models/preferences.js +6 -2
  150. package/esm2015/datatable/models/sort-item.js +1 -1
  151. package/esm2015/datatable/services/columns-alterations-manager.service.js +134 -0
  152. package/esm2015/datatable/services/columns-manager.service.js +257 -0
  153. package/esm2015/datatable/services/datatable-preferences.service.js +78 -32
  154. package/esm2015/datatable/theseam-ui-common-datatable.js +3 -1
  155. package/esm2015/datatable/tokens/datatable-preferences-accessor.js +2 -2
  156. package/esm2015/datatable/utils/create-action-menu-column.js +18 -0
  157. package/esm2015/datatable/utils/create-checkbox-column.js +15 -0
  158. package/esm2015/datatable/utils/get-column-prop.js +9 -0
  159. package/esm2015/datatable/utils/map-columns-alterations-states.js +39 -0
  160. package/esm2015/datatable/utils/remove-unused-diffs.js +9 -0
  161. package/esm2015/datatable/utils/set-column-defaults.js +10 -0
  162. package/esm2015/datatable/utils/translate-templates.js +12 -0
  163. package/esm2015/datatable/utils/with-stored-column-info.js +1 -1
  164. package/esm2015/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.js +1 -1
  165. package/esm2015/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.js +1 -1
  166. package/esm2015/datatable-dynamic/datatable-dynamic.component.js +1 -1
  167. package/esm2015/form-field/form-field.component.js +1 -1
  168. package/esm2015/form-field-error/form-field-error/form-field-error.component.js +1 -1
  169. package/esm2015/framework/base-layout/base-layout.component.js +1 -1
  170. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets.component.js +1 -1
  171. package/esm2015/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.js +1 -1
  172. package/esm2015/framework/schema-form-controls/schema-form-input/schema-form-input.component.js +1 -1
  173. package/esm2015/framework/schema-form-controls/schema-form-number/schema-form-number.component.js +1 -1
  174. package/esm2015/framework/schema-form-controls/schema-form-select/schema-form-select.component.js +1 -1
  175. package/esm2015/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.js +1 -1
  176. package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +1 -1
  177. package/esm2015/framework/side-nav/side-nav-toggle/side-nav-toggle.component.js +1 -1
  178. package/esm2015/framework/side-nav/side-nav.component.js +1 -1
  179. package/esm2015/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.js +1 -1
  180. package/esm2015/framework/top-bar/top-bar-title/top-bar-title.component.js +1 -1
  181. package/esm2015/framework/top-bar/top-bar.component.js +1 -1
  182. package/esm2015/graphql/datatable/create-page-info-observable.js +38 -0
  183. package/esm2015/graphql/datatable/datatable-graphql-query-ref.js +236 -0
  184. package/esm2015/graphql/datatable/datatable-graphql.service.js +35 -0
  185. package/esm2015/graphql/datatable/datatable-helpers.js +170 -0
  186. package/esm2015/graphql/datatable/get-page-info.js +11 -0
  187. package/esm2015/graphql/datatable/index.js +7 -0
  188. package/esm2015/graphql/datatable/map-filter-states.js +64 -0
  189. package/esm2015/graphql/datatable/map-page-info.js +14 -0
  190. package/esm2015/graphql/datatable/mapper-context.js +2 -0
  191. package/esm2015/graphql/models/gql-datatable-accessor.js +2 -0
  192. package/esm2015/graphql/models/index.js +2 -1
  193. package/esm2015/graphql/models/query-processing-config.js +1 -1
  194. package/esm2015/graphql/public-api.js +2 -1
  195. package/esm2015/graphql/utils/parse-hints.js +3 -3
  196. package/esm2015/icon/icon/icon.component.js +1 -1
  197. package/esm2015/loading/loading/loading.component.js +1 -1
  198. package/esm2015/menu/menu.component.js +1 -1
  199. package/esm2015/modal/modal-body/modal-body.component.js +1 -1
  200. package/esm2015/modal/modal-container/modal-container.component.js +1 -1
  201. package/esm2015/popover/popover/popover.component.js +1 -1
  202. package/esm2015/progress/progress-circle/progress-circle.component.js +1 -1
  203. package/esm2015/tabbed/tabbed.component.js +1 -1
  204. package/esm2015/table/table/table.component.js +1 -1
  205. package/esm2015/table-cell-types/public-api.js +8 -1
  206. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.js +2 -0
  207. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.js +74 -0
  208. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.js +2 -0
  209. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.js +1 -1
  210. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.js +73 -0
  211. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.js +2 -0
  212. package/esm2015/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.js +1 -1
  213. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.js +1 -1
  214. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.js +71 -0
  215. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.js +2 -0
  216. package/esm2015/table-cell-types/table-cell-type-manifests.js +29 -17
  217. package/esm2015/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.js +1 -1
  218. package/esm2015/table-cell-types/table-cell-types.module.js +9 -2
  219. package/esm2015/tel-input/tel-input/tel-input.component.js +1 -1
  220. package/esm2015/testing/current-tick-time.js +16 -0
  221. package/esm2015/testing/fake-toastr.js +29 -0
  222. package/esm2015/testing/get-harness.js +16 -0
  223. package/esm2015/testing/public-api.js +7 -0
  224. package/esm2015/testing/render-story.js +12 -0
  225. package/esm2015/testing/story-expect.js +39 -0
  226. package/esm2015/testing/theseam-ui-common-testing.js +5 -0
  227. package/esm2015/testing/tick-helper.js +74 -0
  228. package/esm2015/tiled-select/components/tiled-select/tiled-select.component.js +25 -17
  229. package/esm2015/tiled-select/components/tiled-select-tile/tiled-select-tile.component.js +5 -2
  230. package/esm2015/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.js +1 -1
  231. package/esm2015/tiled-select/public-api.js +2 -1
  232. package/esm2015/tiled-select/tiled-select.models.js +1 -1
  233. package/esm2015/tiled-select/tiled-select.module.js +4 -4
  234. package/esm2015/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.js +1 -1
  235. package/esm2015/toggle-edit/toggle-edit.component.js +1 -1
  236. package/esm2015/utils/array-move.js +62 -0
  237. package/esm2015/utils/public-api.js +2 -1
  238. package/esm2015/utils/router/is-empty-url-route.js +1 -1
  239. package/esm2015/utils/subscriber-count.js +31 -4
  240. package/esm2015/widget/widget/widget.component.js +1 -1
  241. package/esm2015/widget/widget-content-components/widget-button-group/widget-button-group.component.js +1 -1
  242. package/esm2015/widget/widget-content-components/widget-content-header/widget-content-header.component.js +1 -1
  243. package/esm2015/widget/widget-content-components/widget-empty-label/widget-empty-label.component.js +1 -1
  244. package/esm2015/widget/widget-content-components/widget-footer-link/widget-footer-link.component.js +1 -1
  245. package/esm2015/widget/widget-content-components/widget-footer-text/widget-footer-text.component.js +1 -1
  246. package/esm2015/widget/widget-content-components/widget-header-badge/widget-header-badge.component.js +1 -1
  247. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.js +1 -1
  248. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.js +1 -1
  249. package/esm2015/widget/widget-content-components/widget-tile/widget-tile.component.js +1 -1
  250. package/esm2015/widget/widget-content-components/widget-tile-list/widget-tile-list.component.js +1 -1
  251. package/esm2015/widget/widget-footer/widget-footer.component.js +1 -1
  252. package/fesm2015/theseam-ui-common-buttons.js +1 -1
  253. package/fesm2015/theseam-ui-common-card.js +2 -2
  254. package/fesm2015/theseam-ui-common-data-filters.js +6 -3
  255. package/fesm2015/theseam-ui-common-data-filters.js.map +1 -1
  256. package/fesm2015/theseam-ui-common-datatable-dynamic.js +3 -3
  257. package/fesm2015/theseam-ui-common-datatable.js +1105 -319
  258. package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
  259. package/fesm2015/theseam-ui-common-form-field-error.js +1 -1
  260. package/fesm2015/theseam-ui-common-form-field.js +1 -1
  261. package/fesm2015/theseam-ui-common-framework.js +13 -13
  262. package/fesm2015/theseam-ui-common-graphql.js +555 -5
  263. package/fesm2015/theseam-ui-common-graphql.js.map +1 -1
  264. package/fesm2015/theseam-ui-common-icon.js +1 -1
  265. package/fesm2015/theseam-ui-common-loading.js +1 -1
  266. package/fesm2015/theseam-ui-common-menu.js +1 -1
  267. package/fesm2015/theseam-ui-common-modal.js +2 -2
  268. package/fesm2015/theseam-ui-common-popover.js +1 -1
  269. package/fesm2015/theseam-ui-common-progress.js +1 -1
  270. package/fesm2015/theseam-ui-common-tabbed.js +1 -1
  271. package/fesm2015/theseam-ui-common-table-cell-types.js +234 -22
  272. package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -1
  273. package/fesm2015/theseam-ui-common-table.js +1 -1
  274. package/fesm2015/theseam-ui-common-tel-input.js +1 -1
  275. package/fesm2015/theseam-ui-common-testing.js +191 -0
  276. package/fesm2015/theseam-ui-common-testing.js.map +1 -0
  277. package/fesm2015/theseam-ui-common-tiled-select.js +34 -21
  278. package/fesm2015/theseam-ui-common-tiled-select.js.map +1 -1
  279. package/fesm2015/theseam-ui-common-toggle-edit.js +2 -2
  280. package/fesm2015/theseam-ui-common-utils.js +92 -4
  281. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  282. package/fesm2015/theseam-ui-common-widget.js +12 -12
  283. package/form-field/theseam-ui-common-form-field.metadata.json +1 -1
  284. package/form-field-error/theseam-ui-common-form-field-error.metadata.json +1 -1
  285. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  286. package/graphql/datatable/create-page-info-observable.d.ts +4 -0
  287. package/graphql/datatable/datatable-graphql-query-ref.d.ts +65 -0
  288. package/graphql/datatable/datatable-graphql.service.d.ts +26 -0
  289. package/graphql/datatable/datatable-helpers.d.ts +12 -0
  290. package/graphql/datatable/get-page-info.d.ts +4 -0
  291. package/graphql/datatable/index.d.ts +6 -0
  292. package/graphql/datatable/map-filter-states.d.ts +18 -0
  293. package/graphql/datatable/map-page-info.d.ts +11 -0
  294. package/graphql/datatable/mapper-context.d.ts +6 -0
  295. package/graphql/models/gql-datatable-accessor.d.ts +9 -0
  296. package/graphql/models/index.d.ts +1 -0
  297. package/graphql/models/query-processing-config.d.ts +4 -0
  298. package/graphql/public-api.d.ts +1 -0
  299. package/graphql/theseam-ui-common-graphql.metadata.json +1 -1
  300. package/icon/theseam-ui-common-icon.metadata.json +1 -1
  301. package/loading/theseam-ui-common-loading.metadata.json +1 -1
  302. package/menu/theseam-ui-common-menu.metadata.json +1 -1
  303. package/modal/theseam-ui-common-modal.metadata.json +1 -1
  304. package/package.json +1 -1
  305. package/popover/theseam-ui-common-popover.metadata.json +1 -1
  306. package/progress/theseam-ui-common-progress.metadata.json +1 -1
  307. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +87 -82
  308. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +3 -2
  309. package/tabbed/theseam-ui-common-tabbed.metadata.json +1 -1
  310. package/table/theseam-ui-common-table.metadata.json +1 -1
  311. package/table-cell-types/public-api.d.ts +7 -0
  312. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +39 -0
  313. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +19 -0
  314. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +3 -0
  315. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +31 -1
  316. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +19 -0
  317. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +3 -0
  318. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +23 -1
  319. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +19 -0
  320. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +3 -0
  321. package/table-cell-types/table-cell-type-manifests.d.ts +2 -1
  322. package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
  323. package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -1
  324. package/testing/current-tick-time.d.ts +13 -0
  325. package/testing/fake-toastr.d.ts +30 -0
  326. package/testing/get-harness.d.ts +7 -0
  327. package/testing/package.json +11 -0
  328. package/testing/public-api.d.ts +6 -0
  329. package/testing/render-story.d.ts +2 -0
  330. package/testing/story-expect.d.ts +5 -0
  331. package/{test-helpers/theseam-ui-common-test-helpers.d.ts → testing/theseam-ui-common-testing.d.ts} +0 -0
  332. package/testing/theseam-ui-common-testing.metadata.json +1 -0
  333. package/{test-helpers → testing}/tick-helper.d.ts +0 -0
  334. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +7 -3
  335. package/tiled-select/components/tiled-select-tile/tiled-select-tile.component.d.ts +1 -0
  336. package/tiled-select/theseam-ui-common-tiled-select.metadata.json +1 -1
  337. package/tiled-select/tiled-select.models.d.ts +3 -1
  338. package/toggle-edit/theseam-ui-common-toggle-edit.metadata.json +1 -1
  339. package/utils/array-move.d.ts +49 -0
  340. package/utils/public-api.d.ts +1 -0
  341. package/utils/subscriber-count.d.ts +13 -1
  342. package/utils/theseam-ui-common-utils.metadata.json +1 -1
  343. package/widget/theseam-ui-common-widget.metadata.json +1 -1
  344. package/bundles/theseam-ui-common-test-helpers.umd.js +0 -94
  345. package/bundles/theseam-ui-common-test-helpers.umd.js.map +0 -1
  346. package/esm2015/test-helpers/public-api.js +0 -2
  347. package/esm2015/test-helpers/theseam-ui-common-test-helpers.js +0 -5
  348. package/esm2015/test-helpers/tick-helper.js +0 -74
  349. package/fesm2015/theseam-ui-common-test-helpers.js +0 -81
  350. package/fesm2015/theseam-ui-common-test-helpers.js.map +0 -1
  351. package/test-helpers/package.json +0 -11
  352. package/test-helpers/public-api.d.ts +0 -1
  353. package/test-helpers/theseam-ui-common-test-helpers.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-table-cell-types.js","sources":["../../../projects/ui-common/table-cell-types/table-cell-type-date/table-cell-type-date.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-string/table-cell-type-string.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-manifests.ts","../../../projects/ui-common/table-cell-types/table-cell-types.module.ts","../../../projects/ui-common/table-cell-types/theseam-ui-common-table-cell-types.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigDate } from './table-cell-type-date-config'\n\n@Component({\n selector: 'seam-table-cell-type-date',\n templateUrl: './table-cell-type-date.component.html',\n styleUrls: ['./table-cell-type-date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeDateComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | undefined | null\n @Input() format: string | undefined | null\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'date', TableCellTypeConfigDate>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n this.format = _data && _data.colData && _data.colData.cellTypeConfig && _data.colData.cellTypeConfig.format\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.format !== this.format) {\n this.format = colData.format\n } else {\n this.format = undefined\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { getKnownIcon, SeamIcon, TheSeamIconType } from '@theseam/ui-common/icon'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigIcon, TableCellTypeIconConfigAction } from './table-cell-type-icon-config'\n\nexport type IconTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-icon',\n templateUrl: './table-cell-type-icon.component.html',\n styleUrls: ['./table-cell-type-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeIconComponent<R = any, V = any> implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(value: string | undefined | null) {\n this._value = value\n this._icon = value ? getKnownIcon(value) || value : value\n }\n private _value: string | undefined | null\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigIcon | undefined | null) {\n this._config = value\n if (value) {\n this.setAction(value.action)\n this._linkClass = this._parseConfigValue(value.linkClass)\n this._iconClass = this._parseConfigValue(value.iconClass)\n this._iconType = value.iconType\n this._title = this._parseConfigValue(value.titleAttr)\n this._srOnly = this._parseConfigValue(value.srOnly)\n this._tooltip = this._parseConfigValue(value.tooltip)\n if (this._tooltip) {\n this._tooltipClass = this._parseConfigValue(value.tooltipClass)\n this._tooltipPlacement = this._parseConfigValue(value.tooltipPlacement) || 'auto'\n this._tooltipContainer = this._parseConfigValue(value.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n }\n }\n private _config: TableCellTypeConfigIcon | undefined | null\n\n _icon: SeamIcon | undefined | null\n _link?: string\n _queryParams?: { [k: string]: any }\n _tplType: IconTemplateType = 'default'\n _title?: string\n _srOnly?: string\n _linkClass?: string\n _iconClass?: string\n _iconType?: TheSeamIconType\n _target?: string\n _tooltip?: string\n _tooltipClass?: string\n _tooltipPlacement?: string\n _tooltipContainer?: string\n _tooltipDisabled: boolean = true\n\n _buttonAction?: TableCellTypeIconConfigAction\n\n _tableCellData?: TableCellData<'icon', TableCellTypeConfigIcon>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'icon', TableCellTypeConfigIcon>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'icon', TableCellTypeConfigIcon>\n ) {\n if (_datatable) {\n this._isDatatable = true\n // console.log('isDataTable')\n }\n // if (_table) {\n // console.log('isTable')\n // }\n\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this.config = this._config\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeIconConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [l: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { coercePhoneNumberFormat, THESEAM_DEFAULT_PHONE_NUMBER_FORMAT } from '@theseam/ui-common/tel-input'\nimport type { intlTelInputUtils } from '@theseam/ui-common/tel-input'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { TableCellTypeConfigPhone } from './table-cell-type-phone-config'\n\n@Component({\n selector: 'seam-table-cell-type-phone',\n templateUrl: './table-cell-type-phone.component.html',\n styleUrls: ['./table-cell-type-phone.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypePhoneComponent implements OnInit, OnDestroy {\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n /** @ignore */\n _format: intlTelInputUtils.numberFormat = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n\n @Input() value?: string | null\n @Input()\n set format(value: intlTelInputUtils.numberFormat) { this._format = coercePhoneNumberFormat(value) }\n get format() { return this._format }\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'phone', TableCellTypeConfigPhone>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n if (_data && _data.colData && _data.colData.cellTypeConfig && hasProperty(_data.colData.cellTypeConfig, 'format')) {\n this.format = _data.colData.cellTypeConfig.format as intlTelInputUtils.numberFormat\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && hasProperty(colData, 'cellTypeConfig') &&\n hasProperty(colData.cellTypeConfig, 'format') &&\n colData.cellTypeConfig.format !== this.format\n ) {\n this.format = colData.cellTypeConfig.format\n } else {\n this.format = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { SeamIcon } from '@theseam/ui-common/icon'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigProgressCircleIcon } from './table-cell-type-progress-circle-icon-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle-icon',\n templateUrl: './table-cell-type-progress-circle-icon.component.html',\n styleUrls: ['./table-cell-type-progress-circle-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleIconComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n\n displayIcon: boolean = false\n icon?: SeamIcon\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n ) {\n const tableData = _tableData\n this.value = tableData && tableData.value\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n\n this._setIcon(tableData)\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n private _setIcon(tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n if (tableData &&\n tableData.colData &&\n tableData.colData.cellTypeConfig &&\n tableData.colData.cellTypeConfig.displayIcon &&\n tableData.colData.cellTypeConfig.icon &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData) &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)) {\n this.icon = this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)\n this.displayIcon = this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData)\n }\n }\n\n private _parseConfigValue(val: any, tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { IconTemplateType } from './../table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeConfigProgressCircle, TableCellTypeProgressCircleConfigAction } from './table-cell-type-progress-circle-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle',\n templateUrl: './table-cell-type-progress-circle.component.html',\n styleUrls: ['./table-cell-type-progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n _tableCellData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n colData?: TheSeamTableColumn<'progress-circle', TableCellTypeConfigProgressCircle>\n\n fillBackground: boolean = false\n showText: boolean = false\n hiddenOnEmpty: boolean = true\n pending: boolean = false\n tooltip?: string\n tooltipClass?: string\n tooltipPlacement?: string\n tooltipContainer?: string\n _tooltipDisabled: boolean = false\n\n _title?: string\n _srOnly?: string\n\n _link?: string\n _linkClass = '' // TODO: Decide if this makes sense\n _tplType: IconTemplateType = 'default'\n _target?: string\n _queryParams?: { [k: string]: any }\n\n _buttonAction?: TableCellTypeProgressCircleConfigAction\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n private _config: TableCellTypeConfigProgressCircle | undefined | null\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n ) {\n if (_datatable) {\n this._isDatatable = true\n }\n\n const tableData = _tableData\n this._tableCellData = _tableData\n\n this.value = tableData && coerceNumberProperty(tableData.value)\n this.colData = tableData && tableData.colData\n\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = coerceNumberProperty(v.changes.value.currentValue)\n if (this._config) {\n this._setCellTypeConfigProps(this._config)\n }\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n if (this.colData?.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n this._cdf.markForCheck()\n }\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n public setAction(configAction?: TableCellTypeProgressCircleConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _setCellTypeConfigProps(config: TableCellTypeConfigProgressCircle): void {\n this._config = config\n this.setAction(config.action)\n this.fillBackground = coerceBooleanProperty(this._parseConfigValue(config.fillBackground))\n this.showText = coerceBooleanProperty(this._parseConfigValue(config.showText))\n this.hiddenOnEmpty = coerceBooleanProperty(this._parseConfigValue(config.hiddenOnEmpty))\n this.pending = coerceBooleanProperty(this._parseConfigValue(config.pending))\n this.tooltip = this._parseConfigValue(config.tooltip)\n\n this.tooltip = this._parseConfigValue(config.tooltip)\n if (this.tooltip) {\n this.tooltipClass = this._parseConfigValue(config.tooltipClass)\n this.tooltipPlacement = this._parseConfigValue(config.tooltipPlacement) || 'auto'\n this.tooltipContainer = this._parseConfigValue(config.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n\n this._title = this._parseConfigValue(config.titleAttr)\n this._srOnly = this._parseConfigValue(config.srOnly)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\n\nimport { TableCellTypeConfigString, TableCellTypeStringConfigAction } from './table-cell-type-string-config'\n\nexport type StringTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-string',\n templateUrl: './table-cell-type-string.component.html',\n styleUrls: ['./table-cell-type-string.component.scss'],\n host: { },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeStringComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(val: string | null | undefined) {\n this._value = val\n // TODO: This is temporary to test the feature and will be fixed when the\n // dynamic column data is fixed. The plan is to add a config toggle to\n // always enable and depending on performance it could try to decide on its\n // own based on content size.\n if (this.value && this.value.length > 30) {\n this.canPopover = true\n }\n }\n _value: string | null | undefined\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigString | undefined | null) {\n this._config = value\n if (value) {\n this.setAction(value.action)\n }\n }\n private _config: TableCellTypeConfigString | undefined | null\n\n _tplType: StringTemplateType = 'default'\n _link?: string\n _title?: string\n _queryParams?: { [k: string]: any }\n\n _buttonAction?: TableCellTypeStringConfigAction\n\n _tableCellData?: TableCellData<'string', TableCellTypeConfigString>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'string', TableCellTypeConfigString>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @Input()\n set title(value: string | undefined) { this.title = value }\n get title(): string | undefined { return this._title }\n\n @HostBinding('attr.title') get _titleAttr() { return this.title || this.value }\n\n canPopover = false\n\n constructor(\n private readonly _cdf: ChangeDetectorRef,\n private readonly _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) readonly _tableData?: TableCellData<'string', TableCellTypeConfigString>\n ) {\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n }\n\n ngOnInit() {\n const _data = this._tableData\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeStringConfigAction) {\n let newTplType: StringTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset) ? 'link-encrypted' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._queryParams = queryParams\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { ITableCellTypeManifestProvider, TABLE_CELL_TYPE_MANIFEST } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nexport const TABLE_CELL_TYPE_MANIFEST_STRING: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'string',\n component: TableCellTypeStringComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_INTEGER: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'integer',\n component: TableCellTypeStringComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DECIMAL: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'decimal',\n component: TableCellTypeStringComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DATE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'date',\n component: TableCellTypeDateComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'icon',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_IMAGE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'image',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle',\n component: TableCellTypeProgressCircleComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle-icon',\n component: TableCellTypeProgressCircleIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PHONE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'phone',\n component: TableCellTypePhoneComponent\n },\n multi: true\n}\n","import { PortalModule } from '@angular/cdk/portal'\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 { TheSeamAssetReaderModule } from '@theseam/ui-common/asset-reader'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamPopoverModule } from '@theseam/ui-common/popover'\nimport { TheSeamProgressModule } from '@theseam/ui-common/progress'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\nimport { TheSeamTelInputModule } from '@theseam/ui-common/tel-input'\n\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nimport {\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_PHONE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_STRING\n} from './table-cell-type-manifests'\n\nconst cellTypeComponents = [\n TableCellTypeStringComponent,\n TableCellTypeDateComponent,\n TableCellTypeIconComponent,\n TableCellTypeProgressCircleComponent,\n TableCellTypeProgressCircleIconComponent,\n TableCellTypePhoneComponent\n]\n\nconst cellTypeProviders = [\n TABLE_CELL_TYPE_MANIFEST_STRING,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_PHONE\n]\n\n@NgModule({\n declarations: [\n ...cellTypeComponents\n ],\n imports: [\n CommonModule,\n NgbTooltipModule,\n RouterModule,\n TheSeamSharedModule,\n TheSeamIconModule,\n PortalModule,\n TheSeamPopoverModule,\n TheSeamProgressModule,\n TheSeamTelInputModule,\n TheSeamAssetReaderModule,\n TheSeamTableCellTypeModule\n ],\n providers: [\n ...cellTypeProviders\n ],\n exports: [\n ...cellTypeComponents\n ],\n entryComponents: [\n ...cellTypeComponents\n ]\n})\nexport class TheSeamTableCellTypesModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TableCellTypeConfigProgressCircleIcon as ɵb} from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config';\nexport {TableCellTypeConfigProgressCircle as ɵa} from './table-cell-type-progress-circle/table-cell-type-progress-circle-config';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-table-cell-types.js","sources":["../../../projects/ui-common/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-date/table-cell-type-date.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-string/table-cell-type-string.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-manifests.ts","../../../projects/ui-common/table-cell-types/table-cell-types.module.ts","../../../projects/ui-common/table-cell-types/theseam-ui-common-table-cell-types.ts"],"sourcesContent":["import { formatCurrency } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigCurrency } from './table-cell-type-currency-config'\n\n@Component({\n selector: 'seam-table-cell-type-currency',\n templateUrl: './table-cell-type-currency.component.html',\n styleUrls: ['./table-cell-type-currency.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeCurrencyComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'currency', TableCellTypeConfigCurrency>\n textAlign?: 'left' | 'center' | 'right'\n // TODO: implement\n // titleAttr?: string\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatCurrency(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n // this.titleAttr = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.titleAttr, tableData) || this.value\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatCurrency(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatCurrency(currentValue?: any, tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>): string {\n const config = tableData?.colData?.cellTypeConfig\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const currency = this._parseConfigValue(config?.currency, tableData) || '$'\n const currencyCode = this._parseConfigValue(config?.currencyCode, tableData) || 'USD'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const minFractionDigits = this._parseConfigValue(config?.minFractionDigits, tableData) || 0\n const maxFractionDigits = this._parseConfigValue(config?.maxFractionDigits, tableData) || 2\n const format = `${ minIntegerDigits }.${ minFractionDigits }-${ maxFractionDigits }`\n\n return formatCurrency(currentValue, locale, currency, currencyCode, format )\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigDate } from './table-cell-type-date-config'\n\n@Component({\n selector: 'seam-table-cell-type-date',\n templateUrl: './table-cell-type-date.component.html',\n styleUrls: ['./table-cell-type-date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeDateComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | undefined | null\n @Input() format: string | undefined | null\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'date', TableCellTypeConfigDate>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n this.format = _data && _data.colData && _data.colData.cellTypeConfig && _data.colData.cellTypeConfig.format\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.format !== this.format) {\n this.format = colData.format\n } else {\n this.format = undefined\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { formatNumber } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { TableCellTypeConfigDecimal } from './table-cell-type-decimal-config'\n\n@Component({\n selector: 'seam-table-cell-type-decimal',\n templateUrl: './table-cell-type-decimal.component.html',\n styleUrls: ['./table-cell-type-decimal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeDecimalComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | undefined | null\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'decimal', TableCellTypeConfigDecimal>\n textAlign?: 'left' | 'center' | 'right'\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatDecimal(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatDecimal(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatDecimal(currentValue?: any, tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal> | undefined): string {\n const config = tableData?.colData?.cellTypeConfig\n const formatDecimal = notNullOrUndefined(config?.formatNumber) ?\n this._parseConfigValue(coerceBooleanProperty(config?.formatNumber), tableData) : true\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const minFractionDigits = this._parseConfigValue(config?.minFractionDigits, tableData) || 0\n const maxFractionDigits = this._parseConfigValue(config?.maxFractionDigits, tableData) || 3\n const format = `${ minIntegerDigits }.${ minFractionDigits }-${ maxFractionDigits }`\n\n return formatDecimal ? formatNumber(currentValue, locale, format) : currentValue\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { getKnownIcon, SeamIcon, TheSeamIconType } from '@theseam/ui-common/icon'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigIcon, TableCellTypeIconConfigAction } from './table-cell-type-icon-config'\n\nexport type IconTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-icon',\n templateUrl: './table-cell-type-icon.component.html',\n styleUrls: ['./table-cell-type-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeIconComponent<R = any, V = any> implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(value: string | undefined | null) {\n this._value = value\n this._icon = value ? getKnownIcon(value) || value : value\n }\n private _value: string | undefined | null\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigIcon | undefined | null) {\n this._config = value\n if (value) {\n this.setAction(value.action)\n this._linkClass = this._parseConfigValue(value.linkClass)\n this._iconClass = this._parseConfigValue(value.iconClass)\n this._iconType = value.iconType\n this._title = this._parseConfigValue(value.titleAttr)\n this._srOnly = this._parseConfigValue(value.srOnly)\n this._tooltip = this._parseConfigValue(value.tooltip)\n if (this._tooltip) {\n this._tooltipClass = this._parseConfigValue(value.tooltipClass)\n this._tooltipPlacement = this._parseConfigValue(value.tooltipPlacement) || 'auto'\n this._tooltipContainer = this._parseConfigValue(value.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n }\n }\n private _config: TableCellTypeConfigIcon | undefined | null\n\n _icon: SeamIcon | undefined | null\n _link?: string\n _queryParams?: { [k: string]: any }\n _tplType: IconTemplateType = 'default'\n _title?: string\n _srOnly?: string\n _linkClass?: string\n _iconClass?: string\n _iconType?: TheSeamIconType\n _target?: string\n _tooltip?: string\n _tooltipClass?: string\n _tooltipPlacement?: string\n _tooltipContainer?: string\n _tooltipDisabled: boolean = true\n\n _buttonAction?: TableCellTypeIconConfigAction\n\n _tableCellData?: TableCellData<'icon', TableCellTypeConfigIcon>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'icon', TableCellTypeConfigIcon>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'icon', TableCellTypeConfigIcon>\n ) {\n if (_datatable) {\n this._isDatatable = true\n // console.log('isDataTable')\n }\n // if (_table) {\n // console.log('isTable')\n // }\n\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this.config = this._config\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeIconConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [l: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { formatNumber } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { TableCellTypeConfigInteger } from './table-cell-type-integer-config'\n\n@Component({\n selector: 'seam-table-cell-type-integer',\n templateUrl: './table-cell-type-integer.component.html',\n styleUrls: ['./table-cell-type-integer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeIntegerComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'integer', TableCellTypeConfigInteger>\n textAlign?: 'left' | 'center' | 'right'\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'integer', TableCellTypeConfigInteger>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatInteger(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatInteger(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatInteger(currentValue?: any, tableData?: TableCellData<'integer', TableCellTypeConfigInteger> | undefined): string {\n const config = tableData?.colData?.cellTypeConfig\n const formatInteger = notNullOrUndefined(config?.formatNumber) ?\n this._parseConfigValue(coerceBooleanProperty(config?.formatNumber), tableData) : true\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const format = `${ minIntegerDigits }.0-0`\n\n return formatInteger ? formatNumber(currentValue, locale, format ) : currentValue\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'integer', TableCellTypeConfigInteger>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { coercePhoneNumberFormat, THESEAM_DEFAULT_PHONE_NUMBER_FORMAT } from '@theseam/ui-common/tel-input'\nimport type { intlTelInputUtils } from '@theseam/ui-common/tel-input'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { TableCellTypeConfigPhone } from './table-cell-type-phone-config'\n\n@Component({\n selector: 'seam-table-cell-type-phone',\n templateUrl: './table-cell-type-phone.component.html',\n styleUrls: ['./table-cell-type-phone.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypePhoneComponent implements OnInit, OnDestroy {\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n /** @ignore */\n _format: intlTelInputUtils.numberFormat = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n\n @Input() value?: string | null\n @Input()\n set format(value: intlTelInputUtils.numberFormat) { this._format = coercePhoneNumberFormat(value) }\n get format() { return this._format }\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'phone', TableCellTypeConfigPhone>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n if (_data && _data.colData && _data.colData.cellTypeConfig && hasProperty(_data.colData.cellTypeConfig, 'format')) {\n this.format = _data.colData.cellTypeConfig.format as intlTelInputUtils.numberFormat\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && hasProperty(colData, 'cellTypeConfig') &&\n hasProperty(colData.cellTypeConfig, 'format') &&\n colData.cellTypeConfig.format !== this.format\n ) {\n this.format = colData.cellTypeConfig.format\n } else {\n this.format = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { SeamIcon } from '@theseam/ui-common/icon'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigProgressCircleIcon } from './table-cell-type-progress-circle-icon-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle-icon',\n templateUrl: './table-cell-type-progress-circle-icon.component.html',\n styleUrls: ['./table-cell-type-progress-circle-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleIconComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n\n displayIcon: boolean = false\n icon?: SeamIcon\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n ) {\n const tableData = _tableData\n this.value = tableData && tableData.value\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n\n this._setIcon(tableData)\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n private _setIcon(tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n if (tableData &&\n tableData.colData &&\n tableData.colData.cellTypeConfig &&\n tableData.colData.cellTypeConfig.displayIcon &&\n tableData.colData.cellTypeConfig.icon &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData) &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)) {\n this.icon = this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)\n this.displayIcon = this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData)\n }\n }\n\n private _parseConfigValue(val: any, tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { IconTemplateType } from './../table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeConfigProgressCircle, TableCellTypeProgressCircleConfigAction } from './table-cell-type-progress-circle-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle',\n templateUrl: './table-cell-type-progress-circle.component.html',\n styleUrls: ['./table-cell-type-progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n _tableCellData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n colData?: TheSeamTableColumn<'progress-circle', TableCellTypeConfigProgressCircle>\n\n fillBackground: boolean = false\n showText: boolean = false\n hiddenOnEmpty: boolean = true\n pending: boolean = false\n tooltip?: string\n tooltipClass?: string\n tooltipPlacement?: string\n tooltipContainer?: string\n _tooltipDisabled: boolean = false\n\n _title?: string\n _srOnly?: string\n\n _link?: string\n _linkClass = '' // TODO: Decide if this makes sense\n _tplType: IconTemplateType = 'default'\n _target?: string\n _queryParams?: { [k: string]: any }\n\n _buttonAction?: TableCellTypeProgressCircleConfigAction\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n private _config: TableCellTypeConfigProgressCircle | undefined | null\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n ) {\n if (_datatable) {\n this._isDatatable = true\n }\n\n const tableData = _tableData\n this._tableCellData = _tableData\n\n this.value = tableData && coerceNumberProperty(tableData.value)\n this.colData = tableData && tableData.colData\n\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = coerceNumberProperty(v.changes.value.currentValue)\n if (this._config) {\n this._setCellTypeConfigProps(this._config)\n }\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n if (this.colData?.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n this._cdf.markForCheck()\n }\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n public setAction(configAction?: TableCellTypeProgressCircleConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _setCellTypeConfigProps(config: TableCellTypeConfigProgressCircle): void {\n this._config = config\n this.setAction(config.action)\n this.fillBackground = coerceBooleanProperty(this._parseConfigValue(config.fillBackground))\n this.showText = coerceBooleanProperty(this._parseConfigValue(config.showText))\n this.hiddenOnEmpty = coerceBooleanProperty(this._parseConfigValue(config.hiddenOnEmpty))\n this.pending = coerceBooleanProperty(this._parseConfigValue(config.pending))\n this.tooltip = this._parseConfigValue(config.tooltip)\n\n this.tooltip = this._parseConfigValue(config.tooltip)\n if (this.tooltip) {\n this.tooltipClass = this._parseConfigValue(config.tooltipClass)\n this.tooltipPlacement = this._parseConfigValue(config.tooltipPlacement) || 'auto'\n this.tooltipContainer = this._parseConfigValue(config.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n\n this._title = this._parseConfigValue(config.titleAttr)\n this._srOnly = this._parseConfigValue(config.srOnly)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\n\nimport { TableCellTypeConfigString, TableCellTypeStringConfigAction } from './table-cell-type-string-config'\n\nexport type StringTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-string',\n templateUrl: './table-cell-type-string.component.html',\n styleUrls: ['./table-cell-type-string.component.scss'],\n host: { },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeStringComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(val: string | null | undefined) {\n this._value = val\n // TODO: This is temporary to test the feature and will be fixed when the\n // dynamic column data is fixed. The plan is to add a config toggle to\n // always enable and depending on performance it could try to decide on its\n // own based on content size.\n if (this.value && this.value.length > 30) {\n this.canPopover = true\n }\n }\n _value: string | null | undefined\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigString | undefined | null) {\n this._config = value\n if (value) {\n this.setAction(value.action)\n }\n }\n private _config: TableCellTypeConfigString | undefined | null\n\n _tplType: StringTemplateType = 'default'\n _link?: string\n _title?: string\n _queryParams?: { [k: string]: any }\n\n _buttonAction?: TableCellTypeStringConfigAction\n\n _tableCellData?: TableCellData<'string', TableCellTypeConfigString>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'string', TableCellTypeConfigString>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @Input()\n set title(value: string | undefined) { this.title = value }\n get title(): string | undefined { return this._title }\n\n @HostBinding('attr.title') get _titleAttr() { return this.title || this.value }\n\n canPopover = false\n\n constructor(\n private readonly _cdf: ChangeDetectorRef,\n private readonly _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) readonly _tableData?: TableCellData<'string', TableCellTypeConfigString>\n ) {\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n }\n\n ngOnInit() {\n const _data = this._tableData\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeStringConfigAction) {\n let newTplType: StringTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset) ? 'link-encrypted' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._queryParams = queryParams\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { ITableCellTypeManifestProvider, TABLE_CELL_TYPE_MANIFEST } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeCurrencyComponent } from './table-cell-type-currency/table-cell-type-currency.component'\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeDecimalComponent } from './table-cell-type-decimal/table-cell-type-decimal.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeIntegerComponent } from './table-cell-type-integer/table-cell-type-integer.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nexport const TABLE_CELL_TYPE_MANIFEST_STRING: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'string',\n component: TableCellTypeStringComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_CURRENCY: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'currency',\n component: TableCellTypeCurrencyComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DECIMAL: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'decimal',\n component: TableCellTypeDecimalComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_INTEGER: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'integer',\n component: TableCellTypeIntegerComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DATE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'date',\n component: TableCellTypeDateComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'icon',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_IMAGE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'image',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle',\n component: TableCellTypeProgressCircleComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle-icon',\n component: TableCellTypeProgressCircleIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PHONE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'phone',\n component: TableCellTypePhoneComponent\n },\n multi: true\n}\n","import { PortalModule } from '@angular/cdk/portal'\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 { TheSeamAssetReaderModule } from '@theseam/ui-common/asset-reader'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamPopoverModule } from '@theseam/ui-common/popover'\nimport { TheSeamProgressModule } from '@theseam/ui-common/progress'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\nimport { TheSeamTelInputModule } from '@theseam/ui-common/tel-input'\n\nimport { TableCellTypeCurrencyComponent } from './table-cell-type-currency/table-cell-type-currency.component'\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeDecimalComponent } from './table-cell-type-decimal/table-cell-type-decimal.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeIntegerComponent } from './table-cell-type-integer/table-cell-type-integer.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nimport {\n TABLE_CELL_TYPE_MANIFEST_CURRENCY,\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_PHONE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_STRING\n} from './table-cell-type-manifests'\n\nconst cellTypeComponents = [\n TableCellTypeStringComponent,\n TableCellTypeCurrencyComponent,\n TableCellTypeDateComponent,\n TableCellTypeDecimalComponent,\n TableCellTypeIconComponent,\n TableCellTypeIntegerComponent,\n TableCellTypeProgressCircleComponent,\n TableCellTypeProgressCircleIconComponent,\n TableCellTypePhoneComponent\n]\n\nconst cellTypeProviders = [\n TABLE_CELL_TYPE_MANIFEST_STRING,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_CURRENCY,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_PHONE\n]\n\n@NgModule({\n declarations: [\n ...cellTypeComponents\n ],\n imports: [\n CommonModule,\n NgbTooltipModule,\n RouterModule,\n TheSeamSharedModule,\n TheSeamIconModule,\n PortalModule,\n TheSeamPopoverModule,\n TheSeamProgressModule,\n TheSeamTelInputModule,\n TheSeamAssetReaderModule,\n TheSeamTableCellTypeModule\n ],\n providers: [\n ...cellTypeProviders\n ],\n exports: [\n ...cellTypeComponents\n ],\n entryComponents: [\n ...cellTypeComponents\n ]\n})\nexport class TheSeamTableCellTypesModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TableCellTypeConfigProgressCircleIcon as ɵb} from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config';\nexport {TableCellTypeConfigProgressCircle as ɵa} from './table-cell-type-progress-circle/table-cell-type-progress-circle-config';"],"names":[],"mappings":"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"}
@@ -74,7 +74,7 @@ TableComponent.decorators = [
74
74
  selector: 'seam-table',
75
75
  template: "<table cdk-table [dataSource]=\"displayedRows\" class=\"table table-header-divider-indented mb-0\"\n [class.table-striped]=\"rows && rows.length > 0\"\n [class.table-sm]=\"size === 'sm'\"\n [class.table-no-header]=\"!hasHeader\">\n <ng-container *ngFor=\"let r of displayedRecords; first as isFirst; trackBy:_trackByRecords\">\n <ng-container [cdkColumnDef]=\"r.prop\">\n <th cdk-header-cell *cdkHeaderCellDef>\n <ng-container *ngIf=\"hasHeader\">\n {{ r.name }}\n </ng-container>\n </th>\n <td cdk-cell *cdkCellDef=\"let element; index as rowIndex\"\n [attr.colspan]=\"element?._emptyDisplay && isFirst ? 2 : undefined\"\n [class.border-top-0]=\"element?._emptyDisplay && isFirst\"\n [class.d-none]=\"element?._emptyDisplay && !isFirst\"\n [style]=\"$any(r)?.cellTypeConfig?.styles\">\n\n <span [style]=\"$any(r)?.cellTypeConfig?.styles\"></span>\n\n <ng-container *ngIf=\"element?._emptyDisplay && isFirst; else hasDataTpl\">\n No records found\n </ng-container>\n\n <ng-template #hasDataTpl>\n <seam-table-cell-type-selector *ngIf=\"$any(r)?.cellType; else noCellType\"\n [type]=\"$any(r)?.cellType\"\n [value]=\"element[r.prop]\"\n [rowIndex]=\"rowIndex\"\n [row]=\"element\"\n [colData]=\"r\">\n </seam-table-cell-type-selector>\n <ng-template #noCellType>\n <div class=\"td-text-truncate\" [title]=\"element[r.prop]\">\n {{ element[r.prop] }}\n </div>\n </ng-template>\n </ng-template>\n\n </td>\n </ng-container>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"displayedColumns\"></tr>\n <tr cdk-row *cdkRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n",
76
76
  changeDetection: ChangeDetectionStrategy.OnPush,
77
- styles: [":host{display:block}:host .table-no-header ::ng-deep thead{display:none}"]
77
+ styles: [":host{display:block}:host .table-no-header ::ng-deep thead{display:none}\n"]
78
78
  },] }
79
79
  ];
80
80
  TableComponent.ctorParameters = () => [
@@ -552,7 +552,7 @@ TheSeamTelInputComponent.decorators = [
552
552
  multi: true
553
553
  }],
554
554
  changeDetection: ChangeDetectionStrategy.OnPush,
555
- styles: [":host{display:block}"]
555
+ styles: [":host{display:block}\n"]
556
556
  },] }
557
557
  ];
558
558
  TheSeamTelInputComponent.ctorParameters = () => [
@@ -0,0 +1,191 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { createMountableStoryComponent } from '@storybook/testing-angular';
3
+ import { render } from '@testing-library/angular';
4
+ import { tick } from '@angular/core/testing';
5
+ import expectPatched from '@storybook/expect';
6
+ import { instrument } from '@storybook/instrumenter';
7
+ import * as mock from 'jest-mock';
8
+ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
9
+ import { StorybookHarnessEnvironment } from '@marklb/storybook-harness';
10
+
11
+ class FakeToastrService {
12
+ constructor() {
13
+ this.currentlyActive = 0;
14
+ this.toasts = [];
15
+ }
16
+ /** show toast */
17
+ show(message, title, override = {}, type = '') { }
18
+ /** show successful toast */
19
+ success(message, title, override = {}) { }
20
+ /** show error toast */
21
+ error(message, title, override = {}) { }
22
+ /** show info toast */
23
+ info(message, title, override = {}) { }
24
+ /** show warning toast */
25
+ warning(message, title, override = {}) { }
26
+ /**
27
+ * Remove all or a single toast by id
28
+ */
29
+ clear(toastId) { }
30
+ /**
31
+ * Remove and destroy a single toast by id
32
+ */
33
+ remove(toastId) { }
34
+ /**
35
+ * Determines if toast message is already shown
36
+ */
37
+ findDuplicate(message, resetOnDuplicate, countDuplicates) { }
38
+ }
39
+
40
+ // NOTE: This is an experimental attempt at removing some of the boilerplate. If
41
+ // this ends up being worth it, then I will add it to `@storybook/testing-angular`.
42
+ function renderStory(story) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ const { component, ngModule } = createMountableStoryComponent(story({}, {}));
45
+ return yield render(component, { imports: [ngModule] });
46
+ });
47
+ }
48
+
49
+ /**
50
+ * Helps advance tests to specific elapsed times.
51
+ *
52
+ * # When to use
53
+ *
54
+ * If a test needs to do something at 100 ticks, but expected values should
55
+ * also be tested at multiple ticks before 100 ticks, then the previous tick
56
+ * sum needs to be counted. If the elapsed can be easily counted by just
57
+ * skimming the code you should just use `tick()`.
58
+ *
59
+ * The following example is simple enough that `tick()` is probably better, but
60
+ * it shows how it is used.
61
+ *
62
+ * ## Example without
63
+ *
64
+ * ```ts
65
+ * const thing = new Thing()
66
+ * thing.dieAfterTicks(100)
67
+ *
68
+ * tick(25)
69
+ * expect(thing.isAlive).toBe(true)
70
+ *
71
+ * tick(25)
72
+ * expect(thing.isAlive).toBe(true)
73
+ *
74
+ * tick(25)
75
+ * expect(thing.isAlive).toBe(true)
76
+ *
77
+ * tick(25)
78
+ * expect(thing.isAlive).toBe(false)
79
+ * ```
80
+ *
81
+ * ## Example with
82
+ *
83
+ * ```ts
84
+ * const t = new TickHelper()
85
+ * const thing = new Thing()
86
+ * thing.dieAfterTicks(100)
87
+ *
88
+ * t.tickTo(25)
89
+ * expect(thing.isAlive).toBe(true)
90
+ *
91
+ * t.tickTo(50)
92
+ * expect(thing.isAlive).toBe(true)
93
+ *
94
+ * t.tickTo(75)
95
+ * expect(thing.isAlive).toBe(true)
96
+ *
97
+ * t.tickTo(100)
98
+ * expect(thing.isAlive).toBe(false)
99
+ * ```
100
+ */
101
+ class TickHelper {
102
+ constructor() {
103
+ this._startTime = Date.now();
104
+ }
105
+ /**
106
+ * Returns the number of ticks that have elapsed since this class was
107
+ * initialized.
108
+ */
109
+ get ticksElapsed() { return Date.now() - this._startTime; }
110
+ /**
111
+ * Calls `tick()` for the remaining number of ticks to reach elapsed ticks.
112
+ *
113
+ * ```
114
+ * const t = new TickHelper()
115
+ * tick(3)
116
+ * t.tickTo(10) // Equivalent to `tick(7)` in this case to reach 10 ticks.
117
+ * ```
118
+ */
119
+ tickTo(ticks) { tick(ticks - this.ticksElapsed); }
120
+ }
121
+
122
+ /**
123
+ * When using `fakeAsync` this can access the internal currentTickTime of the
124
+ * fake zone's scheduler.
125
+ *
126
+ * NOTE: Do **NOT** rely on this in tests. It is accesses private properties
127
+ * that could break or change at any time, which could cause it to not have the
128
+ * same meaning and be inaccurate in a future version.
129
+ *
130
+ * NOTE: This is accessing private properties, so I don't recommend relying on
131
+ * this in tests. I find it useful to sometimes set this on a global property
132
+ * that I can observe in the debugger's watch variables.
133
+ */
134
+ function currentTickTime(documentWindow = window) {
135
+ return documentWindow.Zone.current._properties.FakeAsyncTestZoneSpec._scheduler._currentTickTime;
136
+ }
137
+
138
+ const { jest } = instrument({ jest: mock });
139
+ // const expectJasmineFn = (window as any).expect
140
+ const expectJestFn = expectPatched;
141
+ // const isInJasmine = expectJasmineFn !== undefined && expectJasmineFn !== null
142
+ // const expectFn = expectJasmineFn || exp
143
+ const isInJasmine = false;
144
+ // console.log('isInJasmine', isInJasmine)
145
+ const { expect } = instrument(
146
+ // { expect: expectJasmineFn || expectJestFn },
147
+ { expect: expectJestFn },
148
+ // { intercept: (method, path) => path[0] !== 'expect' }
149
+ { intercept: (method, path) => {
150
+ // console.log('intercept', method, path)
151
+ return path[0] !== 'expect';
152
+ } });
153
+ function toBeFn(matcher) {
154
+ // if (isInJasmine) {
155
+ // // @ts-ignore
156
+ // const m = matcher as jasmine.Matchers<any>
157
+ // return async (value: any) => m.toBe(value) as any
158
+ // } else {
159
+ // const m = matcher as ReturnType<typeof expectJestFn>
160
+ // return async (value: any) => m.toBe(value) as any
161
+ // }
162
+ const m = matcher;
163
+ return (value) => __awaiter(this, void 0, void 0, function* () { return m.toBe(value); });
164
+ }
165
+ function expectFn(value) {
166
+ // const t = isInJasmine ? expectJasmineFn(value) : expect(value)
167
+ const t = expect(value);
168
+ return {
169
+ toBe: toBeFn(t)
170
+ };
171
+ }
172
+
173
+ function getHarness(harnessType, options) {
174
+ return __awaiter(this, void 0, void 0, function* () {
175
+ if (options.fixture !== undefined) {
176
+ return TestbedHarnessEnvironment.harnessForFixture(options.fixture, harnessType);
177
+ }
178
+ if (options.canvasElement !== undefined) {
179
+ return (new StorybookHarnessEnvironment(options.canvasElement))
180
+ .getHarness(harnessType);
181
+ }
182
+ throw Error(`Unable to get harness. fixture or canvasElement must be provided.`);
183
+ });
184
+ }
185
+
186
+ /**
187
+ * Generated bundle index. Do not edit.
188
+ */
189
+
190
+ export { FakeToastrService, TickHelper, currentTickTime, expectFn, getHarness, jest, renderStory };
191
+ //# sourceMappingURL=theseam-ui-common-testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theseam-ui-common-testing.js","sources":["../../../projects/ui-common/testing/fake-toastr.ts","../../../projects/ui-common/testing/render-story.ts","../../../projects/ui-common/testing/tick-helper.ts","../../../projects/ui-common/testing/current-tick-time.ts","../../../projects/ui-common/testing/story-expect.ts","../../../projects/ui-common/testing/get-harness.ts","../../../projects/ui-common/testing/theseam-ui-common-testing.ts"],"sourcesContent":["import { ActiveToast, GlobalConfig, IndividualConfig, ToastContainerDirective } from 'ngx-toastr'\n\nexport class FakeToastrService {\n toastrConfig!: GlobalConfig\n currentlyActive = 0\n toasts: ActiveToast<any>[] = []\n overlayContainer!: ToastContainerDirective\n previousToastMessage: string | undefined\n\n /** show toast */\n show(\n message?: string,\n title?: string,\n override: Partial<IndividualConfig> = {},\n type = ''\n ) { }\n\n /** show successful toast */\n success(\n message?: string,\n title?: string,\n override: Partial<IndividualConfig> = {}\n ) { }\n\n /** show error toast */\n error(\n message?: string,\n title?: string,\n override: Partial<IndividualConfig> = {}\n ) { }\n\n /** show info toast */\n info(\n message?: string,\n title?: string,\n override: Partial<IndividualConfig> = {}\n ) { }\n\n /** show warning toast */\n warning(\n message?: string,\n title?: string,\n override: Partial<IndividualConfig> = {}\n ) { }\n\n /**\n * Remove all or a single toast by id\n */\n clear(toastId?: number) { }\n\n /**\n * Remove and destroy a single toast by id\n */\n remove(toastId: number) { }\n\n /**\n * Determines if toast message is already shown\n */\n findDuplicate(message: string, resetOnDuplicate: boolean, countDuplicates: boolean) { }\n\n}\n","import { createMountableStoryComponent } from '@storybook/testing-angular'\nimport { render, RenderResult } from '@testing-library/angular'\n\n// NOTE: This is an experimental attempt at removing some of the boilerplate. If\n// this ends up being worth it, then I will add it to `@storybook/testing-angular`.\nexport async function renderStory<ComponentType = any>(story: any): Promise<RenderResult<ComponentType, ComponentType>> {\n const { component, ngModule } = createMountableStoryComponent(\n story({}, {} as any)\n )\n return await render(component, { imports: [ ngModule ] })\n}\n","import { tick } from '@angular/core/testing'\n\n/**\n * Helps advance tests to specific elapsed times.\n *\n * # When to use\n *\n * If a test needs to do something at 100 ticks, but expected values should\n * also be tested at multiple ticks before 100 ticks, then the previous tick\n * sum needs to be counted. If the elapsed can be easily counted by just\n * skimming the code you should just use `tick()`.\n *\n * The following example is simple enough that `tick()` is probably better, but\n * it shows how it is used.\n *\n * ## Example without\n *\n * ```ts\n * const thing = new Thing()\n * thing.dieAfterTicks(100)\n *\n * tick(25)\n * expect(thing.isAlive).toBe(true)\n *\n * tick(25)\n * expect(thing.isAlive).toBe(true)\n *\n * tick(25)\n * expect(thing.isAlive).toBe(true)\n *\n * tick(25)\n * expect(thing.isAlive).toBe(false)\n * ```\n *\n * ## Example with\n *\n * ```ts\n * const t = new TickHelper()\n * const thing = new Thing()\n * thing.dieAfterTicks(100)\n *\n * t.tickTo(25)\n * expect(thing.isAlive).toBe(true)\n *\n * t.tickTo(50)\n * expect(thing.isAlive).toBe(true)\n *\n * t.tickTo(75)\n * expect(thing.isAlive).toBe(true)\n *\n * t.tickTo(100)\n * expect(thing.isAlive).toBe(false)\n * ```\n */\nexport class TickHelper {\n\n private _startTime = Date.now()\n\n /**\n * Returns the number of ticks that have elapsed since this class was\n * initialized.\n */\n public get ticksElapsed() { return Date.now() - this._startTime }\n\n /**\n * Calls `tick()` for the remaining number of ticks to reach elapsed ticks.\n *\n * ```\n * const t = new TickHelper()\n * tick(3)\n * t.tickTo(10) // Equivalent to `tick(7)` in this case to reach 10 ticks.\n * ```\n */\n public tickTo(ticks: number) { tick(ticks - this.ticksElapsed) }\n\n}\n","\r\n/**\r\n * When using `fakeAsync` this can access the internal currentTickTime of the\r\n * fake zone's scheduler.\r\n *\r\n * NOTE: Do **NOT** rely on this in tests. It is accesses private properties\r\n * that could break or change at any time, which could cause it to not have the\r\n * same meaning and be inaccurate in a future version.\r\n *\r\n * NOTE: This is accessing private properties, so I don't recommend relying on\r\n * this in tests. I find it useful to sometimes set this on a global property\r\n * that I can observe in the debugger's watch variables.\r\n */\r\nexport function currentTickTime(documentWindow: any = window): number {\r\n return documentWindow.Zone.current._properties.FakeAsyncTestZoneSpec._scheduler._currentTickTime\r\n}\r\n","import { default as expectPatched } from '@storybook/expect'\nimport { instrument } from '@storybook/instrumenter'\nimport * as mock from 'jest-mock'\n\nexport const { jest } = instrument({ jest: mock })\n\n// const expectJasmineFn = (window as any).expect\nconst expectJestFn = expectPatched\n// const isInJasmine = expectJasmineFn !== undefined && expectJasmineFn !== null\n// const expectFn = expectJasmineFn || exp\nconst isInJasmine = false\n\n// console.log('isInJasmine', isInJasmine)\n\nconst { expect } = instrument(\n // { expect: expectJasmineFn || expectJestFn },\n { expect: expectJestFn },\n // { intercept: (method, path) => path[0] !== 'expect' }\n { intercept: (method, path) => {\n // console.log('intercept', method, path)\n return path[0] !== 'expect'\n } }\n)\n\n\n\n\n\nfunction toBeFn(matcher: any): (value: any) => Promise<void> {\n // if (isInJasmine) {\n // // @ts-ignore\n // const m = matcher as jasmine.Matchers<any>\n // return async (value: any) => m.toBe(value) as any\n // } else {\n // const m = matcher as ReturnType<typeof expectJestFn>\n // return async (value: any) => m.toBe(value) as any\n // }\n const m = matcher as ReturnType<typeof expectJestFn>\n return async (value: any) => m.toBe(value) as any\n}\n\nexport function expectFn(value: any) {\n // const t = isInJasmine ? expectJasmineFn(value) : expect(value)\n const t = expect(value)\n return {\n toBe: toBeFn(t)\n }\n}\n","import { ComponentHarness, ComponentHarnessConstructor } from '@angular/cdk/testing'\nimport { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'\nimport { ComponentFixture } from '@angular/core/testing'\n\nimport { StorybookHarnessEnvironment } from '@marklb/storybook-harness'\n\nexport interface GetHarnessOptions<TComponent = any> {\n canvasElement?: HTMLElement\n fixture?: ComponentFixture<TComponent>\n}\n\nexport async function getHarness<T extends ComponentHarness>(\n harnessType: ComponentHarnessConstructor<T>,\n options: GetHarnessOptions\n): Promise<T> {\n if (options.fixture !== undefined) {\n return TestbedHarnessEnvironment.harnessForFixture(options.fixture, harnessType)\n }\n\n if (options.canvasElement !== undefined) {\n return (new StorybookHarnessEnvironment(options.canvasElement))\n .getHarness(harnessType)\n }\n\n throw Error(`Unable to get harness. fixture or canvasElement must be provided.`)\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}