@sumaris-net/ngx-components 18.23.62 → 21.0.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 (799) hide show
  1. package/README.md +2 -0
  2. package/doc/build.md +3 -5
  3. package/fesm2022/sumaris-net.ngx-components.mjs +2383 -2150
  4. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  5. package/package.json +15 -15
  6. package/src/assets/environments/environment-test.json +2 -2
  7. package/src/assets/i18n/en-US.json +4 -1
  8. package/src/assets/i18n/en.json +4 -1
  9. package/src/assets/i18n/fr.json +10 -6
  10. package/src/assets/manifest.json +1 -1
  11. package/src/theme/_icons.scss +8 -12
  12. package/src/theme/_ionic.globals.scss +8 -1
  13. package/src/theme/_material.globals.scss +4 -1
  14. package/src/theme/_material.scss +16 -13
  15. package/src/theme/_mixins.scss +7 -1
  16. package/src/theme/_ngx-components.forms.scss +87 -84
  17. package/src/theme/_ngx-components.globals.scss +2 -0
  18. package/src/theme/_ngx-components.scss +19 -4
  19. package/src/theme/_ngx-components.table.scss +31 -26
  20. package/src/theme/_ngx-components.tabs.scss +16 -14
  21. package/src/theme/_responsive.scss +2 -0
  22. package/src/theme/_roboto.scss +3 -0
  23. package/src/theme/_theme.scss +11 -14
  24. package/src/theme/_theme.variables.scss +6 -1
  25. package/src/theme/ionic/ionic.functions.color.scss +13 -5
  26. package/src/theme/ionic/ionic.globals.scss +4 -4
  27. package/src/theme/ionic/ionic.theme.default.scss +2 -0
  28. package/types/sumaris-net.ngx-components.d.ts +14132 -0
  29. package/esm2022/public_api.mjs +0 -403
  30. package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
  31. package/esm2022/src/app/admin/admin.module.mjs +0 -32
  32. package/esm2022/src/app/admin/users/person.filter.mjs +0 -157
  33. package/esm2022/src/app/admin/users/person.service.mjs +0 -226
  34. package/esm2022/src/app/admin/users/person.validator.mjs +0 -78
  35. package/esm2022/src/app/admin/users/users-select.modal.mjs +0 -167
  36. package/esm2022/src/app/admin/users/users.mjs +0 -502
  37. package/esm2022/src/app/admin/users/users.module.mjs +0 -59
  38. package/esm2022/src/app/admin/users/users.utils.mjs +0 -29
  39. package/esm2022/src/app/core/about/about.modal.mjs +0 -119
  40. package/esm2022/src/app/core/about/about.module.mjs +0 -22
  41. package/esm2022/src/app/core/account/account.module.mjs +0 -75
  42. package/esm2022/src/app/core/account/account.page.mjs +0 -426
  43. package/esm2022/src/app/core/account/new-token.form.mjs +0 -109
  44. package/esm2022/src/app/core/account/new-token.modal.mjs +0 -66
  45. package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -63
  46. package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
  47. package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -150
  48. package/esm2022/src/app/core/account/token.table.mjs +0 -160
  49. package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
  50. package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
  51. package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
  52. package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -89
  53. package/esm2022/src/app/core/core.module.mjs +0 -157
  54. package/esm2022/src/app/core/core.testing.module.mjs +0 -128
  55. package/esm2022/src/app/core/form/array/form-array.mjs +0 -328
  56. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
  57. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -97
  58. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -111
  59. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
  60. package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -268
  61. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
  62. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -748
  63. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  64. package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -33
  65. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -190
  66. package/esm2022/src/app/core/form/form-container.class.mjs +0 -347
  67. package/esm2022/src/app/core/form/form.class.mjs +0 -342
  68. package/esm2022/src/app/core/form/form.module.mjs +0 -77
  69. package/esm2022/src/app/core/form/form.utils.mjs +0 -238
  70. package/esm2022/src/app/core/form/list/list.form.mjs +0 -243
  71. package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
  72. package/esm2022/src/app/core/form/properties/properties-file.service.mjs +0 -133
  73. package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -397
  74. package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -85
  75. package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -267
  76. package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -304
  77. package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -70
  78. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -103
  79. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
  80. package/esm2022/src/app/core/form/text/testing/text-form.testing.mjs +0 -42
  81. package/esm2022/src/app/core/form/text/testing/text-form.testing.module.mjs +0 -25
  82. package/esm2022/src/app/core/form/text/text-form.component.mjs +0 -205
  83. package/esm2022/src/app/core/form/text/text-form.module.mjs +0 -31
  84. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
  85. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -22
  86. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -164
  87. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -32
  88. package/esm2022/src/app/core/form/username/username.form.mjs +0 -55
  89. package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
  90. package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
  91. package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -781
  92. package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
  93. package/esm2022/src/app/core/home/home.mjs +0 -472
  94. package/esm2022/src/app/core/home/home.module.mjs +0 -54
  95. package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
  96. package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
  97. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -394
  98. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
  99. package/esm2022/src/app/core/menu/menu.component.mjs +0 -273
  100. package/esm2022/src/app/core/menu/menu.model.mjs +0 -327
  101. package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
  102. package/esm2022/src/app/core/menu/menu.service.mjs +0 -666
  103. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -113
  104. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -51
  105. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -165
  106. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
  107. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
  108. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
  109. package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -350
  110. package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -36
  111. package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
  112. package/esm2022/src/app/core/register/register.form.mjs +0 -197
  113. package/esm2022/src/app/core/register/register.modal.mjs +0 -55
  114. package/esm2022/src/app/core/register/register.module.mjs +0 -23
  115. package/esm2022/src/app/core/services/account.service.mjs +0 -1403
  116. package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
  117. package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -499
  118. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -224
  119. package/esm2022/src/app/core/services/base58.mjs +0 -83
  120. package/esm2022/src/app/core/services/config/core.config.mjs +0 -293
  121. package/esm2022/src/app/core/services/config.service.mjs +0 -384
  122. package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
  123. package/esm2022/src/app/core/services/errors.mjs +0 -54
  124. package/esm2022/src/app/core/services/local-settings.service.mjs +0 -540
  125. package/esm2022/src/app/core/services/model/account.model.mjs +0 -192
  126. package/esm2022/src/app/core/services/model/config.model.mjs +0 -111
  127. package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
  128. package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
  129. package/esm2022/src/app/core/services/model/entity.model.mjs +0 -347
  130. package/esm2022/src/app/core/services/model/filter.model.mjs +0 -169
  131. package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
  132. package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
  133. package/esm2022/src/app/core/services/model/node-feature.model.mjs +0 -31
  134. package/esm2022/src/app/core/services/model/peer.model.mjs +0 -114
  135. package/esm2022/src/app/core/services/model/person.model.mjs +0 -118
  136. package/esm2022/src/app/core/services/model/referential.model.mjs +0 -207
  137. package/esm2022/src/app/core/services/model/settings.model.mjs +0 -6
  138. package/esm2022/src/app/core/services/model/token.model.mjs +0 -57
  139. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -234
  140. package/esm2022/src/app/core/services/network.service.mjs +0 -759
  141. package/esm2022/src/app/core/services/network.types.mjs +0 -2
  142. package/esm2022/src/app/core/services/network.utils.mjs +0 -35
  143. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
  144. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
  145. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
  146. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -58
  147. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -36
  148. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
  149. package/esm2022/src/app/core/services/platform.service.mjs +0 -780
  150. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
  151. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -450
  152. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
  153. package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
  154. package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -46
  155. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
  156. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -57
  157. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
  158. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
  159. package/esm2022/src/app/core/settings/settings.module.mjs +0 -23
  160. package/esm2022/src/app/core/settings/settings.page.mjs +0 -406
  161. package/esm2022/src/app/core/table/async-table.class.mjs +0 -1882
  162. package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -137
  163. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -120
  164. package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
  165. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -415
  166. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -407
  167. package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
  168. package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
  169. package/esm2022/src/app/core/table/table.class.mjs +0 -1918
  170. package/esm2022/src/app/core/table/table.model.mjs +0 -21
  171. package/esm2022/src/app/core/table/table.module.mjs +0 -51
  172. package/esm2022/src/app/core/table/table.pipes.mjs +0 -76
  173. package/esm2022/src/app/core/table/table.utils.mjs +0 -34
  174. package/esm2022/src/app/core/table/testing/nested-table.testing.mjs +0 -326
  175. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
  176. package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -342
  177. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -47
  178. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
  179. package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -322
  180. package/esm2022/src/app/shared/alerts.mjs +0 -243
  181. package/esm2022/src/app/shared/audio/audio.mjs +0 -255
  182. package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
  183. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
  184. package/esm2022/src/app/shared/base64.utils.mjs +0 -59
  185. package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
  186. package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -10
  187. package/esm2022/src/app/shared/constants.mjs +0 -18
  188. package/esm2022/src/app/shared/dates.mjs +0 -212
  189. package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
  190. package/esm2022/src/app/shared/debug/debug.component.mjs +0 -44
  191. package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
  192. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
  193. package/esm2022/src/app/shared/directives/autoresize.directive.mjs +0 -75
  194. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -30
  195. package/esm2022/src/app/shared/directives/autotooltip.directive.mjs +0 -35
  196. package/esm2022/src/app/shared/directives/cell-selection/cell-identifier.directive.mjs +0 -55
  197. package/esm2022/src/app/shared/directives/cell-selection/cell-selection.directive.mjs +0 -206
  198. package/esm2022/src/app/shared/directives/cell-selection/cell-selection.service.mjs +0 -204
  199. package/esm2022/src/app/shared/directives/directives.module.mjs +0 -53
  200. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
  201. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
  202. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
  203. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -96
  204. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
  205. package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +0 -43
  206. package/esm2022/src/app/shared/events.mjs +0 -64
  207. package/esm2022/src/app/shared/file/csv.utils.mjs +0 -97
  208. package/esm2022/src/app/shared/file/file.service.mjs +0 -118
  209. package/esm2022/src/app/shared/file/file.utils.mjs +0 -117
  210. package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
  211. package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
  212. package/esm2022/src/app/shared/file/uri.utils.mjs +0 -29
  213. package/esm2022/src/app/shared/file/url.utils.mjs +0 -213
  214. package/esm2022/src/app/shared/focusable.mjs +0 -6
  215. package/esm2022/src/app/shared/form/field.component.mjs +0 -388
  216. package/esm2022/src/app/shared/form/field.model.mjs +0 -100
  217. package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
  218. package/esm2022/src/app/shared/forms.mjs +0 -593
  219. package/esm2022/src/app/shared/functions.mjs +0 -825
  220. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -94
  221. package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
  222. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
  223. package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -85
  224. package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -214
  225. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -68
  226. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  227. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -147
  228. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
  229. package/esm2022/src/app/shared/html.utils.mjs +0 -35
  230. package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
  231. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -452
  232. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
  233. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
  234. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -92
  235. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
  236. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
  237. package/esm2022/src/app/shared/image/image.model.mjs +0 -2
  238. package/esm2022/src/app/shared/image/image.module.mjs +0 -24
  239. package/esm2022/src/app/shared/image/image.service.mjs +0 -117
  240. package/esm2022/src/app/shared/inputs.mjs +0 -281
  241. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  242. package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
  243. package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
  244. package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
  245. package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
  246. package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
  247. package/esm2022/src/app/shared/markdown/markdown.component.mjs +0 -321
  248. package/esm2022/src/app/shared/markdown/markdown.directive.mjs +0 -34
  249. package/esm2022/src/app/shared/markdown/markdown.modal.mjs +0 -99
  250. package/esm2022/src/app/shared/markdown/markdown.module.mjs +0 -87
  251. package/esm2022/src/app/shared/markdown/markdown.service.mjs +0 -204
  252. package/esm2022/src/app/shared/markdown/markdown.utils.mjs +0 -87
  253. package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +0 -55
  254. package/esm2022/src/app/shared/markdown/testing/markdown.testing.module.mjs +0 -30
  255. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
  256. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1356
  257. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -81
  258. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
  259. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -242
  260. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
  261. package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
  262. package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
  263. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -70
  264. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -374
  265. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -83
  266. package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -74
  267. package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -843
  268. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -151
  269. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -79
  270. package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -473
  271. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
  272. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -850
  273. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -140
  274. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
  275. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
  276. package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -61
  277. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -16
  278. package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -283
  279. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -85
  280. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -319
  281. package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +0 -471
  282. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -231
  283. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -68
  284. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -138
  285. package/esm2022/src/app/shared/material/material.animations.mjs +0 -200
  286. package/esm2022/src/app/shared/material/material.config.mjs +0 -3
  287. package/esm2022/src/app/shared/material/material.module.mjs +0 -224
  288. package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -234
  289. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
  290. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
  291. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -379
  292. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  293. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
  294. package/esm2022/src/app/shared/material/test/test-component.mjs +0 -264
  295. package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
  296. package/esm2022/src/app/shared/modules.mjs +0 -12
  297. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -306
  298. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
  299. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
  300. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
  301. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
  302. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
  303. package/esm2022/src/app/shared/observables.mjs +0 -104
  304. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -251
  305. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -25
  306. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
  307. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -50
  308. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
  309. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
  310. package/esm2022/src/app/shared/pipes/date-from.pipe.mjs +0 -29
  311. package/esm2022/src/app/shared/pipes/dates.pipe.mjs +0 -18
  312. package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +0 -23
  313. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -34
  314. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
  315. package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
  316. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -50
  317. package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -102
  318. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
  319. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -65
  320. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
  321. package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -77
  322. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
  323. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -17
  324. package/esm2022/src/app/shared/pipes/observable.pipes.mjs +0 -63
  325. package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -304
  326. package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -148
  327. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -177
  328. package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -183
  329. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
  330. package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
  331. package/esm2022/src/app/shared/pipes/url.pipes.mjs +0 -35
  332. package/esm2022/src/app/shared/platforms.mjs +0 -81
  333. package/esm2022/src/app/shared/print/print.service.mjs +0 -305
  334. package/esm2022/src/app/shared/regexps.mjs +0 -103
  335. package/esm2022/src/app/shared/rx-state/rx-state.decorators.mjs +0 -193
  336. package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +0 -19
  337. package/esm2022/src/app/shared/rx-state/rx-state.types.mjs +0 -2
  338. package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -44
  339. package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
  340. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -362
  341. package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
  342. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -144
  343. package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -118
  344. package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
  345. package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
  346. package/esm2022/src/app/shared/services.mjs +0 -85
  347. package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
  348. package/esm2022/src/app/shared/shared.module.mjs +0 -229
  349. package/esm2022/src/app/shared/shared.testing.module.mjs +0 -108
  350. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -281
  351. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
  352. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
  353. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
  354. package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
  355. package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
  356. package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
  357. package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
  358. package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
  359. package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -54
  360. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -31
  361. package/esm2022/src/app/shared/toast/toasts.mjs +0 -134
  362. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
  363. package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -272
  364. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
  365. package/esm2022/src/app/shared/types.mjs +0 -2
  366. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
  367. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
  368. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -108
  369. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -216
  370. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
  371. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -122
  372. package/esm2022/src/app/shared/validator/validators.mjs +0 -658
  373. package/esm2022/src/app/shared/version/versions.mjs +0 -81
  374. package/esm2022/src/app/social/config/social.config.mjs +0 -9
  375. package/esm2022/src/app/social/feed/feed.component.mjs +0 -317
  376. package/esm2022/src/app/social/feed/feed.directive.mjs +0 -151
  377. package/esm2022/src/app/social/feed/feed.model.mjs +0 -60
  378. package/esm2022/src/app/social/feed/feed.module.mjs +0 -24
  379. package/esm2022/src/app/social/feed/feed.page.mjs +0 -67
  380. package/esm2022/src/app/social/feed/feed.service.mjs +0 -222
  381. package/esm2022/src/app/social/feed/testing/feed.testing.mjs +0 -66
  382. package/esm2022/src/app/social/feed/testing/feed.testing.module.mjs +0 -23
  383. package/esm2022/src/app/social/job/job.module.mjs +0 -23
  384. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -38
  385. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -241
  386. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -50
  387. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
  388. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
  389. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
  390. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
  391. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
  392. package/esm2022/src/app/social/message/message.form.mjs +0 -149
  393. package/esm2022/src/app/social/message/message.modal.mjs +0 -116
  394. package/esm2022/src/app/social/message/message.model.mjs +0 -86
  395. package/esm2022/src/app/social/message/message.module.mjs +0 -25
  396. package/esm2022/src/app/social/message/message.service.mjs +0 -198
  397. package/esm2022/src/app/social/social.errors.mjs +0 -11
  398. package/esm2022/src/app/social/social.module.mjs +0 -22
  399. package/esm2022/src/app/social/social.testing.module.mjs +0 -72
  400. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -191
  401. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -280
  402. package/esm2022/src/app/social/user-event/notification/user-event-notification.modal.mjs +0 -84
  403. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -273
  404. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
  405. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
  406. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
  407. package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
  408. package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -24
  409. package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -512
  410. package/esm2022/src/environments/environment.class.mjs +0 -69
  411. package/esm2022/src/environments/environment.loader.mjs +0 -77
  412. package/esm2022/src/environments/environment.mjs +0 -133
  413. package/esm2022/sumaris-net.ngx-components.mjs +0 -5
  414. package/index.d.ts +0 -5
  415. package/public_api.d.ts +0 -364
  416. package/src/app/admin/admin-routing.module.d.ts +0 -9
  417. package/src/app/admin/admin.module.d.ts +0 -10
  418. package/src/app/admin/users/person.filter.d.ts +0 -37
  419. package/src/app/admin/users/person.service.d.ts +0 -61
  420. package/src/app/admin/users/person.validator.d.ts +0 -23
  421. package/src/app/admin/users/users-select.modal.d.ts +0 -73
  422. package/src/app/admin/users/users.d.ts +0 -89
  423. package/src/app/admin/users/users.module.d.ts +0 -15
  424. package/src/app/admin/users/users.utils.d.ts +0 -6
  425. package/src/app/core/about/about.modal.d.ts +0 -44
  426. package/src/app/core/about/about.module.d.ts +0 -11
  427. package/src/app/core/account/account.module.d.ts +0 -18
  428. package/src/app/core/account/account.page.d.ts +0 -93
  429. package/src/app/core/account/new-token.form.d.ts +0 -30
  430. package/src/app/core/account/new-token.modal.d.ts +0 -29
  431. package/src/app/core/account/password/change-password.form.d.ts +0 -19
  432. package/src/app/core/account/password/change-password.module.d.ts +0 -11
  433. package/src/app/core/account/password/change-password.page.d.ts +0 -36
  434. package/src/app/core/account/token.table.d.ts +0 -28
  435. package/src/app/core/auth/auth.form.d.ts +0 -38
  436. package/src/app/core/auth/auth.modal.d.ts +0 -24
  437. package/src/app/core/auth/auth.module.d.ts +0 -13
  438. package/src/app/core/auth/reset-password.modal.d.ts +0 -29
  439. package/src/app/core/core.module.d.ts +0 -28
  440. package/src/app/core/core.testing.module.d.ts +0 -16
  441. package/src/app/core/form/array/form-array.d.ts +0 -147
  442. package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
  443. package/src/app/core/form/array/testing/form-array.test.d.ts +0 -27
  444. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -38
  445. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
  446. package/src/app/core/form/entity/editor.class.d.ts +0 -85
  447. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
  448. package/src/app/core/form/entity/entity-editor.class.d.ts +0 -211
  449. package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
  450. package/src/app/core/form/entity/entity.module.d.ts +0 -11
  451. package/src/app/core/form/entity/tab-editor.class.d.ts +0 -66
  452. package/src/app/core/form/form-container.class.d.ts +0 -131
  453. package/src/app/core/form/form.class.d.ts +0 -148
  454. package/src/app/core/form/form.module.d.ts +0 -15
  455. package/src/app/core/form/form.utils.d.ts +0 -301
  456. package/src/app/core/form/list/list.form.d.ts +0 -83
  457. package/src/app/core/form/list/list.module.d.ts +0 -9
  458. package/src/app/core/form/properties/properties-file.service.d.ts +0 -26
  459. package/src/app/core/form/properties/properties.form.d.ts +0 -109
  460. package/src/app/core/form/properties/properties.module.d.ts +0 -18
  461. package/src/app/core/form/properties/properties.table.d.ts +0 -73
  462. package/src/app/core/form/properties/properties.utils.d.ts +0 -59
  463. package/src/app/core/form/properties/property.validator.d.ts +0 -27
  464. package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -22
  465. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
  466. package/src/app/core/form/text/testing/text-form.testing.d.ts +0 -19
  467. package/src/app/core/form/text/testing/text-form.testing.module.d.ts +0 -14
  468. package/src/app/core/form/text/text-form.component.d.ts +0 -66
  469. package/src/app/core/form/text/text-form.module.d.ts +0 -9
  470. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
  471. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
  472. package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -81
  473. package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -10
  474. package/src/app/core/form/username/username.form.d.ts +0 -19
  475. package/src/app/core/form/username/username.module.d.ts +0 -9
  476. package/src/app/core/graphql/graphql.module.d.ts +0 -7
  477. package/src/app/core/graphql/graphql.service.d.ts +0 -138
  478. package/src/app/core/graphql/graphql.utils.d.ts +0 -47
  479. package/src/app/core/home/home.d.ts +0 -135
  480. package/src/app/core/home/home.module.d.ts +0 -16
  481. package/src/app/core/icon/icon.component.d.ts +0 -13
  482. package/src/app/core/icon/icon.module.d.ts +0 -9
  483. package/src/app/core/install/install-upgrade-card.component.d.ts +0 -63
  484. package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
  485. package/src/app/core/menu/menu.component.d.ts +0 -69
  486. package/src/app/core/menu/menu.model.d.ts +0 -161
  487. package/src/app/core/menu/menu.module.d.ts +0 -12
  488. package/src/app/core/menu/menu.service.d.ts +0 -93
  489. package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
  490. package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
  491. package/src/app/core/menu/testing/menu.testing.d.ts +0 -53
  492. package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
  493. package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
  494. package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
  495. package/src/app/core/peer/select-peer.modal.d.ts +0 -108
  496. package/src/app/core/peer/select-peer.module.d.ts +0 -12
  497. package/src/app/core/register/register-confirm.page.d.ts +0 -24
  498. package/src/app/core/register/register.form.d.ts +0 -49
  499. package/src/app/core/register/register.modal.d.ts +0 -14
  500. package/src/app/core/register/register.module.d.ts +0 -12
  501. package/src/app/core/services/account.service.d.ts +0 -236
  502. package/src/app/core/services/auth-guard.service.d.ts +0 -17
  503. package/src/app/core/services/base-entity-service.class.d.ts +0 -134
  504. package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
  505. package/src/app/core/services/base58.d.ts +0 -7
  506. package/src/app/core/services/config/core.config.d.ts +0 -52
  507. package/src/app/core/services/config.service.d.ts +0 -63
  508. package/src/app/core/services/crypto.service.d.ts +0 -44
  509. package/src/app/core/services/errors.d.ts +0 -65
  510. package/src/app/core/services/local-settings.service.d.ts +0 -130
  511. package/src/app/core/services/model/account.model.d.ts +0 -66
  512. package/src/app/core/services/model/config.model.d.ts +0 -37
  513. package/src/app/core/services/model/department.model.d.ts +0 -11
  514. package/src/app/core/services/model/entity.decorators.d.ts +0 -17
  515. package/src/app/core/services/model/entity.model.d.ts +0 -133
  516. package/src/app/core/services/model/filter.model.d.ts +0 -37
  517. package/src/app/core/services/model/history.model.d.ts +0 -20
  518. package/src/app/core/services/model/model.enum.d.ts +0 -7
  519. package/src/app/core/services/model/node-feature.model.d.ts +0 -14
  520. package/src/app/core/services/model/peer.model.d.ts +0 -35
  521. package/src/app/core/services/model/person.model.d.ts +0 -39
  522. package/src/app/core/services/model/referential.model.d.ts +0 -85
  523. package/src/app/core/services/model/settings.model.d.ts +0 -29
  524. package/src/app/core/services/model/token.model.d.ts +0 -22
  525. package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -62
  526. package/src/app/core/services/network.service.d.ts +0 -184
  527. package/src/app/core/services/network.types.d.ts +0 -4
  528. package/src/app/core/services/network.utils.d.ts +0 -39
  529. package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
  530. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
  531. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
  532. package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
  533. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -23
  534. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
  535. package/src/app/core/services/platform.service.d.ts +0 -126
  536. package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
  537. package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
  538. package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
  539. package/src/app/core/services/testing/referential.validator.d.ts +0 -22
  540. package/src/app/core/services/validator/account.validator.d.ts +0 -24
  541. package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
  542. package/src/app/core/services/validator/local-settings.validator.d.ts +0 -18
  543. package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
  544. package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
  545. package/src/app/core/settings/settings.module.d.ts +0 -12
  546. package/src/app/core/settings/settings.page.d.ts +0 -89
  547. package/src/app/core/table/async-table.class.d.ts +0 -443
  548. package/src/app/core/table/column/actions-column.component.d.ts +0 -65
  549. package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -47
  550. package/src/app/core/table/column/row-field.component.d.ts +0 -41
  551. package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -103
  552. package/src/app/core/table/entities-table-datasource.class.d.ts +0 -102
  553. package/src/app/core/table/memory-table.class.d.ts +0 -25
  554. package/src/app/core/table/table-select-columns.component.d.ts +0 -22
  555. package/src/app/core/table/table.class.d.ts +0 -427
  556. package/src/app/core/table/table.model.d.ts +0 -31
  557. package/src/app/core/table/table.module.d.ts +0 -14
  558. package/src/app/core/table/table.pipes.d.ts +0 -30
  559. package/src/app/core/table/table.utils.d.ts +0 -13
  560. package/src/app/core/table/testing/nested-table.testing.d.ts +0 -54
  561. package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
  562. package/src/app/core/table/testing/table.testing.d.ts +0 -55
  563. package/src/app/core/table/testing/table.testing.module.d.ts +0 -17
  564. package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
  565. package/src/app/core/table/testing/table2.testing.d.ts +0 -53
  566. package/src/app/shared/alerts.d.ts +0 -55
  567. package/src/app/shared/audio/audio.d.ts +0 -45
  568. package/src/app/shared/audio/audio.testing.d.ts +0 -13
  569. package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
  570. package/src/app/shared/base64.utils.d.ts +0 -7
  571. package/src/app/shared/capacitor/keyboard.d.ts +0 -16
  572. package/src/app/shared/capacitor/plugins.d.ts +0 -8
  573. package/src/app/shared/constants.d.ts +0 -15
  574. package/src/app/shared/dates.d.ts +0 -85
  575. package/src/app/shared/debug/debug-service.class.d.ts +0 -5
  576. package/src/app/shared/debug/debug.component.d.ts +0 -14
  577. package/src/app/shared/debug/debug.module.d.ts +0 -12
  578. package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
  579. package/src/app/shared/directives/autoresize.directive.d.ts +0 -20
  580. package/src/app/shared/directives/autotitle.directive.d.ts +0 -11
  581. package/src/app/shared/directives/autotooltip.directive.d.ts +0 -14
  582. package/src/app/shared/directives/cell-selection/cell-identifier.directive.d.ts +0 -17
  583. package/src/app/shared/directives/cell-selection/cell-selection.directive.d.ts +0 -29
  584. package/src/app/shared/directives/cell-selection/cell-selection.service.d.ts +0 -67
  585. package/src/app/shared/directives/directives.module.d.ts +0 -15
  586. package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
  587. package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
  588. package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
  589. package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -24
  590. package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
  591. package/src/app/shared/directives/throttled-click.directive.d.ts +0 -16
  592. package/src/app/shared/events.d.ts +0 -29
  593. package/src/app/shared/file/csv.utils.d.ts +0 -30
  594. package/src/app/shared/file/file.service.d.ts +0 -23
  595. package/src/app/shared/file/file.utils.d.ts +0 -20
  596. package/src/app/shared/file/images.utils.d.ts +0 -36
  597. package/src/app/shared/file/json.utils.d.ts +0 -19
  598. package/src/app/shared/file/uri.utils.d.ts +0 -8
  599. package/src/app/shared/file/url.utils.d.ts +0 -108
  600. package/src/app/shared/focusable.d.ts +0 -4
  601. package/src/app/shared/form/field.component.d.ts +0 -83
  602. package/src/app/shared/form/field.model.d.ts +0 -88
  603. package/src/app/shared/form/loading-spinner.d.ts +0 -8
  604. package/src/app/shared/forms.d.ts +0 -170
  605. package/src/app/shared/functions.d.ts +0 -296
  606. package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -25
  607. package/src/app/shared/gesture/gesture-config.d.ts +0 -15
  608. package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
  609. package/src/app/shared/graph/colors.utils.d.ts +0 -34
  610. package/src/app/shared/graph/graph-colors.d.ts +0 -63
  611. package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
  612. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
  613. package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -48
  614. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
  615. package/src/app/shared/html.utils.d.ts +0 -17
  616. package/src/app/shared/http/http.utils.d.ts +0 -28
  617. package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -139
  618. package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
  619. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
  620. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
  621. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
  622. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
  623. package/src/app/shared/image/image.model.d.ts +0 -7
  624. package/src/app/shared/image/image.module.d.ts +0 -8
  625. package/src/app/shared/image/image.service.d.ts +0 -37
  626. package/src/app/shared/inputs.d.ts +0 -37
  627. package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
  628. package/src/app/shared/logging/log-level.model.d.ts +0 -38
  629. package/src/app/shared/logging/logger.model.d.ts +0 -68
  630. package/src/app/shared/logging/logging-service.class.d.ts +0 -39
  631. package/src/app/shared/logging/logging-service.config.d.ts +0 -25
  632. package/src/app/shared/logging/logging-service.module.d.ts +0 -9
  633. package/src/app/shared/markdown/markdown.component.d.ts +0 -86
  634. package/src/app/shared/markdown/markdown.directive.d.ts +0 -13
  635. package/src/app/shared/markdown/markdown.modal.d.ts +0 -49
  636. package/src/app/shared/markdown/markdown.module.d.ts +0 -17
  637. package/src/app/shared/markdown/markdown.service.d.ts +0 -37
  638. package/src/app/shared/markdown/markdown.utils.d.ts +0 -26
  639. package/src/app/shared/markdown/testing/markdown.test.d.ts +0 -18
  640. package/src/app/shared/markdown/testing/markdown.testing.module.d.ts +0 -12
  641. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -74
  642. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -224
  643. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -23
  644. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
  645. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -48
  646. package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
  647. package/src/app/shared/material/badge/badge.module.d.ts +0 -10
  648. package/src/app/shared/material/badge/badge.test.d.ts +0 -21
  649. package/src/app/shared/material/boolean/boolean.module.d.ts +0 -21
  650. package/src/app/shared/material/boolean/material.boolean.d.ts +0 -94
  651. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -31
  652. package/src/app/shared/material/chips/chips.module.d.ts +0 -22
  653. package/src/app/shared/material/chips/material.chips.d.ts +0 -167
  654. package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
  655. package/src/app/shared/material/datetime/datetime.module.d.ts +0 -25
  656. package/src/app/shared/material/datetime/material.date.d.ts +0 -90
  657. package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
  658. package/src/app/shared/material/datetime/material.datetime.d.ts +0 -136
  659. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -38
  660. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
  661. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
  662. package/src/app/shared/material/duration/duration.module.d.ts +0 -18
  663. package/src/app/shared/material/duration/duration.utils.d.ts +0 -2
  664. package/src/app/shared/material/duration/material.duration.d.ts +0 -64
  665. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -23
  666. package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -59
  667. package/src/app/shared/material/latlong/material.latlong-input.d.ts +0 -93
  668. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -90
  669. package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -21
  670. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -30
  671. package/src/app/shared/material/material.animations.d.ts +0 -8
  672. package/src/app/shared/material/material.config.d.ts +0 -3
  673. package/src/app/shared/material/material.module.d.ts +0 -44
  674. package/src/app/shared/material/material.testing.module.d.ts +0 -31
  675. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
  676. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
  677. package/src/app/shared/material/swipe/material.swipe.d.ts +0 -89
  678. package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
  679. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
  680. package/src/app/shared/material/test/test-component.d.ts +0 -75
  681. package/src/app/shared/material/testing/common.test.d.ts +0 -25
  682. package/src/app/shared/modules.d.ts +0 -9
  683. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -63
  684. package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
  685. package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
  686. package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
  687. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
  688. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
  689. package/src/app/shared/observables.d.ts +0 -32
  690. package/src/app/shared/pipes/arrays.pipe.d.ts +0 -93
  691. package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
  692. package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
  693. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -25
  694. package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
  695. package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -14
  696. package/src/app/shared/pipes/date-from.pipe.d.ts +0 -14
  697. package/src/app/shared/pipes/dates.pipe.d.ts +0 -10
  698. package/src/app/shared/pipes/display-with.pipe.d.ts +0 -8
  699. package/src/app/shared/pipes/duration.pipe.d.ts +0 -23
  700. package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
  701. package/src/app/shared/pipes/form.pipes.d.ts +0 -69
  702. package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
  703. package/src/app/shared/pipes/html.pipes.d.ts +0 -50
  704. package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
  705. package/src/app/shared/pipes/maps.pipe.d.ts +0 -23
  706. package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
  707. package/src/app/shared/pipes/math.pipes.d.ts +0 -26
  708. package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
  709. package/src/app/shared/pipes/number-format.pipe.d.ts +0 -9
  710. package/src/app/shared/pipes/observable.pipes.d.ts +0 -25
  711. package/src/app/shared/pipes/pipes.module.d.ts +0 -36
  712. package/src/app/shared/pipes/property.pipes.d.ts +0 -46
  713. package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
  714. package/src/app/shared/pipes/string.pipes.d.ts +0 -67
  715. package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
  716. package/src/app/shared/pipes/types.pipes.d.ts +0 -30
  717. package/src/app/shared/pipes/url.pipes.d.ts +0 -27
  718. package/src/app/shared/platforms.d.ts +0 -16
  719. package/src/app/shared/print/print.service.d.ts +0 -94
  720. package/src/app/shared/regexps.d.ts +0 -32
  721. package/src/app/shared/rx-state/rx-state.decorators.d.ts +0 -33
  722. package/src/app/shared/rx-state/rx-state.module.d.ts +0 -10
  723. package/src/app/shared/rx-state/rx-state.types.d.ts +0 -5
  724. package/src/app/shared/services/entity-service.class.d.ts +0 -117
  725. package/src/app/shared/services/job.utils.d.ts +0 -20
  726. package/src/app/shared/services/memory-entity-service.class.d.ts +0 -87
  727. package/src/app/shared/services/progress-bar.service.d.ts +0 -20
  728. package/src/app/shared/services/startable-observable-service.class.d.ts +0 -51
  729. package/src/app/shared/services/startable-service.class.d.ts +0 -38
  730. package/src/app/shared/services/translate-context.service.d.ts +0 -29
  731. package/src/app/shared/services/validator-service.class.d.ts +0 -11
  732. package/src/app/shared/services.d.ts +0 -17
  733. package/src/app/shared/shared-routing.module.d.ts +0 -23
  734. package/src/app/shared/shared.module.d.ts +0 -33
  735. package/src/app/shared/shared.testing.module.d.ts +0 -20
  736. package/src/app/shared/storage/storage-explorer.component.d.ts +0 -60
  737. package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
  738. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
  739. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
  740. package/src/app/shared/storage/storage.service.d.ts +0 -22
  741. package/src/app/shared/storage/storage.utils.d.ts +0 -19
  742. package/src/app/shared/testing/maskito.test.d.ts +0 -10
  743. package/src/app/shared/testing/observable.test.d.ts +0 -25
  744. package/src/app/shared/testing/tests.page.d.ts +0 -20
  745. package/src/app/shared/toast/toast.testing.d.ts +0 -15
  746. package/src/app/shared/toast/toast.testing.module.d.ts +0 -12
  747. package/src/app/shared/toast/toasts.d.ts +0 -16
  748. package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
  749. package/src/app/shared/toolbar/toolbar.d.ts +0 -70
  750. package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
  751. package/src/app/shared/types.d.ts +0 -45
  752. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
  753. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
  754. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -41
  755. package/src/app/shared/upload-file/upload-file.component.d.ts +0 -50
  756. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
  757. package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
  758. package/src/app/shared/validator/validators.d.ts +0 -145
  759. package/src/app/shared/version/versions.d.ts +0 -26
  760. package/src/app/social/config/social.config.d.ts +0 -4
  761. package/src/app/social/feed/feed.component.d.ts +0 -91
  762. package/src/app/social/feed/feed.directive.d.ts +0 -32
  763. package/src/app/social/feed/feed.model.d.ts +0 -69
  764. package/src/app/social/feed/feed.module.d.ts +0 -13
  765. package/src/app/social/feed/feed.page.d.ts +0 -24
  766. package/src/app/social/feed/feed.service.d.ts +0 -85
  767. package/src/app/social/feed/testing/feed.testing.d.ts +0 -23
  768. package/src/app/social/feed/testing/feed.testing.module.d.ts +0 -12
  769. package/src/app/social/job/job.module.d.ts +0 -12
  770. package/src/app/social/job/progression/job-progression.component.d.ts +0 -24
  771. package/src/app/social/job/progression/job-progression.icon.d.ts +0 -63
  772. package/src/app/social/job/progression/job-progression.list.d.ts +0 -20
  773. package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
  774. package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
  775. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
  776. package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
  777. package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
  778. package/src/app/social/message/message.form.d.ts +0 -36
  779. package/src/app/social/message/message.modal.d.ts +0 -47
  780. package/src/app/social/message/message.model.d.ts +0 -36
  781. package/src/app/social/message/message.module.d.ts +0 -14
  782. package/src/app/social/message/message.service.d.ts +0 -44
  783. package/src/app/social/social.errors.d.ts +0 -10
  784. package/src/app/social/social.module.d.ts +0 -20
  785. package/src/app/social/social.testing.module.d.ts +0 -14
  786. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -47
  787. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -77
  788. package/src/app/social/user-event/notification/user-event-notification.modal.d.ts +0 -37
  789. package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -44
  790. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
  791. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
  792. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -41
  793. package/src/app/social/user-event/user-event.model.d.ts +0 -44
  794. package/src/app/social/user-event/user-event.module.d.ts +0 -14
  795. package/src/app/social/user-event/user-event.service.d.ts +0 -124
  796. package/src/environments/environment.class.d.ts +0 -86
  797. package/src/environments/environment.d.ts +0 -2
  798. package/src/environments/environment.loader.d.ts +0 -24
  799. package/src/theme/_globals.scss +0 -5
@@ -1,30 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { IonicModule } from '@ionic/angular';
4
- import { TranslateModule } from '@ngx-translate/core';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngx-translate/core";
7
- export class LoggingServiceModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: LoggingServiceModule, imports: [CommonModule,
10
- IonicModule, i1.TranslateModule] });
11
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingServiceModule, imports: [CommonModule,
12
- IonicModule,
13
- TranslateModule.forChild()] });
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingServiceModule, decorators: [{
16
- type: NgModule,
17
- args: [{
18
- imports: [
19
- CommonModule,
20
- IonicModule,
21
- TranslateModule.forChild(),
22
- // Testing sub-modules
23
- ],
24
- declarations: [],
25
- exports: [
26
- // Testing sub-modules
27
- ],
28
- }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy1zZXJ2aWNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2xvZ2dpbmcvbG9nZ2luZy1zZXJ2aWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFldEQsTUFBTSxPQUFPLG9CQUFvQjt3R0FBcEIsb0JBQW9CO3lHQUFwQixvQkFBb0IsWUFYN0IsWUFBWTtZQUNaLFdBQVc7eUdBVUYsb0JBQW9CLFlBWDdCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZSxDQUFDLFFBQVEsRUFBRTs7NEZBU2pCLG9CQUFvQjtrQkFiaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBRTFCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTtvQkFDUCxzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgLy8gVGVzdGluZyBzdWItbW9kdWxlc1xuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBleHBvcnRzOiBbXG4gICAgLy8gVGVzdGluZyBzdWItbW9kdWxlc1xuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dnaW5nU2VydmljZU1vZHVsZSB7fVxuIl19
@@ -1,321 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Inject, inject, Input, Optional, Output, } from '@angular/core';
2
- import { LocalSettingsService } from '../../core/services/local-settings.service';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { NetworkService } from '../../core/services/network.service';
5
- import { HttpErrorResponse } from '@angular/common/http';
6
- import { slideDownAnimation } from '../material/material.animations';
7
- import { MarkdownService } from './markdown.service';
8
- import { Subscription } from 'rxjs';
9
- import { UrlUtils } from '../file/url.utils';
10
- import { isNotEmptyArray, isNotNilOrBlank } from '../functions';
11
- import { NavController, ToastController } from '@ionic/angular';
12
- import { MarkdownUtils } from './markdown.utils';
13
- import { DOCUMENT } from '@angular/common';
14
- import { PrintService } from '../print/print.service';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@angular/router";
17
- import * as i2 from "@angular/common";
18
- import * as i3 from "@ionic/angular";
19
- import * as i4 from "ngx-markdown";
20
- import * as i5 from "../debug/debug.component";
21
- import * as i6 from "./markdown.directive";
22
- import * as i7 from "@ngx-translate/core";
23
- export class AppMarkdownContent {
24
- cd;
25
- element;
26
- _document;
27
- route;
28
- _printId;
29
- _clickSubscription;
30
- navController = inject(NavController);
31
- settings = inject(LocalSettingsService);
32
- translate = inject(TranslateService);
33
- network = inject(NetworkService);
34
- markdownService = inject(MarkdownService);
35
- toastController = inject(ToastController);
36
- printService = inject(PrintService);
37
- loading = true;
38
- error = undefined;
39
- baseUrl;
40
- _data;
41
- _src;
42
- _fallbackSrc;
43
- _anchor;
44
- _navHistory = [];
45
- set data(value) {
46
- this.setData(value);
47
- }
48
- get data() {
49
- return this._data;
50
- }
51
- set src(value) {
52
- this.setSrc(value);
53
- }
54
- get src() {
55
- return this._src;
56
- }
57
- set anchor(value) {
58
- this._anchor = value;
59
- }
60
- get anchor() {
61
- return this._anchor;
62
- }
63
- debug;
64
- showError = true;
65
- animated = true;
66
- enableNavigationHistory = true;
67
- updateRouteLocation = false;
68
- markdownUrlChange = new EventEmitter();
69
- constructor(cd, element, _document, route // Modal editor give 'null'
70
- ) {
71
- this.cd = cd;
72
- this.element = element;
73
- this._document = _document;
74
- this.route = route;
75
- this._printId = this.printService.nextJobId();
76
- this.markAsLoading({ emitEvent: false });
77
- // TODO: for DEV only
78
- //this.debug = !environment.production;
79
- }
80
- ngOnDestroy() {
81
- this._clickSubscription?.unsubscribe();
82
- this.markdownService.resetBaseUrl();
83
- }
84
- goBack(event) {
85
- console.debug('[markdown] Going back');
86
- if (isNotEmptyArray(this._navHistory)) {
87
- const { src, fallbackSrc, data, anchor } = this._navHistory.pop();
88
- if (src)
89
- this.setSrc(src, { fallbackSrc, anchor });
90
- else
91
- this.setData(data);
92
- }
93
- else {
94
- this.navController.back();
95
- }
96
- }
97
- get canGoBack() {
98
- return isNotEmptyArray(this._navHistory);
99
- }
100
- async print() {
101
- if (this.loading)
102
- return; // skip
103
- console.debug('[markdown] Print...');
104
- if (!this.element) {
105
- console.error('Element to print not found. Please check the HTML template.');
106
- return;
107
- }
108
- this.markAsLoading({ emitEvent: false });
109
- try {
110
- // Print
111
- await this.printService.printElement(this.element.nativeElement, {
112
- id: this._printId,
113
- // Print as portrait, by default
114
- style: `@media print {
115
- @page {
116
- size: portrait;
117
- margin: 1.1cm;
118
- }
119
- markdown hr {
120
- page-break-before: always;
121
- border: none;
122
- margin: 0;
123
- padding: 0;
124
- }
125
- markdown img {
126
- max-width: 100%;
127
- height: auto;
128
- page-break-inside: avoid;
129
- }
130
- }`,
131
- });
132
- }
133
- finally {
134
- this.markAsLoaded({ emitEvent: false });
135
- }
136
- }
137
- markAsLoaded(opts) {
138
- this.loading = false;
139
- if (opts?.emitEvent !== false) {
140
- this.printService.markAsLoaded(this._printId);
141
- this.cd.markForCheck();
142
- }
143
- }
144
- markAsLoading(opts) {
145
- this.loading = true;
146
- if (opts?.emitEvent !== false) {
147
- this.printService.markAsLoading(this._printId);
148
- this.cd.markForCheck();
149
- }
150
- }
151
- setError(error) {
152
- this.error = error?.['message'] || error || null;
153
- this.cd.markForCheck();
154
- }
155
- resetError() {
156
- this.error = null;
157
- this.cd.markForCheck();
158
- }
159
- /* -- protected functions -- */
160
- setData(value, opts) {
161
- const anchor = opts?.anchor || null;
162
- if (this._data !== value || this._anchor !== anchor) {
163
- if (value) {
164
- // Save current state to navigation history
165
- if (opts?.addToNavigationHistory) {
166
- this._navHistory.push({
167
- src: this._src,
168
- fallbackSrc: this._fallbackSrc,
169
- data: this._data,
170
- anchor: this._anchor,
171
- });
172
- }
173
- this._data = value;
174
- this._anchor = anchor;
175
- // Clear src
176
- this._src = null;
177
- this._fallbackSrc = null;
178
- this.resetError();
179
- this.markAsLoaded();
180
- }
181
- else {
182
- this._data = null;
183
- }
184
- this.cd.markForCheck();
185
- }
186
- }
187
- setSrc(src, opts) {
188
- // Clean URL (remove fragment and query)
189
- const anchor = opts?.anchor || UrlUtils.getFragment(src);
190
- src = UrlUtils.stripFragmentAndQuery(src);
191
- src = MarkdownUtils.isGitlabUrl(src) ? MarkdownUtils.fixGitlabUrlToRaw(src) : src;
192
- let fallbackSrc = opts?.fallbackSrc ? UrlUtils.stripFragmentAndQuery(opts.fallbackSrc) : null;
193
- fallbackSrc = MarkdownUtils.isGitlabUrl(fallbackSrc) ? MarkdownUtils.fixGitlabUrlToRaw(fallbackSrc) : fallbackSrc;
194
- if (this._src !== src || this._fallbackSrc !== fallbackSrc || this._anchor !== anchor) {
195
- const url = src ? src + (isNotNilOrBlank(anchor) ? `#${anchor}` : '') : null;
196
- if (url)
197
- console.debug(`[markdown] Loading ${url}...`);
198
- // Give baseUrl to the service, to be able to resolve relative path - e.g. images)
199
- if (src && UrlUtils.isExternalUrl(src)) {
200
- this.baseUrl = UrlUtils.getParent(src);
201
- this.markdownService.setBaseUrl(this.baseUrl);
202
- }
203
- if (src) {
204
- // Save current state to navigation history
205
- if (opts?.addToNavigationHistory) {
206
- this._navHistory.push({
207
- src: this._src,
208
- fallbackSrc: this._fallbackSrc,
209
- data: this._data,
210
- anchor: this._anchor,
211
- });
212
- }
213
- this._src = src;
214
- this._fallbackSrc = fallbackSrc;
215
- this._anchor = anchor;
216
- // Clear data
217
- this._data = null;
218
- // Reset error
219
- this.resetError();
220
- this.markAsLoading();
221
- }
222
- else {
223
- this._src = null;
224
- this._fallbackSrc = null;
225
- this._anchor = null;
226
- this.cd.markForCheck();
227
- }
228
- }
229
- }
230
- onReady() {
231
- const url = this._src ? this._src + (isNotNilOrBlank(this._anchor) ? `#${this._anchor}` : '') : null;
232
- if (url) {
233
- console.debug(`[markdown] Ready - ${url}`);
234
- // Clear fallback (no more need)
235
- if (this._fallbackSrc)
236
- this._fallbackSrc = null;
237
- // Emit change
238
- this.markdownUrlChange.emit(url);
239
- }
240
- this.startListenClickEvents();
241
- this.markAsLoaded();
242
- // Scroll to anchor
243
- if (isNotNilOrBlank(this._anchor)) {
244
- this.markdownService.scrollToAnchor(this.element.nativeElement, this._anchor);
245
- }
246
- }
247
- onLoadError(error) {
248
- // Translate error
249
- if (error instanceof HttpErrorResponse && this.network.offline) {
250
- console.error(`[markdown] Error loading markdown URL {${this.src}} (offline: true): `, error);
251
- this.setError('NETWORK.INFO.OFFLINE');
252
- }
253
- else {
254
- // Retry with fallback URL
255
- if (this._fallbackSrc) {
256
- console.debug(`[markdown] Error loading markdown URL {${this.src}} - fallback to URL ${this._fallbackSrc}`);
257
- this.setSrc(this._fallbackSrc, { anchor: this._anchor });
258
- return;
259
- }
260
- console.error(`[markdown] Error loading markdown URL {${this.src}} (offline: true): `, error);
261
- this.setError('ERROR.LOAD_DATA_ERROR');
262
- }
263
- this.markAsLoaded();
264
- }
265
- startListenClickEvents() {
266
- this._clickSubscription?.unsubscribe();
267
- this._clickSubscription = new Subscription();
268
- // Listen for click link to Markdown URL
269
- this._clickSubscription.add(this.markdownService.onClickMarkdownUrl.subscribe((href) => {
270
- console.debug('[markdown] Received click event, on a markdown URL', href);
271
- let fragment = UrlUtils.getFragment(href);
272
- let url = UrlUtils.stripFragmentAndQuery(href);
273
- let fallbackUrl = null;
274
- // Resolve relative path
275
- if (UrlUtils.isRelativeUrl(href) && this.baseUrl) {
276
- // Get absolute url
277
- url = MarkdownUtils.resolveRelativeUrl(this.baseUrl, href);
278
- // Create a fallback url, in relative path was wrong
279
- fallbackUrl = MarkdownUtils.resolveRelativeUrl(this.baseUrl, href, { absoluteByDefault: true });
280
- fallbackUrl = url === fallbackUrl ? null : fallbackUrl;
281
- }
282
- // Opening the new URL
283
- this.setSrc(url, { fallbackSrc: fallbackUrl, anchor: fragment, addToNavigationHistory: this.enableNavigationHistory });
284
- }));
285
- }
286
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppMarkdownContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Component });
287
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AppMarkdownContent, selector: "app-markdown-content", inputs: { data: "data", src: "src", anchor: "anchor", debug: ["debug", "debug", booleanAttribute], showError: ["showError", "showError", booleanAttribute], animated: ["animated", "animated", booleanAttribute], enableNavigationHistory: ["enableNavigationHistory", "enableNavigationHistory", booleanAttribute], updateRouteLocation: ["updateRouteLocation", "updateRouteLocation", booleanAttribute] }, outputs: { markdownUrlChange: "markdownUrlChange" }, ngImport: i0, template: "<app-debug *ngIf=\"debug\">\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n loading: {{ loading }}\n <br />\n error: {{ error }}\n <br />\n <br />\n baseUrl: {{ baseUrl }}\n <br />\n markdownUrl: {{ src }}\n <br />\n markdownFragment: {{ _anchor }}\n <br />\n markdownContent: {{ data }}\n <br />\n </ion-col>\n </ion-row>\n </ion-grid>\n</app-debug>\n\n<!-- error -->\n@if (showError && error; as error) {\n <ion-item lines=\"none\" @slideDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n} @else {\n @if (data) {\n <markdown [data]=\"data\" (ready)=\"onReady()\" emoji></markdown>\n } @else if (src) {\n <markdown [src]=\"src\" (error)=\"onLoadError($event)\" (ready)=\"onReady()\" emoji></markdown>\n }\n}\n\n<!-- loading spinner -->\n@if (loading) {\n <div class=\"loading-spinner\">\n <ng-container *ngTemplateOutlet=\"loadingParagraph\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingParagraph\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingParagraph\"></ng-container>\n </div>\n}\n\n<ng-template #loadingParagraph>\n <p>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 75%; margin-inline-start: 5%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n </p>\n</ng-template>\n", styles: [":host ::ng-deep markdown div.logo{display:none;visibility:hidden}:host ::ng-deep markdown hr{border-top:1px solid var(--ion-color-medium-tint, #dcdcde);margin:10px 0}:host ::ng-deep markdown blockquote{--block-margin: 16px 0;--block-padding: 4px 16px;--box-shadow: -4px 0px 0px rgba(var(--ion-text-color-rgb), .4);--ion-padding: 4px;display:block;position:relative;margin:var(--block-margin);padding:var(--block-padding);font-style:italic;background:var(--ion-color-light);box-shadow:var(--box-shadow)}:host ::ng-deep markdown code{color:rgba(var(--ion-text-color-rgb),.7);background:rgba(var(--ion-text-color-rgb),.03);font-size:.9rem;letter-spacing:-.5px}.loading-spinner ion-skeleton-text{width:100%;height:1.5em}.loading-spinner p{margin-top:var(ion-padding, 16px)}@media print{@page{size:portrait;margin:1.1cm}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0;overflow:hidden}markdown hr{page-break-before:always;border:none;margin:0;padding:0}markdown img{max-width:100%;height:auto;page-break-inside:avoid}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i4.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "component", type: i5.DebugComponent, selector: "app-debug", inputs: ["titlePrefix", "title", "enable", "expanded"] }, { kind: "directive", type: i6.MarkdownDirective, selector: "markdown,[markdown]" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], animations: [slideDownAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
288
- }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppMarkdownContent, decorators: [{
290
- type: Component,
291
- args: [{ selector: 'app-markdown-content', changeDetection: ChangeDetectionStrategy.OnPush, animations: [slideDownAnimation], template: "<app-debug *ngIf=\"debug\">\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n loading: {{ loading }}\n <br />\n error: {{ error }}\n <br />\n <br />\n baseUrl: {{ baseUrl }}\n <br />\n markdownUrl: {{ src }}\n <br />\n markdownFragment: {{ _anchor }}\n <br />\n markdownContent: {{ data }}\n <br />\n </ion-col>\n </ion-row>\n </ion-grid>\n</app-debug>\n\n<!-- error -->\n@if (showError && error; as error) {\n <ion-item lines=\"none\" @slideDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n} @else {\n @if (data) {\n <markdown [data]=\"data\" (ready)=\"onReady()\" emoji></markdown>\n } @else if (src) {\n <markdown [src]=\"src\" (error)=\"onLoadError($event)\" (ready)=\"onReady()\" emoji></markdown>\n }\n}\n\n<!-- loading spinner -->\n@if (loading) {\n <div class=\"loading-spinner\">\n <ng-container *ngTemplateOutlet=\"loadingParagraph\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingParagraph\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingParagraph\"></ng-container>\n </div>\n}\n\n<ng-template #loadingParagraph>\n <p>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 75%; margin-inline-start: 5%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n <ion-skeleton-text [animated]=\"animated\" style=\"width: 80%\"></ion-skeleton-text>\n </p>\n</ng-template>\n", styles: [":host ::ng-deep markdown div.logo{display:none;visibility:hidden}:host ::ng-deep markdown hr{border-top:1px solid var(--ion-color-medium-tint, #dcdcde);margin:10px 0}:host ::ng-deep markdown blockquote{--block-margin: 16px 0;--block-padding: 4px 16px;--box-shadow: -4px 0px 0px rgba(var(--ion-text-color-rgb), .4);--ion-padding: 4px;display:block;position:relative;margin:var(--block-margin);padding:var(--block-padding);font-style:italic;background:var(--ion-color-light);box-shadow:var(--box-shadow)}:host ::ng-deep markdown code{color:rgba(var(--ion-text-color-rgb),.7);background:rgba(var(--ion-text-color-rgb),.03);font-size:.9rem;letter-spacing:-.5px}.loading-spinner ion-skeleton-text{width:100%;height:1.5em}.loading-spinner p{margin-top:var(ion-padding, 16px)}@media print{@page{size:portrait;margin:1.1cm}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0;overflow:hidden}markdown hr{page-break-before:always;border:none;margin:0;padding:0}markdown img{max-width:100%;height:auto;page-break-inside:avoid}}\n"] }]
292
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: Document, decorators: [{
293
- type: Inject,
294
- args: [DOCUMENT]
295
- }] }, { type: i1.ActivatedRoute, decorators: [{
296
- type: Optional
297
- }] }], propDecorators: { data: [{
298
- type: Input
299
- }], src: [{
300
- type: Input
301
- }], anchor: [{
302
- type: Input
303
- }], debug: [{
304
- type: Input,
305
- args: [{ transform: booleanAttribute }]
306
- }], showError: [{
307
- type: Input,
308
- args: [{ transform: booleanAttribute }]
309
- }], animated: [{
310
- type: Input,
311
- args: [{ transform: booleanAttribute }]
312
- }], enableNavigationHistory: [{
313
- type: Input,
314
- args: [{ transform: booleanAttribute }]
315
- }], updateRouteLocation: [{
316
- type: Input,
317
- args: [{ transform: booleanAttribute }]
318
- }], markdownUrlChange: [{
319
- type: Output
320
- }] } });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbWFya2Rvd24vbWFya2Rvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbWFya2Rvd24vbWFya2Rvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzND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LFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3dHQWxUVSxrQkFBa0IsNkVBd0RuQixRQUFROzRGQXhEUCxrQkFBa0Isb0hBNkNULGdCQUFnQix5Q0FDaEIsZ0JBQWdCLHNDQUNoQixnQkFBZ0IsbUZBQ2hCLGdCQUFnQix1RUFDaEIsZ0JBQWdCLGtGQzNGdEMsKzVEQXVEQSwwbEdEZmMsQ0FBQyxrQkFBa0IsQ0FBQzs7NEZBRXJCLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLGtCQUFrQixDQUFDOzswQkEwRDdCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsUUFBUTt5Q0FqQ0UsSUFBSTtzQkFBaEIsS0FBSztnQkFPTyxHQUFHO3NCQUFmLEtBQUs7Z0JBT08sTUFBTTtzQkFBbEIsS0FBSztnQkFPa0MsS0FBSztzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsdUJBQXVCO3NCQUE5RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG1CQUFtQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFNUIsaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmV0d29ya1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL25ldHdvcmsuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHNsaWRlRG93bkFuaW1hdGlvbiB9IGZyb20gJy4uL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWFya2Rvd25TZXJ2aWNlIH0gZnJvbSAnLi9tYXJrZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXJsVXRpbHMgfSBmcm9tICcuLi9maWxlL3VybC51dGlscyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsT3JCbGFuayB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBUb2FzdENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBNYXJrZG93blV0aWxzIH0gZnJvbSAnLi9tYXJrZG93bi51dGlscyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmludFNlcnZpY2UgfSBmcm9tICcuLi9wcmludC9wcmludC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBNYXJrZG93bk9wdGlvbnMge1xuICBkYXRhPzogc3RyaW5nO1xuICBzcmM/OiBzdHJpbmc7XG4gIHNob3dFcnJvcj86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tYXJrZG93bi1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtzbGlkZURvd25BbmltYXRpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBNYXJrZG93bkNvbnRlbnQgaW1wbGVtZW50cyBBcHBNYXJrZG93bk9wdGlvbnMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3ByaW50SWQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBfY2xpY2tTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcm90ZWN0ZWQgbmF2Q29udHJvbGxlciA9IGluamVjdChOYXZDb250cm9sbGVyKTtcbiAgcHJvdGVjdGVkIHNldHRpbmdzID0gaW5qZWN0KExvY2FsU2V0dGluZ3NTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIG5ldHdvcmsgPSBpbmplY3QoTmV0d29ya1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgbWFya2Rvd25TZXJ2aWNlID0gaW5qZWN0KE1hcmtkb3duU2VydmljZSk7XG4gIHByb3RlY3RlZCB0b2FzdENvbnRyb2xsZXIgPSBpbmplY3QoVG9hc3RDb250cm9sbGVyKTtcbiAgcHJvdGVjdGVkIHByaW50U2VydmljZSA9IGluamVjdChQcmludFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIGVycm9yOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGJhc2VVcmw6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgX2RhdGE6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zcmM6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9mYWxsYmFja1NyYzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2FuY2hvcjogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBfbmF2SGlzdG9yeTogeyBzcmM/OiBzdHJpbmc7IGZhbGxiYWNrU3JjPzogc3RyaW5nOyBkYXRhPzogc3RyaW5nOyBhbmNob3I/OiBzdHJpbmcgfVtdID0gW107XG5cbiAgQElucHV0KCkgc2V0IGRhdGEodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0RGF0YSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFNyYyh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNyYygpIHtcbiAgICByZXR1cm4gdGhpcy5fc3JjO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGFuY2hvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYW5jaG9yID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGFuY2hvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5jaG9yO1xuICB9XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRlYnVnOiBib29sZWFuO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Vycm9yID0gdHJ1ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFuaW1hdGVkID0gdHJ1ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGVuYWJsZU5hdmlnYXRpb25IaXN0b3J5ID0gdHJ1ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHVwZGF0ZVJvdXRlTG9jYXRpb24gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgbWFya2Rvd25VcmxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSAvLyBNb2RhbCBlZGl0b3IgZ2l2ZSAnbnVsbCdcbiAgKSB7XG4gICAgdGhpcy5fcHJpbnRJZCA9IHRoaXMucHJpbnRTZXJ2aWNlLm5leHRKb2JJZCgpO1xuICAgIHRoaXMubWFya0FzTG9hZGluZyh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAvLyBUT0RPOiBmb3IgREVWIG9ubHlcbiAgICAvL3RoaXMuZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubWFya2Rvd25TZXJ2aWNlLnJlc2V0QmFzZVVybCgpO1xuICB9XG5cbiAgZ29CYWNrKGV2ZW50PzogRXZlbnQpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbbWFya2Rvd25dIEdvaW5nIGJhY2snKTtcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX25hdkhpc3RvcnkpKSB7XG4gICAgICBjb25zdCB7IHNyYywgZmFsbGJhY2tTcmMsIGRhdGEsIGFuY2hvciB9ID0gdGhpcy5fbmF2SGlzdG9yeS5wb3AoKTtcbiAgICAgIGlmIChzcmMpIHRoaXMuc2V0U3JjKHNyYywgeyBmYWxsYmFja1NyYywgYW5jaG9yIH0pO1xuICAgICAgZWxzZSB0aGlzLnNldERhdGEoZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5iYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNhbkdvQmFjaygpIHtcbiAgICByZXR1cm4gaXNOb3RFbXB0eUFycmF5KHRoaXMuX25hdkhpc3RvcnkpO1xuICB9XG5cbiAgYXN5bmMgcHJpbnQoKSB7XG4gICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuOyAvLyBza2lwXG4gICAgY29uc29sZS5kZWJ1ZygnW21hcmtkb3duXSBQcmludC4uLicpO1xuXG4gICAgaWYgKCF0aGlzLmVsZW1lbnQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0VsZW1lbnQgdG8gcHJpbnQgbm90IGZvdW5kLiBQbGVhc2UgY2hlY2sgdGhlIEhUTUwgdGVtcGxhdGUuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tYXJrQXNMb2FkaW5nKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBQcmludFxuICAgICAgYXdhaXQgdGhpcy5wcmludFNlcnZpY2UucHJpbnRFbGVtZW50KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGlkOiB0aGlzLl9wcmludElkLFxuXG4gICAgICAgIC8vIFByaW50IGFzIHBvcnRyYWl0LCBieSBkZWZhdWx0XG4gICAgICAgIHN0eWxlOiBgQG1lZGlhIHByaW50IHtcbiAgICAgICAgICBAcGFnZSB7XG4gICAgICAgICAgICBzaXplOiBwb3J0cmFpdDtcbiAgICAgICAgICAgIG1hcmdpbjogMS4xY207XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hcmtkb3duIGhyIHtcbiAgICAgICAgICAgIHBhZ2UtYnJlYWstYmVmb3JlOiBhbHdheXM7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXJrZG93biBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgIH1cbiAgICAgICAgfWAsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNMb2FkZWQoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtBc0xvYWRlZChvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcblxuICAgIGlmIChvcHRzPy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnByaW50U2VydmljZS5tYXJrQXNMb2FkZWQodGhpcy5fcHJpbnRJZCk7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtBc0xvYWRpbmcob3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIGlmIChvcHRzPy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnByaW50U2VydmljZS5tYXJrQXNMb2FkaW5nKHRoaXMuX3ByaW50SWQpO1xuXG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHNldEVycm9yKGVycm9yOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHRoaXMuZXJyb3IgPSBlcnJvcj8uWydtZXNzYWdlJ10gfHwgZXJyb3IgfHwgbnVsbDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVzZXRFcnJvcigpIHtcbiAgICB0aGlzLmVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIGZ1bmN0aW9ucyAtLSAqL1xuXG4gIHByb3RlY3RlZCBzZXREYXRhKHZhbHVlOiBzdHJpbmcsIG9wdHM/OiB7IGFuY2hvcj86IHN0cmluZzsgYWRkVG9OYXZpZ2F0aW9uSGlzdG9yeT86IGJvb2xlYW4gfSkge1xuICAgIGNvbnN0IGFuY2hvciA9IG9wdHM/LmFuY2hvciB8fCBudWxsO1xuXG4gICAgaWYgKHRoaXMuX2RhdGEgIT09IHZhbHVlIHx8IHRoaXMuX2FuY2hvciAhPT0gYW5jaG9yKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgLy8gU2F2ZSBjdXJyZW50IHN0YXRlIHRvIG5hdmlnYXRpb24gaGlzdG9yeVxuICAgICAgICBpZiAob3B0cz8uYWRkVG9OYXZpZ2F0aW9uSGlzdG9yeSkge1xuICAgICAgICAgIHRoaXMuX25hdkhpc3RvcnkucHVzaCh7XG4gICAgICAgICAgICBzcmM6IHRoaXMuX3NyYyxcbiAgICAgICAgICAgIGZhbGxiYWNrU3JjOiB0aGlzLl9mYWxsYmFja1NyYyxcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX2RhdGEsXG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuX2FuY2hvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RhdGEgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fYW5jaG9yID0gYW5jaG9yO1xuXG4gICAgICAgIC8vIENsZWFyIHNyY1xuICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xuICAgICAgICB0aGlzLl9mYWxsYmFja1NyYyA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5yZXNldEVycm9yKCk7XG4gICAgICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9kYXRhID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldFNyYyhzcmM6IHN0cmluZywgb3B0cz86IHsgZmFsbGJhY2tTcmM/OiBzdHJpbmc7IGFuY2hvcj86IHN0cmluZzsgYWRkVG9OYXZpZ2F0aW9uSGlzdG9yeT86IGJvb2xlYW4gfSkge1xuICAgIC8vIENsZWFuIFVSTCAocmVtb3ZlIGZyYWdtZW50IGFuZCBxdWVyeSlcbiAgICBjb25zdCBhbmNob3IgPSBvcHRzPy5hbmNob3IgfHwgVXJsVXRpbHMuZ2V0RnJhZ21lbnQoc3JjKTtcbiAgICBzcmMgPSBVcmxVdGlscy5zdHJpcEZyYWdtZW50QW5kUXVlcnkoc3JjKTtcbiAgICBzcmMgPSBNYXJrZG93blV0aWxzLmlzR2l0bGFiVXJsKHNyYykgPyBNYXJrZG93blV0aWxzLmZpeEdpdGxhYlVybFRvUmF3KHNyYykgOiBzcmM7XG5cbiAgICBsZXQgZmFsbGJhY2tTcmMgPSBvcHRzPy5mYWxsYmFja1NyYyA/IFVybFV0aWxzLnN0cmlwRnJhZ21lbnRBbmRRdWVyeShvcHRzLmZhbGxiYWNrU3JjKSA6IG51bGw7XG4gICAgZmFsbGJhY2tTcmMgPSBNYXJrZG93blV0aWxzLmlzR2l0bGFiVXJsKGZhbGxiYWNrU3JjKSA/IE1hcmtkb3duVXRpbHMuZml4R2l0bGFiVXJsVG9SYXcoZmFsbGJhY2tTcmMpIDogZmFsbGJhY2tTcmM7XG5cbiAgICBpZiAodGhpcy5fc3JjICE9PSBzcmMgfHwgdGhpcy5fZmFsbGJhY2tTcmMgIT09IGZhbGxiYWNrU3JjIHx8IHRoaXMuX2FuY2hvciAhPT0gYW5jaG9yKSB7XG4gICAgICBjb25zdCB1cmwgPSBzcmMgPyBzcmMgKyAoaXNOb3ROaWxPckJsYW5rKGFuY2hvcikgPyBgIyR7YW5jaG9yfWAgOiAnJykgOiBudWxsO1xuICAgICAgaWYgKHVybCkgY29uc29sZS5kZWJ1ZyhgW21hcmtkb3duXSBMb2FkaW5nICR7dXJsfS4uLmApO1xuXG4gICAgICAvLyBHaXZlIGJhc2VVcmwgdG8gdGhlIHNlcnZpY2UsIHRvIGJlIGFibGUgdG8gcmVzb2x2ZSByZWxhdGl2ZSBwYXRoIC0gZS5nLiBpbWFnZXMpXG4gICAgICBpZiAoc3JjICYmIFVybFV0aWxzLmlzRXh0ZXJuYWxVcmwoc3JjKSkge1xuICAgICAgICB0aGlzLmJhc2VVcmwgPSBVcmxVdGlscy5nZXRQYXJlbnQoc3JjKTtcbiAgICAgICAgdGhpcy5tYXJrZG93blNlcnZpY2Uuc2V0QmFzZVVybCh0aGlzLmJhc2VVcmwpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3JjKSB7XG4gICAgICAgIC8vIFNhdmUgY3VycmVudCBzdGF0ZSB0byBuYXZpZ2F0aW9uIGhpc3RvcnlcbiAgICAgICAgaWYgKG9wdHM/LmFkZFRvTmF2aWdhdGlvbkhpc3RvcnkpIHtcbiAgICAgICAgICB0aGlzLl9uYXZIaXN0b3J5LnB1c2goe1xuICAgICAgICAgICAgc3JjOiB0aGlzLl9zcmMsXG4gICAgICAgICAgICBmYWxsYmFja1NyYzogdGhpcy5fZmFsbGJhY2tTcmMsXG4gICAgICAgICAgICBkYXRhOiB0aGlzLl9kYXRhLFxuICAgICAgICAgICAgYW5jaG9yOiB0aGlzLl9hbmNob3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zcmMgPSBzcmM7XG4gICAgICAgIHRoaXMuX2ZhbGxiYWNrU3JjID0gZmFsbGJhY2tTcmM7XG4gICAgICAgIHRoaXMuX2FuY2hvciA9IGFuY2hvcjtcblxuICAgICAgICAvLyBDbGVhciBkYXRhXG4gICAgICAgIHRoaXMuX2RhdGEgPSBudWxsO1xuXG4gICAgICAgIC8vIFJlc2V0IGVycm9yXG4gICAgICAgIHRoaXMucmVzZXRFcnJvcigpO1xuICAgICAgICB0aGlzLm1hcmtBc0xvYWRpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3NyYyA9IG51bGw7XG4gICAgICAgIHRoaXMuX2ZhbGxiYWNrU3JjID0gbnVsbDtcbiAgICAgICAgdGhpcy5fYW5jaG9yID0gbnVsbDtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25SZWFkeSgpIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLl9zcmMgPyB0aGlzLl9zcmMgKyAoaXNOb3ROaWxPckJsYW5rKHRoaXMuX2FuY2hvcikgPyBgIyR7dGhpcy5fYW5jaG9yfWAgOiAnJykgOiBudWxsO1xuXG4gICAgaWYgKHVybCkge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgW21hcmtkb3duXSBSZWFkeSAtICR7dXJsfWApO1xuICAgICAgLy8gQ2xlYXIgZmFsbGJhY2sgKG5vIG1vcmUgbmVlZClcbiAgICAgIGlmICh0aGlzLl9mYWxsYmFja1NyYykgdGhpcy5fZmFsbGJhY2tTcmMgPSBudWxsO1xuXG4gICAgICAvLyBFbWl0IGNoYW5nZVxuICAgICAgdGhpcy5tYXJrZG93blVybENoYW5nZS5lbWl0KHVybCk7XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydExpc3RlbkNsaWNrRXZlbnRzKCk7XG5cbiAgICB0aGlzLm1hcmtBc0xvYWRlZCgpO1xuXG4gICAgLy8gU2Nyb2xsIHRvIGFuY2hvclxuICAgIGlmIChpc05vdE5pbE9yQmxhbmsodGhpcy5fYW5jaG9yKSkge1xuICAgICAgdGhpcy5tYXJrZG93blNlcnZpY2Uuc2Nyb2xsVG9BbmNob3IodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2FuY2hvcik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uTG9hZEVycm9yKGVycm9yPzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICAvLyBUcmFuc2xhdGUgZXJyb3JcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSAmJiB0aGlzLm5ldHdvcmsub2ZmbGluZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgW21hcmtkb3duXSBFcnJvciBsb2FkaW5nIG1hcmtkb3duIFVSTCB7JHt0aGlzLnNyY319IChvZmZsaW5lOiB0cnVlKTogYCwgZXJyb3IpO1xuICAgICAgdGhpcy5zZXRFcnJvcignTkVUV09SSy5JTkZPLk9GRkxJTkUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmV0cnkgd2l0aCBmYWxsYmFjayBVUkxcbiAgICAgIGlmICh0aGlzLl9mYWxsYmFja1NyYykge1xuICAgICAgICBjb25zb2xlLmRlYnVnKGBbbWFya2Rvd25dIEVycm9yIGxvYWRpbmcgbWFya2Rvd24gVVJMIHske3RoaXMuc3JjfX0gLSBmYWxsYmFjayB0byBVUkwgJHt0aGlzLl9mYWxsYmFja1NyY31gKTtcbiAgICAgICAgdGhpcy5zZXRTcmModGhpcy5fZmFsbGJhY2tTcmMsIHsgYW5jaG9yOiB0aGlzLl9hbmNob3IgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc29sZS5lcnJvcihgW21hcmtkb3duXSBFcnJvciBsb2FkaW5nIG1hcmtkb3duIFVSTCB7JHt0aGlzLnNyY319IChvZmZsaW5lOiB0cnVlKTogYCwgZXJyb3IpO1xuICAgICAgdGhpcy5zZXRFcnJvcignRVJST1IuTE9BRF9EQVRBX0VSUk9SJyk7XG4gICAgfVxuXG4gICAgdGhpcy5tYXJrQXNMb2FkZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydExpc3RlbkNsaWNrRXZlbnRzKCkge1xuICAgIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLy8gTGlzdGVuIGZvciBjbGljayBsaW5rIHRvIE1hcmtkb3duIFVSTFxuICAgIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMubWFya2Rvd25TZXJ2aWNlLm9uQ2xpY2tNYXJrZG93blVybC5zdWJzY3JpYmUoKGhyZWYpID0+IHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW21hcmtkb3duXSBSZWNlaXZlZCBjbGljayBldmVudCwgb24gYSBtYXJrZG93biBVUkwnLCBocmVmKTtcblxuICAgICAgICBsZXQgZnJhZ21lbnQgPSBVcmxVdGlscy5nZXRGcmFnbWVudChocmVmKTtcbiAgICAgICAgbGV0IHVybCA9IFVybFV0aWxzLnN0cmlwRnJhZ21lbnRBbmRRdWVyeShocmVmKTtcbiAgICAgICAgbGV0IGZhbGxiYWNrVXJsID0gbnVsbDtcblxuICAgICAgICAvLyBSZXNvbHZlIHJlbGF0aXZlIHBhdGhcbiAgICAgICAgaWYgKFVybFV0aWxzLmlzUmVsYXRpdmVVcmwoaHJlZikgJiYgdGhpcy5iYXNlVXJsKSB7XG4gICAgICAgICAgLy8gR2V0IGFic29sdXRlIHVybFxuICAgICAgICAgIHVybCA9IE1hcmtkb3duVXRpbHMucmVzb2x2ZVJlbGF0aXZlVXJsKHRoaXMuYmFzZVVybCwgaHJlZik7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgYSBmYWxsYmFjayB1cmwsIGluIHJlbGF0aXZlIHBhdGggd2FzIHdyb25nXG4gICAgICAgICAgZmFsbGJhY2tVcmwgPSBNYXJrZG93blV0aWxzLnJlc29sdmVSZWxhdGl2ZVVybCh0aGlzLmJhc2VVcmwsIGhyZWYsIHsgYWJzb2x1dGVCeURlZmF1bHQ6IHRydWUgfSk7XG4gICAgICAgICAgZmFsbGJhY2tVcmwgPSB1cmwgPT09IGZhbGxiYWNrVXJsID8gbnVsbCA6IGZhbGxiYWNrVXJsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3BlbmluZyB0aGUgbmV3IFVSTFxuICAgICAgICB0aGlzLnNldFNyYyh1cmwsIHsgZmFsbGJhY2tTcmM6IGZhbGxiYWNrVXJsLCBhbmNob3I6IGZyYWdtZW50LCBhZGRUb05hdmlnYXRpb25IaXN0b3J5OiB0aGlzLmVuYWJsZU5hdmlnYXRpb25IaXN0b3J5IH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8YXBwLWRlYnVnICpuZ0lmPVwiZGVidWdcIj5cbiAgPGlvbi1ncmlkIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICA8aW9uLXJvdz5cbiAgICAgIDxpb24tY29sPlxuICAgICAgICBsb2FkaW5nOiB7eyBsb2FkaW5nIH19XG4gICAgICAgIDxiciAvPlxuICAgICAgICBlcnJvcjoge3sgZXJyb3IgfX1cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIDxiciAvPlxuICAgICAgICBiYXNlVXJsOiB7eyBiYXNlVXJsIH19XG4gICAgICAgIDxiciAvPlxuICAgICAgICBtYXJrZG93blVybDoge3sgc3JjIH19XG4gICAgICAgIDxiciAvPlxuICAgICAgICBtYXJrZG93bkZyYWdtZW50OiB7eyBfYW5jaG9yIH19XG4gICAgICAgIDxiciAvPlxuICAgICAgICBtYXJrZG93bkNvbnRlbnQ6IHt7IGRhdGEgfX1cbiAgICAgICAgPGJyIC8+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICA8L2lvbi1ncmlkPlxuPC9hcHAtZGVidWc+XG5cbjwhLS0gZXJyb3IgLS0+XG5AaWYgKHNob3dFcnJvciAmJiBlcnJvcjsgYXMgZXJyb3IpIHtcbiAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIEBzbGlkZURvd25BbmltYXRpb24+XG4gICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgc2xvdD1cInN0YXJ0XCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiPjwvaW9uLWljb24+XG4gICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwiZXJyb3JcIiBbaW5uZXJIVE1MXT1cImVycm9yIHwgdHJhbnNsYXRlXCI+PC9pb24tbGFiZWw+XG4gIDwvaW9uLWl0ZW0+XG59IEBlbHNlIHtcbiAgQGlmIChkYXRhKSB7XG4gICAgPG1hcmtkb3duIFtkYXRhXT1cImRhdGFcIiAocmVhZHkpPVwib25SZWFkeSgpXCIgZW1vamk+PC9tYXJrZG93bj5cbiAgfSBAZWxzZSBpZiAoc3JjKSB7XG4gICAgPG1hcmtkb3duIFtzcmNdPVwic3JjXCIgKGVycm9yKT1cIm9uTG9hZEVycm9yKCRldmVudClcIiAocmVhZHkpPVwib25SZWFkeSgpXCIgZW1vamk+PC9tYXJrZG93bj5cbiAgfVxufVxuXG48IS0tIGxvYWRpbmcgc3Bpbm5lciAtLT5cbkBpZiAobG9hZGluZykge1xuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdQYXJhZ3JhcGhcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1BhcmFncmFwaFwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nUGFyYWdyYXBoXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdQYXJhZ3JhcGg+XG4gIDxwPlxuICAgIDxpb24tc2tlbGV0b24tdGV4dCBbYW5pbWF0ZWRdPVwiYW5pbWF0ZWRcIiBzdHlsZT1cIndpZHRoOiA3NSU7IG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDUlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cImFuaW1hdGVkXCIgc3R5bGU9XCJ3aWR0aDogODAlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cImFuaW1hdGVkXCIgc3R5bGU9XCJ3aWR0aDogODAlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cImFuaW1hdGVkXCIgc3R5bGU9XCJ3aWR0aDogODAlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cImFuaW1hdGVkXCIgc3R5bGU9XCJ3aWR0aDogODAlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cImFuaW1hdGVkXCIgc3R5bGU9XCJ3aWR0aDogODAlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,34 +0,0 @@
1
- import { Directive, HostListener } from '@angular/core';
2
- import { Subscription } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./markdown.service";
5
- export class MarkdownDirective {
6
- service;
7
- element;
8
- _subscription = new Subscription();
9
- constructor(service, element) {
10
- this.service = service;
11
- this.element = element;
12
- // DEBUG
13
- //console.debug('[markdown] Creating markdown directive');
14
- }
15
- processAnchors() {
16
- // Listening click events
17
- this._subscription.add(this.service.listenClickEvents(this.element.nativeElement));
18
- }
19
- ngOnDestroy() {
20
- this._subscription.unsubscribe();
21
- }
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkdownDirective, deps: [{ token: i1.MarkdownService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
23
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: MarkdownDirective, selector: "markdown,[markdown]", host: { listeners: { "ready": "processAnchors()" } }, ngImport: i0 });
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkdownDirective, decorators: [{
26
- type: Directive,
27
- args: [{
28
- selector: 'markdown,[markdown]',
29
- }]
30
- }], ctorParameters: () => [{ type: i1.MarkdownService }, { type: i0.ElementRef }], propDecorators: { processAnchors: [{
31
- type: HostListener,
32
- args: ['ready']
33
- }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbWFya2Rvd24vbWFya2Rvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUtwQyxNQUFNLE9BQU8saUJBQWlCO0lBSWxCO0lBQ0E7SUFKRixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUzQyxZQUNVLE9BQXdCLEVBQ3hCLE9BQWdDO1FBRGhDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBRXhDLFFBQVE7UUFDUiwwREFBMEQ7SUFDNUQsQ0FBQztJQUdNLGNBQWM7UUFDbkIseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3dHQW5CVSxpQkFBaUI7NEZBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs2R0FhUSxjQUFjO3NCQURwQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXJrZG93blNlcnZpY2UgfSBmcm9tICcuL21hcmtkb3duLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ21hcmtkb3duLFttYXJrZG93bl0nLFxufSlcbmV4cG9ydCBjbGFzcyBNYXJrZG93bkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlcnZpY2U6IE1hcmtkb3duU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICAgIC8vIERFQlVHXG4gICAgLy9jb25zb2xlLmRlYnVnKCdbbWFya2Rvd25dIENyZWF0aW5nIG1hcmtkb3duIGRpcmVjdGl2ZScpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncmVhZHknKVxuICBwdWJsaWMgcHJvY2Vzc0FuY2hvcnMoKSB7XG4gICAgLy8gTGlzdGVuaW5nIGNsaWNrIGV2ZW50c1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQodGhpcy5zZXJ2aWNlLmxpc3RlbkNsaWNrRXZlbnRzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
@@ -1,99 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@ionic/angular";
4
- import * as i2 from "../../core/services/platform.service";
5
- import * as i3 from "../../core/services/local-settings.service";
6
- import * as i4 from "@ngx-translate/core";
7
- import * as i5 from "../../core/services/network.service";
8
- import * as i6 from "../toolbar/modal-toolbar";
9
- import * as i7 from "./markdown.component";
10
- export class AppMarkdownModal {
11
- injector;
12
- viewCtrl;
13
- platform;
14
- settings;
15
- translate;
16
- network;
17
- cd;
18
- title;
19
- showError = true;
20
- canPrint = false;
21
- data;
22
- src;
23
- enableNavigationHistory = true;
24
- debug;
25
- content;
26
- static async show(modalCtrl, options) {
27
- const modal = await modalCtrl.create({
28
- component: AppMarkdownModal,
29
- componentProps: options,
30
- keyboardClose: true,
31
- cssClass: options?.cssClass || 'modal-large',
32
- });
33
- await modal.present();
34
- return modal.onWillDismiss();
35
- }
36
- constructor(injector, viewCtrl, platform, settings, translate, network, cd) {
37
- this.injector = injector;
38
- this.viewCtrl = viewCtrl;
39
- this.platform = platform;
40
- this.settings = settings;
41
- this.translate = translate;
42
- this.network = network;
43
- this.cd = cd;
44
- // TODO: for DEV only
45
- //this.debug = !environment.production;
46
- }
47
- close(_) {
48
- return this.viewCtrl.dismiss();
49
- }
50
- goBack(event, content) {
51
- if (content?.canGoBack) {
52
- content.goBack(event);
53
- this.cd.markForCheck();
54
- }
55
- else {
56
- this.close(event);
57
- }
58
- }
59
- markAsLoaded() {
60
- this.content?.markAsLoaded();
61
- }
62
- markAsLoading() {
63
- this.content?.markAsLoading();
64
- }
65
- setError(err) {
66
- this.content?.setError(err);
67
- }
68
- resetError() {
69
- this.content?.resetError();
70
- }
71
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppMarkdownModal, deps: [{ token: i0.Injector }, { token: i1.ModalController }, { token: i2.PlatformService }, { token: i3.LocalSettingsService }, { token: i4.TranslateService }, { token: i5.NetworkService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
72
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AppMarkdownModal, selector: "app-markdown-modal", inputs: { title: "title", showError: ["showError", "showError", booleanAttribute], canPrint: ["canPrint", "canPrint", booleanAttribute], data: "data", src: "src", enableNavigationHistory: ["enableNavigationHistory", "enableNavigationHistory", booleanAttribute], debug: ["debug", "debug", booleanAttribute] }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<app-modal-toolbar color=\"light\" [title]=\"title | translate\">\n @if (content.canGoBack) {\n <ion-button slot=\"start\" class=\"back-button\" (click)=\"goBack($event, content)\" routerDirection=\"back\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n }\n\n <ion-buttons slot=\"end\">\n @if (canPrint) {\n <ion-button slot=\"end\" (click)=\"content.print()\">\n <ion-icon slot=\"icon-only\" name=\"print\"></ion-icon>\n </ion-button>\n }\n\n <ion-button (click)=\"close()\" visible-xs visible-sm visible-mobile>\n {{ 'COMMON.BTN_CLOSE' | translate }}\n </ion-button>\n </ion-buttons>\n</app-modal-toolbar>\n\n<ion-content class=\"ion-padding\">\n <app-markdown-content\n #content\n [src]=\"src\"\n [data]=\"data\"\n [showError]=\"showError\"\n [debug]=\"debug\"\n [enableNavigationHistory]=\"enableNavigationHistory\"\n [updateRouteLocation]=\"false\"\n ></app-markdown-content>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\">{{ 'COMMON.BTN_CLOSE' | translate }}</ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i6.ModalToolbarComponent, selector: "app-modal-toolbar", inputs: ["modalName", "title", "color", "showSpinner", "canValidate", "validateIcon"], outputs: ["cancel", "validate"] }, { kind: "component", type: i7.AppMarkdownContent, selector: "app-markdown-content", inputs: ["data", "src", "anchor", "debug", "showError", "animated", "enableNavigationHistory", "updateRouteLocation"], outputs: ["markdownUrlChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppMarkdownModal, decorators: [{
75
- type: Component,
76
- args: [{ selector: 'app-markdown-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-modal-toolbar color=\"light\" [title]=\"title | translate\">\n @if (content.canGoBack) {\n <ion-button slot=\"start\" class=\"back-button\" (click)=\"goBack($event, content)\" routerDirection=\"back\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n }\n\n <ion-buttons slot=\"end\">\n @if (canPrint) {\n <ion-button slot=\"end\" (click)=\"content.print()\">\n <ion-icon slot=\"icon-only\" name=\"print\"></ion-icon>\n </ion-button>\n }\n\n <ion-button (click)=\"close()\" visible-xs visible-sm visible-mobile>\n {{ 'COMMON.BTN_CLOSE' | translate }}\n </ion-button>\n </ion-buttons>\n</app-modal-toolbar>\n\n<ion-content class=\"ion-padding\">\n <app-markdown-content\n #content\n [src]=\"src\"\n [data]=\"data\"\n [showError]=\"showError\"\n [debug]=\"debug\"\n [enableNavigationHistory]=\"enableNavigationHistory\"\n [updateRouteLocation]=\"false\"\n ></app-markdown-content>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\">{{ 'COMMON.BTN_CLOSE' | translate }}</ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n" }]
77
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.ModalController }, { type: i2.PlatformService }, { type: i3.LocalSettingsService }, { type: i4.TranslateService }, { type: i5.NetworkService }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
78
- type: Input
79
- }], showError: [{
80
- type: Input,
81
- args: [{ transform: booleanAttribute }]
82
- }], canPrint: [{
83
- type: Input,
84
- args: [{ transform: booleanAttribute }]
85
- }], data: [{
86
- type: Input
87
- }], src: [{
88
- type: Input
89
- }], enableNavigationHistory: [{
90
- type: Input,
91
- args: [{ transform: booleanAttribute }]
92
- }], debug: [{
93
- type: Input,
94
- args: [{ transform: booleanAttribute }]
95
- }], content: [{
96
- type: ViewChild,
97
- args: ['content']
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9tYXJrZG93bi9tYXJrZG93bi5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL21hcmtkb3duLm1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQVksS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBeUJwSSxNQUFNLE9BQU8sZ0JBQWdCO0lBeUJmO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBOUJILEtBQUssQ0FBUztJQUNpQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDaEQsSUFBSSxDQUFTO0lBQ2IsR0FBRyxDQUFTO0lBQ21CLHVCQUF1QixHQUFHLElBQUksQ0FBQztJQUMvQixLQUFLLENBQVU7SUFFakMsT0FBTyxDQUFxQjtJQUVsRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUEwQixFQUFFLE9BQWdDO1FBQzVFLE1BQU0sS0FBSyxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNuQyxTQUFTLEVBQUUsZ0JBQWdCO1lBQzNCLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxJQUFJLGFBQWE7U0FDN0MsQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdEIsT0FBTyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQ1ksUUFBa0IsRUFDbEIsUUFBeUIsRUFDekIsUUFBeUIsRUFDekIsUUFBOEIsRUFDOUIsU0FBMkIsRUFDM0IsT0FBdUIsRUFDdkIsRUFBcUI7UUFOckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUUvQixxQkFBcUI7UUFDckIsdUNBQXVDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsQ0FBUztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVksRUFBRSxPQUEyQjtRQUM5QyxJQUFJLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFUyxhQUFhO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVTLFFBQVEsQ0FBQyxHQUFtQjtRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzdCLENBQUM7d0dBaEVVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLGtHQUVQLGdCQUFnQixzQ0FDaEIsZ0JBQWdCLDZHQUdoQixnQkFBZ0IsNkJBQ2hCLGdCQUFnQixpSUNoQ3RDLG0xQ0EwQ0E7OzRGRGpCYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUViLHVCQUF1QixDQUFDLE1BQU07d1FBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDa0MsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNrQyx1QkFBdUI7c0JBQTlELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsS0FBSztzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFaEIsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmV0d29ya1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL25ldHdvcmsuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBNYXJrZG93bkNvbnRlbnQgfSBmcm9tICcuL21hcmtkb3duLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwTWFya2Rvd25Nb2RhbE9wdGlvbnMge1xuICB0aXRsZT86IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbiAgc3JjPzogc3RyaW5nO1xuICBzaG93RXJyb3I/OiBib29sZWFuO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY2FuUHJpbnQ/OiBib29sZWFuO1xuICBlbmFibGVOYXZpZ2F0aW9uSGlzdG9yeT86IGJvb2xlYW47XG5cbiAgZGVidWc/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWFya2Rvd24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24ubW9kYWwuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBNYXJrZG93bk1vZGFsIGltcGxlbWVudHMgQXBwTWFya2Rvd25Nb2RhbE9wdGlvbnMge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Vycm9yID0gdHJ1ZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNhblByaW50ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRhdGE6IHN0cmluZztcbiAgQElucHV0KCkgc3JjOiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlbmFibGVOYXZpZ2F0aW9uSGlzdG9yeSA9IHRydWU7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkZWJ1ZzogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdjb250ZW50JykgY29udGVudDogQXBwTWFya2Rvd25Db250ZW50O1xuXG4gIHN0YXRpYyBhc3luYyBzaG93KG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyLCBvcHRpb25zOiBBcHBNYXJrZG93bk1vZGFsT3B0aW9ucykge1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgbW9kYWxDdHJsLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IEFwcE1hcmtkb3duTW9kYWwsXG4gICAgICBjb21wb25lbnRQcm9wczogb3B0aW9ucyxcbiAgICAgIGtleWJvYXJkQ2xvc2U6IHRydWUsXG4gICAgICBjc3NDbGFzczogb3B0aW9ucz8uY3NzQ2xhc3MgfHwgJ21vZGFsLWxhcmdlJyxcbiAgICB9KTtcblxuICAgIGF3YWl0IG1vZGFsLnByZXNlbnQoKTtcblxuICAgIHJldHVybiBtb2RhbC5vbldpbGxEaXNtaXNzKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCB2aWV3Q3RybDogTW9kYWxDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbmV0d29yazogTmV0d29ya1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICAvLyBUT0RPOiBmb3IgREVWIG9ubHlcbiAgICAvL3RoaXMuZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIGNsb3NlKF8/OiBFdmVudCkge1xuICAgIHJldHVybiB0aGlzLnZpZXdDdHJsLmRpc21pc3MoKTtcbiAgfVxuXG4gIGdvQmFjayhldmVudDogRXZlbnQsIGNvbnRlbnQ6IEFwcE1hcmtkb3duQ29udGVudCkge1xuICAgIGlmIChjb250ZW50Py5jYW5Hb0JhY2spIHtcbiAgICAgIGNvbnRlbnQuZ29CYWNrKGV2ZW50KTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2UoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrQXNMb2FkZWQoKSB7XG4gICAgdGhpcy5jb250ZW50Py5tYXJrQXNMb2FkZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrQXNMb2FkaW5nKCkge1xuICAgIHRoaXMuY29udGVudD8ubWFya0FzTG9hZGluZygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEVycm9yKGVycjogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICB0aGlzLmNvbnRlbnQ/LnNldEVycm9yKGVycik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRFcnJvcigpIHtcbiAgICB0aGlzLmNvbnRlbnQ/LnJlc2V0RXJyb3IoKTtcbiAgfVxufVxuIiwiPGFwcC1tb2RhbC10b29sYmFyIGNvbG9yPVwibGlnaHRcIiBbdGl0bGVdPVwidGl0bGUgfCB0cmFuc2xhdGVcIj5cbiAgQGlmIChjb250ZW50LmNhbkdvQmFjaykge1xuICAgIDxpb24tYnV0dG9uIHNsb3Q9XCJzdGFydFwiIGNsYXNzPVwiYmFjay1idXR0b25cIiAoY2xpY2spPVwiZ29CYWNrKCRldmVudCwgY29udGVudClcIiByb3V0ZXJEaXJlY3Rpb249XCJiYWNrXCI+XG4gICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9pb24taWNvbj5cbiAgICA8L2lvbi1idXR0b24+XG4gIH1cblxuICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgIEBpZiAoY2FuUHJpbnQpIHtcbiAgICAgIDxpb24tYnV0dG9uIHNsb3Q9XCJlbmRcIiAoY2xpY2spPVwiY29udGVudC5wcmludCgpXCI+XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInByaW50XCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICB9XG5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIHZpc2libGUteHMgdmlzaWJsZS1zbSB2aXNpYmxlLW1vYmlsZT5cbiAgICAgIHt7ICdDT01NT04uQlROX0NMT1NFJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvaW9uLWJ1dHRvbj5cbiAgPC9pb24tYnV0dG9ucz5cbjwvYXBwLW1vZGFsLXRvb2xiYXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gIDxhcHAtbWFya2Rvd24tY29udGVudFxuICAgICNjb250ZW50XG4gICAgW3NyY109XCJzcmNcIlxuICAgIFtkYXRhXT1cImRhdGFcIlxuICAgIFtzaG93RXJyb3JdPVwic2hvd0Vycm9yXCJcbiAgICBbZGVidWddPVwiZGVidWdcIlxuICAgIFtlbmFibGVOYXZpZ2F0aW9uSGlzdG9yeV09XCJlbmFibGVOYXZpZ2F0aW9uSGlzdG9yeVwiXG4gICAgW3VwZGF0ZVJvdXRlTG9jYXRpb25dPVwiZmFsc2VcIlxuICA+PC9hcHAtbWFya2Rvd24tY29udGVudD5cbjwvaW9uLWNvbnRlbnQ+XG5cbjxpb24tZm9vdGVyIGhpZGRlbi14cyBoaWRkZW4tc20gaGlkZGVuLW1vYmlsZT5cbiAgPGlvbi10b29sYmFyPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgIDxpb24tY29sPjwvaW9uLWNvbD5cbiAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJzb2xpZFwiIGNvbG9yPVwidGVydGlhcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiPnt7ICdDT01NT04uQlROX0NMT1NFJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=