@sumaris-net/ngx-components 2.18.0-beta9 → 2.21.0-rc1

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 (715) hide show
  1. package/README.md +3 -0
  2. package/doc/build.md +14 -14
  3. package/doc/changelog.md +1386 -88
  4. package/doc/feed/feed-en.json +26 -0
  5. package/doc/feed/feed-fr.json +28 -0
  6. package/fesm2022/sumaris-net.ngx-components.mjs +32423 -22727
  7. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  8. package/package.json +42 -39
  9. package/src/assets/environments/environment-test.json +2 -2
  10. package/src/assets/i18n/en-US.json +143 -45
  11. package/src/assets/i18n/en.json +142 -43
  12. package/src/assets/i18n/fr.json +147 -47
  13. package/src/assets/manifest.json +1 -1
  14. package/src/theme/_icons.scss +8 -12
  15. package/src/theme/_ionic.globals.scss +8 -1
  16. package/src/theme/_markdown.scss +1 -1
  17. package/src/theme/_material.globals.scss +4 -1
  18. package/src/theme/_material.scss +60 -17
  19. package/src/theme/_mixins.scss +39 -4
  20. package/src/theme/_ngx-components.forms.scss +115 -89
  21. package/src/theme/_ngx-components.globals.scss +4 -1
  22. package/src/theme/_ngx-components.scss +162 -110
  23. package/src/theme/_ngx-components.table.scss +105 -44
  24. package/src/theme/_ngx-components.tabs.scss +46 -14
  25. package/src/theme/_responsive.scss +15 -0
  26. package/src/theme/_roboto.scss +3 -0
  27. package/src/theme/_theme.scss +11 -14
  28. package/src/theme/_theme.variables.scss +7 -3
  29. package/src/theme/ionic/ionic.functions.color.scss +13 -5
  30. package/src/theme/ionic/ionic.globals.scss +4 -4
  31. package/src/theme/ionic/ionic.theme.default.scss +2 -0
  32. package/types/sumaris-net.ngx-components.d.ts +14132 -0
  33. package/esm2022/public_api.mjs +0 -358
  34. package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
  35. package/esm2022/src/app/admin/admin.module.mjs +0 -32
  36. package/esm2022/src/app/admin/services/filter/person.filter.mjs +0 -69
  37. package/esm2022/src/app/admin/services/person.service.mjs +0 -174
  38. package/esm2022/src/app/admin/services/validator/person.validator.mjs +0 -72
  39. package/esm2022/src/app/admin/users/users.mjs +0 -267
  40. package/esm2022/src/app/admin/users/users.module.mjs +0 -56
  41. package/esm2022/src/app/core/about/about.modal.mjs +0 -84
  42. package/esm2022/src/app/core/about/about.module.mjs +0 -21
  43. package/esm2022/src/app/core/account/account.module.mjs +0 -68
  44. package/esm2022/src/app/core/account/account.page.mjs +0 -351
  45. package/esm2022/src/app/core/account/new-token.modal.mjs +0 -132
  46. package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -60
  47. package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
  48. package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -144
  49. package/esm2022/src/app/core/account/token.table.mjs +0 -152
  50. package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
  51. package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
  52. package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
  53. package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -77
  54. package/esm2022/src/app/core/core.module.mjs +0 -151
  55. package/esm2022/src/app/core/core.testing.module.mjs +0 -107
  56. package/esm2022/src/app/core/form/array/form-array.mjs +0 -325
  57. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
  58. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -94
  59. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -108
  60. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
  61. package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -265
  62. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
  63. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -731
  64. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -24
  65. package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -32
  66. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -194
  67. package/esm2022/src/app/core/form/form-container.class.mjs +0 -327
  68. package/esm2022/src/app/core/form/form.class.mjs +0 -336
  69. package/esm2022/src/app/core/form/form.module.mjs +0 -70
  70. package/esm2022/src/app/core/form/form.utils.mjs +0 -197
  71. package/esm2022/src/app/core/form/list/list.form.mjs +0 -235
  72. package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
  73. package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -225
  74. package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -37
  75. package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -268
  76. package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -60
  77. package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -38
  78. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -95
  79. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
  80. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
  81. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -30
  82. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -152
  83. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -31
  84. package/esm2022/src/app/core/form/username/username.form.mjs +0 -52
  85. package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
  86. package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
  87. package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -783
  88. package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
  89. package/esm2022/src/app/core/home/home.mjs +0 -311
  90. package/esm2022/src/app/core/home/home.module.mjs +0 -42
  91. package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
  92. package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
  93. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -354
  94. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
  95. package/esm2022/src/app/core/menu/menu.component.mjs +0 -263
  96. package/esm2022/src/app/core/menu/menu.model.mjs +0 -272
  97. package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
  98. package/esm2022/src/app/core/menu/menu.service.mjs +0 -655
  99. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -109
  100. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -49
  101. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -157
  102. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
  103. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
  104. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
  105. package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -203
  106. package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -30
  107. package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
  108. package/esm2022/src/app/core/register/register.form.mjs +0 -194
  109. package/esm2022/src/app/core/register/register.modal.mjs +0 -55
  110. package/esm2022/src/app/core/register/register.module.mjs +0 -23
  111. package/esm2022/src/app/core/services/account.service.mjs +0 -1346
  112. package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
  113. package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -473
  114. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -230
  115. package/esm2022/src/app/core/services/base58.mjs +0 -83
  116. package/esm2022/src/app/core/services/config/core.config.mjs +0 -233
  117. package/esm2022/src/app/core/services/config.service.mjs +0 -384
  118. package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
  119. package/esm2022/src/app/core/services/errors.mjs +0 -52
  120. package/esm2022/src/app/core/services/local-settings.service.mjs +0 -482
  121. package/esm2022/src/app/core/services/model/account.model.mjs +0 -150
  122. package/esm2022/src/app/core/services/model/config.model.mjs +0 -107
  123. package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
  124. package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
  125. package/esm2022/src/app/core/services/model/entity.model.mjs +0 -224
  126. package/esm2022/src/app/core/services/model/filter.model.mjs +0 -93
  127. package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
  128. package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
  129. package/esm2022/src/app/core/services/model/peer.model.mjs +0 -93
  130. package/esm2022/src/app/core/services/model/person.model.mjs +0 -114
  131. package/esm2022/src/app/core/services/model/referential.model.mjs +0 -202
  132. package/esm2022/src/app/core/services/model/settings.model.mjs +0 -4
  133. package/esm2022/src/app/core/services/model/token.model.mjs +0 -56
  134. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -195
  135. package/esm2022/src/app/core/services/network.service.mjs +0 -631
  136. package/esm2022/src/app/core/services/network.types.mjs +0 -20
  137. package/esm2022/src/app/core/services/network.utils.mjs +0 -15
  138. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
  139. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
  140. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
  141. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -54
  142. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -21
  143. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
  144. package/esm2022/src/app/core/services/platform.service.mjs +0 -583
  145. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
  146. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -449
  147. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
  148. package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
  149. package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -45
  150. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
  151. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -81
  152. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
  153. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
  154. package/esm2022/src/app/core/settings/settings.module.mjs +0 -22
  155. package/esm2022/src/app/core/settings/settings.page.mjs +0 -341
  156. package/esm2022/src/app/core/table/async-table.class.mjs +0 -1753
  157. package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -127
  158. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -117
  159. package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
  160. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  161. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -401
  162. package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
  163. package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
  164. package/esm2022/src/app/core/table/table.class.mjs +0 -1816
  165. package/esm2022/src/app/core/table/table.model.mjs +0 -16
  166. package/esm2022/src/app/core/table/table.module.mjs +0 -51
  167. package/esm2022/src/app/core/table/table.pipes.mjs +0 -77
  168. package/esm2022/src/app/core/table/table.utils.mjs +0 -31
  169. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
  170. package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -329
  171. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -25
  172. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
  173. package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -273
  174. package/esm2022/src/app/shared/alerts.mjs +0 -243
  175. package/esm2022/src/app/shared/audio/audio.mjs +0 -249
  176. package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
  177. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
  178. package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
  179. package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -9
  180. package/esm2022/src/app/shared/constants.mjs +0 -16
  181. package/esm2022/src/app/shared/dates.mjs +0 -151
  182. package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
  183. package/esm2022/src/app/shared/debug/debug.component.mjs +0 -40
  184. package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
  185. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
  186. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -32
  187. package/esm2022/src/app/shared/directives/directives.module.mjs +0 -22
  188. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
  189. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
  190. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
  191. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -45
  192. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
  193. package/esm2022/src/app/shared/events.mjs +0 -63
  194. package/esm2022/src/app/shared/file/csv.utils.mjs +0 -92
  195. package/esm2022/src/app/shared/file/file.service.mjs +0 -118
  196. package/esm2022/src/app/shared/file/file.utils.mjs +0 -115
  197. package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
  198. package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
  199. package/esm2022/src/app/shared/file/uri.utils.mjs +0 -24
  200. package/esm2022/src/app/shared/focusable.mjs +0 -6
  201. package/esm2022/src/app/shared/form/field.component.mjs +0 -379
  202. package/esm2022/src/app/shared/form/field.model.mjs +0 -25
  203. package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
  204. package/esm2022/src/app/shared/forms.mjs +0 -480
  205. package/esm2022/src/app/shared/functions.mjs +0 -551
  206. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -82
  207. package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
  208. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
  209. package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -60
  210. package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -213
  211. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -59
  212. package/esm2022/src/app/shared/help/help.modal.mjs +0 -63
  213. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  214. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -112
  215. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
  216. package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
  217. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -388
  218. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
  219. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
  220. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -87
  221. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
  222. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
  223. package/esm2022/src/app/shared/image/image.model.mjs +0 -2
  224. package/esm2022/src/app/shared/image/image.module.mjs +0 -24
  225. package/esm2022/src/app/shared/image/image.service.mjs +0 -106
  226. package/esm2022/src/app/shared/inputs.mjs +0 -263
  227. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  228. package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
  229. package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
  230. package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
  231. package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
  232. package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
  233. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
  234. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1071
  235. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -79
  236. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
  237. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -231
  238. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
  239. package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
  240. package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
  241. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -71
  242. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -376
  243. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -61
  244. package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -75
  245. package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -779
  246. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -147
  247. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -76
  248. package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -471
  249. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
  250. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -681
  251. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -136
  252. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
  253. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
  254. package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -65
  255. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -33
  256. package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -274
  257. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -80
  258. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -313
  259. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -381
  260. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  261. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -118
  262. package/esm2022/src/app/shared/material/material.animations.mjs +0 -143
  263. package/esm2022/src/app/shared/material/material.config.mjs +0 -3
  264. package/esm2022/src/app/shared/material/material.module.mjs +0 -229
  265. package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -234
  266. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
  267. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
  268. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -375
  269. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  270. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
  271. package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
  272. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +0 -42
  273. package/esm2022/src/app/shared/material/text/text-form.component.mjs +0 -204
  274. package/esm2022/src/app/shared/material/text/text-form.module.mjs +0 -63
  275. package/esm2022/src/app/shared/modules.mjs +0 -12
  276. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -303
  277. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
  278. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
  279. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
  280. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
  281. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
  282. package/esm2022/src/app/shared/observables.mjs +0 -100
  283. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -156
  284. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -24
  285. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
  286. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -49
  287. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
  288. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
  289. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -36
  290. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
  291. package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
  292. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -48
  293. package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -52
  294. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
  295. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -63
  296. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
  297. package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -59
  298. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
  299. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -30
  300. package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -236
  301. package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -136
  302. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -180
  303. package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -136
  304. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
  305. package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
  306. package/esm2022/src/app/shared/platforms.mjs +0 -45
  307. package/esm2022/src/app/shared/rx-state.module.mjs +0 -19
  308. package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -7
  309. package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
  310. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -349
  311. package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
  312. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -118
  313. package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -107
  314. package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
  315. package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
  316. package/esm2022/src/app/shared/services.mjs +0 -62
  317. package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
  318. package/esm2022/src/app/shared/shared.module.mjs +0 -234
  319. package/esm2022/src/app/shared/shared.testing.module.mjs +0 -100
  320. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -279
  321. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
  322. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
  323. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
  324. package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
  325. package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
  326. package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
  327. package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
  328. package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
  329. package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -52
  330. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -30
  331. package/esm2022/src/app/shared/toast/toasts.mjs +0 -144
  332. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
  333. package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -263
  334. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
  335. package/esm2022/src/app/shared/types.mjs +0 -2
  336. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
  337. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
  338. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -106
  339. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -213
  340. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
  341. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -114
  342. package/esm2022/src/app/shared/validator/validators.mjs +0 -601
  343. package/esm2022/src/app/shared/version/versions.mjs +0 -81
  344. package/esm2022/src/app/social/job/job.module.mjs +0 -23
  345. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -35
  346. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -235
  347. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -47
  348. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
  349. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
  350. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
  351. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
  352. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
  353. package/esm2022/src/app/social/message/message.form.mjs +0 -140
  354. package/esm2022/src/app/social/message/message.modal.mjs +0 -110
  355. package/esm2022/src/app/social/message/message.model.mjs +0 -75
  356. package/esm2022/src/app/social/message/message.module.mjs +0 -22
  357. package/esm2022/src/app/social/message/message.service.mjs +0 -110
  358. package/esm2022/src/app/social/social.errors.mjs +0 -10
  359. package/esm2022/src/app/social/social.module.mjs +0 -22
  360. package/esm2022/src/app/social/social.testing.module.mjs +0 -40
  361. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -127
  362. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -260
  363. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -257
  364. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
  365. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
  366. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
  367. package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
  368. package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -23
  369. package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -509
  370. package/esm2022/src/environments/environment.class.mjs +0 -57
  371. package/esm2022/src/environments/environment.loader.mjs +0 -77
  372. package/esm2022/src/environments/environment.mjs +0 -105
  373. package/esm2022/sumaris-net.ngx-components.mjs +0 -5
  374. package/index.d.ts +0 -5
  375. package/public_api.d.ts +0 -322
  376. package/src/app/admin/admin-routing.module.d.ts +0 -9
  377. package/src/app/admin/admin.module.d.ts +0 -10
  378. package/src/app/admin/services/filter/person.filter.d.ts +0 -21
  379. package/src/app/admin/services/person.service.d.ts +0 -49
  380. package/src/app/admin/services/validator/person.validator.d.ts +0 -23
  381. package/src/app/admin/users/users.d.ts +0 -45
  382. package/src/app/admin/users/users.module.d.ts +0 -14
  383. package/src/app/core/about/about.modal.d.ts +0 -32
  384. package/src/app/core/about/about.module.d.ts +0 -10
  385. package/src/app/core/account/account.module.d.ts +0 -16
  386. package/src/app/core/account/account.page.d.ts +0 -80
  387. package/src/app/core/account/new-token.modal.d.ts +0 -41
  388. package/src/app/core/account/password/change-password.form.d.ts +0 -19
  389. package/src/app/core/account/password/change-password.module.d.ts +0 -11
  390. package/src/app/core/account/password/change-password.page.d.ts +0 -36
  391. package/src/app/core/account/token.table.d.ts +0 -27
  392. package/src/app/core/auth/auth.form.d.ts +0 -38
  393. package/src/app/core/auth/auth.modal.d.ts +0 -24
  394. package/src/app/core/auth/auth.module.d.ts +0 -13
  395. package/src/app/core/auth/reset-password.modal.d.ts +0 -26
  396. package/src/app/core/core.module.d.ts +0 -28
  397. package/src/app/core/core.testing.module.d.ts +0 -15
  398. package/src/app/core/form/array/form-array.d.ts +0 -136
  399. package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
  400. package/src/app/core/form/array/testing/form-array.test.d.ts +0 -26
  401. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -37
  402. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
  403. package/src/app/core/form/entity/editor.class.d.ts +0 -83
  404. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
  405. package/src/app/core/form/entity/entity-editor.class.d.ts +0 -204
  406. package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
  407. package/src/app/core/form/entity/entity.module.d.ts +0 -10
  408. package/src/app/core/form/entity/tab-editor.class.d.ts +0 -70
  409. package/src/app/core/form/form-container.class.d.ts +0 -126
  410. package/src/app/core/form/form.class.d.ts +0 -144
  411. package/src/app/core/form/form.module.d.ts +0 -14
  412. package/src/app/core/form/form.utils.d.ts +0 -251
  413. package/src/app/core/form/list/list.form.d.ts +0 -81
  414. package/src/app/core/form/list/list.module.d.ts +0 -9
  415. package/src/app/core/form/properties/properties.form.d.ts +0 -66
  416. package/src/app/core/form/properties/properties.module.d.ts +0 -11
  417. package/src/app/core/form/properties/properties.table.d.ts +0 -78
  418. package/src/app/core/form/properties/properties.utils.d.ts +0 -27
  419. package/src/app/core/form/properties/property.validator.d.ts +0 -19
  420. package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -19
  421. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
  422. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
  423. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
  424. package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -71
  425. package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -9
  426. package/src/app/core/form/username/username.form.d.ts +0 -19
  427. package/src/app/core/form/username/username.module.d.ts +0 -9
  428. package/src/app/core/graphql/graphql.module.d.ts +0 -7
  429. package/src/app/core/graphql/graphql.service.d.ts +0 -147
  430. package/src/app/core/graphql/graphql.utils.d.ts +0 -42
  431. package/src/app/core/home/home.d.ts +0 -94
  432. package/src/app/core/home/home.module.d.ts +0 -13
  433. package/src/app/core/icon/icon.component.d.ts +0 -13
  434. package/src/app/core/icon/icon.module.d.ts +0 -9
  435. package/src/app/core/install/install-upgrade-card.component.d.ts +0 -64
  436. package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
  437. package/src/app/core/menu/menu.component.d.ts +0 -69
  438. package/src/app/core/menu/menu.model.d.ts +0 -144
  439. package/src/app/core/menu/menu.module.d.ts +0 -12
  440. package/src/app/core/menu/menu.service.d.ts +0 -94
  441. package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
  442. package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
  443. package/src/app/core/menu/testing/menu.testing.d.ts +0 -51
  444. package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
  445. package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
  446. package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
  447. package/src/app/core/peer/select-peer.modal.d.ts +0 -60
  448. package/src/app/core/peer/select-peer.module.d.ts +0 -10
  449. package/src/app/core/register/register-confirm.page.d.ts +0 -24
  450. package/src/app/core/register/register.form.d.ts +0 -49
  451. package/src/app/core/register/register.modal.d.ts +0 -14
  452. package/src/app/core/register/register.module.d.ts +0 -12
  453. package/src/app/core/services/account.service.d.ts +0 -205
  454. package/src/app/core/services/auth-guard.service.d.ts +0 -17
  455. package/src/app/core/services/base-entity-service.class.d.ts +0 -123
  456. package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
  457. package/src/app/core/services/base58.d.ts +0 -7
  458. package/src/app/core/services/config/core.config.d.ts +0 -41
  459. package/src/app/core/services/config.service.d.ts +0 -63
  460. package/src/app/core/services/crypto.service.d.ts +0 -44
  461. package/src/app/core/services/errors.d.ts +0 -63
  462. package/src/app/core/services/local-settings.service.d.ts +0 -95
  463. package/src/app/core/services/model/account.model.d.ts +0 -41
  464. package/src/app/core/services/model/config.model.d.ts +0 -36
  465. package/src/app/core/services/model/department.model.d.ts +0 -11
  466. package/src/app/core/services/model/entity.decorators.d.ts +0 -17
  467. package/src/app/core/services/model/entity.model.d.ts +0 -87
  468. package/src/app/core/services/model/filter.model.d.ts +0 -37
  469. package/src/app/core/services/model/history.model.d.ts +0 -20
  470. package/src/app/core/services/model/model.enum.d.ts +0 -7
  471. package/src/app/core/services/model/peer.model.d.ts +0 -30
  472. package/src/app/core/services/model/person.model.d.ts +0 -37
  473. package/src/app/core/services/model/referential.model.d.ts +0 -83
  474. package/src/app/core/services/model/settings.model.d.ts +0 -28
  475. package/src/app/core/services/model/token.model.d.ts +0 -22
  476. package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -53
  477. package/src/app/core/services/network.service.d.ts +0 -151
  478. package/src/app/core/services/network.types.d.ts +0 -5
  479. package/src/app/core/services/network.utils.d.ts +0 -31
  480. package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
  481. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
  482. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
  483. package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
  484. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -13
  485. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
  486. package/src/app/core/services/platform.service.d.ts +0 -100
  487. package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
  488. package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
  489. package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
  490. package/src/app/core/services/testing/referential.validator.d.ts +0 -22
  491. package/src/app/core/services/validator/account.validator.d.ts +0 -24
  492. package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
  493. package/src/app/core/services/validator/local-settings.validator.d.ts +0 -22
  494. package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
  495. package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
  496. package/src/app/core/settings/settings.module.d.ts +0 -11
  497. package/src/app/core/settings/settings.page.d.ts +0 -81
  498. package/src/app/core/table/async-table.class.d.ts +0 -389
  499. package/src/app/core/table/column/actions-column.component.d.ts +0 -59
  500. package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -46
  501. package/src/app/core/table/column/row-field.component.d.ts +0 -40
  502. package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -81
  503. package/src/app/core/table/entities-table-datasource.class.d.ts +0 -95
  504. package/src/app/core/table/memory-table.class.d.ts +0 -25
  505. package/src/app/core/table/table-select-columns.component.d.ts +0 -22
  506. package/src/app/core/table/table.class.d.ts +0 -394
  507. package/src/app/core/table/table.model.d.ts +0 -26
  508. package/src/app/core/table/table.module.d.ts +0 -14
  509. package/src/app/core/table/table.pipes.d.ts +0 -28
  510. package/src/app/core/table/table.utils.d.ts +0 -11
  511. package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
  512. package/src/app/core/table/testing/table.testing.d.ts +0 -54
  513. package/src/app/core/table/testing/table.testing.module.d.ts +0 -14
  514. package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
  515. package/src/app/core/table/testing/table2.testing.d.ts +0 -48
  516. package/src/app/shared/alerts.d.ts +0 -55
  517. package/src/app/shared/audio/audio.d.ts +0 -44
  518. package/src/app/shared/audio/audio.testing.d.ts +0 -13
  519. package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
  520. package/src/app/shared/capacitor/keyboard.d.ts +0 -16
  521. package/src/app/shared/capacitor/plugins.d.ts +0 -7
  522. package/src/app/shared/constants.d.ts +0 -13
  523. package/src/app/shared/dates.d.ts +0 -48
  524. package/src/app/shared/debug/debug-service.class.d.ts +0 -5
  525. package/src/app/shared/debug/debug.component.d.ts +0 -13
  526. package/src/app/shared/debug/debug.module.d.ts +0 -12
  527. package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
  528. package/src/app/shared/directives/autotitle.directive.d.ts +0 -10
  529. package/src/app/shared/directives/directives.module.d.ts +0 -12
  530. package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
  531. package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
  532. package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
  533. package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -12
  534. package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
  535. package/src/app/shared/events.d.ts +0 -28
  536. package/src/app/shared/file/csv.utils.d.ts +0 -24
  537. package/src/app/shared/file/file.service.d.ts +0 -23
  538. package/src/app/shared/file/file.utils.d.ts +0 -20
  539. package/src/app/shared/file/images.utils.d.ts +0 -36
  540. package/src/app/shared/file/json.utils.d.ts +0 -19
  541. package/src/app/shared/file/uri.utils.d.ts +0 -8
  542. package/src/app/shared/focusable.d.ts +0 -4
  543. package/src/app/shared/form/field.component.d.ts +0 -74
  544. package/src/app/shared/form/field.model.d.ts +0 -39
  545. package/src/app/shared/form/loading-spinner.d.ts +0 -8
  546. package/src/app/shared/forms.d.ts +0 -118
  547. package/src/app/shared/functions.d.ts +0 -152
  548. package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -19
  549. package/src/app/shared/gesture/gesture-config.d.ts +0 -15
  550. package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
  551. package/src/app/shared/graph/colors.utils.d.ts +0 -17
  552. package/src/app/shared/graph/graph-colors.d.ts +0 -63
  553. package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
  554. package/src/app/shared/help/help.modal.d.ts +0 -33
  555. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
  556. package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -42
  557. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
  558. package/src/app/shared/http/http.utils.d.ts +0 -28
  559. package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -98
  560. package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
  561. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
  562. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
  563. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
  564. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
  565. package/src/app/shared/image/image.model.d.ts +0 -5
  566. package/src/app/shared/image/image.module.d.ts +0 -8
  567. package/src/app/shared/image/image.service.d.ts +0 -32
  568. package/src/app/shared/inputs.d.ts +0 -34
  569. package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
  570. package/src/app/shared/logging/log-level.model.d.ts +0 -38
  571. package/src/app/shared/logging/logger.model.d.ts +0 -68
  572. package/src/app/shared/logging/logging-service.class.d.ts +0 -39
  573. package/src/app/shared/logging/logging-service.config.d.ts +0 -25
  574. package/src/app/shared/logging/logging-service.module.d.ts +0 -9
  575. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -55
  576. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -180
  577. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -22
  578. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
  579. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -46
  580. package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
  581. package/src/app/shared/material/badge/badge.module.d.ts +0 -10
  582. package/src/app/shared/material/badge/badge.test.d.ts +0 -21
  583. package/src/app/shared/material/boolean/boolean.module.d.ts +0 -21
  584. package/src/app/shared/material/boolean/material.boolean.d.ts +0 -93
  585. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -22
  586. package/src/app/shared/material/chips/chips.module.d.ts +0 -22
  587. package/src/app/shared/material/chips/material.chips.d.ts +0 -150
  588. package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
  589. package/src/app/shared/material/datetime/datetime.module.d.ts +0 -24
  590. package/src/app/shared/material/datetime/material.date.d.ts +0 -90
  591. package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
  592. package/src/app/shared/material/datetime/material.datetime.d.ts +0 -121
  593. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -37
  594. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
  595. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
  596. package/src/app/shared/material/duration/duration.module.d.ts +0 -19
  597. package/src/app/shared/material/duration/duration.utils.d.ts +0 -3
  598. package/src/app/shared/material/duration/material.duration.d.ts +0 -58
  599. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -22
  600. package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -21
  601. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -70
  602. package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -20
  603. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -27
  604. package/src/app/shared/material/material.animations.d.ts +0 -6
  605. package/src/app/shared/material/material.config.d.ts +0 -3
  606. package/src/app/shared/material/material.module.d.ts +0 -45
  607. package/src/app/shared/material/material.testing.module.d.ts +0 -31
  608. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
  609. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
  610. package/src/app/shared/material/swipe/material.swipe.d.ts +0 -90
  611. package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
  612. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
  613. package/src/app/shared/material/testing/common.test.d.ts +0 -25
  614. package/src/app/shared/material/text/testing/text-form.testing.d.ts +0 -19
  615. package/src/app/shared/material/text/text-form.component.d.ts +0 -66
  616. package/src/app/shared/material/text/text-form.module.d.ts +0 -16
  617. package/src/app/shared/modules.d.ts +0 -9
  618. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -60
  619. package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
  620. package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
  621. package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
  622. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
  623. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
  624. package/src/app/shared/observables.d.ts +0 -30
  625. package/src/app/shared/pipes/arrays.pipe.d.ts +0 -59
  626. package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
  627. package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
  628. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -23
  629. package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
  630. package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -12
  631. package/src/app/shared/pipes/duration.pipe.d.ts +0 -13
  632. package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
  633. package/src/app/shared/pipes/form.pipes.d.ts +0 -69
  634. package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
  635. package/src/app/shared/pipes/html.pipes.d.ts +0 -15
  636. package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
  637. package/src/app/shared/pipes/maps.pipe.d.ts +0 -22
  638. package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
  639. package/src/app/shared/pipes/math.pipes.d.ts +0 -20
  640. package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
  641. package/src/app/shared/pipes/number-format.pipe.d.ts +0 -10
  642. package/src/app/shared/pipes/pipes.module.d.ts +0 -31
  643. package/src/app/shared/pipes/property.pipes.d.ts +0 -47
  644. package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
  645. package/src/app/shared/pipes/string.pipes.d.ts +0 -53
  646. package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
  647. package/src/app/shared/pipes/types.pipes.d.ts +0 -30
  648. package/src/app/shared/platforms.d.ts +0 -8
  649. package/src/app/shared/rx-state.module.d.ts +0 -10
  650. package/src/app/shared/services/entity-service.class.d.ts +0 -71
  651. package/src/app/shared/services/job.utils.d.ts +0 -20
  652. package/src/app/shared/services/memory-entity-service.class.d.ts +0 -78
  653. package/src/app/shared/services/progress-bar.service.d.ts +0 -20
  654. package/src/app/shared/services/startable-observable-service.class.d.ts +0 -36
  655. package/src/app/shared/services/startable-service.class.d.ts +0 -37
  656. package/src/app/shared/services/translate-context.service.d.ts +0 -29
  657. package/src/app/shared/services/validator-service.class.d.ts +0 -11
  658. package/src/app/shared/services.d.ts +0 -10
  659. package/src/app/shared/shared-routing.module.d.ts +0 -23
  660. package/src/app/shared/shared.module.d.ts +0 -34
  661. package/src/app/shared/shared.testing.module.d.ts +0 -19
  662. package/src/app/shared/storage/storage-explorer.component.d.ts +0 -59
  663. package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
  664. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
  665. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
  666. package/src/app/shared/storage/storage.service.d.ts +0 -22
  667. package/src/app/shared/storage/storage.utils.d.ts +0 -19
  668. package/src/app/shared/testing/maskito.test.d.ts +0 -10
  669. package/src/app/shared/testing/observable.test.d.ts +0 -25
  670. package/src/app/shared/testing/tests.page.d.ts +0 -20
  671. package/src/app/shared/toast/toast.testing.d.ts +0 -15
  672. package/src/app/shared/toast/toast.testing.module.d.ts +0 -11
  673. package/src/app/shared/toast/toasts.d.ts +0 -17
  674. package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
  675. package/src/app/shared/toolbar/toolbar.d.ts +0 -68
  676. package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
  677. package/src/app/shared/types.d.ts +0 -31
  678. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
  679. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
  680. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -39
  681. package/src/app/shared/upload-file/upload-file.component.d.ts +0 -49
  682. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
  683. package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
  684. package/src/app/shared/validator/validators.d.ts +0 -130
  685. package/src/app/shared/version/versions.d.ts +0 -26
  686. package/src/app/social/job/job.module.d.ts +0 -12
  687. package/src/app/social/job/progression/job-progression.component.d.ts +0 -23
  688. package/src/app/social/job/progression/job-progression.icon.d.ts +0 -62
  689. package/src/app/social/job/progression/job-progression.list.d.ts +0 -19
  690. package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
  691. package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
  692. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
  693. package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
  694. package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
  695. package/src/app/social/message/message.form.d.ts +0 -36
  696. package/src/app/social/message/message.modal.d.ts +0 -43
  697. package/src/app/social/message/message.model.d.ts +0 -33
  698. package/src/app/social/message/message.module.d.ts +0 -12
  699. package/src/app/social/message/message.service.d.ts +0 -32
  700. package/src/app/social/social.errors.d.ts +0 -9
  701. package/src/app/social/social.module.d.ts +0 -20
  702. package/src/app/social/social.testing.module.d.ts +0 -13
  703. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -32
  704. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -71
  705. package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -35
  706. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
  707. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
  708. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -42
  709. package/src/app/social/user-event/user-event.model.d.ts +0 -44
  710. package/src/app/social/user-event/user-event.module.d.ts +0 -13
  711. package/src/app/social/user-event/user-event.service.d.ts +0 -129
  712. package/src/environments/environment.class.d.ts +0 -68
  713. package/src/environments/environment.d.ts +0 -2
  714. package/src/environments/environment.loader.d.ts +0 -24
  715. package/src/theme/_globals.scss +0 -5
@@ -1,33 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class NgVarDirective {
4
- templateRef;
5
- vcRef;
6
- set ngVar(context) {
7
- this.context.$implicit = this.context.ngVar = context;
8
- if (!this.hasView) {
9
- this.vcRef.createEmbeddedView(this.templateRef, this.context);
10
- this.hasView = true;
11
- }
12
- }
13
- context = {
14
- $implicit: null,
15
- ngVar: null,
16
- };
17
- hasView = false;
18
- constructor(templateRef, vcRef) {
19
- this.templateRef = templateRef;
20
- this.vcRef = vcRef;
21
- }
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgVarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
23
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgVarDirective, selector: "[ngVar]", inputs: { ngVar: "ngVar" }, ngImport: i0 });
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgVarDirective, decorators: [{
26
- type: Directive,
27
- args: [{
28
- selector: '[ngVar]',
29
- }]
30
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { ngVar: [{
31
- type: Input
32
- }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUMsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxjQUFjO0lBc0JmO0lBQ0E7SUF0QlYsSUFDSSxLQUFLLENBQUMsT0FBZ0I7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLE9BQU8sR0FHWDtRQUNGLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDO0lBRU0sT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV4QixZQUNVLFdBQTZCLEVBQzdCLEtBQXVCO1FBRHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUM5QixDQUFDO3VHQXhCTyxjQUFjOzJGQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7aUJBQ3BCOytHQUdLLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ1Zhcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ1ZhckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpXG4gIHNldCBuZ1Zhcihjb250ZXh0OiB1bmtub3duKSB7XG4gICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdCA9IHRoaXMuY29udGV4dC5uZ1ZhciA9IGNvbnRleHQ7XG5cbiAgICBpZiAoIXRoaXMuaGFzVmlldykge1xuICAgICAgdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMuaGFzVmlldyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb250ZXh0OiB7XG4gICAgJGltcGxpY2l0OiB1bmtub3duO1xuICAgIG5nVmFyOiB1bmtub3duO1xuICB9ID0ge1xuICAgICRpbXBsaWNpdDogbnVsbCxcbiAgICBuZ1ZhcjogbnVsbCxcbiAgfTtcblxuICBwcml2YXRlIGhhc1ZpZXcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxufVxuIl19
@@ -1,62 +0,0 @@
1
- import { Component, EventEmitter, HostBinding, Input, Optional, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/material/table";
4
- import * as i2 from "./resizable.directive";
5
- export class ResizableComponent {
6
- columnDef;
7
- resizable;
8
- sizeChanged = new EventEmitter();
9
- width = null;
10
- minWidth = null;
11
- maxWidth = null;
12
- debug = false;
13
- constructor(columnDef) {
14
- this.columnDef = columnDef;
15
- }
16
- onResize(width, opts) {
17
- if (!this.resizable)
18
- return;
19
- if (this.debug)
20
- console.info(`resize:${width}`);
21
- this.width = width + 'px';
22
- this.minWidth = width + 'px';
23
- this.maxWidth = width + 'px';
24
- if (!opts || opts.emitEvent) {
25
- this.sizeChanged.emit(width);
26
- }
27
- }
28
- onFit(opts) {
29
- if (!this.resizable)
30
- return;
31
- if (this.debug)
32
- console.info('fit');
33
- this.width = 'auto';
34
- this.minWidth = null;
35
- this.maxWidth = null;
36
- if (!opts || opts.emitEvent) {
37
- this.sizeChanged.emit(undefined);
38
- }
39
- }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableComponent, deps: [{ token: i1.MatColumnDef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
41
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ResizableComponent, selector: "th[resizable]", inputs: { resizable: "resizable" }, outputs: { sizeChanged: "sizeChanged" }, host: { properties: { "style.width": "this.width", "style.min-width": "this.minWidth", "style.max-width": "this.maxWidth" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"bar\" [class.cdk-visually-hidden]=\"!resizable\" (resizable)=\"onResize($event)\" (fit)=\"onFit()\"></div>\n</div>\n", styles: [":host:last-child .bar{display:none}.wrapper{display:flex;justify-content:flex-end;align-items:center}.content{flex:1}.bar{height:var(--app-table-header-height, 55px);width:10px;justify-self:flex-end;border-left:4px solid transparent;border-right:4px solid transparent;background:var(--ion-color-secondary);background-clip:content-box;cursor:ew-resize;opacity:0;transition:opacity .3s}.bar:hover,.bar:active{opacity:1}:host-context(.mat-table-sticky) .bar{width:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.ResizableDirective, selector: "[resizable]", outputs: ["resizable", "fit"] }] });
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableComponent, decorators: [{
44
- type: Component,
45
- args: [{ selector: 'th[resizable]', template: "<div class=\"wrapper\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"bar\" [class.cdk-visually-hidden]=\"!resizable\" (resizable)=\"onResize($event)\" (fit)=\"onFit()\"></div>\n</div>\n", styles: [":host:last-child .bar{display:none}.wrapper{display:flex;justify-content:flex-end;align-items:center}.content{flex:1}.bar{height:var(--app-table-header-height, 55px);width:10px;justify-self:flex-end;border-left:4px solid transparent;border-right:4px solid transparent;background:var(--ion-color-secondary);background-clip:content-box;cursor:ew-resize;opacity:0;transition:opacity .3s}.bar:hover,.bar:active{opacity:1}:host-context(.mat-table-sticky) .bar{width:12px!important}\n"] }]
46
- }], ctorParameters: () => [{ type: i1.MatColumnDef, decorators: [{
47
- type: Optional
48
- }] }], propDecorators: { resizable: [{
49
- type: Input
50
- }], sizeChanged: [{
51
- type: Output
52
- }], width: [{
53
- type: HostBinding,
54
- args: ['style.width']
55
- }], minWidth: [{
56
- type: HostBinding,
57
- args: ['style.min-width']
58
- }], maxWidth: [{
59
- type: HostBinding,
60
- args: ['style.max-width']
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL3Jlc2l6YWJsZS9yZXNpemFibGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTOUYsTUFBTSxPQUFPLGtCQUFrQjtJQWVXO0lBZC9CLFNBQVMsQ0FBVTtJQUNsQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUduRCxLQUFLLEdBQWtCLElBQUksQ0FBQztJQUc1QixRQUFRLEdBQWtCLElBQUksQ0FBQztJQUcvQixRQUFRLEdBQWtCLElBQUksQ0FBQztJQUV2QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRXRCLFlBQXdDLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBRyxDQUFDO0lBRW5FLFFBQVEsQ0FBQyxLQUFhLEVBQUUsSUFBNkI7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBNkI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzt1R0FyQ1Usa0JBQWtCOzJGQUFsQixrQkFBa0IsaVFDVC9CLGtPQU1BOzsyRkRHYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBRUUsZUFBZTs7MEJBbUJaLFFBQVE7eUNBZFosU0FBUztzQkFBakIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdQLEtBQUs7c0JBREosV0FBVzt1QkFBQyxhQUFhO2dCQUkxQixRQUFRO3NCQURQLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUk5QixRQUFRO3NCQURQLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0aFtyZXNpemFibGVdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc2l6YWJsZS50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzaXphYmxlLnN0eWxlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuO1xuICBAT3V0cHV0KCkgc2l6ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcbiAgd2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJylcbiAgbWluV2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJylcbiAgbWF4V2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZGVidWcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGVmOiBNYXRDb2x1bW5EZWYpIHt9XG5cbiAgb25SZXNpemUod2lkdGg6IG51bWJlciwgb3B0cz86IHsgZW1pdEV2ZW50OiBib29sZWFuIH0pIHtcbiAgICBpZiAoIXRoaXMucmVzaXphYmxlKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuaW5mbyhgcmVzaXplOiR7d2lkdGh9YCk7XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICB0aGlzLm1pbldpZHRoID0gd2lkdGggKyAncHgnO1xuICAgIHRoaXMubWF4V2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLnNpemVDaGFuZ2VkLmVtaXQod2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRml0KG9wdHM/OiB7IGVtaXRFdmVudDogYm9vbGVhbiB9KSB7XG4gICAgaWYgKCF0aGlzLnJlc2l6YWJsZSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmluZm8oJ2ZpdCcpO1xuICAgIHRoaXMud2lkdGggPSAnYXV0byc7XG4gICAgdGhpcy5taW5XaWR0aCA9IG51bGw7XG4gICAgdGhpcy5tYXhXaWR0aCA9IG51bGw7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLnNpemVDaGFuZ2VkLmVtaXQodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJhclwiIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cIiFyZXNpemFibGVcIiAocmVzaXphYmxlKT1cIm9uUmVzaXplKCRldmVudClcIiAoZml0KT1cIm9uRml0KClcIj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,45 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Directive, ElementRef, Inject, Output } from '@angular/core';
3
- import { bufferWhen, distinctUntilChanged, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
4
- import { fromEvent, interval } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- export class ResizableDirective {
7
- document;
8
- elementRef;
9
- resizable;
10
- // fit: doubleclick
11
- fit;
12
- constructor(document, elementRef) {
13
- this.document = document;
14
- this.elementRef = elementRef;
15
- // resize: mousedown -> mousemove -> mouseup
16
- this.resizable = fromEvent(this.elementRef.nativeElement, 'mousedown').pipe(tap((e) => {
17
- e.preventDefault();
18
- e.stopPropagation();
19
- }), switchMap(() => {
20
- const { width, right } = this.elementRef.nativeElement.closest('th').getBoundingClientRect();
21
- return fromEvent(this.document, 'mousemove').pipe(map(({ clientX }) => width + clientX - right), distinctUntilChanged(), takeUntil(fromEvent(this.document, 'mouseup')));
22
- }));
23
- // fit: doubleclick
24
- this.fit = fromEvent(this.elementRef.nativeElement, 'click').pipe(bufferWhen(() => interval(500)), filter((ar) => ar.length === 2));
25
- }
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableDirective, deps: [{ token: DOCUMENT }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
27
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ResizableDirective, selector: "[resizable]", outputs: { resizable: "resizable", fit: "fit" }, ngImport: i0 });
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableDirective, decorators: [{
30
- type: Directive,
31
- args: [{
32
- selector: '[resizable]',
33
- }]
34
- }], ctorParameters: () => [{ type: undefined, decorators: [{
35
- type: Inject,
36
- args: [DOCUMENT]
37
- }] }, { type: i0.ElementRef, decorators: [{
38
- type: Inject,
39
- args: [ElementRef]
40
- }] }], propDecorators: { resizable: [{
41
- type: Output
42
- }], fit: [{
43
- type: Output
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS3ZELE1BQU0sT0FBTyxrQkFBa0I7SUFTUTtJQUNFO0lBUjlCLFNBQVMsQ0FBcUI7SUFFdkMsbUJBQW1CO0lBRVYsR0FBRyxDQUEyQjtJQUV2QyxZQUNxQyxRQUFhLEVBQ1gsVUFBbUM7UUFEckMsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNYLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBRXhFLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ3JGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3RixPQUFPLFNBQVMsQ0FBYSxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDM0QsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFDN0Msb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQy9DLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFhLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0UsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMvQixNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDO3VHQWpDVSxrQkFBa0Isa0JBU25CLFFBQVEsYUFDUixVQUFVOzJGQVZULGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7OzBCQVVJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVO3lDQVJYLFNBQVM7c0JBRGpCLE1BQU07Z0JBS0UsR0FBRztzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYnVmZmVyV2hlbiwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmVzaXphYmxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZURpcmVjdGl2ZSB7XG4gIEBPdXRwdXQoKVxuICByZWFkb25seSByZXNpemFibGU6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAvLyBmaXQ6IGRvdWJsZWNsaWNrXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBmaXQ6IE9ic2VydmFibGU8TW91c2VFdmVudFtdPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBhbnksXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICAgIC8vIHJlc2l6ZTogbW91c2Vkb3duIC0+IG1vdXNlbW92ZSAtPiBtb3VzZXVwXG4gICAgdGhpcy5yZXNpemFibGUgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKS5waXBlKFxuICAgICAgdGFwKChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgcmlnaHQgfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3RoJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5kb2N1bWVudCwgJ21vdXNlbW92ZScpLnBpcGUoXG4gICAgICAgICAgbWFwKCh7IGNsaWVudFggfSkgPT4gd2lkdGggKyBjbGllbnRYIC0gcmlnaHQpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgdGFrZVVudGlsKGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnbW91c2V1cCcpKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gZml0OiBkb3VibGVjbGlja1xuICAgIHRoaXMuZml0ID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKFxuICAgICAgYnVmZmVyV2hlbigoKSA9PiBpbnRlcnZhbCg1MDApKSxcbiAgICAgIGZpbHRlcigoYXIpID0+IGFyLmxlbmd0aCA9PT0gMilcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { ResizableComponent } from './resizable.component';
3
- import { ResizableDirective } from './resizable.directive';
4
- import * as i0 from "@angular/core";
5
- export class ResizableModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule, declarations: [ResizableComponent, ResizableDirective], exports: [ResizableComponent, ResizableDirective] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizableModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [ResizableComponent, ResizableDirective],
14
- exports: [ResizableComponent, ResizableDirective],
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLGVBQWU7dUdBQWYsZUFBZTt3R0FBZixlQUFlLGlCQUhYLGtCQUFrQixFQUFFLGtCQUFrQixhQUMzQyxrQkFBa0IsRUFBRSxrQkFBa0I7d0dBRXJDLGVBQWU7OzJGQUFmLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNpemFibGVDb21wb25lbnQgfSBmcm9tICcuL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNpemFibGUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVzaXphYmxlQ29tcG9uZW50LCBSZXNpemFibGVEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbUmVzaXphYmxlQ29tcG9uZW50LCBSZXNpemFibGVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVNb2R1bGUge31cbiJdfQ==
@@ -1,63 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { fromEvent, merge, timer } from 'rxjs';
3
- import { filter } from 'rxjs/operators';
4
- export function createPromiseEventEmitter() {
5
- return new EventEmitter(true);
6
- }
7
- export function createPromiseEvent(eventType, promise, initArg) {
8
- const detail = {
9
- ...(initArg?.detail || {}),
10
- ...promise,
11
- };
12
- return new CustomEvent(eventType, { detail });
13
- }
14
- export function emitPromiseEvent(emitter, eventType, initArg) {
15
- return new Promise((resolve, reject) => {
16
- const event = createPromiseEvent(eventType, {
17
- success: resolve,
18
- error: reject,
19
- }, initArg);
20
- emitter.emit(event);
21
- });
22
- }
23
- /**
24
- * Listen end of scroll.
25
- * <p>
26
- * The threshold distance from the bottom of the content to call the infinite output event when scrolled.
27
- * The threshold value can be either a percent, or in pixels.
28
- * For example, use the value of 10% for the infinite output event to get called when the user has scrolled
29
- * 10% from the bottom of the page. Use the value 100px when the scroll is within 100 pixels from the bottom of the page.
30
- * </p>
31
- *
32
- * @param element
33
- * @param threshold default to '15%'
34
- */
35
- export function fromScrollEndEvent(element, threshold, dueTime) {
36
- threshold = threshold || '15%';
37
- let isEnd;
38
- // Listen using percentage
39
- if (threshold.endsWith('%')) {
40
- const thresholdRatio = parseInt(threshold.slice(0, threshold.length - 1)) / 100;
41
- isEnd = () => {
42
- const endPosRatio = 1 - (element.scrollTop + element.offsetHeight) / element.scrollHeight;
43
- return endPosRatio < thresholdRatio;
44
- };
45
- }
46
- // Listen using pixels
47
- else if (threshold.endsWith('px')) {
48
- const thresholdPx = parseInt(threshold.slice(0, threshold.length - 2));
49
- isEnd = () => {
50
- const endPosPx = element.scrollHeight - (element.scrollTop + element.offsetHeight);
51
- return endPosPx < thresholdPx;
52
- };
53
- }
54
- else {
55
- throw new Error("Invalid argument 'threshold'. Expected value unit: 'px' or '%' ");
56
- }
57
- // Check bottom reach, even if NO scroll event (e.g. when already reach the bottom)
58
- if (dueTime > 0) {
59
- return merge(fromEvent(element, 'scroll'), timer(dueTime)).pipe(filter(() => isEnd()));
60
- }
61
- return fromEvent(element, 'scroll').pipe(filter(() => isEnd()));
62
- }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVN4QyxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE9BQU8sSUFBSSxZQUFZLENBQXFCLElBQUksQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFNBQWlCLEVBQ2pCLE9BQStCLEVBQy9CLE9BQTRCO0lBRTVCLE1BQU0sTUFBTSxHQUE0QjtRQUN0QyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDMUIsR0FBRyxPQUFPO0tBQ1gsQ0FBQztJQUNGLE9BQU8sSUFBSSxXQUFXLENBQTZCLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsT0FBeUMsRUFDekMsU0FBaUIsRUFDakIsT0FBNEI7SUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FDOUIsU0FBUyxFQUNUO1lBQ0UsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLE1BQU07U0FDZCxFQUNELE9BQU8sQ0FDUixDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFNRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFvQixFQUFFLFNBQWtCLEVBQUUsT0FBZ0I7SUFDM0YsU0FBUyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDL0IsSUFBSSxLQUFvQixDQUFDO0lBRXpCLDBCQUEwQjtJQUMxQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNoRixLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUMxRixPQUFPLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDdEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQjtTQUNqQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkYsT0FBTyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLENBQUMsQ0FBQztJQUNKLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbWlzZUV2ZW50UGF5bG9hZDxSID0gYW55PiB7XG4gIHN1Y2Nlc3M6ICh2YWx1ZT86IFIpID0+IHZvaWQ7XG4gIGVycm9yOiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBQcm9taXNlRXZlbnQ8UiA9IGFueSwgRCA9IHZvaWQ+ID0gQ3VzdG9tRXZlbnQ8UHJvbWlzZUV2ZW50UGF5bG9hZDxSPiAmIEQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvbWlzZUV2ZW50RW1pdHRlcjxSID0gYW55LCBEID0gdm9pZD4oKTogRXZlbnRFbWl0dGVyPFByb21pc2VFdmVudDxSLCBEPj4ge1xuICByZXR1cm4gbmV3IEV2ZW50RW1pdHRlcjxQcm9taXNlRXZlbnQ8UiwgRD4+KHRydWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvbWlzZUV2ZW50PFQgPSB2b2lkLCBEID0gdm9pZD4oXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBwcm9taXNlOiBQcm9taXNlRXZlbnRQYXlsb2FkPFQ+LFxuICBpbml0QXJnPzogQ3VzdG9tRXZlbnRJbml0PEQ+XG4pOiBQcm9taXNlRXZlbnQ8VCwgRD4ge1xuICBjb25zdCBkZXRhaWwgPSA8UHJvbWlzZUV2ZW50UGF5bG9hZCAmIEQ+e1xuICAgIC4uLihpbml0QXJnPy5kZXRhaWwgfHwge30pLFxuICAgIC4uLnByb21pc2UsXG4gIH07XG4gIHJldHVybiBuZXcgQ3VzdG9tRXZlbnQ8UHJvbWlzZUV2ZW50UGF5bG9hZDxUPiAmIEQ+KGV2ZW50VHlwZSwgeyBkZXRhaWwgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbWl0UHJvbWlzZUV2ZW50PFIgPSBhbnksIEQgPSB2b2lkPihcbiAgZW1pdHRlcjogRXZlbnRFbWl0dGVyPFByb21pc2VFdmVudDxSLCBEPj4sXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuICBpbml0QXJnPzogQ3VzdG9tRXZlbnRJbml0PEQ+XG4pOiBQcm9taXNlPFI+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBldmVudCA9IGNyZWF0ZVByb21pc2VFdmVudChcbiAgICAgIGV2ZW50VHlwZSxcbiAgICAgIHtcbiAgICAgICAgc3VjY2VzczogcmVzb2x2ZSxcbiAgICAgICAgZXJyb3I6IHJlamVjdCxcbiAgICAgIH0sXG4gICAgICBpbml0QXJnXG4gICAgKTtcbiAgICBlbWl0dGVyLmVtaXQoZXZlbnQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV0YWJsZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICB0YXJnZXQ6IEV2ZW50VGFyZ2V0ICYgeyBjb21wbGV0ZT86ICgpID0+IHZvaWQgfTtcbn1cblxuLyoqXG4gKiBMaXN0ZW4gZW5kIG9mIHNjcm9sbC5cbiAqIDxwPlxuICogICBUaGUgdGhyZXNob2xkIGRpc3RhbmNlIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgY29udGVudCB0byBjYWxsIHRoZSBpbmZpbml0ZSBvdXRwdXQgZXZlbnQgd2hlbiBzY3JvbGxlZC5cbiAqICAgVGhlIHRocmVzaG9sZCB2YWx1ZSBjYW4gYmUgZWl0aGVyIGEgcGVyY2VudCwgb3IgaW4gcGl4ZWxzLlxuICogICBGb3IgZXhhbXBsZSwgdXNlIHRoZSB2YWx1ZSBvZiAxMCUgZm9yIHRoZSBpbmZpbml0ZSBvdXRwdXQgZXZlbnQgdG8gZ2V0IGNhbGxlZCB3aGVuIHRoZSB1c2VyIGhhcyBzY3JvbGxlZFxuICogICAxMCUgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBwYWdlLiBVc2UgdGhlIHZhbHVlIDEwMHB4IHdoZW4gdGhlIHNjcm9sbCBpcyB3aXRoaW4gMTAwIHBpeGVscyBmcm9tIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuXG4gKiA8L3A+XG4gKlxuICogQHBhcmFtIGVsZW1lbnRcbiAqIEBwYXJhbSB0aHJlc2hvbGQgZGVmYXVsdCB0byAnMTUlJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVNjcm9sbEVuZEV2ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0aHJlc2hvbGQ/OiBzdHJpbmcsIGR1ZVRpbWU/OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICB0aHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgJzE1JSc7XG4gIGxldCBpc0VuZDogKCkgPT4gYm9vbGVhbjtcblxuICAvLyBMaXN0ZW4gdXNpbmcgcGVyY2VudGFnZVxuICBpZiAodGhyZXNob2xkLmVuZHNXaXRoKCclJykpIHtcbiAgICBjb25zdCB0aHJlc2hvbGRSYXRpbyA9IHBhcnNlSW50KHRocmVzaG9sZC5zbGljZSgwLCB0aHJlc2hvbGQubGVuZ3RoIC0gMSkpIC8gMTAwO1xuICAgIGlzRW5kID0gKCkgPT4ge1xuICAgICAgY29uc3QgZW5kUG9zUmF0aW8gPSAxIC0gKGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQpIC8gZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgICByZXR1cm4gZW5kUG9zUmF0aW8gPCB0aHJlc2hvbGRSYXRpbztcbiAgICB9O1xuICB9XG5cbiAgLy8gTGlzdGVuIHVzaW5nIHBpeGVsc1xuICBlbHNlIGlmICh0aHJlc2hvbGQuZW5kc1dpdGgoJ3B4JykpIHtcbiAgICBjb25zdCB0aHJlc2hvbGRQeCA9IHBhcnNlSW50KHRocmVzaG9sZC5zbGljZSgwLCB0aHJlc2hvbGQubGVuZ3RoIC0gMikpO1xuICAgIGlzRW5kID0gKCkgPT4ge1xuICAgICAgY29uc3QgZW5kUG9zUHggPSBlbGVtZW50LnNjcm9sbEhlaWdodCAtIChlbGVtZW50LnNjcm9sbFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0KTtcbiAgICAgIHJldHVybiBlbmRQb3NQeCA8IHRocmVzaG9sZFB4O1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudCAndGhyZXNob2xkJy4gRXhwZWN0ZWQgdmFsdWUgdW5pdDogJ3B4JyBvciAnJScgXCIpO1xuICB9XG5cbiAgLy8gQ2hlY2sgYm90dG9tIHJlYWNoLCBldmVuIGlmIE5PIHNjcm9sbCBldmVudCAoZS5nLiB3aGVuIGFscmVhZHkgcmVhY2ggdGhlIGJvdHRvbSlcbiAgaWYgKGR1ZVRpbWUgPiAwKSB7XG4gICAgcmV0dXJuIG1lcmdlKGZyb21FdmVudChlbGVtZW50LCAnc2Nyb2xsJyksIHRpbWVyKGR1ZVRpbWUpKS5waXBlKGZpbHRlcigoKSA9PiBpc0VuZCgpKSk7XG4gIH1cblxuICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKS5waXBlKGZpbHRlcigoKSA9PiBpc0VuZCgpKSk7XG59XG4iXX0=
@@ -1,92 +0,0 @@
1
- import { filter, map } from 'rxjs/operators';
2
- import { HttpEventType } from '@angular/common/http';
3
- import { FileResponse } from '../upload-file/upload-file.model';
4
- import { FilesUtils } from './file.utils';
5
- import { isNotNil } from '../functions';
6
- //@dynamic
7
- export class CsvUtils {
8
- static DEFAULT_SEPARATOR = ',';
9
- static DEFAULT_ENCODING = 'UTF-8';
10
- static exportToFile(rows, opts) {
11
- if (!rows || !rows.length)
12
- return; // Skip if empty
13
- // Create text content
14
- const separator = opts?.separator || ',';
15
- const protectCellRegexp = new RegExp('/("|' + separator + '|\n)/g');
16
- const keys = Object.keys(rows[0]);
17
- const headers = opts?.headers || keys;
18
- const textContent =
19
- // Header row
20
- headers.join(separator) +
21
- '\n' +
22
- // Data rows
23
- rows
24
- .map((row) => keys
25
- .map((k) => {
26
- const cell = row[k] === null || row[k] === undefined ? '' : row[k];
27
- let cellStr = cell instanceof Date ? cell.toLocaleString() : cell.toString().replace(/"/g, '""');
28
- if (protectCellRegexp.test(cellStr)) {
29
- cellStr = `"${cellStr}"`;
30
- }
31
- return cellStr;
32
- })
33
- .join(separator))
34
- .join('\n');
35
- // Write to file
36
- FilesUtils.writeTextToFile(textContent, {
37
- type: 'text/csv',
38
- filename: 'export.csv',
39
- ...opts,
40
- });
41
- }
42
- static parseFile(file, opts) {
43
- return FilesUtils.readAsText(file, opts?.encoding).pipe(map((e) => {
44
- if (e.type === HttpEventType.UploadProgress) {
45
- const loaded = Math.round(e.loaded * 0.8);
46
- return { ...e, loaded };
47
- }
48
- else if (e instanceof FileResponse) {
49
- const body = e.body;
50
- const data = CsvUtils.parseCSV(body, opts);
51
- return new FileResponse({ body: data });
52
- }
53
- }), filter(isNotNil));
54
- }
55
- static parseCSV(body, opts) {
56
- const separator = opts?.separator || ',';
57
- const skipEmptyLine = !opts || opts.skipEmptyLine !== false;
58
- // Protect special characters (quote and /n)
59
- body = body
60
- .replace('""', '<quote>') // Protect double quote
61
- .replace(/("[^\n"]+)\n\r?/gm, '"$1<br>') // Protect \n inside a quoted expression
62
- .replace(/\n\r/gm, '\n'); // Windows CR
63
- const headerAndRows = body.split('\n', 2);
64
- const headers = headerAndRows[0].split(separator);
65
- return body
66
- .split('\n') // split into rows
67
- .filter((line) => !skipEmptyLine || line.trim().length > 0) // Skip empty line
68
- .map((line) => {
69
- const cells = line
70
- .split(separator, headers.length) // split into cells
71
- .map((cell) => cell.replace(/^"([^"]*)"$/, '$1')) // Clean trailing quotes
72
- .map((cell) => cell.replace('<quote>', '"')) // restore protected quote
73
- .map((cell) => cell.replace('<br>', '\n')); // restore protected br
74
- return cells;
75
- });
76
- }
77
- static getLocalizedSeparator(translate, defaultSeparator = CsvUtils.DEFAULT_SEPARATOR) {
78
- const key = 'FILE.CSV.SEPARATOR';
79
- const separator = translate?.instant(key);
80
- if (separator && separator !== key)
81
- return separator;
82
- return defaultSeparator;
83
- }
84
- static getLocalizedEncoding(translate, defaultEncoding = CsvUtils.DEFAULT_ENCODING) {
85
- const key = 'FILE.CSV.ENCODING';
86
- const encoding = translate?.instant(key);
87
- if (encoding && encoding !== key)
88
- return encoding;
89
- return defaultEncoding;
90
- }
91
- }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9jc3YudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFhLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd4QyxVQUFVO0FBQ1YsTUFBTSxPQUFPLFFBQVE7SUFDbkIsTUFBTSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUMvQixNQUFNLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO0lBRWxDLE1BQU0sQ0FBQyxZQUFZLENBQ2pCLElBQWMsRUFDZCxJQU1DO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLGdCQUFnQjtRQUVuRCxzQkFBc0I7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHLENBQUM7UUFDekMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDdEMsTUFBTSxXQUFXO1FBQ2YsYUFBYTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3ZC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QUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxTQUEyQixFQUFFLGVBQWUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCO1FBQ2xHLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxRQUFRLElBQUksUUFBUSxLQUFLLEdBQUc7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUNsRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRmlsZUV2ZW50LCBGaWxlUmVzcG9uc2UgfSBmcm9tICcuLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBGaWxlc1V0aWxzIH0gZnJvbSAnLi9maWxlLnV0aWxzJztcbmltcG9ydCB7IGlzTm90TmlsIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuLy9AZHluYW1pY1xuZXhwb3J0IGNsYXNzIENzdlV0aWxzIHtcbiAgc3RhdGljIERFRkFVTFRfU0VQQVJBVE9SID0gJywnO1xuICBzdGF0aWMgREVGQVVMVF9FTkNPRElORyA9ICdVVEYtOCc7XG5cbiAgc3RhdGljIGV4cG9ydFRvRmlsZShcbiAgICByb3dzOiBvYmplY3RbXSxcbiAgICBvcHRzPzoge1xuICAgICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gICAgICBoZWFkZXJzPzogc3RyaW5nW107XG4gICAgICBzZXBhcmF0b3I/OiBzdHJpbmc7XG4gICAgICBlbmNvZGluZz86IHN0cmluZztcbiAgICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgfVxuICApIHtcbiAgICBpZiAoIXJvd3MgfHwgIXJvd3MubGVuZ3RoKSByZXR1cm47IC8vIFNraXAgaWYgZW1wdHlcblxuICAgIC8vIENyZWF0ZSB0ZXh0IGNvbnRlbnRcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBvcHRzPy5zZXBhcmF0b3IgfHwgJywnO1xuICAgIGNvbnN0IHByb3RlY3RDZWxsUmVnZXhwID0gbmV3IFJlZ0V4cCgnLyhcInwnICsgc2VwYXJhdG9yICsgJ3xcXG4pL2cnKTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocm93c1swXSk7XG4gICAgY29uc3QgaGVhZGVycyA9IG9wdHM/LmhlYWRlcnMgfHwga2V5cztcbiAgICBjb25zdCB0ZXh0Q29udGVudCA9XG4gICAgICAvLyBIZWFkZXIgcm93XG4gICAgICBoZWFkZXJzLmpvaW4oc2VwYXJhdG9yKSArXG4gICAgICAnXFxuJyArXG4gICAgICAvLyBEYXRhIHJvd3NcbiAgICAgIHJvd3NcbiAgICAgICAgLm1hcCgocm93KSA9PlxuICAgICAgICAgIGtleXNcbiAgICAgICAgICAgIC5tYXAoKGspID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2VsbCA9IHJvd1trXSA9PT0gbnVsbCB8fCByb3dba10gPT09IHVuZGVmaW5lZCA/ICcnIDogcm93W2tdO1xuICAgICAgICAgICAgICBsZXQgY2VsbFN0cjogc3RyaW5nID0gY2VsbCBpbnN0YW5jZW9mIERhdGUgPyBjZWxsLnRvTG9jYWxlU3RyaW5nKCkgOiBjZWxsLnRvU3RyaW5nKCkucmVwbGFjZSgvXCIvZywgJ1wiXCInKTtcbiAgICAgICAgICAgICAgaWYgKHByb3RlY3RDZWxsUmVnZXhwLnRlc3QoY2VsbFN0cikpIHtcbiAgICAgICAgICAgICAgICBjZWxsU3RyID0gYFwiJHtjZWxsU3RyfVwiYDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY2VsbFN0cjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihzZXBhcmF0b3IpXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJ1xcbicpO1xuXG4gICAgLy8gV3JpdGUgdG8gZmlsZVxuICAgIEZpbGVzVXRpbHMud3JpdGVUZXh0VG9GaWxlKHRleHRDb250ZW50LCB7XG4gICAgICB0eXBlOiAndGV4dC9jc3YnLFxuICAgICAgZmlsZW5hbWU6ICdleHBvcnQuY3N2JyxcbiAgICAgIC4uLm9wdHMsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VGaWxlKGZpbGU6IEZpbGUsIG9wdHM/OiB7IHNlcGFyYXRvcj86IHN0cmluZzsgZW5jb2Rpbmc/OiBzdHJpbmcgfSk6IE9ic2VydmFibGU8RmlsZUV2ZW50PHN0cmluZ1tdW10+PiB7XG4gICAgcmV0dXJuIEZpbGVzVXRpbHMucmVhZEFzVGV4dChmaWxlLCBvcHRzPy5lbmNvZGluZykucGlwZShcbiAgICAgIG1hcCgoZSkgPT4ge1xuICAgICAgICBpZiAoZS50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgICAgY29uc3QgbG9hZGVkID0gTWF0aC5yb3VuZChlLmxvYWRlZCAqIDAuOCk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uZSwgbG9hZGVkIH07XG4gICAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIEZpbGVSZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IGJvZHkgPSBlLmJvZHk7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IENzdlV0aWxzLnBhcnNlQ1NWKGJvZHksIG9wdHMpO1xuICAgICAgICAgIHJldHVybiBuZXcgRmlsZVJlc3BvbnNlPHN0cmluZ1tdW10+KHsgYm9keTogZGF0YSB9KTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBmaWx0ZXIoaXNOb3ROaWwpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZUNTVihib2R5OiBzdHJpbmcsIG9wdHM/OiB7IHNlcGFyYXRvcj86IHN0cmluZzsgc2tpcEVtcHR5TGluZT86IGJvb2xlYW4gfSk6IHN0cmluZ1tdW10ge1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHM/LnNlcGFyYXRvciB8fCAnLCc7XG4gICAgY29uc3Qgc2tpcEVtcHR5TGluZSA9ICFvcHRzIHx8IG9wdHMuc2tpcEVtcHR5TGluZSAhPT0gZmFsc2U7XG5cbiAgICAvLyBQcm90ZWN0IHNwZWNpYWwgY2hhcmFjdGVycyAocXVvdGUgYW5kIC9uKVxuICAgIGJvZHkgPSBib2R5XG4gICAgICAucmVwbGFjZSgnXCJcIicsICc8cXVvdGU+JykgLy8gUHJvdGVjdCBkb3VibGUgcXVvdGVcbiAgICAgIC5yZXBsYWNlKC8oXCJbXlxcblwiXSspXFxuXFxyPy9nbSwgJ1wiJDE8YnI+JykgLy8gUHJvdGVjdCBcXG4gaW5zaWRlIGEgcXVvdGVkIGV4cHJlc3Npb25cbiAgICAgIC5yZXBsYWNlKC9cXG5cXHIvZ20sICdcXG4nKTsgLy8gV2luZG93cyBDUlxuXG4gICAgY29uc3QgaGVhZGVyQW5kUm93cyA9IGJvZHkuc3BsaXQoJ1xcbicsIDIpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBoZWFkZXJBbmRSb3dzWzBdLnNwbGl0KHNlcGFyYXRvcik7XG5cbiAgICByZXR1cm4gYm9keVxuICAgICAgLnNwbGl0KCdcXG4nKSAvLyBzcGxpdCBpbnRvIHJvd3NcbiAgICAgIC5maWx0ZXIoKGxpbmUpID0+ICFza2lwRW1wdHlMaW5lIHx8IGxpbmUudHJpbSgpLmxlbmd0aCA+IDApIC8vIFNraXAgZW1wdHkgbGluZVxuICAgICAgLm1hcCgobGluZSkgPT4ge1xuICAgICAgICBjb25zdCBjZWxscyA9IGxpbmVcbiAgICAgICAgICAuc3BsaXQoc2VwYXJhdG9yLCBoZWFkZXJzLmxlbmd0aCkgLy8gc3BsaXQgaW50byBjZWxsc1xuICAgICAgICAgIC5tYXAoKGNlbGwpID0+IGNlbGwucmVwbGFjZSgvXlwiKFteXCJdKilcIiQvLCAnJDEnKSkgLy8gQ2xlYW4gdHJhaWxpbmcgcXVvdGVzXG4gICAgICAgICAgLm1hcCgoY2VsbCkgPT4gY2VsbC5yZXBsYWNlKCc8cXVvdGU+JywgJ1wiJykpIC8vIHJlc3RvcmUgcHJvdGVjdGVkIHF1b3RlXG4gICAgICAgICAgLm1hcCgoY2VsbCkgPT4gY2VsbC5yZXBsYWNlKCc8YnI+JywgJ1xcbicpKTsgLy8gcmVzdG9yZSBwcm90ZWN0ZWQgYnJcbiAgICAgICAgcmV0dXJuIGNlbGxzO1xuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0TG9jYWxpemVkU2VwYXJhdG9yKHRyYW5zbGF0ZT86IFRyYW5zbGF0ZVNlcnZpY2UsIGRlZmF1bHRTZXBhcmF0b3IgPSBDc3ZVdGlscy5ERUZBVUxUX1NFUEFSQVRPUik6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5ID0gJ0ZJTEUuQ1NWLlNFUEFSQVRPUic7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gdHJhbnNsYXRlPy5pbnN0YW50KGtleSk7XG4gICAgaWYgKHNlcGFyYXRvciAmJiBzZXBhcmF0b3IgIT09IGtleSkgcmV0dXJuIHNlcGFyYXRvcjtcbiAgICByZXR1cm4gZGVmYXVsdFNlcGFyYXRvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRMb2NhbGl6ZWRFbmNvZGluZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGRlZmF1bHRFbmNvZGluZyA9IENzdlV0aWxzLkRFRkFVTFRfRU5DT0RJTkcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleSA9ICdGSUxFLkNTVi5FTkNPRElORyc7XG4gICAgY29uc3QgZW5jb2RpbmcgPSB0cmFuc2xhdGU/Lmluc3RhbnQoa2V5KTtcbiAgICBpZiAoZW5jb2RpbmcgJiYgZW5jb2RpbmcgIT09IGtleSkgcmV0dXJuIGVuY29kaW5nO1xuICAgIHJldHVybiBkZWZhdWx0RW5jb2Rpbmc7XG4gIH1cbn1cbiJdfQ==
@@ -1,118 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Platform } from '@ionic/angular';
3
- import { ImagesUtils } from './images.utils';
4
- import { chainPromises, firstNotNilPromise } from '../observables';
5
- import { HttpClient } from '@angular/common/http';
6
- import { ENVIRONMENT } from '../../../environments/environment.class';
7
- import { v4 as uuidv4 } from 'uuid';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ionic/angular";
10
- import * as i2 from "@angular/common/http";
11
- export class FileService {
12
- platform;
13
- http;
14
- environment;
15
- _debug;
16
- _started = false;
17
- _imageDirectory;
18
- get canUseFileSystem() {
19
- return false;
20
- // FIXME: seems not working well
21
- //return !!this.file.dataDirectory;
22
- }
23
- constructor(platform,
24
- //private transfer: FileTransfer,
25
- //@Optional() private file: File,
26
- http, environment) {
27
- this.platform = platform;
28
- this.http = http;
29
- this.environment = environment;
30
- this._debug = !environment.production;
31
- platform.ready().then(() => this.start());
32
- }
33
- getImages(sources, opts) {
34
- if (!this._started)
35
- throw new Error('Platform must be started first!');
36
- //const fileTransfer = this.canUseFileSystem ? this.transfer.create() : undefined;
37
- //const jobsFactories = (sources || []).map(source => () => this.getImage(source, {...opts, fileTransfer}));
38
- const jobsFactories = (sources || []).map((source) => () => this.getImage(source, { ...opts }));
39
- return chainPromises(jobsFactories);
40
- }
41
- async getImage(fileUrl, opts) {
42
- let outputType = (opts && opts.outputType) || (this.canUseFileSystem ? 'fileUrl' : 'dataUrl');
43
- const debug = this._debug; /*&& (!opts || !opts.fileTransfer)*/
44
- const now = debug && Date.now();
45
- if (debug)
46
- console.debug(`[file] Fetching image {${fileUrl}} into ${outputType}...`);
47
- // Read the filename
48
- const lastSlashIndex = fileUrl.lastIndexOf('/');
49
- if (lastSlashIndex === -1)
50
- throw new Error('Invalid URL: ' + fileUrl);
51
- const fileName = (lastSlashIndex < fileUrl.length - 1 && fileUrl.substring(lastSlashIndex + 1)) || uuidv4();
52
- // Download into the file system
53
- if (outputType === 'fileUrl' && this.canUseFileSystem) {
54
- console.warn(`WARN: [file] Downloading image {${fileUrl}} in local filesystem...`);
55
- const targetFilePath = this._imageDirectory + fileName;
56
- try {
57
- const blob = await firstNotNilPromise(this.http.get(fileUrl, {
58
- observe: 'body',
59
- responseType: 'blob',
60
- reportProgress: false,
61
- }));
62
- console.debug('[file] Getting blob :' + blob.type);
63
- //await this.file.writeFile(this._imageDirectory, fileName, blob, {replace: true});
64
- //const fileTransfer = (opts && opts.fileTransfer) || this.transfer.create();
65
- //await fileTransfer.download(source, targetFilePath);
66
- if (debug)
67
- console.debug(`[file] Fetching image {${fileUrl}} into ${outputType} [OK] in ${Date.now() - now}ms`);
68
- return targetFilePath;
69
- }
70
- catch (err) {
71
- console.error(`[file] Error while download ${fileUrl}: ${(err && err.message) || err}`);
72
- // Continue (fallback to data Url)
73
- outputType = 'dataUrl';
74
- }
75
- }
76
- if (outputType === 'dataUrl') {
77
- // Get as data url (e.g. 'data:image/png:...')
78
- const dataUrl = await ImagesUtils.readAndResizeFromUrl(fileUrl, opts);
79
- if (debug)
80
- console.debug(`[file] Fetching image {${fileUrl}} into ${outputType} [OK] in ${Date.now() - now}ms`);
81
- return dataUrl;
82
- }
83
- // Keep original URL
84
- return fileUrl;
85
- }
86
- /* -- protected methods -- */
87
- start() {
88
- // File system exists
89
- if (this.canUseFileSystem) {
90
- //console.info("[file] Application directory: ", this.file.applicationDirectory);
91
- //console.info("[file] Application storage directory: ", this.file.applicationStorageDirectory);
92
- //console.info("[file] Data directory: ", this.file.dataDirectory);
93
- // this.file.createDir(this.file.dataDirectory, 'images', false)
94
- // .then((dir) => {
95
- // this._imageDirectory = this.file.dataDirectory + 'images/';
96
- // console.info("[file] Images directory: ", dir.fullPath);
97
- // })
98
- // .catch(err => {
99
- // console.error("[file] Cannot create the images directory: " + (this.file.dataDirectory + 'images/ : ' + (err && err.message || err)));
100
- // this._imageDirectory = this.file.dataDirectory;
101
- // });
102
- }
103
- this._started = true;
104
- }
105
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FileService, deps: [{ token: i1.Platform }, { token: i2.HttpClient }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
106
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FileService, providedIn: 'root' });
107
- }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FileService, decorators: [{
109
- type: Injectable,
110
- args: [{
111
- providedIn: 'root',
112
- deps: [Platform, HttpClient, ENVIRONMENT],
113
- }]
114
- }], ctorParameters: () => [{ type: i1.Platform }, { type: i2.HttpClient }, { type: undefined, decorators: [{
115
- type: Inject,
116
- args: [ENVIRONMENT]
117
- }] }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNcEMsTUFBTSxPQUFPLFdBQVc7SUFhWjtJQUdBO0lBQ3VCO0lBaEJoQixNQUFNLENBQVU7SUFDekIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQixlQUFlLENBQVM7SUFFaEMsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxLQUFLLENBQUM7UUFDYixnQ0FBZ0M7UUFDaEMsbUNBQW1DO0lBQ3JDLENBQUM7SUFFRCxZQUNVLFFBQWtCO0lBQzFCLGlDQUFpQztJQUNqQyxpQ0FBaUM7SUFDekIsSUFBZ0IsRUFDTyxXQUFXO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBRTFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBRXRDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFB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QztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLDhDQUE4QztZQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEUsSUFBSSxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLE9BQU8sVUFBVSxVQUFVLFlBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDaEgsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELG9CQUFvQjtRQUNwQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsNkJBQTZCO0lBRW5CLEtBQUs7UUFDYixxQkFBcUI7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixpRkFBaUY7WUFDakYsZ0dBQWdHO1lBQ2hHLG1FQUFtRTtZQUNuRSxnRUFBZ0U7WUFDaEUscUJBQXFCO1lBQ3JCLGtFQUFrRTtZQUNsRSwrREFBK0Q7WUFDL0QsT0FBTztZQUNQLG9CQUFvQjtZQUNwQiw2SUFBNkk7WUFDN0ksc0RBQXNEO1lBQ3RELFFBQVE7UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzt1R0FuSFUsV0FBVyxvRUFpQlosV0FBVzsyR0FqQlYsV0FBVyxjQUhWLE1BQU07OzJGQUdQLFdBQVc7a0JBSnZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO2lCQUMxQzs7MEJBa0JJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBJbWFnZXNVdGlscywgSW1hZ2VSZXNpemVPcHRpb25zIH0gZnJvbSAnLi9pbWFnZXMudXRpbHMnO1xuaW1wb3J0IHsgY2hhaW5Qcm9taXNlcywgZmlyc3ROb3ROaWxQcm9taXNlIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZGVwczogW1BsYXRmb3JtLCBIdHRwQ2xpZW50LCBFTlZJUk9OTUVOVF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVidWc6IGJvb2xlYW47XG4gIHByaXZhdGUgX3N0YXJ0ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9pbWFnZURpcmVjdG9yeTogc3RyaW5nO1xuXG4gIGdldCBjYW5Vc2VGaWxlU3lzdGVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyBGSVhNRTogc2VlbXMgbm90IHdvcmtpbmcgd2VsbFxuICAgIC8vcmV0dXJuICEhdGhpcy5maWxlLmRhdGFEaXJlY3Rvcnk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAvL3ByaXZhdGUgdHJhbnNmZXI6IEZpbGVUcmFuc2ZlcixcbiAgICAvL0BPcHRpb25hbCgpIHByaXZhdGUgZmlsZTogRmlsZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50XG4gICkge1xuICAgIHRoaXMuX2RlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG5cbiAgICBwbGF0Zm9ybS5yZWFkeSgpLnRoZW4oKCkgPT4gdGhpcy5zdGFydCgpKTtcbiAgfVxuXG4gIGdldEltYWdlcyhcbiAgICBzb3VyY2VzOiBzdHJpbmdbXSxcbiAgICBvcHRzPzogSW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgICAgb3V0cHV0VHlwZT86ICdmaWxlVXJsJyB8ICdkYXRhVXJsJztcbiAgICB9XG4gICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0ZWQpIHRocm93IG5ldyBFcnJvcignUGxhdGZvcm0gbXVzdCBiZSBzdGFydGVkIGZpcnN0IScpO1xuXG4gICAgLy9jb25zdCBmaWxlVHJhbnNmZXIgPSB0aGlzLmNhblVzZUZpbGVTeXN0ZW0gPyB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpIDogdW5kZWZpbmVkO1xuICAgIC8vY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoc291cmNlID0+ICgpID0+IHRoaXMuZ2V0SW1hZ2Uoc291cmNlLCB7Li4ub3B0cywgZmlsZVRyYW5zZmVyfSkpO1xuXG4gICAgY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoKHNvdXJjZSkgPT4gKCkgPT4gdGhpcy5nZXRJbWFnZShzb3VyY2UsIHsgLi4ub3B0cyB9KSk7XG4gICAgcmV0dXJuIGNoYWluUHJvbWlzZXM8c3RyaW5nPihqb2JzRmFjdG9yaWVzKTtcbiAgfVxuXG4gIGFzeW5jIGdldEltYWdlKFxuICAgIGZpbGVVcmw6IHN0cmluZyxcbiAgICBvcHRzPzogSW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgICAgb3V0cHV0VHlwZT86ICdmaWxlVXJsJyB8ICdkYXRhVXJsJztcbiAgICB9XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IG91dHB1dFR5cGUgPSAob3B0cyAmJiBvcHRzLm91dHB1dFR5cGUpIHx8ICh0aGlzLmNhblVzZUZpbGVTeXN0ZW0gPyAnZmlsZVVybCcgOiAnZGF0YVVybCcpO1xuXG4gICAgY29uc3QgZGVidWcgPSB0aGlzLl9kZWJ1ZzsgLyomJiAoIW9wdHMgfHwgIW9wdHMuZmlsZVRyYW5zZmVyKSovXG4gICAgY29uc3Qgbm93ID0gZGVidWcgJiYgRGF0ZS5ub3coKTtcbiAgICBpZiAoZGVidWcpIGNvbnNvbGUuZGVidWcoYFtmaWxlXSBGZXRjaGluZyBpbWFnZSB7JHtmaWxlVXJsfX0gaW50byAke291dHB1dFR5cGV9Li4uYCk7XG5cbiAgICAvLyBSZWFkIHRoZSBmaWxlbmFtZVxuICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gZmlsZVVybC5sYXN0SW5kZXhPZignLycpO1xuICAgIGlmIChsYXN0U2xhc2hJbmRleCA9PT0gLTEpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVUkw6ICcgKyBmaWxlVXJsKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IChsYXN0U2xhc2hJbmRleCA8IGZpbGVVcmwubGVuZ3RoIC0gMSAmJiBmaWxlVXJsLnN1YnN0cmluZyhsYXN0U2xhc2hJbmRleCArIDEpKSB8fCB1dWlkdjQoKTtcblxuICAgIC8vIERvd25sb2FkIGludG8gdGhlIGZpbGUgc3lzdGVtXG4gICAgaWYgKG91dHB1dFR5cGUgPT09ICdmaWxlVXJsJyAmJiB0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUud2FybihgV0FSTjogW2ZpbGVdIERvd25sb2FkaW5nIGltYWdlIHske2ZpbGVVcmx9fSBpbiBsb2NhbCBmaWxlc3lzdGVtLi4uYCk7XG4gICAgICBjb25zdCB0YXJnZXRGaWxlUGF0aCA9IHRoaXMuX2ltYWdlRGlyZWN0b3J5ICsgZmlsZU5hbWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBibG9iOiBCbG9iID0gYXdhaXQgZmlyc3ROb3ROaWxQcm9taXNlKFxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQoZmlsZVVybCwge1xuICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW2ZpbGVdIEdldHRpbmcgYmxvYiA6JyArIGJsb2IudHlwZSk7XG5cbiAgICAgICAgLy9hd2FpdCB0aGlzLmZpbGUud3JpdGVGaWxlKHRoaXMuX2ltYWdlRGlyZWN0b3J5LCBmaWxlTmFtZSwgYmxvYiwge3JlcGxhY2U6IHRydWV9KTtcblxuICAgICAgICAvL2NvbnN0IGZpbGVUcmFuc2ZlciA9IChvcHRzICYmIG9wdHMuZmlsZVRyYW5zZmVyKSB8fCB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpO1xuICAgICAgICAvL2F3YWl0IGZpbGVUcmFuc2Zlci5kb3dubG9hZChzb3VyY2UsIHRhcmdldEZpbGVQYXRoKTtcbiAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7ZmlsZVVybH19IGludG8gJHtvdXRwdXRUeXBlfSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuICAgICAgICByZXR1cm4gdGFyZ2V0RmlsZVBhdGg7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2ZpbGVdIEVycm9yIHdoaWxlIGRvd25sb2FkICR7ZmlsZVVybH06ICR7KGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyfWApO1xuXG4gICAgICAgIC8vIENvbnRpbnVlIChmYWxsYmFjayB0byBkYXRhIFVybClcbiAgICAgICAgb3V0cHV0VHlwZSA9ICdkYXRhVXJsJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3V0cHV0VHlwZSA9PT0gJ2RhdGFVcmwnKSB7XG4gICAgICAvLyBHZXQgYXMgZGF0YSB1cmwgKGUuZy4gJ2RhdGE6aW1hZ2UvcG5nOi4uLicpXG4gICAgICBjb25zdCBkYXRhVXJsID0gYXdhaXQgSW1hZ2VzVXRpbHMucmVhZEFuZFJlc2l6ZUZyb21VcmwoZmlsZVVybCwgb3B0cyk7XG4gICAgICBpZiAoZGVidWcpIGNvbnNvbGUuZGVidWcoYFtmaWxlXSBGZXRjaGluZyBpbWFnZSB7JHtmaWxlVXJsfX0gaW50byAke291dHB1dFR5cGV9IFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICByZXR1cm4gZGF0YVVybDtcbiAgICB9XG5cbiAgICAvLyBLZWVwIG9yaWdpbmFsIFVSTFxuICAgIHJldHVybiBmaWxlVXJsO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgc3RhcnQoKSB7XG4gICAgLy8gRmlsZSBzeXN0ZW0gZXhpc3RzXG4gICAgaWYgKHRoaXMuY2FuVXNlRmlsZVN5c3RlbSkge1xuICAgICAgLy9jb25zb2xlLmluZm8oXCJbZmlsZV0gQXBwbGljYXRpb24gZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uRGlyZWN0b3J5KTtcbiAgICAgIC8vY29uc29sZS5pbmZvKFwiW2ZpbGVdIEFwcGxpY2F0aW9uIHN0b3JhZ2UgZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uU3RvcmFnZURpcmVjdG9yeSk7XG4gICAgICAvL2NvbnNvbGUuaW5mbyhcIltmaWxlXSBEYXRhIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5KTtcbiAgICAgIC8vIHRoaXMuZmlsZS5jcmVhdGVEaXIodGhpcy5maWxlLmRhdGFEaXJlY3RvcnksICdpbWFnZXMnLCBmYWxzZSlcbiAgICAgIC8vICAgLnRoZW4oKGRpcikgPT4ge1xuICAgICAgLy8gICAgIHRoaXMuX2ltYWdlRGlyZWN0b3J5ID0gdGhpcy5maWxlLmRhdGFEaXJlY3RvcnkgKyAnaW1hZ2VzLyc7XG4gICAgICAvLyAgICAgY29uc29sZS5pbmZvKFwiW2ZpbGVdIEltYWdlcyBkaXJlY3Rvcnk6IFwiLCBkaXIuZnVsbFBhdGgpO1xuICAgICAgLy8gICB9KVxuICAgICAgLy8gICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIC8vICAgICBjb25zb2xlLmVycm9yKFwiW2ZpbGVdIENhbm5vdCBjcmVhdGUgdGhlIGltYWdlcyBkaXJlY3Rvcnk6IFwiICsgKHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5ICsgJ2ltYWdlcy8gOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpKSk7XG4gICAgICAvLyAgICAgdGhpcy5faW1hZ2VEaXJlY3RvcnkgPSB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeTtcbiAgICAgIC8vICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhcnRlZCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==