@sumaris-net/ngx-components 2.6.4-alpha3 → 2.6.4-alpha5

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 (1180) hide show
  1. package/.editorconfig +24 -0
  2. package/.eslintrc.json +74 -0
  3. package/.gitattribute +1 -0
  4. package/.github/CONTRIBUTING.md +10 -0
  5. package/.github/ISSUE_TEMPLATE.md +6 -0
  6. package/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  7. package/.github/github_disclaimer.md +14 -0
  8. package/.gitlab-ci.yml +46 -0
  9. package/.graphqlconfig +15 -0
  10. package/angular.json +230 -0
  11. package/capacitor.config.json +9 -0
  12. package/ionic.config.json +7 -0
  13. package/karma.conf.js +32 -0
  14. package/ng-package.json +19 -0
  15. package/ngcc.config.js +14 -0
  16. package/package.json +137 -23
  17. package/public_api.ts +343 -0
  18. package/resources/android/build/tools/android-accept-licenses.sh +14 -0
  19. package/resources/android/icon/drawable-hdpi-icon.png +0 -0
  20. package/resources/android/icon/drawable-ldpi-icon.png +0 -0
  21. package/resources/android/icon/drawable-mdpi-icon.png +0 -0
  22. package/resources/android/icon/drawable-xhdpi-icon.png +0 -0
  23. package/resources/android/icon/drawable-xxhdpi-icon.png +0 -0
  24. package/resources/android/icon/drawable-xxxhdpi-icon.png +0 -0
  25. package/resources/android/splash/drawable-land-hdpi-screen.png +0 -0
  26. package/resources/android/splash/drawable-land-ldpi-screen.png +0 -0
  27. package/resources/android/splash/drawable-land-mdpi-screen.png +0 -0
  28. package/resources/android/splash/drawable-land-xhdpi-screen.png +0 -0
  29. package/resources/android/splash/drawable-land-xxhdpi-screen.png +0 -0
  30. package/resources/android/splash/drawable-land-xxxhdpi-screen.png +0 -0
  31. package/resources/android/splash/drawable-port-hdpi-screen.png +0 -0
  32. package/resources/android/splash/drawable-port-ldpi-screen.png +0 -0
  33. package/resources/android/splash/drawable-port-mdpi-screen.png +0 -0
  34. package/resources/android/splash/drawable-port-xhdpi-screen.png +0 -0
  35. package/resources/android/splash/drawable-port-xxhdpi-screen.png +0 -0
  36. package/resources/android/splash/drawable-port-xxxhdpi-screen.png +0 -0
  37. package/resources/android/splash/drawable-xxxhdpi-screen.png +0 -0
  38. package/resources/icon/TODO.md +11 -0
  39. package/resources/icon.png +0 -0
  40. package/resources/icon.png.md5 +1 -0
  41. package/resources/icon.xcf +0 -0
  42. package/resources/ios/icon/icon-1024.png +0 -0
  43. package/resources/ios/icon/icon-108@2x.png +0 -0
  44. package/resources/ios/icon/icon-20.png +0 -0
  45. package/resources/ios/icon/icon-20@2x.png +0 -0
  46. package/resources/ios/icon/icon-20@3x.png +0 -0
  47. package/resources/ios/icon/icon-24@2x.png +0 -0
  48. package/resources/ios/icon/icon-27.5@2x.png +0 -0
  49. package/resources/ios/icon/icon-29.png +0 -0
  50. package/resources/ios/icon/icon-29@2x.png +0 -0
  51. package/resources/ios/icon/icon-29@3x.png +0 -0
  52. package/resources/ios/icon/icon-40.png +0 -0
  53. package/resources/ios/icon/icon-40@2x.png +0 -0
  54. package/resources/ios/icon/icon-40@3x.png +0 -0
  55. package/resources/ios/icon/icon-44@2x.png +0 -0
  56. package/resources/ios/icon/icon-50.png +0 -0
  57. package/resources/ios/icon/icon-50@2x.png +0 -0
  58. package/resources/ios/icon/icon-60.png +0 -0
  59. package/resources/ios/icon/icon-60@2x.png +0 -0
  60. package/resources/ios/icon/icon-60@3x.png +0 -0
  61. package/resources/ios/icon/icon-72.png +0 -0
  62. package/resources/ios/icon/icon-72@2x.png +0 -0
  63. package/resources/ios/icon/icon-76.png +0 -0
  64. package/resources/ios/icon/icon-76@2x.png +0 -0
  65. package/resources/ios/icon/icon-83.5@2x.png +0 -0
  66. package/resources/ios/icon/icon-86@2x.png +0 -0
  67. package/resources/ios/icon/icon-98@2x.png +0 -0
  68. package/resources/ios/icon/icon-small.png +0 -0
  69. package/resources/ios/icon/icon-small@2x.png +0 -0
  70. package/resources/ios/icon/icon-small@3x.png +0 -0
  71. package/resources/ios/icon/icon.png +0 -0
  72. package/resources/ios/icon/icon@2x.png +0 -0
  73. package/resources/ios/splash/Default-1792h~iphone.png +0 -0
  74. package/resources/ios/splash/Default-2436h.png +0 -0
  75. package/resources/ios/splash/Default-2688h~iphone.png +0 -0
  76. package/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
  77. package/resources/ios/splash/Default-667h.png +0 -0
  78. package/resources/ios/splash/Default-736h.png +0 -0
  79. package/resources/ios/splash/Default-Landscape-1792h~iphone.png +0 -0
  80. package/resources/ios/splash/Default-Landscape-2436h.png +0 -0
  81. package/resources/ios/splash/Default-Landscape-2688h~iphone.png +0 -0
  82. package/resources/ios/splash/Default-Landscape-736h.png +0 -0
  83. package/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
  84. package/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
  85. package/resources/ios/splash/Default-Landscape~ipad.png +0 -0
  86. package/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
  87. package/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
  88. package/resources/ios/splash/Default-Portrait~ipad.png +0 -0
  89. package/resources/ios/splash/Default@2x~iphone.png +0 -0
  90. package/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
  91. package/resources/ios/splash/Default~iphone.png +0 -0
  92. package/resources/splash.png +0 -0
  93. package/resources/splash.png.md5 +1 -0
  94. package/scripts/build-android.sh +18 -0
  95. package/scripts/build-i18n.js +24 -0
  96. package/scripts/docker-start.sh +6 -0
  97. package/scripts/emulate-android.sh +17 -0
  98. package/scripts/env-android.sh +83 -0
  99. package/scripts/env-clean.sh +23 -0
  100. package/scripts/env-global.sh +156 -0
  101. package/scripts/install-android-sdk-tools.sh +73 -0
  102. package/scripts/ionic-update.sh +24 -0
  103. package/scripts/node/playground.ts +9 -0
  104. package/scripts/node/resources.js +90 -0
  105. package/scripts/release.sh +149 -0
  106. package/scripts/run-android.sh +59 -0
  107. package/scripts/test.sh +19 -0
  108. package/src/app/admin/admin-routing.module.ts +30 -0
  109. package/src/app/admin/admin.module.ts +23 -0
  110. package/src/app/admin/services/filter/person.filter.ts +77 -0
  111. package/src/app/admin/services/person.service.ts +212 -0
  112. package/src/app/admin/services/validator/person.validator.ts +37 -0
  113. package/src/app/admin/users/users.html +427 -0
  114. package/src/app/admin/users/users.module.ts +34 -0
  115. package/src/app/admin/users/users.scss +59 -0
  116. package/src/app/admin/users/users.ts +257 -0
  117. package/src/app/app-routing.module.ts +126 -0
  118. package/src/app/app.component.html +12 -0
  119. package/src/app/app.component.scss +4 -0
  120. package/src/app/app.component.ts +205 -0
  121. package/src/app/app.module.ts +326 -0
  122. package/src/app/core/about/about.modal.html +140 -0
  123. package/src/app/core/about/about.modal.scss +23 -0
  124. package/src/app/core/about/about.modal.ts +71 -0
  125. package/src/app/core/about/about.module.ts +24 -0
  126. package/src/app/core/account/account.module.ts +38 -0
  127. package/src/app/core/account/account.page.html +241 -0
  128. package/src/app/core/account/account.page.scss +21 -0
  129. package/src/app/core/account/account.page.ts +366 -0
  130. package/src/app/core/account/new-token.modal.html +120 -0
  131. package/src/app/core/account/new-token.modal.ts +138 -0
  132. package/src/app/core/account/token.table.html +177 -0
  133. package/src/app/core/account/token.table.scss +7 -0
  134. package/src/app/core/account/token.table.ts +141 -0
  135. package/src/app/core/auth/auth.form.html +77 -0
  136. package/src/app/core/auth/auth.form.scss +1 -0
  137. package/src/app/core/auth/auth.form.ts +145 -0
  138. package/src/app/core/auth/auth.modal.html +57 -0
  139. package/src/app/core/auth/auth.modal.scss +1 -0
  140. package/src/app/core/auth/auth.modal.ts +80 -0
  141. package/src/app/core/auth/auth.module.ts +33 -0
  142. package/src/app/core/core.module.ts +100 -0
  143. package/src/app/core/core.testing.module.ts +64 -0
  144. package/src/app/core/form/buttons/form-buttons-bar.component.html +59 -0
  145. package/src/app/core/form/buttons/form-buttons-bar.component.scss +14 -0
  146. package/src/app/core/form/buttons/form-buttons-bar.component.ts +70 -0
  147. package/src/app/core/form/buttons/form-buttons-bar.module.ts +24 -0
  148. package/src/app/core/form/entity/editor.class.ts +803 -0
  149. package/src/app/core/form/entity/entity-editor-modal.class.ts +537 -0
  150. package/src/app/core/form/entity/entity-editor.class.ts +885 -0
  151. package/src/app/core/form/entity/entity-metadata.component.html +53 -0
  152. package/src/app/core/form/entity/entity-metadata.component.scss +28 -0
  153. package/src/app/core/form/entity/entity-metadata.component.ts +19 -0
  154. package/src/app/core/form/entity/entity.module.ts +25 -0
  155. package/src/app/core/form/form.class.ts +401 -0
  156. package/src/app/core/form/form.module.ts +37 -0
  157. package/src/app/core/form/form.utils.ts +639 -0
  158. package/src/app/core/form/list/list.form.html +67 -0
  159. package/src/app/core/form/list/list.form.scss +40 -0
  160. package/src/app/core/form/list/list.form.ts +278 -0
  161. package/src/app/core/form/list/list.module.ts +25 -0
  162. package/src/app/core/form/properties/properties.form.html +129 -0
  163. package/src/app/core/form/properties/properties.form.ts +147 -0
  164. package/src/app/core/form/properties/properties.module.ts +30 -0
  165. package/src/app/core/form/properties/properties.table.html +219 -0
  166. package/src/app/core/form/properties/properties.table.scss +0 -0
  167. package/src/app/core/form/properties/properties.table.ts +291 -0
  168. package/src/app/core/form/properties/property.validator.ts +22 -0
  169. package/src/app/core/form/properties/testing/properties-form.test.html +21 -0
  170. package/src/app/core/form/properties/testing/properties-form.test.ts +102 -0
  171. package/src/app/core/form/properties/testing/properties-form.testing.module.ts +25 -0
  172. package/src/app/core/form/text-popover/testing/text-popover.testing.html +45 -0
  173. package/src/app/core/form/text-popover/testing/text-popover.testing.module.ts +32 -0
  174. package/src/app/core/form/text-popover/testing/text-popover.testing.ts +77 -0
  175. package/src/app/core/form/text-popover/text-form.component.html +44 -0
  176. package/src/app/core/form/text-popover/text-form.component.scss +8 -0
  177. package/src/app/core/form/text-popover/text-form.component.ts +65 -0
  178. package/src/app/core/form/text-popover/text-popover.component.html +86 -0
  179. package/src/app/core/form/text-popover/text-popover.component.scss +7 -0
  180. package/src/app/core/form/text-popover/text-popover.component.ts +165 -0
  181. package/src/app/core/form/text-popover/text-popover.module.ts +27 -0
  182. package/src/app/core/graphql/graphql.module.ts +17 -0
  183. package/src/app/core/graphql/graphql.service.ts +969 -0
  184. package/src/app/core/graphql/graphql.utils.ts +167 -0
  185. package/src/app/core/home/home.html +211 -0
  186. package/src/app/core/home/home.module.ts +32 -0
  187. package/src/app/core/home/home.scss +242 -0
  188. package/src/app/core/home/home.ts +298 -0
  189. package/src/app/core/icon/icon.component.html +15 -0
  190. package/src/app/core/icon/icon.component.ts +23 -0
  191. package/src/app/core/icon/icon.module.ts +22 -0
  192. package/src/app/core/install/install-upgrade-card.component.html +144 -0
  193. package/src/app/core/install/install-upgrade-card.component.scss +4 -0
  194. package/src/app/core/install/install-upgrade-card.component.ts +412 -0
  195. package/src/app/core/install/install-upgrade-card.module.ts +23 -0
  196. package/src/app/core/menu/menu.component.html +135 -0
  197. package/src/app/core/menu/menu.component.scss +225 -0
  198. package/src/app/core/menu/menu.component.ts +352 -0
  199. package/src/app/core/menu/menu.model.ts +64 -0
  200. package/src/app/core/menu/menu.module.ts +27 -0
  201. package/src/app/core/menu/menu.service.ts +62 -0
  202. package/src/app/core/offline/update-offline-mode-card.component.html +45 -0
  203. package/src/app/core/offline/update-offline-mode-card.component.scss +4 -0
  204. package/src/app/core/offline/update-offline-mode-card.component.ts +28 -0
  205. package/src/app/core/offline/update-offline-mode-card.module.ts +24 -0
  206. package/src/app/core/peer/select-peer.modal.html +123 -0
  207. package/src/app/core/peer/select-peer.modal.scss +20 -0
  208. package/src/app/core/peer/select-peer.modal.ts +197 -0
  209. package/src/app/core/peer/select-peer.module.ts +28 -0
  210. package/src/app/core/register/register-confirm.page.html +55 -0
  211. package/src/app/core/register/register-confirm.page.scss +121 -0
  212. package/src/app/core/register/register-confirm.page.ts +94 -0
  213. package/src/app/core/register/register.form.html +125 -0
  214. package/src/app/core/register/register.form.scss +10 -0
  215. package/src/app/core/register/register.form.ts +213 -0
  216. package/src/app/core/register/register.modal.html +70 -0
  217. package/src/app/core/register/register.modal.ts +52 -0
  218. package/src/app/core/register/register.module.ts +31 -0
  219. package/src/app/core/services/account.service.ts +1431 -0
  220. package/src/app/core/services/auth-guard.service.ts +70 -0
  221. package/src/app/core/services/base-entity-service.class.ts +598 -0
  222. package/src/app/core/services/base-graphql-service.class.ts +298 -0
  223. package/src/app/core/services/base58.ts +83 -0
  224. package/src/app/core/services/config/account.config.ts +35 -0
  225. package/src/app/core/services/config/core.config.ts +180 -0
  226. package/src/app/core/services/config.service.ts +414 -0
  227. package/src/app/core/services/crypto.service.ts +126 -0
  228. package/src/app/core/services/errors.ts +67 -0
  229. package/src/app/core/services/local-settings.service.spec.ts +32 -0
  230. package/src/app/core/services/local-settings.service.ts +548 -0
  231. package/src/app/core/services/model/account.model.ts +141 -0
  232. package/src/app/core/services/model/config.model.ts +122 -0
  233. package/src/app/core/services/model/department.model.ts +34 -0
  234. package/src/app/core/services/model/entity.decorators.ts +112 -0
  235. package/src/app/core/services/model/entity.model.ts +326 -0
  236. package/src/app/core/services/model/filter.model.ts +139 -0
  237. package/src/app/core/services/model/history.model.ts +25 -0
  238. package/src/app/core/services/model/model.enum.ts +11 -0
  239. package/src/app/core/services/model/peer.model.ts +86 -0
  240. package/src/app/core/services/model/person.model.ts +112 -0
  241. package/src/app/core/services/model/referential.model.ts +244 -0
  242. package/src/app/core/services/model/settings.model.ts +32 -0
  243. package/src/app/core/services/model/token.model.ts +54 -0
  244. package/src/app/core/services/network.service.spec.ts +49 -0
  245. package/src/app/core/services/network.service.ts +729 -0
  246. package/src/app/core/services/network.types.ts +26 -0
  247. package/src/app/core/services/network.utils.ts +57 -0
  248. package/src/app/core/services/pipes/account.pipes.ts +25 -0
  249. package/src/app/core/services/pipes/department-to-string.pipe.ts +15 -0
  250. package/src/app/core/services/pipes/person-to-string.pipe.ts +15 -0
  251. package/src/app/core/services/pipes/usage-mode.pipes.ts +26 -0
  252. package/src/app/core/services/platform.service.spec.ts +56 -0
  253. package/src/app/core/services/platform.service.ts +605 -0
  254. package/src/app/core/services/storage/entities-storage.service.ts +542 -0
  255. package/src/app/core/services/storage/entity-store.class.ts +598 -0
  256. package/src/app/core/services/testing/referential-filter.model.ts +28 -0
  257. package/src/app/core/services/testing/referential.validator.ts +57 -0
  258. package/src/app/core/services/validator/account.validator.ts +58 -0
  259. package/src/app/core/services/validator/base.validator.class.ts +54 -0
  260. package/src/app/core/services/validator/local-settings.validator.ts +72 -0
  261. package/src/app/core/services/validator/user-settings.validator.ts +25 -0
  262. package/src/app/core/services/validator/user-token.validator.ts +55 -0
  263. package/src/app/core/settings/settings.module.ts +24 -0
  264. package/src/app/core/settings/settings.page.html +264 -0
  265. package/src/app/core/settings/settings.page.ts +365 -0
  266. package/src/app/core/table/actions-column.component.html +91 -0
  267. package/src/app/core/table/actions-column.component.ts +70 -0
  268. package/src/app/core/table/async-table.class.ts +1934 -0
  269. package/src/app/core/table/entities-async-table-datasource.class.ts +482 -0
  270. package/src/app/core/table/entities-table-datasource.class.ts +496 -0
  271. package/src/app/core/table/memory-table.class.ts +65 -0
  272. package/src/app/core/table/table-select-columns.component.html +58 -0
  273. package/src/app/core/table/table-select-columns.component.ts +50 -0
  274. package/src/app/core/table/table.class.ts +1973 -0
  275. package/src/app/core/table/table.model.ts +35 -0
  276. package/src/app/core/table/table.module.ts +26 -0
  277. package/src/app/core/table/table.utils.ts +38 -0
  278. package/src/app/core/table/testing/multi-table.testing.ts +261 -0
  279. package/src/app/core/table/testing/table-validator.service.ts +25 -0
  280. package/src/app/core/table/testing/table.testing.html +396 -0
  281. package/src/app/core/table/testing/table.testing.module.ts +25 -0
  282. package/src/app/core/table/testing/table.testing.scss +23 -0
  283. package/src/app/core/table/testing/table.testing.ts +292 -0
  284. package/src/app/shared/alerts.ts +292 -0
  285. package/src/app/shared/audio/audio.testing.html +33 -0
  286. package/src/app/shared/audio/audio.testing.module.ts +32 -0
  287. package/src/app/shared/audio/audio.testing.ts +31 -0
  288. package/src/app/shared/audio/audio.ts +278 -0
  289. package/src/app/shared/base64.utils.ts +66 -0
  290. package/src/app/shared/capacitor/keyboard.ts +40 -0
  291. package/src/app/shared/capacitor/plugins.ts +12 -0
  292. package/src/app/shared/constants.ts +12 -0
  293. package/src/app/shared/dates.ts +163 -0
  294. package/src/app/shared/debug/debug-service.class.ts +8 -0
  295. package/src/app/shared/debug/debug.component.html +13 -0
  296. package/src/app/shared/debug/debug.component.scss +24 -0
  297. package/src/app/shared/debug/debug.component.spec.ts +25 -0
  298. package/src/app/shared/debug/debug.component.ts +27 -0
  299. package/src/app/shared/debug/debug.module.ts +28 -0
  300. package/src/app/shared/directives/autofocus.directive.ts +109 -0
  301. package/src/app/shared/directives/autotitle.directive.ts +24 -0
  302. package/src/app/shared/directives/directives.module.ts +29 -0
  303. package/src/app/shared/directives/drag-and-drop.directive.ts +47 -0
  304. package/src/app/shared/directives/ng-var.directive.ts +32 -0
  305. package/src/app/shared/directives/resizable/resizable.component.ts +47 -0
  306. package/src/app/shared/directives/resizable/resizable.directive.ts +43 -0
  307. package/src/app/shared/directives/resizable/resizable.module.ts +9 -0
  308. package/src/app/shared/directives/resizable/resizable.style.scss +44 -0
  309. package/src/app/shared/directives/resizable/resizable.template.html +6 -0
  310. package/src/app/shared/events.ts +96 -0
  311. package/src/app/shared/file/csv.utils.ts +94 -0
  312. package/src/app/shared/file/file.service.ts +132 -0
  313. package/src/app/shared/file/file.utils.ts +138 -0
  314. package/src/app/shared/file/images.utils.ts +198 -0
  315. package/src/app/shared/file/json.utils.ts +73 -0
  316. package/src/app/shared/file/uri.utils.ts +25 -0
  317. package/src/app/shared/focusable.ts +10 -0
  318. package/src/app/shared/form/field.component.html +261 -0
  319. package/src/app/shared/form/field.component.scss +7 -0
  320. package/src/app/shared/form/field.component.ts +318 -0
  321. package/src/app/shared/form/field.model.ts +64 -0
  322. package/src/app/shared/form/loading-spinner.ts +16 -0
  323. package/src/app/shared/forms.ts +458 -0
  324. package/src/app/shared/functions.ts +492 -0
  325. package/src/app/shared/geolocation/geolocation.utils.ts +101 -0
  326. package/src/app/shared/gesture/gesture-config.ts +45 -0
  327. package/src/app/shared/gesture/hammer.utils.ts +14 -0
  328. package/src/app/shared/graph/colors.utils.ts +74 -0
  329. package/src/app/shared/graph/graph-colors.ts +295 -0
  330. package/src/app/shared/guard/component-dirty.guard.ts +70 -0
  331. package/src/app/shared/help/help.modal.html +42 -0
  332. package/src/app/shared/help/help.modal.ts +61 -0
  333. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.html +11 -0
  334. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.scss +39 -0
  335. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.ts +16 -0
  336. package/src/app/shared/hotkeys/hotkeys.service.ts +89 -0
  337. package/src/app/shared/hotkeys/shared-hotkeys.module.ts +27 -0
  338. package/src/app/shared/http/http.utils.ts +89 -0
  339. package/src/app/shared/image/gallery/image-gallery.component.html +231 -0
  340. package/src/app/shared/image/gallery/image-gallery.component.scss +196 -0
  341. package/src/app/shared/image/gallery/image-gallery.component.ts +389 -0
  342. package/src/app/shared/image/gallery/image-gallery.module.ts +34 -0
  343. package/src/app/shared/image/gallery/testing/gallegry.model.testing.ts +27 -0
  344. package/src/app/shared/image/gallery/testing/gallery.service.testing.ts +102 -0
  345. package/src/app/shared/image/gallery/testing/gallery.testing.html +15 -0
  346. package/src/app/shared/image/gallery/testing/gallery.testing.module.ts +39 -0
  347. package/src/app/shared/image/gallery/testing/gallery.testing.ts +38 -0
  348. package/src/app/shared/image/image.model.ts +6 -0
  349. package/src/app/shared/image/image.module.ts +16 -0
  350. package/src/app/shared/image/image.service.ts +94 -0
  351. package/src/app/shared/image/image.testing.module.ts +23 -0
  352. package/src/app/shared/inputs.ts +282 -0
  353. package/src/app/shared/interceptors/progess.interceptor.ts +25 -0
  354. package/src/app/shared/logging/log-level.model.ts +53 -0
  355. package/src/app/shared/logging/logger.model.ts +120 -0
  356. package/src/app/shared/logging/logging-service.class.ts +134 -0
  357. package/src/app/shared/logging/logging-service.config.ts +29 -0
  358. package/src/app/shared/logging/logging-service.module.ts +22 -0
  359. package/src/app/shared/material/autocomplete/material.autocomplete.config.ts +83 -0
  360. package/src/app/shared/material/autocomplete/material.autocomplete.html +262 -0
  361. package/src/app/shared/material/autocomplete/material.autocomplete.module.ts +45 -0
  362. package/src/app/shared/material/autocomplete/material.autocomplete.scss +21 -0
  363. package/src/app/shared/material/autocomplete/material.autocomplete.ts +1022 -0
  364. package/src/app/shared/material/autocomplete/material.autocomplete.utils.ts +20 -0
  365. package/src/app/shared/material/autocomplete/testing/autocomplete.test.html +876 -0
  366. package/src/app/shared/material/autocomplete/testing/autocomplete.test.spec.ts +38 -0
  367. package/src/app/shared/material/autocomplete/testing/autocomplete.test.ts +247 -0
  368. package/src/app/shared/material/badge/badge.directive.ts +164 -0
  369. package/src/app/shared/material/badge/badge.module.ts +22 -0
  370. package/src/app/shared/material/badge/badge.test.html +261 -0
  371. package/src/app/shared/material/badge/badge.test.ts +36 -0
  372. package/src/app/shared/material/boolean/boolean.module.ts +40 -0
  373. package/src/app/shared/material/boolean/material.boolean.html +155 -0
  374. package/src/app/shared/material/boolean/material.boolean.scss +34 -0
  375. package/src/app/shared/material/boolean/material.boolean.ts +239 -0
  376. package/src/app/shared/material/chips/chips.module.ts +44 -0
  377. package/src/app/shared/material/chips/material.chips.html +146 -0
  378. package/src/app/shared/material/chips/material.chips.scss +65 -0
  379. package/src/app/shared/material/chips/material.chips.ts +768 -0
  380. package/src/app/shared/material/chips/testing/chips.test.html +137 -0
  381. package/src/app/shared/material/chips/testing/chips.test.ts +175 -0
  382. package/src/app/shared/material/datetime/datetime.module.ts +52 -0
  383. package/src/app/shared/material/datetime/material.date.html +132 -0
  384. package/src/app/shared/material/datetime/material.date.scss +17 -0
  385. package/src/app/shared/material/datetime/material.date.ts +408 -0
  386. package/src/app/shared/material/datetime/material.dateshort.html +134 -0
  387. package/src/app/shared/material/datetime/material.dateshort.scss +23 -0
  388. package/src/app/shared/material/datetime/material.dateshort.ts +422 -0
  389. package/src/app/shared/material/datetime/material.datetime.html +224 -0
  390. package/src/app/shared/material/datetime/material.datetime.scss +90 -0
  391. package/src/app/shared/material/datetime/material.datetime.ts +575 -0
  392. package/src/app/shared/material/datetime/testing/mat-date-time.test.html +354 -0
  393. package/src/app/shared/material/datetime/testing/mat-date-time.test.ts +134 -0
  394. package/src/app/shared/material/datetime/testing/mat-date.test.html +418 -0
  395. package/src/app/shared/material/datetime/testing/mat-date.test.ts +135 -0
  396. package/src/app/shared/material/datetime/testing/mat-dateshort.test.html +370 -0
  397. package/src/app/shared/material/datetime/testing/mat-dateshort.test.ts +127 -0
  398. package/src/app/shared/material/duration/duration.module.ts +39 -0
  399. package/src/app/shared/material/duration/duration.utils.ts +41 -0
  400. package/src/app/shared/material/duration/material.duration.html +44 -0
  401. package/src/app/shared/material/duration/material.duration.scss +28 -0
  402. package/src/app/shared/material/duration/material.duration.ts +294 -0
  403. package/src/app/shared/material/latlong/latlong.utils.ts +300 -0
  404. package/src/app/shared/material/latlong/material.latlong.html +127 -0
  405. package/src/app/shared/material/latlong/material.latlong.module.ts +40 -0
  406. package/src/app/shared/material/latlong/material.latlong.scss +48 -0
  407. package/src/app/shared/material/latlong/material.latlong.ts +421 -0
  408. package/src/app/shared/material/latlong/testing/latlong.test.html +341 -0
  409. package/src/app/shared/material/latlong/testing/latlong.test.ts +121 -0
  410. package/src/app/shared/material/material.animations.ts +129 -0
  411. package/src/app/shared/material/material.module.ts +94 -0
  412. package/src/app/shared/material/material.testing.module.ts +135 -0
  413. package/src/app/shared/material/memory/memory.utils.ts +54 -0
  414. package/src/app/shared/material/numpad/numpad.animation.ts +1 -0
  415. package/src/app/shared/material/numpad/numpad.append-to-input.directive.ts +109 -0
  416. package/src/app/shared/material/numpad/numpad.component.ts +78 -0
  417. package/src/app/shared/material/numpad/numpad.container.html +32 -0
  418. package/src/app/shared/material/numpad/numpad.container.scss +50 -0
  419. package/src/app/shared/material/numpad/numpad.container.ts +176 -0
  420. package/src/app/shared/material/numpad/numpad.content.html +13 -0
  421. package/src/app/shared/material/numpad/numpad.content.ts +10 -0
  422. package/src/app/shared/material/numpad/numpad.directive.ts +173 -0
  423. package/src/app/shared/material/numpad/numpad.dom-service.ts +46 -0
  424. package/src/app/shared/material/numpad/numpad.model.ts +55 -0
  425. package/src/app/shared/material/numpad/numpad.module.ts +38 -0
  426. package/src/app/shared/material/numpad/testing/numpad.test.html +146 -0
  427. package/src/app/shared/material/numpad/testing/numpad.test.ts +55 -0
  428. package/src/app/shared/material/paginator/material.paginator-i18n.ts +49 -0
  429. package/src/app/shared/material/stepper/material.stepper-i18n.ts +18 -0
  430. package/src/app/shared/material/swipe/material.swipe.html +63 -0
  431. package/src/app/shared/material/swipe/material.swipe.scss +39 -0
  432. package/src/app/shared/material/swipe/material.swipe.ts +350 -0
  433. package/src/app/shared/material/swipe/swipe.module.ts +33 -0
  434. package/src/app/shared/material/swipe/testing/swipe.test.html +128 -0
  435. package/src/app/shared/material/swipe/testing/swipe.test.ts +81 -0
  436. package/src/app/shared/modules.ts +11 -0
  437. package/src/app/shared/observables.ts +132 -0
  438. package/src/app/shared/pipes/arrays.pipe.ts +111 -0
  439. package/src/app/shared/pipes/colors.pipe.ts +19 -0
  440. package/src/app/shared/pipes/date-diff-duration.pipe.ts +48 -0
  441. package/src/app/shared/pipes/date-format.pipe.ts +78 -0
  442. package/src/app/shared/pipes/date-from-now.pipe.ts +20 -0
  443. package/src/app/shared/pipes/duration.pipe.spec.ts +51 -0
  444. package/src/app/shared/pipes/duration.pipe.ts +34 -0
  445. package/src/app/shared/pipes/file-size.pipe.ts +58 -0
  446. package/src/app/shared/pipes/form.pipes.ts +204 -0
  447. package/src/app/shared/pipes/highlight.pipe.ts +37 -0
  448. package/src/app/shared/pipes/latlong-format.pipe.ts +30 -0
  449. package/src/app/shared/pipes/maps.pipe.ts +39 -0
  450. package/src/app/shared/pipes/math.pipes.ts +39 -0
  451. package/src/app/shared/pipes/ng-init.pipe.ts +14 -0
  452. package/src/app/shared/pipes/number-format.pipe.ts +21 -0
  453. package/src/app/shared/pipes/pipes.module.ts +134 -0
  454. package/src/app/shared/pipes/property.pipes.ts +87 -0
  455. package/src/app/shared/pipes/string.pipes.ts +85 -0
  456. package/src/app/shared/pipes/translate-context.pipe.ts +33 -0
  457. package/src/app/shared/pipes/types.pipes.ts +31 -0
  458. package/src/app/shared/platforms.ts +58 -0
  459. package/src/app/shared/services/entity-service.class.ts +127 -0
  460. package/src/app/shared/services/job.utils.ts +121 -0
  461. package/src/app/shared/services/memory-entity-service.class.ts +447 -0
  462. package/src/app/shared/services/progress-bar.service.ts +42 -0
  463. package/src/app/shared/services/startable-observable-service.class.ts +137 -0
  464. package/src/app/shared/services/startable-service.class.ts +131 -0
  465. package/src/app/shared/services/storage.utils.ts +47 -0
  466. package/src/app/shared/services/translate-context.service.ts +116 -0
  467. package/src/app/shared/services/validator-service.class.ts +14 -0
  468. package/src/app/shared/services.ts +91 -0
  469. package/src/app/shared/shared-routing.module.ts +66 -0
  470. package/src/app/shared/shared.module.spec.ts +13 -0
  471. package/src/app/shared/shared.module.ts +146 -0
  472. package/src/app/shared/shared.testing.module.ts +50 -0
  473. package/src/app/shared/storage/storage-explorer.component.html +175 -0
  474. package/src/app/shared/storage/storage-explorer.component.scss +39 -0
  475. package/src/app/shared/storage/storage-explorer.component.spec.ts +24 -0
  476. package/src/app/shared/storage/storage-explorer.component.ts +292 -0
  477. package/src/app/shared/storage/storage-explorer.module.ts +44 -0
  478. package/src/app/shared/storage/storage.service.ts +133 -0
  479. package/src/app/shared/storage/storage.utils.ts +25 -0
  480. package/src/app/shared/testing/observable.test.html +53 -0
  481. package/src/app/shared/testing/observable.test.scss +3 -0
  482. package/src/app/shared/testing/observable.test.ts +117 -0
  483. package/src/app/shared/testing/tests.page.html +30 -0
  484. package/src/app/shared/testing/tests.page.ts +34 -0
  485. package/src/app/shared/toast/toast.testing.html +42 -0
  486. package/src/app/shared/toast/toast.testing.module.ts +32 -0
  487. package/src/app/shared/toast/toast.testing.ts +58 -0
  488. package/src/app/shared/toast/toasts.ts +183 -0
  489. package/src/app/shared/toolbar/modal-toolbar.html +32 -0
  490. package/src/app/shared/toolbar/modal-toolbar.scss +0 -0
  491. package/src/app/shared/toolbar/modal-toolbar.ts +63 -0
  492. package/src/app/shared/toolbar/toolbar.html +71 -0
  493. package/src/app/shared/toolbar/toolbar.module.ts +35 -0
  494. package/src/app/shared/toolbar/toolbar.scss +0 -0
  495. package/src/app/shared/toolbar/toolbar.ts +254 -0
  496. package/src/app/shared/types.ts +31 -0
  497. package/src/app/shared/upload-file/testing/upload-file.testing.html +25 -0
  498. package/src/app/shared/upload-file/testing/upload-file.testing.module.ts +32 -0
  499. package/src/app/shared/upload-file/testing/upload-file.testing.ts +68 -0
  500. package/src/app/shared/upload-file/upload-file-popover.component.html +43 -0
  501. package/src/app/shared/upload-file/upload-file-popover.component.scss +6 -0
  502. package/src/app/shared/upload-file/upload-file-popover.component.ts +115 -0
  503. package/src/app/shared/upload-file/upload-file.component.html +46 -0
  504. package/src/app/shared/upload-file/upload-file.component.scss +130 -0
  505. package/src/app/shared/upload-file/upload-file.component.ts +218 -0
  506. package/src/app/shared/upload-file/upload-file.model.ts +41 -0
  507. package/src/app/shared/validator/form-error-adapter.class.ts +123 -0
  508. package/src/app/shared/validator/validators.ts +639 -0
  509. package/src/app/shared/version/versions.ts +91 -0
  510. package/src/app/social/job/job.module.ts +26 -0
  511. package/src/app/social/job/progression/job-progression.component.html +22 -0
  512. package/src/app/social/job/progression/job-progression.component.scss +15 -0
  513. package/src/app/social/job/progression/job-progression.component.ts +17 -0
  514. package/src/app/social/job/progression/job-progression.icon.html +28 -0
  515. package/src/app/social/job/progression/job-progression.icon.scss +5 -0
  516. package/src/app/social/job/progression/job-progression.icon.ts +238 -0
  517. package/src/app/social/job/progression/job-progression.list.html +21 -0
  518. package/src/app/social/job/progression/job-progression.list.scss +17 -0
  519. package/src/app/social/job/progression/job-progression.list.ts +49 -0
  520. package/src/app/social/job/progression/job-progression.model.ts +28 -0
  521. package/src/app/social/job/progression/job-progression.service.ts +86 -0
  522. package/src/app/social/job/testing/job-progression.testing.html +20 -0
  523. package/src/app/social/job/testing/job-progression.testing.service.ts +60 -0
  524. package/src/app/social/job/testing/job-progression.testing.ts +51 -0
  525. package/src/app/social/job/testing/job.testing.module.ts +22 -0
  526. package/src/app/social/message/message.form.html +60 -0
  527. package/src/app/social/message/message.form.scss +6 -0
  528. package/src/app/social/message/message.form.ts +79 -0
  529. package/src/app/social/message/message.modal.html +65 -0
  530. package/src/app/social/message/message.modal.ts +118 -0
  531. package/src/app/social/message/message.model.ts +81 -0
  532. package/src/app/social/message/message.module.ts +22 -0
  533. package/src/app/social/message/message.service.ts +88 -0
  534. package/src/app/social/social.errors.ts +11 -0
  535. package/src/app/social/social.module.ts +36 -0
  536. package/src/app/social/social.testing.module.ts +40 -0
  537. package/src/app/social/user-event/notification/user-event-notification.icon.html +16 -0
  538. package/src/app/social/user-event/notification/user-event-notification.icon.ts +108 -0
  539. package/src/app/social/user-event/notification/user-event-notification.list.html +135 -0
  540. package/src/app/social/user-event/notification/user-event-notification.list.scss +73 -0
  541. package/src/app/social/user-event/notification/user-event-notification.list.ts +287 -0
  542. package/src/app/social/user-event/testing/user-event.testing.html +27 -0
  543. package/src/app/social/user-event/testing/user-event.testing.model.ts +146 -0
  544. package/src/app/social/user-event/testing/user-event.testing.module.ts +22 -0
  545. package/src/app/social/user-event/testing/user-event.testing.service.ts +141 -0
  546. package/src/app/social/user-event/testing/user-event.testing.ts +253 -0
  547. package/src/app/social/user-event/user-event.model.ts +73 -0
  548. package/src/app/social/user-event/user-event.module.ts +25 -0
  549. package/src/app/social/user-event/user-event.service.ts +679 -0
  550. package/src/assets/manifest.json +1 -1
  551. package/src/browserslist +9 -0
  552. package/src/environments/environment.class.ts +83 -0
  553. package/src/environments/environment.prod.ts +47 -0
  554. package/src/environments/environment.test.ts +90 -0
  555. package/src/environments/environment.ts +108 -0
  556. package/src/favicon.ico +0 -0
  557. package/src/global.scss +27 -0
  558. package/src/index.html +80 -0
  559. package/src/main.ts +17 -0
  560. package/src/polyfills.ts +68 -0
  561. package/src/schema.graphql +3112 -0
  562. package/src/service-worker.js +31 -0
  563. package/src/zone-flags.ts +31 -0
  564. package/tsconfig.app.json +15 -0
  565. package/tsconfig.json +47 -0
  566. package/tsconfig.spec.json +19 -0
  567. package/esm2020/public_api.mjs +0 -313
  568. package/esm2020/src/app/admin/admin-routing.module.mjs +0 -41
  569. package/esm2020/src/app/admin/admin.module.mjs +0 -34
  570. package/esm2020/src/app/admin/services/filter/person.filter.mjs +0 -59
  571. package/esm2020/src/app/admin/services/person.service.mjs +0 -161
  572. package/esm2020/src/app/admin/services/validator/person.validator.mjs +0 -34
  573. package/esm2020/src/app/admin/users/users.mjs +0 -234
  574. package/esm2020/src/app/admin/users/users.module.mjs +0 -54
  575. package/esm2020/src/app/core/about/about.modal.mjs +0 -71
  576. package/esm2020/src/app/core/about/about.module.mjs +0 -34
  577. package/esm2020/src/app/core/account/account.module.mjs +0 -61
  578. package/esm2020/src/app/core/account/account.page.mjs +0 -316
  579. package/esm2020/src/app/core/account/new-token.modal.mjs +0 -115
  580. package/esm2020/src/app/core/account/token.table.mjs +0 -137
  581. package/esm2020/src/app/core/auth/auth.form.mjs +0 -131
  582. package/esm2020/src/app/core/auth/auth.modal.mjs +0 -72
  583. package/esm2020/src/app/core/auth/auth.module.mjs +0 -47
  584. package/esm2020/src/app/core/core.module.mjs +0 -184
  585. package/esm2020/src/app/core/core.testing.module.mjs +0 -86
  586. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -71
  587. package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -35
  588. package/esm2020/src/app/core/form/entity/editor.class.mjs +0 -679
  589. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -421
  590. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +0 -687
  591. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  592. package/esm2020/src/app/core/form/entity/entity.module.mjs +0 -38
  593. package/esm2020/src/app/core/form/form.class.mjs +0 -340
  594. package/esm2020/src/app/core/form/form.module.mjs +0 -66
  595. package/esm2020/src/app/core/form/form.utils.mjs +0 -473
  596. package/esm2020/src/app/core/form/list/list.form.mjs +0 -222
  597. package/esm2020/src/app/core/form/list/list.module.mjs +0 -35
  598. package/esm2020/src/app/core/form/properties/properties.form.mjs +0 -132
  599. package/esm2020/src/app/core/form/properties/properties.module.mjs +0 -43
  600. package/esm2020/src/app/core/form/properties/properties.table.mjs +0 -264
  601. package/esm2020/src/app/core/form/properties/property.validator.mjs +0 -23
  602. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +0 -90
  603. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -39
  604. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -70
  605. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -45
  606. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +0 -89
  607. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +0 -146
  608. package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +0 -40
  609. package/esm2020/src/app/core/graphql/graphql.module.mjs +0 -22
  610. package/esm2020/src/app/core/graphql/graphql.service.mjs +0 -762
  611. package/esm2020/src/app/core/graphql/graphql.utils.mjs +0 -117
  612. package/esm2020/src/app/core/home/home.mjs +0 -257
  613. package/esm2020/src/app/core/home/home.module.mjs +0 -48
  614. package/esm2020/src/app/core/icon/icon.component.mjs +0 -41
  615. package/esm2020/src/app/core/icon/icon.module.mjs +0 -29
  616. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +0 -343
  617. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +0 -35
  618. package/esm2020/src/app/core/menu/menu.component.mjs +0 -329
  619. package/esm2020/src/app/core/menu/menu.model.mjs +0 -35
  620. package/esm2020/src/app/core/menu/menu.module.mjs +0 -44
  621. package/esm2020/src/app/core/menu/menu.service.mjs +0 -55
  622. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +0 -27
  623. package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +0 -35
  624. package/esm2020/src/app/core/peer/select-peer.modal.mjs +0 -182
  625. package/esm2020/src/app/core/peer/select-peer.module.mjs +0 -42
  626. package/esm2020/src/app/core/register/register-confirm.page.mjs +0 -81
  627. package/esm2020/src/app/core/register/register.form.mjs +0 -181
  628. package/esm2020/src/app/core/register/register.modal.mjs +0 -52
  629. package/esm2020/src/app/core/register/register.module.mjs +0 -44
  630. package/esm2020/src/app/core/services/account.service.mjs +0 -1212
  631. package/esm2020/src/app/core/services/auth-guard.service.mjs +0 -71
  632. package/esm2020/src/app/core/services/base-entity-service.class.mjs +0 -444
  633. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +0 -219
  634. package/esm2020/src/app/core/services/base58.mjs +0 -78
  635. package/esm2020/src/app/core/services/config/core.config.mjs +0 -175
  636. package/esm2020/src/app/core/services/config.service.mjs +0 -354
  637. package/esm2020/src/app/core/services/crypto.service.mjs +0 -114
  638. package/esm2020/src/app/core/services/errors.mjs +0 -50
  639. package/esm2020/src/app/core/services/local-settings.service.mjs +0 -449
  640. package/esm2020/src/app/core/services/model/account.model.mjs +0 -122
  641. package/esm2020/src/app/core/services/model/config.model.mjs +0 -92
  642. package/esm2020/src/app/core/services/model/department.model.mjs +0 -30
  643. package/esm2020/src/app/core/services/model/entity.decorators.mjs +0 -97
  644. package/esm2020/src/app/core/services/model/entity.model.mjs +0 -240
  645. package/esm2020/src/app/core/services/model/filter.model.mjs +0 -111
  646. package/esm2020/src/app/core/services/model/history.model.mjs +0 -2
  647. package/esm2020/src/app/core/services/model/model.enum.mjs +0 -11
  648. package/esm2020/src/app/core/services/model/peer.model.mjs +0 -68
  649. package/esm2020/src/app/core/services/model/person.model.mjs +0 -83
  650. package/esm2020/src/app/core/services/model/referential.model.mjs +0 -164
  651. package/esm2020/src/app/core/services/model/settings.model.mjs +0 -3
  652. package/esm2020/src/app/core/services/model/token.model.mjs +0 -48
  653. package/esm2020/src/app/core/services/network.service.mjs +0 -589
  654. package/esm2020/src/app/core/services/network.types.mjs +0 -20
  655. package/esm2020/src/app/core/services/network.utils.mjs +0 -15
  656. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +0 -38
  657. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
  658. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
  659. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
  660. package/esm2020/src/app/core/services/platform.service.mjs +0 -525
  661. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +0 -428
  662. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +0 -449
  663. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +0 -23
  664. package/esm2020/src/app/core/services/testing/referential.validator.mjs +0 -45
  665. package/esm2020/src/app/core/services/validator/account.validator.mjs +0 -56
  666. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +0 -47
  667. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +0 -66
  668. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +0 -27
  669. package/esm2020/src/app/core/services/validator/user-token.validator.mjs +0 -52
  670. package/esm2020/src/app/core/settings/settings.module.mjs +0 -34
  671. package/esm2020/src/app/core/settings/settings.page.mjs +0 -312
  672. package/esm2020/src/app/core/table/actions-column.component.mjs +0 -102
  673. package/esm2020/src/app/core/table/async-table.class.mjs +0 -1697
  674. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  675. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +0 -399
  676. package/esm2020/src/app/core/table/memory-table.class.mjs +0 -53
  677. package/esm2020/src/app/core/table/table-select-columns.component.mjs +0 -43
  678. package/esm2020/src/app/core/table/table.class.mjs +0 -1728
  679. package/esm2020/src/app/core/table/table.model.mjs +0 -12
  680. package/esm2020/src/app/core/table/table.module.mjs +0 -40
  681. package/esm2020/src/app/core/table/table.utils.mjs +0 -30
  682. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +0 -27
  683. package/esm2020/src/app/core/table/testing/table.testing.mjs +0 -280
  684. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +0 -38
  685. package/esm2020/src/app/shared/alerts.mjs +0 -239
  686. package/esm2020/src/app/shared/audio/audio.mjs +0 -248
  687. package/esm2020/src/app/shared/audio/audio.testing.mjs +0 -31
  688. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +0 -45
  689. package/esm2020/src/app/shared/capacitor/keyboard.mjs +0 -40
  690. package/esm2020/src/app/shared/capacitor/plugins.mjs +0 -9
  691. package/esm2020/src/app/shared/constants.mjs +0 -10
  692. package/esm2020/src/app/shared/dates.mjs +0 -148
  693. package/esm2020/src/app/shared/debug/debug-service.class.mjs +0 -3
  694. package/esm2020/src/app/shared/debug/debug.component.mjs +0 -39
  695. package/esm2020/src/app/shared/debug/debug.module.mjs +0 -44
  696. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +0 -92
  697. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +0 -30
  698. package/esm2020/src/app/shared/directives/directives.module.mjs +0 -43
  699. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +0 -53
  700. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +0 -31
  701. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +0 -59
  702. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +0 -40
  703. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
  704. package/esm2020/src/app/shared/events.mjs +0 -64
  705. package/esm2020/src/app/shared/file/csv.utils.mjs +0 -74
  706. package/esm2020/src/app/shared/file/file.service.mjs +0 -117
  707. package/esm2020/src/app/shared/file/file.utils.mjs +0 -113
  708. package/esm2020/src/app/shared/file/images.utils.mjs +0 -161
  709. package/esm2020/src/app/shared/file/json.utils.mjs +0 -51
  710. package/esm2020/src/app/shared/file/uri.utils.mjs +0 -23
  711. package/esm2020/src/app/shared/focusable.mjs +0 -6
  712. package/esm2020/src/app/shared/form/field.component.mjs +0 -307
  713. package/esm2020/src/app/shared/form/field.model.mjs +0 -25
  714. package/esm2020/src/app/shared/form/loading-spinner.mjs +0 -36
  715. package/esm2020/src/app/shared/forms.mjs +0 -391
  716. package/esm2020/src/app/shared/functions.mjs +0 -477
  717. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +0 -80
  718. package/esm2020/src/app/shared/gesture/gesture-config.mjs +0 -49
  719. package/esm2020/src/app/shared/gesture/hammer.utils.mjs +0 -2
  720. package/esm2020/src/app/shared/graph/colors.utils.mjs +0 -64
  721. package/esm2020/src/app/shared/graph/graph-colors.mjs +0 -212
  722. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +0 -57
  723. package/esm2020/src/app/shared/help/help.modal.mjs +0 -53
  724. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  725. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +0 -84
  726. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -42
  727. package/esm2020/src/app/shared/http/http.utils.mjs +0 -52
  728. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +0 -365
  729. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +0 -59
  730. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -27
  731. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -90
  732. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -39
  733. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -56
  734. package/esm2020/src/app/shared/image/image.model.mjs +0 -2
  735. package/esm2020/src/app/shared/image/image.module.mjs +0 -29
  736. package/esm2020/src/app/shared/image/image.service.mjs +0 -98
  737. package/esm2020/src/app/shared/inputs.mjs +0 -231
  738. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  739. package/esm2020/src/app/shared/logging/log-level.model.mjs +0 -48
  740. package/esm2020/src/app/shared/logging/logger.model.mjs +0 -47
  741. package/esm2020/src/app/shared/logging/logging-service.class.mjs +0 -121
  742. package/esm2020/src/app/shared/logging/logging-service.config.mjs +0 -2
  743. package/esm2020/src/app/shared/logging/logging-service.module.mjs +0 -30
  744. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -47
  745. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -916
  746. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -78
  747. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -19
  748. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -209
  749. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +0 -194
  750. package/esm2020/src/app/shared/material/badge/badge.module.mjs +0 -32
  751. package/esm2020/src/app/shared/material/badge/badge.test.mjs +0 -41
  752. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +0 -68
  753. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +0 -253
  754. package/esm2020/src/app/shared/material/chips/chips.module.mjs +0 -76
  755. package/esm2020/src/app/shared/material/chips/material.chips.mjs +0 -697
  756. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +0 -143
  757. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +0 -91
  758. package/esm2020/src/app/shared/material/datetime/material.date.mjs +0 -376
  759. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +0 -385
  760. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +0 -499
  761. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -108
  762. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -110
  763. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -103
  764. package/esm2020/src/app/shared/material/duration/duration.module.mjs +0 -67
  765. package/esm2020/src/app/shared/material/duration/duration.utils.mjs +0 -36
  766. package/esm2020/src/app/shared/material/duration/material.duration.mjs +0 -257
  767. package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +0 -266
  768. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +0 -381
  769. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  770. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -102
  771. package/esm2020/src/app/shared/material/material.animations.mjs +0 -104
  772. package/esm2020/src/app/shared/material/material.module.mjs +0 -224
  773. package/esm2020/src/app/shared/material/material.testing.module.mjs +0 -168
  774. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -98
  775. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +0 -80
  776. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +0 -190
  777. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +0 -17
  778. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +0 -162
  779. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -37
  780. package/esm2020/src/app/shared/material/numpad/numpad.model.mjs +0 -15
  781. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +0 -60
  782. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -46
  783. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -46
  784. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -22
  785. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +0 -344
  786. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  787. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -64
  788. package/esm2020/src/app/shared/modules.mjs +0 -11
  789. package/esm2020/src/app/shared/observables.mjs +0 -103
  790. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +0 -141
  791. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +0 -23
  792. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -48
  793. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +0 -66
  794. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +0 -27
  795. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +0 -34
  796. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +0 -62
  797. package/esm2020/src/app/shared/pipes/form.pipes.mjs +0 -187
  798. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +0 -48
  799. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +0 -46
  800. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +0 -63
  801. package/esm2020/src/app/shared/pipes/math.pipes.mjs +0 -59
  802. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +0 -21
  803. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +0 -30
  804. package/esm2020/src/app/shared/pipes/pipes.module.mjs +0 -239
  805. package/esm2020/src/app/shared/pipes/property.pipes.mjs +0 -93
  806. package/esm2020/src/app/shared/pipes/string.pipes.mjs +0 -121
  807. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +0 -43
  808. package/esm2020/src/app/shared/pipes/types.pipes.mjs +0 -45
  809. package/esm2020/src/app/shared/platforms.mjs +0 -43
  810. package/esm2020/src/app/shared/services/entity-service.class.mjs +0 -7
  811. package/esm2020/src/app/shared/services/job.utils.mjs +0 -92
  812. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +0 -337
  813. package/esm2020/src/app/shared/services/progress-bar.service.mjs +0 -33
  814. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +0 -119
  815. package/esm2020/src/app/shared/services/startable-service.class.mjs +0 -110
  816. package/esm2020/src/app/shared/services/translate-context.service.mjs +0 -105
  817. package/esm2020/src/app/shared/services/validator-service.class.mjs +0 -2
  818. package/esm2020/src/app/shared/services.mjs +0 -62
  819. package/esm2020/src/app/shared/shared-routing.module.mjs +0 -70
  820. package/esm2020/src/app/shared/shared.module.mjs +0 -208
  821. package/esm2020/src/app/shared/shared.testing.module.mjs +0 -84
  822. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +0 -268
  823. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +0 -60
  824. package/esm2020/src/app/shared/storage/storage.service.mjs +0 -132
  825. package/esm2020/src/app/shared/storage/storage.utils.mjs +0 -13
  826. package/esm2020/src/app/shared/testing/observable.test.mjs +0 -95
  827. package/esm2020/src/app/shared/testing/tests.page.mjs +0 -33
  828. package/esm2020/src/app/shared/toast/toast.testing.mjs +0 -51
  829. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +0 -45
  830. package/esm2020/src/app/shared/toast/toasts.mjs +0 -144
  831. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +0 -58
  832. package/esm2020/src/app/shared/toolbar/toolbar.mjs +0 -251
  833. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +0 -53
  834. package/esm2020/src/app/shared/types.mjs +0 -2
  835. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -57
  836. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -45
  837. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -97
  838. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +0 -204
  839. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +0 -20
  840. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +0 -104
  841. package/esm2020/src/app/shared/validator/validators.mjs +0 -573
  842. package/esm2020/src/app/shared/version/versions.mjs +0 -81
  843. package/esm2020/src/app/social/job/job.module.mjs +0 -42
  844. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -20
  845. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +0 -216
  846. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +0 -43
  847. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +0 -23
  848. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +0 -71
  849. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +0 -52
  850. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +0 -55
  851. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +0 -35
  852. package/esm2020/src/app/social/message/message.form.mjs +0 -81
  853. package/esm2020/src/app/social/message/message.modal.mjs +0 -93
  854. package/esm2020/src/app/social/message/message.model.mjs +0 -65
  855. package/esm2020/src/app/social/message/message.module.mjs +0 -35
  856. package/esm2020/src/app/social/message/message.service.mjs +0 -84
  857. package/esm2020/src/app/social/social.errors.mjs +0 -10
  858. package/esm2020/src/app/social/social.module.mjs +0 -47
  859. package/esm2020/src/app/social/social.testing.module.mjs +0 -51
  860. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -114
  861. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -246
  862. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +0 -227
  863. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -112
  864. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -35
  865. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -111
  866. package/esm2020/src/app/social/user-event/user-event.model.mjs +0 -2
  867. package/esm2020/src/app/social/user-event/user-event.module.mjs +0 -39
  868. package/esm2020/src/app/social/user-event/user-event.service.mjs +0 -487
  869. package/esm2020/src/environments/environment.class.mjs +0 -5
  870. package/esm2020/src/environments/environment.mjs +0 -94
  871. package/esm2020/sumaris-net.ngx-components.mjs +0 -5
  872. package/fesm2015/sumaris-net.ngx-components.mjs +0 -38859
  873. package/fesm2015/sumaris-net.ngx-components.mjs.map +0 -1
  874. package/fesm2020/sumaris-net.ngx-components.mjs +0 -37957
  875. package/fesm2020/sumaris-net.ngx-components.mjs.map +0 -1
  876. package/index.d.ts +0 -5
  877. package/public_api.d.ts +0 -286
  878. package/src/app/admin/admin-routing.module.d.ts +0 -9
  879. package/src/app/admin/admin.module.d.ts +0 -10
  880. package/src/app/admin/services/filter/person.filter.d.ts +0 -21
  881. package/src/app/admin/services/person.service.d.ts +0 -44
  882. package/src/app/admin/services/validator/person.validator.d.ts +0 -14
  883. package/src/app/admin/users/users.d.ts +0 -44
  884. package/src/app/admin/users/users.module.d.ts +0 -13
  885. package/src/app/core/about/about.modal.d.ts +0 -32
  886. package/src/app/core/about/about.module.d.ts +0 -10
  887. package/src/app/core/account/account.module.d.ts +0 -15
  888. package/src/app/core/account/account.page.d.ts +0 -68
  889. package/src/app/core/account/new-token.modal.d.ts +0 -41
  890. package/src/app/core/account/token.table.d.ts +0 -25
  891. package/src/app/core/auth/auth.form.d.ts +0 -36
  892. package/src/app/core/auth/auth.modal.d.ts +0 -24
  893. package/src/app/core/auth/auth.module.d.ts +0 -11
  894. package/src/app/core/core.module.d.ts +0 -31
  895. package/src/app/core/core.testing.module.d.ts +0 -14
  896. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -26
  897. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
  898. package/src/app/core/form/entity/editor.class.d.ts +0 -243
  899. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -128
  900. package/src/app/core/form/entity/entity-editor.class.d.ts +0 -205
  901. package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
  902. package/src/app/core/form/entity/entity.module.d.ts +0 -10
  903. package/src/app/core/form/form.class.d.ts +0 -155
  904. package/src/app/core/form/form.module.d.ts +0 -13
  905. package/src/app/core/form/form.utils.d.ts +0 -336
  906. package/src/app/core/form/list/list.form.d.ts +0 -81
  907. package/src/app/core/form/list/list.module.d.ts +0 -9
  908. package/src/app/core/form/properties/properties.form.d.ts +0 -44
  909. package/src/app/core/form/properties/properties.module.d.ts +0 -11
  910. package/src/app/core/form/properties/properties.table.d.ts +0 -78
  911. package/src/app/core/form/properties/property.validator.d.ts +0 -13
  912. package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -19
  913. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
  914. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -14
  915. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
  916. package/src/app/core/form/text-popover/text-form.component.d.ts +0 -32
  917. package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -70
  918. package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -10
  919. package/src/app/core/graphql/graphql.module.d.ts +0 -8
  920. package/src/app/core/graphql/graphql.service.d.ts +0 -148
  921. package/src/app/core/graphql/graphql.utils.d.ts +0 -42
  922. package/src/app/core/home/home.d.ts +0 -74
  923. package/src/app/core/home/home.module.d.ts +0 -12
  924. package/src/app/core/icon/icon.component.d.ts +0 -13
  925. package/src/app/core/icon/icon.module.d.ts +0 -9
  926. package/src/app/core/install/install-upgrade-card.component.d.ts +0 -63
  927. package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
  928. package/src/app/core/menu/menu.component.d.ts +0 -62
  929. package/src/app/core/menu/menu.model.d.ts +0 -28
  930. package/src/app/core/menu/menu.module.d.ts +0 -10
  931. package/src/app/core/menu/menu.service.d.ts +0 -21
  932. package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
  933. package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
  934. package/src/app/core/peer/select-peer.modal.d.ts +0 -53
  935. package/src/app/core/peer/select-peer.module.d.ts +0 -11
  936. package/src/app/core/register/register-confirm.page.d.ts +0 -24
  937. package/src/app/core/register/register.form.d.ts +0 -48
  938. package/src/app/core/register/register.modal.d.ts +0 -14
  939. package/src/app/core/register/register.module.d.ts +0 -12
  940. package/src/app/core/services/account.service.d.ts +0 -191
  941. package/src/app/core/services/auth-guard.service.d.ts +0 -17
  942. package/src/app/core/services/base-entity-service.class.d.ts +0 -104
  943. package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
  944. package/src/app/core/services/base58.d.ts +0 -7
  945. package/src/app/core/services/config/core.config.d.ts +0 -29
  946. package/src/app/core/services/config.service.d.ts +0 -60
  947. package/src/app/core/services/crypto.service.d.ts +0 -44
  948. package/src/app/core/services/errors.d.ts +0 -51
  949. package/src/app/core/services/local-settings.service.d.ts +0 -90
  950. package/src/app/core/services/model/account.model.d.ts +0 -35
  951. package/src/app/core/services/model/config.model.d.ts +0 -36
  952. package/src/app/core/services/model/department.model.d.ts +0 -11
  953. package/src/app/core/services/model/entity.decorators.d.ts +0 -17
  954. package/src/app/core/services/model/entity.model.d.ts +0 -89
  955. package/src/app/core/services/model/filter.model.d.ts +0 -49
  956. package/src/app/core/services/model/history.model.d.ts +0 -20
  957. package/src/app/core/services/model/model.enum.d.ts +0 -7
  958. package/src/app/core/services/model/peer.model.d.ts +0 -29
  959. package/src/app/core/services/model/person.model.d.ts +0 -31
  960. package/src/app/core/services/model/referential.model.d.ts +0 -77
  961. package/src/app/core/services/model/settings.model.d.ts +0 -26
  962. package/src/app/core/services/model/token.model.d.ts +0 -21
  963. package/src/app/core/services/network.service.d.ts +0 -149
  964. package/src/app/core/services/network.types.d.ts +0 -5
  965. package/src/app/core/services/network.utils.d.ts +0 -31
  966. package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
  967. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
  968. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -9
  969. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
  970. package/src/app/core/services/platform.service.d.ts +0 -96
  971. package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
  972. package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
  973. package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
  974. package/src/app/core/services/testing/referential.validator.d.ts +0 -22
  975. package/src/app/core/services/validator/account.validator.d.ts +0 -17
  976. package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
  977. package/src/app/core/services/validator/local-settings.validator.d.ts +0 -18
  978. package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
  979. package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
  980. package/src/app/core/settings/settings.module.d.ts +0 -10
  981. package/src/app/core/settings/settings.page.d.ts +0 -68
  982. package/src/app/core/table/actions-column.component.d.ts +0 -48
  983. package/src/app/core/table/async-table.class.d.ts +0 -383
  984. package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -80
  985. package/src/app/core/table/entities-table-datasource.class.d.ts +0 -94
  986. package/src/app/core/table/memory-table.class.d.ts +0 -25
  987. package/src/app/core/table/table-select-columns.component.d.ts +0 -22
  988. package/src/app/core/table/table.class.d.ts +0 -386
  989. package/src/app/core/table/table.model.d.ts +0 -26
  990. package/src/app/core/table/table.module.d.ts +0 -10
  991. package/src/app/core/table/table.utils.d.ts +0 -11
  992. package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
  993. package/src/app/core/table/testing/table.testing.d.ts +0 -53
  994. package/src/app/core/table/testing/table.testing.module.d.ts +0 -11
  995. package/src/app/shared/alerts.d.ts +0 -53
  996. package/src/app/shared/audio/audio.d.ts +0 -44
  997. package/src/app/shared/audio/audio.testing.d.ts +0 -13
  998. package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
  999. package/src/app/shared/capacitor/keyboard.d.ts +0 -16
  1000. package/src/app/shared/capacitor/plugins.d.ts +0 -7
  1001. package/src/app/shared/constants.d.ts +0 -7
  1002. package/src/app/shared/dates.d.ts +0 -39
  1003. package/src/app/shared/debug/debug-service.class.d.ts +0 -5
  1004. package/src/app/shared/debug/debug.component.d.ts +0 -13
  1005. package/src/app/shared/debug/debug.module.d.ts +0 -12
  1006. package/src/app/shared/directives/autofocus.directive.d.ts +0 -19
  1007. package/src/app/shared/directives/autotitle.directive.d.ts +0 -10
  1008. package/src/app/shared/directives/directives.module.d.ts +0 -12
  1009. package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
  1010. package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
  1011. package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
  1012. package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -12
  1013. package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
  1014. package/src/app/shared/events.d.ts +0 -27
  1015. package/src/app/shared/file/csv.utils.d.ts +0 -19
  1016. package/src/app/shared/file/file.service.d.ts +0 -23
  1017. package/src/app/shared/file/file.utils.d.ts +0 -20
  1018. package/src/app/shared/file/images.utils.d.ts +0 -19
  1019. package/src/app/shared/file/json.utils.d.ts +0 -16
  1020. package/src/app/shared/file/uri.utils.d.ts +0 -7
  1021. package/src/app/shared/focusable.d.ts +0 -4
  1022. package/src/app/shared/form/field.component.d.ts +0 -71
  1023. package/src/app/shared/form/field.model.d.ts +0 -37
  1024. package/src/app/shared/form/loading-spinner.d.ts +0 -8
  1025. package/src/app/shared/forms.d.ts +0 -89
  1026. package/src/app/shared/functions.d.ts +0 -132
  1027. package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -19
  1028. package/src/app/shared/gesture/gesture-config.d.ts +0 -15
  1029. package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
  1030. package/src/app/shared/graph/colors.utils.d.ts +0 -17
  1031. package/src/app/shared/graph/graph-colors.d.ts +0 -63
  1032. package/src/app/shared/guard/component-dirty.guard.d.ts +0 -19
  1033. package/src/app/shared/help/help.modal.d.ts +0 -33
  1034. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -10
  1035. package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -28
  1036. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
  1037. package/src/app/shared/http/http.utils.d.ts +0 -27
  1038. package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -98
  1039. package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -14
  1040. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
  1041. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
  1042. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
  1043. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -12
  1044. package/src/app/shared/image/image.model.d.ts +0 -5
  1045. package/src/app/shared/image/image.module.d.ts +0 -8
  1046. package/src/app/shared/image/image.service.d.ts +0 -32
  1047. package/src/app/shared/inputs.d.ts +0 -32
  1048. package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
  1049. package/src/app/shared/logging/log-level.model.d.ts +0 -38
  1050. package/src/app/shared/logging/logger.model.d.ts +0 -68
  1051. package/src/app/shared/logging/logging-service.class.d.ts +0 -39
  1052. package/src/app/shared/logging/logging-service.config.d.ts +0 -25
  1053. package/src/app/shared/logging/logging-service.module.d.ts +0 -9
  1054. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -36
  1055. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -138
  1056. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -21
  1057. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -4
  1058. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -45
  1059. package/src/app/shared/material/badge/badge.directive.d.ts +0 -37
  1060. package/src/app/shared/material/badge/badge.module.d.ts +0 -10
  1061. package/src/app/shared/material/badge/badge.test.d.ts +0 -21
  1062. package/src/app/shared/material/boolean/boolean.module.d.ts +0 -19
  1063. package/src/app/shared/material/boolean/material.boolean.d.ts +0 -66
  1064. package/src/app/shared/material/chips/chips.module.d.ts +0 -21
  1065. package/src/app/shared/material/chips/material.chips.d.ts +0 -126
  1066. package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -31
  1067. package/src/app/shared/material/datetime/datetime.module.d.ts +0 -24
  1068. package/src/app/shared/material/datetime/material.date.d.ts +0 -74
  1069. package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -75
  1070. package/src/app/shared/material/datetime/material.datetime.d.ts +0 -100
  1071. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -31
  1072. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -30
  1073. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -29
  1074. package/src/app/shared/material/duration/duration.module.d.ts +0 -18
  1075. package/src/app/shared/material/duration/duration.utils.d.ts +0 -3
  1076. package/src/app/shared/material/duration/material.duration.d.ts +0 -57
  1077. package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -13
  1078. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -65
  1079. package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -19
  1080. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -21
  1081. package/src/app/shared/material/material.animations.d.ts +0 -4
  1082. package/src/app/shared/material/material.module.d.ts +0 -45
  1083. package/src/app/shared/material/material.testing.module.d.ts +0 -25
  1084. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
  1085. package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
  1086. package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
  1087. package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
  1088. package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
  1089. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
  1090. package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
  1091. package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
  1092. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
  1093. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -15
  1094. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
  1095. package/src/app/shared/material/swipe/material.swipe.d.ts +0 -89
  1096. package/src/app/shared/material/swipe/swipe.module.d.ts +0 -15
  1097. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
  1098. package/src/app/shared/modules.d.ts +0 -8
  1099. package/src/app/shared/observables.d.ts +0 -29
  1100. package/src/app/shared/pipes/arrays.pipe.d.ts +0 -54
  1101. package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
  1102. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -23
  1103. package/src/app/shared/pipes/date-format.pipe.d.ts +0 -34
  1104. package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -12
  1105. package/src/app/shared/pipes/duration.pipe.d.ts +0 -13
  1106. package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
  1107. package/src/app/shared/pipes/form.pipes.d.ts +0 -59
  1108. package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
  1109. package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
  1110. package/src/app/shared/pipes/maps.pipe.d.ts +0 -22
  1111. package/src/app/shared/pipes/math.pipes.d.ts +0 -20
  1112. package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
  1113. package/src/app/shared/pipes/number-format.pipe.d.ts +0 -10
  1114. package/src/app/shared/pipes/pipes.module.d.ts +0 -27
  1115. package/src/app/shared/pipes/property.pipes.d.ts +0 -26
  1116. package/src/app/shared/pipes/string.pipes.d.ts +0 -47
  1117. package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
  1118. package/src/app/shared/pipes/types.pipes.d.ts +0 -18
  1119. package/src/app/shared/platforms.d.ts +0 -8
  1120. package/src/app/shared/services/entity-service.class.d.ts +0 -73
  1121. package/src/app/shared/services/job.utils.d.ts +0 -20
  1122. package/src/app/shared/services/memory-entity-service.class.d.ts +0 -71
  1123. package/src/app/shared/services/progress-bar.service.d.ts +0 -20
  1124. package/src/app/shared/services/startable-observable-service.class.d.ts +0 -33
  1125. package/src/app/shared/services/startable-service.class.d.ts +0 -34
  1126. package/src/app/shared/services/translate-context.service.d.ts +0 -29
  1127. package/src/app/shared/services/validator-service.class.d.ts +0 -10
  1128. package/src/app/shared/services.d.ts +0 -9
  1129. package/src/app/shared/shared-routing.module.d.ts +0 -22
  1130. package/src/app/shared/shared.module.d.ts +0 -31
  1131. package/src/app/shared/shared.testing.module.d.ts +0 -17
  1132. package/src/app/shared/storage/storage-explorer.component.d.ts +0 -58
  1133. package/src/app/shared/storage/storage-explorer.module.d.ts +0 -16
  1134. package/src/app/shared/storage/storage.service.d.ts +0 -23
  1135. package/src/app/shared/storage/storage.utils.d.ts +0 -19
  1136. package/src/app/shared/testing/observable.test.d.ts +0 -25
  1137. package/src/app/shared/testing/tests.page.d.ts +0 -20
  1138. package/src/app/shared/toast/toast.testing.d.ts +0 -15
  1139. package/src/app/shared/toast/toast.testing.module.d.ts +0 -11
  1140. package/src/app/shared/toast/toasts.d.ts +0 -17
  1141. package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
  1142. package/src/app/shared/toolbar/toolbar.d.ts +0 -63
  1143. package/src/app/shared/toolbar/toolbar.module.d.ts +0 -15
  1144. package/src/app/shared/types.d.ts +0 -26
  1145. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -20
  1146. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
  1147. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -39
  1148. package/src/app/shared/upload-file/upload-file.component.d.ts +0 -48
  1149. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
  1150. package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -27
  1151. package/src/app/shared/validator/validators.d.ts +0 -115
  1152. package/src/app/shared/version/versions.d.ts +0 -26
  1153. package/src/app/social/job/job.module.d.ts +0 -12
  1154. package/src/app/social/job/progression/job-progression.component.d.ts +0 -9
  1155. package/src/app/social/job/progression/job-progression.icon.d.ts +0 -49
  1156. package/src/app/social/job/progression/job-progression.list.d.ts +0 -21
  1157. package/src/app/social/job/progression/job-progression.model.d.ts +0 -11
  1158. package/src/app/social/job/progression/job-progression.service.d.ts +0 -34
  1159. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -17
  1160. package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -17
  1161. package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
  1162. package/src/app/social/message/message.form.d.ts +0 -30
  1163. package/src/app/social/message/message.modal.d.ts +0 -39
  1164. package/src/app/social/message/message.model.d.ts +0 -31
  1165. package/src/app/social/message/message.module.d.ts +0 -11
  1166. package/src/app/social/message/message.service.d.ts +0 -27
  1167. package/src/app/social/social.errors.d.ts +0 -9
  1168. package/src/app/social/social.module.d.ts +0 -20
  1169. package/src/app/social/social.testing.module.d.ts +0 -13
  1170. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -31
  1171. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -71
  1172. package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -34
  1173. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -44
  1174. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
  1175. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -41
  1176. package/src/app/social/user-event/user-event.model.d.ts +0 -45
  1177. package/src/app/social/user-event/user-event.module.d.ts +0 -12
  1178. package/src/app/social/user-event/user-event.service.d.ts +0 -124
  1179. package/src/environments/environment.class.d.ts +0 -57
  1180. package/src/environments/environment.d.ts +0 -3
@@ -1,95 +0,0 @@
1
- import { Component, ViewChild } from '@angular/core';
2
- import { firstNotNilPromise, waitForTrue } from '../observables';
3
- import { Subject } from 'rxjs';
4
- import { isNotNil } from '../functions';
5
- import { tap } from 'rxjs/operators';
6
- import { DateUtils, toDateISOString } from '../dates';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@ionic/angular";
9
- export class ObservableTestPage {
10
- constructor() {
11
- this._stopSubject = new Subject();
12
- this.$value = new Subject();
13
- this.runningTaskCount = 0;
14
- this.taskId = 0;
15
- this.options = {
16
- stop: this._stopSubject
17
- };
18
- }
19
- ngOnDestroy() {
20
- this._stopSubject.next();
21
- }
22
- setOptions(opts) {
23
- this.options = {
24
- ...this.options,
25
- ...opts
26
- };
27
- this.log('Options changes to: ', { ...this.options, stop: this.options?.stop ? '$stop' : 'null' });
28
- }
29
- setOptionsError(errorMessage) {
30
- this.setOptions({ stopError: new Error(errorMessage) });
31
- }
32
- async firstNotNilPromise(opts) {
33
- const logPrefix = `[firstNotNilPromise() #${++this.taskId}] `;
34
- await this.execute(firstNotNilPromise, opts, logPrefix);
35
- }
36
- async waitForTrue(opts) {
37
- const logPrefix = `[waitForTrue() #${++this.taskId}] `;
38
- await this.execute(waitForTrue, opts, logPrefix);
39
- }
40
- async execute(fn, opts, logPrefix) {
41
- opts = {
42
- ...this.options,
43
- stop: this._stopSubject,
44
- ...opts
45
- };
46
- logPrefix = logPrefix || `[#${++this.taskId}] `;
47
- const value$ = this.$value.pipe(tap(value => this.log(logPrefix + `Received value: ${value}`)));
48
- try {
49
- this.runningTaskCount++;
50
- this.log(logPrefix + 'Waiting...');
51
- // Execute the async function
52
- const result = await fn(value$, opts);
53
- // Dump result
54
- if (isNotNil(result))
55
- this.log(logPrefix + '[OK] with result:', result);
56
- else
57
- this.log(logPrefix + '[OK]');
58
- }
59
- catch (err) {
60
- const errorMsg = logPrefix + 'Error: ' + (err?.message || '');
61
- console.error(errorMsg, err);
62
- this.log(errorMsg
63
- + (err?.originalStack ? `<pre>${err.originalStack}</pre>` : ''));
64
- }
65
- finally {
66
- this.runningTaskCount--;
67
- }
68
- }
69
- emit(value) {
70
- this.$value.next(value);
71
- }
72
- stop() {
73
- this._stopSubject.next();
74
- }
75
- log(message, ...args) {
76
- let fullMessage = `${toDateISOString(DateUtils.moment())} - ${message}`;
77
- if (args?.length) {
78
- fullMessage += ' - <small>' + args.map(JSON.stringify).join(', ') + '</small>';
79
- }
80
- this.appendLog(fullMessage);
81
- }
82
- appendLog(message) {
83
- this.resultDiv.nativeElement.innerHTML += message + '<br/>';
84
- }
85
- }
86
- ObservableTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObservableTestPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
- ObservableTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ObservableTestPage, selector: "app-observable-test", viewQueries: [{ propertyName: "resultDiv", first: true, predicate: ["result"], descendants: true }], ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"], dependencies: [{ kind: "component", type: i1.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { 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.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }] });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObservableTestPage, decorators: [{
89
- type: Component,
90
- args: [{ selector: 'app-observable-test', template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"] }]
91
- }], ctorParameters: function () { return []; }, propDecorators: { resultDiv: [{
92
- type: ViewChild,
93
- args: ['result']
94
- }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL29ic2VydmFibGUudGVzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQXlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMsa0JBQWtCLEVBQWdDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUMsTUFBTSxVQUFVLENBQUM7OztBQVFwRCxNQUFNLE9BQU8sa0JBQWtCO0lBYTdCO1FBWEEsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRW5DLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQzVCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsWUFBTyxHQUEwQjtZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDeEIsQ0FBQztJQU1GLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixHQUFHLElBQUk7U0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLEdB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QUFHLElBQVM7UUFDL0IsSUFBSSxXQUFXLEdBQUcsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sT0FBTyxFQUFFLENBQUM7UUFDeEUsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLFdBQVcsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUNoRjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFlO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzlELENBQUM7OytHQXJHVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixnS0NiL0IsNGpFQXFEQTsyRkR4Q2Esa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLHFCQUFxQjswRUFlVixTQUFTO3NCQUE3QixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmaXJzdE5vdE5pbFByb21pc2UsIEZpcnN0T3B0aW9ucywgV2FpdEZvck9wdGlvbnMsIHdhaXRGb3JUcnVlfSBmcm9tICcuLi9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtpc05vdE5pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RhdGVVdGlscywgdG9EYXRlSVNPU3RyaW5nfSBmcm9tICcuLi9kYXRlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW9ic2VydmFibGUtdGVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYnNlcnZhYmxlLnRlc3QuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29ic2VydmFibGUudGVzdC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZVRlc3RQYWdlIGltcGxlbWVudHMgT25EZXN0cm95e1xuXG4gIF9zdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgJHZhbHVlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBydW5uaW5nVGFza0NvdW50ID0gMDtcbiAgdGFza0lkID0gMDtcbiAgb3B0aW9uczogUGFydGlhbDxGaXJzdE9wdGlvbnM+ID0ge1xuICAgIHN0b3A6IHRoaXMuX3N0b3BTdWJqZWN0XG4gIH07XG5cbiAgQFZpZXdDaGlsZCgncmVzdWx0JykgcmVzdWx0RGl2ITogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICApIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N0b3BTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIHNldE9wdGlvbnMob3B0czogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4ub3B0c1xuICAgIH07XG4gICAgdGhpcy5sb2coJ09wdGlvbnMgY2hhbmdlcyB0bzogJywgey4uLnRoaXMub3B0aW9ucywgc3RvcDogdGhpcy5vcHRpb25zPy5zdG9wID8gJyRzdG9wJyA6ICdudWxsJ30pO1xuICB9XG5cbiAgc2V0T3B0aW9uc0Vycm9yKGVycm9yTWVzc2FnZSkge1xuICAgIHRoaXMuc2V0T3B0aW9ucyh7c3RvcEVycm9yOiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKX0pO1xuICB9XG5cbiAgYXN5bmMgZmlyc3ROb3ROaWxQcm9taXNlKG9wdHM/OiBGaXJzdE9wdGlvbnMpIHtcbiAgICBjb25zdCBsb2dQcmVmaXggPSBgW2ZpcnN0Tm90TmlsUHJvbWlzZSgpICMkeysrdGhpcy50YXNrSWR9XSBgO1xuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShmaXJzdE5vdE5pbFByb21pc2UsIG9wdHMsIGxvZ1ByZWZpeCk7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yVHJ1ZShvcHRzPzogV2FpdEZvck9wdGlvbnMpIHtcbiAgICBjb25zdCBsb2dQcmVmaXggPSBgW3dhaXRGb3JUcnVlKCkgIyR7Kyt0aGlzLnRhc2tJZH1dIGA7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKHdhaXRGb3JUcnVlLCBvcHRzLCBsb2dQcmVmaXgpO1xuICB9XG5cblxuICBhc3luYyBleGVjdXRlPFQsIE8gZXh0ZW5kcyBXYWl0Rm9yT3B0aW9ucyA9IFdhaXRGb3JPcHRpb25zPihcbiAgICBmbjogKG86IE9ic2VydmFibGU8YW55Piwgb3B0czogTykgPT4gUHJvbWlzZTxUPixcbiAgICBvcHRzPzogTyxcbiAgICBsb2dQcmVmaXg/OiBzdHJpbmcpIHtcblxuICAgIG9wdHMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBzdG9wOiB0aGlzLl9zdG9wU3ViamVjdCxcbiAgICAgIC4uLm9wdHNcbiAgICB9O1xuICAgIGxvZ1ByZWZpeCA9IGxvZ1ByZWZpeCB8fCBgWyMkeysrdGhpcy50YXNrSWR9XSBgO1xuXG4gICAgY29uc3QgdmFsdWUkID0gdGhpcy4kdmFsdWUucGlwZShcbiAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLmxvZyhsb2dQcmVmaXggKyBgUmVjZWl2ZWQgdmFsdWU6ICR7dmFsdWV9YCkpXG4gICAgKVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucnVubmluZ1Rhc2tDb3VudCsrO1xuICAgICAgdGhpcy5sb2cobG9nUHJlZml4ICsgJ1dhaXRpbmcuLi4nKTtcblxuICAgICAgLy8gRXhlY3V0ZSB0aGUgYXN5bmMgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKHZhbHVlJCwgb3B0cyk7XG5cbiAgICAgIC8vIER1bXAgcmVzdWx0XG4gICAgICBpZiAoaXNOb3ROaWwocmVzdWx0KSkgdGhpcy5sb2cobG9nUHJlZml4ICsgJ1tPS10gd2l0aCByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIGVsc2UgIHRoaXMubG9nKGxvZ1ByZWZpeCArICdbT0tdJyk7XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSBsb2dQcmVmaXggKyAnRXJyb3I6ICcgKyAoZXJyPy5tZXNzYWdlIHx8ICcnKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JNc2csIGVycik7XG4gICAgICB0aGlzLmxvZyhlcnJvck1zZ1xuICAgICAgICArIChlcnI/Lm9yaWdpbmFsU3RhY2sgPyBgPHByZT4ke2Vyci5vcmlnaW5hbFN0YWNrfTwvcHJlPmAgOiAnJylcbiAgICAgICk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5ydW5uaW5nVGFza0NvdW50LS07XG4gICAgfVxuICB9XG5cbiAgZW1pdCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy4kdmFsdWUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRoaXMuX3N0b3BTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIGxvZyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueSkge1xuICAgIGxldCBmdWxsTWVzc2FnZSA9IGAke3RvRGF0ZUlTT1N0cmluZyhEYXRlVXRpbHMubW9tZW50KCkpfSAtICR7bWVzc2FnZX1gO1xuICAgIGlmIChhcmdzPy5sZW5ndGgpIHtcbiAgICAgIGZ1bGxNZXNzYWdlICs9ICcgLSA8c21hbGw+JyArIGFyZ3MubWFwKEpTT04uc3RyaW5naWZ5KS5qb2luKCcsICcpICsgJzwvc21hbGw+JztcbiAgICB9XG4gICAgdGhpcy5hcHBlbmRMb2coZnVsbE1lc3NhZ2UpO1xuICB9XG5cbiAgYXBwZW5kTG9nKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0RGl2Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAnPGJyLz4nO1xuICB9XG59XG5cbiIsIlxuPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYmFjay1idXR0b24+PC9pb24tYmFjay1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGU+T2JzZXJ2YWJsZXMgdGVzdCBwYWdlPC9pb24tdGl0bGU+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG5cbiAgPGlvbi1jYXJkPlxuICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICA8aW9uLWNhcmQtdGl0bGU+d2FpdEZvciwgd2FpdEZvclRydWUsIHdhaXRGb3JGYWxzZTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgPC9pb24tY2FyZC1oZWFkZXI+XG4gICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrXCI+XG4gICAgICAgIDxwPlNldCBvcHRpb25zOiA8L3A+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwibWVkaXVtXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwic2V0T3B0aW9ucyh7c3RvcEVycm9yOiBmYWxzZX0pXCI+c3RvcEVycm9yOiBmYWxzZTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJtZWRpdW1cIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJzZXRPcHRpb25zKHtzdG9wRXJyb3I6IHRydWV9KVwiPnN0b3BFcnJvcjogdHJ1ZTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJtZWRpdW1cIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJzZXRPcHRpb25zKHtzdG9wRXJyb3I6ICdteSBlcnJvcid9KVwiPnN0b3BFcnJvcjogJ215IGVycm9yJzwvaW9uLWJ1dHRvbj5cblxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cIm1lZGl1bVwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInNldE9wdGlvbnMoe3RpbWVvdXQ6IDIwMDB9KVwiPnRpbWVvdXQ6IDIwMDA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwibWVkaXVtXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwic2V0T3B0aW9ucyh7dGltZW91dDogbnVsbH0pXCI+dGltZW91dDogbnVsbDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGJyLz5cbiAgICAgICAgPHA+Q2FsbCBhd2FpdCBmdW5jdGlvbjogPC9wPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwid2FpdEZvclRydWUoKVwiPndhaXRGb3JUcnVlPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZmlyc3ROb3ROaWxQcm9taXNlKClcIj5maXJzdE5vdE5pbFByb21pc2U8L2lvbi1idXR0b24+XG4gICAgICAgIDxici8+XG4gICAgICAgIDxwPlNlbmQgZXZlbnQgdG8gc291cmNlOiA8L3A+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJlbWl0KHRydWUpXCI+RW1pdCAndHJ1ZSc8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJlbWl0KGZhbHNlKVwiPkVtaXQgJ2ZhbHNlJzwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGJyLz5cbiAgICAgICAgPHA+U3RvcDogPC9wPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIChjbGljayk9XCJzdG9wKClcIj5TdG9wPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY2FyZC1jb250ZW50PlxuICA8L2lvbi1jYXJkPlxuXG4gIDxpb24tY2FyZD5cbiAgICA8aW9uLXRvb2xiYXI+XG4gICAgICA8aW9uLXRpdGxlPlJ1bm5pbmcgam9iIGNvdW50OiB7e3J1bm5pbmdUYXNrQ291bnR9fTwvaW9uLXRpdGxlPlxuICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzbG90PVwiZW5kXCIgKGNsaWNrKT1cInJlc3VsdC5pbm5lckhUTUw9JydcIj5DbGVhciBsb2c8L2lvbi1idXR0b24+XG4gICAgPC9pb24tdG9vbGJhcj5cbiAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgI3Jlc3VsdCBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKVwiPlxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY2FyZC1jb250ZW50PlxuICA8L2lvbi1jYXJkPlxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -1,33 +0,0 @@
1
- import { Component, Inject, InjectionToken, Optional } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/router";
4
- import * as i2 from "@ngx-translate/core";
5
- import * as i3 from "@angular/common";
6
- import * as i4 from "@ionic/angular";
7
- export const APP_TESTING_PAGES = new InjectionToken('testingPages');
8
- export class SharedTestsPage {
9
- constructor(route, router, translate, pages) {
10
- this.route = route;
11
- this.router = router;
12
- this.translate = translate;
13
- this.pages = pages;
14
- console.info('[testing] Loaded tests pages:', pages);
15
- }
16
- async openPage(page) {
17
- return this.router.navigate([page], {
18
- relativeTo: this.route
19
- });
20
- }
21
- }
22
- SharedTestsPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedTestsPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.TranslateService }, { token: APP_TESTING_PAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
23
- SharedTestsPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SharedTestsPage, selector: "app-tests-page", ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.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: i4.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedTestsPage, decorators: [{
25
- type: Component,
26
- args: [{ selector: 'app-tests-page', template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n" }]
27
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.TranslateService }, { type: undefined, decorators: [{
28
- type: Optional
29
- }, {
30
- type: Inject,
31
- args: [APP_TESTING_PAGES]
32
- }] }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdHMucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVUxRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsY0FBYyxDQUFDLENBQUM7QUFNbkYsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDYyxLQUFxQixFQUNyQixNQUFjLEVBQ2QsU0FBMkIsRUFDUyxLQUFvQjtRQUh4RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDUyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBRXBFLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7OzRHQWZVLGVBQWUsc0dBTUYsaUJBQWlCO2dHQU45QixlQUFlLHNEQ2hCNUIseXJCQThCQTsyRkRkYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLGdCQUFnQjs7MEJBU3JCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXN0aW5nUGFnZSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhZ2U/OiBzdHJpbmc7XG4gIGRpdmlkZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgQVBQX1RFU1RJTkdfUEFHRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGVzdGluZ1BhZ2VbXT4oJ3Rlc3RpbmdQYWdlcycpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVzdHMtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0cy5wYWdlLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZFRlc3RzUGFnZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1RFU1RJTkdfUEFHRVMpIHB1YmxpYyBwYWdlczogVGVzdGluZ1BhZ2VbXVxuICAgICkge1xuICAgIGNvbnNvbGUuaW5mbygnW3Rlc3RpbmddIExvYWRlZCB0ZXN0cyBwYWdlczonLCBwYWdlcyk7XG4gIH1cblxuICBhc3luYyBvcGVuUGFnZShwYWdlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYWdlXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZVxuICAgIH0pO1xuICB9XG59XG5cbiIsIlxuPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tbWVudS1idXR0b24+PC9pb24tbWVudS1idXR0b24+XG4gICAgICA8aW9uLWJhY2stYnV0dG9uPjwvaW9uLWJhY2stYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPlRlc3RzPC9pb24tdGl0bGU+XG5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuXG4gIDxpb24tbGlzdCAqbmdJZj1cInBhZ2VzPy5sZW5ndGhcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZXNcIj5cblxuICAgICAgPGlvbi1pdGVtLWRpdmlkZXIgKm5nSWY9XCJpdGVtLmRpdmlkZXI7IGVsc2UgbGlua1wiPnt7aXRlbS5sYWJlbH19PC9pb24taXRlbS1kaXZpZGVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2xpbms+XG4gICAgICAgIDxpb24taXRlbSB0YXBwYWJsZSBjbGFzcz1cInRleHQtMXhcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5QYWdlKGl0ZW0ucGFnZSlcIj57e2l0ZW0ubGFiZWx9fTwvaW9uLWl0ZW0+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2lvbi1saXN0PlxuXG48L2lvbi1jb250ZW50PlxuIl19
@@ -1,51 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Toasts } from './toasts';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ionic/angular";
5
- export class ToastTestingPage {
6
- constructor(injector) {
7
- this.injector = injector;
8
- this.defaultOptions = {
9
- showCloseButton: false
10
- };
11
- }
12
- showToast(opts) {
13
- return Toasts.showSimple(this.injector, {
14
- ...this.defaultOptions,
15
- duration: 5000,
16
- message: 'This is a message',
17
- ...opts
18
- });
19
- }
20
- showInfo(opts) {
21
- return this.showToast({
22
- type: 'info',
23
- message: 'This is a info text !',
24
- ...opts
25
- });
26
- }
27
- showWarning(opts) {
28
- return this.showToast({
29
- type: 'warning',
30
- message: 'This is a warning text !',
31
- ...opts
32
- });
33
- }
34
- showError(opts) {
35
- return this.showToast({
36
- type: 'error',
37
- message: 'This is a error text !',
38
- ...opts
39
- });
40
- }
41
- toggleCloseButton() {
42
- this.defaultOptions.showCloseButton = !this.defaultOptions.showCloseButton;
43
- }
44
- }
45
- ToastTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastTestingPage, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
46
- ToastTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ToastTestingPage, selector: "toast-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <ion-button (click)=\"showInfo({message: 'This is <b>HTML</b> text'})\" color=\"danger\">\n message with HTML\n </ion-button>\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\">\n <ion-label>Close button ?</ion-label>\n </ion-checkbox>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\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.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.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: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }] });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastTestingPage, decorators: [{
48
- type: Component,
49
- args: [{ selector: 'toast-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <ion-button (click)=\"showInfo({message: 'This is <b>HTML</b> text'})\" color=\"danger\">\n message with HTML\n </ion-button>\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\">\n <ion-label>Close button ?</ion-label>\n </ion-checkbox>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\n" }]
50
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQzs7O0FBT2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDVSxRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTG5CLG1CQUFjLEdBQXFCO1lBQzFDLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUM7SUFLRixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQXVCO1FBQy9CLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3RDLEdBQUcsSUFBSSxDQUFDLGNBQWM7WUFDdEIsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBdUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxHQUFHLElBQUk7U0FDUixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXVCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdFLENBQUM7OzZHQS9DVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixxRENUN0IsODRCQTBDQTsyRkRqQ2EsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUb2FzdENvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7U2hvd1RvYXN0T3B0aW9ucywgVG9hc3RzfSBmcm9tICcuL3RvYXN0cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2FzdC10ZXN0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICd0b2FzdC50ZXN0aW5nLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0VGVzdGluZ1BhZ2UgIHtcblxuICByZWFkb25seSBkZWZhdWx0T3B0aW9uczogU2hvd1RvYXN0T3B0aW9ucyA9IHtcbiAgICBzaG93Q2xvc2VCdXR0b246IGZhbHNlXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gIH1cblxuICBzaG93VG9hc3Qob3B0cz86IFNob3dUb2FzdE9wdGlvbnMpIHtcbiAgICByZXR1cm4gVG9hc3RzLnNob3dTaW1wbGUodGhpcy5pbmplY3Rvciwge1xuICAgICAgLi4udGhpcy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIGR1cmF0aW9uOiA1MDAwLCAvLyA1c1xuICAgICAgbWVzc2FnZTogJ1RoaXMgaXMgYSBtZXNzYWdlJyxcbiAgICAgIC4uLm9wdHNcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dJbmZvKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICByZXR1cm4gdGhpcy5zaG93VG9hc3Qoe1xuICAgICB0eXBlOiAnaW5mbycsXG4gICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgaW5mbyB0ZXh0ICEnLFxuICAgICAuLi5vcHRzXG4gICB9KTtcbiAgfVxuXG4gIHNob3dXYXJuaW5nKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgd2FybmluZyB0ZXh0ICEnLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd0Vycm9yKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIGVycm9yIHRleHQgIScsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuXG4gIHRvZ2dsZUNsb3NlQnV0dG9uKCkge1xuICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMuc2hvd0Nsb3NlQnV0dG9uID0gIXRoaXMuZGVmYXVsdE9wdGlvbnMuc2hvd0Nsb3NlQnV0dG9uO1xuICB9XG59XG4iLCI8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gIDxpb24tdGl0bGU+VG9hc3RzPC9pb24tdGl0bGU+XG48L2lvbi10b29sYmFyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuXG4gIDxwPlRvYXN0IGV4YW1wbGVzOjwvcD5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd1RvYXN0KClcIiBjb2xvcj1cImRhcmtcIj5cbiAgICBkZWZhdWx0XG4gIDwvaW9uLWJ1dHRvbj5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd0luZm8oKVwiIGNvbG9yPVwic2Vjb25kYXJ5XCI+XG4gICAgaW5mb1xuICA8L2lvbi1idXR0b24+XG5cbiAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNob3dXYXJuaW5nKClcIiBjb2xvcj1cImFjY2VudFwiPlxuICAgIHdhcm5pbmdcbiAgPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93RXJyb3IoKVwiIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgZXJyb3JcbiAgPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93SW5mbyh7bWVzc2FnZTogJ1RoaXMgaXMgPGI+SFRNTDwvYj4gdGV4dCd9KVwiIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgbWVzc2FnZSB3aXRoIEhUTUxcbiAgPC9pb24tYnV0dG9uPlxuICA8YnIvPlxuXG5cbiAgPGlvbi1saXN0PlxuXG5cbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLWNoZWNrYm94IFt2YWx1ZV09XCJkZWZhdWx0T3B0aW9ucy5zaG93Q2xvc2VCdXR0b25cIiAgKGlvbkNoYW5nZSk9XCJ0b2dnbGVDbG9zZUJ1dHRvbigpXCI+XG4gICAgICAgIDxpb24tbGFiZWw+Q2xvc2UgYnV0dG9uID88L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWNoZWNrYm94PlxuICAgIDwvaW9uLWl0ZW0+XG4gIDwvaW9uLWxpc3Q+XG5cblxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RouterModule } from '@angular/router';
3
- import { IonicModule } from '@ionic/angular';
4
- import { CommonModule } from '@angular/common';
5
- import { TranslateModule } from '@ngx-translate/core';
6
- import { ToastTestingPage } from './toast.testing';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@ngx-translate/core";
9
- import * as i2 from "@angular/router";
10
- const routes = [
11
- {
12
- path: 'toast',
13
- pathMatch: 'full',
14
- component: ToastTestingPage
15
- }
16
- ];
17
- export class ToastTestingModule {
18
- }
19
- ToastTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- ToastTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ToastTestingModule, declarations: [ToastTestingPage], imports: [CommonModule,
21
- IonicModule, i1.TranslateModule, i2.RouterModule], exports: [RouterModule,
22
- ToastTestingPage] });
23
- ToastTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastTestingModule, imports: [CommonModule,
24
- IonicModule,
25
- TranslateModule.forChild(),
26
- RouterModule.forChild(routes), RouterModule] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastTestingModule, decorators: [{
28
- type: NgModule,
29
- args: [{
30
- imports: [
31
- CommonModule,
32
- IonicModule,
33
- TranslateModule.forChild(),
34
- RouterModule.forChild(routes)
35
- ],
36
- declarations: [
37
- ToastTestingPage
38
- ],
39
- exports: [
40
- RouterModule,
41
- ToastTestingPage
42
- ]
43
- }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUVqRCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QjtDQUNGLENBQUM7QUFpQkYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVAzQixnQkFBZ0IsYUFOaEIsWUFBWTtRQUNaLFdBQVcsa0RBUVgsWUFBWTtRQUNaLGdCQUFnQjtnSEFHUCxrQkFBa0IsWUFiM0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxlQUFlLENBQUMsUUFBUSxFQUFFO1FBQzFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBTTdCLFlBQVk7MkZBSUgsa0JBQWtCO2tCQWY5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7cUJBQzlCO29CQUNELFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyTW9kdWxlLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7VG9hc3RUZXN0aW5nUGFnZX0gZnJvbSAnLi90b2FzdC50ZXN0aW5nJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAndG9hc3QnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogVG9hc3RUZXN0aW5nUGFnZVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRvYXN0VGVzdGluZ1BhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RUZXN0aW5nTW9kdWxlIHtcbn1cbiJdfQ==
@@ -1,144 +0,0 @@
1
- import { createAnimation, IonicSafeString, ToastController } from '@ionic/angular';
2
- import { TranslateService } from '@ngx-translate/core';
3
- import { isEmptyArray, isNotNil } from '../functions';
4
- const TOAST_MAX_HEIGHT_PX = 75;
5
- const TOAST_MAX_STACK_SIZE = 4;
6
- export class Toasts {
7
- static async showSimple(injector, opts) {
8
- return this.show(injector.get(ToastController), injector.get(TranslateService), opts);
9
- }
10
- static async show(toastController, translate, opts) {
11
- // DEBUG
12
- //console.debug('[Toasts.show]', opts);
13
- if (!toastController || !translate) {
14
- console.error('Missing required argument \'toastController\' or \'translate\'');
15
- if (opts.message instanceof IonicSafeString)
16
- console.info('[toasts] message: ' + (translate && translate.instant(opts.message.value) || opts.message.value));
17
- else if (typeof opts.message === 'string')
18
- console.info('[toasts] message: ' + (translate && translate.instant(opts.message, opts.messageParams) || opts.message));
19
- return Promise.resolve({});
20
- }
21
- this.counter++; // Increment toast counter
22
- let currentOffset = this.stackSize;
23
- if (this.stackSize < TOAST_MAX_STACK_SIZE) {
24
- this.stackSize++; // Increment stack offset
25
- }
26
- else {
27
- this.stackSize = 1; // Reset the stack
28
- currentOffset = 0;
29
- }
30
- const updateCounters = () => {
31
- // Decrease counter
32
- this.counter--;
33
- // If all toast closed: reset the stack offset
34
- if (this.counter === 0) {
35
- this.stackSize = 0;
36
- }
37
- // If current toast is the last one, decrease the offset
38
- else if (this.stackSize == currentOffset + 1) {
39
- this.stackSize--;
40
- }
41
- };
42
- const message = opts.message && opts.message instanceof IonicSafeString ? opts.message.value : opts.message;
43
- const i18nKeys = [message];
44
- if (opts.header)
45
- i18nKeys.push(opts.header);
46
- let closeButton;
47
- if (opts.showCloseButton) {
48
- opts.buttons = opts.buttons || [];
49
- const buttonIndex = opts.buttons
50
- .map(b => typeof b === 'object' && b || undefined)
51
- .filter(isNotNil)
52
- .findIndex(b => b.role === 'close');
53
- if (buttonIndex !== -1) {
54
- closeButton = opts.buttons[buttonIndex];
55
- }
56
- else {
57
- closeButton = { role: 'close' };
58
- opts.buttons.push(closeButton);
59
- }
60
- closeButton.text = closeButton.text || 'COMMON.BTN_OK';
61
- i18nKeys.push(closeButton.text);
62
- }
63
- // Read CSS
64
- const cssArray = opts.cssClass && typeof opts.cssClass === 'string' && opts.cssClass.split(',') || opts.cssClass || [];
65
- // Add 'error' class, if need
66
- if (opts.type) {
67
- switch (opts.type) {
68
- case 'error':
69
- cssArray.push('danger');
70
- break;
71
- case 'warning':
72
- cssArray.push('accent');
73
- break;
74
- case 'info':
75
- cssArray.push('secondary');
76
- break;
77
- }
78
- }
79
- const translations = translate.instant(i18nKeys);
80
- if (opts.messageParams) {
81
- translations[message] = translate.instant(message, opts.messageParams);
82
- }
83
- if (closeButton) {
84
- closeButton.text = translations[closeButton.text];
85
- }
86
- // Retrieve the toast position
87
- const position = opts.position || (opts.mode === 'ios' ? 'bottom' : 'top');
88
- if (!opts.enterAnimation && position !== 'middle') {
89
- // FIXME: animation failed, since migration to Ionic 6
90
- // When computing, the baseEle has no wrapper yet
91
- //opts.enterAnimation = this.createEnterAnimation(animationCtrl, currentOffset, opts);
92
- // opts.enterAnimation = (baseEl: HTMLElement, opts) => createAnimation()
93
- // .addElement(baseEl)
94
- // .delay(400)
95
- // .afterAddClass('stacked');
96
- // As workaround, we add an offset using a CSS class
97
- cssArray.push('toast-stacked-' + position);
98
- cssArray.push('toast-stack-offset-' + currentOffset);
99
- }
100
- opts.cssClass = cssArray;
101
- const toast = await toastController.create({
102
- // Default values
103
- position,
104
- duration: opts.showCloseButton ? 10000 : 4000,
105
- ...opts,
106
- message: translations[message],
107
- //header: opts.header && translations[opts.header] || undefined
108
- });
109
- if (opts.onWillPresent)
110
- opts.onWillPresent(toast);
111
- await toast.present();
112
- if (isEmptyArray(opts.buttons)) {
113
- // Not need to wait dismiss (no 'await')
114
- toast.onDidDismiss().then(updateCounters);
115
- return null; // no result
116
- }
117
- else {
118
- // Wait for button result
119
- const result = await toast.onDidDismiss();
120
- updateCounters();
121
- return result;
122
- }
123
- }
124
- static createEnterAnimation(animationCtrl, currentOffset, opts) {
125
- if (opts.position === 'middle') {
126
- return null;
127
- }
128
- const direction = opts.position === 'top' ? 1 : -1;
129
- const start = (currentOffset) * TOAST_MAX_HEIGHT_PX - direction * TOAST_MAX_HEIGHT_PX;
130
- const end = direction * (currentOffset) * TOAST_MAX_HEIGHT_PX;
131
- return (baseEl, opts) => {
132
- // FIXME: wrapper is always null
133
- const wrapper = baseEl.querySelector('.toast-wrapper');
134
- return createAnimation()
135
- .addElement(wrapper)
136
- .duration(250)
137
- .fromTo('transform', `translateY(${start}px)`, `translateY(${end}px)`)
138
- .fromTo('opacity', '0', '1');
139
- };
140
- }
141
- }
142
- Toasts.counter = 0;
143
- Toasts.stackSize = 0;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUdwRCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQVMvQixNQUFNLE9BQU8sTUFBTTtJQUlqQixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDckIsUUFBa0IsRUFDbEIsSUFBc0I7UUFFcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDZixlQUFnQyxFQUNoQyxTQUEyQixFQUMzQixJQUFzQjtRQUd0QixRQUFRO1FBQ1IsdUNBQXVDO1FBRXZDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1lBQ2hGLElBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxlQUFlO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMs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QUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxtQkFBbUIsR0FBSSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7UUFDdkYsTUFBTSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQW1CLENBQUM7UUFDOUQsT0FBTyxDQUFDLE1BQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDbkMsZ0NBQWdDO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2RCxPQUFPLGVBQWUsRUFBRTtpQkFDckIsVUFBVSxDQUFDLE9BQU8sQ0FBQztpQkFDbkIsUUFBUSxDQUFDLEdBQUcsQ0FBQztpQkFDYixNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsS0FBSyxLQUFLLEVBQUUsY0FBYyxHQUFHLEtBQUssQ0FBQztpQkFDckUsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQzs7QUFsS00sY0FBTyxHQUFHLENBQUMsQ0FBQztBQUNaLGdCQUFTLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRpb25Db250cm9sbGVyLCBjcmVhdGVBbmltYXRpb24sIElvbmljU2FmZVN0cmluZywgVG9hc3RDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBbmltYXRpb25CdWlsZGVyLCBPdmVybGF5RXZlbnREZXRhaWwsIFRvYXN0T3B0aW9uc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHtUb2FzdEJ1dHRvbn0gZnJvbSAnQGlvbmljL2NvcmUvZGlzdC90eXBlcy9jb21wb25lbnRzL3RvYXN0L3RvYXN0LWludGVyZmFjZSc7XG5pbXBvcnQge2lzRW1wdHlBcnJheSwgaXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgVE9BU1RfTUFYX0hFSUdIVF9QWCA9IDc1O1xuY29uc3QgVE9BU1RfTUFYX1NUQUNLX1NJWkUgPSA0O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2hvd1RvYXN0T3B0aW9ucyBleHRlbmRzIFRvYXN0T3B0aW9ucyB7XG4gIHR5cGU/OiAnZXJyb3InfCd3YXJuaW5nJ3wnaW5mbyc7XG4gIG1lc3NhZ2VQYXJhbXM/OiBhbnk7XG4gIHNob3dDbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gIG9uV2lsbFByZXNlbnQ/OiAodG9hc3Q6IEhUTUxJb25Ub2FzdEVsZW1lbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBUb2FzdHMge1xuICBzdGF0aWMgY291bnRlciA9IDA7XG4gIHN0YXRpYyBzdGFja1NpemUgPSAwO1xuXG4gIHN0YXRpYyBhc3luYyBzaG93U2ltcGxlPFQgPSBhbnk+KFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBvcHRzOiBTaG93VG9hc3RPcHRpb25zXG4gICk6IFByb21pc2U8T3ZlcmxheUV2ZW50RGV0YWlsPFQ+PiB7XG4gICAgICByZXR1cm4gdGhpcy5zaG93KGluamVjdG9yLmdldChUb2FzdENvbnRyb2xsZXIpLCBpbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSksIG9wdHMpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHNob3c8VCA9IGFueT4oXG4gICAgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIG9wdHM6IFNob3dUb2FzdE9wdGlvbnNcbiAgKTogUHJvbWlzZTxPdmVybGF5RXZlbnREZXRhaWw8VD4+IHtcblxuICAgIC8vIERFQlVHXG4gICAgLy9jb25zb2xlLmRlYnVnKCdbVG9hc3RzLnNob3ddJywgb3B0cyk7XG5cbiAgICBpZiAoIXRvYXN0Q29udHJvbGxlciB8fCAhdHJhbnNsYXRlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IFxcJ3RvYXN0Q29udHJvbGxlclxcJyBvciBcXCd0cmFuc2xhdGVcXCcnKTtcbiAgICAgIGlmIChvcHRzLm1lc3NhZ2UgaW5zdGFuY2VvZiBJb25pY1NhZmVTdHJpbmcpIGNvbnNvbGUuaW5mbygnW3RvYXN0c10gbWVzc2FnZTogJyArICh0cmFuc2xhdGUgJiYgdHJhbnNsYXRlLmluc3RhbnQob3B0cy5tZXNzYWdlLnZhbHVlKSB8fCBvcHRzLm1lc3NhZ2UudmFsdWUpKTtcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRzLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSBjb25zb2xlLmluZm8oJ1t0b2FzdHNdIG1lc3NhZ2U6ICcgKyAodHJhbnNsYXRlICYmIHRyYW5zbGF0ZS5pbnN0YW50KG9wdHMubWVzc2FnZSwgb3B0cy5tZXNzYWdlUGFyYW1zKSB8fCBvcHRzLm1lc3NhZ2UpKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH1cblxuICAgIHRoaXMuY291bnRlcisrOyAvLyBJbmNyZW1lbnQgdG9hc3QgY291bnRlclxuICAgIGxldCBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zdGFja1NpemU7XG4gICAgaWYgKHRoaXMuc3RhY2tTaXplIDwgVE9BU1RfTUFYX1NUQUNLX1NJWkUpIHtcbiAgICAgIHRoaXMuc3RhY2tTaXplKys7IC8vIEluY3JlbWVudCBzdGFjayBvZmZzZXRcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnN0YWNrU2l6ZSA9IDE7IC8vIFJlc2V0IHRoZSBzdGFja1xuICAgICAgY3VycmVudE9mZnNldCA9IDA7XG4gICAgfVxuICAgIGNvbnN0IHVwZGF0ZUNvdW50ZXJzID0gKCkgPT4ge1xuICAgICAgLy8gRGVjcmVhc2UgY291bnRlclxuICAgICAgdGhpcy5jb3VudGVyLS07XG4gICAgICAvLyBJZiBhbGwgdG9hc3QgY2xvc2VkOiByZXNldCB0aGUgc3RhY2sgb2Zmc2V0XG4gICAgICBpZiAodGhpcy5jb3VudGVyID09PSAwKSB7XG4gICAgICAgIHRoaXMuc3RhY2tTaXplID0gMDtcbiAgICAgIH1cbiAgICAgIC8vIElmIGN1cnJlbnQgdG9hc3QgaXMgdGhlIGxhc3Qgb25lLCBkZWNyZWFzZSB0aGUgb2Zmc2V0XG4gICAgICBlbHNlIGlmICh0aGlzLnN0YWNrU2l6ZSA9PSBjdXJyZW50T2Zmc2V0ICsgMSl7XG4gICAgICAgIHRoaXMuc3RhY2tTaXplLS07XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBvcHRzLm1lc3NhZ2UgJiYgb3B0cy5tZXNzYWdlIGluc3RhbmNlb2YgSW9uaWNTYWZlU3RyaW5nID8gb3B0cy5tZXNzYWdlLnZhbHVlIDogb3B0cy5tZXNzYWdlIGFzIHN0cmluZztcbiAgICBjb25zdCBpMThuS2V5cyA9IFttZXNzYWdlXTtcbiAgICBpZiAob3B0cy5oZWFkZXIpIGkxOG5LZXlzLnB1c2gob3B0cy5oZWFkZXIpO1xuXG4gICAgbGV0IGNsb3NlQnV0dG9uOiBUb2FzdEJ1dHRvbjtcbiAgICBpZiAob3B0cy5zaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgIG9wdHMuYnV0dG9ucyA9IG9wdHMuYnV0dG9ucyB8fCBbXTtcbiAgICAgIGNvbnN0IGJ1dHRvbkluZGV4ID0gb3B0cy5idXR0b25zXG4gICAgICAgIC5tYXAoYiA9PiB0eXBlb2YgYiA9PT0gJ29iamVjdCcgJiYgYiBhcyBUb2FzdEJ1dHRvbiB8fCB1bmRlZmluZWQpXG4gICAgICAgIC5maWx0ZXIoaXNOb3ROaWwpXG4gICAgICAgIC5maW5kSW5kZXgoYiA9PiBiLnJvbGUgPT09ICdjbG9zZScpO1xuICAgICAgaWYgKGJ1dHRvbkluZGV4ICE9PSAtMSkge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IG9wdHMuYnV0dG9uc1tidXR0b25JbmRleF0gYXMgVG9hc3RCdXR0b247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IHtyb2xlOiAnY2xvc2UnfTtcbiAgICAgICAgb3B0cy5idXR0b25zLnB1c2goY2xvc2VCdXR0b24pO1xuICAgICAgfVxuICAgICAgY2xvc2VCdXR0b24udGV4dCA9IGNsb3NlQnV0dG9uLnRleHQgfHwgJ0NPTU1PTi5CVE5fT0snO1xuICAgICAgaTE4bktleXMucHVzaChjbG9zZUJ1dHRvbi50ZXh0KTtcbiAgICB9XG5cbiAgICAvLyBSZWFkIENTU1xuICAgIGNvbnN0IGNzc0FycmF5ID0gb3B0cy5jc3NDbGFzcyAmJiB0eXBlb2Ygb3B0cy5jc3NDbGFzcyA9PT0gJ3N0cmluZycgJiYgb3B0cy5jc3NDbGFzcy5zcGxpdCgnLCcpIHx8IChvcHRzLmNzc0NsYXNzIGFzIEFycmF5PHN0cmluZz4pIHx8IFtdO1xuXG4gICAgLy8gQWRkICdlcnJvcicgY2xhc3MsIGlmIG5lZWRcbiAgICBpZiAob3B0cy50eXBlKSB7XG4gICAgICBzd2l0Y2ggKG9wdHMudHlwZSkge1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgY3NzQXJyYXkucHVzaCgnZGFuZ2VyJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgIGNzc0FycmF5LnB1c2goJ2FjY2VudCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICBjc3NBcnJheS5wdXNoKCdzZWNvbmRhcnknKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSB0cmFuc2xhdGUuaW5zdGFudChpMThuS2V5cyk7XG4gICAgaWYgKG9wdHMubWVzc2FnZVBhcmFtcykge1xuICAgICAgdHJhbnNsYXRpb25zW21lc3NhZ2VdID0gdHJhbnNsYXRlLmluc3RhbnQobWVzc2FnZSwgb3B0cy5tZXNzYWdlUGFyYW1zKTtcbiAgICB9XG5cbiAgICBpZiAoY2xvc2VCdXR0b24pIHtcbiAgICAgIGNsb3NlQnV0dG9uLnRleHQgPSB0cmFuc2xhdGlvbnNbY2xvc2VCdXR0b24udGV4dF07XG4gICAgfVxuXG4gICAgLy8gUmV0cmlldmUgdGhlIHRvYXN0IHBvc2l0aW9uXG4gICAgY29uc3QgcG9zaXRpb24gPSBvcHRzLnBvc2l0aW9uIHx8IChvcHRzLm1vZGUgPT09ICdpb3MnID8gJ2JvdHRvbScgOiAndG9wJyk7XG5cbiAgICBpZiAoIW9wdHMuZW50ZXJBbmltYXRpb24gJiYgcG9zaXRpb24gIT09ICdtaWRkbGUnKSB7XG4gICAgICAvLyBGSVhNRTogYW5pbWF0aW9uIGZhaWxlZCwgc2luY2UgbWlncmF0aW9uIHRvIElvbmljIDZcbiAgICAgIC8vIFdoZW4gY29tcHV0aW5nLCB0aGUgYmFzZUVsZSBoYXMgbm8gd3JhcHBlciB5ZXRcbiAgICAgIC8vb3B0cy5lbnRlckFuaW1hdGlvbiA9IHRoaXMuY3JlYXRlRW50ZXJBbmltYXRpb24oYW5pbWF0aW9uQ3RybCwgY3VycmVudE9mZnNldCwgb3B0cyk7XG4gICAgICAvLyBvcHRzLmVudGVyQW5pbWF0aW9uID0gKGJhc2VFbDogSFRNTEVsZW1lbnQsIG9wdHMpID0+IGNyZWF0ZUFuaW1hdGlvbigpXG4gICAgICAvLyAgICAgLmFkZEVsZW1lbnQoYmFzZUVsKVxuICAgICAgLy8gICAgIC5kZWxheSg0MDApXG4gICAgICAvLyAgICAgLmFmdGVyQWRkQ2xhc3MoJ3N0YWNrZWQnKTtcbiAgICAgIC8vIEFzIHdvcmthcm91bmQsIHdlIGFkZCBhbiBvZmZzZXQgdXNpbmcgYSBDU1MgY2xhc3NcbiAgICAgIGNzc0FycmF5LnB1c2goJ3RvYXN0LXN0YWNrZWQtJyArIHBvc2l0aW9uKTtcbiAgICAgIGNzc0FycmF5LnB1c2goJ3RvYXN0LXN0YWNrLW9mZnNldC0nICsgY3VycmVudE9mZnNldCk7XG4gICAgfVxuXG4gICAgb3B0cy5jc3NDbGFzcyA9IGNzc0FycmF5O1xuXG4gICAgY29uc3QgdG9hc3QgPSBhd2FpdCB0b2FzdENvbnRyb2xsZXIuY3JlYXRlKHtcbiAgICAgIC8vIERlZmF1bHQgdmFsdWVzXG4gICAgICBwb3NpdGlvbixcbiAgICAgIGR1cmF0aW9uOiBvcHRzLnNob3dDbG9zZUJ1dHRvbiA/IDEwMDAwIDogNDAwMCxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXNzYWdlOiB0cmFuc2xhdGlvbnNbbWVzc2FnZV0sXG4gICAgICAvL2hlYWRlcjogb3B0cy5oZWFkZXIgJiYgdHJhbnNsYXRpb25zW29wdHMuaGVhZGVyXSB8fCB1bmRlZmluZWRcbiAgICB9KTtcblxuICAgIGlmIChvcHRzLm9uV2lsbFByZXNlbnQpIG9wdHMub25XaWxsUHJlc2VudCh0b2FzdCk7XG5cbiAgICBhd2FpdCB0b2FzdC5wcmVzZW50KCk7XG5cbiAgICBpZiAoaXNFbXB0eUFycmF5KG9wdHMuYnV0dG9ucykpIHtcbiAgICAgIC8vIE5vdCBuZWVkIHRvIHdhaXQgZGlzbWlzcyAobm8gJ2F3YWl0JylcbiAgICAgIHRvYXN0Lm9uRGlkRGlzbWlzcygpLnRoZW4odXBkYXRlQ291bnRlcnMpO1xuICAgICAgcmV0dXJuIG51bGw7IC8vIG5vIHJlc3VsdFxuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgLy8gV2FpdCBmb3IgYnV0dG9uIHJlc3VsdFxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdG9hc3Qub25EaWREaXNtaXNzKCk7XG5cbiAgICAgIHVwZGF0ZUNvdW50ZXJzKCk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUVudGVyQW5pbWF0aW9uKGFuaW1hdGlvbkN0cmw6IEFuaW1hdGlvbkNvbnRyb2xsZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2Zmc2V0OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzOiBTaG93VG9hc3RPcHRpb25zKTogQW5pbWF0aW9uQnVpbGRlciB7XG4gICAgaWYgKG9wdHMucG9zaXRpb24gPT09ICdtaWRkbGUnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBvcHRzLnBvc2l0aW9uID09PSAndG9wJyA/IDEgOiAtMTtcbiAgICBjb25zdCBzdGFydCA9IChjdXJyZW50T2Zmc2V0KSAqIFRPQVNUX01BWF9IRUlHSFRfUFggIC0gZGlyZWN0aW9uICogVE9BU1RfTUFYX0hFSUdIVF9QWDtcbiAgICBjb25zdCBlbmQgPSBkaXJlY3Rpb24gKiAoY3VycmVudE9mZnNldCkgKiBUT0FTVF9NQVhfSEVJR0hUX1BYO1xuICAgIHJldHVybiAoYmFzZUVsOiBIVE1MRWxlbWVudCwgb3B0cykgPT4ge1xuICAgICAgLy8gRklYTUU6IHdyYXBwZXIgaXMgYWx3YXlzIG51bGxcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBiYXNlRWwucXVlcnlTZWxlY3RvcignLnRvYXN0LXdyYXBwZXInKTtcbiAgICAgIHJldHVybiBjcmVhdGVBbmltYXRpb24oKVxuICAgICAgICAuYWRkRWxlbWVudCh3cmFwcGVyKVxuICAgICAgICAuZHVyYXRpb24oMjUwKVxuICAgICAgICAuZnJvbVRvKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlWSgke3N0YXJ0fXB4KWAsIGB0cmFuc2xhdGVZKCR7ZW5kfXB4KWApXG4gICAgICAgIC5mcm9tVG8oJ29wYWNpdHknLCAnMCcsICcxJyk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -1,58 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { toBoolean } from '../functions';
3
- import { Subscription } from 'rxjs';
4
- import { filter } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../hotkeys/hotkeys.service";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@ionic/angular";
9
- import * as i4 from "@angular/material/icon";
10
- export class ModalToolbarComponent {
11
- constructor(hotkeys) {
12
- this.hotkeys = hotkeys;
13
- this._subscription = new Subscription();
14
- this.modalName = 'modal-toolbar';
15
- this.title = '';
16
- this.color = 'primary';
17
- this.showSpinner = false;
18
- this.validateIcon = { icon: 'checkmark' };
19
- this.cancel = new EventEmitter();
20
- this.validate = new EventEmitter();
21
- }
22
- ngOnInit() {
23
- this.canValidate = toBoolean(this.canValidate, this.validate.observers.length > 0);
24
- // Ctrl+S
25
- this._subscription.add(this.hotkeys.addShortcut({ keys: 'control.s', description: 'COMMON.BTN_VALIDATE', elementName: this.modalName })
26
- .pipe(filter(() => this.canValidate))
27
- .subscribe((event) => this.validate.emit(event)));
28
- // Escape
29
- this._subscription.add(this.hotkeys.addShortcut({ keys: 'escape', description: 'COMMON.BTN_CLOSE', elementName: this.modalName })
30
- .subscribe((event) => this.cancel.emit(event)));
31
- }
32
- ngOnDestroy() {
33
- this._subscription.unsubscribe();
34
- }
35
- }
36
- ModalToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalToolbarComponent, deps: [{ token: i1.Hotkeys }], target: i0.ɵɵFactoryTarget.Component });
37
- ModalToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ModalToolbarComponent, selector: "app-modal-toolbar", inputs: { modalName: "modalName", title: "title", color: "color", showSpinner: "showSpinner", canValidate: "canValidate", validateIcon: "validateIcon" }, outputs: { cancel: "cancel", validate: "validate" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar [color]=\"color\">\n <ion-buttons slot=\"start\">\n <ion-button visible-xs visible-sm visible-mobile\n (click)=\"cancel.emit()\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\">\n\n <ng-content select=\"ion-button[slot=end]\"></ng-content>\n\n <ion-spinner *ngIf=\"showSpinner\"></ion-spinner>\n\n <ion-button visible-xs visible-sm visible-mobile\n *ngIf=\"canValidate\"\n (click)=\"validate.emit($event)\">\n <ion-icon slot=\"icon-only\" *ngIf=\"validateIcon?.icon\" [name]=\"validateIcon.icon\"></ion-icon>\n <mat-icon slot=\"icon-only\" *ngIf=\"validateIcon?.matIcon\" >{{validateIcon.matIcon}}</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.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: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalToolbarComponent, decorators: [{
39
- type: Component,
40
- args: [{ selector: 'app-modal-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header>\n <ion-toolbar [color]=\"color\">\n <ion-buttons slot=\"start\">\n <ion-button visible-xs visible-sm visible-mobile\n (click)=\"cancel.emit()\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\">\n\n <ng-content select=\"ion-button[slot=end]\"></ng-content>\n\n <ion-spinner *ngIf=\"showSpinner\"></ion-spinner>\n\n <ion-button visible-xs visible-sm visible-mobile\n *ngIf=\"canValidate\"\n (click)=\"validate.emit($event)\">\n <ion-icon slot=\"icon-only\" *ngIf=\"validateIcon?.icon\" [name]=\"validateIcon.icon\"></ion-icon>\n <mat-icon slot=\"icon-only\" *ngIf=\"validateIcon?.matIcon\" >{{validateIcon.matIcon}}</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n" }]
41
- }], ctorParameters: function () { return [{ type: i1.Hotkeys }]; }, propDecorators: { modalName: [{
42
- type: Input
43
- }], title: [{
44
- type: Input
45
- }], color: [{
46
- type: Input
47
- }], showSpinner: [{
48
- type: Input
49
- }], canValidate: [{
50
- type: Input
51
- }], validateIcon: [{
52
- type: Input
53
- }], cancel: [{
54
- type: Output
55
- }], validate: [{
56
- type: Output
57
- }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvbW9kYWwtdG9vbGJhci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvbW9kYWwtdG9vbGJhci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUdsQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVF0QyxNQUFNLE9BQU8scUJBQXFCO0lBMkJoQyxZQUFvQixPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBekI1QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHM0MsY0FBUyxHQUFHLGVBQWUsQ0FBQztRQUc1QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR1gsVUFBSyxHQUFHLFNBQVMsQ0FBQztRQUdsQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtYLGlCQUFZLEdBQVksRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUM7UUFHckQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFHbkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFFRSxDQUFDO0lBRXhDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVuRixTQUFTO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUMsQ0FBQzthQUMzRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RCxTQUFTO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUMsQ0FBQzthQUNyRyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7a0hBL0NVLHFCQUFxQjtzR0FBckIscUJBQXFCLHdRQ2JsQyw2bUNBZ0NBOzJGRG5CYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU07OEZBTy9DLFNBQVM7c0JBRFIsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHTixNQUFNO3NCQURMLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9Cb29sZWFufSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtIb3RrZXlzfSBmcm9tICcuLi9ob3RrZXlzL2hvdGtleXMuc2VydmljZSc7XG5pbXBvcnQge0ljb25SZWZ9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tb2RhbC10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICdtb2RhbC10b29sYmFyLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC10b29sYmFyLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoKVxuICBtb2RhbE5hbWUgPSAnbW9kYWwtdG9vbGJhcic7XG5cbiAgQElucHV0KClcbiAgdGl0bGUgPSAnJztcblxuICBASW5wdXQoKVxuICBjb2xvciA9ICdwcmltYXJ5JztcblxuICBASW5wdXQoKVxuICBzaG93U3Bpbm5lciA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNhblZhbGlkYXRlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHZhbGlkYXRlSWNvbjogSWNvblJlZiA9IHtpY29uOiAnY2hlY2ttYXJrJ307XG5cbiAgQE91dHB1dCgpXG4gIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHZhbGlkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvdGtleXM6IEhvdGtleXMpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYW5WYWxpZGF0ZSA9IHRvQm9vbGVhbih0aGlzLmNhblZhbGlkYXRlLCB0aGlzLnZhbGlkYXRlLm9ic2VydmVycy5sZW5ndGggPiAwKTtcblxuICAgIC8vIEN0cmwrU1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmhvdGtleXMuYWRkU2hvcnRjdXQoe2tleXM6ICdjb250cm9sLnMnLCBkZXNjcmlwdGlvbjogJ0NPTU1PTi5CVE5fVkFMSURBVEUnLCBlbGVtZW50TmFtZTogdGhpcy5tb2RhbE5hbWV9KVxuICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5jYW5WYWxpZGF0ZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLnZhbGlkYXRlLmVtaXQoZXZlbnQpKSk7XG5cbiAgICAvLyBFc2NhcGVcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ob3RrZXlzLmFkZFNob3J0Y3V0KHtrZXlzOiAnZXNjYXBlJywgZGVzY3JpcHRpb246ICdDT01NT04uQlROX0NMT1NFJywgZWxlbWVudE5hbWU6IHRoaXMubW9kYWxOYW1lfSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuY2FuY2VsLmVtaXQoZXZlbnQpKSk7XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgW2NvbG9yXT1cImNvbG9yXCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1idXR0b24gdmlzaWJsZS14cyB2aXNpYmxlLXNtIHZpc2libGUtbW9iaWxlXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9c3RhcnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L2lvbi10aXRsZT5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlvbi10aXRsZVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlvbi1idXR0b25zW3Nsb3Q9ZW5kXVwiPjwvbmctY29udGVudD5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlvbi1idXR0b25bc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICA8aW9uLXNwaW5uZXIgKm5nSWY9XCJzaG93U3Bpbm5lclwiPjwvaW9uLXNwaW5uZXI+XG5cbiAgICAgIDxpb24tYnV0dG9uIHZpc2libGUteHMgdmlzaWJsZS1zbSB2aXNpYmxlLW1vYmlsZVxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5WYWxpZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmFsaWRhdGUuZW1pdCgkZXZlbnQpXCI+XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgKm5nSWY9XCJ2YWxpZGF0ZUljb24/Lmljb25cIiAgW25hbWVdPVwidmFsaWRhdGVJY29uLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICA8bWF0LWljb24gc2xvdD1cImljb24tb25seVwiICpuZ0lmPVwidmFsaWRhdGVJY29uPy5tYXRJY29uXCIgPnt7dmFsaWRhdGVJY29uLm1hdEljb259fTwvbWF0LWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cbiJdfQ==