@theseam/ui-common 0.4.28 → 0.4.30

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 (616) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +61 -9
  3. package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +25 -0
  4. package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +18 -0
  5. package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +16 -0
  6. package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +15 -0
  7. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
  8. package/datatable/datatable.module.d.ts +29 -20
  9. package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +8 -0
  10. package/datatable/directives/datatable-column-filter.directive.d.ts +10 -0
  11. package/datatable/models/action-item-column-position.d.ts +13 -0
  12. package/datatable/models/columns-data-filter.d.ts +57 -0
  13. package/datatable/models/columns-data-filters/models.d.ts +65 -0
  14. package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +23 -0
  15. package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +22 -0
  16. package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +21 -0
  17. package/datatable/models/columns-data-filters/utils.d.ts +15 -0
  18. package/datatable/models/datatable-config.d.ts +97 -0
  19. package/datatable/models/table-column.d.ts +22 -1
  20. package/datatable/public-api.d.ts +14 -0
  21. package/datatable/services/columns-filters.service.d.ts +29 -0
  22. package/datatable/services/columns-manager.service.d.ts +7 -0
  23. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  24. package/esm2020/asset-reader/asset-reader-helper.service.mjs +4 -4
  25. package/esm2020/asset-reader/asset-reader.module.mjs +5 -5
  26. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +4 -4
  27. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +5 -5
  28. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  29. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +4 -4
  30. package/esm2020/buttons/badge-button/badge-button.component.mjs +7 -7
  31. package/esm2020/buttons/button/button.component.mjs +10 -10
  32. package/esm2020/buttons/buttons.module.mjs +5 -5
  33. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  34. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +4 -4
  35. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  36. package/esm2020/card/card-body/card-body.component.mjs +4 -4
  37. package/esm2020/card/card-footer/card-footer.component.mjs +4 -4
  38. package/esm2020/card/card-header/card-header.component.mjs +4 -4
  39. package/esm2020/card/card.component.mjs +4 -4
  40. package/esm2020/card/card.module.mjs +5 -5
  41. package/esm2020/carousel/carousel-slide.directive.mjs +4 -4
  42. package/esm2020/carousel/carousel.component.mjs +4 -4
  43. package/esm2020/carousel/carousel.module.mjs +5 -5
  44. package/esm2020/checkbox/checkbox.component.mjs +4 -4
  45. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  46. package/esm2020/confirm-dialog/confirm-click.directive.mjs +4 -4
  47. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +4 -4
  48. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +5 -5
  49. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +4 -4
  50. package/esm2020/data-exporter/data-exporter.module.mjs +5 -5
  51. package/esm2020/data-exporter/exporters/csv-exporter.mjs +4 -4
  52. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +4 -4
  53. package/esm2020/data-filters/data-filters.module.mjs +5 -5
  54. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +4 -4
  55. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +4 -4
  56. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +4 -4
  57. package/esm2020/datatable/datatable/datatable.component.mjs +241 -32
  58. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +5 -5
  59. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +4 -4
  60. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -4
  61. package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +55 -0
  62. package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +54 -0
  63. package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +48 -0
  64. package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +44 -0
  65. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +4 -4
  66. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -4
  67. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +4 -4
  68. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +4 -4
  69. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +4 -4
  70. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +4 -4
  71. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +4 -4
  72. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +4 -4
  73. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +4 -4
  74. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +4 -4
  75. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -4
  76. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +4 -4
  77. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +4 -4
  78. package/esm2020/datatable/datatable.module.mjs +53 -11
  79. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +4 -4
  80. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +4 -4
  81. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +4 -4
  82. package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +16 -0
  83. package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +26 -0
  84. package/esm2020/datatable/directives/datatable-filter.directive.mjs +4 -4
  85. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +4 -4
  86. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  87. package/esm2020/datatable/models/columns-data-filter.mjs +10 -0
  88. package/esm2020/datatable/models/columns-data-filters/models.mjs +74 -0
  89. package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +113 -0
  90. package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +104 -0
  91. package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +86 -0
  92. package/esm2020/datatable/models/columns-data-filters/utils.mjs +28 -0
  93. package/esm2020/datatable/models/datatable-config.mjs +3 -0
  94. package/esm2020/datatable/models/table-column.mjs +1 -1
  95. package/esm2020/datatable/public-api.mjs +15 -1
  96. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  97. package/esm2020/datatable/services/columns-filters.service.mjs +109 -0
  98. package/esm2020/datatable/services/columns-manager.service.mjs +30 -5
  99. package/esm2020/datatable/services/datatable-column-changes.service.mjs +4 -4
  100. package/esm2020/datatable/services/datatable-preferences.service.mjs +4 -4
  101. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +4 -4
  102. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  103. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +4 -4
  104. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
  105. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +4 -4
  106. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +5 -5
  107. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +5 -5
  108. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +4 -4
  109. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +4 -4
  110. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +4 -4
  111. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +4 -4
  112. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +4 -4
  113. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  114. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  115. package/esm2020/dynamic/dynamic-value-helper.service.mjs +4 -4
  116. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  117. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +4 -4
  118. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +5 -5
  119. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +4 -4
  120. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +4 -4
  121. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  122. package/esm2020/form-field/form-field-error.directive.mjs +4 -4
  123. package/esm2020/form-field/form-field-help-text.directive.mjs +4 -4
  124. package/esm2020/form-field/form-field-label-tpl.directive.mjs +4 -4
  125. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  126. package/esm2020/form-field/form-field.component.mjs +4 -4
  127. package/esm2020/form-field/form-field.module.mjs +5 -5
  128. package/esm2020/form-field/input.directive.mjs +4 -4
  129. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +4 -4
  130. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  131. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +4 -4
  132. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +4 -4
  133. package/esm2020/form-field-error/form-field-error.module.mjs +5 -5
  134. package/esm2020/framework/base-layout/base-layout.component.mjs +16 -6
  135. package/esm2020/framework/base-layout/base-layout.module.mjs +10 -5
  136. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +4 -4
  137. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +4 -4
  138. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +4 -4
  139. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +22 -6
  140. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +4 -4
  141. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  142. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +4 -4
  143. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +4 -4
  144. package/esm2020/framework/base-layout/index.mjs +2 -1
  145. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +4 -4
  146. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -4
  147. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +4 -4
  148. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +4 -4
  149. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
  150. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +4 -4
  151. package/esm2020/framework/dashboard/dashboard.component.mjs +4 -4
  152. package/esm2020/framework/dashboard/dashboard.module.mjs +5 -5
  153. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  154. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +4 -4
  155. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +4 -4
  156. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  157. package/esm2020/framework/nav/index.mjs +6 -0
  158. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  159. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  160. package/esm2020/framework/nav/nav.models.mjs +2 -0
  161. package/esm2020/framework/nav/nav.module.mjs +67 -0
  162. package/esm2020/framework/nav/nav.service.mjs +204 -0
  163. package/esm2020/framework/public-api.mjs +2 -1
  164. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +4 -4
  165. package/esm2020/framework/schema-form/schema-form-framework.mjs +4 -4
  166. package/esm2020/framework/schema-form/schema-form.module.mjs +5 -5
  167. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +4 -4
  168. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +4 -4
  169. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +4 -4
  170. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +4 -4
  171. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +4 -4
  172. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +4 -4
  173. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +4 -4
  174. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +4 -4
  175. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +4 -4
  176. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +29 -68
  177. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +14 -7
  178. package/esm2020/framework/side-nav/side-nav.component.mjs +117 -39
  179. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  180. package/esm2020/framework/side-nav/side-nav.module.mjs +11 -41
  181. package/esm2020/framework/side-nav/side-nav.service.mjs +4 -4
  182. package/esm2020/framework/top-bar/index.mjs +3 -1
  183. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  184. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +12 -6
  185. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +4 -4
  186. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +8 -6
  187. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +4 -4
  188. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  189. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +4 -4
  190. package/esm2020/framework/top-bar/top-bar.component.mjs +57 -13
  191. package/esm2020/framework/top-bar/top-bar.module.mjs +19 -9
  192. package/esm2020/google-maps/google-maps/google-maps.component.mjs +4 -4
  193. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +4 -4
  194. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +4 -4
  195. package/esm2020/google-maps/google-maps-controls.service.mjs +4 -4
  196. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +5 -5
  197. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +4 -4
  198. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +4 -4
  199. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +4 -4
  200. package/esm2020/google-maps/google-maps.module.mjs +5 -5
  201. package/esm2020/google-maps/google-maps.service.mjs +4 -4
  202. package/esm2020/google-maps/map-control.component.mjs +4 -4
  203. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  204. package/esm2020/google-maps/map-value-manager.service.mjs +4 -4
  205. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  206. package/esm2020/graphql/datatable/index.mjs +4 -1
  207. package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
  208. package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +139 -0
  209. package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +75 -0
  210. package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +44 -0
  211. package/esm2020/icon/icon/icon.component.mjs +4 -4
  212. package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -4
  213. package/esm2020/icon/icon-notification/icon-notification.component.mjs +4 -4
  214. package/esm2020/icon/icon.module.mjs +5 -5
  215. package/esm2020/layout/layout.module.mjs +5 -5
  216. package/esm2020/layout/layout.service.mjs +15 -5
  217. package/esm2020/loading/loading/loading.component.mjs +4 -4
  218. package/esm2020/loading/loading-overlay.service.mjs +4 -4
  219. package/esm2020/loading/loading.module.mjs +5 -5
  220. package/esm2020/menu/menu-divider.component.mjs +4 -4
  221. package/esm2020/menu/menu-footer/menu-footer.component.mjs +4 -4
  222. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +4 -4
  223. package/esm2020/menu/menu-header/menu-header.component.mjs +4 -4
  224. package/esm2020/menu/menu-item.component.mjs +4 -4
  225. package/esm2020/menu/menu-toggle.directive.mjs +9 -4
  226. package/esm2020/menu/menu.component.mjs +4 -4
  227. package/esm2020/menu/menu.module.mjs +5 -5
  228. package/esm2020/modal/directives/modal-close.directive.mjs +4 -4
  229. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +4 -4
  230. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +4 -4
  231. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +4 -4
  232. package/esm2020/modal/directives/modal-title.directive.mjs +4 -4
  233. package/esm2020/modal/directives/modal.directive.mjs +4 -4
  234. package/esm2020/modal/modal/modal.component.mjs +4 -4
  235. package/esm2020/modal/modal-body/modal-body.component.mjs +4 -4
  236. package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
  237. package/esm2020/modal/modal-footer/modal-footer.component.mjs +4 -4
  238. package/esm2020/modal/modal-header/modal-header.component.mjs +4 -4
  239. package/esm2020/modal/modal.module.mjs +5 -5
  240. package/esm2020/modal/modal.service.mjs +4 -4
  241. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -4
  242. package/esm2020/navigation-reload/navigation-reload.service.mjs +5 -5
  243. package/esm2020/popover/popover/popover.component.mjs +9 -5
  244. package/esm2020/popover/popover.directive.mjs +8 -4
  245. package/esm2020/popover/popover.module.mjs +5 -5
  246. package/esm2020/progress/progress-circle/progress-circle.component.mjs +4 -4
  247. package/esm2020/progress/progress.module.mjs +5 -5
  248. package/esm2020/rich-text/rich-text/rich-text.component.mjs +4 -4
  249. package/esm2020/rich-text/rich-text.module.mjs +5 -5
  250. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -4
  251. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  252. package/esm2020/scrollbar/scrollbar.module.mjs +5 -5
  253. package/esm2020/services/asset-loader.service.mjs +4 -4
  254. package/esm2020/services/font-loader.service.mjs +4 -4
  255. package/esm2020/services/preferences/preferences-manager.service.mjs +4 -4
  256. package/esm2020/services/router-helpers.service.mjs +4 -4
  257. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +4 -4
  258. package/esm2020/shared/directives/auto-focus.directive.mjs +4 -4
  259. package/esm2020/shared/directives/click-outside.directive.mjs +4 -4
  260. package/esm2020/shared/directives/disable-control.directive.mjs +4 -4
  261. package/esm2020/shared/directives/elem-resized.directive.mjs +4 -4
  262. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
  263. package/esm2020/shared/directives/hover-class.directive.mjs +4 -4
  264. package/esm2020/shared/directives/ng-select-extra.directive.mjs +4 -4
  265. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +4 -4
  266. package/esm2020/shared/pipes/mask-chars.pipe.mjs +4 -4
  267. package/esm2020/shared/pipes/truncate.pipe.mjs +4 -4
  268. package/esm2020/shared/shared.module.mjs +5 -5
  269. package/esm2020/storage/local-storage.service.mjs +4 -4
  270. package/esm2020/story-helpers/initial-route.service.mjs +4 -4
  271. package/esm2020/story-helpers/story-empty-with-route.component.mjs +4 -4
  272. package/esm2020/story-helpers/story-empty.component.mjs +4 -4
  273. package/esm2020/story-helpers/story-helper-components.module.mjs +5 -5
  274. package/esm2020/story-helpers/story-initial-route.mjs +5 -5
  275. package/esm2020/story-helpers/story-modal-container.component.mjs +4 -4
  276. package/esm2020/story-helpers/story-preferences-accessor.service.mjs +4 -4
  277. package/esm2020/story-helpers/story-toastr.service.mjs +4 -4
  278. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +4 -4
  279. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +4 -4
  280. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +4 -4
  281. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +4 -4
  282. package/esm2020/tabbed/tabbed.component.mjs +4 -4
  283. package/esm2020/tabbed/tabbed.module.mjs +5 -5
  284. package/esm2020/tabbed/tabbed.service.mjs +4 -4
  285. package/esm2020/table/public-api.mjs +4 -1
  286. package/esm2020/table/table/table.component.mjs +92 -7
  287. package/esm2020/table/table-cell-tpl.directive.mjs +17 -0
  288. package/esm2020/table/table-column-header-tpl.directive.mjs +17 -0
  289. package/esm2020/table/table-column.component.mjs +68 -0
  290. package/esm2020/table/table.module.mjs +25 -9
  291. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +4 -4
  292. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +4 -4
  293. package/esm2020/table-cell-type/table-cell-type.module.mjs +5 -5
  294. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +4 -4
  295. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +4 -4
  296. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +4 -4
  297. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +4 -4
  298. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +4 -4
  299. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +4 -4
  300. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +4 -4
  301. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +4 -4
  302. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +7 -5
  303. package/esm2020/table-cell-types/table-cell-types.module.mjs +5 -5
  304. package/esm2020/tel-input/phone-number.pipe.mjs +4 -4
  305. package/esm2020/tel-input/tel-input/tel-input.component.mjs +4 -4
  306. package/esm2020/tel-input/tel-input.directive.mjs +4 -4
  307. package/esm2020/tel-input/tel-input.module.mjs +5 -5
  308. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +4 -4
  309. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -4
  310. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +4 -4
  311. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +4 -4
  312. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +4 -4
  313. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +4 -4
  314. package/esm2020/tiled-select/tiled-select.module.mjs +5 -5
  315. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +4 -4
  316. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +4 -4
  317. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +4 -4
  318. package/esm2020/toggle-edit/toggle-edit.component.mjs +4 -4
  319. package/esm2020/toggle-edit/toggle-edit.module.mjs +5 -5
  320. package/esm2020/toggle-group/toggle-group-option.directive.mjs +4 -4
  321. package/esm2020/toggle-group/toggle-group.directive.mjs +4 -4
  322. package/esm2020/toggle-group/toggle-group.module.mjs +5 -5
  323. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +4 -4
  324. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +4 -4
  325. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +4 -4
  326. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +5 -5
  327. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  328. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  329. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  330. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  331. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  332. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  333. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +4 -4
  334. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
  335. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +5 -5
  336. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +4 -4
  337. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  338. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +4 -4
  339. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +5 -5
  340. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +4 -4
  341. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +4 -4
  342. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +4 -4
  343. package/esm2020/widget/preferences/widget-preferences.service.mjs +4 -4
  344. package/esm2020/widget/widget/widget.component.mjs +4 -4
  345. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +4 -4
  346. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +5 -5
  347. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +4 -4
  348. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +5 -5
  349. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +4 -4
  350. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +5 -5
  351. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +4 -4
  352. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +5 -5
  353. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +4 -4
  354. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +5 -5
  355. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +4 -4
  356. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +5 -5
  357. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +4 -4
  358. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +5 -5
  359. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +4 -4
  360. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -16
  361. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +4 -4
  362. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +5 -5
  363. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +4 -4
  364. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +5 -5
  365. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +4 -4
  366. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +4 -4
  367. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +4 -4
  368. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +4 -4
  369. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +7 -7
  370. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +5 -5
  371. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +4 -4
  372. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +5 -5
  373. package/esm2020/widget/widget-footer/widget-footer.component.mjs +4 -4
  374. package/esm2020/widget/widget-registry.service.mjs +4 -4
  375. package/esm2020/widget/widget.module.mjs +5 -5
  376. package/fesm2015/theseam-ui-common-asset-reader.mjs +10 -10
  377. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  378. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +11 -11
  379. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  380. package/fesm2015/theseam-ui-common-buttons.mjs +25 -25
  381. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  382. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  383. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  384. package/fesm2015/theseam-ui-common-carousel.mjs +10 -10
  385. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -1
  386. package/fesm2015/theseam-ui-common-checkbox.mjs +7 -7
  387. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  388. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +13 -13
  389. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  390. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  391. package/fesm2015/theseam-ui-common-data-exporter.mjs.map +1 -1
  392. package/fesm2015/theseam-ui-common-data-filters.mjs +13 -13
  393. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  394. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +26 -26
  395. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  396. package/fesm2015/theseam-ui-common-datatable.mjs +1112 -139
  397. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  398. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  399. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  400. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  401. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  402. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  403. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  404. package/fesm2015/theseam-ui-common-form-field-error.mjs +16 -16
  405. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  406. package/fesm2015/theseam-ui-common-form-field.mjs +22 -22
  407. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-framework.mjs +1026 -277
  409. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-google-maps.mjs +41 -41
  411. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common-graphql.mjs +257 -4
  413. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  414. package/fesm2015/theseam-ui-common-icon.mjs +13 -13
  415. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  416. package/fesm2015/theseam-ui-common-layout.mjs +18 -9
  417. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  418. package/fesm2015/theseam-ui-common-loading.mjs +10 -10
  419. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  420. package/fesm2015/theseam-ui-common-menu.mjs +30 -25
  421. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  422. package/fesm2015/theseam-ui-common-modal.mjs +43 -43
  423. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  424. package/fesm2015/theseam-ui-common-navigation-reload.mjs +4 -4
  425. package/fesm2015/theseam-ui-common-navigation-reload.mjs.map +1 -1
  426. package/fesm2015/theseam-ui-common-popover.mjs +19 -11
  427. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  428. package/fesm2015/theseam-ui-common-progress.mjs +7 -7
  429. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  430. package/fesm2015/theseam-ui-common-rich-text.mjs +7 -7
  431. package/fesm2015/theseam-ui-common-rich-text.mjs.map +1 -1
  432. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -10
  433. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  434. package/fesm2015/theseam-ui-common-services.mjs +12 -12
  435. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  436. package/fesm2015/theseam-ui-common-shared.mjs +37 -37
  437. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  438. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  439. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  440. package/fesm2015/theseam-ui-common-story-helpers.mjs +26 -26
  441. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  442. package/fesm2015/theseam-ui-common-tabbed.mjs +22 -22
  443. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  444. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  445. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  446. package/fesm2015/theseam-ui-common-table-cell-types.mjs +34 -32
  447. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  448. package/fesm2015/theseam-ui-common-table.mjs +207 -15
  449. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  450. package/fesm2015/theseam-ui-common-tel-input.mjs +13 -13
  451. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  452. package/fesm2015/theseam-ui-common-tiled-select.mjs +22 -22
  453. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  454. package/fesm2015/theseam-ui-common-toggle-edit.mjs +16 -16
  455. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  456. package/fesm2015/theseam-ui-common-toggle-group.mjs +10 -10
  457. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  458. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  459. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  460. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  461. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +3 -3
  462. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  463. package/fesm2015/theseam-ui-common-viewers.mjs +20 -20
  464. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  465. package/fesm2015/theseam-ui-common-widget.mjs +135 -135
  466. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  467. package/fesm2020/theseam-ui-common-asset-reader.mjs +10 -10
  468. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  469. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +11 -11
  470. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  471. package/fesm2020/theseam-ui-common-buttons.mjs +25 -25
  472. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  473. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  474. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  475. package/fesm2020/theseam-ui-common-carousel.mjs +10 -10
  476. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -1
  477. package/fesm2020/theseam-ui-common-checkbox.mjs +7 -7
  478. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  479. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +13 -13
  480. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  481. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  482. package/fesm2020/theseam-ui-common-data-exporter.mjs.map +1 -1
  483. package/fesm2020/theseam-ui-common-data-filters.mjs +13 -13
  484. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  485. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +26 -26
  486. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  487. package/fesm2020/theseam-ui-common-datatable.mjs +1096 -139
  488. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  489. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  490. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  491. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  492. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  493. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  494. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  495. package/fesm2020/theseam-ui-common-form-field-error.mjs +16 -16
  496. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  497. package/fesm2020/theseam-ui-common-form-field.mjs +22 -22
  498. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  499. package/fesm2020/theseam-ui-common-framework.mjs +1028 -277
  500. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  501. package/fesm2020/theseam-ui-common-google-maps.mjs +41 -41
  502. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  503. package/fesm2020/theseam-ui-common-graphql.mjs +257 -4
  504. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  505. package/fesm2020/theseam-ui-common-icon.mjs +13 -13
  506. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  507. package/fesm2020/theseam-ui-common-layout.mjs +18 -9
  508. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  509. package/fesm2020/theseam-ui-common-loading.mjs +10 -10
  510. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  511. package/fesm2020/theseam-ui-common-menu.mjs +30 -25
  512. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  513. package/fesm2020/theseam-ui-common-modal.mjs +43 -43
  514. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  515. package/fesm2020/theseam-ui-common-navigation-reload.mjs +4 -4
  516. package/fesm2020/theseam-ui-common-navigation-reload.mjs.map +1 -1
  517. package/fesm2020/theseam-ui-common-popover.mjs +19 -11
  518. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  519. package/fesm2020/theseam-ui-common-progress.mjs +7 -7
  520. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  521. package/fesm2020/theseam-ui-common-rich-text.mjs +7 -7
  522. package/fesm2020/theseam-ui-common-rich-text.mjs.map +1 -1
  523. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -10
  524. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  525. package/fesm2020/theseam-ui-common-services.mjs +12 -12
  526. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  527. package/fesm2020/theseam-ui-common-shared.mjs +37 -37
  528. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  529. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  530. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  531. package/fesm2020/theseam-ui-common-story-helpers.mjs +26 -26
  532. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  533. package/fesm2020/theseam-ui-common-tabbed.mjs +22 -22
  534. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  535. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  536. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  537. package/fesm2020/theseam-ui-common-table-cell-types.mjs +34 -32
  538. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  539. package/fesm2020/theseam-ui-common-table.mjs +205 -15
  540. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  541. package/fesm2020/theseam-ui-common-tel-input.mjs +13 -13
  542. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  543. package/fesm2020/theseam-ui-common-tiled-select.mjs +22 -22
  544. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  545. package/fesm2020/theseam-ui-common-toggle-edit.mjs +16 -16
  546. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  547. package/fesm2020/theseam-ui-common-toggle-group.mjs +10 -10
  548. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  549. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  550. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  551. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  552. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +3 -3
  553. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  554. package/fesm2020/theseam-ui-common-viewers.mjs +20 -20
  555. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  556. package/fesm2020/theseam-ui-common-widget.mjs +135 -135
  557. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  558. package/framework/base-layout/base-layout.component.d.ts +4 -2
  559. package/framework/base-layout/base-layout.component.scss +18 -10
  560. package/framework/base-layout/base-layout.module.d.ts +11 -10
  561. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  562. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  563. package/framework/base-layout/index.d.ts +1 -0
  564. package/framework/base-layout/styles/_variables.scss +21 -0
  565. package/framework/nav/_nav-theme.scss +4 -0
  566. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  567. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  568. package/framework/nav/index.d.ts +5 -0
  569. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  570. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  571. package/framework/nav/nav-utils.d.ts +20 -0
  572. package/framework/nav/nav.models.d.ts +77 -0
  573. package/framework/nav/nav.module.d.ts +17 -0
  574. package/framework/nav/nav.service.d.ts +27 -0
  575. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  576. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  577. package/framework/nav/styles/_utilities.scss +3 -0
  578. package/framework/nav/styles/_variables.scss +2 -0
  579. package/framework/public-api.d.ts +1 -0
  580. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  581. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  582. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  583. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  584. package/framework/side-nav/side-nav.component.d.ts +13 -1
  585. package/framework/side-nav/side-nav.component.scss +0 -1
  586. package/framework/side-nav/side-nav.models.d.ts +7 -1
  587. package/framework/side-nav/side-nav.module.d.ts +1 -9
  588. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  589. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  590. package/framework/top-bar/index.d.ts +2 -0
  591. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  592. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  593. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  594. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  595. package/framework/top-bar/top-bar.component.d.ts +25 -3
  596. package/framework/top-bar/top-bar.component.scss +7 -2
  597. package/framework/top-bar/top-bar.module.d.ts +10 -8
  598. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  599. package/graphql/datatable/index.d.ts +3 -0
  600. package/graphql/datatable/map-filter-states.d.ts +2 -2
  601. package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +4 -0
  602. package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +4 -0
  603. package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +4 -0
  604. package/layout/layout.service.d.ts +9 -1
  605. package/menu/menu-toggle.directive.d.ts +2 -1
  606. package/package.json +3 -3
  607. package/popover/popover/popover.component.d.ts +4 -1
  608. package/popover/popover.directive.d.ts +2 -1
  609. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +83 -14
  610. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +38 -3
  611. package/table/public-api.d.ts +3 -0
  612. package/table/table/table.component.d.ts +21 -3
  613. package/table/table-cell-tpl.directive.d.ts +7 -0
  614. package/table/table-column-header-tpl.directive.d.ts +7 -0
  615. package/table/table-column.component.d.ts +24 -0
  616. package/table/table.module.d.ts +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-rich-text.mjs","sources":["../../../projects/ui-common/rich-text/utils/utils.ts","../../../projects/ui-common/rich-text/rich-text/rich-text.component.ts","../../../projects/ui-common/rich-text/rich-text/rich-text.component.html","../../../projects/ui-common/rich-text/utils/models.ts","../../../projects/ui-common/rich-text/rich-text.module.ts","../../../projects/ui-common/rich-text/theseam-ui-common-rich-text.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\"\nimport { QuillToolbarConfig } from \"ngx-quill\"\nimport { TheSeamQuillModules, TheSeamQuillStyleFormat, TheSeamQuillEditorConfig, TheSeamQuillMentionMenuOption, TheSeamQuillInputFormat, TheSeamQuillMentionOptions, TheSeamQuillMentionSourceFn, TheSeamQuillMentionSearchFn, TheSeamCharacterCounterFn, TheSeamQuillMentionMenuItem } from \"./models\"\nimport { isNullOrUndefined, notNullOrUndefined, notNullOrUndefinedOrEmpty } from \"@theseam/ui-common/utils\"\n\nexport const HTML_ENTITY_REGEX = /<[^>]+>/gm\n\nexport const THESEAM_QUILL_TOOLBAR_OPTIONS_DEFAULT: QuillToolbarConfig = [\n ['bold', 'italic', 'underline', 'strike'],\n [{ header: [0, 1, 2, 3, 4, 5] }],\n [{ list: 'ordered' }, { list: 'bullet' }],\n [{ align: [] }],\n ['link'],\n ['clean'],\n]\n\nexport const THESEAM_QUILL_MENTION_OPTIONS_DEFAULT: Partial<TheSeamQuillMentionOptions> = {\n spaceAfterInsert: false,\n positioningStrategy: 'fixed',\n dataAttributes: [ 'type' ]\n}\n\nexport const THESEAM_QUILL_MODULES_DEFAULT: TheSeamQuillModules = {\n toolbar: THESEAM_QUILL_TOOLBAR_OPTIONS_DEFAULT\n}\n\nexport const THESEAM_QUILL_FORMATS_DEFAULT: TheSeamQuillStyleFormat[] = [\n 'align',\n 'bold',\n 'header',\n 'indent',\n 'italic',\n 'link',\n 'list',\n 'size',\n 'strike',\n 'underline',\n 'mention'\n]\n\nexport const THESEAM_QUILL_EDITOR_CONFIG_DEFAULT: TheSeamQuillEditorConfig = {\n format: 'html',\n modules: THESEAM_QUILL_MODULES_DEFAULT,\n formats: THESEAM_QUILL_FORMATS_DEFAULT,\n linkPlaceholder: 'https://google.com',\n customToolbarPosition: 'top',\n sanitize: false,\n strict: true,\n customOptions: [],\n customModules: [],\n preserveWhitespace: false,\n trimOnValidation: false,\n compareValues: false,\n filterNull: false\n}\n\nexport const THESEAM_QUILL_EDITOR_CONFIG = new InjectionToken<TheSeamQuillEditorConfig>('TheSeamQuillEditorConfig')\n\nexport const defaultHtmlCharacterCounterFn: TheSeamCharacterCounterFn = (value: string, format: TheSeamQuillInputFormat | undefined): number => {\n if (format === 'html') {\n return value.replace(HTML_ENTITY_REGEX, ' ').replace(/\\s\\s+/g, ' ').trim().length\n }\n else if (format === 'text') {\n return value.replace(/\\s\\s+/g, ' ').trim().length\n }\n else {\n console.warn(`Format ${format} not supported!`)\n return 0\n }\n}\n\nexport function isMentionMenuOption(value: TheSeamQuillMentionMenuItem | undefined): value is TheSeamQuillMentionMenuOption {\n if (isNullOrUndefined(value) || typeof value !== 'object') {\n return false\n }\n\n return Object.prototype.hasOwnProperty.call(value, 'id')\n}\n\nexport const defaultMentionSearchFn: TheSeamQuillMentionSearchFn = (source: TheSeamQuillMentionMenuItem[], textAfter: string, mentionChar: string) => {\n return source.filter(u => {\n if (!isMentionMenuOption(u) || u.searchIgnore === true) {\n return true\n }\n\n return u.value.toLowerCase().includes(textAfter.toLowerCase())\n })\n}\n\nexport const defaultMentionRenderListFn: TheSeamQuillMentionSourceFn = (source: TheSeamQuillMentionMenuItem[], searchFn: TheSeamQuillMentionSearchFn, emptyListItem: TheSeamQuillMentionMenuItem | undefined, textAfter: string, renderList: (list: any[], searchTerm: string) => any, mentionChar: string) => {\n let list = searchFn(source, textAfter, mentionChar)\n\n if (list.length === 0 && notNullOrUndefined(emptyListItem)) {\n list.push(emptyListItem)\n }\n else {\n let reduceIdx = 0\n list = list.reduce((acc, mention) => {\n const previousMenuItem = acc[reduceIdx - 1]\n const previousMenuItemGroupName = isMentionMenuOption(previousMenuItem) ? previousMenuItem.groupName : undefined\n if (isMentionMenuOption(mention)\n && notNullOrUndefinedOrEmpty(mention.groupName)\n && mention.groupName !== previousMenuItemGroupName\n ) {\n acc.push({\n value: mention.groupName,\n disabled: true,\n type: 'groupName'\n })\n\n reduceIdx++\n }\n\n if (!isMentionMenuOption(mention)) {\n mention.disabled = true\n }\n\n acc.push(mention)\n reduceIdx++\n\n return acc\n }, <TheSeamQuillMentionMenuItem[]>[] satisfies TheSeamQuillMentionMenuItem[])\n }\n\n renderList(list, textAfter)\n}\n\n// Keeping this as an example for a custom menu item.\n// There doesn't appear to be a better way of passing in a custom template.\n// export const defaultMentionRenderItem = (item: TheSeamQuillMentionListItem) => {\n // if (item.type === 'groupName') {\n // const text = document.createElement('div')\n // text.setAttribute('class', 'small text-black-50')\n // text.innerText = item.value\n\n // return text.outerHTML\n // }\n // else if (item.type === 'divider') {\n // const div = document.createElement('hr')\n // div.setAttribute('class', 'my-2')\n // return div.outerHTML\n // }\n // else {\n // return item.value\n // }\n// }\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, Component, EventEmitter, HostListener, Inject, Input, OnDestroy, OnInit, Optional, Output, Provider, Renderer2, TemplateRef, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Blur, ContentChange, EditorChangeContent, EditorChangeSelection, Focus, QuillEditorComponent, SelectionChange } from 'ngx-quill';\nimport { Delta } from 'quill';\nimport 'quill-mention';\nimport { BehaviorSubject, Observable, Subject, combineLatest, filter, lastValueFrom, map, of, shareReplay, startWith, switchMap, take, tap } from 'rxjs';\n\nimport { isNullOrUndefined, notNullOrUndefined } from '@theseam/ui-common/utils';\nimport { TheSeamCharacterCounterFn, TheSeamQuillEditorConfig, TheSeamQuillMentionMenuItem, TheSeamQuillMentionMenuOption, TheSeamQuillMentionSearchFn, TheSeamQuillMentionSourceFn, TheSeamQuillModules } from '../utils/models';\nimport { THESEAM_QUILL_EDITOR_CONFIG, THESEAM_QUILL_EDITOR_CONFIG_DEFAULT, THESEAM_QUILL_MENTION_OPTIONS_DEFAULT, defaultHtmlCharacterCounterFn, defaultMentionRenderListFn, defaultMentionSearchFn, isMentionMenuOption } from '../utils/utils';\n\nexport const RICH_TEXT_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichTextComponent),\n multi: true\n}\n\n@Component({\n selector: 'seam-rich-text',\n templateUrl: './rich-text.component.html',\n styleUrls: ['./rich-text.component.scss'],\n providers: [\n RICH_TEXT_VALUE_ACCESSOR\n ]\n})\nexport class RichTextComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {\n\n onChange: any\n onTouched: any\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value') val: string | undefined\n\n formControl = new FormControl<string | null>(null)\n\n @Input()\n get required(): boolean {\n return this._required\n }\n set required(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._required = coerceBooleanProperty(value)\n }\n }\n private _required = false\n\n /** @default '' (empty string) */\n @Input()\n get placeholder(): string {\n return this._placeholder\n }\n set placeholder(value: string | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._placeholder = value\n }\n }\n private _placeholder = ''\n\n /**\n * Initial rows visible in text area, set using `height` and `minHeight`.\n *\n * NOTE: Resizable editors will not be able to size below the height calculated from this value.\n *\n * @default 5\n */\n @Input()\n get rows(): number {\n return this._rows\n }\n set rows(value: number | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._rows = value\n\n this._pollCalculatedRowHeight.next()\n }\n }\n private _rows = 5\n\n /**\n * When `true`, text area can be resized vertically.\n *\n * @default true\n */\n @Input()\n get resizable(): boolean {\n return this._resizable\n }\n set resizable(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._resizable = coerceBooleanProperty(value)\n }\n }\n private _resizable = true\n\n /** @default false */\n get readOnly(): boolean {\n return this._readOnly\n }\n set readOnly(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._readOnly = coerceBooleanProperty(value)\n }\n }\n private _readOnly = false\n\n // TODO: fix bug where initial html value is rendered in plain text\n /**\n * When `true`, overrides all other provided settings to present the editor\n * as a standard textbox.\n *\n * NOTE: For the moment, `<p></p>` tags are still allowed, triggered by the `Enter` key.\n * https://github.com/slab/quill/issues/1432\n *\n * @default false\n */\n @Input()\n get disableRichText(): boolean {\n return this._disableRichText\n }\n set disableRichText(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._disableRichText = coerceBooleanProperty(value)\n\n this._updateQuillConfig()\n }\n }\n private _disableRichText = false\n\n /**\n * When `true`, displays a character counter at the bottom of the editor.\n * Character counter text is determined by values provided in `minLength`\n * and `maxLength`.\n *\n * The default count algorithm strips out html entities and replaces them\n * with spaces to get the string length. To override this behavior, pass\n * a custom function to `characterCounterFn`.\n *\n * To override default character counter display, pass a custom template to `characterCountTpl`.\n *\n * @default false\n */\n @Input()\n get displayCharacterCounter(): boolean {\n return this._displayCharacterCounter\n }\n set displayCharacterCounter(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._displayCharacterCounter = coerceBooleanProperty(value)\n }\n }\n private _displayCharacterCounter = false\n\n @Input()\n get minLength(): number | undefined {\n return this._minLength\n }\n set minLength(value: number | undefined) {\n if (notNullOrUndefined(value)) {\n this._minLength = value\n }\n }\n private _minLength: number | undefined\n\n @Input()\n get maxLength(): number | undefined {\n return this._maxLength\n }\n set maxLength(value: number | undefined) {\n if (notNullOrUndefined(value)) {\n this._maxLength = value\n }\n }\n private _maxLength: number | undefined\n\n /**\n * Set to override default character counter display.\n *\n * Template context includes variables `minLength`, `maxLength`, and `characterCount`.\n */\n @Input()\n get characterCounterTpl(): TemplateRef<any> | null {\n return this._characterCounterTpl\n }\n set characterCounterTpl(value) {\n if (notNullOrUndefined(value)) {\n this._characterCounterTpl = value\n }\n }\n private _characterCounterTpl: TemplateRef<any> | null = null\n\n /**\n * Set to override default counter function, which strips html entities and\n * replaces them with a space.\n */\n @Input() get characterCounterFn(): TheSeamCharacterCounterFn {\n return this._characterCounterFn\n }\n set characterCounterFn(value: TheSeamCharacterCounterFn | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._characterCounterFn = value\n }\n }\n private _characterCounterFn = defaultHtmlCharacterCounterFn\n\n /**\n * If `true`, component will configure the Quill editor with the quill-mentions extension\n * and listen for values passed to `mentionItems` to populate the mentions menu.\n *\n * @default false\n */\n @Input()\n get useMentions(): boolean {\n return this._useMentions\n }\n set useMentions(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._useMentions = coerceBooleanProperty(value)\n\n this._updateQuillConfig()\n }\n }\n private _useMentions: boolean = false\n\n /**\n * List of users, user groups, or other entities to display in mentions menu.\n * Minimum required properties are `id` (unique) and `value`, which acts as the label.\n *\n * By default, the menu is triggered by typing the `@` symbol into the text area.\n */\n @Input()\n get mentionItems(): TheSeamQuillMentionMenuItem[] | null | undefined {\n return this._mentionItems.value\n }\n set mentionItems(value: TheSeamQuillMentionMenuItem[] | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionItems.next(value)\n }\n }\n private _mentionItems = new BehaviorSubject<TheSeamQuillMentionMenuItem[] | null | undefined>(undefined)\n public mentionItems$ = this._mentionItems.asObservable().pipe(\n filter(mentions => notNullOrUndefined(mentions) && mentions.length > 0),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n /**\n * Set to override default search function when user is typing a mention.\n */\n @Input()\n get mentionSearchFn(): TheSeamQuillMentionSearchFn {\n return this._mentionSearchFn\n }\n set mentionSearchFn(value: TheSeamQuillMentionSearchFn | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionSearchFn = value\n }\n }\n private _mentionSearchFn: TheSeamQuillMentionSearchFn = defaultMentionSearchFn\n\n /**\n * Set to override default render function for mentions list.\n *\n * Function should call `renderList`.\n */\n @Input()\n get mentionRenderListFn(): TheSeamQuillMentionSourceFn {\n return this._mentionRenderListFn\n }\n set mentionRenderListFn(value: TheSeamQuillMentionSourceFn | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionRenderListFn = value\n }\n }\n private _mentionRenderListFn: TheSeamQuillMentionSourceFn = defaultMentionRenderListFn\n\n /**\n * Set to override default text shown while mention items are loading.\n *\n * @default 'Loading...'\n */\n @Input()\n get mentionListLoadingText(): string {\n return this._mentionListLoadingText\n }\n set mentionListLoadingText(value: string | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionListLoadingText = value\n }\n }\n private _mentionListLoadingText: string = 'Loading...'\n\n /**\n * Set to override default text shown when a mention search returns no items.\n *\n * @default 'No matches found.'\n */\n @Input()\n get mentionListEmptyText(): string {\n return this._mentionListEmptyText\n }\n set mentionListEmptyText(value: string | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionListEmptyText = value\n }\n }\n private _mentionListEmptyText: string = 'No matches found.'\n\n get mentionListEmptyItem(): TheSeamQuillMentionMenuOption {\n return {\n id: 'undefined',\n value: this.mentionListEmptyText,\n disabled: true,\n emptyList: true\n }\n }\n\n @Output() quillEditorCreated: EventEmitter<any> = new EventEmitter()\n @Output() quillEditorChanged: EventEmitter<EditorChangeContent | EditorChangeSelection> = new EventEmitter()\n @Output() quillContentChanged: EventEmitter<ContentChange> = new EventEmitter()\n @Output() quillSelectionChanged: EventEmitter<SelectionChange> = new EventEmitter()\n @Output() quillFocus: EventEmitter<Focus> = new EventEmitter()\n @Output() quillBlur: EventEmitter<Blur> = new EventEmitter()\n\n @Output() mentionsUpdated: EventEmitter<TheSeamQuillMentionMenuOption[]> = new EventEmitter()\n\n @ViewChild('quillEditor')\n get quillEditor(): QuillEditorComponent | undefined {\n return this._quillEditor\n }\n set quillEditor(value: QuillEditorComponent | undefined) {\n this._quillEditor = value\n\n // setTimeout because full html isn't available until the next tick\n setTimeout(() => {\n this._pollCalculatedRowHeight.next()\n }, 0)\n }\n private _quillEditor: QuillEditorComponent | undefined\n\n @ViewChild('characterCounter') defaultCharacterCounterTpl: TemplateRef<any> | undefined\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent) {\n if (event.code === 'Escape') {\n const qlEditor = this._quillEditor?.editorElem?.querySelector('.ql-editor')\n if (notNullOrUndefined(qlEditor) && qlEditor === document.activeElement && qlEditor instanceof HTMLElement) {\n event.preventDefault()\n event.stopImmediatePropagation()\n qlEditor.blur()\n }\n }\n }\n\n private _isWritingValue = false\n\n private _pollCalculatedRowHeight = new Subject<void>()\n\n private _configSet = new BehaviorSubject<boolean>(false)\n public configSet$ = this._configSet.asObservable()\n\n private _stylesSet = new BehaviorSubject<boolean>(false)\n private _templateSet = new BehaviorSubject<boolean>(false)\n\n public initialized$: Observable<boolean>\n\n public characterCount$: Observable<number>\n\n private _config = new BehaviorSubject<TheSeamQuillEditorConfig | undefined>(undefined)\n public config$ = this._config.asObservable()\n\n private _selectedMentions = new BehaviorSubject<TheSeamQuillMentionMenuOption[]>([])\n public selectedMentions$ = this._selectedMentions.asObservable()\n\n constructor(\n private readonly _renderer: Renderer2,\n @Optional() @Inject(THESEAM_QUILL_EDITOR_CONFIG) private _customConfig?: TheSeamQuillEditorConfig\n ) {\n this.initialized$ = combineLatest([\n this._configSet.asObservable(),\n this._stylesSet.asObservable(),\n this._templateSet.asObservable(),\n ]).pipe(\n map(sets => sets.findIndex(s => !s) === -1)\n )\n\n this.characterCount$ = this.initialized$.pipe(\n filter(i => i),\n switchMap(() => {\n if (notNullOrUndefined(this.formControl)) {\n return this.formControl.valueChanges.pipe(\n startWith(this.formControl.value),\n map(v => this.characterCounterFn(v || '' as string, this._config.value?.format)),\n )\n }\n\n return of(0)\n })\n )\n\n this.selectedMentions$.pipe(\n tap(mentions => this.mentionsUpdated.emit(mentions))\n ).subscribe()\n }\n\n ngOnInit(): void {\n // TODO: test this more\n // ignore quill initial valueChange event, to keep functionality in line with other inputs\n let initialEmitComplete = false\n this._configSet.pipe(\n filter(s => s),\n switchMap(() => this.formControl.valueChanges.pipe(\n // skip(1),\n take(1),\n tap(() => initialEmitComplete = true)\n ))\n ).subscribe()\n\n this.formControl.valueChanges.pipe(\n filter(() => !this._isWritingValue && initialEmitComplete),\n tap(value => this.value = value)\n ).subscribe()\n\n this._pollCalculatedRowHeight.asObservable().pipe(\n tap(() => {\n this._stylesSet.next(false)\n\n const calculatedRowsHeight = `${this.rows * 1.5}rem`\n\n if (notNullOrUndefined(this.rows) && notNullOrUndefined(this._quillEditor)) {\n const editorEl = this._quillEditor.elementRef.nativeElement.querySelector('.ql-editor')\n\n if (notNullOrUndefined(editorEl)) {\n this._renderer.setStyle(editorEl, 'height', calculatedRowsHeight)\n this._renderer.setStyle(editorEl, 'min-height', calculatedRowsHeight)\n }\n }\n\n this._stylesSet.next(true)\n })\n ).subscribe()\n\n this._buildQuillConfig()\n }\n\n ngAfterViewInit(): void {\n if (isNullOrUndefined(this.characterCounterTpl)) {\n this.characterCounterTpl = this.defaultCharacterCounterTpl || null\n }\n\n this._templateSet.next(true)\n }\n\n ngOnDestroy(): void {\n // hacky way to ensure mentions menu gets destroyed when component is destroyed\n const mentionModule = this._quillEditor?.quillEditor.getModule('mention')\n const hideMentionList = mentionModule?.hideMentionList\n if (hideMentionList && typeof hideMentionList === 'function') {\n hideMentionList.call(mentionModule)\n }\n }\n\n private _buildQuillConfig() {\n this._configSet.next(false)\n\n const config: TheSeamQuillEditorConfig = {\n ...THESEAM_QUILL_EDITOR_CONFIG_DEFAULT\n }\n\n if (this.disableRichText) {\n config.format = 'text'\n config.formats = []\n config.modules = {\n toolbar: false\n }\n }\n else {\n config.format = this._getConfigOrDefault('format')\n config.formats = this._getConfigOrDefault('formats')\n config.modules = {\n ...this._getConfigOrDefault('modules')\n }\n }\n\n if (this.useMentions) {\n const mentionModules: TheSeamQuillModules = {\n ...config.modules,\n mention: {\n ...THESEAM_QUILL_MENTION_OPTIONS_DEFAULT,\n renderLoading: () => this.mentionListLoadingText,\n source: async (searchTerm: string, renderList: (list: any[], searchTerm: string) => void, mentionChar: string) => {\n // this function is called every time the menu is triggered,\n // so it will always have the latest value from mentionItems$\n const mentionsAsync = await lastValueFrom(this.mentionItems$.pipe(take(1)))\n\n if (notNullOrUndefined(mentionsAsync)) {\n this.mentionRenderListFn(mentionsAsync, this.mentionSearchFn, this.mentionListEmptyItem, searchTerm, renderList, mentionChar)\n }\n },\n ...config.modules?.mention,\n }\n }\n\n config.modules = mentionModules\n }\n\n config.theme = this._getConfigOrDefault('theme')\n config.debug = this._getConfigOrDefault('debug')\n config.customToolbarPosition = this._getConfigOrDefault('customToolbarPosition')\n config.sanitize = this._getConfigOrDefault('sanitize')\n config.styles = this._getConfigOrDefault('styles')\n config.strict = this._getConfigOrDefault('strict')\n config.scrollingContainer = this._getConfigOrDefault('scrollingContainer')\n config.bounds = this._getConfigOrDefault('bounds')\n config.customOptions = this._getConfigOrDefault('customOptions')\n config.customModules = this._getConfigOrDefault('customModules')\n config.trackChanges = this._getConfigOrDefault('trackChanges')\n config.preserveWhitespace = this._getConfigOrDefault('preserveWhitespace')\n config.classes = this._getConfigOrDefault('classes')\n config.trimOnValidation = this._getConfigOrDefault('trimOnValidation')\n config.linkPlaceholder = this._getConfigOrDefault('linkPlaceholder')\n config.compareValues = this._getConfigOrDefault('compareValues')\n config.filterNull = this._getConfigOrDefault('filterNull')\n config.debounceTime = this._getConfigOrDefault('debounceTime')\n\n this._config.next(config)\n\n // setTimeout bc ngx-quill library doesn't listen for input changes,\n // so we must destroy and create the component each time config is updated\n setTimeout(() => {\n this._configSet.next(true)\n }, 0)\n }\n\n private _getConfigOrDefault<K extends keyof TheSeamQuillEditorConfig>(prop: K): TheSeamQuillEditorConfig[K] {\n if (this._customConfig && Object.prototype.hasOwnProperty.call(this._customConfig, prop)) {\n return this._customConfig[prop]\n }\n return THESEAM_QUILL_EDITOR_CONFIG_DEFAULT[prop]\n }\n\n private _updateQuillConfig() {\n if (this._configSet.value) {\n this._buildQuillConfig()\n }\n }\n\n // Not usable, bc config has to be set immediately, potentially before mentions populate.\n // To set customDataAttributes, provide a custom config.\n // private _getCustomDataAttributes(mentions: TheSeamQuillMentionMenuOption[]): string[] {\n // return mentions.reduce((acc, mention) => {\n // const keys = Object.keys(mention)\n\n // keys.forEach(key => {\n // if (acc.findIndex(a => a === key) === -1) {\n // acc.push(key)\n // }\n // })\n\n // return acc\n // }, <string[]>[] satisfies string[])\n // }\n\n get value(): string | undefined | null {\n return this._value\n }\n set value(value: string | undefined | null) {\n this._value = value\n\n if (this.onChange) { this.onChange(value) }\n if (this.onTouched) { this.onTouched() }\n }\n private _value: string | undefined | null\n\n writeValue(value: any): void {\n this._isWritingValue = true\n\n this.formControl.setValue(value)\n this.value = value\n\n this._isWritingValue = false\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.readOnly = isDisabled\n }\n\n _onEditorCreated(event: any) {\n this.quillEditorCreated.emit(event)\n }\n\n _onEditorChanged(event: EditorChangeContent | EditorChangeSelection) {\n this.quillEditorChanged.emit(event)\n }\n\n _onContentChanged(event: ContentChange) {\n this.quillContentChanged.emit(event)\n\n this._updateMentionsFromDelta(event.content)\n }\n\n _onSelectionChanged(event: SelectionChange) {\n this.quillSelectionChanged.emit(event)\n }\n\n _onFocus(event: Focus) {\n this.quillFocus.emit(event)\n }\n\n _onBlur(event: Blur) {\n this.quillBlur.emit(event)\n\n if (this.onTouched) {\n this.onTouched()\n }\n }\n\n /**\n * Hacky way to track mention inserts/deletes\n */\n private _updateMentionsFromDelta(content: Delta) {\n if (notNullOrUndefined(content.ops)) {\n const contentMentionIds = content.ops.map(o => o.insert?.mention?.id).filter(notNullOrUndefined)\n const selectedMentions = [ ...this._selectedMentions.value ]\n const mentionOptions = [ ...this._mentionItems.value || [] ]\n\n const newMentions: TheSeamQuillMentionMenuOption[] = contentMentionIds.reduce((acc, mentionId) => {\n const insertMention = mentionOptions.find(m => isMentionMenuOption(m) && m.id === mentionId)\n\n if (notNullOrUndefined(insertMention)) {\n acc.push(insertMention)\n }\n else {\n console.warn('Mention addition failed! Selected mention option not found:', mentionId)\n }\n\n return acc\n }, <TheSeamQuillMentionMenuOption[]>[])\n\n let emitUpdate = false\n if (selectedMentions.length !== newMentions.length) {\n // if the length has changed, we know an update occurred\n emitUpdate = true\n }\n else {\n // otherwise, test ids for old and new items to see if we need to emit a change\n const selectedMentionIds = this._selectedMentions.value.map(m => m.id)\n const newMentionIds = newMentions.map(m => m.id)\n\n if (\n selectedMentionIds.findIndex(m => !newMentionIds.includes(m)) !== -1 ||\n newMentionIds.findIndex(m => !selectedMentionIds.includes(m)) !== -1\n ) {\n emitUpdate = true\n }\n }\n\n if (emitUpdate) {\n this._selectedMentions.next(newMentions)\n }\n }\n }\n}\n","<div class=\"editor\" *ngIf=\"configSet$ | async\" [class.initializing]=\"!(initialized$ | async)\">\n <ng-container *ngIf=\"config$ | async as config\">\n <quill-editor\n #quillEditor\n seamInput\n [class.disabled]=\"readOnly\"\n [attr.disabled]=\"readOnly\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly\"\n [required]=\"required\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [format]=\"config.format\"\n [theme]=\"config.theme\"\n [modules]=\"config.modules\"\n [debug]=\"config.debug\"\n [formats]=\"config.formats\"\n [customToolbarPosition]=\"config.customToolbarPosition\"\n [sanitize]=\"config.sanitize\"\n [styles]=\"config.styles\"\n [strict]=\"config.strict\"\n [scrollingContainer]=\"config.scrollingContainer\"\n [bounds]=\"config.bounds\"\n [customOptions]=\"config.customOptions\"\n [customModules]=\"config.customModules\"\n [trackChanges]=\"config.trackChanges\"\n [preserveWhitespace]=\"config.preserveWhitespace\"\n [classes]=\"config.classes\"\n [trimOnValidation]=\"config.trimOnValidation\"\n [linkPlaceholder]=\"config.linkPlaceholder\"\n [compareValues]=\"config.compareValues\"\n [filterNull]=\"config.filterNull\"\n [debounceTime]=\"config.debounceTime\"\n [class.can-resize]=\"resizable\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\"></quill-editor>\n <ng-container *ngIf=\"displayCharacterCounter\">\n <ng-container\n [ngTemplateOutlet]=\"characterCounterTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: characterCount$ | async, minLength: minLength, maxLength: maxLength, characterCount: characterCount$ | async }\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #characterCounter let-implicit let-minLength=\"minLength\" let-maxLength=\"maxLength\" let-characterCount=\"characterCount\">\n <div class=\"small text-black-50 text-right\">\n <ng-container *ngIf=\"characterCount || characterCount === 0\">\n Character Count:\n <span [class.text-danger]=\"characterCount && ((maxLength && characterCount > maxLength) || (minLength && characterCount < minLength))\">\n {{ characterCount | number }}\n </span>\n <ng-container *ngIf=\"maxLength\">\n / {{ maxLength }}\n </ng-container>\n <span *ngIf=\"minLength\" class=\"font-italic\">\n (minimum {{ minLength }} expected)\n </span>\n </ng-container>\n </div>\n</ng-template>\n","import { CustomModule, CustomOption, QuillModules } from 'ngx-quill'\nimport QuillType from 'quill'\n\nexport interface TheSeamQuillMentionMenuOption {\n /** Must be unique. */\n id: string\n\n /**\n * The value is used as the label for the mentions,\n * both in the text area and in the menu.\n */\n value: string\n\n /**\n * When `true`, this item will be included in the menu,\n * regardless of the search function applied.\n */\n searchIgnore?: boolean\n\n /**\n * If provided, will group items with the same `groupName`\n * under one header.\n */\n groupName?: string\n\n /** Any additional optional parameters */\n [key: string]: any\n}\n\nexport interface TheSeamQuillMentionMenuDivider {\n type: 'divider'\n disabled?: boolean\n}\n\nexport interface TheSeamQuillMentionMenuHeader {\n value: string\n type: 'groupName'\n disabled?: boolean\n}\n\nexport type TheSeamQuillMentionMenuItem = TheSeamQuillMentionMenuOption | TheSeamQuillMentionMenuDivider | TheSeamQuillMentionMenuHeader\n\nexport type TheSeamQuillMentionSearchFn = (\n source: TheSeamQuillMentionMenuItem[],\n textAfter: string,\n mentionChar: string\n) => TheSeamQuillMentionMenuItem[]\n\nexport type TheSeamQuillMentionSourceFn = (\n source: TheSeamQuillMentionMenuItem[],\n searchFn: TheSeamQuillMentionSearchFn,\n emptyListItem: TheSeamQuillMentionMenuItem | undefined,\n textAfter: string,\n renderList: (\n matches: {\n id: string\n value: string\n [key: string]: string | undefined\n }[],\n searchTerm: string\n ) => void,\n mentionChar: string\n) => void\n\n/**\n * Typed version of Options object, copied from quill-mention@v6.0.1 (typescript version)\n */\nexport interface TheSeamQuillMentionOptions {\n /**\n * Specifies which characters will cause the mention autocomplete to open\n * @default ['@']\n */\n mentionDenotationChars?: string[]\n\n /**\n * Whether to show the used denotation character in the mention item or not\n * @default true\n */\n showDenotationChar?: boolean\n\n /**\n * Allowed characters in search term triggering a search request using regular expressions. Can be a function that takes the denotationChar and returns a regex.\n * @default /^[a-zA-Z0-9_]*$/\n */\n allowedChars?: RegExp | ((char: string) => RegExp)\n\n /**\n * Minimum number of characters after the @ symbol triggering a search request\n * @default 0\n */\n minChars?: number\n\n /**\n * Maximum number of characters after the @ symbol triggering a search request\n * @default 31\n */\n maxChars?: number\n\n /**\n * Additional top offset of the mention container position\n * @default 2\n */\n offsetTop?: number\n\n /**\n * Additional left offset of the mention container position\n * @default 0\n */\n offsetLeft?: number\n\n /**\n * Whether or not the denotation character(s) should be isolated. For example, to avoid mentioning in an email.\n * @default false\n */\n isolateCharacter?: boolean\n\n /**\n * Only works if isolateCharacter is set to true. Whether or not the denotation character(s) can appear inline of the mention text. For example, to allow mentioning an email with the @ symbol as the denotation character.\n * @default false\n */\n allowInlineMentionChar?: boolean\n\n /**\n * When set to true, the mentions menu will be rendered above or below the quill container. Otherwise, the mentions menu will track the denotation character(s);\n * @default false\n */\n fixMentionsToQuill?: boolean\n\n /**\n * Options are 'normal' and 'fixed'. When 'fixed', the menu will be appended to the body and use fixed positioning. Use this if the menu is clipped by a parent element that's using `overflow:hidden\n * @default 'normal'\n */\n positioningStrategy?: 'normal' | 'fixed'\n\n /**\n * Options are 'bottom' and 'top'. Determines what the default orientation of the menu will be. Quill-mention will attempt to render the menu either above or below the editor. If 'top' is provided as a value, and there is not enough space above the editor, the menu will be rendered below. Vice versa, if there is not enough space below the editor, and 'bottom' is provided as a value (or no value is provided at all), the menu will be rendered above the editor.\n * @default 'bottom'\n */\n defaultMenuOrientation?: 'top' | 'bottom'\n\n /**\n * The name of the Quill Blot to be used for inserted mentions. A default implementation is provided named 'mention', which may be overridden with a custom blot.\n * @default 'mention'\n */\n blotName?: string\n\n /**\n * A list of data values you wish to be passed from your list data to the html node. (id, value, denotationChar, link, target are included by default).\n * @default ['id', 'value', 'denotationChar', 'link', 'target', 'disabled']\n */\n dataAttributes?: string[]\n\n /**\n * Link target for mentions with a link\n * @default '_blank'\n */\n linkTarget?: string\n\n /**\n * Style class to be used for list items (may be null)\n * @default 'ql-mention-list-item'\n */\n listItemClass?: string\n\n /**\n * Style class to be used for the mention list container (may be null)\n * @default 'ql-mention-list-container'\n */\n mentionContainerClass?: string\n\n /**\n * Style class to be used for the mention list (may be null)\n * @default 'ql-mention-list'\n */\n mentionListClass?: string\n\n /**\n * Whether or not insert 1 space after mention block in text\n * @default true\n */\n spaceAfterInsert?: boolean\n\n /**\n * An array of keyboard key codes that will trigger the select action for the mention dropdown. Default is ENTER key. See this reference for a list of numbers for each keyboard key.\n * @default [13]\n */\n selectKeys?: (string | number | string)[]\n\n /**\n * Required callback function to handle the search term and connect it to a data source for matches. The data source can be a local source or an AJAX request.\n * The callback should call renderList(matches, searchTerm); with matches of JSON Objects in an array to show the result for the user. The JSON Objects should have id and value but can also have other values to be used in renderItem for custom display.\n * @param textAfter\n * @param render\n * @param mentionChar\n * @returns\n */\n source: (\n textAfter: string,\n renderList: (\n matches: {\n id: string\n value: string\n [key: string]: string | undefined\n }[],\n searchTerm: string\n ) => void,\n mentionChar: string\n ) => void\n\n /**\n * Callback when mention dropdown is open.\n * @returns\n */\n onOpen?: () => boolean\n\n /**\n * Callback before the DOM of mention dropdown is removed.\n * @returns\n */\n onBeforeClose?: () => boolean\n\n /**\n * Callback when mention dropdown is closed.\n * @returns\n */\n onClose?: () => boolean\n\n /**\n * A function that gives you control over how matches from source are displayed. You can use this function to highlight the search term or change the design with custom HTML. This function will need to return either a string possibly containing unsanitized user content, or a class implementing the Node interface which will be treated as a sanitized DOM node.\n * @param item\n * @param searchTerm\n * @returns\n */\n renderItem?: (\n item: { id: string; value: string; [key: string]: unknown },\n searchTerm: string\n ) => string | HTMLElement\n\n /**\n * A function that returns the HTML for a loading message during async calls from source. The function will need to return either a string possibly containing unsanitized user content, or a class implementing the Node interface which will be treated as a sanitized DOM node. The default functions returns null to prevent a loading message.\n * @returns\n */\n renderLoading?: () => string | HTMLElement | null\n\n /**\n * Callback for a selected item. When overriding this method, insertItem should be used to insert item to the editor. This makes async requests possible.\n * @param item\n * @param insertItem\n */\n onSelect?: (\n item: DOMStringMap,\n insertItem: (\n data: Record<string, unknown>,\n programmaticInsert?: boolean,\n overriddenOptions?: object\n ) => void\n ) => void\n}\n\nexport interface TheSeamQuillModules extends QuillModules {\n mention?: Partial<TheSeamQuillMentionOptions>\n}\n\nexport const THESEAM_QUILL_FORMATS = [\n 'align',\n 'background',\n 'blockquote',\n 'bold',\n 'code-block',\n 'code',\n 'color',\n 'direction',\n 'font',\n 'header',\n 'image',\n 'indent',\n 'italic',\n 'link',\n 'list',\n 'script',\n 'size',\n 'strike',\n 'underline',\n 'video',\n 'mention'\n] as const\n\nexport type TheSeamQuillStyleFormat = (typeof THESEAM_QUILL_FORMATS)[number]\n\nexport type TheSeamQuillInputFormat = 'object' | 'html' | 'text' | 'json'\n\nexport interface TheSeamQuillEditorConfig {\n /**\n * The format of the text inside the editor.\n *\n * @default 'html'\n */\n format: TheSeamQuillInputFormat\n\n /** @default 'snow' */\n theme?: string\n\n /**\n * Used to set custom config for built-in and add-on modules.\n *\n * See `SEAM_QUILL_MODULES_DEFAULT` for default value.\n */\n modules?: TheSeamQuillModules\n\n /**\n * Console level for debug messages.\n *\n * @default `warn`\n */\n debug?: 'warn' | 'log' | 'error' | false\n\n /**\n * List of formats allowed in editor.\n *\n * See `SEAM_QUILL_FORMATS_DEFAULT` for default value.\n *\n * NOTE: Adding or removing a value will enable/disable that format\n * in the editor, but has no effect on the toolbar buttons.\n * To modify the toolbar display, update `modules.toolbar`.\n */\n formats?: TheSeamQuillStyleFormat[] | null\n\n /** @default 'top' */\n customToolbarPosition: 'top' | 'bottom'\n\n /**\n * When `true`, runs the control value through Angular's DOM sanitizer\n * before setting the value.\n *\n * @default false\n */\n sanitize: boolean\n\n /** Custom css styles to add to the `.ql-container` element. */\n styles?: { [key: string]: string } | null\n\n /**\n * When `false`, user interactions in the toolbar will emit even\n * if the editor is marked as `readOnly`. This allows the user to\n * make some formatting changes (e.g. creating a list) to a value\n * that should be disabled.\n *\n * @default true.\n */\n strict: boolean\n\n /**\n * An element or selector that specifies the scrolling element of the editor.\n *\n * Default scrollingContainer is the `.ql-editor` element.\n */\n scrollingContainer?: HTMLElement | string | null\n\n /**\n * An element or selector that specifies the confining element of the editor.\n *\n * Default boundary container is the document's `body` element.\n */\n bounds?: HTMLElement | string\n\n /**\n * Defines custom formats for the editor. Can be used to overwrite existing options.\n *\n * TODO: Research this more.\n */\n customOptions: CustomOption[]\n\n /**\n * Defines custom modules for the editor. Can be used to overwrite existing modules.\n *\n * TODO: Research this more.\n */\n customModules: CustomModule[]\n\n /**\n * When `user`, only change events from the user will trigger a model change.\n * This is the default behavior, and is preferred.\n *\n * Changing to `all` is not recommended.\n */\n trackChanges?: 'user' | 'all'\n\n /**\n * When `true`, preserves duplicated whitespaces.\n *\n * @default false\n */\n preserveWhitespace: boolean\n\n /** Custom classes to add to the `.ql-container` element. */\n classes?: string\n\n /**\n * When `true`, trims leading/trailing newlines when validation is run.\n *\n * @default false\n */\n trimOnValidation: boolean\n\n /**\n * Sets a placeholder for the link input in the hyperlink form.\n *\n * @default 'https://quilljs.com'\n */\n linkPlaceholder?: string\n\n /**\n * When `true`, does a basic compare (using JSON.stringify) between the old\n * and new value on `writeValue()`. If the values are the same, it skips the update.\n *\n * @default false\n */\n compareValues: boolean\n\n /**\n * When `true`, skips the update for null values on `writeValue()`.\n *\n * @default false\n */\n filterNull: boolean\n\n /**\n * Debounces `onContentChanged()`, `onEditorChanged()`, `ngModel` and form control `valueChange()`.\n *\n * Defaults to `undefined`, so changes always emit immediately.\n *\n * @default undefined\n */\n debounceTime?: number\n\n /**\n * @deprecated The `ngx-quill` library doesn't accurately handle undefined\n * inputs, and the default `valueGetter` function is impossible to reference here,\n * so this config option is not used.\n *\n * Defines custom logic for reading the html value of the editor.\n */\n valueGetter?: (\n quillEditor: QuillType,\n editorElement: HTMLElement\n ) => string | any\n\n /**\n * @deprecated The `ngx-quill` library doesn't accurately handle undefined\n * inputs, and the default `valueSetter` function is impossible to reference here,\n * so this config option is not used.\n *\n * Defines custom logic for setting the html value of the editor.\n */\n valueSetter?: (quillEditor: QuillType, value: any) => any\n}\n\nexport type TheSeamCharacterCounterFn = (\n value: string,\n format: TheSeamQuillInputFormat | undefined\n) => number\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuillModule } from 'ngx-quill';\nimport { RichTextComponent } from './rich-text/rich-text.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [\n RichTextComponent,\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n QuillModule\n ],\n exports: [\n RichTextComponent,\n ]\n})\nexport class TheSeamRichTextModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-rich-text.mjs","sources":["../../../projects/ui-common/rich-text/utils/utils.ts","../../../projects/ui-common/rich-text/rich-text/rich-text.component.ts","../../../projects/ui-common/rich-text/rich-text/rich-text.component.html","../../../projects/ui-common/rich-text/utils/models.ts","../../../projects/ui-common/rich-text/rich-text.module.ts","../../../projects/ui-common/rich-text/theseam-ui-common-rich-text.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\"\nimport { QuillToolbarConfig } from \"ngx-quill\"\nimport { TheSeamQuillModules, TheSeamQuillStyleFormat, TheSeamQuillEditorConfig, TheSeamQuillMentionMenuOption, TheSeamQuillInputFormat, TheSeamQuillMentionOptions, TheSeamQuillMentionSourceFn, TheSeamQuillMentionSearchFn, TheSeamCharacterCounterFn, TheSeamQuillMentionMenuItem } from \"./models\"\nimport { isNullOrUndefined, notNullOrUndefined, notNullOrUndefinedOrEmpty } from \"@theseam/ui-common/utils\"\n\nexport const HTML_ENTITY_REGEX = /<[^>]+>/gm\n\nexport const THESEAM_QUILL_TOOLBAR_OPTIONS_DEFAULT: QuillToolbarConfig = [\n ['bold', 'italic', 'underline', 'strike'],\n [{ header: [0, 1, 2, 3, 4, 5] }],\n [{ list: 'ordered' }, { list: 'bullet' }],\n [{ align: [] }],\n ['link'],\n ['clean'],\n]\n\nexport const THESEAM_QUILL_MENTION_OPTIONS_DEFAULT: Partial<TheSeamQuillMentionOptions> = {\n spaceAfterInsert: false,\n positioningStrategy: 'fixed',\n dataAttributes: [ 'type' ]\n}\n\nexport const THESEAM_QUILL_MODULES_DEFAULT: TheSeamQuillModules = {\n toolbar: THESEAM_QUILL_TOOLBAR_OPTIONS_DEFAULT\n}\n\nexport const THESEAM_QUILL_FORMATS_DEFAULT: TheSeamQuillStyleFormat[] = [\n 'align',\n 'bold',\n 'header',\n 'indent',\n 'italic',\n 'link',\n 'list',\n 'size',\n 'strike',\n 'underline',\n 'mention'\n]\n\nexport const THESEAM_QUILL_EDITOR_CONFIG_DEFAULT: TheSeamQuillEditorConfig = {\n format: 'html',\n modules: THESEAM_QUILL_MODULES_DEFAULT,\n formats: THESEAM_QUILL_FORMATS_DEFAULT,\n linkPlaceholder: 'https://google.com',\n customToolbarPosition: 'top',\n sanitize: false,\n strict: true,\n customOptions: [],\n customModules: [],\n preserveWhitespace: false,\n trimOnValidation: false,\n compareValues: false,\n filterNull: false\n}\n\nexport const THESEAM_QUILL_EDITOR_CONFIG = new InjectionToken<TheSeamQuillEditorConfig>('TheSeamQuillEditorConfig')\n\nexport const defaultHtmlCharacterCounterFn: TheSeamCharacterCounterFn = (value: string, format: TheSeamQuillInputFormat | undefined): number => {\n if (format === 'html') {\n return value.replace(HTML_ENTITY_REGEX, ' ').replace(/\\s\\s+/g, ' ').trim().length\n }\n else if (format === 'text') {\n return value.replace(/\\s\\s+/g, ' ').trim().length\n }\n else {\n console.warn(`Format ${format} not supported!`)\n return 0\n }\n}\n\nexport function isMentionMenuOption(value: TheSeamQuillMentionMenuItem | undefined): value is TheSeamQuillMentionMenuOption {\n if (isNullOrUndefined(value) || typeof value !== 'object') {\n return false\n }\n\n return Object.prototype.hasOwnProperty.call(value, 'id')\n}\n\nexport const defaultMentionSearchFn: TheSeamQuillMentionSearchFn = (source: TheSeamQuillMentionMenuItem[], textAfter: string, mentionChar: string) => {\n return source.filter(u => {\n if (!isMentionMenuOption(u) || u.searchIgnore === true) {\n return true\n }\n\n return u.value.toLowerCase().includes(textAfter.toLowerCase())\n })\n}\n\nexport const defaultMentionRenderListFn: TheSeamQuillMentionSourceFn = (source: TheSeamQuillMentionMenuItem[], searchFn: TheSeamQuillMentionSearchFn, emptyListItem: TheSeamQuillMentionMenuItem | undefined, textAfter: string, renderList: (list: any[], searchTerm: string) => any, mentionChar: string) => {\n let list = searchFn(source, textAfter, mentionChar)\n\n if (list.length === 0 && notNullOrUndefined(emptyListItem)) {\n list.push(emptyListItem)\n }\n else {\n let reduceIdx = 0\n list = list.reduce((acc, mention) => {\n const previousMenuItem = acc[reduceIdx - 1]\n const previousMenuItemGroupName = isMentionMenuOption(previousMenuItem) ? previousMenuItem.groupName : undefined\n if (isMentionMenuOption(mention)\n && notNullOrUndefinedOrEmpty(mention.groupName)\n && mention.groupName !== previousMenuItemGroupName\n ) {\n acc.push({\n value: mention.groupName,\n disabled: true,\n type: 'groupName'\n })\n\n reduceIdx++\n }\n\n if (!isMentionMenuOption(mention)) {\n mention.disabled = true\n }\n\n acc.push(mention)\n reduceIdx++\n\n return acc\n }, <TheSeamQuillMentionMenuItem[]>[] satisfies TheSeamQuillMentionMenuItem[])\n }\n\n renderList(list, textAfter)\n}\n\n// Keeping this as an example for a custom menu item.\n// There doesn't appear to be a better way of passing in a custom template.\n// export const defaultMentionRenderItem = (item: TheSeamQuillMentionListItem) => {\n // if (item.type === 'groupName') {\n // const text = document.createElement('div')\n // text.setAttribute('class', 'small text-black-50')\n // text.innerText = item.value\n\n // return text.outerHTML\n // }\n // else if (item.type === 'divider') {\n // const div = document.createElement('hr')\n // div.setAttribute('class', 'my-2')\n // return div.outerHTML\n // }\n // else {\n // return item.value\n // }\n// }\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, Component, EventEmitter, HostListener, Inject, Input, OnDestroy, OnInit, Optional, Output, Provider, Renderer2, TemplateRef, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Blur, ContentChange, EditorChangeContent, EditorChangeSelection, Focus, QuillEditorComponent, SelectionChange } from 'ngx-quill';\nimport { Delta } from 'quill';\nimport 'quill-mention';\nimport { BehaviorSubject, Observable, Subject, combineLatest, filter, lastValueFrom, map, of, shareReplay, startWith, switchMap, take, tap } from 'rxjs';\n\nimport { isNullOrUndefined, notNullOrUndefined } from '@theseam/ui-common/utils';\nimport { TheSeamCharacterCounterFn, TheSeamQuillEditorConfig, TheSeamQuillMentionMenuItem, TheSeamQuillMentionMenuOption, TheSeamQuillMentionSearchFn, TheSeamQuillMentionSourceFn, TheSeamQuillModules } from '../utils/models';\nimport { THESEAM_QUILL_EDITOR_CONFIG, THESEAM_QUILL_EDITOR_CONFIG_DEFAULT, THESEAM_QUILL_MENTION_OPTIONS_DEFAULT, defaultHtmlCharacterCounterFn, defaultMentionRenderListFn, defaultMentionSearchFn, isMentionMenuOption } from '../utils/utils';\n\nexport const RICH_TEXT_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichTextComponent),\n multi: true\n}\n\n@Component({\n selector: 'seam-rich-text',\n templateUrl: './rich-text.component.html',\n styleUrls: ['./rich-text.component.scss'],\n providers: [\n RICH_TEXT_VALUE_ACCESSOR\n ]\n})\nexport class RichTextComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {\n\n onChange: any\n onTouched: any\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value') val: string | undefined\n\n formControl = new FormControl<string | null>(null)\n\n @Input()\n get required(): boolean {\n return this._required\n }\n set required(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._required = coerceBooleanProperty(value)\n }\n }\n private _required = false\n\n /** @default '' (empty string) */\n @Input()\n get placeholder(): string {\n return this._placeholder\n }\n set placeholder(value: string | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._placeholder = value\n }\n }\n private _placeholder = ''\n\n /**\n * Initial rows visible in text area, set using `height` and `minHeight`.\n *\n * NOTE: Resizable editors will not be able to size below the height calculated from this value.\n *\n * @default 5\n */\n @Input()\n get rows(): number {\n return this._rows\n }\n set rows(value: number | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._rows = value\n\n this._pollCalculatedRowHeight.next()\n }\n }\n private _rows = 5\n\n /**\n * When `true`, text area can be resized vertically.\n *\n * @default true\n */\n @Input()\n get resizable(): boolean {\n return this._resizable\n }\n set resizable(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._resizable = coerceBooleanProperty(value)\n }\n }\n private _resizable = true\n\n /** @default false */\n get readOnly(): boolean {\n return this._readOnly\n }\n set readOnly(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._readOnly = coerceBooleanProperty(value)\n }\n }\n private _readOnly = false\n\n // TODO: fix bug where initial html value is rendered in plain text\n /**\n * When `true`, overrides all other provided settings to present the editor\n * as a standard textbox.\n *\n * NOTE: For the moment, `<p></p>` tags are still allowed, triggered by the `Enter` key.\n * https://github.com/slab/quill/issues/1432\n *\n * @default false\n */\n @Input()\n get disableRichText(): boolean {\n return this._disableRichText\n }\n set disableRichText(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._disableRichText = coerceBooleanProperty(value)\n\n this._updateQuillConfig()\n }\n }\n private _disableRichText = false\n\n /**\n * When `true`, displays a character counter at the bottom of the editor.\n * Character counter text is determined by values provided in `minLength`\n * and `maxLength`.\n *\n * The default count algorithm strips out html entities and replaces them\n * with spaces to get the string length. To override this behavior, pass\n * a custom function to `characterCounterFn`.\n *\n * To override default character counter display, pass a custom template to `characterCountTpl`.\n *\n * @default false\n */\n @Input()\n get displayCharacterCounter(): boolean {\n return this._displayCharacterCounter\n }\n set displayCharacterCounter(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._displayCharacterCounter = coerceBooleanProperty(value)\n }\n }\n private _displayCharacterCounter = false\n\n @Input()\n get minLength(): number | undefined {\n return this._minLength\n }\n set minLength(value: number | undefined) {\n if (notNullOrUndefined(value)) {\n this._minLength = value\n }\n }\n private _minLength: number | undefined\n\n @Input()\n get maxLength(): number | undefined {\n return this._maxLength\n }\n set maxLength(value: number | undefined) {\n if (notNullOrUndefined(value)) {\n this._maxLength = value\n }\n }\n private _maxLength: number | undefined\n\n /**\n * Set to override default character counter display.\n *\n * Template context includes variables `minLength`, `maxLength`, and `characterCount`.\n */\n @Input()\n get characterCounterTpl(): TemplateRef<any> | null {\n return this._characterCounterTpl\n }\n set characterCounterTpl(value) {\n if (notNullOrUndefined(value)) {\n this._characterCounterTpl = value\n }\n }\n private _characterCounterTpl: TemplateRef<any> | null = null\n\n /**\n * Set to override default counter function, which strips html entities and\n * replaces them with a space.\n */\n @Input() get characterCounterFn(): TheSeamCharacterCounterFn {\n return this._characterCounterFn\n }\n set characterCounterFn(value: TheSeamCharacterCounterFn | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._characterCounterFn = value\n }\n }\n private _characterCounterFn = defaultHtmlCharacterCounterFn\n\n /**\n * If `true`, component will configure the Quill editor with the quill-mentions extension\n * and listen for values passed to `mentionItems` to populate the mentions menu.\n *\n * @default false\n */\n @Input()\n get useMentions(): boolean {\n return this._useMentions\n }\n set useMentions(value: boolean | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._useMentions = coerceBooleanProperty(value)\n\n this._updateQuillConfig()\n }\n }\n private _useMentions: boolean = false\n\n /**\n * List of users, user groups, or other entities to display in mentions menu.\n * Minimum required properties are `id` (unique) and `value`, which acts as the label.\n *\n * By default, the menu is triggered by typing the `@` symbol into the text area.\n */\n @Input()\n get mentionItems(): TheSeamQuillMentionMenuItem[] | null | undefined {\n return this._mentionItems.value\n }\n set mentionItems(value: TheSeamQuillMentionMenuItem[] | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionItems.next(value)\n }\n }\n private _mentionItems = new BehaviorSubject<TheSeamQuillMentionMenuItem[] | null | undefined>(undefined)\n public mentionItems$ = this._mentionItems.asObservable().pipe(\n filter(mentions => notNullOrUndefined(mentions) && mentions.length > 0),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n /**\n * Set to override default search function when user is typing a mention.\n */\n @Input()\n get mentionSearchFn(): TheSeamQuillMentionSearchFn {\n return this._mentionSearchFn\n }\n set mentionSearchFn(value: TheSeamQuillMentionSearchFn | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionSearchFn = value\n }\n }\n private _mentionSearchFn: TheSeamQuillMentionSearchFn = defaultMentionSearchFn\n\n /**\n * Set to override default render function for mentions list.\n *\n * Function should call `renderList`.\n */\n @Input()\n get mentionRenderListFn(): TheSeamQuillMentionSourceFn {\n return this._mentionRenderListFn\n }\n set mentionRenderListFn(value: TheSeamQuillMentionSourceFn | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionRenderListFn = value\n }\n }\n private _mentionRenderListFn: TheSeamQuillMentionSourceFn = defaultMentionRenderListFn\n\n /**\n * Set to override default text shown while mention items are loading.\n *\n * @default 'Loading...'\n */\n @Input()\n get mentionListLoadingText(): string {\n return this._mentionListLoadingText\n }\n set mentionListLoadingText(value: string | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionListLoadingText = value\n }\n }\n private _mentionListLoadingText: string = 'Loading...'\n\n /**\n * Set to override default text shown when a mention search returns no items.\n *\n * @default 'No matches found.'\n */\n @Input()\n get mentionListEmptyText(): string {\n return this._mentionListEmptyText\n }\n set mentionListEmptyText(value: string | null | undefined) {\n if (notNullOrUndefined(value)) {\n this._mentionListEmptyText = value\n }\n }\n private _mentionListEmptyText: string = 'No matches found.'\n\n get mentionListEmptyItem(): TheSeamQuillMentionMenuOption {\n return {\n id: 'undefined',\n value: this.mentionListEmptyText,\n disabled: true,\n emptyList: true\n }\n }\n\n @Output() quillEditorCreated: EventEmitter<any> = new EventEmitter()\n @Output() quillEditorChanged: EventEmitter<EditorChangeContent | EditorChangeSelection> = new EventEmitter()\n @Output() quillContentChanged: EventEmitter<ContentChange> = new EventEmitter()\n @Output() quillSelectionChanged: EventEmitter<SelectionChange> = new EventEmitter()\n @Output() quillFocus: EventEmitter<Focus> = new EventEmitter()\n @Output() quillBlur: EventEmitter<Blur> = new EventEmitter()\n\n @Output() mentionsUpdated: EventEmitter<TheSeamQuillMentionMenuOption[]> = new EventEmitter()\n\n @ViewChild('quillEditor')\n get quillEditor(): QuillEditorComponent | undefined {\n return this._quillEditor\n }\n set quillEditor(value: QuillEditorComponent | undefined) {\n this._quillEditor = value\n\n // setTimeout because full html isn't available until the next tick\n setTimeout(() => {\n this._pollCalculatedRowHeight.next()\n }, 0)\n }\n private _quillEditor: QuillEditorComponent | undefined\n\n @ViewChild('characterCounter') defaultCharacterCounterTpl: TemplateRef<any> | undefined\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent) {\n if (event.code === 'Escape') {\n const qlEditor = this._quillEditor?.editorElem?.querySelector('.ql-editor')\n if (notNullOrUndefined(qlEditor) && qlEditor === document.activeElement && qlEditor instanceof HTMLElement) {\n event.preventDefault()\n event.stopImmediatePropagation()\n qlEditor.blur()\n }\n }\n }\n\n private _isWritingValue = false\n\n private _pollCalculatedRowHeight = new Subject<void>()\n\n private _configSet = new BehaviorSubject<boolean>(false)\n public configSet$ = this._configSet.asObservable()\n\n private _stylesSet = new BehaviorSubject<boolean>(false)\n private _templateSet = new BehaviorSubject<boolean>(false)\n\n public initialized$: Observable<boolean>\n\n public characterCount$: Observable<number>\n\n private _config = new BehaviorSubject<TheSeamQuillEditorConfig | undefined>(undefined)\n public config$ = this._config.asObservable()\n\n private _selectedMentions = new BehaviorSubject<TheSeamQuillMentionMenuOption[]>([])\n public selectedMentions$ = this._selectedMentions.asObservable()\n\n constructor(\n private readonly _renderer: Renderer2,\n @Optional() @Inject(THESEAM_QUILL_EDITOR_CONFIG) private _customConfig?: TheSeamQuillEditorConfig\n ) {\n this.initialized$ = combineLatest([\n this._configSet.asObservable(),\n this._stylesSet.asObservable(),\n this._templateSet.asObservable(),\n ]).pipe(\n map(sets => sets.findIndex(s => !s) === -1)\n )\n\n this.characterCount$ = this.initialized$.pipe(\n filter(i => i),\n switchMap(() => {\n if (notNullOrUndefined(this.formControl)) {\n return this.formControl.valueChanges.pipe(\n startWith(this.formControl.value),\n map(v => this.characterCounterFn(v || '' as string, this._config.value?.format)),\n )\n }\n\n return of(0)\n })\n )\n\n this.selectedMentions$.pipe(\n tap(mentions => this.mentionsUpdated.emit(mentions))\n ).subscribe()\n }\n\n ngOnInit(): void {\n // TODO: test this more\n // ignore quill initial valueChange event, to keep functionality in line with other inputs\n let initialEmitComplete = false\n this._configSet.pipe(\n filter(s => s),\n switchMap(() => this.formControl.valueChanges.pipe(\n // skip(1),\n take(1),\n tap(() => initialEmitComplete = true)\n ))\n ).subscribe()\n\n this.formControl.valueChanges.pipe(\n filter(() => !this._isWritingValue && initialEmitComplete),\n tap(value => this.value = value)\n ).subscribe()\n\n this._pollCalculatedRowHeight.asObservable().pipe(\n tap(() => {\n this._stylesSet.next(false)\n\n const calculatedRowsHeight = `${this.rows * 1.5}rem`\n\n if (notNullOrUndefined(this.rows) && notNullOrUndefined(this._quillEditor)) {\n const editorEl = this._quillEditor.elementRef.nativeElement.querySelector('.ql-editor')\n\n if (notNullOrUndefined(editorEl)) {\n this._renderer.setStyle(editorEl, 'height', calculatedRowsHeight)\n this._renderer.setStyle(editorEl, 'min-height', calculatedRowsHeight)\n }\n }\n\n this._stylesSet.next(true)\n })\n ).subscribe()\n\n this._buildQuillConfig()\n }\n\n ngAfterViewInit(): void {\n if (isNullOrUndefined(this.characterCounterTpl)) {\n this.characterCounterTpl = this.defaultCharacterCounterTpl || null\n }\n\n this._templateSet.next(true)\n }\n\n ngOnDestroy(): void {\n // hacky way to ensure mentions menu gets destroyed when component is destroyed\n const mentionModule = this._quillEditor?.quillEditor.getModule('mention')\n const hideMentionList = mentionModule?.hideMentionList\n if (hideMentionList && typeof hideMentionList === 'function') {\n hideMentionList.call(mentionModule)\n }\n }\n\n private _buildQuillConfig() {\n this._configSet.next(false)\n\n const config: TheSeamQuillEditorConfig = {\n ...THESEAM_QUILL_EDITOR_CONFIG_DEFAULT\n }\n\n if (this.disableRichText) {\n config.format = 'text'\n config.formats = []\n config.modules = {\n toolbar: false\n }\n }\n else {\n config.format = this._getConfigOrDefault('format')\n config.formats = this._getConfigOrDefault('formats')\n config.modules = {\n ...this._getConfigOrDefault('modules')\n }\n }\n\n if (this.useMentions) {\n const mentionModules: TheSeamQuillModules = {\n ...config.modules,\n mention: {\n ...THESEAM_QUILL_MENTION_OPTIONS_DEFAULT,\n renderLoading: () => this.mentionListLoadingText,\n source: async (searchTerm: string, renderList: (list: any[], searchTerm: string) => void, mentionChar: string) => {\n // this function is called every time the menu is triggered,\n // so it will always have the latest value from mentionItems$\n const mentionsAsync = await lastValueFrom(this.mentionItems$.pipe(take(1)))\n\n if (notNullOrUndefined(mentionsAsync)) {\n this.mentionRenderListFn(mentionsAsync, this.mentionSearchFn, this.mentionListEmptyItem, searchTerm, renderList, mentionChar)\n }\n },\n ...config.modules?.mention,\n }\n }\n\n config.modules = mentionModules\n }\n\n config.theme = this._getConfigOrDefault('theme')\n config.debug = this._getConfigOrDefault('debug')\n config.customToolbarPosition = this._getConfigOrDefault('customToolbarPosition')\n config.sanitize = this._getConfigOrDefault('sanitize')\n config.styles = this._getConfigOrDefault('styles')\n config.strict = this._getConfigOrDefault('strict')\n config.scrollingContainer = this._getConfigOrDefault('scrollingContainer')\n config.bounds = this._getConfigOrDefault('bounds')\n config.customOptions = this._getConfigOrDefault('customOptions')\n config.customModules = this._getConfigOrDefault('customModules')\n config.trackChanges = this._getConfigOrDefault('trackChanges')\n config.preserveWhitespace = this._getConfigOrDefault('preserveWhitespace')\n config.classes = this._getConfigOrDefault('classes')\n config.trimOnValidation = this._getConfigOrDefault('trimOnValidation')\n config.linkPlaceholder = this._getConfigOrDefault('linkPlaceholder')\n config.compareValues = this._getConfigOrDefault('compareValues')\n config.filterNull = this._getConfigOrDefault('filterNull')\n config.debounceTime = this._getConfigOrDefault('debounceTime')\n\n this._config.next(config)\n\n // setTimeout bc ngx-quill library doesn't listen for input changes,\n // so we must destroy and create the component each time config is updated\n setTimeout(() => {\n this._configSet.next(true)\n }, 0)\n }\n\n private _getConfigOrDefault<K extends keyof TheSeamQuillEditorConfig>(prop: K): TheSeamQuillEditorConfig[K] {\n if (this._customConfig && Object.prototype.hasOwnProperty.call(this._customConfig, prop)) {\n return this._customConfig[prop]\n }\n return THESEAM_QUILL_EDITOR_CONFIG_DEFAULT[prop]\n }\n\n private _updateQuillConfig() {\n if (this._configSet.value) {\n this._buildQuillConfig()\n }\n }\n\n // Not usable, bc config has to be set immediately, potentially before mentions populate.\n // To set customDataAttributes, provide a custom config.\n // private _getCustomDataAttributes(mentions: TheSeamQuillMentionMenuOption[]): string[] {\n // return mentions.reduce((acc, mention) => {\n // const keys = Object.keys(mention)\n\n // keys.forEach(key => {\n // if (acc.findIndex(a => a === key) === -1) {\n // acc.push(key)\n // }\n // })\n\n // return acc\n // }, <string[]>[] satisfies string[])\n // }\n\n get value(): string | undefined | null {\n return this._value\n }\n set value(value: string | undefined | null) {\n this._value = value\n\n if (this.onChange) { this.onChange(value) }\n if (this.onTouched) { this.onTouched() }\n }\n private _value: string | undefined | null\n\n writeValue(value: any): void {\n this._isWritingValue = true\n\n this.formControl.setValue(value)\n this.value = value\n\n this._isWritingValue = false\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.readOnly = isDisabled\n }\n\n _onEditorCreated(event: any) {\n this.quillEditorCreated.emit(event)\n }\n\n _onEditorChanged(event: EditorChangeContent | EditorChangeSelection) {\n this.quillEditorChanged.emit(event)\n }\n\n _onContentChanged(event: ContentChange) {\n this.quillContentChanged.emit(event)\n\n this._updateMentionsFromDelta(event.content)\n }\n\n _onSelectionChanged(event: SelectionChange) {\n this.quillSelectionChanged.emit(event)\n }\n\n _onFocus(event: Focus) {\n this.quillFocus.emit(event)\n }\n\n _onBlur(event: Blur) {\n this.quillBlur.emit(event)\n\n if (this.onTouched) {\n this.onTouched()\n }\n }\n\n /**\n * Hacky way to track mention inserts/deletes\n */\n private _updateMentionsFromDelta(content: Delta) {\n if (notNullOrUndefined(content.ops)) {\n const contentMentionIds = content.ops.map(o => o.insert?.mention?.id).filter(notNullOrUndefined)\n const selectedMentions = [ ...this._selectedMentions.value ]\n const mentionOptions = [ ...this._mentionItems.value || [] ]\n\n const newMentions: TheSeamQuillMentionMenuOption[] = contentMentionIds.reduce((acc, mentionId) => {\n const insertMention = mentionOptions.find(m => isMentionMenuOption(m) && m.id === mentionId)\n\n if (notNullOrUndefined(insertMention)) {\n acc.push(insertMention)\n }\n else {\n console.warn('Mention addition failed! Selected mention option not found:', mentionId)\n }\n\n return acc\n }, <TheSeamQuillMentionMenuOption[]>[])\n\n let emitUpdate = false\n if (selectedMentions.length !== newMentions.length) {\n // if the length has changed, we know an update occurred\n emitUpdate = true\n }\n else {\n // otherwise, test ids for old and new items to see if we need to emit a change\n const selectedMentionIds = this._selectedMentions.value.map(m => m.id)\n const newMentionIds = newMentions.map(m => m.id)\n\n if (\n selectedMentionIds.findIndex(m => !newMentionIds.includes(m)) !== -1 ||\n newMentionIds.findIndex(m => !selectedMentionIds.includes(m)) !== -1\n ) {\n emitUpdate = true\n }\n }\n\n if (emitUpdate) {\n this._selectedMentions.next(newMentions)\n }\n }\n }\n}\n","<div class=\"editor\" *ngIf=\"configSet$ | async\" [class.initializing]=\"!(initialized$ | async)\">\n <ng-container *ngIf=\"config$ | async as config\">\n <quill-editor\n #quillEditor\n seamInput\n [class.disabled]=\"readOnly\"\n [attr.disabled]=\"readOnly\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly\"\n [required]=\"required\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [format]=\"config.format\"\n [theme]=\"config.theme\"\n [modules]=\"config.modules\"\n [debug]=\"config.debug\"\n [formats]=\"config.formats\"\n [customToolbarPosition]=\"config.customToolbarPosition\"\n [sanitize]=\"config.sanitize\"\n [styles]=\"config.styles\"\n [strict]=\"config.strict\"\n [scrollingContainer]=\"config.scrollingContainer\"\n [bounds]=\"config.bounds\"\n [customOptions]=\"config.customOptions\"\n [customModules]=\"config.customModules\"\n [trackChanges]=\"config.trackChanges\"\n [preserveWhitespace]=\"config.preserveWhitespace\"\n [classes]=\"config.classes\"\n [trimOnValidation]=\"config.trimOnValidation\"\n [linkPlaceholder]=\"config.linkPlaceholder\"\n [compareValues]=\"config.compareValues\"\n [filterNull]=\"config.filterNull\"\n [debounceTime]=\"config.debounceTime\"\n [class.can-resize]=\"resizable\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\"></quill-editor>\n <ng-container *ngIf=\"displayCharacterCounter\">\n <ng-container\n [ngTemplateOutlet]=\"characterCounterTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: characterCount$ | async, minLength: minLength, maxLength: maxLength, characterCount: characterCount$ | async }\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #characterCounter let-implicit let-minLength=\"minLength\" let-maxLength=\"maxLength\" let-characterCount=\"characterCount\">\n <div class=\"small text-black-50 text-right\">\n <ng-container *ngIf=\"characterCount || characterCount === 0\">\n Character Count:\n <span [class.text-danger]=\"characterCount && ((maxLength && characterCount > maxLength) || (minLength && characterCount < minLength))\">\n {{ characterCount | number }}\n </span>\n <ng-container *ngIf=\"maxLength\">\n / {{ maxLength }}\n </ng-container>\n <span *ngIf=\"minLength\" class=\"font-italic\">\n (minimum {{ minLength }} expected)\n </span>\n </ng-container>\n </div>\n</ng-template>\n","import { CustomModule, CustomOption, QuillModules } from 'ngx-quill'\nimport QuillType from 'quill'\n\nexport interface TheSeamQuillMentionMenuOption {\n /** Must be unique. */\n id: string\n\n /**\n * The value is used as the label for the mentions,\n * both in the text area and in the menu.\n */\n value: string\n\n /**\n * When `true`, this item will be included in the menu,\n * regardless of the search function applied.\n */\n searchIgnore?: boolean\n\n /**\n * If provided, will group items with the same `groupName`\n * under one header.\n */\n groupName?: string\n\n /** Any additional optional parameters */\n [key: string]: any\n}\n\nexport interface TheSeamQuillMentionMenuDivider {\n type: 'divider'\n disabled?: boolean\n}\n\nexport interface TheSeamQuillMentionMenuHeader {\n value: string\n type: 'groupName'\n disabled?: boolean\n}\n\nexport type TheSeamQuillMentionMenuItem = TheSeamQuillMentionMenuOption | TheSeamQuillMentionMenuDivider | TheSeamQuillMentionMenuHeader\n\nexport type TheSeamQuillMentionSearchFn = (\n source: TheSeamQuillMentionMenuItem[],\n textAfter: string,\n mentionChar: string\n) => TheSeamQuillMentionMenuItem[]\n\nexport type TheSeamQuillMentionSourceFn = (\n source: TheSeamQuillMentionMenuItem[],\n searchFn: TheSeamQuillMentionSearchFn,\n emptyListItem: TheSeamQuillMentionMenuItem | undefined,\n textAfter: string,\n renderList: (\n matches: {\n id: string\n value: string\n [key: string]: string | undefined\n }[],\n searchTerm: string\n ) => void,\n mentionChar: string\n) => void\n\n/**\n * Typed version of Options object, copied from quill-mention@v6.0.1 (typescript version)\n */\nexport interface TheSeamQuillMentionOptions {\n /**\n * Specifies which characters will cause the mention autocomplete to open\n * @default ['@']\n */\n mentionDenotationChars?: string[]\n\n /**\n * Whether to show the used denotation character in the mention item or not\n * @default true\n */\n showDenotationChar?: boolean\n\n /**\n * Allowed characters in search term triggering a search request using regular expressions. Can be a function that takes the denotationChar and returns a regex.\n * @default /^[a-zA-Z0-9_]*$/\n */\n allowedChars?: RegExp | ((char: string) => RegExp)\n\n /**\n * Minimum number of characters after the @ symbol triggering a search request\n * @default 0\n */\n minChars?: number\n\n /**\n * Maximum number of characters after the @ symbol triggering a search request\n * @default 31\n */\n maxChars?: number\n\n /**\n * Additional top offset of the mention container position\n * @default 2\n */\n offsetTop?: number\n\n /**\n * Additional left offset of the mention container position\n * @default 0\n */\n offsetLeft?: number\n\n /**\n * Whether or not the denotation character(s) should be isolated. For example, to avoid mentioning in an email.\n * @default false\n */\n isolateCharacter?: boolean\n\n /**\n * Only works if isolateCharacter is set to true. Whether or not the denotation character(s) can appear inline of the mention text. For example, to allow mentioning an email with the @ symbol as the denotation character.\n * @default false\n */\n allowInlineMentionChar?: boolean\n\n /**\n * When set to true, the mentions menu will be rendered above or below the quill container. Otherwise, the mentions menu will track the denotation character(s);\n * @default false\n */\n fixMentionsToQuill?: boolean\n\n /**\n * Options are 'normal' and 'fixed'. When 'fixed', the menu will be appended to the body and use fixed positioning. Use this if the menu is clipped by a parent element that's using `overflow:hidden\n * @default 'normal'\n */\n positioningStrategy?: 'normal' | 'fixed'\n\n /**\n * Options are 'bottom' and 'top'. Determines what the default orientation of the menu will be. Quill-mention will attempt to render the menu either above or below the editor. If 'top' is provided as a value, and there is not enough space above the editor, the menu will be rendered below. Vice versa, if there is not enough space below the editor, and 'bottom' is provided as a value (or no value is provided at all), the menu will be rendered above the editor.\n * @default 'bottom'\n */\n defaultMenuOrientation?: 'top' | 'bottom'\n\n /**\n * The name of the Quill Blot to be used for inserted mentions. A default implementation is provided named 'mention', which may be overridden with a custom blot.\n * @default 'mention'\n */\n blotName?: string\n\n /**\n * A list of data values you wish to be passed from your list data to the html node. (id, value, denotationChar, link, target are included by default).\n * @default ['id', 'value', 'denotationChar', 'link', 'target', 'disabled']\n */\n dataAttributes?: string[]\n\n /**\n * Link target for mentions with a link\n * @default '_blank'\n */\n linkTarget?: string\n\n /**\n * Style class to be used for list items (may be null)\n * @default 'ql-mention-list-item'\n */\n listItemClass?: string\n\n /**\n * Style class to be used for the mention list container (may be null)\n * @default 'ql-mention-list-container'\n */\n mentionContainerClass?: string\n\n /**\n * Style class to be used for the mention list (may be null)\n * @default 'ql-mention-list'\n */\n mentionListClass?: string\n\n /**\n * Whether or not insert 1 space after mention block in text\n * @default true\n */\n spaceAfterInsert?: boolean\n\n /**\n * An array of keyboard key codes that will trigger the select action for the mention dropdown. Default is ENTER key. See this reference for a list of numbers for each keyboard key.\n * @default [13]\n */\n selectKeys?: (string | number | string)[]\n\n /**\n * Required callback function to handle the search term and connect it to a data source for matches. The data source can be a local source or an AJAX request.\n * The callback should call renderList(matches, searchTerm); with matches of JSON Objects in an array to show the result for the user. The JSON Objects should have id and value but can also have other values to be used in renderItem for custom display.\n * @param textAfter\n * @param render\n * @param mentionChar\n * @returns\n */\n source: (\n textAfter: string,\n renderList: (\n matches: {\n id: string\n value: string\n [key: string]: string | undefined\n }[],\n searchTerm: string\n ) => void,\n mentionChar: string\n ) => void\n\n /**\n * Callback when mention dropdown is open.\n * @returns\n */\n onOpen?: () => boolean\n\n /**\n * Callback before the DOM of mention dropdown is removed.\n * @returns\n */\n onBeforeClose?: () => boolean\n\n /**\n * Callback when mention dropdown is closed.\n * @returns\n */\n onClose?: () => boolean\n\n /**\n * A function that gives you control over how matches from source are displayed. You can use this function to highlight the search term or change the design with custom HTML. This function will need to return either a string possibly containing unsanitized user content, or a class implementing the Node interface which will be treated as a sanitized DOM node.\n * @param item\n * @param searchTerm\n * @returns\n */\n renderItem?: (\n item: { id: string; value: string; [key: string]: unknown },\n searchTerm: string\n ) => string | HTMLElement\n\n /**\n * A function that returns the HTML for a loading message during async calls from source. The function will need to return either a string possibly containing unsanitized user content, or a class implementing the Node interface which will be treated as a sanitized DOM node. The default functions returns null to prevent a loading message.\n * @returns\n */\n renderLoading?: () => string | HTMLElement | null\n\n /**\n * Callback for a selected item. When overriding this method, insertItem should be used to insert item to the editor. This makes async requests possible.\n * @param item\n * @param insertItem\n */\n onSelect?: (\n item: DOMStringMap,\n insertItem: (\n data: Record<string, unknown>,\n programmaticInsert?: boolean,\n overriddenOptions?: object\n ) => void\n ) => void\n}\n\nexport interface TheSeamQuillModules extends QuillModules {\n mention?: Partial<TheSeamQuillMentionOptions>\n}\n\nexport const THESEAM_QUILL_FORMATS = [\n 'align',\n 'background',\n 'blockquote',\n 'bold',\n 'code-block',\n 'code',\n 'color',\n 'direction',\n 'font',\n 'header',\n 'image',\n 'indent',\n 'italic',\n 'link',\n 'list',\n 'script',\n 'size',\n 'strike',\n 'underline',\n 'video',\n 'mention'\n] as const\n\nexport type TheSeamQuillStyleFormat = (typeof THESEAM_QUILL_FORMATS)[number]\n\nexport type TheSeamQuillInputFormat = 'object' | 'html' | 'text' | 'json'\n\nexport interface TheSeamQuillEditorConfig {\n /**\n * The format of the text inside the editor.\n *\n * @default 'html'\n */\n format: TheSeamQuillInputFormat\n\n /** @default 'snow' */\n theme?: string\n\n /**\n * Used to set custom config for built-in and add-on modules.\n *\n * See `SEAM_QUILL_MODULES_DEFAULT` for default value.\n */\n modules?: TheSeamQuillModules\n\n /**\n * Console level for debug messages.\n *\n * @default `warn`\n */\n debug?: 'warn' | 'log' | 'error' | false\n\n /**\n * List of formats allowed in editor.\n *\n * See `SEAM_QUILL_FORMATS_DEFAULT` for default value.\n *\n * NOTE: Adding or removing a value will enable/disable that format\n * in the editor, but has no effect on the toolbar buttons.\n * To modify the toolbar display, update `modules.toolbar`.\n */\n formats?: TheSeamQuillStyleFormat[] | null\n\n /** @default 'top' */\n customToolbarPosition: 'top' | 'bottom'\n\n /**\n * When `true`, runs the control value through Angular's DOM sanitizer\n * before setting the value.\n *\n * @default false\n */\n sanitize: boolean\n\n /** Custom css styles to add to the `.ql-container` element. */\n styles?: { [key: string]: string } | null\n\n /**\n * When `false`, user interactions in the toolbar will emit even\n * if the editor is marked as `readOnly`. This allows the user to\n * make some formatting changes (e.g. creating a list) to a value\n * that should be disabled.\n *\n * @default true.\n */\n strict: boolean\n\n /**\n * An element or selector that specifies the scrolling element of the editor.\n *\n * Default scrollingContainer is the `.ql-editor` element.\n */\n scrollingContainer?: HTMLElement | string | null\n\n /**\n * An element or selector that specifies the confining element of the editor.\n *\n * Default boundary container is the document's `body` element.\n */\n bounds?: HTMLElement | string\n\n /**\n * Defines custom formats for the editor. Can be used to overwrite existing options.\n *\n * TODO: Research this more.\n */\n customOptions: CustomOption[]\n\n /**\n * Defines custom modules for the editor. Can be used to overwrite existing modules.\n *\n * TODO: Research this more.\n */\n customModules: CustomModule[]\n\n /**\n * When `user`, only change events from the user will trigger a model change.\n * This is the default behavior, and is preferred.\n *\n * Changing to `all` is not recommended.\n */\n trackChanges?: 'user' | 'all'\n\n /**\n * When `true`, preserves duplicated whitespaces.\n *\n * @default false\n */\n preserveWhitespace: boolean\n\n /** Custom classes to add to the `.ql-container` element. */\n classes?: string\n\n /**\n * When `true`, trims leading/trailing newlines when validation is run.\n *\n * @default false\n */\n trimOnValidation: boolean\n\n /**\n * Sets a placeholder for the link input in the hyperlink form.\n *\n * @default 'https://quilljs.com'\n */\n linkPlaceholder?: string\n\n /**\n * When `true`, does a basic compare (using JSON.stringify) between the old\n * and new value on `writeValue()`. If the values are the same, it skips the update.\n *\n * @default false\n */\n compareValues: boolean\n\n /**\n * When `true`, skips the update for null values on `writeValue()`.\n *\n * @default false\n */\n filterNull: boolean\n\n /**\n * Debounces `onContentChanged()`, `onEditorChanged()`, `ngModel` and form control `valueChange()`.\n *\n * Defaults to `undefined`, so changes always emit immediately.\n *\n * @default undefined\n */\n debounceTime?: number\n\n /**\n * @deprecated The `ngx-quill` library doesn't accurately handle undefined\n * inputs, and the default `valueGetter` function is impossible to reference here,\n * so this config option is not used.\n *\n * Defines custom logic for reading the html value of the editor.\n */\n valueGetter?: (\n quillEditor: QuillType,\n editorElement: HTMLElement\n ) => string | any\n\n /**\n * @deprecated The `ngx-quill` library doesn't accurately handle undefined\n * inputs, and the default `valueSetter` function is impossible to reference here,\n * so this config option is not used.\n *\n * Defines custom logic for setting the html value of the editor.\n */\n valueSetter?: (quillEditor: QuillType, value: any) => any\n}\n\nexport type TheSeamCharacterCounterFn = (\n value: string,\n format: TheSeamQuillInputFormat | undefined\n) => number\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuillModule } from 'ngx-quill';\nimport { RichTextComponent } from './rich-text/rich-text.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [\n RichTextComponent,\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n QuillModule\n ],\n exports: [\n RichTextComponent,\n ]\n})\nexport class TheSeamRichTextModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -86,9 +86,9 @@ class OverlayScrollbarsService {
86
86
  return element.nodeName.toLowerCase() === 'textarea';
87
87
  }
88
88
  }
89
- OverlayScrollbarsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: OverlayScrollbarsService, deps: [{ token: i0.NgZone }, { token: i0.Injector }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
90
- OverlayScrollbarsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: OverlayScrollbarsService, providedIn: 'root' });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: OverlayScrollbarsService, decorators: [{
89
+ OverlayScrollbarsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayScrollbarsService, deps: [{ token: i0.NgZone }, { token: i0.Injector }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
90
+ OverlayScrollbarsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayScrollbarsService, providedIn: 'root' });
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayScrollbarsService, decorators: [{
92
92
  type: Injectable,
93
93
  args: [{
94
94
  providedIn: 'root'
@@ -137,9 +137,9 @@ class OverlayScrollbarDirective {
137
137
  return this._scrollbars.getInstance(this._ref.nativeElement);
138
138
  }
139
139
  }
140
- OverlayScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: OverlayScrollbarDirective, deps: [{ token: i0.ElementRef }, { token: OverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Directive });
141
- OverlayScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: { seamOverlayScrollbar: "seamOverlayScrollbar", overlayScrollbarEnabled: "overlayScrollbarEnabled" }, exportAs: ["seamOverlayScrollbar"], ngImport: i0 });
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: OverlayScrollbarDirective, decorators: [{
140
+ OverlayScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayScrollbarDirective, deps: [{ token: i0.ElementRef }, { token: OverlayScrollbarsService }], target: i0.ɵɵFactoryTarget.Directive });
141
+ OverlayScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: { seamOverlayScrollbar: "seamOverlayScrollbar", overlayScrollbarEnabled: "overlayScrollbarEnabled" }, exportAs: ["seamOverlayScrollbar"], ngImport: i0 });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayScrollbarDirective, decorators: [{
143
143
  type: Directive,
144
144
  args: [{
145
145
  selector: '[seamOverlayScrollbar]',
@@ -153,12 +153,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
153
153
 
154
154
  class TheSeamScrollbarModule {
155
155
  }
156
- TheSeamScrollbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamScrollbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
157
- TheSeamScrollbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamScrollbarModule, declarations: [OverlayScrollbarDirective], imports: [PlatformModule], exports: [OverlayScrollbarDirective] });
158
- TheSeamScrollbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamScrollbarModule, providers: [
156
+ TheSeamScrollbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamScrollbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
157
+ TheSeamScrollbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TheSeamScrollbarModule, declarations: [OverlayScrollbarDirective], imports: [PlatformModule], exports: [OverlayScrollbarDirective] });
158
+ TheSeamScrollbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamScrollbarModule, providers: [
159
159
  { provide: LIB_OVERLAY_SCROLLBARS_CONFIG, useValue: _OverlayScrollbarDefaults }
160
160
  ], imports: [PlatformModule] });
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamScrollbarModule, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamScrollbarModule, decorators: [{
162
162
  type: NgModule,
163
163
  args: [{
164
164
  declarations: [
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-scrollbar.mjs","sources":["../../../projects/ui-common/scrollbar/overlay-scrollbars-config.ts","../../../projects/ui-common/scrollbar/overlay-scrollbars.service.ts","../../../projects/ui-common/scrollbar/overlay-scrollbar.directive.ts","../../../projects/ui-common/scrollbar/scrollbar.module.ts","../../../projects/ui-common/scrollbar/theseam-ui-common-scrollbar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\n\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\nexport const _OverlayScrollbarDefaults: IOverlayScrollbarsConfig = {\n className: 'os-theme-dark os-theme-no-hover',\n sizeAutoCapable: false,\n paddingAbsolute: true,\n autoUpdate: true\n}\n\nexport function mergeOverlayScrollbarsConfigs(a: IOverlayScrollbarsConfig, b: IOverlayScrollbarsConfig) {\n return { ...a, ...b }\n}\n\n/** Injection token that can be used to specify overlayscrollbars options. */\nexport const LIB_OVERLAY_SCROLLBARS_CONFIG = new InjectionToken<IOverlayScrollbarsConfig>('seamOverlayScrollbarsConfig')\n","import { Platform } from '@angular/cdk/platform'\nimport { forwardRef, inject, Injectable, InjectionToken, Injector, INJECTOR, NgZone } from '@angular/core'\nimport { fromEvent, Subscription } from 'rxjs'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults } from './overlay-scrollbars-config'\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OverlayScrollbarsService {\n\n private _inputEventSubscription = Subscription.EMPTY\n\n constructor(\n private _ngZone: NgZone,\n private injector: Injector,\n private _platform: Platform\n ) { }\n\n public initializeInstance(element: HTMLElement, options?: IOverlayScrollbarsConfig): void {\n if (!this.isInstanceEnabled(element) &&\n // The 'overlayscrollbars' library is causing an issue on iOS. Since iOS\n // already has native overlay scrollbars it shouldn't really effect the\n // app layout.\n !(this._isTextarea(element) && this._platform.IOS)\n ) {\n this._ngZone.runOutsideAngular(() => {\n OverlayScrollbars(element, this._applyConfigDefaults(options))\n\n if (this._isTextarea(element)) {\n // TODO: Make this more accurate. Right now this is just relying on\n // the fact that timing out for 100ms is usually enough time to wait\n // for update to correctly calculate.\n // NOTE: This may be fixed in a newer version to not need this hack.\n fromEvent(element, 'change').subscribe(_ => {\n this._ngZone.run(() => {\n setTimeout(() => {\n if (this.isInstanceEnabled(element)) {\n this.getInstance(element).update()\n }\n }, 100)\n })\n })\n }\n })\n }\n }\n\n public destroyInstance(element: HTMLElement): void {\n if (this.isInstanceEnabled(element)) {\n this._ngZone.runOutsideAngular(() => {\n this.getInstance(element).destroy()\n if (this._inputEventSubscription && !this._inputEventSubscription.closed) {\n this._inputEventSubscription.unsubscribe()\n }\n })\n }\n }\n\n public getInstance(element: HTMLElement): OverlayScrollbars {\n return OverlayScrollbars(element) as OverlayScrollbars\n }\n\n public isInstanceEnabled(element: HTMLElement): boolean {\n return !!this.getInstance(element)\n }\n\n public setOptions(element: HTMLElement, options: IOverlayScrollbarsConfig): boolean {\n if (!this.isInstanceEnabled(element)) { return false }\n\n this.getInstance(element).options(this._applyConfigDefaults(options))\n\n return true\n }\n\n public getOptions(element: HTMLElement): IOverlayScrollbarsConfig {\n return this.getInstance(element).options()\n }\n\n private _applyConfigDefaults(config?: IOverlayScrollbarsConfig): IOverlayScrollbarsConfig {\n const _config: IOverlayScrollbarsConfig = this.injector.get(LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults)\n return { ..._config, ...config }\n }\n\n /** Determines if the component host is a textarea. */\n protected _isTextarea(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'textarea'\n }\n\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { OverlayScrollbarsService } from './overlay-scrollbars.service'\n\nimport type { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Directive({\n selector: '[seamOverlayScrollbar]',\n exportAs: 'seamOverlayScrollbar'\n})\nexport class OverlayScrollbarDirective implements AfterViewInit, OnDestroy {\n static ngAcceptInputType_seamOverlayScrollbar: IOverlayScrollbarsConfig | undefined | null | ''\n\n private _disabled = false\n\n @Input()\n set seamOverlayScrollbar(value: IOverlayScrollbarsConfig | undefined | null) { this.options = value }\n\n @Input()\n get overlayScrollbarEnabled(): boolean {\n return this._scrollbars.isInstanceEnabled(this._ref.nativeElement)\n }\n set overlayScrollbarEnabled(value: boolean) {\n this._disabled = !coerceBooleanProperty(value)\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement, this._options)\n } else {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n }\n\n set options(value: IOverlayScrollbarsConfig | undefined | null) {\n this._options = value || {}\n this._scrollbars.setOptions(this._ref.nativeElement, this._options)\n }\n get options() {\n if (this._scrollbars.isInstanceEnabled(this._ref.nativeElement)) {\n return this._scrollbars.getOptions(this._ref.nativeElement)\n }\n return this._options\n }\n private _options: IOverlayScrollbarsConfig = {}\n\n constructor(\n private _ref: ElementRef,\n private _scrollbars: OverlayScrollbarsService\n ) { }\n\n ngAfterViewInit() {\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement, this._options)\n }\n }\n\n ngOnDestroy() {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n\n get instance(): OverlayScrollbars {\n return this._scrollbars.getInstance(this._ref.nativeElement)\n }\n\n}\n","import { PlatformModule } from '@angular/cdk/platform'\nimport { NgModule } from '@angular/core'\n\nimport { OverlayScrollbarDirective } from './overlay-scrollbar.directive'\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults } from './overlay-scrollbars-config'\n\n@NgModule({\n declarations: [\n OverlayScrollbarDirective\n ],\n imports: [\n PlatformModule\n ],\n providers: [\n { provide: LIB_OVERLAY_SCROLLBARS_CONFIG, useValue: _OverlayScrollbarDefaults }\n ],\n exports: [\n OverlayScrollbarDirective\n ]\n})\nexport class TheSeamScrollbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.OverlayScrollbarsService"],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-scrollbar.mjs","sources":["../../../projects/ui-common/scrollbar/overlay-scrollbars-config.ts","../../../projects/ui-common/scrollbar/overlay-scrollbars.service.ts","../../../projects/ui-common/scrollbar/overlay-scrollbar.directive.ts","../../../projects/ui-common/scrollbar/scrollbar.module.ts","../../../projects/ui-common/scrollbar/theseam-ui-common-scrollbar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\n\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\nexport const _OverlayScrollbarDefaults: IOverlayScrollbarsConfig = {\n className: 'os-theme-dark os-theme-no-hover',\n sizeAutoCapable: false,\n paddingAbsolute: true,\n autoUpdate: true\n}\n\nexport function mergeOverlayScrollbarsConfigs(a: IOverlayScrollbarsConfig, b: IOverlayScrollbarsConfig) {\n return { ...a, ...b }\n}\n\n/** Injection token that can be used to specify overlayscrollbars options. */\nexport const LIB_OVERLAY_SCROLLBARS_CONFIG = new InjectionToken<IOverlayScrollbarsConfig>('seamOverlayScrollbarsConfig')\n","import { Platform } from '@angular/cdk/platform'\nimport { forwardRef, inject, Injectable, InjectionToken, Injector, INJECTOR, NgZone } from '@angular/core'\nimport { fromEvent, Subscription } from 'rxjs'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults } from './overlay-scrollbars-config'\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OverlayScrollbarsService {\n\n private _inputEventSubscription = Subscription.EMPTY\n\n constructor(\n private _ngZone: NgZone,\n private injector: Injector,\n private _platform: Platform\n ) { }\n\n public initializeInstance(element: HTMLElement, options?: IOverlayScrollbarsConfig): void {\n if (!this.isInstanceEnabled(element) &&\n // The 'overlayscrollbars' library is causing an issue on iOS. Since iOS\n // already has native overlay scrollbars it shouldn't really effect the\n // app layout.\n !(this._isTextarea(element) && this._platform.IOS)\n ) {\n this._ngZone.runOutsideAngular(() => {\n OverlayScrollbars(element, this._applyConfigDefaults(options))\n\n if (this._isTextarea(element)) {\n // TODO: Make this more accurate. Right now this is just relying on\n // the fact that timing out for 100ms is usually enough time to wait\n // for update to correctly calculate.\n // NOTE: This may be fixed in a newer version to not need this hack.\n fromEvent(element, 'change').subscribe(_ => {\n this._ngZone.run(() => {\n setTimeout(() => {\n if (this.isInstanceEnabled(element)) {\n this.getInstance(element).update()\n }\n }, 100)\n })\n })\n }\n })\n }\n }\n\n public destroyInstance(element: HTMLElement): void {\n if (this.isInstanceEnabled(element)) {\n this._ngZone.runOutsideAngular(() => {\n this.getInstance(element).destroy()\n if (this._inputEventSubscription && !this._inputEventSubscription.closed) {\n this._inputEventSubscription.unsubscribe()\n }\n })\n }\n }\n\n public getInstance(element: HTMLElement): OverlayScrollbars {\n return OverlayScrollbars(element) as OverlayScrollbars\n }\n\n public isInstanceEnabled(element: HTMLElement): boolean {\n return !!this.getInstance(element)\n }\n\n public setOptions(element: HTMLElement, options: IOverlayScrollbarsConfig): boolean {\n if (!this.isInstanceEnabled(element)) { return false }\n\n this.getInstance(element).options(this._applyConfigDefaults(options))\n\n return true\n }\n\n public getOptions(element: HTMLElement): IOverlayScrollbarsConfig {\n return this.getInstance(element).options()\n }\n\n private _applyConfigDefaults(config?: IOverlayScrollbarsConfig): IOverlayScrollbarsConfig {\n const _config: IOverlayScrollbarsConfig = this.injector.get(LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults)\n return { ..._config, ...config }\n }\n\n /** Determines if the component host is a textarea. */\n protected _isTextarea(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'textarea'\n }\n\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { OverlayScrollbarsService } from './overlay-scrollbars.service'\n\nimport type { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Directive({\n selector: '[seamOverlayScrollbar]',\n exportAs: 'seamOverlayScrollbar'\n})\nexport class OverlayScrollbarDirective implements AfterViewInit, OnDestroy {\n static ngAcceptInputType_seamOverlayScrollbar: IOverlayScrollbarsConfig | undefined | null | ''\n\n private _disabled = false\n\n @Input()\n set seamOverlayScrollbar(value: IOverlayScrollbarsConfig | undefined | null) { this.options = value }\n\n @Input()\n get overlayScrollbarEnabled(): boolean {\n return this._scrollbars.isInstanceEnabled(this._ref.nativeElement)\n }\n set overlayScrollbarEnabled(value: boolean) {\n this._disabled = !coerceBooleanProperty(value)\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement, this._options)\n } else {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n }\n\n set options(value: IOverlayScrollbarsConfig | undefined | null) {\n this._options = value || {}\n this._scrollbars.setOptions(this._ref.nativeElement, this._options)\n }\n get options() {\n if (this._scrollbars.isInstanceEnabled(this._ref.nativeElement)) {\n return this._scrollbars.getOptions(this._ref.nativeElement)\n }\n return this._options\n }\n private _options: IOverlayScrollbarsConfig = {}\n\n constructor(\n private _ref: ElementRef,\n private _scrollbars: OverlayScrollbarsService\n ) { }\n\n ngAfterViewInit() {\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement, this._options)\n }\n }\n\n ngOnDestroy() {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n\n get instance(): OverlayScrollbars {\n return this._scrollbars.getInstance(this._ref.nativeElement)\n }\n\n}\n","import { PlatformModule } from '@angular/cdk/platform'\nimport { NgModule } from '@angular/core'\n\nimport { OverlayScrollbarDirective } from './overlay-scrollbar.directive'\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults } from './overlay-scrollbars-config'\n\n@NgModule({\n declarations: [\n OverlayScrollbarDirective\n ],\n imports: [\n PlatformModule\n ],\n providers: [\n { provide: LIB_OVERLAY_SCROLLBARS_CONFIG, useValue: _OverlayScrollbarDefaults }\n ],\n exports: [\n OverlayScrollbarDirective\n ]\n})\nexport class TheSeamScrollbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.OverlayScrollbarsService"],"mappings":"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"}
@@ -132,9 +132,9 @@ class TheSeamPreferencesManagerService {
132
132
  return prefs ? prefs.status === 'loaded' : false;
133
133
  }
134
134
  }
135
- TheSeamPreferencesManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamPreferencesManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
136
- TheSeamPreferencesManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamPreferencesManagerService, providedIn: 'root' });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamPreferencesManagerService, decorators: [{
135
+ TheSeamPreferencesManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamPreferencesManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
136
+ TheSeamPreferencesManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamPreferencesManagerService, providedIn: 'root' });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamPreferencesManagerService, decorators: [{
138
138
  type: Injectable,
139
139
  args: [{
140
140
  providedIn: 'root'
@@ -160,9 +160,9 @@ class AssetLoaderService {
160
160
  return defer(() => loadStyle(content)).pipe(map$1(v => new LoadedAssetRef(v, undefined, content)));
161
161
  }
162
162
  }
163
- AssetLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssetLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
164
- AssetLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssetLoaderService, providedIn: 'root' });
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssetLoaderService, decorators: [{
163
+ AssetLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AssetLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
164
+ AssetLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AssetLoaderService, providedIn: 'root' });
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AssetLoaderService, decorators: [{
166
166
  type: Injectable,
167
167
  args: [{
168
168
  providedIn: 'root'
@@ -180,9 +180,9 @@ class RouterHelpersService {
180
180
  return this._router.events.pipe(filter(event => event instanceof NavigationEnd), map$1(event => this._router.isActive(url, opts)), startWith$1(this._router.isActive(url, opts)));
181
181
  }
182
182
  }
183
- RouterHelpersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RouterHelpersService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
184
- RouterHelpersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RouterHelpersService, providedIn: 'root' });
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RouterHelpersService, decorators: [{
183
+ RouterHelpersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RouterHelpersService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
184
+ RouterHelpersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RouterHelpersService, providedIn: 'root' });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RouterHelpersService, decorators: [{
186
186
  type: Injectable,
187
187
  args: [{
188
188
  providedIn: 'root'
@@ -256,9 +256,9 @@ class TheSeamFontLoaderService {
256
256
  });
257
257
  }
258
258
  }
259
- TheSeamFontLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFontLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
260
- TheSeamFontLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFontLoaderService, providedIn: 'root' });
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFontLoaderService, decorators: [{
259
+ TheSeamFontLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamFontLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
260
+ TheSeamFontLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamFontLoaderService, providedIn: 'root' });
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TheSeamFontLoaderService, decorators: [{
262
262
  type: Injectable,
263
263
  args: [{
264
264
  providedIn: 'root'