@ecodev/natural 41.3.0 → 42.0.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 (348) 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 +161 -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 +187 -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 +54 -0
  34. package/esm2020/lib/modules/common/directives/linkable-tab.directive.mjs +79 -0
  35. package/esm2020/lib/modules/common/directives/reactive-asterisk.directive.mjs +33 -0
  36. package/esm2020/lib/modules/common/directives/src-density.directive.mjs +62 -0
  37. package/esm2020/lib/modules/common/pipes/capitalize.pipe.mjs +18 -0
  38. package/esm2020/lib/modules/common/pipes/ellipsis.pipe.mjs +14 -0
  39. package/esm2020/lib/modules/common/pipes/enum.pipe.mjs +25 -0
  40. package/esm2020/lib/modules/common/pipes/swiss-date.pipe.mjs +20 -0
  41. package/{esm2015/lib/modules/common/public-api.js → esm2020/lib/modules/common/public-api.mjs} +0 -0
  42. package/esm2020/lib/modules/common/services/memory-storage.mjs +112 -0
  43. package/esm2020/lib/modules/common/services/seo.service.mjs +114 -0
  44. package/esm2020/lib/modules/detail-header/detail-header.component.mjs +76 -0
  45. package/esm2020/lib/modules/detail-header/detail-header.module.mjs +21 -0
  46. package/{esm2015/lib/modules/detail-header/public-api.js → esm2020/lib/modules/detail-header/public-api.mjs} +0 -0
  47. package/esm2020/lib/modules/dialog-trigger/dialog-trigger.component.mjs +69 -0
  48. package/esm2020/lib/modules/dialog-trigger/dialog-trigger.module.mjs +19 -0
  49. package/{esm2015/lib/modules/dialog-trigger/public-api.js → esm2020/lib/modules/dialog-trigger/public-api.mjs} +0 -0
  50. package/esm2020/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +98 -0
  51. package/esm2020/lib/modules/dropdown-components/natural-dropdown-components.module.mjs +92 -0
  52. package/{esm2015/lib/modules/dropdown-components/public-api.js → esm2020/lib/modules/dropdown-components/public-api.mjs} +0 -0
  53. package/esm2020/lib/modules/dropdown-components/type-date/type-date.component.mjs +133 -0
  54. package/esm2020/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +137 -0
  55. package/esm2020/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +69 -0
  56. package/esm2020/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +38 -0
  57. package/esm2020/lib/modules/dropdown-components/type-number/type-number.component.mjs +104 -0
  58. package/esm2020/lib/modules/dropdown-components/type-select/type-select.component.mjs +169 -0
  59. package/esm2020/lib/modules/dropdown-components/type-text/type-text.component.mjs +57 -0
  60. package/{esm2015/lib/modules/dropdown-components/types.js → esm2020/lib/modules/dropdown-components/types.mjs} +0 -0
  61. package/{esm2015/lib/modules/dropdown-components/utils.js → esm2020/lib/modules/dropdown-components/utils.mjs} +0 -0
  62. package/esm2020/lib/modules/file/abstract-file.mjs +231 -0
  63. package/esm2020/lib/modules/file/component/file.component.mjs +143 -0
  64. package/esm2020/lib/modules/file/file-drop.directive.mjs +110 -0
  65. package/esm2020/lib/modules/file/file-select.directive.mjs +28 -0
  66. package/esm2020/lib/modules/file/file.module.mjs +24 -0
  67. package/esm2020/lib/modules/file/file.service.mjs +48 -0
  68. package/{esm2015/lib/modules/file/public-api.js → esm2020/lib/modules/file/public-api.mjs} +0 -0
  69. package/{esm2015/lib/modules/file/types.js → esm2020/lib/modules/file/types.mjs} +0 -0
  70. package/{esm2015/lib/modules/file/utils.js → esm2020/lib/modules/file/utils.mjs} +3 -4
  71. package/esm2020/lib/modules/fixed-button/fixed-button.component.mjs +27 -0
  72. package/esm2020/lib/modules/fixed-button/fixed-button.module.mjs +21 -0
  73. package/{esm2015/lib/modules/fixed-button/public-api.js → esm2020/lib/modules/fixed-button/public-api.mjs} +0 -0
  74. package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +36 -0
  75. package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.module.mjs +20 -0
  76. package/{esm2015/lib/modules/fixed-button-detail/public-api.js → esm2020/lib/modules/fixed-button-detail/public-api.mjs} +0 -0
  77. package/{esm2015/lib/modules/hierarchic-selector/classes/flat-node.js → esm2020/lib/modules/hierarchic-selector/classes/flat-node.mjs} +1 -1
  78. package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs} +0 -0
  79. package/{esm2015/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.js → esm2020/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs} +0 -0
  80. package/{esm2015/lib/modules/hierarchic-selector/classes/model-node.js → esm2020/lib/modules/hierarchic-selector/classes/model-node.mjs} +1 -1
  81. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +364 -0
  82. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +258 -0
  83. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +31 -0
  84. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +23 -0
  85. package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector.module.mjs +81 -0
  86. package/{esm2015/lib/modules/hierarchic-selector/public-api.js → esm2020/lib/modules/hierarchic-selector/public-api.mjs} +0 -0
  87. package/esm2020/lib/modules/icon/icon.component.mjs +92 -0
  88. package/esm2020/lib/modules/icon/icon.module.mjs +30 -0
  89. package/{esm2015/lib/modules/icon/public-api.js → esm2020/lib/modules/icon/public-api.mjs} +0 -0
  90. package/esm2020/lib/modules/matomo/matomo-module.module.mjs +12 -0
  91. package/esm2020/lib/modules/matomo/matomo.service.mjs +105 -0
  92. package/{esm2015/lib/modules/matomo/public-api.js → esm2020/lib/modules/matomo/public-api.mjs} +0 -0
  93. package/esm2020/lib/modules/panels/abstract-panel.mjs +56 -0
  94. 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
  95. package/esm2020/lib/modules/panels/panels.component.mjs +26 -0
  96. package/esm2020/lib/modules/panels/panels.module.mjs +33 -0
  97. package/esm2020/lib/modules/panels/panels.service.mjs +325 -0
  98. package/{esm2015/lib/modules/panels/panels.urlmatcher.js → esm2020/lib/modules/panels/panels.urlmatcher.mjs} +0 -0
  99. package/{esm2015/lib/modules/panels/public-api.js → esm2020/lib/modules/panels/public-api.mjs} +0 -0
  100. package/{esm2015/lib/modules/panels/types.js → esm2020/lib/modules/panels/types.mjs} +0 -0
  101. package/{esm2015/lib/modules/relations/public-api.js → esm2020/lib/modules/relations/public-api.mjs} +0 -0
  102. package/esm2020/lib/modules/relations/relations.component.mjs +198 -0
  103. package/esm2020/lib/modules/relations/relations.module.mjs +58 -0
  104. package/{esm2015/lib/modules/search/classes/graphql-doctrine.js → esm2020/lib/modules/search/classes/graphql-doctrine.mjs} +0 -0
  105. package/{esm2015/lib/modules/search/classes/graphql-doctrine.types.js → esm2020/lib/modules/search/classes/graphql-doctrine.types.mjs} +0 -0
  106. package/{esm2015/lib/modules/search/classes/transformers.js → esm2020/lib/modules/search/classes/transformers.mjs} +0 -0
  107. package/{esm2015/lib/modules/search/classes/url.js → esm2020/lib/modules/search/classes/url.mjs} +0 -0
  108. package/{esm2015/lib/modules/search/classes/utils.js → esm2020/lib/modules/search/classes/utils.mjs} +0 -0
  109. package/{esm2015/lib/modules/search/dropdown-container/dropdown-container-animations.js → esm2020/lib/modules/search/dropdown-container/dropdown-container-animations.mjs} +0 -0
  110. package/esm2020/lib/modules/search/dropdown-container/dropdown-container.component.mjs +88 -0
  111. package/{esm2015/lib/modules/search/dropdown-container/dropdown-ref.js → esm2020/lib/modules/search/dropdown-container/dropdown-ref.mjs} +1 -1
  112. package/esm2020/lib/modules/search/dropdown-container/dropdown.service.mjs +93 -0
  113. package/esm2020/lib/modules/search/facet-selector/facet-selector.component.mjs +50 -0
  114. package/esm2020/lib/modules/search/group/group.component.mjs +45 -0
  115. package/esm2020/lib/modules/search/input/input.component.mjs +328 -0
  116. package/{esm2015/lib/modules/search/public-api.js → esm2020/lib/modules/search/public-api.mjs} +0 -0
  117. package/esm2020/lib/modules/search/search/search.component.mjs +78 -0
  118. package/esm2020/lib/modules/search/search.module.mjs +84 -0
  119. package/{esm2015/lib/modules/search/types/dropdown-component.js → esm2020/lib/modules/search/types/dropdown-component.mjs} +0 -0
  120. package/{esm2015/lib/modules/search/types/facet.js → esm2020/lib/modules/search/types/facet.mjs} +0 -0
  121. package/{esm2015/lib/modules/search/types/values.js → esm2020/lib/modules/search/types/values.mjs} +0 -0
  122. package/esm2020/lib/modules/select/abstract-select.component.mjs +186 -0
  123. package/{esm2015/lib/modules/select/public-api.js → esm2020/lib/modules/select/public-api.mjs} +0 -0
  124. package/esm2020/lib/modules/select/select/select.component.mjs +208 -0
  125. package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +42 -0
  126. package/esm2020/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +128 -0
  127. package/esm2020/lib/modules/select/select.module.mjs +68 -0
  128. package/{esm2015/lib/modules/sidenav/public-api.js → esm2020/lib/modules/sidenav/public-api.mjs} +0 -0
  129. package/esm2020/lib/modules/sidenav/sidenav/sidenav.component.mjs +15 -0
  130. package/esm2020/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +87 -0
  131. package/esm2020/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +12 -0
  132. package/esm2020/lib/modules/sidenav/sidenav-stack.service.mjs +52 -0
  133. package/esm2020/lib/modules/sidenav/sidenav.module.mjs +25 -0
  134. package/esm2020/lib/modules/sidenav/sidenav.service.mjs +195 -0
  135. package/{esm2015/lib/modules/stamp/public-api.js → esm2020/lib/modules/stamp/public-api.mjs} +0 -0
  136. package/esm2020/lib/modules/stamp/stamp-module.module.mjs +18 -0
  137. package/esm2020/lib/modules/stamp/stamp.component.mjs +14 -0
  138. package/{esm2015/lib/modules/table-button/public-api.js → esm2020/lib/modules/table-button/public-api.mjs} +0 -0
  139. package/esm2020/lib/modules/table-button/table-button.component.mjs +48 -0
  140. package/esm2020/lib/modules/table-button/table-button.module.mjs +21 -0
  141. package/esm2020/lib/services/abstract-model.service.mjs +509 -0
  142. package/esm2020/lib/services/enum.service.mjs +67 -0
  143. package/esm2020/lib/services/link-mutation.service.mjs +153 -0
  144. package/esm2020/lib/services/persistence.service.mjs +113 -0
  145. package/esm2020/lib/services/swiss-parsing-date-adapter.service.mjs +55 -0
  146. package/{esm2015/lib/types/types.js → esm2020/lib/types/types.mjs} +0 -0
  147. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  148. package/fesm2015/{ecodev-natural.js → ecodev-natural.mjs} +2791 -2361
  149. package/fesm2015/ecodev-natural.mjs.map +1 -0
  150. package/fesm2020/ecodev-natural.mjs +10506 -0
  151. package/fesm2020/ecodev-natural.mjs.map +1 -0
  152. package/lib/classes/abstract-controller.d.ts +3 -0
  153. package/lib/classes/abstract-detail.d.ts +3 -0
  154. package/lib/classes/abstract-editable-list.d.ts +3 -0
  155. package/lib/classes/abstract-list.d.ts +3 -0
  156. package/lib/classes/abstract-navigable-list.d.ts +3 -0
  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 +3 -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 +16 -0
  168. package/lib/modules/common/directives/linkable-tab.directive.d.ts +3 -0
  169. package/lib/modules/common/directives/reactive-asterisk.directive.d.ts +3 -0
  170. package/lib/modules/common/directives/src-density.directive.d.ts +3 -0
  171. package/lib/modules/common/pipes/capitalize.pipe.d.ts +3 -0
  172. package/lib/modules/common/pipes/ellipsis.pipe.d.ts +3 -0
  173. package/lib/modules/common/pipes/enum.pipe.d.ts +3 -0
  174. package/lib/modules/common/pipes/swiss-date.pipe.d.ts +3 -0
  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 +3 -0
  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/services/memory-storage.js +0 -110
  282. package/esm2015/lib/modules/common/services/seo.service.js +0 -120
  283. package/esm2015/lib/modules/detail-header/detail-header.component.js +0 -63
  284. package/esm2015/lib/modules/detail-header/detail-header.module.js +0 -16
  285. package/esm2015/lib/modules/dialog-trigger/dialog-trigger.component.js +0 -68
  286. package/esm2015/lib/modules/dialog-trigger/dialog-trigger.module.js +0 -14
  287. package/esm2015/lib/modules/dropdown-components/abstract-association-select-component.directive.js +0 -96
  288. package/esm2015/lib/modules/dropdown-components/natural-dropdown-components.module.js +0 -51
  289. package/esm2015/lib/modules/dropdown-components/type-date/type-date.component.js +0 -123
  290. package/esm2015/lib/modules/dropdown-components/type-date-range/type-date-range.component.js +0 -128
  291. package/esm2015/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.js +0 -63
  292. package/esm2015/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.js +0 -31
  293. package/esm2015/lib/modules/dropdown-components/type-number/type-number.component.js +0 -99
  294. package/esm2015/lib/modules/dropdown-components/type-select/type-select.component.js +0 -161
  295. package/esm2015/lib/modules/dropdown-components/type-text/type-text.component.js +0 -53
  296. package/esm2015/lib/modules/file/abstract-file.js +0 -223
  297. package/esm2015/lib/modules/file/component/file.component.js +0 -133
  298. package/esm2015/lib/modules/file/file-drop.directive.js +0 -99
  299. package/esm2015/lib/modules/file/file-select.directive.js +0 -25
  300. package/esm2015/lib/modules/file/file.module.js +0 -19
  301. package/esm2015/lib/modules/file/file.service.js +0 -47
  302. package/esm2015/lib/modules/fixed-button/fixed-button.component.js +0 -23
  303. package/esm2015/lib/modules/fixed-button/fixed-button.module.js +0 -16
  304. package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.component.js +0 -31
  305. package/esm2015/lib/modules/fixed-button-detail/fixed-button-detail.module.js +0 -15
  306. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.js +0 -351
  307. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.js +0 -258
  308. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.js +0 -28
  309. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.js +0 -23
  310. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector.module.js +0 -46
  311. package/esm2015/lib/modules/icon/icon.component.js +0 -78
  312. package/esm2015/lib/modules/icon/icon.module.js +0 -25
  313. package/esm2015/lib/modules/matomo/matomo-module.module.js +0 -7
  314. package/esm2015/lib/modules/matomo/matomo.service.js +0 -106
  315. package/esm2015/lib/modules/panels/abstract-panel.js +0 -50
  316. package/esm2015/lib/modules/panels/panels.component.js +0 -26
  317. package/esm2015/lib/modules/panels/panels.module.js +0 -28
  318. package/esm2015/lib/modules/panels/panels.service.js +0 -331
  319. package/esm2015/lib/modules/relations/relations.component.js +0 -181
  320. package/esm2015/lib/modules/relations/relations.module.js +0 -33
  321. package/esm2015/lib/modules/search/dropdown-container/dropdown-container.component.js +0 -87
  322. package/esm2015/lib/modules/search/dropdown-container/dropdown.service.js +0 -95
  323. package/esm2015/lib/modules/search/facet-selector/facet-selector.component.js +0 -47
  324. package/esm2015/lib/modules/search/group/group.component.js +0 -39
  325. package/esm2015/lib/modules/search/input/input.component.js +0 -316
  326. package/esm2015/lib/modules/search/search/search.component.js +0 -71
  327. package/esm2015/lib/modules/search/search.module.js +0 -52
  328. package/esm2015/lib/modules/select/abstract-select.component.js +0 -176
  329. package/esm2015/lib/modules/select/select/select.component.js +0 -190
  330. package/esm2015/lib/modules/select/select-enum/select-enum.component.js +0 -34
  331. package/esm2015/lib/modules/select/select-hierarchic/select-hierarchic.component.js +0 -120
  332. package/esm2015/lib/modules/select/select.module.js +0 -39
  333. package/esm2015/lib/modules/sidenav/sidenav/sidenav.component.js +0 -12
  334. package/esm2015/lib/modules/sidenav/sidenav-container/sidenav-container.component.js +0 -79
  335. package/esm2015/lib/modules/sidenav/sidenav-content/sidenav-content.component.js +0 -13
  336. package/esm2015/lib/modules/sidenav/sidenav-stack.service.js +0 -50
  337. package/esm2015/lib/modules/sidenav/sidenav.module.js +0 -20
  338. package/esm2015/lib/modules/sidenav/sidenav.service.js +0 -199
  339. package/esm2015/lib/modules/stamp/stamp-module.module.js +0 -13
  340. package/esm2015/lib/modules/stamp/stamp.component.js +0 -13
  341. package/esm2015/lib/modules/table-button/table-button.component.js +0 -38
  342. package/esm2015/lib/modules/table-button/table-button.module.js +0 -16
  343. package/esm2015/lib/services/abstract-model.service.js +0 -509
  344. package/esm2015/lib/services/enum.service.js +0 -68
  345. package/esm2015/lib/services/link-mutation.service.js +0 -155
  346. package/esm2015/lib/services/persistence.service.js +0 -114
  347. package/esm2015/lib/services/swiss-parsing-date-adapter.service.js +0 -55
  348. package/fesm2015/ecodev-natural.js.map +0 -1
@@ -1,14 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { AvatarComponent } from './component/avatar.component';
4
- const declarations = [AvatarComponent];
5
- export class NaturalAvatarModule {
6
- }
7
- NaturalAvatarModule.decorators = [
8
- { type: NgModule, args: [{
9
- imports: [CommonModule],
10
- declarations: declarations,
11
- exports: declarations,
12
- },] }
13
- ];
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxNQUFNLFlBQVksR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBT3ZDLE1BQU0sT0FBTyxtQkFBbUI7OztZQUwvQixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixZQUFZLEVBQUUsWUFBWTtnQkFDMUIsT0FBTyxFQUFFLFlBQVk7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBdmF0YXJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50L2F2YXRhci5jb21wb25lbnQnO1xuXG5jb25zdCBkZWNsYXJhdGlvbnMgPSBbQXZhdGFyQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IGRlY2xhcmF0aW9ucyxcbiAgICBleHBvcnRzOiBkZWNsYXJhdGlvbnMsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBdmF0YXJNb2R1bGUge31cbiJdfQ==
@@ -1,158 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { AvatarService } from '../service/avatar.service';
3
- /**
4
- * Show an avatar from different sources
5
- */
6
- export class AvatarComponent {
7
- constructor(avatarService) {
8
- this.avatarService = avatarService;
9
- this.size = 50;
10
- this.textSizeRatio = 3;
11
- this.fgColor = '#FFF';
12
- this.borderRadius = '';
13
- this.textMaximumLength = 0;
14
- this.avatarSrc = null;
15
- this.avatarText = null;
16
- this.avatarStyle = {};
17
- this.hostStyle = {};
18
- this.currentIndex = -1;
19
- this.sources = [];
20
- }
21
- /**
22
- * Detect inputs change
23
- */
24
- ngOnChanges(changes) {
25
- this.sources.length = 0;
26
- for (const [propName, creator] of this.avatarService.getCreators()) {
27
- if (!changes[propName]) {
28
- continue;
29
- }
30
- const currentValue = changes[propName].currentValue;
31
- if (currentValue && typeof currentValue === 'string') {
32
- this.sources.push(new creator(currentValue));
33
- }
34
- }
35
- // reinitialize the avatar component when a source property value has changed
36
- // the fallback system must be re-invoked with the new values.
37
- this.initializeAvatar();
38
- }
39
- /**
40
- * Fetch avatar source
41
- */
42
- tryNextSource() {
43
- const previousSource = this.sources[this.currentIndex];
44
- if (previousSource) {
45
- this.avatarService.markSourceAsFailed(previousSource);
46
- }
47
- const source = this.findNextSource();
48
- if (!source) {
49
- return;
50
- }
51
- if (source.isTextual()) {
52
- this.buildTextAvatar(source);
53
- this.avatarSrc = null;
54
- }
55
- else {
56
- this.buildImageAvatar(source);
57
- }
58
- }
59
- findNextSource() {
60
- while (++this.currentIndex < this.sources.length) {
61
- const source = this.sources[this.currentIndex];
62
- if (source && !this.avatarService.sourceHasFailedBefore(source)) {
63
- return source;
64
- }
65
- }
66
- return null;
67
- }
68
- /**
69
- * Initialize the avatar component and its fallback system
70
- */
71
- initializeAvatar() {
72
- this.currentIndex = -1;
73
- if (this.sources.length > 0) {
74
- this.tryNextSource();
75
- this.hostStyle = {
76
- width: this.size + 'px',
77
- height: this.size + 'px',
78
- };
79
- }
80
- }
81
- buildTextAvatar(avatarSource) {
82
- this.avatarText = avatarSource.getAvatar(+this.textMaximumLength);
83
- this.avatarStyle = this.getTextualStyle(avatarSource.getValue());
84
- }
85
- buildImageAvatar(avatarSource) {
86
- this.avatarStyle = this.getImageStyle();
87
- this.avatarSrc = avatarSource.getAvatar(+this.size);
88
- }
89
- /**
90
- * Returns initials style
91
- */
92
- getTextualStyle(avatarValue) {
93
- return {
94
- textAlign: 'center',
95
- borderRadius: this.borderRadius || '100%',
96
- textTransform: 'uppercase',
97
- color: this.fgColor,
98
- backgroundColor: this.bgColor ? this.bgColor : this.avatarService.getRandomColor(avatarValue),
99
- font: Math.floor(+this.size / this.textSizeRatio) + 'px Helvetica, Arial, sans-serif',
100
- lineHeight: this.size + 'px',
101
- };
102
- }
103
- /**
104
- * Returns image style
105
- */
106
- getImageStyle() {
107
- return {
108
- maxWidth: '100%',
109
- borderRadius: this.borderRadius || '100%',
110
- width: this.size + 'px',
111
- height: this.size + 'px',
112
- };
113
- }
114
- }
115
- AvatarComponent.decorators = [
116
- { type: Component, args: [{
117
- selector: 'natural-avatar',
118
- template: `
119
- <div class="avatar-container" [ngStyle]="hostStyle">
120
- <img
121
- *ngIf="avatarSrc; else textAvatar"
122
- [src]="avatarSrc"
123
- [width]="size"
124
- [height]="size"
125
- [ngStyle]="avatarStyle"
126
- (error)="tryNextSource()"
127
- class="avatar-content"
128
- loading="lazy"
129
- />
130
- <ng-template #textAvatar>
131
- <div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
132
- {{ avatarText }}
133
- </div>
134
- </ng-template>
135
- </div>
136
- `,
137
- styles: [`
138
- :host {
139
- border-radius: 50%;
140
- }
141
- `]
142
- },] }
143
- ];
144
- AvatarComponent.ctorParameters = () => [
145
- { type: AvatarService }
146
- ];
147
- AvatarComponent.propDecorators = {
148
- image: [{ type: Input }],
149
- initials: [{ type: Input }],
150
- gravatar: [{ type: Input }],
151
- size: [{ type: Input }],
152
- textSizeRatio: [{ type: Input }],
153
- bgColor: [{ type: Input }],
154
- fgColor: [{ type: Input }],
155
- borderRadius: [{ type: Input }],
156
- textMaximumLength: [{ type: Input }]
157
- };
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFHekUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBSXhEOztHQUVHO0FBOEJILE1BQU0sT0FBTyxlQUFlO0lBb0J4QixZQUE2QixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWZ6QyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1Ysa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEIsWUFBTyxHQUFHLE1BQU0sQ0FBQztRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFL0IsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDaEMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDakMsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUVyQixpQkFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLFlBQU8sR0FBYSxFQUFFLENBQUM7SUFFNkIsQ0FBQztJQUU3RDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEIsU0FBUzthQUNaO1lBRUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNwRCxJQUFJLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7Z0JBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7YUFDaEQ7U0FDSjtRQUVELDZFQUE2RTtRQUM3RSw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNoQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO2FBQU07WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzdELE9BQU8sTUFBTSxDQUFDO2FBQ2pCO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO2dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO2FBQzNCLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsWUFBb0I7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxZQUFvQjtRQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLFdBQW1CO1FBQ3ZDLE9BQU87WUFDSCxTQUFTLEVBQUUsUUFBUTtZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNO1lBQ3pDLGFBQWEsRUFBRSxXQUFXO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTztZQUNuQixlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQzdGLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsaUNBQWlDO1lBQ3JGLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUk7U0FDL0IsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWE7UUFDakIsT0FBTztZQUNILFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU07WUFDekMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1NBQzNCLENBQUM7SUFDTixDQUFDOzs7WUExSkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBUTFCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUO3lCQXhCRzs7OztTQUlDO2FBcUJSOzs7WUFuQ08sYUFBYTs7O29CQXFDaEIsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7bUJBRUwsS0FBSzs0QkFDTCxLQUFLO3NCQUNMLEtBQUs7c0JBQ0wsS0FBSzsyQkFDTCxLQUFLO2dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U291cmNlfSBmcm9tICcuLi9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge0F2YXRhclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvYXZhdGFyLnNlcnZpY2UnO1xuXG50eXBlIFN0eWxlID0gUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcblxuLyoqXG4gKiBTaG93IGFuIGF2YXRhciBmcm9tIGRpZmZlcmVudCBzb3VyY2VzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1hdmF0YXInLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJob3N0U3R5bGVcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cImF2YXRhclNyYzsgZWxzZSB0ZXh0QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImF2YXRhclNyY1wiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cInNpemVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIlxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJ0cnlOZXh0U291cmNlKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXZhdGFyLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRBdmF0YXI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF2YXRhclRleHRcIiBjbGFzcz1cImF2YXRhci1jb250ZW50XCIgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgYXZhdGFyVGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW1hZ2U/OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFscz86IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KCkgcHVibGljIGdyYXZhdGFyPzogc3RyaW5nIHwgbnVsbDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaXplID0gNTA7XG4gICAgQElucHV0KCkgcHVibGljIHRleHRTaXplUmF0aW8gPSAzO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBiZ0NvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGZnQ29sb3IgPSAnI0ZGRic7XG4gICAgQElucHV0KCkgcHVibGljIGJvcmRlclJhZGl1cyA9ICcnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0TWF4aW11bUxlbmd0aCA9IDA7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYXZhdGFyVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGF2YXRhclN0eWxlOiBTdHlsZSA9IHt9O1xuICAgIHB1YmxpYyBob3N0U3R5bGU6IFN0eWxlID0ge307XG5cbiAgICBwcml2YXRlIGN1cnJlbnRJbmRleCA9IC0xO1xuICAgIHByaXZhdGUgc291cmNlczogU291cmNlW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXZhdGFyU2VydmljZTogQXZhdGFyU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBpbnB1dHMgY2hhbmdlXG4gICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3VyY2VzLmxlbmd0aCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgW3Byb3BOYW1lLCBjcmVhdG9yXSBvZiB0aGlzLmF2YXRhclNlcnZpY2UuZ2V0Q3JlYXRvcnMoKSkge1xuICAgICAgICAgICAgaWYgKCFjaGFuZ2VzW3Byb3BOYW1lXSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjaGFuZ2VzW3Byb3BOYW1lXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICYmIHR5cGVvZiBjdXJyZW50VmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VzLnB1c2gobmV3IGNyZWF0b3IoY3VycmVudFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZWluaXRpYWxpemUgdGhlIGF2YXRhciBjb21wb25lbnQgd2hlbiBhIHNvdXJjZSBwcm9wZXJ0eSB2YWx1ZSBoYXMgY2hhbmdlZFxuICAgICAgICAvLyB0aGUgZmFsbGJhY2sgc3lzdGVtIG11c3QgYmUgcmUtaW52b2tlZCB3aXRoIHRoZSBuZXcgdmFsdWVzLlxuICAgICAgICB0aGlzLmluaXRpYWxpemVBdmF0YXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBhdmF0YXIgc291cmNlXG4gICAgICovXG4gICAgcHVibGljIHRyeU5leHRTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzU291cmNlID0gdGhpcy5zb3VyY2VzW3RoaXMuY3VycmVudEluZGV4XTtcbiAgICAgICAgaWYgKHByZXZpb3VzU291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhclNlcnZpY2UubWFya1NvdXJjZUFzRmFpbGVkKHByZXZpb3VzU291cmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuZmluZE5leHRTb3VyY2UoKTtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3VyY2UuaXNUZXh0dWFsKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRUZXh0QXZhdGFyKHNvdXJjZSk7XG4gICAgICAgICAgICB0aGlzLmF2YXRhclNyYyA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkSW1hZ2VBdmF0YXIoc291cmNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZmluZE5leHRTb3VyY2UoKTogU291cmNlIHwgbnVsbCB7XG4gICAgICAgIHdoaWxlICgrK3RoaXMuY3VycmVudEluZGV4IDwgdGhpcy5zb3VyY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2VzW3RoaXMuY3VycmVudEluZGV4XTtcbiAgICAgICAgICAgIGlmIChzb3VyY2UgJiYgIXRoaXMuYXZhdGFyU2VydmljZS5zb3VyY2VIYXNGYWlsZWRCZWZvcmUoc291cmNlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIHRoZSBhdmF0YXIgY29tcG9uZW50IGFuZCBpdHMgZmFsbGJhY2sgc3lzdGVtXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplQXZhdGFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IC0xO1xuICAgICAgICBpZiAodGhpcy5zb3VyY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMudHJ5TmV4dFNvdXJjZSgpO1xuICAgICAgICAgICAgdGhpcy5ob3N0U3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRUZXh0QXZhdGFyKGF2YXRhclNvdXJjZTogU291cmNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhdGFyVGV4dCA9IGF2YXRhclNvdXJjZS5nZXRBdmF0YXIoK3RoaXMudGV4dE1heGltdW1MZW5ndGgpO1xuICAgICAgICB0aGlzLmF2YXRhclN0eWxlID0gdGhpcy5nZXRUZXh0dWFsU3R5bGUoYXZhdGFyU291cmNlLmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRJbWFnZUF2YXRhcihhdmF0YXJTb3VyY2U6IFNvdXJjZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmF2YXRhclN0eWxlID0gdGhpcy5nZXRJbWFnZVN0eWxlKCk7XG4gICAgICAgIHRoaXMuYXZhdGFyU3JjID0gYXZhdGFyU291cmNlLmdldEF2YXRhcigrdGhpcy5zaXplKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGluaXRpYWxzIHN0eWxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUZXh0dWFsU3R5bGUoYXZhdGFyVmFsdWU6IHN0cmluZyk6IFN0eWxlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IHRoaXMuYm9yZGVyUmFkaXVzIHx8ICcxMDAlJyxcbiAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxuICAgICAgICAgICAgY29sb3I6IHRoaXMuZmdDb2xvcixcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ0NvbG9yID8gdGhpcy5iZ0NvbG9yIDogdGhpcy5hdmF0YXJTZXJ2aWNlLmdldFJhbmRvbUNvbG9yKGF2YXRhclZhbHVlKSxcbiAgICAgICAgICAgIGZvbnQ6IE1hdGguZmxvb3IoK3RoaXMuc2l6ZSAvIHRoaXMudGV4dFNpemVSYXRpbykgKyAncHggSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaW1hZ2Ugc3R5bGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEltYWdlU3R5bGUoKTogU3R5bGUge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogdGhpcy5ib3JkZXJSYWRpdXMgfHwgJzEwMCUnLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -1,65 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Gravatar } from '../sources/gravatar';
3
- import { Initials } from '../sources/initials';
4
- import { Image } from '../sources/image';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Provides utilities methods related to Avatar component
8
- */
9
- export class AvatarService {
10
- constructor() {
11
- /**
12
- * Ordered pairs of possible sources. First in list is the highest priority.
13
- * And key must match one the input of AvatarComponent.
14
- */
15
- this.sourceCreators = new Map([
16
- ['gravatar', Gravatar],
17
- ['image', Image],
18
- ['initials', Initials],
19
- ]);
20
- this.avatarColors = [
21
- '#1abc9c',
22
- '#3498db',
23
- '#f1c40f',
24
- '#8e44ad',
25
- '#e74c3c',
26
- '#d35400',
27
- '#2c3e50',
28
- '#7f8c8d',
29
- ];
30
- this.failedSources = new Map();
31
- }
32
- getRandomColor(avatarText) {
33
- if (!avatarText) {
34
- return 'transparent';
35
- }
36
- const asciiCodeSum = this.calculateAsciiCode(avatarText);
37
- return this.avatarColors[asciiCodeSum % this.avatarColors.length];
38
- }
39
- getCreators() {
40
- return this.sourceCreators.entries();
41
- }
42
- getSourceKey(source) {
43
- return source.constructor.name + '-' + source.getValue();
44
- }
45
- sourceHasFailedBefore(source) {
46
- return this.failedSources.has(this.getSourceKey(source));
47
- }
48
- markSourceAsFailed(source) {
49
- this.failedSources.set(this.getSourceKey(source), source);
50
- }
51
- calculateAsciiCode(value) {
52
- return value
53
- .split('')
54
- .map(letter => letter.charCodeAt(0))
55
- .reduce((previous, current) => previous + current);
56
- }
57
- }
58
- AvatarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AvatarService_Factory() { return new AvatarService(); }, token: AvatarService, providedIn: "root" });
59
- AvatarService.decorators = [
60
- { type: Injectable, args: [{
61
- providedIn: 'root',
62
- },] }
63
- ];
64
- AvatarService.ctorParameters = () => [];
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc2VydmljZS9hdmF0YXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDOztBQUd2Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBd0J0QjtRQXZCQTs7O1dBR0c7UUFDYyxtQkFBYyxHQUFHLElBQUksR0FBRyxDQUF1QztZQUM1RSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDdEIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ2hCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFYyxpQkFBWSxHQUFHO1lBQzVCLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1osQ0FBQztRQUVlLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFNUMsQ0FBQztJQUVULGNBQWMsQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsT0FBTyxhQUFhLENBQUM7U0FDeEI7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxZQUFZLENBQUMsTUFBYztRQUMvQixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQWM7UUFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE1BQWM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUNwQyxPQUFPLEtBQUs7YUFDUCxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7OztZQTNESixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTb3VyY2UsIFNvdXJjZUNyZWF0b3J9IGZyb20gJy4uL3NvdXJjZXMvc291cmNlJztcbmltcG9ydCB7R3JhdmF0YXJ9IGZyb20gJy4uL3NvdXJjZXMvZ3JhdmF0YXInO1xuaW1wb3J0IHtJbml0aWFsc30gZnJvbSAnLi4vc291cmNlcy9pbml0aWFscyc7XG5pbXBvcnQge0ltYWdlfSBmcm9tICcuLi9zb3VyY2VzL2ltYWdlJztcbmltcG9ydCB7QXZhdGFyQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogUHJvdmlkZXMgdXRpbGl0aWVzIG1ldGhvZHMgcmVsYXRlZCB0byBBdmF0YXIgY29tcG9uZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhclNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIE9yZGVyZWQgcGFpcnMgb2YgcG9zc2libGUgc291cmNlcy4gRmlyc3QgaW4gbGlzdCBpcyB0aGUgaGlnaGVzdCBwcmlvcml0eS5cbiAgICAgKiBBbmQga2V5IG11c3QgbWF0Y2ggb25lIHRoZSBpbnB1dCBvZiBBdmF0YXJDb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2VDcmVhdG9ycyA9IG5ldyBNYXA8a2V5b2YgQXZhdGFyQ29tcG9uZW50LCBTb3VyY2VDcmVhdG9yPihbXG4gICAgICAgIFsnZ3JhdmF0YXInLCBHcmF2YXRhcl0sXG4gICAgICAgIFsnaW1hZ2UnLCBJbWFnZV0sXG4gICAgICAgIFsnaW5pdGlhbHMnLCBJbml0aWFsc10sXG4gICAgXSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YXRhckNvbG9ycyA9IFtcbiAgICAgICAgJyMxYWJjOWMnLFxuICAgICAgICAnIzM0OThkYicsXG4gICAgICAgICcjZjFjNDBmJyxcbiAgICAgICAgJyM4ZTQ0YWQnLFxuICAgICAgICAnI2U3NGMzYycsXG4gICAgICAgICcjZDM1NDAwJyxcbiAgICAgICAgJyMyYzNlNTAnLFxuICAgICAgICAnIzdmOGM4ZCcsXG4gICAgXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFpbGVkU291cmNlcyA9IG5ldyBNYXA8c3RyaW5nLCBTb3VyY2U+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwdWJsaWMgZ2V0UmFuZG9tQ29sb3IoYXZhdGFyVGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFhdmF0YXJUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhc2NpaUNvZGVTdW0gPSB0aGlzLmNhbGN1bGF0ZUFzY2lpQ29kZShhdmF0YXJUZXh0KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hdmF0YXJDb2xvcnNbYXNjaWlDb2RlU3VtICUgdGhpcy5hdmF0YXJDb2xvcnMubGVuZ3RoXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3JlYXRvcnMoKTogSXRlcmFibGVJdGVyYXRvcjxba2V5b2YgQXZhdGFyQ29tcG9uZW50LCBTb3VyY2VDcmVhdG9yXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VDcmVhdG9ycy5lbnRyaWVzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTb3VyY2VLZXkoc291cmNlOiBTb3VyY2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc291cmNlLmNvbnN0cnVjdG9yLm5hbWUgKyAnLScgKyBzb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc291cmNlSGFzRmFpbGVkQmVmb3JlKHNvdXJjZTogU291cmNlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZhaWxlZFNvdXJjZXMuaGFzKHRoaXMuZ2V0U291cmNlS2V5KHNvdXJjZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXJrU291cmNlQXNGYWlsZWQoc291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWlsZWRTb3VyY2VzLnNldCh0aGlzLmdldFNvdXJjZUtleShzb3VyY2UpLCBzb3VyY2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQXNjaWlDb2RlKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAgIC5tYXAobGV0dGVyID0+IGxldHRlci5jaGFyQ29kZUF0KDApKVxuICAgICAgICAgICAgLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzICsgY3VycmVudCk7XG4gICAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import { Md5 } from 'ts-md5';
2
- import { Source } from './source';
3
- function isRetina() {
4
- // We cannot reasonably inject `DOCUMENT` here, but we are extra
5
- // careful about usage of `window` and its possible non-existence in SSR,
6
- // so we should be fine.
7
- // tslint:disable-next-line:no-restricted-globals
8
- const myWindow = window;
9
- if ((myWindow === null || myWindow === void 0 ? void 0 : myWindow.devicePixelRatio) > 1.25) {
10
- return true;
11
- }
12
- const mediaQuery = '(-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5/4), (min-resolution: 1.25dppx)';
13
- return !!(myWindow === null || myWindow === void 0 ? void 0 : myWindow.matchMedia(mediaQuery).matches);
14
- }
15
- /**
16
- * Return URL to Gravatar image from either an email or a MD5
17
- */
18
- export class Gravatar extends Source {
19
- getAvatar(size) {
20
- const value = this.getValue();
21
- const md5 = value.match('^[a-f0-9]{32}$') ? value : Md5.hashStr(value.trim().toLowerCase()).toString();
22
- const avatarSize = isRetina() ? size * 2 : size;
23
- return `https://secure.gravatar.com/avatar/${md5}?s=${avatarSize}&d=404`;
24
- }
25
- isTextual() {
26
- return false;
27
- }
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhdmF0YXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc291cmNlcy9ncmF2YXRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzNCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsU0FBUyxRQUFRO0lBQ2IsZ0VBQWdFO0lBQ2hFLHlFQUF5RTtJQUN6RSx3QkFBd0I7SUFDeEIsaURBQWlEO0lBQ2pELE1BQU0sUUFBUSxHQUF1QixNQUFNLENBQUM7SUFFNUMsSUFBSSxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxnQkFBZ0IsSUFBRyxJQUFJLEVBQUU7UUFDbkMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sVUFBVSxHQUNaLDJJQUEySSxDQUFDO0lBRWhKLE9BQU8sQ0FBQyxDQUFDLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFBLENBQUM7QUFDdEQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVMsU0FBUSxNQUFNO0lBQ3pCLFNBQVMsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2RyxNQUFNLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hELE9BQU8sc0NBQXNDLEdBQUcsTUFBTSxVQUFVLFFBQVEsQ0FBQztJQUM3RSxDQUFDO0lBRU0sU0FBUztRQUNaLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWQ1fSBmcm9tICd0cy1tZDUnO1xuaW1wb3J0IHtTb3VyY2V9IGZyb20gJy4vc291cmNlJztcblxuZnVuY3Rpb24gaXNSZXRpbmEoKTogYm9vbGVhbiB7XG4gICAgLy8gV2UgY2Fubm90IHJlYXNvbmFibHkgaW5qZWN0IGBET0NVTUVOVGAgaGVyZSwgYnV0IHdlIGFyZSBleHRyYVxuICAgIC8vIGNhcmVmdWwgYWJvdXQgdXNhZ2Ugb2YgYHdpbmRvd2AgYW5kIGl0cyBwb3NzaWJsZSBub24tZXhpc3RlbmNlIGluIFNTUixcbiAgICAvLyBzbyB3ZSBzaG91bGQgYmUgZmluZS5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgY29uc3QgbXlXaW5kb3c6IFdpbmRvdyB8IHVuZGVmaW5lZCA9IHdpbmRvdztcblxuICAgIGlmIChteVdpbmRvdz8uZGV2aWNlUGl4ZWxSYXRpbyA+IDEuMjUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgbWVkaWFRdWVyeSA9XG4gICAgICAgICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiA1LzQpLCAobWluLXJlc29sdXRpb246IDEuMjVkcHB4KSc7XG5cbiAgICByZXR1cm4gISFteVdpbmRvdz8ubWF0Y2hNZWRpYShtZWRpYVF1ZXJ5KS5tYXRjaGVzO1xufVxuXG4vKipcbiAqIFJldHVybiBVUkwgdG8gR3JhdmF0YXIgaW1hZ2UgZnJvbSBlaXRoZXIgYW4gZW1haWwgb3IgYSBNRDVcbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXZhdGFyIGV4dGVuZHMgU291cmNlIHtcbiAgICBwdWJsaWMgZ2V0QXZhdGFyKHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBtZDUgPSB2YWx1ZS5tYXRjaCgnXlthLWYwLTldezMyfSQnKSA/IHZhbHVlIDogTWQ1Lmhhc2hTdHIodmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCkpLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgY29uc3QgYXZhdGFyU2l6ZSA9IGlzUmV0aW5hKCkgPyBzaXplICogMiA6IHNpemU7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly9zZWN1cmUuZ3JhdmF0YXIuY29tL2F2YXRhci8ke21kNX0/cz0ke2F2YXRhclNpemV9JmQ9NDA0YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNUZXh0dWFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
@@ -1,41 +0,0 @@
1
- import { Directive, ElementRef, Input } from '@angular/core';
2
- export class NaturalColumnsPickerColumnDirective {
3
- constructor(elementRef) {
4
- this.elementRef = elementRef;
5
- /**
6
- * Initial checked state
7
- */
8
- this.checked = true;
9
- /**
10
- * Initial visibility state
11
- */
12
- this.hidden = false;
13
- }
14
- /**
15
- * This must be the column key as defined in matColumnDef
16
- */
17
- set naturalColumnsPickerColumn(value) {
18
- this.key = value;
19
- }
20
- ngOnInit() {
21
- // Default label to key before real label is accessible
22
- this.label = this.key;
23
- }
24
- ngAfterViewInit() {
25
- this.label = this.elementRef.nativeElement.textContent;
26
- }
27
- }
28
- NaturalColumnsPickerColumnDirective.decorators = [
29
- { type: Directive, args: [{
30
- selector: '[naturalColumnsPickerColumn]',
31
- },] }
32
- ];
33
- NaturalColumnsPickerColumnDirective.ctorParameters = () => [
34
- { type: ElementRef }
35
- ];
36
- NaturalColumnsPickerColumnDirective.propDecorators = {
37
- checked: [{ type: Input }],
38
- hidden: [{ type: Input }],
39
- naturalColumnsPickerColumn: [{ type: Input }]
40
- };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXItY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbHVtbnMtcGlja2VyL2NvbHVtbnMtcGlja2VyLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUtsRixNQUFNLE9BQU8sbUNBQW1DO0lBa0I1QyxZQUE2QixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZm5EOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksQ0FBQztRQUUvQjs7V0FFRztRQUNhLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFPdUIsQ0FBQztJQUV2RDs7T0FFRztJQUNILElBQ0ksMEJBQTBCLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUTtRQUNYLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQzs7O1lBdENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsOEJBQThCO2FBQzNDOzs7WUFKaUMsVUFBVTs7O3NCQVd2QyxLQUFLO3FCQUtMLEtBQUs7eUNBWUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5dJyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAgIHB1YmxpYyBrZXkhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIGNoZWNrZWQgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY2hlY2tlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHZpc2liaWxpdHkgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGlkZGVuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhbGl6ZWQgbGFiZWwgb2YgY29sdW1uLCBpZiBhYnNlbnQgZGVmYXVsdCB0byBrZXlcbiAgICAgKi9cbiAgICBwdWJsaWMgbGFiZWwhOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG11c3QgYmUgdGhlIGNvbHVtbiBrZXkgYXMgZGVmaW5lZCBpbiBtYXRDb2x1bW5EZWZcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBuYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMua2V5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZhdWx0IGxhYmVsIHRvIGtleSBiZWZvcmUgcmVhbCBsYWJlbCBpcyBhY2Nlc3NpYmxlXG4gICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxufVxuIl19
@@ -1,82 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, } from '@angular/core';
2
- import { NaturalColumnsPickerColumnDirective } from './columns-picker-column.directive';
3
- import { cancellableTimeout } from '../../classes/rxjs';
4
- import { Subject } from 'rxjs';
5
- export class NaturalColumnsPickerComponent {
6
- constructor(changeDetectorRef) {
7
- this.changeDetectorRef = changeDetectorRef;
8
- /**
9
- * Emit a list of valid and selected column keys whenever the selection changes
10
- */
11
- this.selectionChange = new EventEmitter();
12
- /**
13
- * Available columns are defined by options in the template
14
- */
15
- this.availableColumns = null;
16
- /**
17
- * Displayed options in the dropdown menu
18
- */
19
- this.displayedColumns = [];
20
- this.ngUnsubscribe = new Subject();
21
- }
22
- /**
23
- * Set the columns that are wanted but might be unavailable.
24
- *
25
- * If a column is unavailable it will be ignored silently. To know what columns were actually applied
26
- * you should use `selectionChange`.
27
- *
28
- * It is often set once on component initialization, but it can also be set again later in the lifespan of the component.
29
- */
30
- set selections(columns) {
31
- var _a;
32
- this._selections = columns;
33
- if (!columns || !this.availableColumns) {
34
- return;
35
- }
36
- (_a = this.availableColumns) === null || _a === void 0 ? void 0 : _a.forEach(col => {
37
- col.checked = columns.includes(col.key);
38
- });
39
- this.updateColumns();
40
- }
41
- ngAfterViewInit() {
42
- cancellableTimeout(this.ngUnsubscribe).subscribe(() => {
43
- this.initColumns();
44
- this.updateColumns();
45
- this.changeDetectorRef.detectChanges();
46
- });
47
- }
48
- initColumns() {
49
- var _a, _b, _c;
50
- (_a = this.availableColumns) === null || _a === void 0 ? void 0 : _a.forEach(col => {
51
- var _a;
52
- col.checked = ((_a = this._selections) === null || _a === void 0 ? void 0 : _a.length) ? this._selections.includes(col.key) : col.checked;
53
- });
54
- // Show options only for columns that are not hidden
55
- this.displayedColumns = (_c = (_b = this.availableColumns) === null || _b === void 0 ? void 0 : _b.filter(col => !col.hidden)) !== null && _c !== void 0 ? _c : [];
56
- }
57
- updateColumns() {
58
- var _a;
59
- const selectedColumns = (_a = this.availableColumns) === null || _a === void 0 ? void 0 : _a.filter(col => col.checked).map(col => col.key);
60
- this.selectionChange.emit(selectedColumns);
61
- }
62
- ngOnDestroy() {
63
- this.ngUnsubscribe.next(); // unsubscribe everybody
64
- this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
65
- }
66
- }
67
- NaturalColumnsPickerComponent.decorators = [
68
- { type: Component, args: [{
69
- selector: 'natural-columns-picker',
70
- template: "<div>\n <mat-menu #naturalMenu=\"matMenu\">\n <div\n (click)=\"$event.stopPropagation(); column.checked = !column.checked; updateColumns()\"\n *ngFor=\"let column of displayedColumns\"\n class=\"mat-menu-item\"\n >\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"updateColumns()\" [(ngModel)]=\"column.checked\">{{\n column.label\n }}</mat-checkbox>\n </div>\n </mat-menu>\n <button [matMenuTriggerFor]=\"naturalMenu\" mat-icon-button i18n-matTooltip matTooltip=\"S\u00E9lectionner les colonnes\">\n <natural-icon name=\"view_column\"></natural-icon>\n </button>\n</div>\n",
71
- changeDetection: ChangeDetectionStrategy.OnPush
72
- },] }
73
- ];
74
- NaturalColumnsPickerComponent.ctorParameters = () => [
75
- { type: ChangeDetectorRef }
76
- ];
77
- NaturalColumnsPickerComponent.propDecorators = {
78
- selections: [{ type: Input }],
79
- selectionChange: [{ type: Output }],
80
- availableColumns: [{ type: ContentChildren, args: [NaturalColumnsPickerColumnDirective,] }]
81
- };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU83QixNQUFNLE9BQU8sNkJBQTZCO0lBNEN0QyxZQUE2QixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWxCakU7O1dBRUc7UUFDdUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXpFOztXQUVHO1FBRUkscUJBQWdCLEdBQTBELElBQUksQ0FBQztRQUV0Rjs7V0FFRztRQUNJLHFCQUFnQixHQUEwQyxFQUFFLENBQUM7UUFFNUQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXdCLENBQUM7SUF6Q3JFOzs7Ozs7O09BT0c7SUFDSCxJQUNXLFVBQVUsQ0FBQyxPQUE2Qjs7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFFM0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNwQyxPQUFPO1NBQ1Y7UUFFRCxNQUFBLElBQUksQ0FBQyxnQkFBZ0IsMENBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQXNCTSxlQUFlO1FBQ2xCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFdBQVc7O1FBQ2YsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTs7WUFDakMsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDOUYsQ0FBQyxDQUFDLENBQUM7UUFFSCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQUEsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVNLGFBQWE7O1FBQ2hCLE1BQU0sZUFBZSxHQUFHLE1BQUEsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHdEQUF3RDtJQUMzRixDQUFDOzs7WUE1RUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLHNzQkFBOEM7Z0JBQzlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2xEOzs7WUFqQkcsaUJBQWlCOzs7eUJBNkJoQixLQUFLOzhCQWtCTCxNQUFNOytCQUtOLGVBQWUsU0FBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi9jb2x1bW5zLXBpY2tlci1jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7Y2FuY2VsbGFibGVUaW1lb3V0fSBmcm9tICcuLi8uLi9jbGFzc2VzL3J4anMnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLWNvbHVtbnMtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sdW1ucy1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsQ29sdW1uc1BpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9ucz86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjb2x1bW5zIHRoYXQgYXJlIHdhbnRlZCBidXQgbWlnaHQgYmUgdW5hdmFpbGFibGUuXG4gICAgICpcbiAgICAgKiBJZiBhIGNvbHVtbiBpcyB1bmF2YWlsYWJsZSBpdCB3aWxsIGJlIGlnbm9yZWQgc2lsZW50bHkuIFRvIGtub3cgd2hhdCBjb2x1bW5zIHdlcmUgYWN0dWFsbHkgYXBwbGllZFxuICAgICAqIHlvdSBzaG91bGQgdXNlIGBzZWxlY3Rpb25DaGFuZ2VgLlxuICAgICAqXG4gICAgICogSXQgaXMgb2Z0ZW4gc2V0IG9uY2Ugb24gY29tcG9uZW50IGluaXRpYWxpemF0aW9uLCBidXQgaXQgY2FuIGFsc28gYmUgc2V0IGFnYWluIGxhdGVyIGluIHRoZSBsaWZlc3BhbiBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzZWxlY3Rpb25zKGNvbHVtbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbnMgPSBjb2x1bW5zO1xuXG4gICAgICAgIGlmICghY29sdW1ucyB8fCAhdGhpcy5hdmFpbGFibGVDb2x1bW5zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmF2YWlsYWJsZUNvbHVtbnM/LmZvckVhY2goY29sID0+IHtcbiAgICAgICAgICAgIGNvbC5jaGVja2VkID0gY29sdW1ucy5pbmNsdWRlcyhjb2wua2V5KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdCBhIGxpc3Qgb2YgdmFsaWQgYW5kIHNlbGVjdGVkIGNvbHVtbiBrZXlzIHdoZW5ldmVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlc1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICAgIC8qKlxuICAgICAqIEF2YWlsYWJsZSBjb2x1bW5zIGFyZSBkZWZpbmVkIGJ5IG9wdGlvbnMgaW4gdGhlIHRlbXBsYXRlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZSlcbiAgICBwdWJsaWMgYXZhaWxhYmxlQ29sdW1uczogUXVlcnlMaXN0PE5hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlPiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheWVkIG9wdGlvbnMgaW4gdGhlIGRyb3Bkb3duIG1lbnVcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzcGxheWVkQ29sdW1uczogTmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY2FuY2VsbGFibGVUaW1lb3V0KHRoaXMubmdVbnN1YnNjcmliZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdENvbHVtbnMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sdW1ucygpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlQ29sdW1ucz8uZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgY29sLmNoZWNrZWQgPSB0aGlzLl9zZWxlY3Rpb25zPy5sZW5ndGggPyB0aGlzLl9zZWxlY3Rpb25zLmluY2x1ZGVzKGNvbC5rZXkpIDogY29sLmNoZWNrZWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNob3cgb3B0aW9ucyBvbmx5IGZvciBjb2x1bW5zIHRoYXQgYXJlIG5vdCBoaWRkZW5cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+ICFjb2wuaGlkZGVuKSA/PyBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+IGNvbC5jaGVja2VkKS5tYXAoY29sID0+IGNvbC5rZXkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkQ29sdW1ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpOyAvLyB1bnN1YnNjcmliZSBldmVyeWJvZHlcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7IC8vIGNvbXBsZXRlIHRoZSBzdHJlYW0sIGJlY2F1c2Ugd2Ugd2lsbCBuZXZlciBlbWl0IGFnYWluXG4gICAgfVxufVxuIl19
@@ -1,28 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatCheckboxModule } from '@angular/material/checkbox';
6
- import { MatMenuModule } from '@angular/material/menu';
7
- import { NaturalIconModule } from '../icon/icon.module';
8
- import { NaturalColumnsPickerColumnDirective } from './columns-picker-column.directive';
9
- import { NaturalColumnsPickerComponent } from './columns-picker.component';
10
- import { MatTooltipModule } from '@angular/material/tooltip';
11
- export class NaturalColumnsPickerModule {
12
- }
13
- NaturalColumnsPickerModule.decorators = [
14
- { type: NgModule, args: [{
15
- declarations: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent],
16
- imports: [
17
- CommonModule,
18
- FormsModule,
19
- MatMenuModule,
20
- MatButtonModule,
21
- MatCheckboxModule,
22
- NaturalIconModule,
23
- MatTooltipModule,
24
- ],
25
- exports: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent],
26
- },] }
27
- ];
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBZTNELE1BQU0sT0FBTywwQkFBMEI7OztZQWJ0QyxRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsbUNBQW1DLEVBQUUsNkJBQTZCLENBQUM7Z0JBQ2xGLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixlQUFlO29CQUNmLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQixnQkFBZ0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRSxDQUFDLG1DQUFtQyxFQUFFLDZCQUE2QixDQUFDO2FBQ2hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRDaGVja2JveE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHtNYXRNZW51TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7TmF0dXJhbEljb25Nb2R1bGV9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHtOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi9jb2x1bW5zLXBpY2tlci1jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7TmF0dXJhbENvbHVtbnNQaWNrZXJDb21wb25lbnR9IGZyb20gJy4vY29sdW1ucy1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7TWF0VG9vbHRpcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbTmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmUsIE5hdHVyYWxDb2x1bW5zUGlja2VyQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIE5hdHVyYWxJY29uTW9kdWxlLFxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW05hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlLCBOYXR1cmFsQ29sdW1uc1BpY2tlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxDb2x1bW5zUGlja2VyTW9kdWxlIHt9XG4iXX0=
@@ -1,35 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { NaturalHttpPrefixDirective } from '../../directives/http-prefix.directive';
4
- import { NaturalLinkableTabDirective } from './directives/linkable-tab.directive';
5
- import { ReactiveAsteriskDirective } from './directives/reactive-asterisk.directive';
6
- import { NaturalCapitalizePipe } from './pipes/capitalize.pipe';
7
- import { NaturalEllipsisPipe } from './pipes/ellipsis.pipe';
8
- import { NaturalEnumPipe } from './pipes/enum.pipe';
9
- import { localStorageProvider, sessionStorageProvider } from './services/memory-storage';
10
- import { NaturalSwissDatePipe } from './pipes/swiss-date.pipe';
11
- import { MatFormFieldModule } from '@angular/material/form-field';
12
- import { MatInputModule } from '@angular/material/input';
13
- import { MatSelectModule } from '@angular/material/select';
14
- import { NaturalSrcDensityDirective } from './directives/src-density.directive';
15
- const declarationsToExport = [
16
- NaturalCapitalizePipe,
17
- NaturalEllipsisPipe,
18
- NaturalEnumPipe,
19
- NaturalSwissDatePipe,
20
- ReactiveAsteriskDirective,
21
- NaturalHttpPrefixDirective,
22
- NaturalSrcDensityDirective,
23
- NaturalLinkableTabDirective,
24
- ];
25
- export class NaturalCommonModule {
26
- }
27
- NaturalCommonModule.decorators = [
28
- { type: NgModule, args: [{
29
- declarations: [...declarationsToExport],
30
- imports: [CommonModule, MatFormFieldModule, MatInputModule, MatSelectModule],
31
- exports: [...declarationsToExport],
32
- providers: [sessionStorageProvider, localStorageProvider],
33
- },] }
34
- ];
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9jb21tb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE1BQU0sb0JBQW9CLEdBQUc7SUFDekIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDJCQUEyQjtDQUM5QixDQUFDO0FBUUYsTUFBTSxPQUFPLG1CQUFtQjs7O1lBTi9CLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQztnQkFDNUUsT0FBTyxFQUFFLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztnQkFDbEMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUM7YUFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsSHR0cFByZWZpeERpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9odHRwLXByZWZpeC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOYXR1cmFsTGlua2FibGVUYWJEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlcy9saW5rYWJsZS10YWIuZGlyZWN0aXZlJztcbmltcG9ydCB7UmVhY3RpdmVBc3Rlcmlza0RpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL3JlYWN0aXZlLWFzdGVyaXNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05hdHVyYWxDYXBpdGFsaXplUGlwZX0gZnJvbSAnLi9waXBlcy9jYXBpdGFsaXplLnBpcGUnO1xuaW1wb3J0IHtOYXR1cmFsRWxsaXBzaXNQaXBlfSBmcm9tICcuL3BpcGVzL2VsbGlwc2lzLnBpcGUnO1xuaW1wb3J0IHtOYXR1cmFsRW51bVBpcGV9IGZyb20gJy4vcGlwZXMvZW51bS5waXBlJztcbmltcG9ydCB7bG9jYWxTdG9yYWdlUHJvdmlkZXIsIHNlc3Npb25TdG9yYWdlUHJvdmlkZXJ9IGZyb20gJy4vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UnO1xuaW1wb3J0IHtOYXR1cmFsU3dpc3NEYXRlUGlwZX0gZnJvbSAnLi9waXBlcy9zd2lzcy1kYXRlLnBpcGUnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge05hdHVyYWxTcmNEZW5zaXR5RGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3JjLWRlbnNpdHkuZGlyZWN0aXZlJztcblxuY29uc3QgZGVjbGFyYXRpb25zVG9FeHBvcnQgPSBbXG4gICAgTmF0dXJhbENhcGl0YWxpemVQaXBlLFxuICAgIE5hdHVyYWxFbGxpcHNpc1BpcGUsXG4gICAgTmF0dXJhbEVudW1QaXBlLFxuICAgIE5hdHVyYWxTd2lzc0RhdGVQaXBlLFxuICAgIFJlYWN0aXZlQXN0ZXJpc2tEaXJlY3RpdmUsXG4gICAgTmF0dXJhbEh0dHBQcmVmaXhEaXJlY3RpdmUsXG4gICAgTmF0dXJhbFNyY0RlbnNpdHlEaXJlY3RpdmUsXG4gICAgTmF0dXJhbExpbmthYmxlVGFiRGlyZWN0aXZlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5kZWNsYXJhdGlvbnNUb0V4cG9ydF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbLi4uZGVjbGFyYXRpb25zVG9FeHBvcnRdLFxuICAgIHByb3ZpZGVyczogW3Nlc3Npb25TdG9yYWdlUHJvdmlkZXIsIGxvY2FsU3RvcmFnZVByb3ZpZGVyXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbENvbW1vbk1vZHVsZSB7fVxuIl19
@@ -1,82 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { MatTabGroup } from '@angular/material/tabs';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
- import { clone } from 'lodash-es';
5
- import { takeUntil } from 'rxjs/operators';
6
- import { NaturalAbstractController } from '../../../classes/abstract-controller';
7
- /**
8
- * Returns an identifier for the tab
9
- */
10
- function getTabId(tab) {
11
- var _a, _b;
12
- return (_b = (_a = tab.content) === null || _a === void 0 ? void 0 : _a.viewContainerRef.element.nativeElement.id) !== null && _b !== void 0 ? _b : '';
13
- }
14
- /**
15
- * Usage :
16
- *
17
- * <mat-tab-group [naturalLinkableTab]="!isPanel">
18
- * <mat-tab label="Third 1">third 1</mat-tab> // First tab doesn't need id. This keeps url clean on default one
19
- * <mat-tab label="Third 2" id="third2">Third 2</mat-tab>
20
- * ...
21
- * </mat-tab-group>
22
- */
23
- export class NaturalLinkableTabDirective extends NaturalAbstractController {
24
- constructor(component, route, router) {
25
- super();
26
- this.component = component;
27
- this.route = route;
28
- this.router = router;
29
- /**
30
- * If false, disables the persistent navigation
31
- */
32
- this.naturalLinkableTab = true;
33
- }
34
- ngAfterViewInit() {
35
- if (this.naturalLinkableTab === false) {
36
- return;
37
- }
38
- // When url params change, update the mat-tab-group selected tab
39
- this.route.fragment.pipe(takeUntil(this.ngUnsubscribe)).subscribe(fragment => {
40
- // Get index of tab that matches wanted name
41
- const tabIndex = this.getTabIndex(fragment);
42
- // If tab index is valid (>= 0) go to given fragment
43
- // If there is no fragment at all, go to first tab (index is -1 in this case)
44
- if (tabIndex >= 0 || !fragment) {
45
- this.component.selectedIndex = tabIndex;
46
- }
47
- });
48
- // When mat-tab-groups selected tab change, update url
49
- this.component.selectedTabChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event) => {
50
- const activatedTabName = getTabId(event.tab);
51
- const segments = this.route.snapshot.url;
52
- if (!segments.length) {
53
- // This should never happen in normal usage, because it would means there is no route at all in the app
54
- throw new Error('Cannot update URL for tabs without any segments in URL');
55
- }
56
- // Get url matrix params (/segment;matrix=param) only without route params (segment/:id)
57
- const params = clone(segments[segments.length - 1].parameters);
58
- this.router.navigate(['.', params], {
59
- relativeTo: this.route,
60
- queryParamsHandling: 'preserve',
61
- fragment: activatedTabName && activatedTabName.length ? activatedTabName : undefined,
62
- });
63
- });
64
- }
65
- getTabIndex(fragment) {
66
- return this.component._tabs.toArray().findIndex(tab => fragment === getTabId(tab));
67
- }
68
- }
69
- NaturalLinkableTabDirective.decorators = [
70
- { type: Directive, args: [{
71
- selector: 'mat-tab-group[naturalLinkableTab]',
72
- },] }
73
- ];
74
- NaturalLinkableTabDirective.ctorParameters = () => [
75
- { type: MatTabGroup },
76
- { type: ActivatedRoute },
77
- { type: Router }
78
- ];
79
- NaturalLinkableTabDirective.propDecorators = {
80
- naturalLinkableTab: [{ type: Input }]
81
- };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2FibGUtdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9kaXJlY3RpdmVzL2xpbmthYmxlLXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBNEIsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRTs7R0FFRztBQUNILFNBQVMsUUFBUSxDQUFDLEdBQVc7O0lBQ3pCLE9BQU8sTUFBQSxNQUFBLEdBQUcsQ0FBQyxPQUFPLDBDQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxtQ0FBSSxFQUFFLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBSUgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHlCQUF5QjtJQU10RSxZQUNxQixTQUFzQixFQUN0QixLQUFxQixFQUNyQixNQUFjO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBSlMsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBUm5DOztXQUVHO1FBQ2EsdUJBQWtCLEdBQWlCLElBQUksQ0FBQztJQVF4RCxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBRUQsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pFLDRDQUE0QztZQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTVDLG9EQUFvRDtZQUNwRCw2RUFBNkU7WUFDN0UsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7YUFDM0M7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO1lBQ3hHLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLHVHQUF1RztnQkFDdkcsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO2FBQzdFO1lBRUQsd0ZBQXdGO1lBQ3hGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUvRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUN0QixtQkFBbUIsRUFBRSxVQUFVO2dCQUMvQixRQUFRLEVBQUUsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUN2RixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXLENBQUMsUUFBdUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs7O1lBeERKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsbUNBQW1DO2FBQ2hEOzs7WUF4QmtDLFdBQVc7WUFDdEMsY0FBYztZQUFFLE1BQU07OztpQ0E0QnpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRUYWIsIE1hdFRhYkNoYW5nZUV2ZW50LCBNYXRUYWJHcm91cH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2Nsb25lfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0Q29udHJvbGxlcn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9hYnN0cmFjdC1jb250cm9sbGVyJztcblxuLyoqXG4gKiBSZXR1cm5zIGFuIGlkZW50aWZpZXIgZm9yIHRoZSB0YWJcbiAqL1xuZnVuY3Rpb24gZ2V0VGFiSWQodGFiOiBNYXRUYWIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0YWIuY29udGVudD8udmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaWQgPz8gJyc7XG59XG5cbi8qKlxuICogVXNhZ2UgOlxuICpcbiAqIDxtYXQtdGFiLWdyb3VwIFtuYXR1cmFsTGlua2FibGVUYWJdPVwiIWlzUGFuZWxcIj5cbiAqICAgICA8bWF0LXRhYiBsYWJlbD1cIlRoaXJkIDFcIj50aGlyZCAxPC9tYXQtdGFiPiAvLyBGaXJzdCB0YWIgZG9lc24ndCBuZWVkIGlkLiBUaGlzIGtlZXBzIHVybCBjbGVhbiBvbiBkZWZhdWx0IG9uZVxuICogICAgIDxtYXQtdGFiIGxhYmVsPVwiVGhpcmQgMlwiIGlkPVwidGhpcmQyXCI+VGhpcmQgMjwvbWF0LXRhYj5cbiAqICAgICAuLi5cbiAqIDwvbWF0LXRhYi1ncm91cD5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdtYXQtdGFiLWdyb3VwW25hdHVyYWxMaW5rYWJsZVRhYl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsTGlua2FibGVUYWJEaXJlY3RpdmUgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICogSWYgZmFsc2UsIGRpc2FibGVzIHRoZSBwZXJzaXN0ZW50IG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbmF0dXJhbExpbmthYmxlVGFiOiBib29sZWFuIHwgJycgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBNYXRUYWJHcm91cCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF0dXJhbExpbmthYmxlVGFiID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hlbiB1cmwgcGFyYW1zIGNoYW5nZSwgdXBkYXRlIHRoZSBtYXQtdGFiLWdyb3VwIHNlbGVjdGVkIHRhYlxuICAgICAgICB0aGlzLnJvdXRlLmZyYWdtZW50LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZShmcmFnbWVudCA9PiB7XG4gICAgICAgICAgICAvLyBHZXQgaW5kZXggb2YgdGFiIHRoYXQgbWF0Y2hlcyB3YW50ZWQgbmFtZVxuICAgICAgICAgICAgY29uc3QgdGFiSW5kZXggPSB0aGlzLmdldFRhYkluZGV4KGZyYWdtZW50KTtcblxuICAgICAgICAgICAgLy8gSWYgdGFiIGluZGV4IGlzIHZhbGlkICg+PSAwKSBnbyB0byBnaXZlbiBmcmFnbWVudFxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZnJhZ21lbnQgYXQgYWxsLCBnbyB0byBmaXJzdCB0YWIgKGluZGV4IGlzIC0xIGluIHRoaXMgY2FzZSlcbiAgICAgICAgICAgIGlmICh0YWJJbmRleCA+PSAwIHx8ICFmcmFnbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LnNlbGVjdGVkSW5kZXggPSB0YWJJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gV2hlbiBtYXQtdGFiLWdyb3VwcyBzZWxlY3RlZCB0YWIgY2hhbmdlLCB1cGRhdGUgdXJsXG4gICAgICAgIHRoaXMuY29tcG9uZW50LnNlbGVjdGVkVGFiQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmF0ZWRUYWJOYW1lID0gZ2V0VGFiSWQoZXZlbnQudGFiKTtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC51cmw7XG4gICAgICAgICAgICBpZiAoIXNlZ21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBpbiBub3JtYWwgdXNhZ2UsIGJlY2F1c2UgaXQgd291bGQgbWVhbnMgdGhlcmUgaXMgbm8gcm91dGUgYXQgYWxsIGluIHRoZSBhcHBcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgVVJMIGZvciB0YWJzIHdpdGhvdXQgYW55IHNlZ21lbnRzIGluIFVSTCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHZXQgdXJsIG1hdHJpeCBwYXJhbXMgKC9zZWdtZW50O21hdHJpeD1wYXJhbSkgb25seSB3aXRob3V0IHJvdXRlIHBhcmFtcyAoc2VnbWVudC86aWQpXG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBjbG9uZShzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXS5wYXJhbWV0ZXJzKTtcblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJywgcGFyYW1zXSwge1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ3ByZXNlcnZlJyxcbiAgICAgICAgICAgICAgICBmcmFnbWVudDogYWN0aXZhdGVkVGFiTmFtZSAmJiBhY3RpdmF0ZWRUYWJOYW1lLmxlbmd0aCA/IGFjdGl2YXRlZFRhYk5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWJJbmRleChmcmFnbWVudDogc3RyaW5nIHwgbnVsbCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5fdGFicy50b0FycmF5KCkuZmluZEluZGV4KHRhYiA9PiBmcmFnbWVudCA9PT0gZ2V0VGFiSWQodGFiKSk7XG4gICAgfVxufVxuIl19