@ecodev/natural 41.3.0 → 42.2.0

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 (350) hide show
  1. package/ecodev-natural.d.ts +1 -9
  2. package/esm2020/ecodev-natural.mjs +5 -0
  3. package/esm2020/lib/classes/abstract-controller.mjs +30 -0
  4. package/esm2020/lib/classes/abstract-detail.mjs +152 -0
  5. package/esm2020/lib/classes/abstract-editable-list.mjs +96 -0
  6. package/esm2020/lib/classes/abstract-list.mjs +406 -0
  7. package/esm2020/lib/classes/abstract-navigable-list.mjs +126 -0
  8. package/{esm2015/lib/classes/apollo-utils.js → esm2020/lib/classes/apollo-utils.mjs} +0 -0
  9. package/esm2020/lib/classes/data-source.mjs +76 -0
  10. package/{esm2015/lib/classes/query-variable-manager-utils.js → esm2020/lib/classes/query-variable-manager-utils.mjs} +0 -0
  11. package/esm2020/lib/classes/query-variable-manager.mjs +172 -0
  12. package/{esm2015/lib/classes/rxjs.js → esm2020/lib/classes/rxjs.mjs} +0 -0
  13. package/{esm2015/lib/classes/tld.js → esm2020/lib/classes/tld.mjs} +0 -0
  14. package/{esm2015/lib/classes/utility.js → esm2020/lib/classes/utility.mjs} +0 -0
  15. package/esm2020/lib/classes/validators.mjs +179 -0
  16. package/esm2020/lib/directives/http-prefix.directive.mjs +50 -0
  17. package/esm2020/lib/modules/alert/alert.module.mjs +20 -0
  18. package/esm2020/lib/modules/alert/alert.service.mjs +55 -0
  19. package/esm2020/lib/modules/alert/confirm.component.mjs +20 -0
  20. package/{esm2015/lib/modules/alert/public-api.js → esm2020/lib/modules/alert/public-api.mjs} +0 -0
  21. package/esm2020/lib/modules/avatar/avatar.module.mjs +19 -0
  22. package/esm2020/lib/modules/avatar/component/avatar.component.mjs +190 -0
  23. package/{esm2015/lib/modules/avatar/public-api.js → esm2020/lib/modules/avatar/public-api.mjs} +0 -0
  24. package/esm2020/lib/modules/avatar/service/avatar.service.mjs +66 -0
  25. package/esm2020/lib/modules/avatar/sources/gravatar.mjs +29 -0
  26. package/{esm2015/lib/modules/avatar/sources/image.js → esm2020/lib/modules/avatar/sources/image.mjs} +0 -0
  27. package/{esm2015/lib/modules/avatar/sources/initials.js → esm2020/lib/modules/avatar/sources/initials.mjs} +0 -0
  28. package/{esm2015/lib/modules/avatar/sources/source.js → esm2020/lib/modules/avatar/sources/source.mjs} +1 -1
  29. package/esm2020/lib/modules/columns-picker/columns-picker-column.directive.mjs +43 -0
  30. package/esm2020/lib/modules/columns-picker/columns-picker.component.mjs +84 -0
  31. package/esm2020/lib/modules/columns-picker/columns-picker.module.mjs +47 -0
  32. package/{esm2015/lib/modules/columns-picker/public-api.js → esm2020/lib/modules/columns-picker/public-api.mjs} +0 -0
  33. package/esm2020/lib/modules/common/common-module.mjs +50 -0
  34. package/esm2020/lib/modules/common/directives/linkable-tab.directive.mjs +79 -0
  35. package/esm2020/lib/modules/common/directives/src-density.directive.mjs +62 -0
  36. package/esm2020/lib/modules/common/pipes/capitalize.pipe.mjs +18 -0
  37. package/esm2020/lib/modules/common/pipes/ellipsis.pipe.mjs +14 -0
  38. package/esm2020/lib/modules/common/pipes/enum.pipe.mjs +25 -0
  39. package/esm2020/lib/modules/common/pipes/swiss-date.pipe.mjs +20 -0
  40. package/esm2020/lib/modules/common/public-api.mjs +13 -0
  41. package/esm2020/lib/modules/common/services/memory-storage.mjs +112 -0
  42. package/esm2020/lib/modules/common/services/seo.service.mjs +114 -0
  43. package/esm2020/lib/modules/detail-header/detail-header.component.mjs +76 -0
  44. package/esm2020/lib/modules/detail-header/detail-header.module.mjs +21 -0
  45. package/{esm2015/lib/modules/detail-header/public-api.js → esm2020/lib/modules/detail-header/public-api.mjs} +0 -0
  46. package/esm2020/lib/modules/dialog-trigger/dialog-trigger.component.mjs +69 -0
  47. package/esm2020/lib/modules/dialog-trigger/dialog-trigger.module.mjs +19 -0
  48. package/{esm2015/lib/modules/dialog-trigger/public-api.js → esm2020/lib/modules/dialog-trigger/public-api.mjs} +0 -0
  49. package/esm2020/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +98 -0
  50. package/esm2020/lib/modules/dropdown-components/natural-dropdown-components.module.mjs +92 -0
  51. package/{esm2015/lib/modules/dropdown-components/public-api.js → esm2020/lib/modules/dropdown-components/public-api.mjs} +0 -0
  52. package/esm2020/lib/modules/dropdown-components/type-date/type-date.component.mjs +133 -0
  53. package/esm2020/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +137 -0
  54. package/esm2020/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +69 -0
  55. package/esm2020/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +38 -0
  56. package/esm2020/lib/modules/dropdown-components/type-number/type-number.component.mjs +104 -0
  57. package/esm2020/lib/modules/dropdown-components/type-select/type-select.component.mjs +169 -0
  58. package/esm2020/lib/modules/dropdown-components/type-text/type-text.component.mjs +57 -0
  59. package/{esm2015/lib/modules/dropdown-components/types.js → esm2020/lib/modules/dropdown-components/types.mjs} +0 -0
  60. package/{esm2015/lib/modules/dropdown-components/utils.js → esm2020/lib/modules/dropdown-components/utils.mjs} +0 -0
  61. package/esm2020/lib/modules/file/abstract-file.mjs +231 -0
  62. package/esm2020/lib/modules/file/component/file.component.mjs +143 -0
  63. package/esm2020/lib/modules/file/file-drop.directive.mjs +110 -0
  64. package/esm2020/lib/modules/file/file-select.directive.mjs +28 -0
  65. package/esm2020/lib/modules/file/file.module.mjs +24 -0
  66. package/esm2020/lib/modules/file/file.service.mjs +48 -0
  67. package/{esm2015/lib/modules/file/public-api.js → esm2020/lib/modules/file/public-api.mjs} +0 -0
  68. package/{esm2015/lib/modules/file/types.js → esm2020/lib/modules/file/types.mjs} +0 -0
  69. package/{esm2015/lib/modules/file/utils.js → esm2020/lib/modules/file/utils.mjs} +3 -4
  70. package/esm2020/lib/modules/fixed-button/fixed-button.component.mjs +27 -0
  71. package/esm2020/lib/modules/fixed-button/fixed-button.module.mjs +21 -0
  72. package/{esm2015/lib/modules/fixed-button/public-api.js → esm2020/lib/modules/fixed-button/public-api.mjs} +0 -0
  73. package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +36 -0
  74. package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.module.mjs +20 -0
  75. package/{esm2015/lib/modules/fixed-button-detail/public-api.js → esm2020/lib/modules/fixed-button-detail/public-api.mjs} +0 -0
  76. package/{esm2015/lib/modules/hierarchic-selector/classes/flat-node.js → esm2020/lib/modules/hierarchic-selector/classes/flat-node.mjs} +1 -1
  77. package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs} +0 -0
  78. package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs} +0 -0
  79. package/{esm2015/lib/modules/hierarchic-selector/classes/model-node.js → esm2020/lib/modules/hierarchic-selector/classes/model-node.mjs} +1 -1
  80. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +364 -0
  81. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +258 -0
  82. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +31 -0
  83. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +23 -0
  84. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector.module.mjs +81 -0
  85. package/{esm2015/lib/modules/hierarchic-selector/public-api.js → esm2020/lib/modules/hierarchic-selector/public-api.mjs} +0 -0
  86. package/esm2020/lib/modules/icon/icon.component.mjs +92 -0
  87. package/esm2020/lib/modules/icon/icon.module.mjs +30 -0
  88. package/{esm2015/lib/modules/icon/public-api.js → esm2020/lib/modules/icon/public-api.mjs} +0 -0
  89. package/esm2020/lib/modules/matomo/matomo-module.module.mjs +12 -0
  90. package/esm2020/lib/modules/matomo/matomo.service.mjs +105 -0
  91. package/{esm2015/lib/modules/matomo/public-api.js → esm2020/lib/modules/matomo/public-api.mjs} +0 -0
  92. package/esm2020/lib/modules/panels/abstract-panel.mjs +56 -0
  93. package/{esm2015/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.js → esm2020/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs} +0 -0
  94. package/esm2020/lib/modules/panels/panels.component.mjs +26 -0
  95. package/esm2020/lib/modules/panels/panels.module.mjs +33 -0
  96. package/esm2020/lib/modules/panels/panels.service.mjs +325 -0
  97. package/{esm2015/lib/modules/panels/panels.urlmatcher.js → esm2020/lib/modules/panels/panels.urlmatcher.mjs} +0 -0
  98. package/{esm2015/lib/modules/panels/public-api.js → esm2020/lib/modules/panels/public-api.mjs} +0 -0
  99. package/{esm2015/lib/modules/panels/types.js → esm2020/lib/modules/panels/types.mjs} +0 -0
  100. package/{esm2015/lib/modules/relations/public-api.js → esm2020/lib/modules/relations/public-api.mjs} +0 -0
  101. package/esm2020/lib/modules/relations/relations.component.mjs +198 -0
  102. package/esm2020/lib/modules/relations/relations.module.mjs +58 -0
  103. package/{esm2015/lib/modules/search/classes/graphql-doctrine.js → esm2020/lib/modules/search/classes/graphql-doctrine.mjs} +0 -0
  104. package/{esm2015/lib/modules/search/classes/graphql-doctrine.types.js → esm2020/lib/modules/search/classes/graphql-doctrine.types.mjs} +0 -0
  105. package/{esm2015/lib/modules/search/classes/transformers.js → esm2020/lib/modules/search/classes/transformers.mjs} +0 -0
  106. package/{esm2015/lib/modules/search/classes/url.js → esm2020/lib/modules/search/classes/url.mjs} +0 -0
  107. package/{esm2015/lib/modules/search/classes/utils.js → esm2020/lib/modules/search/classes/utils.mjs} +0 -0
  108. package/{esm2015/lib/modules/search/dropdown-container/dropdown-container-animations.js → esm2020/lib/modules/search/dropdown-container/dropdown-container-animations.mjs} +0 -0
  109. package/esm2020/lib/modules/search/dropdown-container/dropdown-container.component.mjs +88 -0
  110. package/{esm2015/lib/modules/search/dropdown-container/dropdown-ref.js → esm2020/lib/modules/search/dropdown-container/dropdown-ref.mjs} +1 -1
  111. package/esm2020/lib/modules/search/dropdown-container/dropdown.service.mjs +93 -0
  112. package/esm2020/lib/modules/search/facet-selector/facet-selector.component.mjs +50 -0
  113. package/esm2020/lib/modules/search/group/group.component.mjs +45 -0
  114. package/esm2020/lib/modules/search/input/input.component.mjs +328 -0
  115. package/{esm2015/lib/modules/search/public-api.js → esm2020/lib/modules/search/public-api.mjs} +0 -0
  116. package/esm2020/lib/modules/search/search/search.component.mjs +78 -0
  117. package/esm2020/lib/modules/search/search.module.mjs +84 -0
  118. package/{esm2015/lib/modules/search/types/dropdown-component.js → esm2020/lib/modules/search/types/dropdown-component.mjs} +0 -0
  119. package/{esm2015/lib/modules/search/types/facet.js → esm2020/lib/modules/search/types/facet.mjs} +0 -0
  120. package/{esm2015/lib/modules/search/types/values.js → esm2020/lib/modules/search/types/values.mjs} +0 -0
  121. package/esm2020/lib/modules/select/abstract-select.component.mjs +186 -0
  122. package/{esm2015/lib/modules/select/public-api.js → esm2020/lib/modules/select/public-api.mjs} +0 -0
  123. package/esm2020/lib/modules/select/select/select.component.mjs +207 -0
  124. package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +47 -0
  125. package/esm2020/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +127 -0
  126. package/esm2020/lib/modules/select/select.module.mjs +68 -0
  127. package/{esm2015/lib/modules/sidenav/public-api.js → esm2020/lib/modules/sidenav/public-api.mjs} +0 -0
  128. package/esm2020/lib/modules/sidenav/sidenav/sidenav.component.mjs +15 -0
  129. package/esm2020/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +87 -0
  130. package/esm2020/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +12 -0
  131. package/esm2020/lib/modules/sidenav/sidenav-stack.service.mjs +52 -0
  132. package/esm2020/lib/modules/sidenav/sidenav.module.mjs +25 -0
  133. package/esm2020/lib/modules/sidenav/sidenav.service.mjs +195 -0
  134. package/{esm2015/lib/modules/stamp/public-api.js → esm2020/lib/modules/stamp/public-api.mjs} +0 -0
  135. package/esm2020/lib/modules/stamp/stamp-module.module.mjs +18 -0
  136. package/esm2020/lib/modules/stamp/stamp.component.mjs +14 -0
  137. package/{esm2015/lib/modules/table-button/public-api.js → esm2020/lib/modules/table-button/public-api.mjs} +0 -0
  138. package/esm2020/lib/modules/table-button/table-button.component.mjs +48 -0
  139. package/esm2020/lib/modules/table-button/table-button.module.mjs +21 -0
  140. package/esm2020/lib/services/abstract-model.service.mjs +509 -0
  141. package/esm2020/lib/services/enum.service.mjs +67 -0
  142. package/esm2020/lib/services/link-mutation.service.mjs +153 -0
  143. package/esm2020/lib/services/persistence.service.mjs +113 -0
  144. package/esm2020/lib/services/swiss-parsing-date-adapter.service.mjs +55 -0
  145. package/{esm2015/lib/types/types.js → esm2020/lib/types/types.mjs} +0 -0
  146. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  147. package/fesm2015/{ecodev-natural.js → ecodev-natural.mjs} +2808 -2392
  148. package/fesm2015/ecodev-natural.mjs.map +1 -0
  149. package/fesm2020/ecodev-natural.mjs +10495 -0
  150. package/fesm2020/ecodev-natural.mjs.map +1 -0
  151. package/lib/classes/abstract-controller.d.ts +3 -0
  152. package/lib/classes/abstract-detail.d.ts +3 -0
  153. package/lib/classes/abstract-editable-list.d.ts +3 -0
  154. package/lib/classes/abstract-list.d.ts +3 -0
  155. package/lib/classes/abstract-navigable-list.d.ts +3 -0
  156. package/lib/classes/query-variable-manager.d.ts +19 -8
  157. package/lib/directives/http-prefix.directive.d.ts +3 -0
  158. package/lib/modules/alert/alert.module.d.ts +9 -0
  159. package/lib/modules/alert/alert.service.d.ts +3 -0
  160. package/lib/modules/alert/confirm.component.d.ts +3 -0
  161. package/lib/modules/avatar/avatar.module.d.ts +6 -0
  162. package/lib/modules/avatar/component/avatar.component.d.ts +4 -0
  163. package/lib/modules/avatar/service/avatar.service.d.ts +3 -0
  164. package/lib/modules/columns-picker/columns-picker-column.directive.d.ts +3 -0
  165. package/lib/modules/columns-picker/columns-picker.component.d.ts +3 -0
  166. package/lib/modules/columns-picker/columns-picker.module.d.ts +13 -0
  167. package/lib/modules/common/common-module.d.ts +15 -0
  168. package/lib/modules/common/directives/linkable-tab.directive.d.ts +3 -0
  169. package/lib/modules/common/directives/src-density.directive.d.ts +3 -0
  170. package/lib/modules/common/pipes/capitalize.pipe.d.ts +3 -0
  171. package/lib/modules/common/pipes/ellipsis.pipe.d.ts +3 -0
  172. package/lib/modules/common/pipes/enum.pipe.d.ts +3 -0
  173. package/lib/modules/common/pipes/swiss-date.pipe.d.ts +3 -0
  174. package/lib/modules/common/public-api.d.ts +0 -1
  175. package/lib/modules/common/services/memory-storage.d.ts +3 -0
  176. package/lib/modules/common/services/seo.service.d.ts +3 -0
  177. package/lib/modules/detail-header/detail-header.component.d.ts +3 -0
  178. package/lib/modules/detail-header/detail-header.module.d.ts +9 -0
  179. package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +3 -0
  180. package/lib/modules/dialog-trigger/dialog-trigger.module.d.ts +7 -0
  181. package/lib/modules/dropdown-components/abstract-association-select-component.directive.d.ts +3 -0
  182. package/lib/modules/dropdown-components/natural-dropdown-components.module.d.ts +22 -0
  183. package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +3 -0
  184. package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +3 -0
  185. package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +3 -0
  186. package/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.d.ts +3 -0
  187. package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +3 -0
  188. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +3 -0
  189. package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +3 -0
  190. package/lib/modules/file/abstract-file.d.ts +3 -0
  191. package/lib/modules/file/component/file.component.d.ts +3 -0
  192. package/lib/modules/file/file-drop.directive.d.ts +3 -0
  193. package/lib/modules/file/file-select.directive.d.ts +3 -0
  194. package/lib/modules/file/file.module.d.ts +11 -0
  195. package/lib/modules/file/file.service.d.ts +3 -0
  196. package/lib/modules/fixed-button/fixed-button.component.d.ts +3 -0
  197. package/lib/modules/fixed-button/fixed-button.module.d.ts +9 -0
  198. package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +3 -0
  199. package/lib/modules/fixed-button-detail/fixed-button-detail.module.d.ts +8 -0
  200. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -0
  201. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +3 -0
  202. package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +3 -0
  203. package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.d.ts +3 -0
  204. package/lib/modules/hierarchic-selector/hierarchic-selector.module.d.ts +21 -0
  205. package/lib/modules/icon/icon.component.d.ts +3 -0
  206. package/lib/modules/icon/icon.module.d.ts +7 -0
  207. package/lib/modules/matomo/matomo-module.module.d.ts +4 -0
  208. package/lib/modules/matomo/matomo.service.d.ts +3 -0
  209. package/lib/modules/panels/abstract-panel.d.ts +3 -0
  210. package/lib/modules/panels/panels.component.d.ts +3 -0
  211. package/lib/modules/panels/panels.module.d.ts +8 -0
  212. package/lib/modules/panels/panels.service.d.ts +3 -0
  213. package/lib/modules/relations/relations.component.d.ts +3 -0
  214. package/lib/modules/relations/relations.module.d.ts +15 -0
  215. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +3 -0
  216. package/lib/modules/search/dropdown-container/dropdown-ref.d.ts +1 -1
  217. package/lib/modules/search/dropdown-container/dropdown.service.d.ts +3 -0
  218. package/lib/modules/search/facet-selector/facet-selector.component.d.ts +3 -0
  219. package/lib/modules/search/group/group.component.d.ts +3 -0
  220. package/lib/modules/search/input/input.component.d.ts +3 -0
  221. package/lib/modules/search/search/search.component.d.ts +3 -0
  222. package/lib/modules/search/search.module.d.ts +19 -0
  223. package/lib/modules/select/abstract-select.component.d.ts +4 -1
  224. package/lib/modules/select/select/select.component.d.ts +3 -0
  225. package/lib/modules/select/select-enum/select-enum.component.d.ts +9 -2
  226. package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +3 -0
  227. package/lib/modules/select/select.module.d.ts +19 -0
  228. package/lib/modules/sidenav/sidenav/sidenav.component.d.ts +3 -0
  229. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +3 -0
  230. package/lib/modules/sidenav/sidenav-content/sidenav-content.component.d.ts +3 -0
  231. package/lib/modules/sidenav/sidenav-stack.service.d.ts +4 -1
  232. package/lib/modules/sidenav/sidenav.module.d.ts +11 -0
  233. package/lib/modules/sidenav/sidenav.service.d.ts +3 -0
  234. package/lib/modules/stamp/stamp-module.module.d.ts +6 -0
  235. package/lib/modules/stamp/stamp.component.d.ts +3 -0
  236. package/lib/modules/table-button/table-button.component.d.ts +3 -0
  237. package/lib/modules/table-button/table-button.module.d.ts +9 -0
  238. package/lib/services/enum.service.d.ts +3 -0
  239. package/lib/services/link-mutation.service.d.ts +3 -0
  240. package/lib/services/persistence.service.d.ts +3 -0
  241. package/lib/services/swiss-parsing-date-adapter.service.d.ts +4 -1
  242. package/package.json +25 -12
  243. package/src/lib/modules/alert/_alert.theme.scss +1 -1
  244. package/src/lib/modules/file/component/_file.theme.scss +1 -1
  245. package/src/lib/modules/icon/_icon.theme.scss +1 -1
  246. package/src/lib/modules/search/dropdown-container/_dropdown-container.theme.scss +1 -1
  247. package/src/lib/modules/table-button/_table-button.theme.scss +1 -1
  248. package/src/lib/styles/_table.scss +1 -1
  249. package/theming/_natural.theme.scss +1 -1
  250. package/bundles/ecodev-natural.umd.js +0 -11318
  251. package/bundles/ecodev-natural.umd.js.map +0 -1
  252. package/ecodev-natural.metadata.json +0 -1
  253. package/esm2015/ecodev-natural.js +0 -14
  254. package/esm2015/lib/classes/abstract-controller.js +0 -29
  255. package/esm2015/lib/classes/abstract-detail.js +0 -157
  256. package/esm2015/lib/classes/abstract-editable-list.js +0 -97
  257. package/esm2015/lib/classes/abstract-list.js +0 -409
  258. package/esm2015/lib/classes/abstract-navigable-list.js +0 -126
  259. package/esm2015/lib/classes/data-source.js +0 -76
  260. package/esm2015/lib/classes/query-variable-manager.js +0 -161
  261. package/esm2015/lib/classes/validators.js +0 -176
  262. package/esm2015/lib/directives/http-prefix.directive.js +0 -46
  263. package/esm2015/lib/modules/alert/alert.module.js +0 -15
  264. package/esm2015/lib/modules/alert/alert.service.js +0 -59
  265. package/esm2015/lib/modules/alert/confirm.component.js +0 -17
  266. package/esm2015/lib/modules/avatar/avatar.module.js +0 -14
  267. package/esm2015/lib/modules/avatar/component/avatar.component.js +0 -158
  268. package/esm2015/lib/modules/avatar/service/avatar.service.js +0 -65
  269. package/esm2015/lib/modules/avatar/sources/gravatar.js +0 -29
  270. package/esm2015/lib/modules/columns-picker/columns-picker-column.directive.js +0 -41
  271. package/esm2015/lib/modules/columns-picker/columns-picker.component.js +0 -82
  272. package/esm2015/lib/modules/columns-picker/columns-picker.module.js +0 -28
  273. package/esm2015/lib/modules/common/common-module.js +0 -35
  274. package/esm2015/lib/modules/common/directives/linkable-tab.directive.js +0 -82
  275. package/esm2015/lib/modules/common/directives/reactive-asterisk.directive.js +0 -31
  276. package/esm2015/lib/modules/common/directives/src-density.directive.js +0 -63
  277. package/esm2015/lib/modules/common/pipes/capitalize.pipe.js +0 -14
  278. package/esm2015/lib/modules/common/pipes/ellipsis.pipe.js +0 -10
  279. package/esm2015/lib/modules/common/pipes/enum.pipe.js +0 -24
  280. package/esm2015/lib/modules/common/pipes/swiss-date.pipe.js +0 -16
  281. package/esm2015/lib/modules/common/public-api.js +0 -14
  282. package/esm2015/lib/modules/common/services/memory-storage.js +0 -110
  283. package/esm2015/lib/modules/common/services/seo.service.js +0 -120
  284. package/esm2015/lib/modules/detail-header/detail-header.component.js +0 -63
  285. package/esm2015/lib/modules/detail-header/detail-header.module.js +0 -16
  286. package/esm2015/lib/modules/dialog-trigger/dialog-trigger.component.js +0 -68
  287. package/esm2015/lib/modules/dialog-trigger/dialog-trigger.module.js +0 -14
  288. package/esm2015/lib/modules/dropdown-components/abstract-association-select-component.directive.js +0 -96
  289. package/esm2015/lib/modules/dropdown-components/natural-dropdown-components.module.js +0 -51
  290. package/esm2015/lib/modules/dropdown-components/type-date/type-date.component.js +0 -123
  291. package/esm2015/lib/modules/dropdown-components/type-date-range/type-date-range.component.js +0 -128
  292. package/esm2015/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.js +0 -63
  293. package/esm2015/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.js +0 -31
  294. package/esm2015/lib/modules/dropdown-components/type-number/type-number.component.js +0 -99
  295. package/esm2015/lib/modules/dropdown-components/type-select/type-select.component.js +0 -161
  296. package/esm2015/lib/modules/dropdown-components/type-text/type-text.component.js +0 -53
  297. package/esm2015/lib/modules/file/abstract-file.js +0 -223
  298. package/esm2015/lib/modules/file/component/file.component.js +0 -133
  299. package/esm2015/lib/modules/file/file-drop.directive.js +0 -99
  300. package/esm2015/lib/modules/file/file-select.directive.js +0 -25
  301. package/esm2015/lib/modules/file/file.module.js +0 -19
  302. package/esm2015/lib/modules/file/file.service.js +0 -47
  303. package/esm2015/lib/modules/fixed-button/fixed-button.component.js +0 -23
  304. package/esm2015/lib/modules/fixed-button/fixed-button.module.js +0 -16
  305. package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.component.js +0 -31
  306. package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.module.js +0 -15
  307. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.js +0 -351
  308. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.js +0 -258
  309. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.js +0 -28
  310. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.js +0 -23
  311. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector.module.js +0 -46
  312. package/esm2015/lib/modules/icon/icon.component.js +0 -78
  313. package/esm2015/lib/modules/icon/icon.module.js +0 -25
  314. package/esm2015/lib/modules/matomo/matomo-module.module.js +0 -7
  315. package/esm2015/lib/modules/matomo/matomo.service.js +0 -106
  316. package/esm2015/lib/modules/panels/abstract-panel.js +0 -50
  317. package/esm2015/lib/modules/panels/panels.component.js +0 -26
  318. package/esm2015/lib/modules/panels/panels.module.js +0 -28
  319. package/esm2015/lib/modules/panels/panels.service.js +0 -331
  320. package/esm2015/lib/modules/relations/relations.component.js +0 -181
  321. package/esm2015/lib/modules/relations/relations.module.js +0 -33
  322. package/esm2015/lib/modules/search/dropdown-container/dropdown-container.component.js +0 -87
  323. package/esm2015/lib/modules/search/dropdown-container/dropdown.service.js +0 -95
  324. package/esm2015/lib/modules/search/facet-selector/facet-selector.component.js +0 -47
  325. package/esm2015/lib/modules/search/group/group.component.js +0 -39
  326. package/esm2015/lib/modules/search/input/input.component.js +0 -316
  327. package/esm2015/lib/modules/search/search/search.component.js +0 -71
  328. package/esm2015/lib/modules/search/search.module.js +0 -52
  329. package/esm2015/lib/modules/select/abstract-select.component.js +0 -176
  330. package/esm2015/lib/modules/select/select/select.component.js +0 -190
  331. package/esm2015/lib/modules/select/select-enum/select-enum.component.js +0 -34
  332. package/esm2015/lib/modules/select/select-hierarchic/select-hierarchic.component.js +0 -120
  333. package/esm2015/lib/modules/select/select.module.js +0 -39
  334. package/esm2015/lib/modules/sidenav/sidenav/sidenav.component.js +0 -12
  335. package/esm2015/lib/modules/sidenav/sidenav-container/sidenav-container.component.js +0 -79
  336. package/esm2015/lib/modules/sidenav/sidenav-content/sidenav-content.component.js +0 -13
  337. package/esm2015/lib/modules/sidenav/sidenav-stack.service.js +0 -50
  338. package/esm2015/lib/modules/sidenav/sidenav.module.js +0 -20
  339. package/esm2015/lib/modules/sidenav/sidenav.service.js +0 -199
  340. package/esm2015/lib/modules/stamp/stamp-module.module.js +0 -13
  341. package/esm2015/lib/modules/stamp/stamp.component.js +0 -13
  342. package/esm2015/lib/modules/table-button/table-button.component.js +0 -38
  343. package/esm2015/lib/modules/table-button/table-button.module.js +0 -16
  344. package/esm2015/lib/services/abstract-model.service.js +0 -509
  345. package/esm2015/lib/services/enum.service.js +0 -68
  346. package/esm2015/lib/services/link-mutation.service.js +0 -155
  347. package/esm2015/lib/services/persistence.service.js +0 -114
  348. package/esm2015/lib/services/swiss-parsing-date-adapter.service.js +0 -55
  349. package/fesm2015/ecodev-natural.js.map +0 -1
  350. package/lib/modules/common/directives/reactive-asterisk.directive.d.ts +0 -10
@@ -1,68 +0,0 @@
1
- import { Apollo, gql } from 'apollo-angular';
2
- import { Injectable } from '@angular/core';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "apollo-angular";
6
- const enumTypeQuery = gql `
7
- query EnumType($name: String!) {
8
- __type(name: $name) {
9
- __typename
10
- enumValues {
11
- name
12
- description
13
- }
14
- }
15
- }
16
- `;
17
- export class NaturalEnumService {
18
- constructor(apollo) {
19
- this.apollo = apollo;
20
- }
21
- /**
22
- * Return a list of observable enumerables considering the given name
23
- */
24
- get(name) {
25
- // Load possible action statuses
26
- return this.apollo
27
- .query({
28
- query: enumTypeQuery,
29
- variables: { name: name },
30
- fetchPolicy: 'cache-first',
31
- })
32
- .pipe(map(result => {
33
- const values = [];
34
- if (result.data.__type && result.data.__type.enumValues) {
35
- for (const enumValue of result.data.__type.enumValues) {
36
- values.push({
37
- value: enumValue.name,
38
- name: enumValue.description || '',
39
- });
40
- }
41
- }
42
- return values;
43
- }));
44
- }
45
- /**
46
- * Returns the enum user-friendly name, instead of its value.
47
- */
48
- getValueName(value, enumName) {
49
- return this.get(enumName).pipe(map(values => {
50
- for (const v of values) {
51
- if (v.value === value) {
52
- return v.name;
53
- }
54
- }
55
- return '';
56
- }));
57
- }
58
- }
59
- NaturalEnumService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalEnumService_Factory() { return new NaturalEnumService(i0.ɵɵinject(i1.Apollo)); }, token: NaturalEnumService, providedIn: "root" });
60
- NaturalEnumService.decorators = [
61
- { type: Injectable, args: [{
62
- providedIn: 'root',
63
- },] }
64
- ];
65
- NaturalEnumService.ctorParameters = () => [
66
- { type: Apollo }
67
- ];
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2VudW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFFbkMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVXhCLENBQUM7QUFvQkYsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixZQUE2QixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFL0M7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBWTtRQUNuQixnQ0FBZ0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNiLEtBQUssQ0FBVztZQUNiLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDdkIsV0FBVyxFQUFFLGFBQWE7U0FDN0IsQ0FBQzthQUNELElBQUksQ0FDRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7WUFDM0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JELEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO29CQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNSLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSTt3QkFDckIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRTtxQkFDcEMsQ0FBQyxDQUFDO2lCQUNOO2FBQ0o7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtnQkFDcEIsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtvQkFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUNqQjthQUNKO1lBRUQsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7OztZQWpESixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQW5DTyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcG9sbG8sIGdxbH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IGVudW1UeXBlUXVlcnkgPSBncWxgXG4gICAgcXVlcnkgRW51bVR5cGUoJG5hbWU6IFN0cmluZyEpIHtcbiAgICAgICAgX190eXBlKG5hbWU6ICRuYW1lKSB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lXG4gICAgICAgICAgICBlbnVtVmFsdWVzIHtcbiAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbmludGVyZmFjZSBFbnVtVHlwZSB7XG4gICAgX190eXBlOiBudWxsIHwge1xuICAgICAgICBfX3R5cGVuYW1lOiBzdHJpbmc7XG4gICAgICAgIGVudW1WYWx1ZXM6IG51bGwgfCBBcnJheTx7XG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogbnVsbCB8IHN0cmluZztcbiAgICAgICAgfT47XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW51bSB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxFbnVtU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcG9sbG86IEFwb2xsbykge31cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIGxpc3Qgb2Ygb2JzZXJ2YWJsZSBlbnVtZXJhYmxlcyBjb25zaWRlcmluZyB0aGUgZ2l2ZW4gbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJRW51bVtdPiB7XG4gICAgICAgIC8vIExvYWQgcG9zc2libGUgYWN0aW9uIHN0YXR1c2VzXG4gICAgICAgIHJldHVybiB0aGlzLmFwb2xsb1xuICAgICAgICAgICAgLnF1ZXJ5PEVudW1UeXBlPih7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGVudW1UeXBlUXVlcnksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7bmFtZTogbmFtZX0sXG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6ICdjYWNoZS1maXJzdCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlczogSUVudW1bXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRhdGEuX190eXBlICYmIHJlc3VsdC5kYXRhLl9fdHlwZS5lbnVtVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudW1WYWx1ZSBvZiByZXN1bHQuZGF0YS5fX3R5cGUuZW51bVZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVudW1WYWx1ZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBlbnVtVmFsdWUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBlbnVtIHVzZXItZnJpZW5kbHkgbmFtZSwgaW5zdGVhZCBvZiBpdHMgdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIGdldFZhbHVlTmFtZSh2YWx1ZTogc3RyaW5nLCBlbnVtTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGVudW1OYW1lKS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodi52YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2Lm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -1,155 +0,0 @@
1
- import { Apollo, gql } from 'apollo-angular';
2
- import { Injectable } from '@angular/core';
3
- import { clone } from 'lodash-es';
4
- import { forkJoin, of } from 'rxjs';
5
- import { map, switchMap } from 'rxjs/operators';
6
- import { upperCaseFirstLetter } from '../classes/utility';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "apollo-angular";
9
- /**
10
- * Query to get list of mutations
11
- */
12
- const queriesQuery = gql `
13
- query Mutations {
14
- __type(name: "Mutation") {
15
- fields {
16
- name
17
- args {
18
- name
19
- type {
20
- ofType {
21
- name
22
- }
23
- }
24
- }
25
- }
26
- }
27
- }
28
- `;
29
- export class NaturalLinkMutationService {
30
- constructor(apollo) {
31
- this.apollo = apollo;
32
- }
33
- /**
34
- * Link two objects together
35
- */
36
- link(obj1, obj2, otherName = null, variables = {}) {
37
- // clone prevents to affect the original reference
38
- const clonedVariables = clone(variables);
39
- return this.getMutation('link', obj1, obj2, otherName, clonedVariables).pipe(switchMap(mutation => this.execute(mutation)));
40
- }
41
- /**
42
- * Link many objects
43
- */
44
- linkMany(obj1, objects, otherName = null, variables = {}) {
45
- return forkJoin(objects.map(obj2 => this.link(obj1, obj2, otherName, variables)));
46
- }
47
- /**
48
- * Unlink two objects
49
- */
50
- unlink(obj1, obj2, otherName = null) {
51
- return this.getMutation('unlink', obj1, obj2, otherName).pipe(switchMap(mutation => this.execute(mutation)));
52
- }
53
- /**
54
- * Return the list of all available mutation names
55
- */
56
- getAllMutationNames() {
57
- if (this.allMutations) {
58
- return of(this.allMutations);
59
- }
60
- const mapArg = (arg) => {
61
- var _a, _b, _c;
62
- return {
63
- name: arg.name,
64
- type: ((_c = (_b = (_a = arg.type) === null || _a === void 0 ? void 0 : _a.ofType) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.replace(/ID$/, '')) || 'should-never-happen',
65
- };
66
- };
67
- return this.apollo
68
- .query({
69
- query: queriesQuery,
70
- fetchPolicy: 'cache-first',
71
- })
72
- .pipe(map(({ data }) => {
73
- if (data.__type && data.__type.fields) {
74
- this.allMutations = data.__type.fields
75
- .filter(v => v.name.match(/^(link|unlink)/))
76
- .map(v => {
77
- return {
78
- name: v.name,
79
- arg1: mapArg(v.args[0]),
80
- arg2: mapArg(v.args[1]),
81
- };
82
- });
83
- }
84
- else {
85
- this.allMutations = [];
86
- }
87
- return this.allMutations;
88
- }));
89
- }
90
- /**
91
- * Generate mutation using patterns and replacing variables
92
- */
93
- getMutation(action, obj1, obj2, otherName, variables = {}) {
94
- otherName = otherName ? upperCaseFirstLetter(otherName) : otherName;
95
- const mutationName = action + obj1.__typename + (otherName || obj2.__typename);
96
- const reversedMutationName = action + obj2.__typename + (otherName || obj1.__typename);
97
- return this.getAllMutationNames().pipe(map(allMutationNames => {
98
- const mutation = allMutationNames.find(mut => mut.name === mutationName) ||
99
- allMutationNames.find(mut => mut.name === reversedMutationName);
100
- if (mutation) {
101
- return this.buildTemplate(mutation, obj1, obj2, variables);
102
- }
103
- throw TypeError('API does not allow to ' + action + ' ' + obj1.__typename + ' and ' + obj2.__typename);
104
- }));
105
- }
106
- /**
107
- * Execute mutation
108
- */
109
- execute(mutation) {
110
- return this.apollo
111
- .mutate({
112
- mutation: gql(mutation),
113
- })
114
- .pipe(map(r => {
115
- this.apollo.client.reFetchObservableQueries();
116
- return r;
117
- }));
118
- }
119
- /**
120
- * Build the actual mutation string
121
- */
122
- buildTemplate(mutation, obj1, obj2, variables = {}) {
123
- let name1;
124
- let name2;
125
- if (obj1.__typename === mutation.arg1.type) {
126
- name1 = mutation.arg1.name;
127
- name2 = mutation.arg2.name;
128
- }
129
- else {
130
- name1 = mutation.arg2.name;
131
- name2 = mutation.arg1.name;
132
- }
133
- variables[name1] = obj1.id;
134
- variables[name2] = obj2.id;
135
- let serializedVariables = '';
136
- for (const key of Object.keys(variables)) {
137
- serializedVariables += key + ': ' + JSON.stringify(variables[key]) + ' ';
138
- }
139
- return `mutation linkAndUnlink {
140
- ${mutation.name}(${serializedVariables}) {
141
- id
142
- }
143
- }`;
144
- }
145
- }
146
- NaturalLinkMutationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalLinkMutationService_Factory() { return new NaturalLinkMutationService(i0.ɵɵinject(i1.Apollo)); }, token: NaturalLinkMutationService, providedIn: "root" });
147
- NaturalLinkMutationService.decorators = [
148
- { type: Injectable, args: [{
149
- providedIn: 'root',
150
- },] }
151
- ];
152
- NaturalLinkMutationService.ctorParameters = () => [
153
- { type: Apollo }
154
- ];
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1tdXRhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2xpbmstbXV0YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUMsUUFBUSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQnZCLENBQUM7QUF1Q0YsTUFBTSxPQUFPLDBCQUEwQjtJQU1uQyxZQUE2QixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFL0M7O09BRUc7SUFDSSxJQUFJLENBQ1AsSUFBb0IsRUFDcEIsSUFBb0IsRUFDcEIsWUFBMkIsSUFBSSxFQUMvQixZQUFxQixFQUFFO1FBRXZCLGtEQUFrRDtRQUNsRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQ3hFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENB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LEVBQUU7UUFFdkIsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN4QyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzlCO2FBQU07WUFDSCxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzlCO1FBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0IsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFM0IsSUFBSSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RDLG1CQUFtQixJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDNUU7UUFFRCxPQUFPO2NBQ0QsUUFBUSxDQUFDLElBQUksSUFBSSxtQkFBbUI7OztVQUd4QyxDQUFDO0lBQ1AsQ0FBQzs7OztZQXhLSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQW5FTyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcG9sbG8sIGdxbH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHtGZXRjaFJlc3VsdH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge2Nsb25lfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge3VwcGVyQ2FzZUZpcnN0TGV0dGVyfSBmcm9tICcuLi9jbGFzc2VzL3V0aWxpdHknO1xuXG4vKipcbiAqIFF1ZXJ5IHRvIGdldCBsaXN0IG9mIG11dGF0aW9uc1xuICovXG5jb25zdCBxdWVyaWVzUXVlcnkgPSBncWxgXG4gICAgcXVlcnkgTXV0YXRpb25zIHtcbiAgICAgICAgX190eXBlKG5hbWU6IFwiTXV0YXRpb25cIikge1xuICAgICAgICAgICAgZmllbGRzIHtcbiAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgYXJncyB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvZlR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbnR5cGUgSW50cm9zcGVjdGVkQXJnID0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiB7XG4gICAgICAgIG9mVHlwZTogbnVsbCB8IHtcbiAgICAgICAgICAgIG5hbWU6IG51bGwgfCBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgfTtcbn07XG5cbmludGVyZmFjZSBJbnRyb3NwZWN0ZWRNdXRhdGlvbnMge1xuICAgIF9fdHlwZTogbnVsbCB8IHtcbiAgICAgICAgZmllbGRzOiBudWxsIHwgQXJyYXk8e1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgYXJnczogQXJyYXk8SW50cm9zcGVjdGVkQXJnPjtcbiAgICAgICAgfT47XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rYWJsZU9iamVjdCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBfX3R5cGVuYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNdXRhdGlvbkFyZyB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE11dGF0aW9uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYXJnMTogTXV0YXRpb25Bcmc7XG4gICAgYXJnMjogTXV0YXRpb25Bcmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxMaW5rTXV0YXRpb25TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBSZWNlaXZlcyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbXV0YXRpb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhbGxNdXRhdGlvbnM/OiBNdXRhdGlvbltdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcG9sbG86IEFwb2xsbykge31cblxuICAgIC8qKlxuICAgICAqIExpbmsgdHdvIG9iamVjdHMgdG9nZXRoZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgbGluayhcbiAgICAgICAgb2JqMTogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG9iajI6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgICAgICB2YXJpYWJsZXM6IExpdGVyYWwgPSB7fSxcbiAgICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PHtpZDogc3RyaW5nfT4+IHtcbiAgICAgICAgLy8gY2xvbmUgcHJldmVudHMgdG8gYWZmZWN0IHRoZSBvcmlnaW5hbCByZWZlcmVuY2VcbiAgICAgICAgY29uc3QgY2xvbmVkVmFyaWFibGVzID0gY2xvbmUodmFyaWFibGVzKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNdXRhdGlvbignbGluaycsIG9iajEsIG9iajIsIG90aGVyTmFtZSwgY2xvbmVkVmFyaWFibGVzKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKG11dGF0aW9uID0+IHRoaXMuZXhlY3V0ZShtdXRhdGlvbikpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpbmsgbWFueSBvYmplY3RzXG4gICAgICovXG4gICAgcHVibGljIGxpbmtNYW55KFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqZWN0czogTGlua2FibGVPYmplY3RbXSxcbiAgICAgICAgb3RoZXJOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbiAgICAgICAgdmFyaWFibGVzOiBMaXRlcmFsID0ge30sXG4gICAgKTogT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdDx7aWQ6IHN0cmluZ30+W10+IHtcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKG9iamVjdHMubWFwKG9iajIgPT4gdGhpcy5saW5rKG9iajEsIG9iajIsIG90aGVyTmFtZSwgdmFyaWFibGVzKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVubGluayB0d28gb2JqZWN0c1xuICAgICAqL1xuICAgIHB1YmxpYyB1bmxpbmsoXG4gICAgICAgIG9iajE6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvYmoyOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb3RoZXJOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbiAgICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PHtpZDogc3RyaW5nfT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TXV0YXRpb24oJ3VubGluaycsIG9iajEsIG9iajIsIG90aGVyTmFtZSkucGlwZShzd2l0Y2hNYXAobXV0YXRpb24gPT4gdGhpcy5leGVjdXRlKG11dGF0aW9uKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIG11dGF0aW9uIG5hbWVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRBbGxNdXRhdGlvbk5hbWVzKCk6IE9ic2VydmFibGU8TXV0YXRpb25bXT4ge1xuICAgICAgICBpZiAodGhpcy5hbGxNdXRhdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmFsbE11dGF0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXBBcmcgPSAoYXJnOiBJbnRyb3NwZWN0ZWRBcmcpOiBNdXRhdGlvbkFyZyA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGFyZy5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IGFyZy50eXBlPy5vZlR5cGU/Lm5hbWU/LnJlcGxhY2UoL0lEJC8sICcnKSB8fCAnc2hvdWxkLW5ldmVyLWhhcHBlbicsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwb2xsb1xuICAgICAgICAgICAgLnF1ZXJ5PEludHJvc3BlY3RlZE11dGF0aW9ucz4oe1xuICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyaWVzUXVlcnksXG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6ICdjYWNoZS1maXJzdCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuX190eXBlICYmIGRhdGEuX190eXBlLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxNdXRhdGlvbnMgPSBkYXRhLl9fdHlwZS5maWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHYgPT4gdi5uYW1lLm1hdGNoKC9eKGxpbmt8dW5saW5rKS8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcxOiBtYXBBcmcodi5hcmdzWzBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzI6IG1hcEFyZyh2LmFyZ3NbMV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxNdXRhdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFsbE11dGF0aW9ucztcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGUgbXV0YXRpb24gdXNpbmcgcGF0dGVybnMgYW5kIHJlcGxhY2luZyB2YXJpYWJsZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldE11dGF0aW9uKFxuICAgICAgICBhY3Rpb246IHN0cmluZyxcbiAgICAgICAgb2JqMTogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG9iajI6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHZhcmlhYmxlczogTGl0ZXJhbCA9IHt9LFxuICAgICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIG90aGVyTmFtZSA9IG90aGVyTmFtZSA/IHVwcGVyQ2FzZUZpcnN0TGV0dGVyKG90aGVyTmFtZSkgOiBvdGhlck5hbWU7XG4gICAgICAgIGNvbnN0IG11dGF0aW9uTmFtZSA9IGFjdGlvbiArIG9iajEuX190eXBlbmFtZSArIChvdGhlck5hbWUgfHwgb2JqMi5fX3R5cGVuYW1lKTtcbiAgICAgICAgY29uc3QgcmV2ZXJzZWRNdXRhdGlvbk5hbWUgPSBhY3Rpb24gKyBvYmoyLl9fdHlwZW5hbWUgKyAob3RoZXJOYW1lIHx8IG9iajEuX190eXBlbmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsTXV0YXRpb25OYW1lcygpLnBpcGUoXG4gICAgICAgICAgICBtYXAoYWxsTXV0YXRpb25OYW1lcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXV0YXRpb24gPVxuICAgICAgICAgICAgICAgICAgICBhbGxNdXRhdGlvbk5hbWVzLmZpbmQobXV0ID0+IG11dC5uYW1lID09PSBtdXRhdGlvbk5hbWUpIHx8XG4gICAgICAgICAgICAgICAgICAgIGFsbE11dGF0aW9uTmFtZXMuZmluZChtdXQgPT4gbXV0Lm5hbWUgPT09IHJldmVyc2VkTXV0YXRpb25OYW1lKTtcblxuICAgICAgICAgICAgICAgIGlmIChtdXRhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZFRlbXBsYXRlKG11dGF0aW9uLCBvYmoxLCBvYmoyLCB2YXJpYWJsZXMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcignQVBJIGRvZXMgbm90IGFsbG93IHRvICcgKyBhY3Rpb24gKyAnICcgKyBvYmoxLl9fdHlwZW5hbWUgKyAnIGFuZCAnICsgb2JqMi5fX3R5cGVuYW1lKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGUgbXV0YXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIGV4ZWN1dGUobXV0YXRpb246IHN0cmluZyk6IE9ic2VydmFibGU8RmV0Y2hSZXN1bHQ8e2lkOiBzdHJpbmd9Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcG9sbG9cbiAgICAgICAgICAgIC5tdXRhdGU8e2lkOiBzdHJpbmd9Pih7XG4gICAgICAgICAgICAgICAgbXV0YXRpb246IGdxbChtdXRhdGlvbiksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwb2xsby5jbGllbnQucmVGZXRjaE9ic2VydmFibGVRdWVyaWVzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCdWlsZCB0aGUgYWN0dWFsIG11dGF0aW9uIHN0cmluZ1xuICAgICAqL1xuICAgIHByaXZhdGUgYnVpbGRUZW1wbGF0ZShcbiAgICAgICAgbXV0YXRpb246IE11dGF0aW9uLFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqMjogTGlua2FibGVPYmplY3QsXG4gICAgICAgIHZhcmlhYmxlczogTGl0ZXJhbCA9IHt9LFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGxldCBuYW1lMTtcbiAgICAgICAgbGV0IG5hbWUyO1xuICAgICAgICBpZiAob2JqMS5fX3R5cGVuYW1lID09PSBtdXRhdGlvbi5hcmcxLnR5cGUpIHtcbiAgICAgICAgICAgIG5hbWUxID0gbXV0YXRpb24uYXJnMS5uYW1lO1xuICAgICAgICAgICAgbmFtZTIgPSBtdXRhdGlvbi5hcmcyLm5hbWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuYW1lMSA9IG11dGF0aW9uLmFyZzIubmFtZTtcbiAgICAgICAgICAgIG5hbWUyID0gbXV0YXRpb24uYXJnMS5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIHZhcmlhYmxlc1tuYW1lMV0gPSBvYmoxLmlkO1xuICAgICAgICB2YXJpYWJsZXNbbmFtZTJdID0gb2JqMi5pZDtcblxuICAgICAgICBsZXQgc2VyaWFsaXplZFZhcmlhYmxlcyA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgICAgICAgICBzZXJpYWxpemVkVmFyaWFibGVzICs9IGtleSArICc6ICcgKyBKU09OLnN0cmluZ2lmeSh2YXJpYWJsZXNba2V5XSkgKyAnICc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYG11dGF0aW9uIGxpbmtBbmRVbmxpbmsge1xuICAgICAgICAgICAgJHttdXRhdGlvbi5uYW1lfSgke3NlcmlhbGl6ZWRWYXJpYWJsZXN9KSB7XG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfWA7XG4gICAgfVxufVxuIl19
@@ -1,114 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { clone } from 'lodash-es';
4
- import { SESSION_STORAGE } from '../modules/common/services/memory-storage';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
7
- import * as i2 from "../modules/common/services/memory-storage";
8
- export class NaturalPersistenceService {
9
- constructor(router, sessionStorage) {
10
- this.router = router;
11
- this.sessionStorage = sessionStorage;
12
- }
13
- /**
14
- * Persist in url and local storage the given value with the given key.
15
- * When stored in storage, we need more "key" to identify the controller.
16
- */
17
- persist(key, value, route, storageKey, navigationExtras) {
18
- this.persistInStorage(key, value, storageKey);
19
- return this.persistInUrl(key, value, route, navigationExtras);
20
- }
21
- /**
22
- * Return object with persisted data in url or in session storage
23
- * Url has priority over session storage because of url sharing. When url is provided, session storage is ignored.
24
- * Url and storage are synced when arriving in a component :
25
- * - When loading with url parameters, storage is updated to stay synced
26
- * - When loading without url, but with storage data, the url is updated
27
- */
28
- get(key, route, storageKey) {
29
- // From url
30
- let params = this.getFromUrl(key, route);
31
- if (!this.isFalseyValue(params)) {
32
- this.persistInStorage(key, params, storageKey);
33
- return params;
34
- }
35
- // From storage
36
- params = this.getFromStorage(key, storageKey);
37
- if (!this.isFalseyValue(params)) {
38
- this.persistInUrl(key, params, route);
39
- return params;
40
- }
41
- return null;
42
- }
43
- /**
44
- * Get given key from the url parameters
45
- */
46
- getFromUrl(key, route) {
47
- const value = route.snapshot.paramMap.get(key);
48
- if (value) {
49
- try {
50
- return JSON.parse(value);
51
- }
52
- catch (e) { }
53
- }
54
- return null;
55
- }
56
- /**
57
- * Add/override given pair key-value in the url
58
- * Always JSON.stringify() the given value
59
- * If the value is falsey, the pair key-value is removed from the url.
60
- */
61
- persistInUrl(key, value, route, navigationExtras) {
62
- const params = clone(route.snapshot.url[route.snapshot.url.length - 1].parameters);
63
- if (this.isFalseyValue(value)) {
64
- delete params[key];
65
- }
66
- else {
67
- params[key] = JSON.stringify(value);
68
- }
69
- navigationExtras = Object.assign(navigationExtras || {}, { relativeTo: route });
70
- return this.router.navigate(['.', params], navigationExtras);
71
- }
72
- getFromStorage(key, storageKey) {
73
- const value = this.sessionStorage.getItem(this.getStorageKey(key, storageKey));
74
- if (value) {
75
- try {
76
- return JSON.parse(value);
77
- }
78
- catch (e) { }
79
- }
80
- return null;
81
- }
82
- /**
83
- * Store value in session storage.
84
- * If value is falsy, the entry is removed
85
- */
86
- persistInStorage(key, value, storageKey) {
87
- if (this.isFalseyValue(value)) {
88
- this.sessionStorage.removeItem(this.getStorageKey(key, storageKey));
89
- }
90
- else {
91
- this.sessionStorage.setItem(this.getStorageKey(key, storageKey), JSON.stringify(value));
92
- }
93
- }
94
- getStorageKey(key, storageKey) {
95
- return storageKey + '-' + key;
96
- }
97
- // Returns if the given value is falsey
98
- // Falsey values are : null, undefined and empty string.
99
- // This cause usually the parameter to be removed from url/storage instead of being stored with no value. Url would be polluted.
100
- isFalseyValue(value) {
101
- return value == null || value === ''; // == means null or undefined;
102
- }
103
- }
104
- NaturalPersistenceService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalPersistenceService_Factory() { return new NaturalPersistenceService(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.SESSION_STORAGE)); }, token: NaturalPersistenceService, providedIn: "root" });
105
- NaturalPersistenceService.decorators = [
106
- { type: Injectable, args: [{
107
- providedIn: 'root',
108
- },] }
109
- ];
110
- NaturalPersistenceService.ctorParameters = () => [
111
- { type: Router },
112
- { type: undefined, decorators: [{ type: Inject, args: [SESSION_STORAGE,] }] }
113
- ];
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9zZXJ2aWNlcy9wZXJzaXN0ZW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQWlCLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7O0FBSzFGLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsWUFDcUIsTUFBYyxFQUNXLGNBQThCO1FBRHZELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDekUsQ0FBQztJQUVKOzs7T0FHRztJQUNJLE9BQU8sQ0FDVixHQUFXLEVBQ1gsS0FBVSxFQUNWLEtBQXFCLEVBQ3JCLFVBQWtCLEVBQ2xCLGdCQUFtQztRQUVuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFxQixFQUFFLFVBQWtCO1FBQzdELFdBQVc7UUFDWCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsZ0JB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RyxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUVELHVDQUF1QztJQUN2Qyx3REFBd0Q7SUFDeEQsZ0lBQWdJO0lBQ3hILGFBQWEsQ0FBQyxLQUFVO1FBQzVCLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBQ3hFLENBQUM7Ozs7WUF6SEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFOeUMsTUFBTTs0Q0FVdkMsTUFBTSxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2Nsb25lfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtOYXR1cmFsU3RvcmFnZSwgU0VTU0lPTl9TVE9SQUdFfSBmcm9tICcuLi9tb2R1bGVzL2NvbW1vbi9zZXJ2aWNlcy9tZW1vcnktc3RvcmFnZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxQZXJzaXN0ZW5jZVNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KFNFU1NJT05fU1RPUkFHRSkgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZTogTmF0dXJhbFN0b3JhZ2UsXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogUGVyc2lzdCBpbiB1cmwgYW5kIGxvY2FsIHN0b3JhZ2UgdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIGdpdmVuIGtleS5cbiAgICAgKiBXaGVuIHN0b3JlZCBpbiBzdG9yYWdlLCB3ZSBuZWVkIG1vcmUgXCJrZXlcIiB0byBpZGVudGlmeSB0aGUgY29udHJvbGxlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGVyc2lzdChcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiBhbnksXG4gICAgICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgc3RvcmFnZUtleTogc3RyaW5nLFxuICAgICAgICBuYXZpZ2F0aW9uRXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyxcbiAgICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5wZXJzaXN0SW5TdG9yYWdlKGtleSwgdmFsdWUsIHN0b3JhZ2VLZXkpO1xuICAgICAgICByZXR1cm4gdGhpcy5wZXJzaXN0SW5Vcmwoa2V5LCB2YWx1ZSwgcm91dGUsIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBvYmplY3Qgd2l0aCBwZXJzaXN0ZWQgZGF0YSBpbiB1cmwgb3IgaW4gc2Vzc2lvbiBzdG9yYWdlXG4gICAgICogVXJsIGhhcyBwcmlvcml0eSBvdmVyIHNlc3Npb24gc3RvcmFnZSBiZWNhdXNlIG9mIHVybCBzaGFyaW5nLiBXaGVuIHVybCBpcyBwcm92aWRlZCwgc2Vzc2lvbiBzdG9yYWdlIGlzIGlnbm9yZWQuXG4gICAgICogVXJsIGFuZCBzdG9yYWdlIGFyZSBzeW5jZWQgd2hlbiBhcnJpdmluZyBpbiBhIGNvbXBvbmVudCA6XG4gICAgICogIC0gV2hlbiBsb2FkaW5nIHdpdGggdXJsIHBhcmFtZXRlcnMsIHN0b3JhZ2UgaXMgdXBkYXRlZCB0byBzdGF5IHN5bmNlZFxuICAgICAqICAtIFdoZW4gbG9hZGluZyB3aXRob3V0IHVybCwgYnV0IHdpdGggc3RvcmFnZSBkYXRhLCB0aGUgdXJsIGlzIHVwZGF0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nLCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHN0b3JhZ2VLZXk6IHN0cmluZyk6IGFueSB8IG51bGwge1xuICAgICAgICAvLyBGcm9tIHVybFxuICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5nZXRGcm9tVXJsKGtleSwgcm91dGUpO1xuICAgICAgICBpZiAoIXRoaXMuaXNGYWxzZXlWYWx1ZShwYXJhbXMpKSB7XG4gICAgICAgICAgICB0aGlzLnBlcnNpc3RJblN0b3JhZ2Uoa2V5LCBwYXJhbXMsIHN0b3JhZ2VLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZyb20gc3RvcmFnZVxuICAgICAgICBwYXJhbXMgPSB0aGlzLmdldEZyb21TdG9yYWdlKGtleSwgc3RvcmFnZUtleSk7XG4gICAgICAgIGlmICghdGhpcy5pc0ZhbHNleVZhbHVlKHBhcmFtcykpIHtcbiAgICAgICAgICAgIHRoaXMucGVyc2lzdEluVXJsKGtleSwgcGFyYW1zLCByb3V0ZSk7XG4gICAgICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGdpdmVuIGtleSBmcm9tIHRoZSB1cmwgcGFyYW1ldGVyc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGcm9tVXJsKGtleTogc3RyaW5nLCByb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBhbnkgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoa2V5KTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZC9vdmVycmlkZSBnaXZlbiBwYWlyIGtleS12YWx1ZSBpbiB0aGUgdXJsXG4gICAgICogQWx3YXlzIEpTT04uc3RyaW5naWZ5KCkgdGhlIGdpdmVuIHZhbHVlXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNleSwgdGhlIHBhaXIga2V5LXZhbHVlIGlzIHJlbW92ZWQgZnJvbSB0aGUgdXJsLlxuICAgICAqL1xuICAgIHB1YmxpYyBwZXJzaXN0SW5VcmwoXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICB2YWx1ZTogYW55LFxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBjbG9uZShyb3V0ZS5zbmFwc2hvdC51cmxbcm91dGUuc25hcHNob3QudXJsLmxlbmd0aCAtIDFdLnBhcmFtZXRlcnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRmFsc2V5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXMgPSBPYmplY3QuYXNzaWduKG5hdmlnYXRpb25FeHRyYXMgfHwge30sIHtyZWxhdGl2ZVRvOiByb3V0ZX0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nLCBwYXJhbXNdLCBuYXZpZ2F0aW9uRXh0cmFzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RnJvbVN0b3JhZ2Uoa2V5OiBzdHJpbmcsIHN0b3JhZ2VLZXk6IHN0cmluZyk6IGFueSB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoa2V5LCBzdG9yYWdlS2V5KSk7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB2YWx1ZSBpbiBzZXNzaW9uIHN0b3JhZ2UuXG4gICAgICogSWYgdmFsdWUgaXMgZmFsc3ksIHRoZSBlbnRyeSBpcyByZW1vdmVkXG4gICAgICovXG4gICAgcHVibGljIHBlcnNpc3RJblN0b3JhZ2Uoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHN0b3JhZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0ZhbHNleVZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleShrZXksIHN0b3JhZ2VLZXkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoa2V5LCBzdG9yYWdlS2V5KSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RvcmFnZUtleShrZXk6IHN0cmluZywgc3RvcmFnZUtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0b3JhZ2VLZXkgKyAnLScgKyBrZXk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgZmFsc2V5XG4gICAgLy8gRmFsc2V5IHZhbHVlcyBhcmUgOiBudWxsLCB1bmRlZmluZWQgYW5kIGVtcHR5IHN0cmluZy5cbiAgICAvLyBUaGlzIGNhdXNlIHVzdWFsbHkgdGhlIHBhcmFtZXRlciB0byBiZSByZW1vdmVkIGZyb20gdXJsL3N0b3JhZ2UgaW5zdGVhZCBvZiBiZWluZyBzdG9yZWQgd2l0aCBubyB2YWx1ZS4gVXJsIHdvdWxkIGJlIHBvbGx1dGVkLlxuICAgIHByaXZhdGUgaXNGYWxzZXlWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJzsgLy8gPT0gbWVhbnMgbnVsbCBvciB1bmRlZmluZWQ7XG4gICAgfVxufVxuIl19
@@ -1,55 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { NativeDateAdapter } from '@angular/material/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/core";
5
- import * as i2 from "@angular/cdk/platform";
6
- export class NaturalSwissParsingDateAdapter extends NativeDateAdapter {
7
- /**
8
- * Parse commonly accepted swiss format, such as:
9
- *
10
- * - 24.12.2018
11
- * - 1.4.18
12
- * - 2018-12-24
13
- */
14
- parse(value) {
15
- if (typeof value === 'number') {
16
- return new Date(value);
17
- }
18
- if (typeof value === 'string') {
19
- let m = value.match(/(\d{1,2})\.(\d{1,2})\.(\d{4}|\d{2})/);
20
- if (m) {
21
- let year = +m[3];
22
- // Assume year 2000 if only two digits
23
- if (year < 100) {
24
- year += 2000;
25
- }
26
- return this.createDateIfValid(year, +m[2], +m[1]);
27
- }
28
- // Attempt strict ISO format
29
- m = value.match(/(\d{4})-(\d{2})-(\d{2})/);
30
- if (m) {
31
- return this.createDateIfValid(+m[1], +m[2], +m[3]);
32
- }
33
- }
34
- return null;
35
- }
36
- createDateIfValid(year, month, date) {
37
- month = month - 1;
38
- if (month >= 0 && month <= 11 && date >= 1 && date <= 31) {
39
- return this.createDate(year, month, date);
40
- }
41
- return null;
42
- }
43
- getFirstDayOfWeek() {
44
- // Always starts on Monday, even though it is not true for Canada, U.S., Mexico and many more
45
- // Also see https://github.com/tc39/ecma402/issues/6
46
- return 1;
47
- }
48
- }
49
- NaturalSwissParsingDateAdapter.ɵprov = i0.ɵɵdefineInjectable({ factory: function NaturalSwissParsingDateAdapter_Factory() { return new NaturalSwissParsingDateAdapter(i0.ɵɵinject(i1.MAT_DATE_LOCALE, 8), i0.ɵɵinject(i2.Platform)); }, token: NaturalSwissParsingDateAdapter, providedIn: "root" });
50
- NaturalSwissParsingDateAdapter.decorators = [
51
- { type: Injectable, args: [{
52
- providedIn: 'root',
53
- },] }
54
- ];
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpc3MtcGFyc2luZy1kYXRlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9zZXJ2aWNlcy9zd2lzcy1wYXJzaW5nLWRhdGUtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFLekQsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQUNqRTs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsS0FBVTtRQUNuQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxFQUFFO2dCQUNILElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVqQixzQ0FBc0M7Z0JBQ3RDLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRTtvQkFDWixJQUFJLElBQUksSUFBSSxDQUFDO2lCQUNoQjtnQkFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyRDtZQUVELDRCQUE0QjtZQUM1QixDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxFQUFFO2dCQUNILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEQ7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLElBQVk7UUFDL0QsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ3RELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzdDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQiw2RkFBNkY7UUFDN0Ysb0RBQW9EO1FBQ3BELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQzs7OztZQXBESixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXRpdmVEYXRlQWRhcHRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxTd2lzc1BhcnNpbmdEYXRlQWRhcHRlciBleHRlbmRzIE5hdGl2ZURhdGVBZGFwdGVyIHtcbiAgICAvKipcbiAgICAgKiBQYXJzZSBjb21tb25seSBhY2NlcHRlZCBzd2lzcyBmb3JtYXQsIHN1Y2ggYXM6XG4gICAgICpcbiAgICAgKiAtIDI0LjEyLjIwMThcbiAgICAgKiAtIDEuNC4xOFxuICAgICAqIC0gMjAxOC0xMi0yNFxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJzZSh2YWx1ZTogYW55KTogRGF0ZSB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgbSA9IHZhbHVlLm1hdGNoKC8oXFxkezEsMn0pXFwuKFxcZHsxLDJ9KVxcLihcXGR7NH18XFxkezJ9KS8pO1xuICAgICAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICAgICAgICBsZXQgeWVhciA9ICttWzNdO1xuXG4gICAgICAgICAgICAgICAgLy8gQXNzdW1lIHllYXIgMjAwMCBpZiBvbmx5IHR3byBkaWdpdHNcbiAgICAgICAgICAgICAgICBpZiAoeWVhciA8IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICB5ZWFyICs9IDIwMDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZUlmVmFsaWQoeWVhciwgK21bMl0sICttWzFdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXR0ZW1wdCBzdHJpY3QgSVNPIGZvcm1hdFxuICAgICAgICAgICAgbSA9IHZhbHVlLm1hdGNoKC8oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KS8pO1xuICAgICAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlSWZWYWxpZCgrbVsxXSwgK21bMl0sICttWzNdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGF0ZUlmVmFsaWQoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBEYXRlIHwgbnVsbCB7XG4gICAgICAgIG1vbnRoID0gbW9udGggLSAxO1xuICAgICAgICBpZiAobW9udGggPj0gMCAmJiBtb250aCA8PSAxMSAmJiBkYXRlID49IDEgJiYgZGF0ZSA8PSAzMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gQWx3YXlzIHN0YXJ0cyBvbiBNb25kYXksIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCB0cnVlIGZvciBDYW5hZGEsIFUuUy4sIE1leGljbyBhbmQgbWFueSBtb3JlXG4gICAgICAgIC8vIEFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWE0MDIvaXNzdWVzLzZcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxufVxuIl19