@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
@@ -0,0 +1,20 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/button";
5
+ import * as i2 from "@angular/material/dialog";
6
+ export class NaturalConfirmComponent {
7
+ constructor(data) {
8
+ this.data = data;
9
+ }
10
+ }
11
+ NaturalConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalConfirmComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
12
+ NaturalConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: NaturalConfirmComponent, selector: "ng-component", ngImport: i0, template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions>\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}mat-dialog-actions{display:flex;justify-content:flex-end}mat-dialog-actions>*{margin-left:10px}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalConfirmComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions>\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}mat-dialog-actions{display:flex;justify-content:flex-end}mat-dialog-actions>*{margin-left:10px}\n"] }]
16
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
17
+ type: Inject,
18
+ args: [MAT_DIALOG_DATA]
19
+ }] }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hbGVydC9jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2FsZXJ0L2NvbmZpcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBYXpELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsWUFBbUQsSUFBd0I7UUFBeEIsU0FBSSxHQUFKLElBQUksQ0FBb0I7SUFBRyxDQUFDOztvSEFEdEUsdUJBQXVCLGtCQUNMLGVBQWU7d0dBRGpDLHVCQUF1QixvRENkcEMsMFhBUUE7MkZETWEsdUJBQXVCO2tCQUpuQyxTQUFTOzs7MEJBS2MsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuZXhwb3J0IGludGVyZmFjZSBOYXR1cmFsQ29uZmlybURhdGEge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGNvbmZpcm1UZXh0OiBzdHJpbmc7XG4gICAgY2FuY2VsVGV4dDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uZmlybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsQ29uZmlybUNvbXBvbmVudCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogTmF0dXJhbENvbmZpcm1EYXRhKSB7fVxufVxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3sgZGF0YS50aXRsZSB9fTwvaDI+XG48bWF0LWRpYWxvZy1jb250ZW50XG4gICAgPjxwIGNsYXNzPVwibWF0LWJvZHlcIj57eyBkYXRhLm1lc3NhZ2UgfX08L3A+PC9tYXQtZGlhbG9nLWNvbnRlbnRcbj5cbjxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiIG1hdC1idXR0b24+e3sgZGF0YS5jYW5jZWxUZXh0IH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ0cnVlXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNka0ZvY3VzSW5pdGlhbD57eyBkYXRhLmNvbmZpcm1UZXh0IH19PC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AvatarComponent } from './component/avatar.component';
4
+ import * as i0 from "@angular/core";
5
+ const declarations = [AvatarComponent];
6
+ export class NaturalAvatarModule {
7
+ }
8
+ NaturalAvatarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ NaturalAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalAvatarModule, declarations: [AvatarComponent], imports: [CommonModule], exports: [AvatarComponent] });
10
+ NaturalAvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalAvatarModule, imports: [[CommonModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalAvatarModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: declarations,
16
+ exports: declarations,
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFN0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQU92QyxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBUFYsZUFBZSxhQUd2QixZQUFZLGFBSEosZUFBZTtpSEFPeEIsbUJBQW1CLFlBSm5CLENBQUMsWUFBWSxDQUFDOzJGQUlkLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxZQUFZO29CQUMxQixPQUFPLEVBQUUsWUFBWTtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBdmF0YXJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50L2F2YXRhci5jb21wb25lbnQnO1xuXG5jb25zdCBkZWNsYXJhdGlvbnMgPSBbQXZhdGFyQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IGRlY2xhcmF0aW9ucyxcbiAgICBleHBvcnRzOiBkZWNsYXJhdGlvbnMsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBdmF0YXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,187 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../service/avatar.service";
4
+ import * as i2 from "@angular/common";
5
+ /**
6
+ * Show an avatar from different sources
7
+ */
8
+ export class AvatarComponent {
9
+ constructor(avatarService) {
10
+ this.avatarService = avatarService;
11
+ this.size = 50;
12
+ this.textSizeRatio = 3;
13
+ this.fgColor = '#FFF';
14
+ this.borderRadius = '';
15
+ this.textMaximumLength = 0;
16
+ this.avatarSrc = null;
17
+ this.avatarText = null;
18
+ this.avatarStyle = {};
19
+ this.hostStyle = {};
20
+ this.currentIndex = -1;
21
+ this.sources = [];
22
+ }
23
+ /**
24
+ * Detect inputs change
25
+ */
26
+ ngOnChanges(changes) {
27
+ this.sources.length = 0;
28
+ for (const [propName, creator] of this.avatarService.getCreators()) {
29
+ if (!changes[propName]) {
30
+ continue;
31
+ }
32
+ const currentValue = changes[propName].currentValue;
33
+ if (currentValue && typeof currentValue === 'string') {
34
+ this.sources.push(new creator(currentValue));
35
+ }
36
+ }
37
+ // reinitialize the avatar component when a source property value has changed
38
+ // the fallback system must be re-invoked with the new values.
39
+ this.initializeAvatar();
40
+ }
41
+ /**
42
+ * Fetch avatar source
43
+ */
44
+ tryNextSource() {
45
+ const previousSource = this.sources[this.currentIndex];
46
+ if (previousSource) {
47
+ this.avatarService.markSourceAsFailed(previousSource);
48
+ }
49
+ const source = this.findNextSource();
50
+ if (!source) {
51
+ return;
52
+ }
53
+ if (source.isTextual()) {
54
+ this.buildTextAvatar(source);
55
+ this.avatarSrc = null;
56
+ }
57
+ else {
58
+ this.buildImageAvatar(source);
59
+ }
60
+ }
61
+ findNextSource() {
62
+ while (++this.currentIndex < this.sources.length) {
63
+ const source = this.sources[this.currentIndex];
64
+ if (source && !this.avatarService.sourceHasFailedBefore(source)) {
65
+ return source;
66
+ }
67
+ }
68
+ return null;
69
+ }
70
+ /**
71
+ * Initialize the avatar component and its fallback system
72
+ */
73
+ initializeAvatar() {
74
+ this.currentIndex = -1;
75
+ if (this.sources.length > 0) {
76
+ this.tryNextSource();
77
+ this.hostStyle = {
78
+ width: this.size + 'px',
79
+ height: this.size + 'px',
80
+ };
81
+ }
82
+ }
83
+ buildTextAvatar(avatarSource) {
84
+ this.avatarText = avatarSource.getAvatar(+this.textMaximumLength);
85
+ this.avatarStyle = this.getTextualStyle(avatarSource.getValue());
86
+ }
87
+ buildImageAvatar(avatarSource) {
88
+ this.avatarStyle = this.getImageStyle();
89
+ this.avatarSrc = avatarSource.getAvatar(+this.size);
90
+ }
91
+ /**
92
+ * Returns initials style
93
+ */
94
+ getTextualStyle(avatarValue) {
95
+ return {
96
+ textAlign: 'center',
97
+ borderRadius: this.borderRadius || '100%',
98
+ textTransform: 'uppercase',
99
+ color: this.fgColor,
100
+ backgroundColor: this.bgColor ? this.bgColor : this.avatarService.getRandomColor(avatarValue),
101
+ font: Math.floor(+this.size / this.textSizeRatio) + 'px Helvetica, Arial, sans-serif',
102
+ lineHeight: this.size + 'px',
103
+ };
104
+ }
105
+ /**
106
+ * Returns image style
107
+ */
108
+ getImageStyle() {
109
+ return {
110
+ maxWidth: '100%',
111
+ borderRadius: this.borderRadius || '100%',
112
+ width: this.size + 'px',
113
+ height: this.size + 'px',
114
+ };
115
+ }
116
+ }
117
+ AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.AvatarService }], target: i0.ɵɵFactoryTarget.Component });
118
+ AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AvatarComponent, selector: "natural-avatar", inputs: { image: "image", initials: "initials", gravatar: "gravatar", size: "size", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderRadius: "borderRadius", textMaximumLength: "textMaximumLength" }, usesOnChanges: true, ngImport: i0, 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
+ `, isInline: true, styles: [":host{border-radius:50%}\n"], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AvatarComponent, decorators: [{
138
+ type: Component,
139
+ args: [{
140
+ selector: 'natural-avatar',
141
+ styles: [
142
+ `
143
+ :host {
144
+ border-radius: 50%;
145
+ }
146
+ `,
147
+ ],
148
+ template: `
149
+ <div class="avatar-container" [ngStyle]="hostStyle">
150
+ <img
151
+ *ngIf="avatarSrc; else textAvatar"
152
+ [src]="avatarSrc"
153
+ [width]="size"
154
+ [height]="size"
155
+ [ngStyle]="avatarStyle"
156
+ (error)="tryNextSource()"
157
+ class="avatar-content"
158
+ loading="lazy"
159
+ />
160
+ <ng-template #textAvatar>
161
+ <div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
162
+ {{ avatarText }}
163
+ </div>
164
+ </ng-template>
165
+ </div>
166
+ `,
167
+ }]
168
+ }], ctorParameters: function () { return [{ type: i1.AvatarService }]; }, propDecorators: { image: [{
169
+ type: Input
170
+ }], initials: [{
171
+ type: Input
172
+ }], gravatar: [{
173
+ type: Input
174
+ }], size: [{
175
+ type: Input
176
+ }], textSizeRatio: [{
177
+ type: Input
178
+ }], bgColor: [{
179
+ type: Input
180
+ }], fgColor: [{
181
+ type: Input
182
+ }], borderRadius: [{
183
+ type: Input
184
+ }], textMaximumLength: [{
185
+ type: Input
186
+ }] } });
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBMkIsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekU7O0dBRUc7QUE4QkgsTUFBTSxPQUFPLGVBQWU7SUFvQnhCLFlBQW9DLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBZmhELFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUUvQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUNqQyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVUsRUFBRSxDQUFDO1FBRXJCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztJQUVvQyxDQUFDO0lBRXBFOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN4QixLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQixTQUFTO2FBQ1o7WUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQ3BELElBQUksWUFBWSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUNoRDtTQUNKO1FBRUQsNkVBQTZFO1FBQzdFLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhO1FBQ2hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDekQ7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDekI7YUFBTTtZQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9DLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDN0QsT0FBTyxNQUFNLENBQUM7YUFDakI7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHO2dCQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUk7Z0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUk7YUFDM0IsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUFvQjtRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFlBQW9CO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsV0FBbUI7UUFDdkMsT0FBTztZQUNILFNBQVMsRUFBRSxRQUFRO1lBQ25CLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU07WUFDekMsYUFBYSxFQUFFLFdBQVc7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ25CLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDN0YsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxpQ0FBaUM7WUFDckYsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtTQUMvQixDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNqQixPQUFPO1lBQ0gsUUFBUSxFQUFFLE1BQU07WUFDaEIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUk7U0FDM0IsQ0FBQztJQUNOLENBQUM7OzRHQTdIUSxlQUFlO2dHQUFmLGVBQWUsK1NBcEJkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQ7MkZBRVEsZUFBZTtrQkE3QjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsTUFBTSxFQUFFO3dCQUNKOzs7O1NBSUM7cUJBQ0o7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQ7aUJBQ0o7b0dBRW1CLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxpQkFBaUI7c0JBQWhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U291cmNlfSBmcm9tICcuLi9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge0F2YXRhclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvYXZhdGFyLnNlcnZpY2UnO1xuXG50eXBlIFN0eWxlID0gUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcblxuLyoqXG4gKiBTaG93IGFuIGF2YXRhciBmcm9tIGRpZmZlcmVudCBzb3VyY2VzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1hdmF0YXInLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJob3N0U3R5bGVcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cImF2YXRhclNyYzsgZWxzZSB0ZXh0QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImF2YXRhclNyY1wiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cInNpemVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIlxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJ0cnlOZXh0U291cmNlKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXZhdGFyLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRBdmF0YXI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF2YXRhclRleHRcIiBjbGFzcz1cImF2YXRhci1jb250ZW50XCIgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgYXZhdGFyVGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW1hZ2U/OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFscz86IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KCkgcHVibGljIGdyYXZhdGFyPzogc3RyaW5nIHwgbnVsbDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaXplID0gNTA7XG4gICAgQElucHV0KCkgcHVibGljIHRleHRTaXplUmF0aW8gPSAzO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBiZ0NvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGZnQ29sb3IgPSAnI0ZGRic7XG4gICAgQElucHV0KCkgcHVibGljIGJvcmRlclJhZGl1cyA9ICcnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0TWF4aW11bUxlbmd0aCA9IDA7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYXZhdGFyVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGF2YXRhclN0eWxlOiBTdHlsZSA9IHt9O1xuICAgIHB1YmxpYyBob3N0U3R5bGU6IFN0eWxlID0ge307XG5cbiAgICBwcml2YXRlIGN1cnJlbnRJbmRleCA9IC0xO1xuICAgIHByaXZhdGUgc291cmNlczogU291cmNlW10gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF2YXRhclNlcnZpY2U6IEF2YXRhclNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgaW5wdXRzIGNoYW5nZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc291cmNlcy5sZW5ndGggPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IFtwcm9wTmFtZSwgY3JlYXRvcl0gb2YgdGhpcy5hdmF0YXJTZXJ2aWNlLmdldENyZWF0b3JzKCkpIHtcbiAgICAgICAgICAgIGlmICghY2hhbmdlc1twcm9wTmFtZV0pIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gY2hhbmdlc1twcm9wTmFtZV0uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiB0eXBlb2YgY3VycmVudFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc291cmNlcy5wdXNoKG5ldyBjcmVhdG9yKGN1cnJlbnRWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVpbml0aWFsaXplIHRoZSBhdmF0YXIgY29tcG9uZW50IHdoZW4gYSBzb3VyY2UgcHJvcGVydHkgdmFsdWUgaGFzIGNoYW5nZWRcbiAgICAgICAgLy8gdGhlIGZhbGxiYWNrIHN5c3RlbSBtdXN0IGJlIHJlLWludm9rZWQgd2l0aCB0aGUgbmV3IHZhbHVlcy5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplQXZhdGFyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggYXZhdGFyIHNvdXJjZVxuICAgICAqL1xuICAgIHB1YmxpYyB0cnlOZXh0U291cmNlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcmV2aW91c1NvdXJjZSA9IHRoaXMuc291cmNlc1t0aGlzLmN1cnJlbnRJbmRleF07XG4gICAgICAgIGlmIChwcmV2aW91c1NvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJTZXJ2aWNlLm1hcmtTb3VyY2VBc0ZhaWxlZChwcmV2aW91c1NvdXJjZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb3VyY2UgPSB0aGlzLmZpbmROZXh0U291cmNlKCk7XG4gICAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc291cmNlLmlzVGV4dHVhbCgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkVGV4dEF2YXRhcihzb3VyY2UpO1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJTcmMgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWlsZEltYWdlQXZhdGFyKHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmROZXh0U291cmNlKCk6IFNvdXJjZSB8IG51bGwge1xuICAgICAgICB3aGlsZSAoKyt0aGlzLmN1cnJlbnRJbmRleCA8IHRoaXMuc291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc291cmNlc1t0aGlzLmN1cnJlbnRJbmRleF07XG4gICAgICAgICAgICBpZiAoc291cmNlICYmICF0aGlzLmF2YXRhclNlcnZpY2Uuc291cmNlSGFzRmFpbGVkQmVmb3JlKHNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCBhbmQgaXRzIGZhbGxiYWNrIHN5c3RlbVxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUF2YXRhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAtMTtcbiAgICAgICAgaWYgKHRoaXMuc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnRyeU5leHRTb3VyY2UoKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdFN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5zaXplICsgJ3B4JyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkVGV4dEF2YXRhcihhdmF0YXJTb3VyY2U6IFNvdXJjZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmF2YXRhclRleHQgPSBhdmF0YXJTb3VyY2UuZ2V0QXZhdGFyKCt0aGlzLnRleHRNYXhpbXVtTGVuZ3RoKTtcbiAgICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0VGV4dHVhbFN0eWxlKGF2YXRhclNvdXJjZS5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkSW1hZ2VBdmF0YXIoYXZhdGFyU291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0SW1hZ2VTdHlsZSgpO1xuICAgICAgICB0aGlzLmF2YXRhclNyYyA9IGF2YXRhclNvdXJjZS5nZXRBdmF0YXIoK3RoaXMuc2l6ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpbml0aWFscyBzdHlsZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VGV4dHVhbFN0eWxlKGF2YXRhclZhbHVlOiBzdHJpbmcpOiBTdHlsZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmJvcmRlclJhZGl1cyB8fCAnMTAwJScsXG4gICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJyxcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLmZnQ29sb3IsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdDb2xvciA/IHRoaXMuYmdDb2xvciA6IHRoaXMuYXZhdGFyU2VydmljZS5nZXRSYW5kb21Db2xvcihhdmF0YXJWYWx1ZSksXG4gICAgICAgICAgICBmb250OiBNYXRoLmZsb29yKCt0aGlzLnNpemUgLyB0aGlzLnRleHRTaXplUmF0aW8pICsgJ3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogdGhpcy5zaXplICsgJ3B4JyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGltYWdlIHN0eWxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJbWFnZVN0eWxlKCk6IFN0eWxlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IHRoaXMuYm9yZGVyUmFkaXVzIHx8ICcxMDAlJyxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,66 @@
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.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
59
+ AvatarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AvatarService, providedIn: 'root' });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AvatarService, decorators: [{
61
+ type: Injectable,
62
+ args: [{
63
+ providedIn: 'root',
64
+ }]
65
+ }], ctorParameters: function () { return []; } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc2VydmljZS9hdmF0YXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDOztBQUd2Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBd0J0QjtRQXZCQTs7O1dBR0c7UUFDYyxtQkFBYyxHQUFHLElBQUksR0FBRyxDQUF1QztZQUM1RSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDdEIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ2hCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFYyxpQkFBWSxHQUFHO1lBQzVCLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1osQ0FBQztRQUVlLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFckMsQ0FBQztJQUVoQixjQUFjLENBQUMsVUFBa0I7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNiLE9BQU8sYUFBYSxDQUFDO1NBQ3hCO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWM7UUFDL0IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFjO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFjO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLO2FBQ1AsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNULEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7OzBHQXhEUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U291cmNlLCBTb3VyY2VDcmVhdG9yfSBmcm9tICcuLi9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge0dyYXZhdGFyfSBmcm9tICcuLi9zb3VyY2VzL2dyYXZhdGFyJztcbmltcG9ydCB7SW5pdGlhbHN9IGZyb20gJy4uL3NvdXJjZXMvaW5pdGlhbHMnO1xuaW1wb3J0IHtJbWFnZX0gZnJvbSAnLi4vc291cmNlcy9pbWFnZSc7XG5pbXBvcnQge0F2YXRhckNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50L2F2YXRhci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHV0aWxpdGllcyBtZXRob2RzIHJlbGF0ZWQgdG8gQXZhdGFyIGNvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBPcmRlcmVkIHBhaXJzIG9mIHBvc3NpYmxlIHNvdXJjZXMuIEZpcnN0IGluIGxpc3QgaXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuXG4gICAgICogQW5kIGtleSBtdXN0IG1hdGNoIG9uZSB0aGUgaW5wdXQgb2YgQXZhdGFyQ29tcG9uZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc291cmNlQ3JlYXRvcnMgPSBuZXcgTWFwPGtleW9mIEF2YXRhckNvbXBvbmVudCwgU291cmNlQ3JlYXRvcj4oW1xuICAgICAgICBbJ2dyYXZhdGFyJywgR3JhdmF0YXJdLFxuICAgICAgICBbJ2ltYWdlJywgSW1hZ2VdLFxuICAgICAgICBbJ2luaXRpYWxzJywgSW5pdGlhbHNdLFxuICAgIF0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdmF0YXJDb2xvcnMgPSBbXG4gICAgICAgICcjMWFiYzljJyxcbiAgICAgICAgJyMzNDk4ZGInLFxuICAgICAgICAnI2YxYzQwZicsXG4gICAgICAgICcjOGU0NGFkJyxcbiAgICAgICAgJyNlNzRjM2MnLFxuICAgICAgICAnI2QzNTQwMCcsXG4gICAgICAgICcjMmMzZTUwJyxcbiAgICAgICAgJyM3ZjhjOGQnLFxuICAgIF07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhaWxlZFNvdXJjZXMgPSBuZXcgTWFwPHN0cmluZywgU291cmNlPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHB1YmxpYyBnZXRSYW5kb21Db2xvcihhdmF0YXJUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWF2YXRhclRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiAndHJhbnNwYXJlbnQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzY2lpQ29kZVN1bSA9IHRoaXMuY2FsY3VsYXRlQXNjaWlDb2RlKGF2YXRhclRleHQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmF2YXRhckNvbG9yc1thc2NpaUNvZGVTdW0gJSB0aGlzLmF2YXRhckNvbG9ycy5sZW5ndGhdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDcmVhdG9ycygpOiBJdGVyYWJsZUl0ZXJhdG9yPFtrZXlvZiBBdmF0YXJDb21wb25lbnQsIFNvdXJjZUNyZWF0b3JdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZUNyZWF0b3JzLmVudHJpZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNvdXJjZUtleShzb3VyY2U6IFNvdXJjZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzb3VyY2UuY29uc3RydWN0b3IubmFtZSArICctJyArIHNvdXJjZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3VyY2VIYXNGYWlsZWRCZWZvcmUoc291cmNlOiBTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmFpbGVkU291cmNlcy5oYXModGhpcy5nZXRTb3VyY2VLZXkoc291cmNlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1hcmtTb3VyY2VBc0ZhaWxlZChzb3VyY2U6IFNvdXJjZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmZhaWxlZFNvdXJjZXMuc2V0KHRoaXMuZ2V0U291cmNlS2V5KHNvdXJjZSksIHNvdXJjZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVBc2NpaUNvZGUodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcChsZXR0ZXIgPT4gbGV0dGVyLmNoYXJDb2RlQXQoMCkpXG4gICAgICAgICAgICAucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gcHJldmlvdXMgKyBjdXJyZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
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
+ // eslint-disable-next-line no-restricted-globals
8
+ const myWindow = window;
9
+ if (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?.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhdmF0YXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9hdmF0YXIvc291cmNlcy9ncmF2YXRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzNCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsU0FBUyxRQUFRO0lBQ2IsZ0VBQWdFO0lBQ2hFLHlFQUF5RTtJQUN6RSx3QkFBd0I7SUFDeEIsaURBQWlEO0lBQ2pELE1BQU0sUUFBUSxHQUF1QixNQUFNLENBQUM7SUFFNUMsSUFBSSxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLFVBQVUsR0FDWiwySUFBMkksQ0FBQztJQUVoSixPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN0RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUyxTQUFRLE1BQU07SUFDekIsU0FBUyxDQUFDLElBQVk7UUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZHLE1BQU0sVUFBVSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEQsT0FBTyxzQ0FBc0MsR0FBRyxNQUFNLFVBQVUsUUFBUSxDQUFDO0lBQzdFLENBQUM7SUFFTSxTQUFTO1FBQ1osT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZDV9IGZyb20gJ3RzLW1kNSc7XG5pbXBvcnQge1NvdXJjZX0gZnJvbSAnLi9zb3VyY2UnO1xuXG5mdW5jdGlvbiBpc1JldGluYSgpOiBib29sZWFuIHtcbiAgICAvLyBXZSBjYW5ub3QgcmVhc29uYWJseSBpbmplY3QgYERPQ1VNRU5UYCBoZXJlLCBidXQgd2UgYXJlIGV4dHJhXG4gICAgLy8gY2FyZWZ1bCBhYm91dCB1c2FnZSBvZiBgd2luZG93YCBhbmQgaXRzIHBvc3NpYmxlIG5vbi1leGlzdGVuY2UgaW4gU1NSLFxuICAgIC8vIHNvIHdlIHNob3VsZCBiZSBmaW5lLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICBjb25zdCBteVdpbmRvdzogV2luZG93IHwgdW5kZWZpbmVkID0gd2luZG93O1xuXG4gICAgaWYgKG15V2luZG93Py5kZXZpY2VQaXhlbFJhdGlvID4gMS4yNSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtZWRpYVF1ZXJ5ID1cbiAgICAgICAgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMjUpLCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSwgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDUvNCksIChtaW4tcmVzb2x1dGlvbjogMS4yNWRwcHgpJztcblxuICAgIHJldHVybiAhIW15V2luZG93Py5tYXRjaE1lZGlhKG1lZGlhUXVlcnkpLm1hdGNoZXM7XG59XG5cbi8qKlxuICogUmV0dXJuIFVSTCB0byBHcmF2YXRhciBpbWFnZSBmcm9tIGVpdGhlciBhbiBlbWFpbCBvciBhIE1ENVxuICovXG5leHBvcnQgY2xhc3MgR3JhdmF0YXIgZXh0ZW5kcyBTb3VyY2Uge1xuICAgIHB1YmxpYyBnZXRBdmF0YXIoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG1kNSA9IHZhbHVlLm1hdGNoKCdeW2EtZjAtOV17MzJ9JCcpID8gdmFsdWUgOiBNZDUuaGFzaFN0cih2YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSkudG9TdHJpbmcoKTtcblxuICAgICAgICBjb25zdCBhdmF0YXJTaXplID0gaXNSZXRpbmEoKSA/IHNpemUgKiAyIDogc2l6ZTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3NlY3VyZS5ncmF2YXRhci5jb20vYXZhdGFyLyR7bWQ1fT9zPSR7YXZhdGFyU2l6ZX0mZD00MDRgO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1RleHR1YWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
@@ -12,4 +12,4 @@ export class Source {
12
12
  return this.value;
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvYXZhdGFyL3NvdXJjZXMvc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLE1BQU07SUFDeEIsWUFBNkIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztDQVlKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGNyZWF0b3IgaW50ZXJmYWNlIHVzZWQgdG8gaW5zdGFudGlhdGUgc291cmNlIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZUNyZWF0b3IgPSBuZXcgKHNvdXJjZVZhbHVlOiBzdHJpbmcpID0+IFNvdXJjZTtcblxuLyoqXG4gKiBDb250cmFjdCBvZiBhbGwgU291cmNlcy5cbiAqIEV2ZXJ5IHNvdXJjZSBtdXN0IGltcGxlbWVudHMgdGhlIGZldGNoIG1ldGhvZFxuICogaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgYXZhdGFyIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNvdXJjZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYXZhdGFyIHRoYXQgdXN1YWxseSBpcyBhIFVSTCwgYnV0LFxuICAgICAqIGZvciBleGFtcGxlIGl0IGNhbiBhbHNvIGJlIGEgc3RyaW5nIG9mIGluaXRpYWxzIGZyb20gdGhlIG5hbWUuXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldEF2YXRhcihzaXplOiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBhdmF0YXIgaXMgcHVyZWx5IHRleHR1YWwgb3IgYW4gVVJMIGZvciBhbiBpbWFnZVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpc1RleHR1YWwoKTogYm9vbGVhbjtcbn1cbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvYXZhdGFyL3NvdXJjZXMvc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLE1BQU07SUFDeEIsWUFBb0MsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztDQVlKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGNyZWF0b3IgaW50ZXJmYWNlIHVzZWQgdG8gaW5zdGFudGlhdGUgc291cmNlIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZUNyZWF0b3IgPSBuZXcgKHNvdXJjZVZhbHVlOiBzdHJpbmcpID0+IFNvdXJjZTtcblxuLyoqXG4gKiBDb250cmFjdCBvZiBhbGwgU291cmNlcy5cbiAqIEV2ZXJ5IHNvdXJjZSBtdXN0IGltcGxlbWVudHMgdGhlIGZldGNoIG1ldGhvZFxuICogaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgYXZhdGFyIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNvdXJjZSB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGF2YXRhciB0aGF0IHVzdWFsbHkgaXMgYSBVUkwsIGJ1dCxcbiAgICAgKiBmb3IgZXhhbXBsZSBpdCBjYW4gYWxzbyBiZSBhIHN0cmluZyBvZiBpbml0aWFscyBmcm9tIHRoZSBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRBdmF0YXIoc2l6ZTogbnVtYmVyKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYXZhdGFyIGlzIHB1cmVseSB0ZXh0dWFsIG9yIGFuIFVSTCBmb3IgYW4gaW1hZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgaXNUZXh0dWFsKCk6IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class NaturalColumnsPickerColumnDirective {
4
+ constructor(elementRef) {
5
+ this.elementRef = elementRef;
6
+ /**
7
+ * Initial checked state
8
+ */
9
+ this.checked = true;
10
+ /**
11
+ * Initial visibility state
12
+ */
13
+ this.hidden = false;
14
+ }
15
+ /**
16
+ * This must be the column key as defined in matColumnDef
17
+ */
18
+ set naturalColumnsPickerColumn(value) {
19
+ this.key = value;
20
+ }
21
+ ngOnInit() {
22
+ // Default label to key before real label is accessible
23
+ this.label = this.key;
24
+ }
25
+ ngAfterViewInit() {
26
+ this.label = this.elementRef.nativeElement.textContent;
27
+ }
28
+ }
29
+ NaturalColumnsPickerColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerColumnDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
30
+ NaturalColumnsPickerColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: NaturalColumnsPickerColumnDirective, selector: "[naturalColumnsPickerColumn]", inputs: { checked: "checked", hidden: "hidden", naturalColumnsPickerColumn: "naturalColumnsPickerColumn" }, ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerColumnDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[naturalColumnsPickerColumn]',
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { checked: [{
37
+ type: Input
38
+ }], hidden: [{
39
+ type: Input
40
+ }], naturalColumnsPickerColumn: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXItY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbHVtbnMtcGlja2VyL2NvbHVtbnMtcGlja2VyLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQWMsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDOztBQUtsRixNQUFNLE9BQU8sbUNBQW1DO0lBa0I1QyxZQUFvQyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZjFEOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksQ0FBQztRQUUvQjs7V0FFRztRQUNhLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFPOEIsQ0FBQztJQUU5RDs7T0FFRztJQUNILElBQ1csMEJBQTBCLENBQUMsS0FBYTtRQUMvQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUTtRQUNYLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQzs7Z0lBbkNRLG1DQUFtQztvSEFBbkMsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBSC9DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtpQkFDM0M7aUdBT21CLE9BQU87c0JBQXRCLEtBQUs7Z0JBS1UsTUFBTTtzQkFBckIsS0FBSztnQkFhSywwQkFBMEI7c0JBRHBDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uXScsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcbiAgICBwdWJsaWMga2V5ITogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBjaGVja2VkIHN0YXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGNoZWNrZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCB2aXNpYmlsaXR5IHN0YXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhpZGRlbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxpemVkIGxhYmVsIG9mIGNvbHVtbiwgaWYgYWJzZW50IGRlZmF1bHQgdG8ga2V5XG4gICAgICovXG4gICAgcHVibGljIGxhYmVsITogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbXVzdCBiZSB0aGUgY29sdW1uIGtleSBhcyBkZWZpbmVkIGluIG1hdENvbHVtbkRlZlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBuYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMua2V5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZhdWx0IGxhYmVsIHRvIGtleSBiZWZvcmUgcmVhbCBsYWJlbCBpcyBhY2Nlc3NpYmxlXG4gICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,84 @@
1
+ import { ChangeDetectionStrategy, 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
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/menu";
7
+ import * as i2 from "@angular/material/checkbox";
8
+ import * as i3 from "@angular/material/button";
9
+ import * as i4 from "../icon/icon.component";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/forms";
12
+ import * as i7 from "@angular/material/tooltip";
13
+ export class NaturalColumnsPickerComponent {
14
+ constructor(changeDetectorRef) {
15
+ this.changeDetectorRef = changeDetectorRef;
16
+ /**
17
+ * Emit a list of valid and selected column keys whenever the selection changes
18
+ */
19
+ this.selectionChange = new EventEmitter();
20
+ /**
21
+ * Available columns are defined by options in the template
22
+ */
23
+ this.availableColumns = null;
24
+ /**
25
+ * Displayed options in the dropdown menu
26
+ */
27
+ this.displayedColumns = [];
28
+ this.ngUnsubscribe = new Subject();
29
+ }
30
+ /**
31
+ * Set the columns that are wanted but might be unavailable.
32
+ *
33
+ * If a column is unavailable it will be ignored silently. To know what columns were actually applied
34
+ * you should use `selectionChange`.
35
+ *
36
+ * It is often set once on component initialization, but it can also be set again later in the lifespan of the component.
37
+ */
38
+ set selections(columns) {
39
+ this._selections = columns;
40
+ if (!columns || !this.availableColumns) {
41
+ return;
42
+ }
43
+ this.availableColumns?.forEach(col => {
44
+ col.checked = columns.includes(col.key);
45
+ });
46
+ this.updateColumns();
47
+ }
48
+ ngAfterViewInit() {
49
+ cancellableTimeout(this.ngUnsubscribe).subscribe(() => {
50
+ this.initColumns();
51
+ this.updateColumns();
52
+ this.changeDetectorRef.detectChanges();
53
+ });
54
+ }
55
+ initColumns() {
56
+ this.availableColumns?.forEach(col => {
57
+ col.checked = this._selections?.length ? this._selections.includes(col.key) : col.checked;
58
+ });
59
+ // Show options only for columns that are not hidden
60
+ this.displayedColumns = this.availableColumns?.filter(col => !col.hidden) ?? [];
61
+ }
62
+ updateColumns() {
63
+ const selectedColumns = this.availableColumns?.filter(col => col.checked).map(col => col.key);
64
+ this.selectionChange.emit(selectedColumns);
65
+ }
66
+ ngOnDestroy() {
67
+ this.ngUnsubscribe.next(); // unsubscribe everybody
68
+ this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
69
+ }
70
+ }
71
+ NaturalColumnsPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
72
+ NaturalColumnsPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: NaturalColumnsPickerComponent, selector: "natural-columns-picker", inputs: { selections: "selections" }, outputs: { selectionChange: "selectionChange" }, queries: [{ propertyName: "availableColumns", predicate: NaturalColumnsPickerColumnDirective }], ngImport: i0, 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", components: [{ type: i1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.NaturalIconComponent, selector: "natural-icon", inputs: ["label", "labelColor", "labelPosition", "name", "size"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'natural-columns-picker', changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
76
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selections: [{
77
+ type: Input
78
+ }], selectionChange: [{
79
+ type: Output
80
+ }], availableColumns: [{
81
+ type: ContentChildren,
82
+ args: [NaturalColumnsPickerColumnDirective]
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQU83QixNQUFNLE9BQU8sNkJBQTZCO0lBNEN0QyxZQUFvQyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWxCeEU7O1dBRUc7UUFDdUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXpFOztXQUVHO1FBRUkscUJBQWdCLEdBQTBELElBQUksQ0FBQztRQUV0Rjs7V0FFRztRQUNJLHFCQUFnQixHQUEwQyxFQUFFLENBQUM7UUFFNUQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRStCLENBQUM7SUF6QzVFOzs7Ozs7O09BT0c7SUFDSCxJQUNXLFVBQVUsQ0FBQyxPQUE2QjtRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUUzQixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBc0JNLGVBQWU7UUFDbEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakMsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFTSxhQUFhO1FBQ2hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsd0RBQXdEO0lBQzNGLENBQUM7OzBIQXZFUSw2QkFBNkI7OEdBQTdCLDZCQUE2QixzTEFrQ3JCLG1DQUFtQyw2QkN2RHhELDRyQkFnQkE7MkZES2EsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNJLHdCQUF3QixtQkFFakIsdUJBQXVCLENBQUMsTUFBTTt3R0FjcEMsVUFBVTtzQkFEcEIsS0FBSztnQkFrQm9CLGVBQWU7c0JBQXhDLE1BQU07Z0JBTUEsZ0JBQWdCO3NCQUR0QixlQUFlO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlfSBmcm9tICcuL2NvbHVtbnMtcGlja2VyLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtjYW5jZWxsYWJsZVRpbWVvdXR9IGZyb20gJy4uLy4uL2NsYXNzZXMvcnhqcyc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtY29sdW1ucy1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW5zLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxDb2x1bW5zUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIF9zZWxlY3Rpb25zPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGNvbHVtbnMgdGhhdCBhcmUgd2FudGVkIGJ1dCBtaWdodCBiZSB1bmF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIElmIGEgY29sdW1uIGlzIHVuYXZhaWxhYmxlIGl0IHdpbGwgYmUgaWdub3JlZCBzaWxlbnRseS4gVG8ga25vdyB3aGF0IGNvbHVtbnMgd2VyZSBhY3R1YWxseSBhcHBsaWVkXG4gICAgICogeW91IHNob3VsZCB1c2UgYHNlbGVjdGlvbkNoYW5nZWAuXG4gICAgICpcbiAgICAgKiBJdCBpcyBvZnRlbiBzZXQgb25jZSBvbiBjb21wb25lbnQgaW5pdGlhbGl6YXRpb24sIGJ1dCBpdCBjYW4gYWxzbyBiZSBzZXQgYWdhaW4gbGF0ZXIgaW4gdGhlIGxpZmVzcGFuIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbnMoY29sdW1uczogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9ucyA9IGNvbHVtbnM7XG5cbiAgICAgICAgaWYgKCFjb2x1bW5zIHx8ICF0aGlzLmF2YWlsYWJsZUNvbHVtbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlQ29sdW1ucz8uZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgY29sLmNoZWNrZWQgPSBjb2x1bW5zLmluY2x1ZGVzKGNvbC5rZXkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbWl0IGEgbGlzdCBvZiB2YWxpZCBhbmQgc2VsZWN0ZWQgY29sdW1uIGtleXMgd2hlbmV2ZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gICAgLyoqXG4gICAgICogQXZhaWxhYmxlIGNvbHVtbnMgYXJlIGRlZmluZWQgYnkgb3B0aW9ucyBpbiB0aGUgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKE5hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlKVxuICAgIHB1YmxpYyBhdmFpbGFibGVDb2x1bW5zOiBRdWVyeUxpc3Q8TmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmU+IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5ZWQgb3B0aW9ucyBpbiB0aGUgZHJvcGRvd24gbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zOiBOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZVtdID0gW107XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY2FuY2VsbGFibGVUaW1lb3V0KHRoaXMubmdVbnN1YnNjcmliZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdENvbHVtbnMoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sdW1ucygpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlQ29sdW1ucz8uZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgY29sLmNoZWNrZWQgPSB0aGlzLl9zZWxlY3Rpb25zPy5sZW5ndGggPyB0aGlzLl9zZWxlY3Rpb25zLmluY2x1ZGVzKGNvbC5rZXkpIDogY29sLmNoZWNrZWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNob3cgb3B0aW9ucyBvbmx5IGZvciBjb2x1bW5zIHRoYXQgYXJlIG5vdCBoaWRkZW5cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+ICFjb2wuaGlkZGVuKSA/PyBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5hdmFpbGFibGVDb2x1bW5zPy5maWx0ZXIoY29sID0+IGNvbC5jaGVja2VkKS5tYXAoY29sID0+IGNvbC5rZXkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkQ29sdW1ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpOyAvLyB1bnN1YnNjcmliZSBldmVyeWJvZHlcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7IC8vIGNvbXBsZXRlIHRoZSBzdHJlYW0sIGJlY2F1c2Ugd2Ugd2lsbCBuZXZlciBlbWl0IGFnYWluXG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICA8bWF0LW1lbnUgI25hdHVyYWxNZW51PVwibWF0TWVudVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBjb2x1bW4uY2hlY2tlZCA9ICFjb2x1bW4uY2hlY2tlZDsgdXBkYXRlQ29sdW1ucygpXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGlzcGxheWVkQ29sdW1uc1wiXG4gICAgICAgICAgICBjbGFzcz1cIm1hdC1tZW51LWl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAoY2hhbmdlKT1cInVwZGF0ZUNvbHVtbnMoKVwiIFsobmdNb2RlbCldPVwiY29sdW1uLmNoZWNrZWRcIj57e1xuICAgICAgICAgICAgICAgIGNvbHVtbi5sYWJlbFxuICAgICAgICAgICAgfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbiAgICA8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJuYXR1cmFsTWVudVwiIG1hdC1pY29uLWJ1dHRvbiBpMThuLW1hdFRvb2x0aXAgbWF0VG9vbHRpcD1cIlPDqWxlY3Rpb25uZXIgbGVzIGNvbG9ubmVzXCI+XG4gICAgICAgIDxuYXR1cmFsLWljb24gbmFtZT1cInZpZXdfY29sdW1uXCI+PC9uYXR1cmFsLWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,47 @@
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
+ import * as i0 from "@angular/core";
12
+ export class NaturalColumnsPickerModule {
13
+ }
14
+ NaturalColumnsPickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ NaturalColumnsPickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerModule, declarations: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent], imports: [CommonModule,
16
+ FormsModule,
17
+ MatMenuModule,
18
+ MatButtonModule,
19
+ MatCheckboxModule,
20
+ NaturalIconModule,
21
+ MatTooltipModule], exports: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent] });
22
+ NaturalColumnsPickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerModule, imports: [[
23
+ CommonModule,
24
+ FormsModule,
25
+ MatMenuModule,
26
+ MatButtonModule,
27
+ MatCheckboxModule,
28
+ NaturalIconModule,
29
+ MatTooltipModule,
30
+ ]] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NaturalColumnsPickerModule, decorators: [{
32
+ type: NgModule,
33
+ args: [{
34
+ declarations: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent],
35
+ imports: [
36
+ CommonModule,
37
+ FormsModule,
38
+ MatMenuModule,
39
+ MatButtonModule,
40
+ MatCheckboxModule,
41
+ NaturalIconModule,
42
+ MatTooltipModule,
43
+ ],
44
+ exports: [NaturalColumnsPickerColumnDirective, NaturalColumnsPickerComponent],
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvY29sdW1ucy1waWNrZXIvY29sdW1ucy1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQWUzRCxNQUFNLE9BQU8sMEJBQTBCOzt1SEFBMUIsMEJBQTBCO3dIQUExQiwwQkFBMEIsaUJBWnBCLG1DQUFtQyxFQUFFLDZCQUE2QixhQUU3RSxZQUFZO1FBQ1osV0FBVztRQUNYLGFBQWE7UUFDYixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixnQkFBZ0IsYUFFVixtQ0FBbUMsRUFBRSw2QkFBNkI7d0hBRW5FLDBCQUEwQixZQVgxQjtZQUNMLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtTQUNuQjsyRkFHUSwwQkFBMEI7a0JBYnRDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsbUNBQW1DLEVBQUUsNkJBQTZCLENBQUM7b0JBQ2xGLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLG1DQUFtQyxFQUFFLDZCQUE2QixDQUFDO2lCQUNoRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0Q2hlY2tib3hNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQge05hdHVyYWxJY29uTW9kdWxlfSBmcm9tICcuLi9pY29uL2ljb24ubW9kdWxlJztcbmltcG9ydCB7TmF0dXJhbENvbHVtbnNQaWNrZXJDb2x1bW5EaXJlY3RpdmV9IGZyb20gJy4vY29sdW1ucy1waWNrZXItY29sdW1uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05hdHVyYWxDb2x1bW5zUGlja2VyQ29tcG9uZW50fSBmcm9tICcuL2NvbHVtbnMtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05hdHVyYWxDb2x1bW5zUGlja2VyQ29sdW1uRGlyZWN0aXZlLCBOYXR1cmFsQ29sdW1uc1BpY2tlckNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRNZW51TW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgICAgICBOYXR1cmFsSWNvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtOYXR1cmFsQ29sdW1uc1BpY2tlckNvbHVtbkRpcmVjdGl2ZSwgTmF0dXJhbENvbHVtbnNQaWNrZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsQ29sdW1uc1BpY2tlck1vZHVsZSB7fVxuIl19