@one-paragon/angular-utilities 1.2.12 → 1.2.13

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 (407) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +7 -0
  3. package/{src/action-state/index.ts → action-state/index.d.ts} +4 -8
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +24 -0
  7. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +20 -0
  8. package/esm2022/action-state/index.mjs +8 -0
  9. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
  10. package/esm2022/action-state/ngrx.mjs +47 -0
  11. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +51 -0
  12. package/esm2022/http-request-state/HttpRequestStateStore.mjs +121 -0
  13. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +30 -0
  14. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +23 -0
  15. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +23 -0
  16. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +23 -0
  17. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +29 -0
  18. package/esm2022/http-request-state/directives/index.mjs +6 -0
  19. package/esm2022/http-request-state/directives/request-state-directive.mjs +61 -0
  20. package/esm2022/http-request-state/helpers.mjs +22 -0
  21. package/esm2022/http-request-state/http-request-state.mjs +39 -0
  22. package/esm2022/http-request-state/http-state-module.mjs +40 -0
  23. package/esm2022/http-request-state/index.mjs +7 -0
  24. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +4 -0
  25. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +3 -0
  26. package/esm2022/http-request-state/rxjs/index.mjs +5 -0
  27. package/esm2022/http-request-state/rxjs/tapError.mjs +12 -0
  28. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +12 -0
  29. package/esm2022/http-request-state/types.mjs +16 -0
  30. package/esm2022/ngrx/actionable-selector.mjs +71 -0
  31. package/esm2022/ngrx/index.mjs +2 -0
  32. package/esm2022/one-paragon-angular-utilities.mjs +5 -0
  33. package/esm2022/public-api.mjs +20 -0
  34. package/esm2022/rxjs/defaultShareReplay.mjs +7 -0
  35. package/esm2022/rxjs/index.mjs +6 -0
  36. package/esm2022/rxjs/mapError.mjs +8 -0
  37. package/esm2022/rxjs/rxjs-operators.mjs +92 -0
  38. package/esm2022/rxjs/subjectifier.mjs +15 -0
  39. package/esm2022/rxjs/subscriber.directive.mjs +50 -0
  40. package/esm2022/table-builder/classes/DefaultSettings.mjs +6 -0
  41. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +23 -0
  42. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
  43. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +45 -0
  44. package/esm2022/table-builder/classes/TableState.mjs +49 -0
  45. package/esm2022/table-builder/classes/data-store.mjs +15 -0
  46. package/esm2022/table-builder/classes/display-col.mjs +2 -0
  47. package/esm2022/table-builder/classes/filter-info.mjs +61 -0
  48. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +112 -0
  49. package/esm2022/table-builder/classes/table-builder.mjs +77 -0
  50. package/esm2022/table-builder/classes/table-store.mjs +383 -0
  51. package/esm2022/table-builder/components/array-column.component.mjs +53 -0
  52. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +134 -0
  53. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +45 -0
  54. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
  55. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
  56. package/esm2022/table-builder/components/filter/filter.component.mjs +64 -0
  57. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +102 -0
  58. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +47 -0
  59. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +301 -0
  60. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +100 -0
  61. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +21 -0
  62. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +103 -0
  63. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +65 -0
  64. package/esm2022/table-builder/components/index.mjs +10 -0
  65. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +47 -0
  66. package/esm2022/table-builder/components/link-column.component.mjs +74 -0
  67. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
  68. package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +64 -0
  69. package/esm2022/table-builder/components/scroll-strategy.mjs +60 -0
  70. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +46 -0
  71. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +82 -0
  72. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
  73. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
  74. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
  75. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +71 -0
  76. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  77. package/esm2022/table-builder/components/table-container/table-container.mjs +327 -0
  78. package/esm2022/table-builder/components/table-container/tableProps.mjs +8 -0
  79. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +151 -0
  80. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +44 -0
  81. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
  82. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  83. package/esm2022/table-builder/directives/custom-cell-directive.mjs +73 -0
  84. package/esm2022/table-builder/directives/index.mjs +6 -0
  85. package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
  86. package/esm2022/table-builder/directives/resize-column.directive.mjs +87 -0
  87. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +18 -0
  88. package/esm2022/table-builder/directives/tb-filter.directive.mjs +396 -0
  89. package/esm2022/table-builder/enums/filterTypes.mjs +29 -0
  90. package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
  91. package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
  92. package/esm2022/table-builder/functions/download-data.mjs +12 -0
  93. package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
  94. package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
  95. package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
  96. package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
  97. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
  98. package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
  99. package/esm2022/table-builder/interfaces/report-def.mjs +50 -0
  100. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +154 -0
  101. package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
  102. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  103. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +43 -0
  104. package/esm2022/table-builder/pipes/key-display.mjs +18 -0
  105. package/esm2022/table-builder/services/export-to-csv.service.mjs +75 -0
  106. package/esm2022/table-builder/services/link-creator.service.mjs +50 -0
  107. package/esm2022/table-builder/services/table-template-service.mjs +60 -0
  108. package/esm2022/table-builder/services/transform-creator.mjs +100 -0
  109. package/esm2022/table-builder/table-builder.module.mjs +124 -0
  110. package/esm2022/utilities/array-helpers.mjs +14 -0
  111. package/esm2022/utilities/directives/auto-focus.directive.mjs +25 -0
  112. package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
  113. package/esm2022/utilities/directives/clickSubject.mjs +29 -0
  114. package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
  115. package/esm2022/utilities/directives/dialog-service.mjs +21 -0
  116. package/esm2022/utilities/directives/dialog.mjs +145 -0
  117. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +59 -0
  118. package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
  119. package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
  120. package/esm2022/utilities/directives/styler.mjs +41 -0
  121. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +28 -0
  122. package/esm2022/utilities/index.mjs +16 -0
  123. package/esm2022/utilities/module.mjs +90 -0
  124. package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
  125. package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
  126. package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
  127. package/fesm2022/one-paragon-angular-utilities.mjs +5670 -0
  128. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
  129. package/http-request-state/HttpRequestStateFactory.d.ts +17 -0
  130. package/http-request-state/HttpRequestStateStore.d.ts +54 -0
  131. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +14 -0
  132. package/http-request-state/directives/http-error-state-directive.d.ts +9 -0
  133. package/http-request-state/directives/http-inProgress-state-directive.d.ts +9 -0
  134. package/http-request-state/directives/http-notStarted-state-directive.d.ts +9 -0
  135. package/http-request-state/directives/http-success-state-directive.d.ts +16 -0
  136. package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
  137. package/http-request-state/directives/request-state-directive.d.ts +34 -0
  138. package/http-request-state/helpers.d.ts +9 -0
  139. package/http-request-state/http-request-state.d.ts +12 -0
  140. package/http-request-state/http-state-module.d.ts +11 -0
  141. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
  142. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  143. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  144. package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
  145. package/http-request-state/rxjs/tapError.d.ts +3 -0
  146. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  147. package/http-request-state/types.d.ts +41 -0
  148. package/index.d.ts +5 -0
  149. package/ngrx/actionable-selector.d.ts +17 -0
  150. package/ngrx/index.d.ts +1 -0
  151. package/package.json +30 -16
  152. package/{src/public-api.ts → public-api.d.ts} +16 -35
  153. package/rxjs/defaultShareReplay.d.ts +2 -0
  154. package/{src/rxjs/index.ts → rxjs/index.d.ts} +5 -5
  155. package/rxjs/mapError.d.ts +2 -0
  156. package/rxjs/rxjs-operators.d.ts +13 -0
  157. package/rxjs/subjectifier.d.ts +8 -0
  158. package/rxjs/subscriber.directive.d.ts +14 -0
  159. package/table-builder/classes/DefaultSettings.d.ts +9 -0
  160. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  161. package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
  162. package/table-builder/classes/TableBuilderDataSource.d.ts +12 -0
  163. package/table-builder/classes/TableState.d.ts +67 -0
  164. package/table-builder/classes/data-store.d.ts +8 -0
  165. package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
  166. package/table-builder/classes/filter-info.d.ts +35 -0
  167. package/table-builder/classes/table-builder-general-settings.d.ts +78 -0
  168. package/table-builder/classes/table-builder.d.ts +18 -0
  169. package/table-builder/classes/table-store.d.ts +138 -0
  170. package/table-builder/components/array-column.component.d.ts +15 -0
  171. package/table-builder/components/column-builder/column-builder.component.d.ts +47 -0
  172. package/table-builder/components/column-builder/column-helpers.d.ts +36 -0
  173. package/table-builder/components/date-filter/date-filter.component.d.ts +37 -0
  174. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +37 -0
  175. package/table-builder/components/filter/filter.component.d.ts +46 -0
  176. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +24 -0
  177. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +17 -0
  178. package/table-builder/components/generic-table/generic-table.component.d.ts +83 -0
  179. package/table-builder/components/generic-table/paginator.component.d.ts +30 -0
  180. package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
  181. package/table-builder/components/header-menu/header-menu.component.d.ts +51 -0
  182. package/table-builder/components/in-filter/in-filter.component.d.ts +20 -0
  183. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
  184. package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
  185. package/table-builder/components/link-column.component.d.ts +25 -0
  186. package/table-builder/components/number-filter/number-filter.component.d.ts +39 -0
  187. package/table-builder/components/profiles-menu/profiles-menu.component.d.ts +32 -0
  188. package/table-builder/components/scroll-strategy.d.ts +22 -0
  189. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  190. package/table-builder/components/sort-menu/sort-menu.component.d.ts +24 -0
  191. package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -32
  192. package/table-builder/components/table-container/table-container.d.ts +79 -0
  193. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
  194. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
  195. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +17 -0
  196. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
  197. package/table-builder/components/table-container/tableProps.d.ts +12 -0
  198. package/table-builder/components/table-container/virtual-scroll-container.d.ts +35 -0
  199. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +15 -0
  200. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +12 -0
  201. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  202. package/table-builder/directives/custom-cell-directive.d.ts +33 -0
  203. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
  204. package/table-builder/directives/multi-sort.directive.d.ts +10 -0
  205. package/table-builder/directives/resize-column.directive.d.ts +43 -0
  206. package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
  207. package/table-builder/directives/tb-filter.directive.d.ts +115 -0
  208. package/table-builder/enums/filterTypes.d.ts +36 -0
  209. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  210. package/table-builder/functions/date-filter-function.d.ts +4 -0
  211. package/table-builder/functions/download-data.d.ts +1 -0
  212. package/table-builder/functions/null-filter-function.d.ts +2 -0
  213. package/table-builder/functions/number-filter-function.d.ts +4 -0
  214. package/table-builder/functions/sort-data-function.d.ts +6 -0
  215. package/table-builder/functions/string-filter-function.d.ts +5 -0
  216. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
  217. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
  218. package/table-builder/interfaces/report-def.d.ts +147 -0
  219. package/table-builder/ngrx/tableBuilderStateStore.d.ts +70 -0
  220. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  221. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  222. package/table-builder/pipes/format-filter-value.pipe.d.ts +12 -0
  223. package/table-builder/pipes/key-display.d.ts +10 -0
  224. package/table-builder/services/export-to-csv.service.d.ts +14 -0
  225. package/table-builder/services/link-creator.service.d.ts +16 -0
  226. package/table-builder/services/table-template-service.d.ts +14 -0
  227. package/table-builder/services/transform-creator.d.ts +16 -0
  228. package/table-builder/table-builder.module.d.ts +21 -0
  229. package/utilities/array-helpers.d.ts +1 -0
  230. package/utilities/directives/auto-focus.directive.d.ts +9 -0
  231. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  232. package/utilities/directives/clickSubject.d.ts +9 -0
  233. package/utilities/directives/conditional-classes.directive.d.ts +13 -0
  234. package/utilities/directives/dialog-service.d.ts +10 -0
  235. package/utilities/directives/dialog.d.ts +44 -0
  236. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  237. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  238. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  239. package/utilities/directives/styler.d.ts +15 -0
  240. package/utilities/directives/trim-whitespace.directive.d.ts +7 -0
  241. package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
  242. package/utilities/module.d.ts +19 -0
  243. package/utilities/pipes/function.pipe.d.ts +7 -0
  244. package/utilities/pipes/phone.pipe.d.ts +7 -0
  245. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  246. package/karma.conf.js +0 -44
  247. package/ng-package.json +0 -7
  248. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  249. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
  250. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  251. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
  252. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
  253. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  254. package/src/action-state/ngrx.ts +0 -69
  255. package/src/http-request-state/HttpRequestStateFactory.ts +0 -66
  256. package/src/http-request-state/HttpRequestStateStore.ts +0 -173
  257. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -29
  258. package/src/http-request-state/directives/http-error-state-directive.ts +0 -21
  259. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -19
  260. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -19
  261. package/src/http-request-state/directives/http-success-state-directive.ts +0 -29
  262. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  263. package/src/http-request-state/directives/request-state-directive.ts +0 -78
  264. package/src/http-request-state/helpers.ts +0 -30
  265. package/src/http-request-state/http-request-state.ts +0 -69
  266. package/src/http-request-state/http-state-module.ts +0 -23
  267. package/src/http-request-state/observable.spec.ts +0 -43
  268. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  269. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  270. package/src/http-request-state/rxjs/tapError.ts +0 -16
  271. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  272. package/src/http-request-state/strategies.spec.ts +0 -42
  273. package/src/http-request-state/types.ts +0 -55
  274. package/src/ngrx/actionable-selector.ts +0 -95
  275. package/src/ngrx/index.ts +0 -1
  276. package/src/rxjs/defaultShareReplay.ts +0 -8
  277. package/src/rxjs/mapError.ts +0 -8
  278. package/src/rxjs/rxjs-operators.ts +0 -132
  279. package/src/rxjs/subjectifier.ts +0 -17
  280. package/src/rxjs/subscriber.directive.ts +0 -57
  281. package/src/specs/clickSubject.spec.ts +0 -95
  282. package/src/specs/dialog.spec.ts +0 -101
  283. package/src/specs/toggleGroupDirective.spec.ts +0 -229
  284. package/src/table-builder/classes/DefaultSettings.ts +0 -11
  285. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  286. package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
  287. package/src/table-builder/classes/TableBuilderDataSource.ts +0 -80
  288. package/src/table-builder/classes/TableState.ts +0 -96
  289. package/src/table-builder/classes/data-store.ts +0 -10
  290. package/src/table-builder/classes/filter-info.ts +0 -108
  291. package/src/table-builder/classes/table-builder-general-settings.ts +0 -129
  292. package/src/table-builder/classes/table-builder.ts +0 -94
  293. package/src/table-builder/classes/table-store.ts +0 -471
  294. package/src/table-builder/components/array-column.component.ts +0 -36
  295. package/src/table-builder/components/column-builder/column-builder.component.html +0 -61
  296. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  297. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
  298. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -135
  299. package/src/table-builder/components/column-builder/column-helpers.ts +0 -53
  300. package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
  301. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
  302. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
  303. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
  304. package/src/table-builder/components/filter/filter.component.html +0 -91
  305. package/src/table-builder/components/filter/filter.component.scss +0 -64
  306. package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
  307. package/src/table-builder/components/filter/filter.component.ts +0 -60
  308. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -93
  309. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
  310. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  311. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -59
  312. package/src/table-builder/components/generic-table/generic-table.component.html +0 -78
  313. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -42
  314. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -299
  315. package/src/table-builder/components/generic-table/paginator.component.ts +0 -99
  316. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  317. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
  318. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  319. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
  320. package/src/table-builder/components/header-menu/header-menu.component.html +0 -104
  321. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
  322. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -99
  323. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  324. package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
  325. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -66
  326. package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
  327. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
  328. package/src/table-builder/components/link-column.component.ts +0 -47
  329. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  330. package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
  331. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  332. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
  333. package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -74
  334. package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -98
  335. package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
  336. package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -65
  337. package/src/table-builder/components/scroll-strategy.ts +0 -76
  338. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -66
  339. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
  340. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  341. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -98
  342. package/src/table-builder/components/table-container/table-container.css +0 -54
  343. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
  344. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
  345. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -86
  346. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
  347. package/src/table-builder/components/table-container/table-container.html +0 -95
  348. package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
  349. package/src/table-builder/components/table-container/table-container.ts +0 -356
  350. package/src/table-builder/components/table-container/tableProps.ts +0 -20
  351. package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -145
  352. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
  353. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -46
  354. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
  355. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
  356. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
  357. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -34
  358. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  359. package/src/table-builder/directives/custom-cell-directive.ts +0 -58
  360. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  361. package/src/table-builder/directives/multi-sort.directive.ts +0 -51
  362. package/src/table-builder/directives/resize-column.directive.ts +0 -108
  363. package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
  364. package/src/table-builder/directives/tb-filter.directive.ts +0 -396
  365. package/src/table-builder/enums/filterTypes.ts +0 -40
  366. package/src/table-builder/functions/boolean-filter-function.ts +0 -12
  367. package/src/table-builder/functions/date-filter-function.ts +0 -68
  368. package/src/table-builder/functions/download-data.ts +0 -11
  369. package/src/table-builder/functions/null-filter-function.ts +0 -9
  370. package/src/table-builder/functions/number-filter-function.ts +0 -41
  371. package/src/table-builder/functions/sort-data-function.ts +0 -23
  372. package/src/table-builder/functions/string-filter-function.ts +0 -51
  373. package/src/table-builder/interfaces/column-template.ts +0 -9
  374. package/src/table-builder/interfaces/report-def.ts +0 -155
  375. package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -199
  376. package/src/table-builder/pipes/column-total.pipe.ts +0 -17
  377. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  378. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -42
  379. package/src/table-builder/pipes/key-display.ts +0 -16
  380. package/src/table-builder/services/export-to-csv.service.ts +0 -97
  381. package/src/table-builder/services/link-creator.service.ts +0 -67
  382. package/src/table-builder/services/table-template-service.ts +0 -59
  383. package/src/table-builder/services/transform-creator.ts +0 -95
  384. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  385. package/src/table-builder/styles/collapser.styles.scss +0 -16
  386. package/src/table-builder/table-builder.module.ts +0 -73
  387. package/src/test.ts +0 -17
  388. package/src/utilities/array-helpers.ts +0 -13
  389. package/src/utilities/directives/auto-focus.directive.ts +0 -21
  390. package/src/utilities/directives/clickEmitterDirective.ts +0 -16
  391. package/src/utilities/directives/clickSubject.ts +0 -20
  392. package/src/utilities/directives/conditional-classes.directive.ts +0 -36
  393. package/src/utilities/directives/dialog-service.ts +0 -19
  394. package/src/utilities/directives/dialog.ts +0 -144
  395. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
  396. package/src/utilities/directives/prevent-enter.directive.ts +0 -13
  397. package/src/utilities/directives/stop-propagation.directive.ts +0 -20
  398. package/src/utilities/directives/styler.ts +0 -40
  399. package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
  400. package/src/utilities/module.ts +0 -55
  401. package/src/utilities/pipes/function.pipe.ts +0 -16
  402. package/src/utilities/pipes/phone.pipe.ts +0 -15
  403. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  404. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  405. package/tsconfig.lib.json +0 -19
  406. package/tsconfig.lib.prod.json +0 -10
  407. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,145 @@
1
+ import { Directive, TemplateRef, Input, Component, Output, EventEmitter, ViewContainerRef, Injector, ChangeDetectionStrategy, inject, untracked, isSignal } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { Subject } from 'rxjs';
4
+ import { DialogService } from './dialog-service';
5
+ import { subscriber } from '../../rxjs';
6
+ import { toObservable } from '@angular/core/rxjs-interop';
7
+ import * as i0 from "@angular/core";
8
+ export class DialogWrapper {
9
+ vcr = inject(ViewContainerRef);
10
+ viewEmbedded = false;
11
+ viewContext = {
12
+ close: () => { },
13
+ };
14
+ set template(tmpl) {
15
+ if (this.viewEmbedded) {
16
+ this.vcr.clear();
17
+ }
18
+ this.viewEmbedded = true;
19
+ this.vcr.createEmbeddedView(tmpl, this.viewContext);
20
+ }
21
+ set close(closeMethod) {
22
+ this.viewContext.close = closeMethod;
23
+ }
24
+ set data(value) {
25
+ this.viewContext.$implicit = value;
26
+ this.viewContext.opDialog = value;
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DialogWrapper, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: DialogWrapper, isStandalone: true, selector: "dialog-wrapper", ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DialogWrapper, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'dialog-wrapper',
35
+ template: ``,
36
+ standalone: true,
37
+ changeDetection: ChangeDetectionStrategy.OnPush,
38
+ }]
39
+ }] });
40
+ const defaultDialogConfig = {
41
+ maxHeight: '95vh',
42
+ };
43
+ export class DialogDirective {
44
+ templateRef = inject(TemplateRef);
45
+ dialog = inject(MatDialog);
46
+ service = inject(DialogService);
47
+ opDialogClosed = new EventEmitter();
48
+ _dialogConfig = defaultDialogConfig;
49
+ opDialogAddDialogClass = true;
50
+ set opDialogConfig(config) {
51
+ this._dialogConfig = { ...defaultDialogConfig, ...config };
52
+ }
53
+ get opDialogConfig() {
54
+ return this._dialogConfig;
55
+ }
56
+ injector = inject(Injector);
57
+ subscriber = subscriber(this.injector);
58
+ set setControl(i) {
59
+ let o;
60
+ if (isSignal(i)) {
61
+ o = toObservable(i, { injector: this.injector });
62
+ }
63
+ else {
64
+ o = i;
65
+ }
66
+ untracked(() => {
67
+ this.subscriber.on(o, this.setDataAndState);
68
+ });
69
+ }
70
+ nativeElement;
71
+ dialogRef;
72
+ componentWrapper;
73
+ _data = new Subject();
74
+ close() {
75
+ this.dialogRef?.close();
76
+ }
77
+ initDialog() {
78
+ if (this.nativeElement) {
79
+ const rect = this.nativeElement.getBoundingClientRect();
80
+ const position = { left: `${rect.left}px`, top: `${rect.bottom - 50}px` };
81
+ this.opDialogConfig = { ...this.opDialogConfig, position };
82
+ }
83
+ if (this.opDialogAddDialogClass) {
84
+ this.opDialogConfig.panelClass = [...(Array.isArray(this.opDialogConfig.panelClass) ? this.opDialogConfig.panelClass : this.opDialogConfig.panelClass ? [this.opDialogConfig.panelClass] : []), 'opDialog'];
85
+ }
86
+ this.dialogRef = this.dialog.open(DialogWrapper, this.opDialogConfig);
87
+ this.componentWrapper = this.dialogRef.componentInstance;
88
+ this.componentWrapper.close = () => this.dialogRef?.close();
89
+ this.componentWrapper.data = this.opDialogConfig.data;
90
+ this.componentWrapper.template = this.templateRef;
91
+ if (!this.opDialogConfig.disableClose) {
92
+ this.service.addDialogRef(this.dialogRef);
93
+ }
94
+ const sub = this.dialogRef.afterClosed().subscribe(() => {
95
+ this.opDialogClosed.emit(true);
96
+ this.service.removeDialogRef(this.dialogRef);
97
+ this.dialogRef = undefined;
98
+ sub.unsubscribe();
99
+ });
100
+ }
101
+ setDataAndState = (data) => {
102
+ if (data) {
103
+ this.opDialogConfig.data = data;
104
+ this.setDialogState(true);
105
+ }
106
+ else {
107
+ this.setDialogState(false);
108
+ }
109
+ };
110
+ setDialogState(open) {
111
+ if (open) {
112
+ if (!this.dialogRef) {
113
+ this.initDialog();
114
+ }
115
+ else {
116
+ this.componentWrapper.data = this.opDialogConfig.data;
117
+ }
118
+ }
119
+ else if (!open && this.dialogRef) {
120
+ this.dialogRef.close();
121
+ }
122
+ }
123
+ static ngTemplateContextGuard(dir, ctx) {
124
+ return true;
125
+ }
126
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DialogDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
127
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: DialogDirective, isStandalone: true, selector: "[opDialog]", inputs: { opDialogAddDialogClass: "opDialogAddDialogClass", opDialogConfig: "opDialogConfig", setControl: ["opDialog", "setControl"], nativeElement: ["opDialogOrigin", "nativeElement"] }, outputs: { opDialogClosed: "opDialogClosed" }, ngImport: i0 });
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DialogDirective, decorators: [{
130
+ type: Directive,
131
+ args: [{ selector: '[opDialog]', standalone: true }]
132
+ }], propDecorators: { opDialogClosed: [{
133
+ type: Output
134
+ }], opDialogAddDialogClass: [{
135
+ type: Input
136
+ }], opDialogConfig: [{
137
+ type: Input
138
+ }], setControl: [{
139
+ type: Input,
140
+ args: ['opDialog']
141
+ }], nativeElement: [{
142
+ type: Input,
143
+ args: ['opDialogOrigin']
144
+ }] } });
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3V0aWxpdGllcy9kaXJlY3RpdmVzL2RpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUE0Qix1QkFBdUIsRUFBUyxNQUFNLEVBQVUsU0FBUyxFQUFVLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNyUCxPQUFPLEVBQUUsU0FBUyxFQUFpQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBNEIsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBYzFELE1BQU0sT0FBTyxhQUFhO0lBQ2hCLEdBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV2QyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFdBQVcsR0FBRztRQUNaLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO0tBQ1EsQ0FBQztJQUMxQixJQUFJLFFBQVEsQ0FBQyxJQUF1QztRQUNsRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFD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OzhCQU1sQyxjQUFjO3NCQUF2QixNQUFNO2dCQUVFLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDTyxjQUFjO3NCQUExQixLQUFLO2dCQVVpQixVQUFVO3NCQUFoQyxLQUFLO3VCQUFDLFVBQVU7Z0JBWVEsYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBJbnB1dCwgT25EZXN0cm95LCBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3RvciwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5wdXQsIGluamVjdCwgZWZmZWN0LCB1bnRyYWNrZWQsIFNpZ25hbCwgaXNTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBTdWJqZWN0LCBpc09ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoQWxsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2ctc2VydmljZSc7XHJcbmltcG9ydCB7IHN1YnNjcmliZXIgfSBmcm9tICcuLi8uLi9yeGpzJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuaW50ZXJmYWNlIERpYWxvZ1ZpZXdDb250ZXh0PFQ+IHtcclxuICAkaW1wbGljaXQ6IFQsXHJcbiAgb3BEaWFsb2c6IFQsXHJcbiAgY2xvc2U6ICgpID0+IHZvaWQsXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGlhbG9nLXdyYXBwZXInLFxyXG4gIHRlbXBsYXRlOiBgYCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nV3JhcHBlcjxUID0gYW55PiB7XHJcbiAgcHJpdmF0ZSB2Y3IgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcblxyXG4gIHZpZXdFbWJlZGRlZCA9IGZhbHNlO1xyXG4gIHZpZXdDb250ZXh0ID0ge1xyXG4gICAgY2xvc2U6ICgpID0+IHt9LFxyXG4gIH0gYXMgRGlhbG9nVmlld0NvbnRleHQ8VD47XHJcbiAgc2V0IHRlbXBsYXRlKHRtcGw6IFRlbXBsYXRlUmVmPERpYWxvZ1ZpZXdDb250ZXh0PFQ+Pikge1xyXG4gICAgaWYgKHRoaXMudmlld0VtYmVkZGVkKSB7XHJcbiAgICAgIHRoaXMudmNyLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdFbWJlZGRlZCA9IHRydWU7XHJcbiAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodG1wbCwgdGhpcy52aWV3Q29udGV4dCk7XHJcbiAgfVxyXG5cclxuICBzZXQgY2xvc2UoY2xvc2VNZXRob2Q6ICgpID0+IHZvaWQgKSB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LmNsb3NlID0gY2xvc2VNZXRob2Q7XHJcbiAgfVxyXG5cclxuICBzZXQgZGF0YSh2YWx1ZTogVCkge1xyXG4gICAgdGhpcy52aWV3Q29udGV4dC4kaW1wbGljaXQgPSB2YWx1ZTtcclxuICAgIHRoaXMudmlld0NvbnRleHQub3BEaWFsb2cgPSB2YWx1ZTtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuY29uc3QgZGVmYXVsdERpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xyXG4gIG1heEhlaWdodDogJzk1dmgnLFxyXG59XHJcblxyXG5cclxuQERpcmVjdGl2ZShcclxuICB7IHNlbGVjdG9yOiAnW29wRGlhbG9nXScsIHN0YW5kYWxvbmU6IHRydWUgfVxyXG4pIGV4cG9ydCBjbGFzcyBEaWFsb2dEaXJlY3RpdmU8VD4ge1xyXG4gIHByaXZhdGUgdGVtcGxhdGVSZWYgPSBpbmplY3Q8VGVtcGxhdGVSZWY8RGlhbG9nVmlld0NvbnRleHQ8VD4+PihUZW1wbGF0ZVJlZik7XHJcbiAgcHJpdmF0ZSBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcclxuICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XHJcblxyXG4gIEBPdXRwdXQoKSBvcERpYWxvZ0Nsb3NlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIF9kaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxUPiA9IGRlZmF1bHREaWFsb2dDb25maWc7XHJcbiAgQElucHV0KCkgb3BEaWFsb2dBZGREaWFsb2dDbGFzcyA9IHRydWU7XHJcbiAgQElucHV0KCkgc2V0IG9wRGlhbG9nQ29uZmlnKGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnPFQ+KSB7XHJcbiAgICBcclxuICAgIHRoaXMuX2RpYWxvZ0NvbmZpZyA9IHsgLi4uZGVmYXVsdERpYWxvZ0NvbmZpZywgLi4uY29uZmlnIH07XHJcbiAgfVxyXG5cclxuICBnZXQgb3BEaWFsb2dDb25maWcoKSA6IE1hdERpYWxvZ0NvbmZpZzxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlhbG9nQ29uZmlnO1xyXG4gIH1cclxuICBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgc3Vic2NyaWJlciA9IHN1YnNjcmliZXIodGhpcy5pbmplY3Rvcik7XHJcbiAgQElucHV0KCdvcERpYWxvZycpIHNldCBzZXRDb250cm9sKGk6IE9ic2VydmFibGU8VD4gfCBTaWduYWw8VD4pe1xyXG4gICAgbGV0IG86IE9ic2VydmFibGU8VD47XHJcbiAgICBpZihpc1NpZ25hbChpKSl7XHJcbiAgICAgIG8gPSB0b09ic2VydmFibGU8VD4oaSwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbyA9IGk7XHJcbiAgICB9XHJcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmliZXIub24obywgdGhpcy5zZXREYXRhQW5kU3RhdGUpO1xyXG4gICAgfSk7XHJcbiAgfSBcclxuXHJcbiAgQElucHV0KCdvcERpYWxvZ09yaWdpbicpIG5hdGl2ZUVsZW1lbnQ/IDogSFRNTEVsZW1lbnQ7XHJcbiAgZGlhbG9nUmVmPzogTWF0RGlhbG9nUmVmPGFueSwgYm9vbGVhbj47XHJcbiAgY29tcG9uZW50V3JhcHBlcj86IERpYWxvZ1dyYXBwZXI8VD47XHJcblxyXG4gIF9kYXRhID0gbmV3IFN1YmplY3Q8T2JzZXJ2YWJsZTxUPj4oKTtcclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGluaXREaWFsb2coKSB7XHJcbiAgICBpZih0aGlzLm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICBjb25zdCByZWN0ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHsgbGVmdDogYCR7cmVjdC5sZWZ0fXB4YCwgdG9wOiBgJHtyZWN0LmJvdHRvbSAtIDUwfXB4YCB9O1xyXG4gICAgICB0aGlzLm9wRGlhbG9nQ29uZmlnID0gey4uLnRoaXMub3BEaWFsb2dDb25maWcgLCBwb3NpdGlvbn07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcERpYWxvZ0FkZERpYWxvZ0NsYXNzKSB7XHJcbiAgICAgIHRoaXMub3BEaWFsb2dDb25maWcucGFuZWxDbGFzcyA9IFsuLi4oQXJyYXkuaXNBcnJheSh0aGlzLm9wRGlhbG9nQ29uZmlnLnBhbmVsQ2xhc3MpID8gdGhpcy5vcERpYWxvZ0NvbmZpZy5wYW5lbENsYXNzIDogdGhpcy5vcERpYWxvZ0NvbmZpZy5wYW5lbENsYXNzID8gW3RoaXMub3BEaWFsb2dDb25maWcucGFuZWxDbGFzc10gOiBbXSksICdvcERpYWxvZyddO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERpYWxvZ1dyYXBwZXIsIHRoaXMub3BEaWFsb2dDb25maWcpO1xyXG4gICAgdGhpcy5jb21wb25lbnRXcmFwcGVyID0gdGhpcy5kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XHJcbiAgICB0aGlzLmNvbXBvbmVudFdyYXBwZXIhLmNsb3NlID0gKCkgPT4gdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFdyYXBwZXIhLmRhdGEgPSB0aGlzLm9wRGlhbG9nQ29uZmlnLmRhdGEgYXMgVDtcclxuICAgIHRoaXMuY29tcG9uZW50V3JhcHBlciEudGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlUmVmO1xyXG4gICAgaWYgKCF0aGlzLm9wRGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UuYWRkRGlhbG9nUmVmKHRoaXMuZGlhbG9nUmVmKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHN1YiA9IHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5vcERpYWxvZ0Nsb3NlZC5lbWl0KHRydWUpO1xyXG4gICAgICB0aGlzLnNlcnZpY2UucmVtb3ZlRGlhbG9nUmVmKHRoaXMuZGlhbG9nUmVmISk7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmID0gdW5kZWZpbmVkO1xyXG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXREYXRhQW5kU3RhdGUgPSAoZGF0YTogVCkgPT4ge1xyXG4gICAgaWYgKGRhdGEpe1xyXG4gICAgICB0aGlzLm9wRGlhbG9nQ29uZmlnLmRhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLnNldERpYWxvZ1N0YXRlKHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXREaWFsb2dTdGF0ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREaWFsb2dTdGF0ZShvcGVuOiBib29sZWFuKSB7XHJcbiAgICBpZiAob3Blbikge1xyXG4gICAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XHJcbiAgICAgICAgdGhpcy5pbml0RGlhbG9nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRXcmFwcGVyIS5kYXRhID0gdGhpcy5vcERpYWxvZ0NvbmZpZy5kYXRhIGFzIFQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoIW9wZW4gJiYgdGhpcy5kaWFsb2dSZWYpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KGRpcjogRGlhbG9nRGlyZWN0aXZlPFQ+LCBjdHg6IGFueSk6IGN0eCBpcyBEaWFsb2dWaWV3Q29udGV4dDxFeGNsdWRlPFQsIGZhbHNlIHwgMCB8ICcnIHwgbnVsbCB8IHVuZGVmaW5lZD4+IHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,59 @@
1
+ import { ContentChildren, Directive, Input, Output } from "@angular/core";
2
+ import { MatSlideToggle } from "@angular/material/slide-toggle";
3
+ import { merge, ReplaySubject, scan, startWith, switchMap } from "rxjs";
4
+ import * as i0 from "@angular/core";
5
+ export class MatSlideToggleGroupDirective {
6
+ allowMultiple = false;
7
+ _toggles;
8
+ set toggles(val) {
9
+ this._toggles = val;
10
+ this._ready.next(true);
11
+ }
12
+ _ready = new ReplaySubject(1);
13
+ get valueEmitter() {
14
+ return this._ready.pipe(switchMap(_ => this.getObs()));
15
+ }
16
+ getInitValue() {
17
+ const startValue = this._toggles.reduce((prev, cur) => {
18
+ if (!cur.name) {
19
+ throw new Error('toggle must have the name attribute set');
20
+ }
21
+ prev[cur.name] = cur.checked;
22
+ return prev;
23
+ }, {});
24
+ return startValue;
25
+ }
26
+ getObs() {
27
+ var toggleChanges = merge(...this._toggles.map(toggle => toggle.change));
28
+ const startValue = this.getInitValue();
29
+ return toggleChanges.pipe(scan((prev, cur) => {
30
+ const toggleName = cur.source.name;
31
+ const newVal = { ...prev, [toggleName]: cur.checked };
32
+ if (cur.checked && !this.allowMultiple) {
33
+ Object.keys(prev)
34
+ .filter(key => key !== toggleName && prev[key])
35
+ .forEach(key => {
36
+ newVal[key] = false;
37
+ this._toggles.find(toggle => toggle.name === key).toggle();
38
+ });
39
+ }
40
+ return newVal;
41
+ }, startValue), startWith(startValue));
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MatSlideToggleGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
44
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: MatSlideToggleGroupDirective, isStandalone: true, selector: "[opMatSlideToggleGroup]", inputs: { allowMultiple: "allowMultiple" }, outputs: { valueEmitter: "valueEmitter" }, queries: [{ propertyName: "toggles", predicate: MatSlideToggle }], ngImport: i0 });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MatSlideToggleGroupDirective, decorators: [{
47
+ type: Directive,
48
+ args: [{ selector: '[opMatSlideToggleGroup]',
49
+ standalone: true
50
+ }]
51
+ }], propDecorators: { allowMultiple: [{
52
+ type: Input
53
+ }], toggles: [{
54
+ type: ContentChildren,
55
+ args: [MatSlideToggle]
56
+ }], valueEmitter: [{
57
+ type: Output
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXRvZ2dsZS1ncm91cC1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdXRpbGl0aWVzL2RpcmVjdGl2ZXMvbWF0LXRvZ2dsZS1ncm91cC1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBT2xGLE1BQU0sT0FBTyw0QkFBNEI7SUFDaEMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUUvQixRQUFRLENBQTZCO0lBQ3JDLElBQXFDLE9BQU8sQ0FBQyxHQUE4QjtRQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sTUFBTSxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQWMsWUFBWTtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFFLFNBQVMsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUdELFlBQVk7UUFDVixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBRSxDQUFDLElBQUksRUFBQyxHQUFHLEVBQUUsRUFBRTtZQUNwRCxJQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFBO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxFQUFFLEVBQTJCLENBQUMsQ0FBQztRQUNoQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBRSxDQUFDLENBQUM7UUFFM0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXZDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FDdkIsSUFBSSxDQUFFLENBQUMsSUFBSSxFQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSyxDQUFDO1lBQ3BDLE1BQU0sTUFBTSxHQUFHLEVBQUMsR0FBRyxJQUFJLEVBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxHQUFHLENBQUMsT0FBTyxFQUFDLENBQUM7WUFDbEQsSUFBRyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztxQkFDZCxNQUFNLENBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDL0MsT0FBTyxDQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0QsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxFQUNiLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FDdEIsQ0FBQztJQUVKLENBQUM7dUdBakRZLDRCQUE0QjsyRkFBNUIsNEJBQTRCLGtNQUl4QixjQUFjOzsyRkFKbEIsNEJBQTRCO2tCQUoxQyxTQUFTO21CQUNSLEVBQUUsUUFBUSxFQUFFLHlCQUF5QjtvQkFDckMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUVVLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRytCLE9BQU87c0JBQTNDLGVBQWU7dUJBQUMsY0FBYztnQkFPakIsWUFBWTtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcclxuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHNjYW4sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5ARGlyZWN0aXZlKFxyXG4gIHsgc2VsZWN0b3I6ICdbb3BNYXRTbGlkZVRvZ2dsZUdyb3VwXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59XHJcbikgZXhwb3J0IGNsYXNzIE1hdFNsaWRlVG9nZ2xlR3JvdXBEaXJlY3RpdmUgIHtcclxuICBASW5wdXQoKSBhbGxvd011bHRpcGxlID0gZmFsc2U7XHJcblxyXG4gIF90b2dnbGVzITogUXVlcnlMaXN0PE1hdFNsaWRlVG9nZ2xlPjtcclxuICBAQ29udGVudENoaWxkcmVuKE1hdFNsaWRlVG9nZ2xlKSBzZXQgdG9nZ2xlcyh2YWw6IFF1ZXJ5TGlzdDxNYXRTbGlkZVRvZ2dsZT4pIHtcclxuICAgIHRoaXMuX3RvZ2dsZXMgPSB2YWw7XHJcbiAgICB0aGlzLl9yZWFkeS5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZHkgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcclxuXHJcbiAgQE91dHB1dCgpIGdldCB2YWx1ZUVtaXR0ZXIoKSA6IE9ic2VydmFibGU8e1trZXk6c3RyaW5nXTogYm9vbGVhbn0+IHtcclxuICAgIHJldHVybiB0aGlzLl9yZWFkeS5waXBlKCBzd2l0Y2hNYXAoIF8gPT4gdGhpcy5nZXRPYnMoKSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldEluaXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHN0YXJ0VmFsdWUgPSB0aGlzLl90b2dnbGVzLnJlZHVjZSggKHByZXYsY3VyKSA9PiB7XHJcbiAgICAgIGlmKCFjdXIubmFtZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndG9nZ2xlIG11c3QgaGF2ZSB0aGUgbmFtZSBhdHRyaWJ1dGUgc2V0Jyk7XHJcbiAgICAgIH1cclxuICAgICAgcHJldltjdXIubmFtZV0gPSBjdXIuY2hlY2tlZFxyXG4gICAgICByZXR1cm4gcHJldjtcclxuICAgIH0sIHt9IGFzIHtbazpzdHJpbmddOiBib29sZWFufSk7XHJcbiAgICByZXR1cm4gc3RhcnRWYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldE9icygpIHtcclxuICAgIHZhciB0b2dnbGVDaGFuZ2VzID0gbWVyZ2UoLi4udGhpcy5fdG9nZ2xlcy5tYXAoIHRvZ2dsZSA9PiB0b2dnbGUuY2hhbmdlICkpO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0VmFsdWUgPSB0aGlzLmdldEluaXRWYWx1ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b2dnbGVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIHNjYW4oIChwcmV2LGN1cikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRvZ2dsZU5hbWUgPSBjdXIuc291cmNlLm5hbWUhO1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IHsuLi5wcmV2LFt0b2dnbGVOYW1lXTpjdXIuY2hlY2tlZH07XHJcbiAgICAgICAgaWYoY3VyLmNoZWNrZWQgJiYgIXRoaXMuYWxsb3dNdWx0aXBsZSkge1xyXG4gICAgICAgICAgT2JqZWN0LmtleXMocHJldilcclxuICAgICAgICAgICAgLmZpbHRlcigga2V5ID0+IGtleSAhPT0gdG9nZ2xlTmFtZSAmJiBwcmV2W2tleV0pXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKCBrZXkgPT4ge1xyXG4gICAgICAgICAgICAgIG5ld1ZhbFtrZXldID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5fdG9nZ2xlcy5maW5kKCB0b2dnbGUgPT4gdG9nZ2xlLm5hbWUgPT09IGtleSkhLnRvZ2dsZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld1ZhbDtcclxuICAgICAgfSxzdGFydFZhbHVlKSxcclxuICAgICAgc3RhcnRXaXRoKHN0YXJ0VmFsdWUpLFxyXG4gICAgKTtcclxuXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PreventEnterDirective {
4
+ onKeyDown() {
5
+ return false;
6
+ }
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PreventEnterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: PreventEnterDirective, isStandalone: true, selector: "preventEnter", host: { listeners: { "keydown.enter": "onKeyDown($event)" } }, ngImport: i0 });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PreventEnterDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: 'preventEnter',
14
+ standalone: true
15
+ }]
16
+ }], propDecorators: { onKeyDown: [{
17
+ type: HostListener,
18
+ args: ['keydown.enter', ['$event']]
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmVudC1lbnRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdXRpbGl0aWVzL2RpcmVjdGl2ZXMvcHJldmVudC1lbnRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXhELE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsU0FBUztRQUNMLE9BQU8sS0FBSyxDQUFBO0lBQ2hCLENBQUM7dUdBTFUscUJBQXFCOzJGQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFJQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAncHJldmVudEVudGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcmV2ZW50RW50ZXJEaXJlY3RpdmUge1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { Directive, HostListener } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class StopPropagationDirective {
4
+ onClick(event) {
5
+ event.stopPropagation();
6
+ }
7
+ onMousedown(event) {
8
+ event.stopPropagation();
9
+ }
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StopPropagationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: StopPropagationDirective, isStandalone: true, selector: "[stop-propagation]", host: { listeners: { "click": "onClick($event)", "mousedown": "onMousedown($event)" } }, ngImport: i0 });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StopPropagationDirective, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: "[stop-propagation]",
17
+ standalone: true
18
+ }]
19
+ }], propDecorators: { onClick: [{
20
+ type: HostListener,
21
+ args: ["click", ["$event"]]
22
+ }], onMousedown: [{
23
+ type: HostListener,
24
+ args: ["mousedown", ["$event"]]
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdXRpbGl0aWVzL2RpcmVjdGl2ZXMvc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXRELE1BQU0sT0FBTyx3QkFBd0I7SUFHMUIsT0FBTyxDQUFDLEtBQVU7UUFFckIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFHTSxXQUFXLENBQUMsS0FBVTtRQUV6QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDNUIsQ0FBQzt1R0FaUSx3QkFBd0I7MkZBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBSVUsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPMUIsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSG9zdExpc3RlbmVyfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbc3RvcC1wcm9wYWdhdGlvbl1cIixcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZVxyXG57XHJcbiAgICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWRcclxuICAgIHtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwibW91c2Vkb3duXCIsIFtcIiRldmVudFwiXSlcclxuICAgIHB1YmxpYyBvbk1vdXNlZG93bihldmVudDogYW55KTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { Directive, Input, ElementRef, Renderer2, inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class StylerDirective {
4
+ el = inject(ElementRef);
5
+ renderer = inject(Renderer2);
6
+ stylesApplied = {};
7
+ element;
8
+ set styler(styles) {
9
+ const toApply = Object.entries(styles ?? {}).reduce((acc, [key, val]) => {
10
+ if (typeof (val) === 'string') {
11
+ acc[key] = val;
12
+ this.el.nativeElement.style[key] = val;
13
+ }
14
+ else if (val?.condition === true || val?.condition(this.element)) {
15
+ const value = typeof (val.value) === 'string' ? val.value : val?.value(this.element);
16
+ acc[key] = value;
17
+ this.el.nativeElement.style[key] = value;
18
+ }
19
+ return acc;
20
+ }, {});
21
+ Object.keys(this.stylesApplied).filter(key => !Object.keys(toApply).includes(key)).forEach(key => {
22
+ this.renderer.removeStyle(this.el.nativeElement, key);
23
+ });
24
+ this.stylesApplied = toApply;
25
+ }
26
+ ;
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StylerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
28
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: StylerDirective, isStandalone: true, selector: "[styler]", inputs: { element: "element", styler: "styler" }, ngImport: i0 });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StylerDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ selector: '[styler]',
34
+ standalone: true
35
+ }]
36
+ }], propDecorators: { element: [{
37
+ type: Input
38
+ }], styler: [{
39
+ type: Input
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3V0aWxpdGllcy9kaXJlY3RpdmVzL3N0eWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPN0UsTUFBTSxPQUFPLGVBQWU7SUFDckIsRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXJDLGFBQWEsR0FBd0IsRUFBRSxDQUFDO0lBQy9CLE9BQU8sQ0FBTztJQUN2QixJQUFhLE1BQU0sQ0FBQyxNQUFtQjtRQUNyQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUN0RSxJQUFHLE9BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUMsQ0FBQztnQkFDM0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDZixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ3pDLENBQUM7aUJBQU0sSUFBRyxHQUFHLEVBQUUsU0FBUyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDO2dCQUNqRSxNQUFNLEtBQUssR0FBSSxPQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JGLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDM0MsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQXdCLENBQUMsQ0FBQztRQUU3QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQy9GLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUFBLENBQUM7dUdBdkJZLGVBQWU7MkZBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFIOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQUtVLE9BQU87c0JBQWYsS0FBSztnQkFDTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tzdHlsZXJdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSkgZXhwb3J0IGNsYXNzIFN0eWxlckRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxyXG4gIHN0eWxlc0FwcGxpZWQgOiBEaWN0aW9uYXJ5PHN0cmluZz4gPSB7fTtcclxuICBASW5wdXQoKSBlbGVtZW50PzogYW55O1xyXG4gIEBJbnB1dCgpIHNldCBzdHlsZXIoc3R5bGVzOiBTdHlsZXJTdHlsZSl7XHJcbiAgICBjb25zdCB0b0FwcGx5ID0gT2JqZWN0LmVudHJpZXMoc3R5bGVzID8/IHt9KS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsXSkgPT4ge1xyXG4gICAgICBpZih0eXBlb2YodmFsKSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICAgIGFjY1trZXldID0gdmFsO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZVtrZXldID0gdmFsO1xyXG4gICAgICB9IGVsc2UgaWYodmFsPy5jb25kaXRpb24gPT09IHRydWUgfHwgdmFsPy5jb25kaXRpb24odGhpcy5lbGVtZW50KSl7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSAgdHlwZW9mKHZhbC52YWx1ZSkgPT09ICdzdHJpbmcnID8gdmFsLnZhbHVlIDogdmFsPy52YWx1ZSh0aGlzLmVsZW1lbnQpO1xyXG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlW2tleV0gPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwge30gYXMgRGljdGlvbmFyeTxzdHJpbmc+KTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLnN0eWxlc0FwcGxpZWQpLmZpbHRlcihrZXkgPT4gIU9iamVjdC5rZXlzKHRvQXBwbHkpLmluY2x1ZGVzKGtleSkpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGtleSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3R5bGVzQXBwbGllZCA9IHRvQXBwbHk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU3R5bGVyU3R5bGUgPSBEaWN0aW9uYXJ5PFxyXG4gIHN0cmluZ1xyXG4gIHxcclxuICB7IFxyXG4gICAgY29uZGl0aW9uOiAoKHQ6YW55KSA9PiBib29sZWFuKSB8IHRydWUsXHJcbiAgICB2YWx1ZTogKCh0OmFueSkgPT4gc3RyaW5nKSB8IHN0cmluZ1xyXG4gIH0+XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Directive, ElementRef, HostListener, inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TrimWhitespaceDirective {
4
+ elem = inject(ElementRef);
5
+ onBlur() {
6
+ const inputString = this.elem.nativeElement.value;
7
+ if (inputString) {
8
+ const newValue = inputString.trim().replace(/\t/g, '');
9
+ if (inputString !== newValue) {
10
+ this.elem.nativeElement.value = newValue;
11
+ this.elem.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));
12
+ }
13
+ }
14
+ }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TrimWhitespaceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: TrimWhitespaceDirective, isStandalone: true, selector: "input[trimWhitespace]", host: { listeners: { "blur": "onBlur()" } }, ngImport: i0 });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TrimWhitespaceDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: 'input[trimWhitespace]',
22
+ standalone: true
23
+ }]
24
+ }], propDecorators: { onBlur: [{
25
+ type: HostListener,
26
+ args: ['blur']
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbS13aGl0ZXNwYWNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy91dGlsaXRpZXMvZGlyZWN0aXZlcy90cmltLXdoaXRlc3BhY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTVFLE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUdaLE1BQU07UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ2xELElBQUcsV0FBVyxFQUFFLENBQUM7WUFDZixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RCxJQUFHLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3VHQWJVLHVCQUF1QjsyRkFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFLdUIsTUFBTTtzQkFBM0IsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dFt0cmltV2hpdGVzcGFjZV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyaW1XaGl0ZXNwYWNlRGlyZWN0aXZlIHtcclxuICBwcml2YXRlIGVsZW0gPSBpbmplY3QoRWxlbWVudFJlZik7XHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKCdibHVyJykgb25CbHVyKCkge1xyXG4gICAgY29uc3QgaW5wdXRTdHJpbmcgPSB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgIGlmKGlucHV0U3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gaW5wdXRTdHJpbmcudHJpbSgpLnJlcGxhY2UoL1xcdC9nLCAnJyk7XHJcbiAgICAgIGlmKGlucHV0U3RyaW5nICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0Jywge2J1YmJsZXM6dHJ1ZX0pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,16 @@
1
+ export * from './directives/prevent-enter.directive';
2
+ export * from './directives/stop-propagation.directive';
3
+ export * from './directives/auto-focus.directive';
4
+ export * from './directives/clickSubject';
5
+ export * from './directives/clickEmitterDirective';
6
+ export * from './directives/dialog';
7
+ export * from './directives/styler';
8
+ export * from './directives/mat-toggle-group-directive';
9
+ export * from './directives/trim-whitespace.directive';
10
+ export * from './pipes/function.pipe';
11
+ export * from './pipes/phone.pipe';
12
+ export * from './pipes/space-case.pipes';
13
+ export * from './directives/dialog-service';
14
+ export * from './directives/conditional-classes.directive';
15
+ export * from './module';
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdXRpbGl0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHdDQUF3QyxDQUFDO0FBRXZELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyw0Q0FBNEMsQ0FBQTtBQUcxRCxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9wcmV2ZW50LWVudGVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9zdG9wLXByb3BhZ2F0aW9uLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvLWZvY3VzLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jbGlja1N1YmplY3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvY2xpY2tFbWl0dGVyRGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RpYWxvZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9zdHlsZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbWF0LXRvZ2dsZS1ncm91cC1kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdHJpbS13aGl0ZXNwYWNlLmRpcmVjdGl2ZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2Z1bmN0aW9uLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3Bob25lLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NwYWNlLWNhc2UucGlwZXMnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RpYWxvZy1zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jb25kaXRpb25hbC1jbGFzc2VzLmRpcmVjdGl2ZSdcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XHJcblxyXG5cclxuIl19
@@ -0,0 +1,90 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { AutoFocusDirective } from "./directives/auto-focus.directive";
3
+ import { ClickEmitterDirective } from "./directives/clickEmitterDirective";
4
+ import { ClickSubjectDirective } from "./directives/clickSubject";
5
+ import { ConditionalClassesDirective } from "./directives/conditional-classes.directive";
6
+ import { DialogDirective } from "./directives/dialog";
7
+ import { DialogService } from "./directives/dialog-service";
8
+ import { MatSlideToggleGroupDirective } from "./directives/mat-toggle-group-directive";
9
+ import { PreventEnterDirective } from "./directives/prevent-enter.directive";
10
+ import { StopPropagationDirective } from "./directives/stop-propagation.directive";
11
+ import { TrimWhitespaceDirective } from "./directives/trim-whitespace.directive";
12
+ import { StylerDirective } from "./directives/styler";
13
+ import { FunctionPipe } from "./pipes/function.pipe";
14
+ import { PhoneNumberPipe } from "./pipes/phone.pipe";
15
+ import { SpaceCasePipe } from "./pipes/space-case.pipes";
16
+ import * as i0 from "@angular/core";
17
+ export class UtilitiesModule {
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: UtilitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: UtilitiesModule, imports: [SpaceCasePipe,
20
+ PhoneNumberPipe,
21
+ FunctionPipe,
22
+ StopPropagationDirective,
23
+ StylerDirective,
24
+ PreventEnterDirective,
25
+ AutoFocusDirective,
26
+ TrimWhitespaceDirective,
27
+ ClickSubjectDirective,
28
+ ClickEmitterDirective,
29
+ DialogDirective,
30
+ MatSlideToggleGroupDirective,
31
+ ConditionalClassesDirective], exports: [StopPropagationDirective,
32
+ PreventEnterDirective,
33
+ SpaceCasePipe,
34
+ PhoneNumberPipe,
35
+ FunctionPipe,
36
+ StopPropagationDirective,
37
+ TrimWhitespaceDirective,
38
+ StylerDirective,
39
+ PreventEnterDirective,
40
+ AutoFocusDirective,
41
+ ClickSubjectDirective,
42
+ ClickEmitterDirective,
43
+ DialogDirective,
44
+ MatSlideToggleGroupDirective,
45
+ ConditionalClassesDirective] });
46
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: UtilitiesModule, providers: [
47
+ DialogService
48
+ ] });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: UtilitiesModule, decorators: [{
51
+ type: NgModule,
52
+ args: [{
53
+ exports: [
54
+ StopPropagationDirective,
55
+ PreventEnterDirective,
56
+ SpaceCasePipe,
57
+ PhoneNumberPipe,
58
+ FunctionPipe,
59
+ StopPropagationDirective,
60
+ TrimWhitespaceDirective,
61
+ StylerDirective,
62
+ PreventEnterDirective,
63
+ AutoFocusDirective,
64
+ ClickSubjectDirective,
65
+ ClickEmitterDirective,
66
+ DialogDirective,
67
+ MatSlideToggleGroupDirective,
68
+ ConditionalClassesDirective,
69
+ ],
70
+ imports: [
71
+ SpaceCasePipe,
72
+ PhoneNumberPipe,
73
+ FunctionPipe,
74
+ StopPropagationDirective,
75
+ StylerDirective,
76
+ PreventEnterDirective,
77
+ AutoFocusDirective,
78
+ TrimWhitespaceDirective,
79
+ ClickSubjectDirective,
80
+ ClickEmitterDirective,
81
+ DialogDirective,
82
+ MatSlideToggleGroupDirective,
83
+ ConditionalClassesDirective,
84
+ ],
85
+ providers: [
86
+ DialogService
87
+ ]
88
+ }]
89
+ }] });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3V0aWxpdGllcy9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUF1Q3pELE1BQU0sT0FBTyxlQUFlO3VHQUFmLGVBQWU7d0dBQWYsZUFBZSxZQWxCeEIsYUFBYTtZQUNiLGVBQWU7WUFDZixZQUFZO1lBQ1osd0JBQXdCO1lBQ3hCLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLGVBQWU7WUFDZiw0QkFBNEI7WUFDNUIsMkJBQTJCLGFBN0IzQix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixlQUFlO1lBQ2YsWUFBWTtZQUNaLHdCQUF3QjtZQUN4Qix1QkFBdUI7WUFDdkIsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixlQUFlO1lBQ2YsNEJBQTRCO1lBQzVCLDJCQUEyQjt3R0FxQmxCLGVBQWUsYUFKZjtZQUNULGFBQWE7U0FDZDs7MkZBRVUsZUFBZTtrQkFyQzNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLHVCQUF1Qjt3QkFDdkIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsNEJBQTRCO3dCQUM1QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsNEJBQTRCO3dCQUM1QiwyQkFBMkI7cUJBQzVCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBdXRvRm9jdXNEaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL2F1dG8tZm9jdXMuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IENsaWNrRW1pdHRlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvY2xpY2tFbWl0dGVyRGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IENsaWNrU3ViamVjdERpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvY2xpY2tTdWJqZWN0XCI7XHJcbmltcG9ydCB7IENvbmRpdGlvbmFsQ2xhc3Nlc0RpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtY2xhc3Nlcy5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgRGlhbG9nRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9kaWFsb2dcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvZGlhbG9nLXNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVHcm91cERpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvbWF0LXRvZ2dsZS1ncm91cC1kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgUHJldmVudEVudGVyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9wcmV2ZW50LWVudGVyLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IFRyaW1XaGl0ZXNwYWNlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy90cmltLXdoaXRlc3BhY2UuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IFN0eWxlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvc3R5bGVyXCI7XHJcbmltcG9ydCB7IEZ1bmN0aW9uUGlwZSB9IGZyb20gXCIuL3BpcGVzL2Z1bmN0aW9uLnBpcGVcIjtcclxuaW1wb3J0IHsgUGhvbmVOdW1iZXJQaXBlIH0gZnJvbSBcIi4vcGlwZXMvcGhvbmUucGlwZVwiO1xyXG5pbXBvcnQgeyBTcGFjZUNhc2VQaXBlIH0gZnJvbSBcIi4vcGlwZXMvc3BhY2UtY2FzZS5waXBlc1wiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbXHJcbiAgICBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXHJcbiAgICBQcmV2ZW50RW50ZXJEaXJlY3RpdmUsXHJcbiAgICBTcGFjZUNhc2VQaXBlLFxyXG4gICAgUGhvbmVOdW1iZXJQaXBlLFxyXG4gICAgRnVuY3Rpb25QaXBlLFxyXG4gICAgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gICAgVHJpbVdoaXRlc3BhY2VEaXJlY3RpdmUsXHJcbiAgICBTdHlsZXJEaXJlY3RpdmUsXHJcbiAgICBQcmV2ZW50RW50ZXJEaXJlY3RpdmUsXHJcbiAgICBBdXRvRm9jdXNEaXJlY3RpdmUsXHJcbiAgICBDbGlja1N1YmplY3REaXJlY3RpdmUsXHJcbiAgICBDbGlja0VtaXR0ZXJEaXJlY3RpdmUsXHJcbiAgICBEaWFsb2dEaXJlY3RpdmUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3BhY2VDYXNlUGlwZSxcclxuICAgIFBob25lTnVtYmVyUGlwZSxcclxuICAgIEZ1bmN0aW9uUGlwZSxcclxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuICAgIFN0eWxlckRpcmVjdGl2ZSxcclxuICAgIFByZXZlbnRFbnRlckRpcmVjdGl2ZSxcclxuICAgIEF1dG9Gb2N1c0RpcmVjdGl2ZSxcclxuICAgIFRyaW1XaGl0ZXNwYWNlRGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tTdWJqZWN0RGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tFbWl0dGVyRGlyZWN0aXZlLFxyXG4gICAgRGlhbG9nRGlyZWN0aXZlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVHcm91cERpcmVjdGl2ZSxcclxuICAgIENvbmRpdGlvbmFsQ2xhc3Nlc0RpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRGlhbG9nU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFV0aWxpdGllc01vZHVsZSB7XHJcbn1cclxuIl19
@@ -0,0 +1,22 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FunctionPipe {
4
+ transform(func, ...args) {
5
+ if (typeof func === 'string') {
6
+ const [instance, ...tail] = args;
7
+ const method = instance[func].bind(instance);
8
+ return method(...tail);
9
+ }
10
+ return func(...args);
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FunctionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: FunctionPipe, isStandalone: true, name: "func" });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FunctionPipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'func',
19
+ standalone: true
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy91dGlsaXRpZXMvcGlwZXMvZnVuY3Rpb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsU0FBUyxDQUEwQixJQUE2QyxFQUFFLEdBQUcsSUFBaUI7UUFDcEcsSUFBRyxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0MsT0FBTyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0MsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO3VHQVJVLFlBQVk7cUdBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsTUFBTTtvQkFDWixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2Z1bmMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybTxULCBUUGFyYW0gZXh0ZW5kcyBhbnlbXT4oZnVuYzogKCAoLi4uYXJnczogWy4uLlRQYXJhbV0pPT4gVCApIHwgc3RyaW5nLCAuLi5hcmdzOiBbLi4uVFBhcmFtXSk6IFQge1xyXG4gICAgaWYodHlwZW9mIGZ1bmMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGNvbnN0IFtpbnN0YW5jZSwgLi4udGFpbF0gPSBhcmdzO1xyXG4gICAgICBjb25zdCBtZXRob2QgPSBpbnN0YW5jZVtmdW5jXS5iaW5kKGluc3RhbmNlKTtcclxuICAgICAgcmV0dXJuIG1ldGhvZCguLi50YWlsKTtcclxuICAgIH1cclxuICAgICAgcmV0dXJuIGZ1bmMoLi4uYXJncyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PhoneNumberPipe {
4
+ transform(phoneNum) {
5
+ if (phoneNum) {
6
+ phoneNum = phoneNum.replace(/\D/g, '');
7
+ if (phoneNum[0] === '1') {
8
+ phoneNum = phoneNum.substring(1);
9
+ }
10
+ return '(' + phoneNum.slice(0, 3) + ') ' + phoneNum.slice(3, 6) + '-' + phoneNum.slice(6, 10) + ' ' + phoneNum.slice(10);
11
+ }
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PhoneNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
14
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: PhoneNumberPipe, isStandalone: true, name: "phone" });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PhoneNumberPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{ name: 'phone', standalone: true }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy91dGlsaXRpZXMvcGlwZXMvcGhvbmUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsU0FBUyxDQUFDLFFBQWdCO1FBQ3hCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEMsSUFBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLFFBQVEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxPQUFPLEdBQUcsR0FBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVILENBQUM7SUFDSCxDQUFDO3VHQVZVLGVBQWU7cUdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtuYW1lOiAncGhvbmUnLCBzdGFuZGFsb25lOiB0cnVlfSlcclxuZXhwb3J0IGNsYXNzIFBob25lTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0ocGhvbmVOdW06IHN0cmluZyk6IGFueSB7XHJcbiAgICBpZiAocGhvbmVOdW0pIHtcclxuICAgICAgcGhvbmVOdW0gPSBwaG9uZU51bS5yZXBsYWNlKC9cXEQvZywnJyk7XHJcbiAgICAgIGlmKHBob25lTnVtWzBdID09PSAnMScpIHtcclxuICAgICAgICBwaG9uZU51bSA9IHBob25lTnVtLnN1YnN0cmluZygxKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gJygnICsgIHBob25lTnVtLnNsaWNlKDAsIDMpICsgJykgJyArIHBob25lTnVtLnNsaWNlKDMsIDYpICsgJy0nICsgcGhvbmVOdW0uc2xpY2UoNiwgMTApICsgJyAnICsgcGhvbmVOdW0uc2xpY2UoMTApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SpaceCasePipe {
4
+ transform(value) {
5
+ return spaceCase(value);
6
+ }
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SpaceCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
8
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: SpaceCasePipe, isStandalone: true, name: "spaceCase" });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SpaceCasePipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{ name: 'spaceCase', standalone: true }]
13
+ }] });
14
+ /**
15
+ * Adds a space before uppercase letters that either
16
+ * 1. follows a lowercase letter or digit
17
+ * 2. or precedes a lowercase letter and follows an alpha-numeric character
18
+ *
19
+ * Uppercases the first digit
20
+ *
21
+ * Turns underscores into spaces
22
+ */
23
+ export function spaceCase(value) {
24
+ const phrase = value?.replace(/([a-z0-9])([A-Z])|([a-zA-Z0-9])([A-Z])(?=[a-z])|_/g, '$1$3 $2$4');
25
+ // uppercase the first character of every word
26
+ return phrase?.replace(/(^| )(\w)/g, x => x.toUpperCase());
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2UtY2FzZS5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy91dGlsaXRpZXMvcGlwZXMvc3BhY2UtY2FzZS5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBUSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzt1R0FIVSxhQUFhO3FHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7O0FBTzNDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFhO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUMsb0RBQW9ELEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDaEcsOENBQThDO0lBQzlDLE9BQU8sTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe25hbWU6ICdzcGFjZUNhc2UnLCBzdGFuZGFsb25lOiB0cnVlfSlcclxuZXhwb3J0IGNsYXNzIFNwYWNlQ2FzZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gIHNwYWNlQ2FzZSh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQWRkcyBhIHNwYWNlIGJlZm9yZSB1cHBlcmNhc2UgbGV0dGVycyB0aGF0IGVpdGhlclxyXG4gKiAxLiBmb2xsb3dzIGEgbG93ZXJjYXNlIGxldHRlciBvciBkaWdpdFxyXG4gKiAyLiBvciBwcmVjZWRlcyBhIGxvd2VyY2FzZSBsZXR0ZXIgYW5kIGZvbGxvd3MgYW4gYWxwaGEtbnVtZXJpYyBjaGFyYWN0ZXJcclxuICogXHJcbiAqIFVwcGVyY2FzZXMgdGhlIGZpcnN0IGRpZ2l0XHJcbiAqIFxyXG4gKiBUdXJucyB1bmRlcnNjb3JlcyBpbnRvIHNwYWNlc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNwYWNlQ2FzZSh2YWx1ZTogc3RyaW5nKXtcclxuICBjb25zdCBwaHJhc2UgPSB2YWx1ZT8ucmVwbGFjZSgvKFthLXowLTldKShbQS1aXSl8KFthLXpBLVowLTldKShbQS1aXSkoPz1bYS16XSl8Xy9nLCAnJDEkMyAkMiQ0JylcclxuICAvLyB1cHBlcmNhc2UgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBldmVyeSB3b3JkXHJcbiAgcmV0dXJuIHBocmFzZT8ucmVwbGFjZSgvKF58ICkoXFx3KS9nLCB4ID0+IHgudG9VcHBlckNhc2UoKSk7XHJcbn1cclxuIl19