@geotrekce/geotrek-rando-widget 0.2.15 → 0.2.16

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 (228) hide show
  1. package/dist/cjs/geotrek-rando-widget.cjs.js +1 -1
  2. package/dist/cjs/geotrek-rando-widget.cjs.js.br +0 -0
  3. package/dist/cjs/geotrek-rando-widget.cjs.js.gz +0 -0
  4. package/dist/cjs/grw-app.cjs.entry.js +18 -4
  5. package/dist/cjs/grw-app.cjs.entry.js.br +0 -0
  6. package/dist/cjs/grw-app.cjs.entry.js.gz +0 -0
  7. package/dist/cjs/grw-app.cjs.entry.js.map +1 -1
  8. package/dist/cjs/grw-filter_8.cjs.entry.js +10 -4
  9. package/dist/cjs/grw-filter_8.cjs.entry.js.br +0 -0
  10. package/dist/cjs/grw-filter_8.cjs.entry.js.gz +0 -0
  11. package/dist/cjs/grw-filter_8.cjs.entry.js.map +1 -1
  12. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js +1 -1
  13. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js.br +0 -0
  14. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js.gz +0 -0
  15. package/dist/cjs/grw-trek-card.cjs.entry.js +2 -2
  16. package/dist/cjs/grw-trek-card.cjs.entry.js.br +0 -0
  17. package/dist/cjs/grw-trek-card.cjs.entry.js.gz +0 -0
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/cjs/loader.cjs.js.br +0 -0
  20. package/dist/cjs/loader.cjs.js.gz +0 -0
  21. package/dist/cjs/{store-b6d5fcad.js → store-7461838a.js} +4 -1
  22. package/dist/cjs/store-7461838a.js.br +0 -0
  23. package/dist/cjs/store-7461838a.js.gz +0 -0
  24. package/dist/cjs/store-7461838a.js.map +1 -0
  25. package/dist/cjs/{utils-1dd4bcbd.js → utils-7e65b55d.js} +17 -16
  26. package/dist/cjs/utils-7e65b55d.js.br +0 -0
  27. package/dist/cjs/utils-7e65b55d.js.gz +0 -0
  28. package/dist/cjs/utils-7e65b55d.js.map +1 -0
  29. package/dist/collection/components/grw-app/grw-app.css +60 -4
  30. package/dist/collection/components/grw-app/grw-app.css.br +0 -0
  31. package/dist/collection/components/grw-app/grw-app.css.gz +0 -0
  32. package/dist/collection/components/grw-app/grw-app.js +17 -2
  33. package/dist/collection/components/grw-app/grw-app.js.br +0 -0
  34. package/dist/collection/components/grw-app/grw-app.js.gz +0 -0
  35. package/dist/collection/components/grw-app/grw-app.js.map +1 -1
  36. package/dist/collection/components/grw-filter/grw-filter.js +25 -2
  37. package/dist/collection/components/grw-filter/grw-filter.js.br +0 -0
  38. package/dist/collection/components/grw-filter/grw-filter.js.gz +0 -0
  39. package/dist/collection/components/grw-filter/grw-filter.js.map +1 -1
  40. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +1 -1
  41. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.br +0 -0
  42. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.gz +0 -0
  43. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.map +1 -1
  44. package/dist/collection/store/store.js +3 -0
  45. package/dist/collection/store/store.js.br +0 -0
  46. package/dist/collection/store/store.js.gz +0 -0
  47. package/dist/collection/store/store.js.map +1 -1
  48. package/dist/collection/types/types.js.map +1 -1
  49. package/dist/collection/utils/utils.js +14 -14
  50. package/dist/collection/utils/utils.js.br +0 -0
  51. package/dist/collection/utils/utils.js.gz +0 -0
  52. package/dist/collection/utils/utils.js.map +1 -1
  53. package/dist/esm/geotrek-rando-widget.js +1 -1
  54. package/dist/esm/geotrek-rando-widget.js.br +0 -0
  55. package/dist/esm/geotrek-rando-widget.js.gz +0 -0
  56. package/dist/esm/grw-app.entry.js +18 -4
  57. package/dist/esm/grw-app.entry.js.br +0 -0
  58. package/dist/esm/grw-app.entry.js.gz +0 -0
  59. package/dist/esm/grw-app.entry.js.map +1 -1
  60. package/dist/esm/grw-filter_8.entry.js +10 -4
  61. package/dist/esm/grw-filter_8.entry.js.br +0 -0
  62. package/dist/esm/grw-filter_8.entry.js.gz +0 -0
  63. package/dist/esm/grw-filter_8.entry.js.map +1 -1
  64. package/dist/esm/grw-information-desk-detail_3.entry.js +1 -1
  65. package/dist/esm/grw-information-desk-detail_3.entry.js.br +0 -0
  66. package/dist/esm/grw-information-desk-detail_3.entry.js.gz +0 -0
  67. package/dist/esm/grw-trek-card.entry.js +2 -2
  68. package/dist/esm/grw-trek-card.entry.js.br +0 -0
  69. package/dist/esm/grw-trek-card.entry.js.gz +0 -0
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/loader.js.br +0 -0
  72. package/dist/esm/loader.js.gz +0 -0
  73. package/dist/esm/{store-2a612007.js → store-23a2ba46.js} +4 -1
  74. package/dist/esm/store-23a2ba46.js.br +0 -0
  75. package/dist/esm/store-23a2ba46.js.gz +0 -0
  76. package/dist/esm/store-23a2ba46.js.map +1 -0
  77. package/dist/esm/{utils-4b2144e3.js → utils-39d36282.js} +17 -17
  78. package/dist/esm/utils-39d36282.js.br +0 -0
  79. package/dist/esm/utils-39d36282.js.gz +0 -0
  80. package/dist/esm/utils-39d36282.js.map +1 -0
  81. package/dist/esm-es5/geotrek-rando-widget.js +1 -1
  82. package/dist/esm-es5/geotrek-rando-widget.js.br +0 -0
  83. package/dist/esm-es5/geotrek-rando-widget.js.gz +0 -0
  84. package/dist/esm-es5/geotrek-rando-widget.js.map +1 -1
  85. package/dist/esm-es5/grw-app.entry.js +1 -1
  86. package/dist/esm-es5/grw-app.entry.js.br +0 -0
  87. package/dist/esm-es5/grw-app.entry.js.gz +0 -0
  88. package/dist/esm-es5/grw-app.entry.js.map +1 -1
  89. package/dist/esm-es5/grw-filter_8.entry.js +2 -2
  90. package/dist/esm-es5/grw-filter_8.entry.js.br +0 -0
  91. package/dist/esm-es5/grw-filter_8.entry.js.gz +0 -0
  92. package/dist/esm-es5/grw-filter_8.entry.js.map +1 -1
  93. package/dist/esm-es5/grw-information-desk-detail_3.entry.js +1 -1
  94. package/dist/esm-es5/grw-information-desk-detail_3.entry.js.br +0 -0
  95. package/dist/esm-es5/grw-information-desk-detail_3.entry.js.gz +0 -0
  96. package/dist/esm-es5/grw-trek-card.entry.js +1 -1
  97. package/dist/esm-es5/grw-trek-card.entry.js.br +0 -0
  98. package/dist/esm-es5/grw-trek-card.entry.js.gz +0 -0
  99. package/dist/esm-es5/loader.js +1 -1
  100. package/dist/esm-es5/loader.js.br +0 -0
  101. package/dist/esm-es5/loader.js.gz +0 -0
  102. package/dist/esm-es5/loader.js.map +1 -1
  103. package/dist/esm-es5/{store-2a612007.js → store-23a2ba46.js} +2 -2
  104. package/dist/esm-es5/store-23a2ba46.js.br +0 -0
  105. package/dist/esm-es5/store-23a2ba46.js.gz +0 -0
  106. package/dist/esm-es5/store-23a2ba46.js.map +1 -0
  107. package/dist/esm-es5/utils-39d36282.js +2 -0
  108. package/dist/esm-es5/utils-39d36282.js.br +0 -0
  109. package/dist/esm-es5/utils-39d36282.js.gz +0 -0
  110. package/dist/esm-es5/utils-39d36282.js.map +1 -0
  111. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  112. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.br +0 -0
  113. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.gz +0 -0
  114. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.map +1 -1
  115. package/dist/geotrek-rando-widget/p-029e494f.entry.js +2 -0
  116. package/dist/geotrek-rando-widget/p-029e494f.entry.js.br +0 -0
  117. package/dist/geotrek-rando-widget/p-029e494f.entry.js.gz +0 -0
  118. package/dist/geotrek-rando-widget/p-029e494f.entry.js.map +1 -0
  119. package/dist/geotrek-rando-widget/p-148f5f1d.system.js +1 -1
  120. package/dist/geotrek-rando-widget/p-148f5f1d.system.js.br +0 -0
  121. package/dist/geotrek-rando-widget/p-148f5f1d.system.js.gz +0 -0
  122. package/dist/geotrek-rando-widget/p-148f5f1d.system.js.map +1 -1
  123. package/dist/geotrek-rando-widget/{p-e4dba310.system.entry.js → p-21c8e513.system.entry.js} +2 -2
  124. package/dist/geotrek-rando-widget/p-21c8e513.system.entry.js.br +0 -0
  125. package/dist/geotrek-rando-widget/p-21c8e513.system.entry.js.gz +0 -0
  126. package/dist/geotrek-rando-widget/{p-165684be.entry.js → p-574221ae.entry.js} +2 -2
  127. package/dist/geotrek-rando-widget/p-574221ae.entry.js.br +0 -0
  128. package/dist/geotrek-rando-widget/p-574221ae.entry.js.gz +0 -0
  129. package/dist/geotrek-rando-widget/p-731c8990.system.js +2 -0
  130. package/dist/geotrek-rando-widget/p-731c8990.system.js.br +0 -0
  131. package/dist/geotrek-rando-widget/p-731c8990.system.js.gz +0 -0
  132. package/dist/geotrek-rando-widget/p-731c8990.system.js.map +1 -0
  133. package/dist/geotrek-rando-widget/{p-5194053a.system.entry.js → p-7c0fdac3.system.entry.js} +2 -2
  134. package/dist/geotrek-rando-widget/p-7c0fdac3.system.entry.js.br +0 -0
  135. package/dist/geotrek-rando-widget/p-7c0fdac3.system.entry.js.gz +0 -0
  136. package/dist/geotrek-rando-widget/{p-4d95a8f3.entry.js → p-890b281b.entry.js} +2 -2
  137. package/dist/geotrek-rando-widget/p-890b281b.entry.js.br +0 -0
  138. package/dist/geotrek-rando-widget/p-890b281b.entry.js.gz +0 -0
  139. package/dist/geotrek-rando-widget/p-9099f1eb.system.entry.js +2 -0
  140. package/dist/geotrek-rando-widget/p-9099f1eb.system.entry.js.br +0 -0
  141. package/dist/geotrek-rando-widget/p-9099f1eb.system.entry.js.gz +0 -0
  142. package/dist/geotrek-rando-widget/p-9099f1eb.system.entry.js.map +1 -0
  143. package/dist/geotrek-rando-widget/{p-a9b9dd2a.system.js → p-a7ce321e.system.js} +2 -2
  144. package/dist/geotrek-rando-widget/p-a7ce321e.system.js.br +0 -0
  145. package/dist/geotrek-rando-widget/p-a7ce321e.system.js.gz +0 -0
  146. package/dist/geotrek-rando-widget/p-a7ce321e.system.js.map +1 -0
  147. package/dist/geotrek-rando-widget/{p-06df20f8.js → p-ad723f74.js} +2 -2
  148. package/dist/geotrek-rando-widget/p-ad723f74.js.br +0 -0
  149. package/dist/geotrek-rando-widget/p-ad723f74.js.gz +0 -0
  150. package/dist/geotrek-rando-widget/p-ad723f74.js.map +1 -0
  151. package/dist/geotrek-rando-widget/{p-896227f5.system.entry.js → p-bae950b8.system.entry.js} +4 -4
  152. package/dist/geotrek-rando-widget/p-bae950b8.system.entry.js.br +0 -0
  153. package/dist/geotrek-rando-widget/p-bae950b8.system.entry.js.gz +0 -0
  154. package/dist/geotrek-rando-widget/p-bae950b8.system.entry.js.map +1 -0
  155. package/dist/geotrek-rando-widget/p-c1eb1f30.js +2 -0
  156. package/dist/geotrek-rando-widget/p-c1eb1f30.js.br +0 -0
  157. package/dist/geotrek-rando-widget/p-c1eb1f30.js.gz +0 -0
  158. package/dist/geotrek-rando-widget/p-c1eb1f30.js.map +1 -0
  159. package/dist/geotrek-rando-widget/{p-d92c9342.entry.js → p-df9a7637.entry.js} +4 -4
  160. package/dist/geotrek-rando-widget/p-df9a7637.entry.js.br +0 -0
  161. package/dist/geotrek-rando-widget/p-df9a7637.entry.js.gz +0 -0
  162. package/dist/geotrek-rando-widget/p-df9a7637.entry.js.map +1 -0
  163. package/dist/types/components/grw-app/grw-app.d.ts +3 -0
  164. package/dist/types/components/grw-filter/grw-filter.d.ts +1 -0
  165. package/dist/types/components.d.ts +2 -0
  166. package/dist/types/store/store.d.ts +6 -0
  167. package/dist/types/types/types.d.ts +1 -0
  168. package/dist/types/utils/utils.d.ts +2 -1
  169. package/package.json +1 -1
  170. package/dist/cjs/store-b6d5fcad.js.br +0 -0
  171. package/dist/cjs/store-b6d5fcad.js.gz +0 -0
  172. package/dist/cjs/store-b6d5fcad.js.map +0 -1
  173. package/dist/cjs/utils-1dd4bcbd.js.br +0 -0
  174. package/dist/cjs/utils-1dd4bcbd.js.gz +0 -0
  175. package/dist/cjs/utils-1dd4bcbd.js.map +0 -1
  176. package/dist/esm/store-2a612007.js.br +0 -0
  177. package/dist/esm/store-2a612007.js.gz +0 -0
  178. package/dist/esm/store-2a612007.js.map +0 -1
  179. package/dist/esm/utils-4b2144e3.js.br +0 -0
  180. package/dist/esm/utils-4b2144e3.js.gz +0 -0
  181. package/dist/esm/utils-4b2144e3.js.map +0 -1
  182. package/dist/esm-es5/store-2a612007.js.br +0 -0
  183. package/dist/esm-es5/store-2a612007.js.gz +0 -0
  184. package/dist/esm-es5/store-2a612007.js.map +0 -1
  185. package/dist/esm-es5/utils-4b2144e3.js +0 -2
  186. package/dist/esm-es5/utils-4b2144e3.js.br +0 -0
  187. package/dist/esm-es5/utils-4b2144e3.js.gz +0 -0
  188. package/dist/esm-es5/utils-4b2144e3.js.map +0 -1
  189. package/dist/geotrek-rando-widget/p-06df20f8.js.br +0 -0
  190. package/dist/geotrek-rando-widget/p-06df20f8.js.gz +0 -0
  191. package/dist/geotrek-rando-widget/p-06df20f8.js.map +0 -1
  192. package/dist/geotrek-rando-widget/p-165684be.entry.js.br +0 -0
  193. package/dist/geotrek-rando-widget/p-165684be.entry.js.gz +0 -0
  194. package/dist/geotrek-rando-widget/p-4d95a8f3.entry.js.br +0 -0
  195. package/dist/geotrek-rando-widget/p-4d95a8f3.entry.js.gz +0 -0
  196. package/dist/geotrek-rando-widget/p-5194053a.system.entry.js.br +0 -0
  197. package/dist/geotrek-rando-widget/p-5194053a.system.entry.js.gz +0 -0
  198. package/dist/geotrek-rando-widget/p-55569971.system.js +0 -2
  199. package/dist/geotrek-rando-widget/p-55569971.system.js.br +0 -0
  200. package/dist/geotrek-rando-widget/p-55569971.system.js.gz +0 -0
  201. package/dist/geotrek-rando-widget/p-55569971.system.js.map +0 -1
  202. package/dist/geotrek-rando-widget/p-896227f5.system.entry.js.br +0 -0
  203. package/dist/geotrek-rando-widget/p-896227f5.system.entry.js.gz +0 -0
  204. package/dist/geotrek-rando-widget/p-896227f5.system.entry.js.map +0 -1
  205. package/dist/geotrek-rando-widget/p-a2575e40.js +0 -2
  206. package/dist/geotrek-rando-widget/p-a2575e40.js.br +0 -0
  207. package/dist/geotrek-rando-widget/p-a2575e40.js.gz +0 -0
  208. package/dist/geotrek-rando-widget/p-a2575e40.js.map +0 -1
  209. package/dist/geotrek-rando-widget/p-a9b9dd2a.system.js.br +0 -0
  210. package/dist/geotrek-rando-widget/p-a9b9dd2a.system.js.gz +0 -0
  211. package/dist/geotrek-rando-widget/p-a9b9dd2a.system.js.map +0 -1
  212. package/dist/geotrek-rando-widget/p-c7bb2715.system.entry.js +0 -2
  213. package/dist/geotrek-rando-widget/p-c7bb2715.system.entry.js.br +0 -0
  214. package/dist/geotrek-rando-widget/p-c7bb2715.system.entry.js.gz +0 -0
  215. package/dist/geotrek-rando-widget/p-c7bb2715.system.entry.js.map +0 -1
  216. package/dist/geotrek-rando-widget/p-d92c9342.entry.js.br +0 -0
  217. package/dist/geotrek-rando-widget/p-d92c9342.entry.js.gz +0 -0
  218. package/dist/geotrek-rando-widget/p-d92c9342.entry.js.map +0 -1
  219. package/dist/geotrek-rando-widget/p-e4dba310.system.entry.js.br +0 -0
  220. package/dist/geotrek-rando-widget/p-e4dba310.system.entry.js.gz +0 -0
  221. package/dist/geotrek-rando-widget/p-fa9a840a.entry.js +0 -2
  222. package/dist/geotrek-rando-widget/p-fa9a840a.entry.js.br +0 -0
  223. package/dist/geotrek-rando-widget/p-fa9a840a.entry.js.gz +0 -0
  224. package/dist/geotrek-rando-widget/p-fa9a840a.entry.js.map +0 -1
  225. /package/dist/geotrek-rando-widget/{p-e4dba310.system.entry.js.map → p-21c8e513.system.entry.js.map} +0 -0
  226. /package/dist/geotrek-rando-widget/{p-165684be.entry.js.map → p-574221ae.entry.js.map} +0 -0
  227. /package/dist/geotrek-rando-widget/{p-5194053a.system.entry.js.map → p-7c0fdac3.system.entry.js.map} +0 -0
  228. /package/dist/geotrek-rando-widget/{p-4d95a8f3.entry.js.map → p-890b281b.entry.js.map} +0 -0
@@ -1,11 +1,12 @@
1
1
  import { Host, h, forceUpdate } from '@stencil/core';
2
2
  import state from 'store/store';
3
- import { handleFiltersAndSearch } from 'utils/utils';
3
+ import { filters, handleFiltersAndSearch } from 'utils/utils';
4
4
  export class GrwFilter {
5
5
  constructor() {
6
6
  this.filterType = undefined;
7
7
  this.filterName = undefined;
8
8
  this.filterNameProperty = undefined;
9
+ this.segment = undefined;
9
10
  }
10
11
  onResetFilter() {
11
12
  this.resetFilter();
@@ -15,10 +16,15 @@ export class GrwFilter {
15
16
  filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id).selected = !filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id)
16
17
  .selected;
17
18
  state[this.filterType] = filterFromState;
19
+ state[this.segment] = 0;
20
+ filters
21
+ .filter(filter => filter.segment === this.segment)
22
+ .forEach(filter => {
23
+ state[this.segment] += state[filter.property].filter(filter => filter.selected).length;
24
+ });
18
25
  state.currentTreks = handleFiltersAndSearch();
19
26
  }
20
27
  resetFilter() {
21
- state[this.filterType].forEach(currentFilter => (currentFilter.selected = false));
22
28
  forceUpdate(this.filterRef);
23
29
  }
24
30
  render() {
@@ -88,6 +94,23 @@ export class GrwFilter {
88
94
  },
89
95
  "attribute": "filter-name-property",
90
96
  "reflect": false
97
+ },
98
+ "segment": {
99
+ "type": "string",
100
+ "mutable": false,
101
+ "complexType": {
102
+ "original": "string",
103
+ "resolved": "string",
104
+ "references": {}
105
+ },
106
+ "required": false,
107
+ "optional": false,
108
+ "docs": {
109
+ "tags": [],
110
+ "text": ""
111
+ },
112
+ "attribute": "segment",
113
+ "reflect": false
91
114
  }
92
115
  };
93
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grw-filter.js","sourceRoot":"","sources":["../../../src/components/grw-filter/grw-filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAOrD,MAAM,OAAO,SAAS;;;;;;EAMpB,aAAa;IACX,IAAI,CAAC,WAAW,EAAE,CAAC;EACrB,CAAC;EAED,YAAY,CAAC,MAAkB,EAAE,cAAmB;IAClD,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpD,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;OACpK,QAAQ,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;IACzC,KAAK,CAAC,YAAY,GAAG,sBAAsB,EAAE,CAAC;EAChD,CAAC;EAED,WAAW;IACT,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;IAClF,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;EAC9B,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI,IAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;MACpC,WAAK,KAAK,EAAC,2BAA2B,IAAE,IAAI,CAAC,UAAU,CAAO;MAC9D,WAAK,KAAK,EAAC,yBAAyB,IACjC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAC3C,cAAQ,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,eAAe;QAC1I,aAAa,CAAC,QAAQ,IAAI,YAAM,KAAK,EAAC,4CAA4C,YAAa;QAC/F,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAChC,CACV,CAAC,CACE,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Listen, forceUpdate } from '@stencil/core';\nimport state from 'store/store';\nimport { handleFiltersAndSearch } from 'utils/utils';\n\n@Component({\n tag: 'grw-filter',\n styleUrl: 'grw-filter.scss',\n shadow: true,\n})\nexport class GrwFilter {\n filterRef: HTMLElement;\n @Prop() filterType: string;\n @Prop() filterName: string;\n @Prop() filterNameProperty: string;\n @Listen('resetFilter', { target: 'window' })\n onResetFilter() {\n this.resetFilter();\n }\n\n handleFilter(_event: MouseEvent, filterToHandle: any) {\n const filterFromState = [...state[this.filterType]];\n filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id).selected = !filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id)\n .selected;\n state[this.filterType] = filterFromState;\n state.currentTreks = handleFiltersAndSearch();\n }\n\n resetFilter() {\n state[this.filterType].forEach(currentFilter => (currentFilter.selected = false));\n forceUpdate(this.filterRef);\n }\n\n render() {\n return (\n <Host ref={el => (this.filterRef = el)}>\n <div class=\"filter-name display-large\">{this.filterName}</div>\n <div class=\"filter-button-container\">\n {state[this.filterType].map(currentFilter => (\n <button onClick={event => this.handleFilter(event, currentFilter)} class={currentFilter.selected ? 'selected-filter-button' : 'filter-button'}>\n {currentFilter.selected && <span class=\"material-symbols material-symbols-outlined\">check</span>}\n {currentFilter[this.filterNameProperty]}\n </button>\n ))}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"grw-filter.js","sourceRoot":"","sources":["../../../src/components/grw-filter/grw-filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAO9D,MAAM,OAAO,SAAS;;;;;;;EAOpB,aAAa;IACX,IAAI,CAAC,WAAW,EAAE,CAAC;EACrB,CAAC;EAED,YAAY,CAAC,MAAkB,EAAE,cAAmB;IAClD,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpD,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;OACpK,QAAQ,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;IAEzC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO;OACJ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC;OACjD,OAAO,CAAC,MAAM,CAAC,EAAE;MAChB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IACzF,CAAC,CAAC,CAAC;IAEL,KAAK,CAAC,YAAY,GAAG,sBAAsB,EAAE,CAAC;EAChD,CAAC;EAED,WAAW;IACT,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;EAC9B,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI,IAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;MACpC,WAAK,KAAK,EAAC,2BAA2B,IAAE,IAAI,CAAC,UAAU,CAAO;MAC9D,WAAK,KAAK,EAAC,yBAAyB,IACjC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAC3C,cAAQ,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,eAAe;QAC1I,aAAa,CAAC,QAAQ,IAAI,YAAM,KAAK,EAAC,4CAA4C,YAAa;QAC/F,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAChC,CACV,CAAC,CACE,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Listen, forceUpdate } from '@stencil/core';\nimport state from 'store/store';\nimport { filters, handleFiltersAndSearch } from 'utils/utils';\n\n@Component({\n tag: 'grw-filter',\n styleUrl: 'grw-filter.scss',\n shadow: true,\n})\nexport class GrwFilter {\n filterRef: HTMLElement;\n @Prop() filterType: string;\n @Prop() filterName: string;\n @Prop() filterNameProperty: string;\n @Prop() segment: string;\n @Listen('resetFilter', { target: 'window' })\n onResetFilter() {\n this.resetFilter();\n }\n\n handleFilter(_event: MouseEvent, filterToHandle: any) {\n const filterFromState = [...state[this.filterType]];\n filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id).selected = !filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id)\n .selected;\n state[this.filterType] = filterFromState;\n\n state[this.segment] = 0;\n filters\n .filter(filter => filter.segment === this.segment)\n .forEach(filter => {\n state[this.segment] += state[filter.property].filter(filter => filter.selected).length;\n });\n\n state.currentTreks = handleFiltersAndSearch();\n }\n\n resetFilter() {\n forceUpdate(this.filterRef);\n }\n\n render() {\n return (\n <Host ref={el => (this.filterRef = el)}>\n <div class=\"filter-name display-large\">{this.filterName}</div>\n <div class=\"filter-button-container\">\n {state[this.filterType].map(currentFilter => (\n <button onClick={event => this.handleFilter(event, currentFilter)} class={currentFilter.selected ? 'selected-filter-button' : 'filter-button'}>\n {currentFilter.selected && <span class=\"material-symbols material-symbols-outlined\">check</span>}\n {currentFilter[this.filterNameProperty]}\n </button>\n ))}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -265,7 +265,7 @@ export class GrwTrekDetail {
265
265
  .map(attachment => (h("div", { class: "swiper-slide" }, h("img", { class: "image", src: attachment.url, loading: "lazy", onClick: () => this.handleFullscreen() }))))), h("div", { class: "swiper-pagination", ref: el => (this.paginationElImagesRef = el) }), h("div", { class: "swiper-button-prev", ref: el => (this.prevElImagesRef = el) }), h("div", { class: "swiper-button-next", ref: el => (this.nextElImagesRef = el) }))), h("div", { class: "name" }, this.currentTrek.name), this.themes.length > 0 && (h("div", { class: "themes-container" }, this.themes.map(theme => (h("div", { class: "theme" }, theme.label))))), h("div", { class: "sub-container" }, h("div", { class: "icons-labels-container" }, h("div", { class: "row" }, h("div", { class: "icon-label difficulty" }, ((_a = this.difficulty) === null || _a === void 0 ? void 0 : _a.pictogram) && h("img", { src: this.difficulty.pictogram }), (_b = this.difficulty) === null || _b === void 0 ? void 0 :
266
266
  _b.label), h("div", { class: "icon-label duration" }, h("span", { class: "material-symbols material-symbols-outlined" }, "timelapse"), formatDuration((_c = this.currentTrek) === null || _c === void 0 ? void 0 : _c.duration)), h("div", { class: "icon-label route" }, ((_d = this.route) === null || _d === void 0 ? void 0 : _d.pictogram) && h("img", { src: this.route.pictogram }), (_e = this.route) === null || _e === void 0 ? void 0 :
267
267
  _e.route)), h("div", { class: "row" }, h("div", { class: "icon-label length" }, h("span", { class: "material-symbols material-symbols-outlined" }, "open_in_full"), formatLength(this.currentTrek.length_2d)), h("div", { class: "icon-label ascent" }, h("span", { class: "material-symbols material-symbols-outlined" }, "moving"), formatAscent(this.currentTrek.ascent)), h("div", { class: "icon-label practice" }, ((_f = this.practice) === null || _f === void 0 ? void 0 : _f.pictogram) && h("img", { src: this.practice.pictogram }), (_g = this.practice) === null || _g === void 0 ? void 0 :
268
- _g.name)))), h("div", { class: "divider" }), h("div", { class: "downloads-container" }, h("div", { class: "download-title" }, translate[state.language].downloads), h("div", { class: "links-container" }, h("a", { href: `${this.currentTrek.gpx}` }, h("span", { class: "material-symbols material-symbols-outlined" }, "download"), "GPX"), h("a", { href: `${this.currentTrek.kml}` }, h("span", { class: "material-symbols material-symbols-outlined" }, "download"), "KML"), h("a", { href: `${this.currentTrek.pdf}` }, h("span", { class: "material-symbols material-symbols-outlined" }, "download"), "PDF"))), h("div", { class: "divider" }), this.currentTrek.description_teaser && h("div", { class: "description-teaser", innerHTML: this.currentTrek.description_teaser }), this.currentTrek.ambiance && h("div", { class: "ambiance", innerHTML: this.currentTrek.ambiance }), h("div", { class: "divider" }), this.currentTrek.description && (h("div", { class: "description-container", ref: el => (this.descriptionRef = el) }, h("div", { class: "description-title" }, translate[state.language].description), h("div", { class: "description", innerHTML: this.currentTrek.description }))), this.currentTrek.departure && (h("div", { class: "departure-container" }, h("div", { class: "departure-title" }, translate[state.language].departure, " :\u00A0"), h("div", { innerHTML: this.currentTrek.departure }))), this.currentTrek.arrival && (h("div", { class: "arrival-container" }, h("div", { class: "arrival-title" }, translate[state.language].arrival, " :\u00A0"), h("div", { innerHTML: this.currentTrek.arrival }))), this.currentTrek.cities && (h("div", { class: "cities-container" }, h("div", { class: "cities-title" }, translate[state.language].cities, " :\u00A0"), h("div", { innerHTML: this.cities.join(', ') }))), this.weather && this.currentTrek.departure_city && (h("div", { class: "weather-container" }, h("iframe", { height: "150", frameborder: "0", src: `https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}` }))), this.currentTrek.access && (h("div", null, h("div", { class: "divider" }), h("div", { class: "access-container" }, h("div", { class: "access-title" }, translate[state.language].roadAccess), h("div", { class: "access", innerHTML: this.currentTrek.access })))), this.currentTrek.public_transport && (h("div", null, h("div", { class: "divider" }), h("div", { class: "public-transport-container" }, h("div", { class: "public-transport-title" }, translate[state.language].transport), h("div", { class: "public-transport", innerHTML: this.currentTrek.public_transport })))), (this.currentTrek.advice || this.labels.length > 0) && (h("div", null, h("div", { class: "divider" }), h("div", { class: "advice-container", ref: el => (this.recommendationRef = el) }, h("div", { class: "advice-title" }, translate[state.language].recommendations), this.currentTrek.advice && (h("div", { class: "current-advice-container" }, h("span", { class: "material-symbols material-symbols-outlined" }, "warning"), h("div", { class: "advice", innerHTML: this.currentTrek.advice }))), this.labels.map(label => (h("div", { class: "label-container" }, h("div", { class: "label-sub-container" }, label.pictogram && h("img", { src: label.pictogram }), h("div", { class: "label-name", innerHTML: label.name })), h("div", { class: "label-advice", innerHTML: label.advice }))))))), this.currentTrek.advised_parking && (h("div", null, h("div", { class: "divider" }), h("div", { class: "advised-parking-container", ref: el => (this.parkingRef = el) }, h("div", { class: "advised-parking-title" }, translate[state.language].recommendedParking), h("div", { class: "advised-parking", innerHTML: this.currentTrek.advised_parking })))), this.currentTrek.gear && (h("div", null, h("div", { class: "divider" }), h("div", { class: "gear-container" }, h("div", { class: "gear-title" }, translate[state.language].equipments), h("div", { class: "gear", innerHTML: this.currentTrek.gear })))), state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (h("div", null, h("div", { class: "divider" }), h("div", { class: "sensitive-areas-container", ref: el => (this.sensitiveAreaRef = el) }, h("div", { class: "sensitive-areas-title" }, translate[state.language].environmentalSensitiveAreas), state.currentSensitiveAreas.map(sensitiveArea => (h("grw-sensitive-area-detail", { sensitiveArea: sensitiveArea })))))), state.currentInformationDesks &&
268
+ _g.name)))), h("div", { class: "divider" }), h("div", { class: "downloads-container" }, h("div", { class: "download-title" }, translate[state.language].downloads), h("div", { class: "links-container" }, h("a", { href: `${this.currentTrek.gpx}` }, h("span", { class: "material-symbols material-symbols-outlined" }, "download"), "GPX"), h("a", { href: `${this.currentTrek.kml}` }, h("span", { class: "material-symbols material-symbols-outlined" }, "download"), "KML"), h("a", { href: `${this.currentTrek.pdf}` }, h("span", { class: "material-symbols material-symbols-outlined" }, "download"), "PDF"))), h("div", { class: "divider" }), this.currentTrek.description_teaser && h("div", { class: "description-teaser", innerHTML: this.currentTrek.description_teaser }), this.currentTrek.ambiance && h("div", { class: "ambiance", innerHTML: this.currentTrek.ambiance }), h("div", { class: "divider" }), this.currentTrek.description && (h("div", { class: "description-container", ref: el => (this.descriptionRef = el) }, h("div", { class: "description-title" }, translate[state.language].description), h("div", { class: "description", innerHTML: this.currentTrek.description }))), this.currentTrek.departure && (h("div", { class: "departure-container" }, h("div", { class: "departure-title" }, translate[state.language].departure, " :\u00A0"), h("div", { innerHTML: this.currentTrek.departure }))), this.currentTrek.arrival && (h("div", { class: "arrival-container" }, h("div", { class: "arrival-title" }, translate[state.language].arrival, " :\u00A0"), h("div", { innerHTML: this.currentTrek.arrival }))), this.currentTrek.cities && this.currentTrek.cities.length > 0 && (h("div", { class: "cities-container" }, h("div", { class: "cities-title" }, translate[state.language].cities, " :\u00A0"), h("div", { innerHTML: this.cities.join(', ') }))), this.weather && this.currentTrek.departure_city && (h("div", { class: "weather-container" }, h("iframe", { height: "150", frameborder: "0", src: `https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}` }))), this.currentTrek.access && (h("div", null, h("div", { class: "divider" }), h("div", { class: "access-container" }, h("div", { class: "access-title" }, translate[state.language].roadAccess), h("div", { class: "access", innerHTML: this.currentTrek.access })))), this.currentTrek.public_transport && (h("div", null, h("div", { class: "divider" }), h("div", { class: "public-transport-container" }, h("div", { class: "public-transport-title" }, translate[state.language].transport), h("div", { class: "public-transport", innerHTML: this.currentTrek.public_transport })))), (this.currentTrek.advice || this.labels.length > 0) && (h("div", null, h("div", { class: "divider" }), h("div", { class: "advice-container", ref: el => (this.recommendationRef = el) }, h("div", { class: "advice-title" }, translate[state.language].recommendations), this.currentTrek.advice && (h("div", { class: "current-advice-container" }, h("span", { class: "material-symbols material-symbols-outlined" }, "warning"), h("div", { class: "advice", innerHTML: this.currentTrek.advice }))), this.labels.map(label => (h("div", { class: "label-container" }, h("div", { class: "label-sub-container" }, label.pictogram && h("img", { src: label.pictogram }), h("div", { class: "label-name", innerHTML: label.name })), h("div", { class: "label-advice", innerHTML: label.advice }))))))), this.currentTrek.advised_parking && (h("div", null, h("div", { class: "divider" }), h("div", { class: "advised-parking-container", ref: el => (this.parkingRef = el) }, h("div", { class: "advised-parking-title" }, translate[state.language].recommendedParking), h("div", { class: "advised-parking", innerHTML: this.currentTrek.advised_parking })))), this.currentTrek.gear && (h("div", null, h("div", { class: "divider" }), h("div", { class: "gear-container" }, h("div", { class: "gear-title" }, translate[state.language].equipments), h("div", { class: "gear", innerHTML: this.currentTrek.gear })))), state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (h("div", null, h("div", { class: "divider" }), h("div", { class: "sensitive-areas-container", ref: el => (this.sensitiveAreaRef = el) }, h("div", { class: "sensitive-areas-title" }, translate[state.language].environmentalSensitiveAreas), state.currentSensitiveAreas.map(sensitiveArea => (h("grw-sensitive-area-detail", { sensitiveArea: sensitiveArea })))))), state.currentInformationDesks &&
269
269
  state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0 && (h("div", null, h("div", { class: "divider" }), h("div", { class: "information-desks-container", ref: el => (this.informationDeskRef = el) }, h("div", { class: "information-desks-title" }, translate[state.language].informationPlaces), h("div", { class: "swiper swiper-information-desks", ref: el => (this.swiperInformationDesksRef = el) }, h("div", { class: "swiper-wrapper" }, state.currentInformationDesks
270
270
  .filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id))
271
271
  .map(informationDesk => (h("div", { class: "swiper-slide" }, h("grw-information-desk-detail", { informationDesk: informationDesk }))))))))), (this.currentTrek.disabled_infrastructure ||
@@ -1 +1 @@
1
- {"version":3,"file":"grw-trek-detail.js","sourceRoot":"","sources":["../../../src/components/grw-trek-detail/grw-trek-detail.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter } from '@stencil/core';\nimport Swiper, { Navigation, Pagination, Keyboard, FreeMode, Mousewheel } from 'swiper';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange, reset } from 'store/store';\nimport { Accessibilities, AccessibilityLevel, Difficulty, Labels, Practice, Route, Sources, Themes, Trek, Option, Options } from 'types/types';\nimport { formatDuration, formatLength, formatAscent } from 'utils/utils';\n\nconst presentation: Option = {\n visible: true,\n width: 120,\n indicator: false,\n};\nconst description: Option = {\n visible: false,\n width: 120,\n indicator: false,\n};\nconst recommendations: Option = {\n visible: false,\n width: 190,\n indicator: false,\n};\nconst sensitiveArea: Option = {\n visible: false,\n width: 160,\n indicator: false,\n};\nconst informationPlaces: Option = {\n visible: false,\n width: 200,\n indicator: false,\n};\nconst pois: Option = {\n visible: false,\n width: 120,\n indicator: false,\n};\nconst options: Options = {\n presentation,\n description,\n recommendations,\n sensitiveArea,\n informationPlaces,\n pois,\n};\n\n@Component({\n tag: 'grw-trek-detail',\n styleUrl: 'grw-trek-detail.scss',\n shadow: true,\n})\nexport class GrwTrekDetail {\n swiperImages?: Swiper;\n swiperPois?: Swiper;\n swiperInformationDesks?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n swiperPoisRef?: HTMLDivElement;\n swiperInformationDesksRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n descriptionRef?: HTMLDivElement;\n parkingRef?: HTMLDivElement;\n recommendationRef?: HTMLDivElement;\n sensitiveAreaRef?: HTMLDivElement;\n informationDeskRef?: HTMLDivElement;\n poiRef?: HTMLDivElement;\n trekDetailContainerRef?: HTMLElement;\n\n defaultOptions: Options;\n @Event() descriptionReferenceIsInViewport: EventEmitter<boolean>;\n @Event() parkingIsInViewport: EventEmitter<boolean>;\n @Event() sensitiveAreaIsInViewport: EventEmitter<boolean>;\n @Event() informationDeskIsInViewport: EventEmitter<boolean>;\n @Event() poiIsInViewport: EventEmitter<boolean>;\n @State() currentTrek: Trek;\n @State() difficulty: Difficulty;\n @State() route: Route;\n @State() practice: Practice;\n @State() themes: Themes;\n @State() labels: Labels;\n @State() sources: Sources;\n @State() accessibilities: Accessibilities;\n @State() accessibilityLevel: AccessibilityLevel;\n @State() displayFullscreen = false;\n @State() cities: string[];\n @State() options: Options;\n @Prop() trek: Trek;\n\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() resetStoreOnDisconnected = true;\n @Prop() weather = false;\n @Prop() isLargeView = false;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.swiperPois = new Swiper(this.swiperPoisRef, {\n modules: [FreeMode, Mousewheel],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n });\n this.swiperInformationDesks = new Swiper(this.swiperInformationDesksRef, {\n modules: [FreeMode, Mousewheel],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n });\n if (this.presentationRef) {\n const presentationObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: isIntersecting } };\n }\n });\n presentationObserver.observe(this.presentationRef);\n }\n if (this.descriptionRef) {\n const descriptionReferenceObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.descriptionReferenceIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, description: { ...this.defaultOptions.description, indicator: isIntersecting } };\n }\n });\n descriptionReferenceObserver.observe(this.descriptionRef);\n }\n if (this.recommendationRef) {\n const recommendationsObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, recommendations: { ...this.defaultOptions.recommendations, indicator: isIntersecting } };\n }\n });\n recommendationsObserver.observe(this.recommendationRef);\n }\n if (this.parkingRef) {\n const parkingObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.parkingIsInViewport.emit(isIntersecting);\n });\n parkingObserver.observe(this.parkingRef);\n }\n\n if (this.sensitiveAreaRef) {\n const sensitiveAreaRefObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.sensitiveAreaIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, sensitiveArea: { ...this.defaultOptions.sensitiveArea, indicator: isIntersecting } };\n }\n });\n sensitiveAreaRefObserver.observe(this.sensitiveAreaRef);\n }\n\n if (this.informationDeskRef) {\n const informationDeskObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.informationDeskIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, informationPlaces: { ...this.defaultOptions.informationPlaces, indicator: isIntersecting } };\n }\n });\n informationDeskObserver.observe(this.informationDeskRef);\n }\n\n if (this.poiRef) {\n const poiObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.poiIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, pois: { ...this.defaultOptions.pois, indicator: isIntersecting } };\n }\n });\n poiObserver.observe(this.poiRef);\n }\n }\n\n connectedCallback() {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n }\n onChange('currentTrek', () => {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n }\n });\n }\n\n disconnectedCallback() {\n if (this.resetStoreOnDisconnected) {\n reset();\n }\n }\n\n handleOptions() {\n return {\n ...options,\n presentation: { ...presentation },\n description: { ...description, visible: Boolean(this.currentTrek.description) },\n recommendations: { ...recommendations, visible: Boolean(this.currentTrek.advice || (this.labels && this.labels.length > 0)) },\n sensitiveArea: { ...sensitiveArea, visible: Boolean(state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) },\n informationPlaces: {\n ...informationPlaces,\n visible: Boolean(\n state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0,\n ),\n },\n pois: { ...pois, visible: Boolean(state.currentPois && state.currentPois.length > 0) },\n };\n }\n\n handleFullscreen() {\n if (this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n }\n\n handleIndicatorSelectedTrekOption() {\n let previousVisibleOptions = 0;\n let currentOption: Option;\n let previousWidthOptions = 0;\n const options: Option[] = Object.values(this.options);\n let index = 0;\n while (!currentOption && index < options.length) {\n if (options[index].indicator) {\n currentOption = options[index];\n } else {\n if (options[index].visible) {\n previousVisibleOptions += 1;\n previousWidthOptions += options[index].width;\n }\n }\n index++;\n }\n return `${previousWidthOptions + 16 * previousVisibleOptions - currentOption.width / 2}px`;\n }\n\n handleScrollTo(element: HTMLDivElement) {\n this.trekDetailContainerRef.scrollTo({ top: element.offsetTop - 48 });\n }\n\n render() {\n return (\n <Host\n style={{\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView ? '8px' : '104px',\n }}\n >\n {this.currentTrek && (\n <div class=\"trek-options\">\n <a onClick={() => this.handleScrollTo(this.presentationRef)} class={`presentation trek-option${this.options.presentation.indicator ? ' selected-trek-option' : ''}`}>\n {translate[state.language].options.presentation}\n </a>\n {this.options.description.visible && (\n <a onClick={() => this.handleScrollTo(this.descriptionRef)} class={`description trek-option${this.options.description.indicator ? ' selected-trek-option' : ''}`}>\n {translate[state.language].options.description}\n </a>\n )}\n {this.options.recommendations.visible && (\n <a\n onClick={() => this.handleScrollTo(this.recommendationRef)}\n class={`recommendations trek-option${this.options.recommendations.indicator ? ' selected-trek-option' : ''}`}\n >\n {translate[state.language].options.recommendations}\n </a>\n )}\n {this.options.sensitiveArea.visible && (\n <a\n onClick={() => this.handleScrollTo(this.sensitiveAreaRef)}\n class={`sensitive-areas trek-option${this.options.sensitiveArea.indicator ? ' selected-trek-option' : ''}`}\n >\n {translate[state.language].options.environmentalSensitiveAreas}\n </a>\n )}\n {this.options.informationPlaces.visible && (\n <a\n onClick={() => this.handleScrollTo(this.informationDeskRef)}\n class={`information-places trek-option${this.options.informationPlaces.indicator ? ' selected-trek-option' : ''}`}\n >\n {translate[state.language].options.informationPlaces}\n </a>\n )}\n {this.options.pois.visible && (\n <a onClick={() => this.handleScrollTo(this.poiRef)} class={`pois trek-option${this.options.pois.indicator ? ' selected-trek-option' : ''}`}>\n {translate[state.language].options.pois}\n </a>\n )}\n <span class=\"indicator-selected-trek-option\" style={{ transform: `translateX(${this.handleIndicatorSelectedTrekOption()})` }}></span>\n </div>\n )}\n {this.currentTrek && (\n <div class=\"trek-detail-container\" ref={el => (this.trekDetailContainerRef = el)}>\n <div class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div class=\"swiper-wrapper\">\n {this.currentTrek.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => (\n <div class=\"swiper-slide\">\n <img class=\"image\" src={attachment.url} loading=\"lazy\" onClick={() => this.handleFullscreen()} />\n </div>\n ))}\n </div>\n <div class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div class=\"name\">{this.currentTrek.name}</div>\n {this.themes.length > 0 && (\n <div class=\"themes-container\">\n {this.themes.map(theme => (\n <div class=\"theme\">{theme.label}</div>\n ))}\n </div>\n )}\n <div class=\"sub-container\">\n <div class=\"icons-labels-container\">\n <div class=\"row\">\n <div class=\"icon-label difficulty\">\n {this.difficulty?.pictogram && <img src={this.difficulty.pictogram} />}\n {this.difficulty?.label}\n </div>\n <div class=\"icon-label duration\">\n <span class=\"material-symbols material-symbols-outlined\">timelapse</span>\n {formatDuration(this.currentTrek?.duration)}\n </div>\n <div class=\"icon-label route\">\n {this.route?.pictogram && <img src={this.route.pictogram} />}\n {this.route?.route}\n </div>\n </div>\n <div class=\"row\">\n <div class=\"icon-label length\">\n <span class=\"material-symbols material-symbols-outlined\">open_in_full</span>\n {formatLength(this.currentTrek.length_2d)}\n </div>\n <div class=\"icon-label ascent\">\n <span class=\"material-symbols material-symbols-outlined\">moving</span>\n {formatAscent(this.currentTrek.ascent)}\n </div>\n <div class=\"icon-label practice\">\n {this.practice?.pictogram && <img src={this.practice.pictogram} />}\n {this.practice?.name}\n </div>\n </div>\n </div>\n </div>\n <div class=\"divider\"></div>\n <div class=\"downloads-container\">\n <div class=\"download-title\">{translate[state.language].downloads}</div>\n <div class=\"links-container\">\n <a href={`${this.currentTrek.gpx}`}>\n <span class=\"material-symbols material-symbols-outlined\">download</span>GPX\n </a>\n <a href={`${this.currentTrek.kml}`}>\n <span class=\"material-symbols material-symbols-outlined\">download</span>KML\n </a>\n <a href={`${this.currentTrek.pdf}`}>\n <span class=\"material-symbols material-symbols-outlined\">download</span>PDF\n </a>\n </div>\n </div>\n <div class=\"divider\"></div>\n {this.currentTrek.description_teaser && <div class=\"description-teaser\" innerHTML={this.currentTrek.description_teaser}></div>}\n {this.currentTrek.ambiance && <div class=\"ambiance\" innerHTML={this.currentTrek.ambiance}></div>}\n <div class=\"divider\"></div>\n {this.currentTrek.description && (\n <div class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div class=\"description-title\">{translate[state.language].description}</div>\n <div class=\"description\" innerHTML={this.currentTrek.description}></div>\n </div>\n )}\n {this.currentTrek.departure && (\n <div class=\"departure-container\">\n <div class=\"departure-title\">{translate[state.language].departure} :&nbsp;</div>\n <div innerHTML={this.currentTrek.departure}></div>\n </div>\n )}\n {this.currentTrek.arrival && (\n <div class=\"arrival-container\">\n <div class=\"arrival-title\">{translate[state.language].arrival} :&nbsp;</div>\n <div innerHTML={this.currentTrek.arrival}></div>\n </div>\n )}\n {this.currentTrek.cities && (\n <div class=\"cities-container\">\n <div class=\"cities-title\">{translate[state.language].cities} :&nbsp;</div>\n <div innerHTML={this.cities.join(', ')}></div>\n </div>\n )}\n {this.weather && this.currentTrek.departure_city && (\n <div class=\"weather-container\">\n <iframe height=\"150\" frameborder=\"0\" src={`https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}`}></iframe>\n </div>\n )}\n {this.currentTrek.access && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"access-container\">\n <div class=\"access-title\">{translate[state.language].roadAccess}</div>\n <div class=\"access\" innerHTML={this.currentTrek.access}></div>\n </div>\n </div>\n )}\n {this.currentTrek.public_transport && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"public-transport-container\">\n <div class=\"public-transport-title\">{translate[state.language].transport}</div>\n <div class=\"public-transport\" innerHTML={this.currentTrek.public_transport}></div>\n </div>\n </div>\n )}\n {(this.currentTrek.advice || this.labels.length > 0) && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"advice-container\" ref={el => (this.recommendationRef = el)}>\n <div class=\"advice-title\">{translate[state.language].recommendations}</div>\n {this.currentTrek.advice && (\n <div class=\"current-advice-container\">\n <span class=\"material-symbols material-symbols-outlined\">warning</span>\n <div class=\"advice\" innerHTML={this.currentTrek.advice}></div>\n </div>\n )}\n {this.labels.map(label => (\n <div class=\"label-container\">\n <div class=\"label-sub-container\">\n {label.pictogram && <img src={label.pictogram} />}\n <div class=\"label-name\" innerHTML={label.name}></div>\n </div>\n <div class=\"label-advice\" innerHTML={label.advice}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n {this.currentTrek.advised_parking && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"advised-parking-container\" ref={el => (this.parkingRef = el)}>\n <div class=\"advised-parking-title\">{translate[state.language].recommendedParking}</div>\n <div class=\"advised-parking\" innerHTML={this.currentTrek.advised_parking}></div>\n </div>\n </div>\n )}\n {this.currentTrek.gear && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"gear-container\">\n <div class=\"gear-title\">{translate[state.language].equipments}</div>\n <div class=\"gear\" innerHTML={this.currentTrek.gear}></div>\n </div>\n </div>\n )}\n {state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"sensitive-areas-container\" ref={el => (this.sensitiveAreaRef = el)}>\n <div class=\"sensitive-areas-title\">{translate[state.language].environmentalSensitiveAreas}</div>\n {state.currentSensitiveAreas.map(sensitiveArea => (\n <grw-sensitive-area-detail sensitiveArea={sensitiveArea}></grw-sensitive-area-detail>\n ))}\n </div>\n </div>\n )}\n {state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"information-desks-container\" ref={el => (this.informationDeskRef = el)}>\n <div class=\"information-desks-title\">{translate[state.language].informationPlaces}</div>\n <div class=\"swiper swiper-information-desks\" ref={el => (this.swiperInformationDesksRef = el)}>\n <div class=\"swiper-wrapper\">\n {state.currentInformationDesks\n .filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id))\n .map(informationDesk => (\n <div class=\"swiper-slide\">\n <grw-information-desk-detail informationDesk={informationDesk}></grw-information-desk-detail>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )}\n {(this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice) && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"accessibilities-container\">\n <div class=\"accessibilities-title\">{translate[state.language].accessibility}</div>\n {this.currentTrek.disabled_infrastructure && <div innerHTML={this.currentTrek.disabled_infrastructure}></div>}\n <div class=\"accessibilities-content-container\">\n {this.accessibilities.map(accessibility => (\n <div class=\"accessibility-content-container\">\n <img src={accessibility.pictogram}></img>\n <div innerHTML={accessibility.name}></div>\n </div>\n ))}\n </div>\n {this.currentTrek.accessibility_level && (\n <div class=\"accessibility-level-container\">\n <div class=\"accessibility-level-title\">{translate[state.language].accessibilityLevel}</div>\n <div innerHTML={this.accessibilityLevel.name}></div>\n </div>\n )}\n {this.currentTrek.accessibility_slope && (\n <div class=\"accessibility-slope-container\">\n <div class=\"accessibility-slope-title\">{translate[state.language].accessibilitySlope}</div>\n <div innerHTML={this.currentTrek.accessibility_slope}></div>\n </div>\n )}\n {this.currentTrek.accessibility_width && (\n <div class=\"accessibility-width-container\">\n <div class=\"accessibility-width-title\">{translate[state.language].accessibilityWidth}</div>\n <div innerHTML={this.currentTrek.accessibility_width}></div>\n </div>\n )}\n {this.currentTrek.accessibility_signage && (\n <div class=\"accessibility-signage-container\">\n <div class=\"accessibility-signage-title\">{translate[state.language].accessibilitySignage}</div>\n <div innerHTML={this.currentTrek.accessibility_signage}></div>\n </div>\n )}\n {this.currentTrek.accessibility_covering && (\n <div class=\"accessibility-covering-container\">\n <div class=\"accessibility-covering-title\">{translate[state.language].accessibilityCovering}</div>\n <div innerHTML={this.currentTrek.accessibility_covering}></div>\n </div>\n )}\n {this.currentTrek.accessibility_exposure && (\n <div class=\"accessibility-exposure-container\">\n <div class=\"accessibility-exposure-title\">{translate[state.language].accessibilityExposure}</div>\n <div innerHTML={this.currentTrek.accessibility_exposure}></div>\n </div>\n )}\n {this.currentTrek.accessibility_advice && (\n <div class=\"accessibility-advice-container\">\n <div class=\"accessibility-advice-title\">{translate[state.language].accessibilityAdvices}</div>\n <div innerHTML={this.currentTrek.accessibility_advice}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {state.currentPois && state.currentPois.length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"pois-container\" ref={el => (this.poiRef = el)}>\n <div class=\"pois-title\">{translate[state.language].pois(state.currentPois.length)}</div>\n <div class=\"swiper swiper-pois\" ref={el => (this.swiperPoisRef = el)}>\n <div class=\"swiper-wrapper\">\n {state.currentPois.map(poi => (\n <div class=\"swiper-slide\">\n <grw-poi-detail poi={poi}></grw-poi-detail>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )}\n {this.currentTrek.source && this.currentTrek.source.length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"source-container\">\n <div class=\"source-title\">{translate[state.language].sources}</div>\n {this.sources.map(source => (\n <div class=\"source-sub-container\">\n {source.pictogram && <img src={source.pictogram} />}\n <div>\n <div class=\"source-name\" innerHTML={source.name}></div>\n <a class=\"source-advice\" href={source.website} innerHTML={source.website}></a>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n <div class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"grw-trek-detail.js","sourceRoot":"","sources":["../../../src/components/grw-trek-detail/grw-trek-detail.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter } from '@stencil/core';\nimport Swiper, { Navigation, Pagination, Keyboard, FreeMode, Mousewheel } from 'swiper';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange, reset } from 'store/store';\nimport { Accessibilities, AccessibilityLevel, Difficulty, Labels, Practice, Route, Sources, Themes, Trek, Option, Options } from 'types/types';\nimport { formatDuration, formatLength, formatAscent } from 'utils/utils';\n\nconst presentation: Option = {\n visible: true,\n width: 120,\n indicator: false,\n};\nconst description: Option = {\n visible: false,\n width: 120,\n indicator: false,\n};\nconst recommendations: Option = {\n visible: false,\n width: 190,\n indicator: false,\n};\nconst sensitiveArea: Option = {\n visible: false,\n width: 160,\n indicator: false,\n};\nconst informationPlaces: Option = {\n visible: false,\n width: 200,\n indicator: false,\n};\nconst pois: Option = {\n visible: false,\n width: 120,\n indicator: false,\n};\nconst options: Options = {\n presentation,\n description,\n recommendations,\n sensitiveArea,\n informationPlaces,\n pois,\n};\n\n@Component({\n tag: 'grw-trek-detail',\n styleUrl: 'grw-trek-detail.scss',\n shadow: true,\n})\nexport class GrwTrekDetail {\n swiperImages?: Swiper;\n swiperPois?: Swiper;\n swiperInformationDesks?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n swiperPoisRef?: HTMLDivElement;\n swiperInformationDesksRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n descriptionRef?: HTMLDivElement;\n parkingRef?: HTMLDivElement;\n recommendationRef?: HTMLDivElement;\n sensitiveAreaRef?: HTMLDivElement;\n informationDeskRef?: HTMLDivElement;\n poiRef?: HTMLDivElement;\n trekDetailContainerRef?: HTMLElement;\n\n defaultOptions: Options;\n @Event() descriptionReferenceIsInViewport: EventEmitter<boolean>;\n @Event() parkingIsInViewport: EventEmitter<boolean>;\n @Event() sensitiveAreaIsInViewport: EventEmitter<boolean>;\n @Event() informationDeskIsInViewport: EventEmitter<boolean>;\n @Event() poiIsInViewport: EventEmitter<boolean>;\n @State() currentTrek: Trek;\n @State() difficulty: Difficulty;\n @State() route: Route;\n @State() practice: Practice;\n @State() themes: Themes;\n @State() labels: Labels;\n @State() sources: Sources;\n @State() accessibilities: Accessibilities;\n @State() accessibilityLevel: AccessibilityLevel;\n @State() displayFullscreen = false;\n @State() cities: string[];\n @State() options: Options;\n @Prop() trek: Trek;\n\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() resetStoreOnDisconnected = true;\n @Prop() weather = false;\n @Prop() isLargeView = false;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.swiperPois = new Swiper(this.swiperPoisRef, {\n modules: [FreeMode, Mousewheel],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n });\n this.swiperInformationDesks = new Swiper(this.swiperInformationDesksRef, {\n modules: [FreeMode, Mousewheel],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n });\n if (this.presentationRef) {\n const presentationObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: isIntersecting } };\n }\n });\n presentationObserver.observe(this.presentationRef);\n }\n if (this.descriptionRef) {\n const descriptionReferenceObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.descriptionReferenceIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, description: { ...this.defaultOptions.description, indicator: isIntersecting } };\n }\n });\n descriptionReferenceObserver.observe(this.descriptionRef);\n }\n if (this.recommendationRef) {\n const recommendationsObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, recommendations: { ...this.defaultOptions.recommendations, indicator: isIntersecting } };\n }\n });\n recommendationsObserver.observe(this.recommendationRef);\n }\n if (this.parkingRef) {\n const parkingObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.parkingIsInViewport.emit(isIntersecting);\n });\n parkingObserver.observe(this.parkingRef);\n }\n\n if (this.sensitiveAreaRef) {\n const sensitiveAreaRefObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.sensitiveAreaIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, sensitiveArea: { ...this.defaultOptions.sensitiveArea, indicator: isIntersecting } };\n }\n });\n sensitiveAreaRefObserver.observe(this.sensitiveAreaRef);\n }\n\n if (this.informationDeskRef) {\n const informationDeskObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.informationDeskIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, informationPlaces: { ...this.defaultOptions.informationPlaces, indicator: isIntersecting } };\n }\n });\n informationDeskObserver.observe(this.informationDeskRef);\n }\n\n if (this.poiRef) {\n const poiObserver = new IntersectionObserver(entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.poiIsInViewport.emit(isIntersecting);\n if (isIntersecting) {\n this.options = { ...this.defaultOptions, pois: { ...this.defaultOptions.pois, indicator: isIntersecting } };\n }\n });\n poiObserver.observe(this.poiRef);\n }\n }\n\n connectedCallback() {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n }\n onChange('currentTrek', () => {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n }\n });\n }\n\n disconnectedCallback() {\n if (this.resetStoreOnDisconnected) {\n reset();\n }\n }\n\n handleOptions() {\n return {\n ...options,\n presentation: { ...presentation },\n description: { ...description, visible: Boolean(this.currentTrek.description) },\n recommendations: { ...recommendations, visible: Boolean(this.currentTrek.advice || (this.labels && this.labels.length > 0)) },\n sensitiveArea: { ...sensitiveArea, visible: Boolean(state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) },\n informationPlaces: {\n ...informationPlaces,\n visible: Boolean(\n state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0,\n ),\n },\n pois: { ...pois, visible: Boolean(state.currentPois && state.currentPois.length > 0) },\n };\n }\n\n handleFullscreen() {\n if (this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n }\n\n handleIndicatorSelectedTrekOption() {\n let previousVisibleOptions = 0;\n let currentOption: Option;\n let previousWidthOptions = 0;\n const options: Option[] = Object.values(this.options);\n let index = 0;\n while (!currentOption && index < options.length) {\n if (options[index].indicator) {\n currentOption = options[index];\n } else {\n if (options[index].visible) {\n previousVisibleOptions += 1;\n previousWidthOptions += options[index].width;\n }\n }\n index++;\n }\n return `${previousWidthOptions + 16 * previousVisibleOptions - currentOption.width / 2}px`;\n }\n\n handleScrollTo(element: HTMLDivElement) {\n this.trekDetailContainerRef.scrollTo({ top: element.offsetTop - 48 });\n }\n\n render() {\n return (\n <Host\n style={{\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView ? '8px' : '104px',\n }}\n >\n {this.currentTrek && (\n <div class=\"trek-options\">\n <a onClick={() => this.handleScrollTo(this.presentationRef)} class={`presentation trek-option${this.options.presentation.indicator ? ' selected-trek-option' : ''}`}>\n {translate[state.language].options.presentation}\n </a>\n {this.options.description.visible && (\n <a onClick={() => this.handleScrollTo(this.descriptionRef)} class={`description trek-option${this.options.description.indicator ? ' selected-trek-option' : ''}`}>\n {translate[state.language].options.description}\n </a>\n )}\n {this.options.recommendations.visible && (\n <a\n onClick={() => this.handleScrollTo(this.recommendationRef)}\n class={`recommendations trek-option${this.options.recommendations.indicator ? ' selected-trek-option' : ''}`}\n >\n {translate[state.language].options.recommendations}\n </a>\n )}\n {this.options.sensitiveArea.visible && (\n <a\n onClick={() => this.handleScrollTo(this.sensitiveAreaRef)}\n class={`sensitive-areas trek-option${this.options.sensitiveArea.indicator ? ' selected-trek-option' : ''}`}\n >\n {translate[state.language].options.environmentalSensitiveAreas}\n </a>\n )}\n {this.options.informationPlaces.visible && (\n <a\n onClick={() => this.handleScrollTo(this.informationDeskRef)}\n class={`information-places trek-option${this.options.informationPlaces.indicator ? ' selected-trek-option' : ''}`}\n >\n {translate[state.language].options.informationPlaces}\n </a>\n )}\n {this.options.pois.visible && (\n <a onClick={() => this.handleScrollTo(this.poiRef)} class={`pois trek-option${this.options.pois.indicator ? ' selected-trek-option' : ''}`}>\n {translate[state.language].options.pois}\n </a>\n )}\n <span class=\"indicator-selected-trek-option\" style={{ transform: `translateX(${this.handleIndicatorSelectedTrekOption()})` }}></span>\n </div>\n )}\n {this.currentTrek && (\n <div class=\"trek-detail-container\" ref={el => (this.trekDetailContainerRef = el)}>\n <div class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div class=\"swiper-wrapper\">\n {this.currentTrek.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => (\n <div class=\"swiper-slide\">\n <img class=\"image\" src={attachment.url} loading=\"lazy\" onClick={() => this.handleFullscreen()} />\n </div>\n ))}\n </div>\n <div class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div class=\"name\">{this.currentTrek.name}</div>\n {this.themes.length > 0 && (\n <div class=\"themes-container\">\n {this.themes.map(theme => (\n <div class=\"theme\">{theme.label}</div>\n ))}\n </div>\n )}\n <div class=\"sub-container\">\n <div class=\"icons-labels-container\">\n <div class=\"row\">\n <div class=\"icon-label difficulty\">\n {this.difficulty?.pictogram && <img src={this.difficulty.pictogram} />}\n {this.difficulty?.label}\n </div>\n <div class=\"icon-label duration\">\n <span class=\"material-symbols material-symbols-outlined\">timelapse</span>\n {formatDuration(this.currentTrek?.duration)}\n </div>\n <div class=\"icon-label route\">\n {this.route?.pictogram && <img src={this.route.pictogram} />}\n {this.route?.route}\n </div>\n </div>\n <div class=\"row\">\n <div class=\"icon-label length\">\n <span class=\"material-symbols material-symbols-outlined\">open_in_full</span>\n {formatLength(this.currentTrek.length_2d)}\n </div>\n <div class=\"icon-label ascent\">\n <span class=\"material-symbols material-symbols-outlined\">moving</span>\n {formatAscent(this.currentTrek.ascent)}\n </div>\n <div class=\"icon-label practice\">\n {this.practice?.pictogram && <img src={this.practice.pictogram} />}\n {this.practice?.name}\n </div>\n </div>\n </div>\n </div>\n <div class=\"divider\"></div>\n <div class=\"downloads-container\">\n <div class=\"download-title\">{translate[state.language].downloads}</div>\n <div class=\"links-container\">\n <a href={`${this.currentTrek.gpx}`}>\n <span class=\"material-symbols material-symbols-outlined\">download</span>GPX\n </a>\n <a href={`${this.currentTrek.kml}`}>\n <span class=\"material-symbols material-symbols-outlined\">download</span>KML\n </a>\n <a href={`${this.currentTrek.pdf}`}>\n <span class=\"material-symbols material-symbols-outlined\">download</span>PDF\n </a>\n </div>\n </div>\n <div class=\"divider\"></div>\n {this.currentTrek.description_teaser && <div class=\"description-teaser\" innerHTML={this.currentTrek.description_teaser}></div>}\n {this.currentTrek.ambiance && <div class=\"ambiance\" innerHTML={this.currentTrek.ambiance}></div>}\n <div class=\"divider\"></div>\n {this.currentTrek.description && (\n <div class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div class=\"description-title\">{translate[state.language].description}</div>\n <div class=\"description\" innerHTML={this.currentTrek.description}></div>\n </div>\n )}\n {this.currentTrek.departure && (\n <div class=\"departure-container\">\n <div class=\"departure-title\">{translate[state.language].departure} :&nbsp;</div>\n <div innerHTML={this.currentTrek.departure}></div>\n </div>\n )}\n {this.currentTrek.arrival && (\n <div class=\"arrival-container\">\n <div class=\"arrival-title\">{translate[state.language].arrival} :&nbsp;</div>\n <div innerHTML={this.currentTrek.arrival}></div>\n </div>\n )}\n {this.currentTrek.cities && this.currentTrek.cities.length > 0 && (\n <div class=\"cities-container\">\n <div class=\"cities-title\">{translate[state.language].cities} :&nbsp;</div>\n <div innerHTML={this.cities.join(', ')}></div>\n </div>\n )}\n {this.weather && this.currentTrek.departure_city && (\n <div class=\"weather-container\">\n <iframe height=\"150\" frameborder=\"0\" src={`https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}`}></iframe>\n </div>\n )}\n {this.currentTrek.access && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"access-container\">\n <div class=\"access-title\">{translate[state.language].roadAccess}</div>\n <div class=\"access\" innerHTML={this.currentTrek.access}></div>\n </div>\n </div>\n )}\n {this.currentTrek.public_transport && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"public-transport-container\">\n <div class=\"public-transport-title\">{translate[state.language].transport}</div>\n <div class=\"public-transport\" innerHTML={this.currentTrek.public_transport}></div>\n </div>\n </div>\n )}\n {(this.currentTrek.advice || this.labels.length > 0) && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"advice-container\" ref={el => (this.recommendationRef = el)}>\n <div class=\"advice-title\">{translate[state.language].recommendations}</div>\n {this.currentTrek.advice && (\n <div class=\"current-advice-container\">\n <span class=\"material-symbols material-symbols-outlined\">warning</span>\n <div class=\"advice\" innerHTML={this.currentTrek.advice}></div>\n </div>\n )}\n {this.labels.map(label => (\n <div class=\"label-container\">\n <div class=\"label-sub-container\">\n {label.pictogram && <img src={label.pictogram} />}\n <div class=\"label-name\" innerHTML={label.name}></div>\n </div>\n <div class=\"label-advice\" innerHTML={label.advice}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n {this.currentTrek.advised_parking && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"advised-parking-container\" ref={el => (this.parkingRef = el)}>\n <div class=\"advised-parking-title\">{translate[state.language].recommendedParking}</div>\n <div class=\"advised-parking\" innerHTML={this.currentTrek.advised_parking}></div>\n </div>\n </div>\n )}\n {this.currentTrek.gear && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"gear-container\">\n <div class=\"gear-title\">{translate[state.language].equipments}</div>\n <div class=\"gear\" innerHTML={this.currentTrek.gear}></div>\n </div>\n </div>\n )}\n {state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"sensitive-areas-container\" ref={el => (this.sensitiveAreaRef = el)}>\n <div class=\"sensitive-areas-title\">{translate[state.language].environmentalSensitiveAreas}</div>\n {state.currentSensitiveAreas.map(sensitiveArea => (\n <grw-sensitive-area-detail sensitiveArea={sensitiveArea}></grw-sensitive-area-detail>\n ))}\n </div>\n </div>\n )}\n {state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"information-desks-container\" ref={el => (this.informationDeskRef = el)}>\n <div class=\"information-desks-title\">{translate[state.language].informationPlaces}</div>\n <div class=\"swiper swiper-information-desks\" ref={el => (this.swiperInformationDesksRef = el)}>\n <div class=\"swiper-wrapper\">\n {state.currentInformationDesks\n .filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id))\n .map(informationDesk => (\n <div class=\"swiper-slide\">\n <grw-information-desk-detail informationDesk={informationDesk}></grw-information-desk-detail>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )}\n {(this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice) && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"accessibilities-container\">\n <div class=\"accessibilities-title\">{translate[state.language].accessibility}</div>\n {this.currentTrek.disabled_infrastructure && <div innerHTML={this.currentTrek.disabled_infrastructure}></div>}\n <div class=\"accessibilities-content-container\">\n {this.accessibilities.map(accessibility => (\n <div class=\"accessibility-content-container\">\n <img src={accessibility.pictogram}></img>\n <div innerHTML={accessibility.name}></div>\n </div>\n ))}\n </div>\n {this.currentTrek.accessibility_level && (\n <div class=\"accessibility-level-container\">\n <div class=\"accessibility-level-title\">{translate[state.language].accessibilityLevel}</div>\n <div innerHTML={this.accessibilityLevel.name}></div>\n </div>\n )}\n {this.currentTrek.accessibility_slope && (\n <div class=\"accessibility-slope-container\">\n <div class=\"accessibility-slope-title\">{translate[state.language].accessibilitySlope}</div>\n <div innerHTML={this.currentTrek.accessibility_slope}></div>\n </div>\n )}\n {this.currentTrek.accessibility_width && (\n <div class=\"accessibility-width-container\">\n <div class=\"accessibility-width-title\">{translate[state.language].accessibilityWidth}</div>\n <div innerHTML={this.currentTrek.accessibility_width}></div>\n </div>\n )}\n {this.currentTrek.accessibility_signage && (\n <div class=\"accessibility-signage-container\">\n <div class=\"accessibility-signage-title\">{translate[state.language].accessibilitySignage}</div>\n <div innerHTML={this.currentTrek.accessibility_signage}></div>\n </div>\n )}\n {this.currentTrek.accessibility_covering && (\n <div class=\"accessibility-covering-container\">\n <div class=\"accessibility-covering-title\">{translate[state.language].accessibilityCovering}</div>\n <div innerHTML={this.currentTrek.accessibility_covering}></div>\n </div>\n )}\n {this.currentTrek.accessibility_exposure && (\n <div class=\"accessibility-exposure-container\">\n <div class=\"accessibility-exposure-title\">{translate[state.language].accessibilityExposure}</div>\n <div innerHTML={this.currentTrek.accessibility_exposure}></div>\n </div>\n )}\n {this.currentTrek.accessibility_advice && (\n <div class=\"accessibility-advice-container\">\n <div class=\"accessibility-advice-title\">{translate[state.language].accessibilityAdvices}</div>\n <div innerHTML={this.currentTrek.accessibility_advice}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {state.currentPois && state.currentPois.length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"pois-container\" ref={el => (this.poiRef = el)}>\n <div class=\"pois-title\">{translate[state.language].pois(state.currentPois.length)}</div>\n <div class=\"swiper swiper-pois\" ref={el => (this.swiperPoisRef = el)}>\n <div class=\"swiper-wrapper\">\n {state.currentPois.map(poi => (\n <div class=\"swiper-slide\">\n <grw-poi-detail poi={poi}></grw-poi-detail>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )}\n {this.currentTrek.source && this.currentTrek.source.length > 0 && (\n <div>\n <div class=\"divider\"></div>\n <div class=\"source-container\">\n <div class=\"source-title\">{translate[state.language].sources}</div>\n {this.sources.map(source => (\n <div class=\"source-sub-container\">\n {source.pictogram && <img src={source.pictogram} />}\n <div>\n <div class=\"source-name\" innerHTML={source.name}></div>\n <a class=\"source-advice\" href={source.website} innerHTML={source.website}></a>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n <div class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -28,6 +28,9 @@ const { state, onChange, reset } = createStore({
28
28
  treksNetworkError: false,
29
29
  trekNetworkError: false,
30
30
  searchValue: null,
31
+ selectedOthersFilters: 0,
32
+ selectedThemesFilters: 0,
33
+ selectedLocationFilters: 0,
31
34
  });
32
35
  export { onChange, reset };
33
36
  export default state;
Binary file
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwB7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CA6B3C;EACD,GAAG,EAAE,IAAI;EACT,SAAS,EAAE,IAAI;EACf,QAAQ,EAAE,IAAI;EACd,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;EAClB,iBAAiB,EAAE,IAAI;EACvB,qBAAqB,EAAE,IAAI;EAC3B,YAAY,EAAE,IAAI;EAClB,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;EAChB,qBAAqB,EAAE,IAAI;EAC3B,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,IAAI;EACrB,oBAAoB,EAAE,IAAI;EAC1B,QAAQ,EAAE,IAAI;EACd,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,IAAI;EACjB,uBAAuB,EAAE,IAAI;EAC7B,iBAAiB,EAAE,KAAK;EACxB,gBAAgB,EAAE,KAAK;EACvB,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE3B,eAAe,KAAK,CAAC","sourcesContent":["import { createStore } from '@stencil/store';\nimport { LatLngBounds } from 'leaflet';\nimport {\n Accessibilities,\n accessibilitiesLevel,\n Difficulties,\n Durations,\n InformationDesks,\n Labels,\n Pois,\n PoiTypes,\n Practices,\n Routes,\n SensitiveAreas,\n Sources,\n Themes,\n Cities,\n Trek,\n Treks,\n Lengths,\n Elevations,\n Districts,\n} from 'types/types';\n\nconst { state, onChange, reset } = createStore<{\n api: string;\n languages: string[];\n language: string;\n treks: Treks;\n treksWithinBounds: Treks;\n currentMapTreksBounds: LatLngBounds;\n currentTreks: Treks;\n difficulties: Difficulties;\n routes: Routes;\n practices: Practices;\n themes: Themes;\n cities: Cities;\n durations: Durations;\n lengths: Lengths;\n elevations: Elevations;\n labels: Labels;\n districts: Districts;\n sources: Sources;\n accessibilities: Accessibilities;\n accessibilitiesLevel: accessibilitiesLevel;\n poiTypes: PoiTypes;\n currentTrek: Trek;\n currentSensitiveAreas: SensitiveAreas;\n currentPois: Pois;\n currentInformationDesks: InformationDesks;\n treksNetworkError: boolean;\n trekNetworkError: boolean;\n searchValue: string;\n}>({\n api: null,\n languages: null,\n language: null,\n treks: null,\n currentTreks: null,\n treksWithinBounds: null,\n currentMapTreksBounds: null,\n difficulties: null,\n routes: null,\n practices: null,\n themes: null,\n cities: null,\n durations: null,\n lengths: null,\n elevations: null,\n currentSensitiveAreas: null,\n labels: null,\n districts: null,\n sources: null,\n accessibilities: null,\n accessibilitiesLevel: null,\n poiTypes: null,\n currentTrek: null,\n currentPois: null,\n currentInformationDesks: null,\n treksNetworkError: false,\n trekNetworkError: false,\n searchValue: null,\n});\n\nexport { onChange, reset };\n\nexport default state;\n"]}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwB7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAgC3C;EACD,GAAG,EAAE,IAAI;EACT,SAAS,EAAE,IAAI;EACf,QAAQ,EAAE,IAAI;EACd,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;EAClB,iBAAiB,EAAE,IAAI;EACvB,qBAAqB,EAAE,IAAI;EAC3B,YAAY,EAAE,IAAI;EAClB,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;EAChB,qBAAqB,EAAE,IAAI;EAC3B,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,IAAI;EACrB,oBAAoB,EAAE,IAAI;EAC1B,QAAQ,EAAE,IAAI;EACd,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,IAAI;EACjB,uBAAuB,EAAE,IAAI;EAC7B,iBAAiB,EAAE,KAAK;EACxB,gBAAgB,EAAE,KAAK;EACvB,WAAW,EAAE,IAAI;EACjB,qBAAqB,EAAE,CAAC;EACxB,qBAAqB,EAAE,CAAC;EACxB,uBAAuB,EAAE,CAAC;CAC3B,CAAC,CAAC;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE3B,eAAe,KAAK,CAAC","sourcesContent":["import { createStore } from '@stencil/store';\nimport { LatLngBounds } from 'leaflet';\nimport {\n Accessibilities,\n accessibilitiesLevel,\n Difficulties,\n Durations,\n InformationDesks,\n Labels,\n Pois,\n PoiTypes,\n Practices,\n Routes,\n SensitiveAreas,\n Sources,\n Themes,\n Cities,\n Trek,\n Treks,\n Lengths,\n Elevations,\n Districts,\n} from 'types/types';\n\nconst { state, onChange, reset } = createStore<{\n api: string;\n languages: string[];\n language: string;\n treks: Treks;\n treksWithinBounds: Treks;\n currentMapTreksBounds: LatLngBounds;\n currentTreks: Treks;\n difficulties: Difficulties;\n routes: Routes;\n practices: Practices;\n themes: Themes;\n cities: Cities;\n durations: Durations;\n lengths: Lengths;\n elevations: Elevations;\n labels: Labels;\n districts: Districts;\n sources: Sources;\n accessibilities: Accessibilities;\n accessibilitiesLevel: accessibilitiesLevel;\n poiTypes: PoiTypes;\n currentTrek: Trek;\n currentSensitiveAreas: SensitiveAreas;\n currentPois: Pois;\n currentInformationDesks: InformationDesks;\n treksNetworkError: boolean;\n trekNetworkError: boolean;\n searchValue: string;\n selectedOthersFilters: number;\n selectedThemesFilters: number;\n selectedLocationFilters: number;\n}>({\n api: null,\n languages: null,\n language: null,\n treks: null,\n currentTreks: null,\n treksWithinBounds: null,\n currentMapTreksBounds: null,\n difficulties: null,\n routes: null,\n practices: null,\n themes: null,\n cities: null,\n durations: null,\n lengths: null,\n elevations: null,\n currentSensitiveAreas: null,\n labels: null,\n districts: null,\n sources: null,\n accessibilities: null,\n accessibilitiesLevel: null,\n poiTypes: null,\n currentTrek: null,\n currentPois: null,\n currentInformationDesks: null,\n treksNetworkError: false,\n trekNetworkError: false,\n searchValue: null,\n selectedOthersFilters: 0,\n selectedThemesFilters: 0,\n selectedLocationFilters: 0,\n});\n\nexport { onChange, reset };\n\nexport default state;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"","sourcesContent":["import { LineString, Geometry, Position, MultiPoint } from 'geojson';\n\nexport type Treks = Trek[];\n\nexport type Trek = {\n id: number;\n name: string;\n attachments: Attachments;\n description?: string;\n description_teaser: string;\n difficulty: number;\n route: number;\n practice: number;\n themes: number[];\n duration: number;\n length_2d: number;\n ascent: number;\n departure: string;\n departure_city: string;\n arrival?: string;\n geometry?: LineString;\n departure_geom?: Position;\n gpx?: string;\n kml?: string;\n pdf?: string;\n parking_location?: Position;\n ambiance?: string;\n access?: string;\n public_transport?: string;\n advice?: string;\n advised_parking?: string;\n gear?: string;\n labels?: number[];\n points_reference?: MultiPoint;\n source?: number[];\n structure?: number;\n disabled_infrastructure?: string;\n accessibilities?: number[];\n accessibility_level?: number;\n accessibility_slope?: string;\n accessibility_width?: string;\n accessibility_signage?: string;\n accessibility_covering?: string;\n accessibility_exposure?: string;\n accessibility_advice?: string;\n cities?: string[];\n information_desks?: number[];\n};\n\nexport type Attachments = Attachment[];\n\nexport type Attachment = {\n backend: string;\n type: string;\n author: string;\n thumbnail: string;\n legend: string;\n title: string;\n url: string;\n uuid: string;\n};\n\nexport type Difficulties = Difficulty[];\n\nexport type Difficulty = {\n id: number;\n label: string;\n pictogram: string;\n};\n\nexport type Routes = Route[];\n\nexport type Route = {\n id: number;\n route: string;\n pictogram: string;\n};\n\nexport type Practices = Practice[];\n\nexport type Practice = {\n id: number;\n name: string;\n pictogram: string;\n selected: boolean;\n};\n\nexport type Themes = Theme[];\n\nexport type Theme = {\n id: number;\n label: string;\n pictogram: string;\n};\n\nexport type Cities = City[];\n\nexport type City = {\n id: string;\n name: string;\n};\n\nexport type Labels = Label[];\n\nexport type Label = {\n id: number;\n name: string;\n advice: string;\n pictogram: string;\n};\n\nexport type Districts = District[];\n\nexport type District = {\n id: number;\n name: string;\n advice: string;\n pictogram: string;\n};\n\nexport type Sources = Source[];\n\nexport type Source = {\n id: number;\n name: string;\n website: string;\n pictogram: string;\n};\n\nexport type Accessibilities = Accessibility[];\n\nexport type Accessibility = {\n id: number;\n name: string;\n pictogram: string;\n};\n\nexport type accessibilitiesLevel = AccessibilityLevel[];\n\nexport type AccessibilityLevel = {\n id: number;\n name: string;\n};\n\nexport type Durations = Duration[];\n\nexport type Duration = {\n id: number;\n name: string;\n minValue: number;\n maxValue: number;\n selected: boolean;\n};\n\nexport type Lengths = Length[];\n\nexport type Length = {\n id: number;\n name: string;\n minValue: number;\n maxValue: number;\n selected: boolean;\n};\n\nexport type Elevations = Elevation[];\n\nexport type Elevation = {\n id: number;\n name: string;\n minValue: number;\n maxValue: number;\n selected: boolean;\n};\n\nexport type SensitiveAreas = SensitiveArea[];\n\nexport type SensitiveArea = {\n id: number;\n geometry: Geometry;\n name: string;\n description: string;\n contact: string;\n info_url: string;\n period: boolean[];\n practices: number[];\n};\n\nexport type Pois = Poi[];\n\nexport type Poi = {\n id: number;\n name: string;\n description: string;\n attachments: Attachments;\n type: number;\n geometry: Geometry;\n};\n\nexport type PoiTypes = PoiType[];\n\nexport type PoiType = {\n id: number;\n pictogram: string;\n};\n\nexport type InformationDesks = InformationDesk[];\n\nexport type InformationDesk = {\n id: number;\n name: string;\n description: string;\n type: InformationDeskType;\n phone: string;\n email: string;\n website: string;\n municipality: string;\n postal_code: string;\n street: string;\n photo_url: string;\n latitude: number;\n longitude: number;\n};\n\nexport type InformationDeskType = {\n id: number;\n label: string;\n pictogram: string;\n};\n\nexport type Filters = Filter[];\n\nexport type Filter = { property: string; trekProperty: string; trekPropertyIsArray: boolean; type: string };\n\nexport interface Option {\n visible: boolean;\n width: number;\n indicator: boolean;\n}\n\nexport interface Options {\n presentation: Option;\n description: Option;\n recommendations: Option;\n sensitiveArea: Option;\n informationPlaces: Option;\n pois: Option;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"","sourcesContent":["import { LineString, Geometry, Position, MultiPoint } from 'geojson';\n\nexport type Treks = Trek[];\n\nexport type Trek = {\n id: number;\n name: string;\n attachments: Attachments;\n description?: string;\n description_teaser: string;\n difficulty: number;\n route: number;\n practice: number;\n themes: number[];\n duration: number;\n length_2d: number;\n ascent: number;\n departure: string;\n departure_city: string;\n arrival?: string;\n geometry?: LineString;\n departure_geom?: Position;\n gpx?: string;\n kml?: string;\n pdf?: string;\n parking_location?: Position;\n ambiance?: string;\n access?: string;\n public_transport?: string;\n advice?: string;\n advised_parking?: string;\n gear?: string;\n labels?: number[];\n points_reference?: MultiPoint;\n source?: number[];\n structure?: number;\n disabled_infrastructure?: string;\n accessibilities?: number[];\n accessibility_level?: number;\n accessibility_slope?: string;\n accessibility_width?: string;\n accessibility_signage?: string;\n accessibility_covering?: string;\n accessibility_exposure?: string;\n accessibility_advice?: string;\n cities?: string[];\n information_desks?: number[];\n};\n\nexport type Attachments = Attachment[];\n\nexport type Attachment = {\n backend: string;\n type: string;\n author: string;\n thumbnail: string;\n legend: string;\n title: string;\n url: string;\n uuid: string;\n};\n\nexport type Difficulties = Difficulty[];\n\nexport type Difficulty = {\n id: number;\n label: string;\n pictogram: string;\n};\n\nexport type Routes = Route[];\n\nexport type Route = {\n id: number;\n route: string;\n pictogram: string;\n};\n\nexport type Practices = Practice[];\n\nexport type Practice = {\n id: number;\n name: string;\n pictogram: string;\n selected: boolean;\n};\n\nexport type Themes = Theme[];\n\nexport type Theme = {\n id: number;\n label: string;\n pictogram: string;\n};\n\nexport type Cities = City[];\n\nexport type City = {\n id: string;\n name: string;\n};\n\nexport type Labels = Label[];\n\nexport type Label = {\n id: number;\n name: string;\n advice: string;\n pictogram: string;\n};\n\nexport type Districts = District[];\n\nexport type District = {\n id: number;\n name: string;\n advice: string;\n pictogram: string;\n};\n\nexport type Sources = Source[];\n\nexport type Source = {\n id: number;\n name: string;\n website: string;\n pictogram: string;\n};\n\nexport type Accessibilities = Accessibility[];\n\nexport type Accessibility = {\n id: number;\n name: string;\n pictogram: string;\n};\n\nexport type accessibilitiesLevel = AccessibilityLevel[];\n\nexport type AccessibilityLevel = {\n id: number;\n name: string;\n};\n\nexport type Durations = Duration[];\n\nexport type Duration = {\n id: number;\n name: string;\n minValue: number;\n maxValue: number;\n selected: boolean;\n};\n\nexport type Lengths = Length[];\n\nexport type Length = {\n id: number;\n name: string;\n minValue: number;\n maxValue: number;\n selected: boolean;\n};\n\nexport type Elevations = Elevation[];\n\nexport type Elevation = {\n id: number;\n name: string;\n minValue: number;\n maxValue: number;\n selected: boolean;\n};\n\nexport type SensitiveAreas = SensitiveArea[];\n\nexport type SensitiveArea = {\n id: number;\n geometry: Geometry;\n name: string;\n description: string;\n contact: string;\n info_url: string;\n period: boolean[];\n practices: number[];\n};\n\nexport type Pois = Poi[];\n\nexport type Poi = {\n id: number;\n name: string;\n description: string;\n attachments: Attachments;\n type: number;\n geometry: Geometry;\n};\n\nexport type PoiTypes = PoiType[];\n\nexport type PoiType = {\n id: number;\n pictogram: string;\n};\n\nexport type InformationDesks = InformationDesk[];\n\nexport type InformationDesk = {\n id: number;\n name: string;\n description: string;\n type: InformationDeskType;\n phone: string;\n email: string;\n website: string;\n municipality: string;\n postal_code: string;\n street: string;\n photo_url: string;\n latitude: number;\n longitude: number;\n};\n\nexport type InformationDeskType = {\n id: number;\n label: string;\n pictogram: string;\n};\n\nexport type Filters = Filter[];\n\nexport type Filter = { property: string; trekProperty: string; trekPropertyIsArray: boolean; type: string; segment: string };\n\nexport interface Option {\n visible: boolean;\n width: number;\n indicator: boolean;\n}\n\nexport interface Options {\n presentation: Option;\n description: Option;\n recommendations: Option;\n sensitiveArea: Option;\n informationPlaces: Option;\n pois: Option;\n}\n"]}
@@ -18,20 +18,20 @@ export function formatLength(length) {
18
18
  export function formatAscent(ascent) {
19
19
  return `${ascent}m`;
20
20
  }
21
+ export const filters = [
22
+ { property: 'practices', trekProperty: 'practice', trekPropertyIsArray: false, type: 'include', segment: 'selectedOthersFilters' },
23
+ { property: 'difficulties', trekProperty: 'difficulty', trekPropertyIsArray: false, type: 'include', segment: 'selectedOthersFilters' },
24
+ { property: 'durations', trekProperty: 'duration', trekPropertyIsArray: false, type: 'interval', segment: 'selectedOthersFilters' },
25
+ { property: 'lengths', trekProperty: 'length_2d', trekPropertyIsArray: false, type: 'interval', segment: 'selectedOthersFilters' },
26
+ { property: 'elevations', trekProperty: 'ascent', trekPropertyIsArray: false, type: 'interval', segment: 'selectedOthersFilters' },
27
+ { property: 'routes', trekProperty: 'route', trekPropertyIsArray: false, type: 'include', segment: 'selectedOthersFilters' },
28
+ { property: 'accessibilities', trekProperty: 'accessibilities', trekPropertyIsArray: true, type: 'include', segment: 'selectedOthersFilters' },
29
+ { property: 'labels', trekProperty: 'labels', trekPropertyIsArray: true, type: 'include', segment: 'selectedOthersFilters' },
30
+ { property: 'themes', trekProperty: 'themes', trekPropertyIsArray: true, type: 'include', segment: 'selectedThemesFilters' },
31
+ { property: 'cities', trekProperty: 'cities', trekPropertyIsArray: true, type: 'include', segment: 'selectedLocationFilters' },
32
+ { property: 'districts', trekProperty: 'districts', trekPropertyIsArray: true, type: 'include', segment: 'selectedLocationFilters' },
33
+ ];
21
34
  export function handleFiltersAndSearch() {
22
- const filters = [
23
- { property: 'practices', trekProperty: 'practice', trekPropertyIsArray: false, type: 'include' },
24
- { property: 'difficulties', trekProperty: 'difficulty', trekPropertyIsArray: false, type: 'include' },
25
- { property: 'durations', trekProperty: 'duration', trekPropertyIsArray: false, type: 'interval' },
26
- { property: 'lengths', trekProperty: 'length_2d', trekPropertyIsArray: false, type: 'interval' },
27
- { property: 'elevations', trekProperty: 'ascent', trekPropertyIsArray: false, type: 'interval' },
28
- { property: 'themes', trekProperty: 'themes', trekPropertyIsArray: true, type: 'include' },
29
- { property: 'routes', trekProperty: 'route', trekPropertyIsArray: false, type: 'include' },
30
- { property: 'accessibilities', trekProperty: 'accessibilities', trekPropertyIsArray: true, type: 'include' },
31
- { property: 'cities', trekProperty: 'cities', trekPropertyIsArray: true, type: 'include' },
32
- { property: 'labels', trekProperty: 'labels', trekPropertyIsArray: true, type: 'include' },
33
- { property: 'districts', trekProperty: 'districts', trekPropertyIsArray: true, type: 'include' },
34
- ];
35
35
  let isUsingFilter = false;
36
36
  let filtersTreks = [];
37
37
  for (const filter of filters) {
@@ -40,7 +40,7 @@ export function handleFiltersAndSearch() {
40
40
  if (filtersTreks.length > 0) {
41
41
  if (filter.type === 'include') {
42
42
  if (filter.trekPropertyIsArray) {
43
- filtersTreks = [...state.treks.filter(trek => trek[filter.trekProperty].some(trekProperty => currentFiltersId.includes(trekProperty)))];
43
+ filtersTreks = [...filtersTreks.filter(trek => trek[filter.trekProperty].some(trekProperty => currentFiltersId.includes(trekProperty)))];
44
44
  }
45
45
  else {
46
46
  filtersTreks = [...filtersTreks.filter(trek => currentFiltersId.includes(trek[filter.trekProperty]))];
Binary file
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAGhC,MAAM,UAAU,cAAc,CAAC,QAAgB;EAC7C,IAAI,iBAAiB,CAAC;EACtB,IAAI,QAAQ,GAAG,EAAE,EAAE;IACjB,iBAAiB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC/C,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE;MACpB,iBAAiB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;KAC9D;GACF;OAAM;IACL,iBAAiB,GAAG,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC;GACzC;EACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;EACzC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;EACzC,OAAO,GAAG,MAAM,GAAG,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,sBAAsB;EACpC,MAAM,OAAO,GAAY;IACvB,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IAChG,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IACrG,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACjG,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IAChG,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IAChG,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1F,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1F,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5G,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1F,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1F,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;GACjG,CAAC;EAEF,IAAI,aAAa,GAAG,KAAK,CAAC;EAC1B,IAAI,YAAY,GAAG,EAAE,CAAC;EACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;IAC5B,MAAM,gBAAgB,GAAa,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjJ,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;MAC/B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;UAC7B,IAAI,MAAM,CAAC,mBAAmB,EAAE;YAC9B,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;WACzI;eAAM;YACL,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;WACvG;SACF;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;UACrC,YAAY,GAAG;YACb,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;cAC5B,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;gBAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;gBAC/F,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE;kBAC9G,OAAO,IAAI,CAAC;iBACb;eACF;cACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;WACH,CAAC;SACH;OACF;WAAM;QACL,IAAI,CAAC,aAAa,EAAE;UAClB,aAAa,GAAG,IAAI,CAAC;SACtB;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;UAC7B,IAAI,MAAM,CAAC,mBAAmB,EAAE;YAC9B,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;WACzI;eAAM;YACL,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;WACtG;SACF;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;UACrC,IAAI,QAAgB,CAAC;UACrB,IAAI,QAAgB,CAAC;UACrB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;YAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;YAC/F,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,GAAG,QAAQ,EAAE;cACxD,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;aACnC;YACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,GAAG,QAAQ,EAAE;cACxD,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;aACnC;WACF;UACD,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;SAChI;OACF;KACF;GACF;EAED,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;EAC/D,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAChK,CAAC","sourcesContent":["import state from 'store/store';\nimport { Filters, Treks } from 'types/types';\n\nexport function formatDuration(duration: number) {\n let formattedDuration;\n if (duration < 24) {\n formattedDuration = `${Math.floor(duration)}h`;\n if (duration % 1 > 0) {\n formattedDuration += `${Math.round(60 * (duration % 1))}min`;\n }\n } else {\n formattedDuration = `${duration / 24}j`;\n }\n return formattedDuration;\n}\n\nexport function formatLength(length: number) {\n return `${Math.round(length / 1000)}km`;\n}\n\nexport function formatAscent(ascent: number) {\n return `${ascent}m`;\n}\n\nexport function handleFiltersAndSearch(): Treks {\n const filters: Filters = [\n { property: 'practices', trekProperty: 'practice', trekPropertyIsArray: false, type: 'include' },\n { property: 'difficulties', trekProperty: 'difficulty', trekPropertyIsArray: false, type: 'include' },\n { property: 'durations', trekProperty: 'duration', trekPropertyIsArray: false, type: 'interval' },\n { property: 'lengths', trekProperty: 'length_2d', trekPropertyIsArray: false, type: 'interval' },\n { property: 'elevations', trekProperty: 'ascent', trekPropertyIsArray: false, type: 'interval' },\n { property: 'themes', trekProperty: 'themes', trekPropertyIsArray: true, type: 'include' },\n { property: 'routes', trekProperty: 'route', trekPropertyIsArray: false, type: 'include' },\n { property: 'accessibilities', trekProperty: 'accessibilities', trekPropertyIsArray: true, type: 'include' },\n { property: 'cities', trekProperty: 'cities', trekPropertyIsArray: true, type: 'include' },\n { property: 'labels', trekProperty: 'labels', trekPropertyIsArray: true, type: 'include' },\n { property: 'districts', trekProperty: 'districts', trekPropertyIsArray: true, type: 'include' },\n ];\n\n let isUsingFilter = false;\n let filtersTreks = [];\n for (const filter of filters) {\n const currentFiltersId: number[] = state[filter.property].filter(currentFilter => currentFilter.selected).map(currentFilter => currentFilter.id);\n if (currentFiltersId.length > 0) {\n if (filtersTreks.length > 0) {\n if (filter.type === 'include') {\n if (filter.trekPropertyIsArray) {\n filtersTreks = [...state.treks.filter(trek => trek[filter.trekProperty].some(trekProperty => currentFiltersId.includes(trekProperty)))];\n } else {\n filtersTreks = [...filtersTreks.filter(trek => currentFiltersId.includes(trek[filter.trekProperty]))];\n }\n } else if (filter.type === 'interval') {\n filtersTreks = [\n ...filtersTreks.filter(trek => {\n for (const currentFilterId of currentFiltersId) {\n const currentFilter = state[filter.property].find(property => property.id === currentFilterId);\n if (trek[filter.trekProperty] >= currentFilter.minValue && trek[filter.trekProperty] <= currentFilter.maxValue) {\n return true;\n }\n }\n return false;\n }),\n ];\n }\n } else {\n if (!isUsingFilter) {\n isUsingFilter = true;\n }\n if (filter.type === 'include') {\n if (filter.trekPropertyIsArray) {\n filtersTreks = [...state.treks.filter(trek => trek[filter.trekProperty].some(trekProperty => currentFiltersId.includes(trekProperty)))];\n } else {\n filtersTreks = [...state.treks.filter(trek => currentFiltersId.includes(trek[filter.trekProperty]))];\n }\n } else if (filter.type === 'interval') {\n let minValue: number;\n let maxValue: number;\n for (const currentFilterId of currentFiltersId) {\n const currentFilter = state[filter.property].find(property => property.id === currentFilterId);\n if (isNaN(minValue) || currentFilter.minValue < minValue) {\n minValue = currentFilter.minValue;\n }\n if (isNaN(maxValue) || currentFilter.maxValue > maxValue) {\n maxValue = currentFilter.maxValue;\n }\n }\n filtersTreks = [...state.treks.filter(trek => trek[filter.trekProperty] >= minValue && trek[filter.trekProperty] <= maxValue)];\n }\n }\n }\n }\n\n const searchTreks = isUsingFilter ? filtersTreks : state.treks;\n return Boolean(state.searchValue) ? searchTreks.filter(currentTrek => currentTrek.name.toLowerCase().includes(state.searchValue.toLowerCase())) : searchTreks;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import state from 'store/store';\nimport { Filters, Treks } from 'types/types';\n\nexport function formatDuration(duration: number) {\n let formattedDuration;\n if (duration < 24) {\n formattedDuration = `${Math.floor(duration)}h`;\n if (duration % 1 > 0) {\n formattedDuration += `${Math.round(60 * (duration % 1))}min`;\n }\n } else {\n formattedDuration = `${duration / 24}j`;\n }\n return formattedDuration;\n}\n\nexport function formatLength(length: number) {\n return `${Math.round(length / 1000)}km`;\n}\n\nexport function formatAscent(ascent: number) {\n return `${ascent}m`;\n}\n\nexport const filters: Filters = [\n { property: 'practices', trekProperty: 'practice', trekPropertyIsArray: false, type: 'include', segment: 'selectedOthersFilters' },\n { property: 'difficulties', trekProperty: 'difficulty', trekPropertyIsArray: false, type: 'include', segment: 'selectedOthersFilters' },\n { property: 'durations', trekProperty: 'duration', trekPropertyIsArray: false, type: 'interval', segment: 'selectedOthersFilters' },\n { property: 'lengths', trekProperty: 'length_2d', trekPropertyIsArray: false, type: 'interval', segment: 'selectedOthersFilters' },\n { property: 'elevations', trekProperty: 'ascent', trekPropertyIsArray: false, type: 'interval', segment: 'selectedOthersFilters' },\n { property: 'routes', trekProperty: 'route', trekPropertyIsArray: false, type: 'include', segment: 'selectedOthersFilters' },\n { property: 'accessibilities', trekProperty: 'accessibilities', trekPropertyIsArray: true, type: 'include', segment: 'selectedOthersFilters' },\n { property: 'labels', trekProperty: 'labels', trekPropertyIsArray: true, type: 'include', segment: 'selectedOthersFilters' },\n { property: 'themes', trekProperty: 'themes', trekPropertyIsArray: true, type: 'include', segment: 'selectedThemesFilters' },\n { property: 'cities', trekProperty: 'cities', trekPropertyIsArray: true, type: 'include', segment: 'selectedLocationFilters' },\n { property: 'districts', trekProperty: 'districts', trekPropertyIsArray: true, type: 'include', segment: 'selectedLocationFilters' },\n];\n\nexport function handleFiltersAndSearch(): Treks {\n let isUsingFilter = false;\n let filtersTreks = [];\n for (const filter of filters) {\n const currentFiltersId: number[] = state[filter.property].filter(currentFilter => currentFilter.selected).map(currentFilter => currentFilter.id);\n if (currentFiltersId.length > 0) {\n if (filtersTreks.length > 0) {\n if (filter.type === 'include') {\n if (filter.trekPropertyIsArray) {\n filtersTreks = [...filtersTreks.filter(trek => trek[filter.trekProperty].some(trekProperty => currentFiltersId.includes(trekProperty)))];\n } else {\n filtersTreks = [...filtersTreks.filter(trek => currentFiltersId.includes(trek[filter.trekProperty]))];\n }\n } else if (filter.type === 'interval') {\n filtersTreks = [\n ...filtersTreks.filter(trek => {\n for (const currentFilterId of currentFiltersId) {\n const currentFilter = state[filter.property].find(property => property.id === currentFilterId);\n if (trek[filter.trekProperty] >= currentFilter.minValue && trek[filter.trekProperty] <= currentFilter.maxValue) {\n return true;\n }\n }\n return false;\n }),\n ];\n }\n } else {\n if (!isUsingFilter) {\n isUsingFilter = true;\n }\n if (filter.type === 'include') {\n if (filter.trekPropertyIsArray) {\n filtersTreks = [...state.treks.filter(trek => trek[filter.trekProperty].some(trekProperty => currentFiltersId.includes(trekProperty)))];\n } else {\n filtersTreks = [...state.treks.filter(trek => currentFiltersId.includes(trek[filter.trekProperty]))];\n }\n } else if (filter.type === 'interval') {\n let minValue: number;\n let maxValue: number;\n for (const currentFilterId of currentFiltersId) {\n const currentFilter = state[filter.property].find(property => property.id === currentFilterId);\n if (isNaN(minValue) || currentFilter.minValue < minValue) {\n minValue = currentFilter.minValue;\n }\n if (isNaN(maxValue) || currentFilter.maxValue > maxValue) {\n maxValue = currentFilter.maxValue;\n }\n }\n filtersTreks = [...state.treks.filter(trek => trek[filter.trekProperty] >= minValue && trek[filter.trekProperty] <= maxValue)];\n }\n }\n }\n }\n\n const searchTreks = isUsingFilter ? filtersTreks : state.treks;\n return Boolean(state.searchValue) ? searchTreks.filter(currentTrek => currentTrek.name.toLowerCase().includes(state.searchValue.toLowerCase())) : searchTreks;\n}\n"]}