@geotrekce/geotrek-rando-widget 0.0.2 → 0.0.5

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 (98) hide show
  1. package/dist/cjs/geotrek-rando-widget.cjs.js +2 -2
  2. package/dist/cjs/grw-app.cjs.entry.js +93 -0
  3. package/dist/cjs/{grw-app_7.cjs.entry.js → grw-filter_6.cjs.entry.js} +424 -384
  4. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js +52 -0
  5. package/dist/cjs/grw-trek-card.cjs.entry.js +47 -0
  6. package/dist/cjs/{index-c6f73e30.js → index-c2c4531d.js} +46 -1
  7. package/dist/cjs/length-d315d156.js +34 -0
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/store-972b8d2a.js +209 -0
  10. package/dist/collection/collection-manifest.json +4 -0
  11. package/dist/collection/components/grw-app/grw-app.css +70 -5
  12. package/dist/collection/components/grw-app/grw-app.js +139 -33
  13. package/dist/collection/components/grw-filter/grw-filter.css +29 -0
  14. package/dist/collection/components/grw-filter/grw-filter.js +132 -0
  15. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.css +31 -0
  16. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js +53 -0
  17. package/dist/collection/components/grw-map/grw-map.css +99 -0
  18. package/dist/collection/components/grw-map/grw-map.js +315 -42
  19. package/dist/collection/components/grw-poi-detail/grw-poi-detail.css +31 -0
  20. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js +41 -0
  21. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.css +39 -0
  22. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.js +52 -0
  23. package/dist/collection/components/grw-trek-card/grw-trek-card.css +67 -30
  24. package/dist/collection/components/grw-trek-card/grw-trek-card.js +37 -13
  25. package/dist/collection/components/grw-trek-detail/grw-trek-detail.css +160 -1
  26. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +123 -8
  27. package/dist/collection/components/grw-treks-list/grw-treks-list.css +17 -3
  28. package/dist/collection/components/grw-treks-list/grw-treks-list.js +29 -7
  29. package/dist/collection/store/grw-trek-provider.js +36 -8
  30. package/dist/collection/store/grw-treks-provider.js +16 -7
  31. package/dist/collection/store/store.js +10 -0
  32. package/dist/collection/stories/App.js +22 -16
  33. package/dist/collection/stories/App.stories.js +14 -9
  34. package/dist/collection/stories/TrekCard.js +2 -1
  35. package/dist/collection/stories/TrekCard.stories.js +4 -3
  36. package/dist/collection/stories/TrekDetail.js +3 -1
  37. package/dist/collection/stories/TrekDetail.stories.js +5 -3
  38. package/dist/collection/stories/TrekMap.js +6 -4
  39. package/dist/collection/stories/TrekMap.stories.js +10 -7
  40. package/dist/collection/stories/TreksList.js +10 -9
  41. package/dist/collection/stories/TreksList.stories.js +4 -3
  42. package/dist/collection/stories/TreksMap.stories.js +6 -5
  43. package/dist/collection/utils/utils.js +2 -2
  44. package/dist/components/grw-app.js +76 -11
  45. package/dist/components/grw-filter.d.ts +11 -0
  46. package/dist/components/grw-filter.js +6 -0
  47. package/dist/components/grw-filter2.js +95 -0
  48. package/dist/components/grw-information-desk-detail.d.ts +11 -0
  49. package/dist/components/grw-information-desk-detail.js +6 -0
  50. package/dist/components/grw-information-desk-detail2.js +34 -0
  51. package/dist/components/grw-map2.js +263 -39
  52. package/dist/components/grw-poi-detail.d.ts +11 -0
  53. package/dist/components/grw-poi-detail.js +6 -0
  54. package/dist/components/grw-poi-detail2.js +32 -0
  55. package/dist/components/grw-sensitive-area-detail.d.ts +11 -0
  56. package/dist/components/grw-sensitive-area-detail.js +6 -0
  57. package/dist/components/grw-sensitive-area-detail2.js +37 -0
  58. package/dist/components/grw-trek-card2.js +11 -6
  59. package/dist/components/grw-trek-detail2.js +40 -7
  60. package/dist/components/grw-trek-provider2.js +36 -8
  61. package/dist/components/grw-treks-list2.js +10 -7
  62. package/dist/components/grw-treks-provider2.js +16 -7
  63. package/dist/components/length.js +2 -2
  64. package/dist/components/store.js +10 -0
  65. package/dist/esm/geotrek-rando-widget.js +2 -2
  66. package/dist/esm/grw-app.entry.js +89 -0
  67. package/dist/esm/{grw-app_7.entry.js → grw-filter_6.entry.js} +398 -357
  68. package/dist/esm/grw-information-desk-detail_3.entry.js +46 -0
  69. package/dist/esm/grw-trek-card.entry.js +43 -0
  70. package/dist/esm/{index-7aa9e822.js → index-192d910f.js} +47 -2
  71. package/dist/esm/length-d82189db.js +27 -0
  72. package/dist/esm/loader.js +2 -2
  73. package/dist/esm/store-5a42b5d8.js +206 -0
  74. package/dist/geotrek-rando-widget/geotrek-rando-widget.css +1 -1
  75. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  76. package/dist/geotrek-rando-widget/p-206a52d9.entry.js +1 -0
  77. package/dist/geotrek-rando-widget/p-2d9ae918.entry.js +1 -0
  78. package/dist/geotrek-rando-widget/p-6dce5e6c.js +2 -0
  79. package/dist/geotrek-rando-widget/p-8cfa03c0.entry.js +1 -0
  80. package/dist/geotrek-rando-widget/p-d3aa9819.entry.js +1 -0
  81. package/dist/geotrek-rando-widget/p-e63213a9.js +1 -0
  82. package/dist/geotrek-rando-widget/p-f3f7d6be.js +1 -0
  83. package/dist/types/components/grw-app/grw-app.d.ts +13 -2
  84. package/dist/types/components/grw-filter/grw-filter.d.ts +9 -0
  85. package/dist/types/components/grw-information-desk-detail/grw-information-desk-detail.d.ts +5 -0
  86. package/dist/types/components/grw-map/grw-map.d.ts +14 -4
  87. package/dist/types/components/grw-poi-detail/grw-poi-detail.d.ts +5 -0
  88. package/dist/types/components/grw-sensitive-area-detail/grw-sensitive-area-detail.d.ts +5 -0
  89. package/dist/types/components/grw-trek-card/grw-trek-card.d.ts +6 -4
  90. package/dist/types/components/grw-trek-detail/grw-trek-detail.d.ts +10 -4
  91. package/dist/types/components/grw-treks-list/grw-treks-list.d.ts +1 -0
  92. package/dist/types/components.d.ts +88 -3
  93. package/dist/types/store/store.d.ts +21 -1
  94. package/dist/types/types/types.d.ts +119 -3
  95. package/package.json +9 -10
  96. package/readme.md +19 -1
  97. package/dist/geotrek-rando-widget/p-332ba9ab.js +0 -2
  98. package/dist/geotrek-rando-widget/p-b7c66d2d.entry.js +0 -1
@@ -1,66 +1,103 @@
1
- .trek-card-container {
2
- width: 350px;
3
- height: auto;
1
+ .trek-card-container,
2
+ .trek-card-large-view-container {
3
+ font-family: "Roboto";
4
4
  border-radius: 8px;
5
5
  box-shadow: 4px 8px 24px rgba(0, 0, 0, 0.25);
6
6
  cursor: pointer;
7
7
  }
8
- .trek-card-container .image {
9
- width: 100%;
10
- height: auto;
8
+ .trek-card-container .image,
9
+ .trek-card-large-view-container .image {
10
+ object-fit: cover;
11
11
  }
12
- .trek-card-container .sub-container {
12
+ .trek-card-container .sub-container,
13
+ .trek-card-large-view-container .sub-container {
14
+ display: flex;
15
+ flex-direction: column;
16
+ justify-content: center;
13
17
  padding: 12px;
14
18
  }
15
- .trek-card-container .sub-container .name {
19
+ .trek-card-container .sub-container .name,
20
+ .trek-card-large-view-container .sub-container .name {
16
21
  color: var(--color-primary);
17
22
  font-size: 24px;
18
23
  font-weight: bold;
19
- margin-bottom: 12px;
24
+ margin-bottom: 8px;
20
25
  }
21
- .trek-card-container .sub-container .description {
22
- max-height: 24px;
23
- white-space: nowrap;
24
- overflow: hidden;
25
- text-overflow: ellipsis;
26
- margin-bottom: 12px;
26
+ .trek-card-container .sub-container .departure,
27
+ .trek-card-large-view-container .sub-container .departure {
28
+ color: rgba(0, 0, 0, 0.7);
29
+ font-size: 16px;
30
+ margin: 4px 0px;
31
+ }
32
+ .trek-card-container .sub-container .themes-container,
33
+ .trek-card-large-view-container .sub-container .themes-container {
34
+ display: flex;
35
+ justify-content: flex-start;
36
+ align-items: center;
37
+ flex-wrap: wrap;
27
38
  }
28
- .trek-card-container .sub-container .description p {
29
- white-space: nowrap;
30
- overflow: hidden;
31
- text-overflow: ellipsis;
32
- margin: 0;
39
+ .trek-card-container .sub-container .themes-container .theme,
40
+ .trek-card-large-view-container .sub-container .themes-container .theme {
41
+ background-color: var(--color-primary-tint);
42
+ color: #ffffff;
43
+ border-radius: 8px;
44
+ padding: 8px;
45
+ margin: 0px 8px 8px 0px;
33
46
  }
34
- .trek-card-container .sub-container .icons-labels-container {
47
+ .trek-card-container .sub-container .icons-labels-container,
48
+ .trek-card-large-view-container .sub-container .icons-labels-container {
35
49
  display: flex;
36
50
  justify-content: flex-start;
37
51
  align-items: center;
38
52
  flex-wrap: wrap;
39
53
  }
40
- .trek-card-container .sub-container .icons-labels-container .row {
54
+ .trek-card-container .sub-container .icons-labels-container .row,
55
+ .trek-card-large-view-container .sub-container .icons-labels-container .row {
41
56
  display: flex;
42
57
  justify-content: space-between;
43
58
  align-items: center;
44
59
  width: 100%;
45
60
  }
46
- .trek-card-container .sub-container .icons-labels-container .row:not(:last-child) {
61
+ .trek-card-container .sub-container .icons-labels-container .row:not(:last-child),
62
+ .trek-card-large-view-container .sub-container .icons-labels-container .row:not(:last-child) {
47
63
  margin-bottom: 12px;
48
64
  }
49
- .trek-card-container .sub-container .icons-labels-container .row .icon-label {
65
+ .trek-card-container .sub-container .icons-labels-container .row .icon-label,
66
+ .trek-card-large-view-container .sub-container .icons-labels-container .row .icon-label {
50
67
  display: flex;
51
- justify-content: center;
52
68
  align-items: center;
53
- width: 33.3333333333%;
69
+ width: 50%;
54
70
  }
55
- .trek-card-container .sub-container .icons-labels-container .row .icon-label:nth-child(2) {
71
+ .trek-card-container .sub-container .icons-labels-container .row .icon-label:nth-child(2),
72
+ .trek-card-large-view-container .sub-container .icons-labels-container .row .icon-label:nth-child(2) {
56
73
  margin: 0px 4px;
57
74
  }
58
75
  .trek-card-container .sub-container .icons-labels-container .row .icon-label img,
59
- .trek-card-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg {
76
+ .trek-card-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg,
77
+ .trek-card-large-view-container .sub-container .icons-labels-container .row .icon-label img,
78
+ .trek-card-large-view-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg {
60
79
  width: 24px;
61
80
  height: auto;
62
- margin-right: 24px;
81
+ margin-right: 8px;
63
82
  }
64
- .trek-card-container .sub-container .icons-labels-container .row .practice img {
83
+ .trek-card-container .sub-container .icons-labels-container .row .practice img,
84
+ .trek-card-large-view-container .sub-container .icons-labels-container .row .practice img {
65
85
  background-color: var(--color-primary);
86
+ }
87
+
88
+ .trek-card-container {
89
+ width: 350px;
90
+ height: auto;
91
+ }
92
+ .trek-card-container .image {
93
+ width: 100%;
94
+ }
95
+
96
+ .trek-card-large-view-container {
97
+ height: auto;
98
+ display: flex;
99
+ flex-direction: row;
100
+ }
101
+ .trek-card-large-view-container .image {
102
+ width: 250px;
66
103
  }
@@ -7,7 +7,8 @@ import lengthImage from '../../assets/length.svg';
7
7
  export class GrwTrekCard {
8
8
  constructor() {
9
9
  this.colorPrimary = '#6b0030';
10
- this.colorPrimaryTint = '#d2b2c0';
10
+ this.colorPrimaryTint = '#974c6e';
11
+ this.isLargeView = false;
11
12
  }
12
13
  componentWillLoad() {
13
14
  this.currentTrek = this.trek ? this.trek : state.currentTrek;
@@ -15,6 +16,7 @@ export class GrwTrekCard {
15
16
  this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
16
17
  this.route = state.routes.find(route => route.id === this.currentTrek.route);
17
18
  this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
19
+ this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
18
20
  }
19
21
  onChange('currentTrek', () => {
20
22
  this.currentTrek = this.trek ? this.trek : state.currentTrek;
@@ -22,16 +24,18 @@ export class GrwTrekCard {
22
24
  this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
23
25
  this.route = state.routes.find(route => route.id === this.currentTrek.route);
24
26
  this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
27
+ this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
25
28
  }
26
29
  });
27
30
  }
28
31
  render() {
29
32
  var _a, _b, _c, _d, _e, _f, _g, _h;
30
- return (h(Host, { onClick: () => this.trekCardPress.emit(this.currentTrek.id), style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: "trek-card-container" },
31
- this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url && (h("img", { class: "image", src: `${this.currentTrek.attachments[0].url}.400x0_q85.${this.currentTrek.attachments[0].url.slice(-3).toLowerCase()}`, loading: "lazy" })),
33
+ return (h(Host, { onClick: () => this.trekCardPress.emit(this.currentTrek.id), style: { 'width': this.isLargeView ? '100%' : 'auto', '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: this.isLargeView ? 'trek-card-large-view-container' : 'trek-card-container' },
34
+ this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].thumbnail && (h("img", { class: "image", src: `${this.currentTrek.attachments[0].thumbnail}`, loading: "lazy" })),
32
35
  h("div", { class: "sub-container" },
33
- h("div", { class: "name" }, (_a = this.currentTrek) === null || _a === void 0 ? void 0 : _a.name),
34
- h("div", { class: "description", innerHTML: (_b = this.currentTrek) === null || _b === void 0 ? void 0 : _b.description_teaser }),
36
+ h("div", { class: "departure" }, (_a = this.currentTrek) === null || _a === void 0 ? void 0 : _a.departure),
37
+ h("div", { class: "name" }, (_b = this.currentTrek) === null || _b === void 0 ? void 0 : _b.name),
38
+ h("div", { class: "themes-container" }, this.themes.map(theme => (h("div", { class: "theme" }, theme.label)))),
35
39
  h("div", { class: "icons-labels-container" },
36
40
  h("div", { class: "row" },
37
41
  h("div", { class: "icon-label difficulty" },
@@ -39,17 +43,18 @@ export class GrwTrekCard {
39
43
  _d.label),
40
44
  h("div", { class: "icon-label duration" },
41
45
  h("div", { class: "svg-icon", innerHTML: durationImage }),
42
- formatDuration(this.currentTrek.duration)),
43
- h("div", { class: "icon-label route" },
44
- ((_e = this.route) === null || _e === void 0 ? void 0 : _e.pictogram) && h("img", { src: this.route.pictogram }), (_f = this.route) === null || _f === void 0 ? void 0 :
45
- _f.route)),
46
+ formatDuration(this.currentTrek.duration))),
46
47
  h("div", { class: "row" },
47
48
  h("div", { class: "icon-label length" },
48
49
  h("div", { class: "svg-icon", innerHTML: lengthImage }),
49
50
  formatLength(this.currentTrek.length_2d)),
50
51
  h("div", { class: "icon-label ascent" },
51
52
  h("div", { class: "svg-icon", innerHTML: ascentImage }),
52
- formatAscent(this.currentTrek.ascent)),
53
+ formatAscent(this.currentTrek.ascent))),
54
+ h("div", { class: "row" },
55
+ h("div", { class: "icon-label route" },
56
+ ((_e = this.route) === null || _e === void 0 ? void 0 : _e.pictogram) && h("img", { src: this.route.pictogram }), (_f = this.route) === null || _f === void 0 ? void 0 :
57
+ _f.route),
53
58
  h("div", { class: "icon-label practice" },
54
59
  ((_g = this.practice) === null || _g === void 0 ? void 0 : _g.pictogram) && h("img", { src: this.practice.pictogram }), (_h = this.practice) === null || _h === void 0 ? void 0 :
55
60
  _h.name))))))));
@@ -68,7 +73,7 @@ export class GrwTrekCard {
68
73
  "mutable": false,
69
74
  "complexType": {
70
75
  "original": "Trek",
71
- "resolved": "{ id: number; name: string; attachments: Attachments; description?: string; description_teaser: string; difficulty: number; route: number; practice: number; duration: number; length_2d: number; ascent: number; geometry?: LineString; departure_geom?: Position; }",
76
+ "resolved": "{ id: number; name: string; attachments: Attachments; description?: string; description_teaser: string; difficulty: number; route: number; practice: number; themes: number[]; duration: number; length_2d: number; ascent: number; departure: string; arrival?: string; altimetric_profile?: string; geometry?: LineString; departure_geom?: Position; gpx?: string; kml?: string; pdf?: string; parking_location?: Position; ambiance?: string; access?: string; public_transport?: string; advice?: string; advised_parking?: string; gear?: string; labels?: number[]; points_reference?: MultiPoint; source?: number[]; structure?: number; disabled_infrastructure?: string; accessibilities?: number[]; accessibility_level?: number; accessibility_slope?: string; accessibility_width?: string; accessibility_signage?: string; accessibility_covering?: string; accessibility_exposure?: string; accessibility_advice?: string; }",
72
77
  "references": {
73
78
  "Trek": {
74
79
  "location": "import",
@@ -117,14 +122,33 @@ export class GrwTrekCard {
117
122
  },
118
123
  "attribute": "color-primary-tint",
119
124
  "reflect": false,
120
- "defaultValue": "'#d2b2c0'"
125
+ "defaultValue": "'#974c6e'"
126
+ },
127
+ "isLargeView": {
128
+ "type": "boolean",
129
+ "mutable": false,
130
+ "complexType": {
131
+ "original": "boolean",
132
+ "resolved": "boolean",
133
+ "references": {}
134
+ },
135
+ "required": false,
136
+ "optional": false,
137
+ "docs": {
138
+ "tags": [],
139
+ "text": ""
140
+ },
141
+ "attribute": "is-large-view",
142
+ "reflect": false,
143
+ "defaultValue": "false"
121
144
  }
122
145
  }; }
123
146
  static get states() { return {
124
147
  "currentTrek": {},
125
148
  "difficulty": {},
126
149
  "route": {},
127
- "practice": {}
150
+ "practice": {},
151
+ "themes": {}
128
152
  }; }
129
153
  static get events() { return [{
130
154
  "method": "trekCardPress",
@@ -1,4 +1,5 @@
1
1
  .trek-detail-container {
2
+ font-family: "Roboto";
2
3
  display: flex;
3
4
  flex-direction: column;
4
5
  height: 100%;
@@ -11,6 +12,7 @@
11
12
  padding: 24px;
12
13
  }
13
14
  .trek-detail-container .image {
15
+ border-radius: 8px;
14
16
  align-self: center;
15
17
  width: 100%;
16
18
  max-width: 700px;
@@ -53,6 +55,163 @@
53
55
  .trek-detail-container .sub-container .icons-labels-container .row .practice img {
54
56
  background-color: var(--color-primary);
55
57
  }
56
- .trek-detail-container .description {
58
+ .trek-detail-container .downloads-container {
57
59
  padding: 0px 24px 24px 24px;
60
+ display: flex;
61
+ flex-direction: column;
62
+ justify-content: center;
63
+ align-items: center;
64
+ }
65
+ .trek-detail-container .downloads-container .download-title {
66
+ color: var(--color-primary);
67
+ font-size: 18px;
68
+ margin-bottom: 12px;
69
+ }
70
+ .trek-detail-container .downloads-container .links-container {
71
+ display: flex;
72
+ }
73
+ .trek-detail-container .downloads-container .links-container a {
74
+ background-color: var(--color-primary);
75
+ padding: 8px;
76
+ color: #ffffff;
77
+ text-decoration: none;
78
+ border-radius: 8px;
79
+ }
80
+ .trek-detail-container .downloads-container .links-container a:nth-child(2) {
81
+ margin: 0px 12px;
82
+ }
83
+ .trek-detail-container .downloads-container .links-container a:hover {
84
+ background-color: var(--color-primary-shade);
85
+ }
86
+ .trek-detail-container .themes-container {
87
+ display: flex;
88
+ justify-content: flex-start;
89
+ align-items: center;
90
+ flex-wrap: wrap;
91
+ padding: 0px 24px 24px 24px;
92
+ }
93
+ .trek-detail-container .themes-container .theme {
94
+ background-color: var(--color-primary-tint);
95
+ color: #ffffff;
96
+ border-radius: 8px;
97
+ padding: 8px;
98
+ margin: 0px 8px 8px 0px;
99
+ }
100
+ .trek-detail-container .ambiance,
101
+ .trek-detail-container .description-teaser,
102
+ .trek-detail-container .description-container,
103
+ .trek-detail-container .altimetric-profile-container,
104
+ .trek-detail-container .access-container,
105
+ .trek-detail-container .public-transport-container,
106
+ .trek-detail-container .advice-container,
107
+ .trek-detail-container .advised-parking-container,
108
+ .trek-detail-container .gear-container,
109
+ .trek-detail-container .pois-container,
110
+ .trek-detail-container .sensitive-areas-container,
111
+ .trek-detail-container .information-desks-container,
112
+ .trek-detail-container .source-container,
113
+ .trek-detail-container .accessibilities-container {
114
+ padding: 0px 24px 24px 24px;
115
+ }
116
+ .trek-detail-container .ambiance a,
117
+ .trek-detail-container .description-teaser a,
118
+ .trek-detail-container .description-container a,
119
+ .trek-detail-container .altimetric-profile-container a,
120
+ .trek-detail-container .access-container a,
121
+ .trek-detail-container .public-transport-container a,
122
+ .trek-detail-container .advice-container a,
123
+ .trek-detail-container .advised-parking-container a,
124
+ .trek-detail-container .gear-container a,
125
+ .trek-detail-container .pois-container a,
126
+ .trek-detail-container .sensitive-areas-container a,
127
+ .trek-detail-container .information-desks-container a,
128
+ .trek-detail-container .source-container a,
129
+ .trek-detail-container .accessibilities-container a {
130
+ color: var(--color-primary);
131
+ }
132
+ .trek-detail-container .description-title,
133
+ .trek-detail-container .altimetric-profile-title,
134
+ .trek-detail-container .access-title,
135
+ .trek-detail-container .public-transport-title,
136
+ .trek-detail-container .advice-title,
137
+ .trek-detail-container .advised-parking-title,
138
+ .trek-detail-container .gear-title,
139
+ .trek-detail-container .pois-title,
140
+ .trek-detail-container .sensitive-areas-title,
141
+ .trek-detail-container .information-desks-title,
142
+ .trek-detail-container .source-title,
143
+ .trek-detail-container .accessibilities-title {
144
+ color: var(--color-primary);
145
+ font-size: 36px;
146
+ font-weight: bold;
147
+ margin: 12px 0px;
148
+ }
149
+
150
+ .label-container .label-sub-container {
151
+ display: flex;
152
+ align-items: center;
153
+ }
154
+ .label-container .label-sub-container img {
155
+ width: 26px;
156
+ margin-right: 16px;
157
+ }
158
+ .label-container .label-sub-container .label-name {
159
+ color: var(--color-primary);
160
+ font-size: 24px;
161
+ font-weight: bold;
162
+ padding: 12px 0px;
163
+ }
164
+
165
+ .source-container .source-sub-container {
166
+ display: flex;
167
+ align-items: center;
168
+ }
169
+ .source-container .source-sub-container img {
170
+ width: 26px;
171
+ margin-right: 16px;
172
+ }
173
+ .source-container .source-sub-container .source-name {
174
+ color: var(--color-primary);
175
+ font-size: 24px;
176
+ font-weight: bold;
177
+ padding: 12px 0px;
178
+ }
179
+
180
+ .departure-container,
181
+ .arrival-container {
182
+ display: flex;
183
+ align-items: center;
184
+ padding: 0px 24px 24px 24px;
185
+ }
186
+ .departure-container .departure-title,
187
+ .departure-container .arrival-title,
188
+ .arrival-container .departure-title,
189
+ .arrival-container .arrival-title {
190
+ color: var(--color-primary);
191
+ font-weight: bold;
192
+ }
193
+
194
+ .accessibilities-container .accessibilities-content-container {
195
+ padding: 12px 0px 0px 0px;
196
+ display: flex;
197
+ }
198
+ .accessibilities-container .accessibilities-content-container .accessibility-content-container {
199
+ display: flex;
200
+ align-items: center;
201
+ margin: 0px 8px 8px 0px;
202
+ }
203
+ .accessibilities-container .accessibilities-content-container .accessibility-content-container img {
204
+ margin-right: 16px;
205
+ width: 26px;
206
+ }
207
+ .accessibilities-container .accessibility-level-title,
208
+ .accessibilities-container .accessibility-slope-title,
209
+ .accessibilities-container .accessibility-width-title,
210
+ .accessibilities-container .accessibility-signage-title,
211
+ .accessibilities-container .accessibility-covering-title,
212
+ .accessibilities-container .accessibility-exposure-title,
213
+ .accessibilities-container .accessibility-advice-title {
214
+ color: var(--color-primary);
215
+ font-size: 24px;
216
+ padding: 12px 0px;
58
217
  }
@@ -7,7 +7,8 @@ import lengthImage from '../../assets/length.svg';
7
7
  export class GrwTrekDetail {
8
8
  constructor() {
9
9
  this.colorPrimary = '#6b0030';
10
- this.colorPrimaryTint = '#d2b2c0';
10
+ this.colorPrimaryShade = '#4a0021';
11
+ this.colorPrimaryTint = '#974c6e';
11
12
  }
12
13
  componentWillLoad() {
13
14
  this.currentTrek = this.trek ? this.trek : state.currentTrek;
@@ -15,6 +16,11 @@ export class GrwTrekDetail {
15
16
  this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
16
17
  this.route = state.routes.find(route => route.id === this.currentTrek.route);
17
18
  this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
19
+ this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
20
+ this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));
21
+ this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));
22
+ this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));
23
+ this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);
18
24
  }
19
25
  onChange('currentTrek', () => {
20
26
  this.currentTrek = this.trek ? this.trek : state.currentTrek;
@@ -22,14 +28,17 @@ export class GrwTrekDetail {
22
28
  this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
23
29
  this.route = state.routes.find(route => route.id === this.currentTrek.route);
24
30
  this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
31
+ this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
32
+ this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));
33
+ this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));
25
34
  }
26
35
  });
27
36
  }
28
37
  render() {
29
38
  var _a, _b, _c, _d, _e, _f, _g;
30
- return (h(Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: "trek-detail-container" },
39
+ return (h(Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-shade': this.colorPrimaryShade, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: "trek-detail-container" },
31
40
  h("div", { class: "name" }, this.currentTrek.name),
32
- this.currentTrek.attachments && this.currentTrek.attachments[0] && h("img", { class: "image", src: this.currentTrek.attachments[0].url, loading: "lazy" }),
41
+ this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].thumbnail && (h("img", { class: "image", src: this.currentTrek.attachments[0].thumbnail, loading: "lazy" })),
33
42
  h("div", { class: "sub-container" },
34
43
  h("div", { class: "icons-labels-container" },
35
44
  h("div", { class: "row" },
@@ -52,7 +61,90 @@ export class GrwTrekDetail {
52
61
  h("div", { class: "icon-label practice" },
53
62
  ((_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 :
54
63
  _g.name)))),
55
- h("div", { class: "description", innerHTML: this.currentTrek.description ? this.currentTrek.description : this.currentTrek.description_teaser })))));
64
+ h("div", { class: "downloads-container" },
65
+ h("div", { class: "download-title" }, "T\u00E9l\u00E9chargements"),
66
+ h("div", { class: "links-container" },
67
+ h("a", { href: `${this.currentTrek.gpx}` }, "GPX"),
68
+ h("a", { href: `${this.currentTrek.kml}` }, "KML"),
69
+ h("a", { href: `${this.currentTrek.pdf}` }, "PDF"))),
70
+ this.themes.length > 0 && (h("div", { class: "themes-container" }, this.themes.map(theme => (h("div", { class: "theme" }, theme.label))))),
71
+ this.currentTrek.description_teaser && h("div", { class: "description-teaser", innerHTML: this.currentTrek.description_teaser }),
72
+ this.currentTrek.ambiance && h("div", { class: "ambiance", innerHTML: this.currentTrek.ambiance }),
73
+ this.currentTrek.description && (h("div", { class: "description-container" },
74
+ h("div", { class: "description-title" }, "Description"),
75
+ h("div", { class: "description", innerHTML: this.currentTrek.description }))),
76
+ this.currentTrek.departure && (h("div", { class: "departure-container" },
77
+ h("div", { class: "departure-title" }, "D\u00E9part :\u00A0"),
78
+ h("div", { innerHTML: this.currentTrek.departure }))),
79
+ this.currentTrek.arrival && (h("div", { class: "arrival-container" },
80
+ h("div", { class: "arrival-title" }, "Arriv\u00E9e :\u00A0"),
81
+ h("div", { innerHTML: this.currentTrek.arrival }))),
82
+ this.currentTrek.altimetric_profile && (h("div", { class: "altimetric-profile-container" },
83
+ h("div", { class: "altimetric-profile-title" }, "Profil altim\u00E9trique"),
84
+ h("img", { src: this.currentTrek.altimetric_profile }))),
85
+ this.currentTrek.access && (h("div", { class: "access-container" },
86
+ h("div", { class: "access-title" }, "Acc\u00E8s routier"),
87
+ h("div", { class: "access", innerHTML: this.currentTrek.access }))),
88
+ this.currentTrek.public_transport && (h("div", { class: "public-transport-container" },
89
+ h("div", { class: "public-transport-title" }, "Transport"),
90
+ h("div", { class: "public-transport", innerHTML: this.currentTrek.public_transport }))),
91
+ (this.currentTrek.advice || this.labels.length > 0) && (h("div", { class: "advice-container" },
92
+ h("div", { class: "advice-title" }, "Recommandations"),
93
+ this.currentTrek.advice && h("div", { class: "advice", innerHTML: this.currentTrek.advice }),
94
+ this.labels.map(label => (h("div", { class: "label-container" },
95
+ h("div", { class: "label-sub-container" },
96
+ label.pictogram && h("img", { src: label.pictogram }),
97
+ h("div", { class: "label-name", innerHTML: label.name })),
98
+ h("div", { class: "label-advice", innerHTML: label.advice })))))),
99
+ this.currentTrek.advised_parking && (h("div", { class: "advised-parking-container" },
100
+ h("div", { class: "advised-parking-title" }, "Parking conseill\u00E9"),
101
+ h("div", { class: "advised_parking", innerHTML: this.currentTrek.advised_parking }))),
102
+ this.currentTrek.gear && (h("div", { class: "gear-container" },
103
+ h("div", { class: "gear-title" }, "\u00C9quipements"),
104
+ h("div", { class: "gear", innerHTML: this.currentTrek.gear }))),
105
+ state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (h("div", { class: "sensitive-areas-container" },
106
+ h("div", { class: "sensitive-areas-title" }, "Zones de sensibilit\u00E9 environnementale"),
107
+ state.currentSensitiveAreas.map(sensitiveArea => (h("grw-sensitive-area-detail", { sensitiveArea: sensitiveArea }))))),
108
+ state.currentInformationDesks && state.currentInformationDesks.length > 0 && (h("div", { class: "information-desks-container" },
109
+ h("div", { class: "information-desks-title" }, "Lieux de renseignement"),
110
+ state.currentInformationDesks.map(informationDesk => (h("grw-information-desk-detail", { informationDesk: informationDesk }))))),
111
+ h("div", { class: "accessibilities-container" },
112
+ h("div", { class: "accessibilities-title" }, "Accessibilit\u00E9"),
113
+ this.currentTrek.disabled_infrastructure && h("div", { innerHTML: this.currentTrek.disabled_infrastructure }),
114
+ h("div", { class: "accessibilities-content-container" }, this.accessibilities.map(accessibility => (h("div", { class: "accessibility-content-container" },
115
+ h("img", { src: accessibility.pictogram }),
116
+ h("div", { innerHTML: accessibility.name }))))),
117
+ this.currentTrek.accessibility_level && (h("div", { class: "accessibility-level-container" },
118
+ h("div", { class: "accessibility-level-title" }, "Niveau d'accessibilit\u00E9"),
119
+ h("div", { innerHTML: this.accessibilityLevel.name }))),
120
+ this.currentTrek.accessibility_slope && (h("div", { class: "accessibility-slope-container" },
121
+ h("div", { class: "accessibility-slope-title" }, "Pente"),
122
+ h("div", { innerHTML: this.currentTrek.accessibility_slope }))),
123
+ this.currentTrek.accessibility_width && (h("div", { class: "accessibility-width-container" },
124
+ h("div", { class: "accessibility-width-title" }, "Largeur"),
125
+ h("div", { innerHTML: this.currentTrek.accessibility_width }))),
126
+ this.currentTrek.accessibility_signage && (h("div", { class: "accessibility-signage-container" },
127
+ h("div", { class: "accessibility-signage-title" }, "Pente"),
128
+ h("div", { innerHTML: this.currentTrek.accessibility_signage }))),
129
+ this.currentTrek.accessibility_covering && (h("div", { class: "accessibility-covering-container" },
130
+ h("div", { class: "accessibility-covering-title" }, "Rev\u00EAtement"),
131
+ h("div", { innerHTML: this.currentTrek.accessibility_covering }))),
132
+ this.currentTrek.accessibility_exposure && (h("div", { class: "accessibility-exposure-container" },
133
+ h("div", { class: "accessibility-exposure-title" }, "Exposition"),
134
+ h("div", { innerHTML: this.currentTrek.accessibility_exposure }))),
135
+ this.currentTrek.accessibility_advice && (h("div", { class: "accessibility-advice-container" },
136
+ h("div", { class: "accessibility-advice-title" }, "Conseils"),
137
+ h("div", { innerHTML: this.currentTrek.accessibility_advice })))),
138
+ state.currentPois && state.currentPois.length > 0 && (h("div", { class: "pois-container" },
139
+ h("div", { class: "pois-title" }, "Points d'int\u00E9r\u00EAts"),
140
+ state.currentPois.map(poi => (h("grw-poi-detail", { poi: poi }))))),
141
+ this.currentTrek.source && this.currentTrek.source.length > 0 && (h("div", { class: "source-container" },
142
+ h("div", { class: "source-title" }, "Sources"),
143
+ this.sources.map(source => (h("div", { class: "source-sub-container" },
144
+ source.pictogram && h("img", { src: source.pictogram }),
145
+ h("div", null,
146
+ h("div", { class: "source-name", innerHTML: source.name }),
147
+ h("a", { class: "source-advice", innerHTML: source.website })))))))))));
56
148
  }
57
149
  static get is() { return "grw-trek-detail"; }
58
150
  static get encapsulation() { return "shadow"; }
@@ -68,7 +160,7 @@ export class GrwTrekDetail {
68
160
  "mutable": false,
69
161
  "complexType": {
70
162
  "original": "Trek",
71
- "resolved": "{ id: number; name: string; attachments: Attachments; description?: string; description_teaser: string; difficulty: number; route: number; practice: number; duration: number; length_2d: number; ascent: number; geometry?: LineString; departure_geom?: Position; }",
163
+ "resolved": "{ id: number; name: string; attachments: Attachments; description?: string; description_teaser: string; difficulty: number; route: number; practice: number; themes: number[]; duration: number; length_2d: number; ascent: number; departure: string; arrival?: string; altimetric_profile?: string; geometry?: LineString; departure_geom?: Position; gpx?: string; kml?: string; pdf?: string; parking_location?: Position; ambiance?: string; access?: string; public_transport?: string; advice?: string; advised_parking?: string; gear?: string; labels?: number[]; points_reference?: MultiPoint; source?: number[]; structure?: number; disabled_infrastructure?: string; accessibilities?: number[]; accessibility_level?: number; accessibility_slope?: string; accessibility_width?: string; accessibility_signage?: string; accessibility_covering?: string; accessibility_exposure?: string; accessibility_advice?: string; }",
72
164
  "references": {
73
165
  "Trek": {
74
166
  "location": "import",
@@ -101,6 +193,24 @@ export class GrwTrekDetail {
101
193
  "reflect": false,
102
194
  "defaultValue": "'#6b0030'"
103
195
  },
196
+ "colorPrimaryShade": {
197
+ "type": "string",
198
+ "mutable": false,
199
+ "complexType": {
200
+ "original": "string",
201
+ "resolved": "string",
202
+ "references": {}
203
+ },
204
+ "required": false,
205
+ "optional": false,
206
+ "docs": {
207
+ "tags": [],
208
+ "text": ""
209
+ },
210
+ "attribute": "color-primary-shade",
211
+ "reflect": false,
212
+ "defaultValue": "'#4a0021'"
213
+ },
104
214
  "colorPrimaryTint": {
105
215
  "type": "string",
106
216
  "mutable": false,
@@ -117,13 +227,18 @@ export class GrwTrekDetail {
117
227
  },
118
228
  "attribute": "color-primary-tint",
119
229
  "reflect": false,
120
- "defaultValue": "'#d2b2c0'"
230
+ "defaultValue": "'#974c6e'"
121
231
  }
122
232
  }; }
123
233
  static get states() { return {
124
- "currentTrek": {},
125
234
  "difficulty": {},
126
235
  "route": {},
127
- "practice": {}
236
+ "practice": {},
237
+ "themes": {},
238
+ "labels": {},
239
+ "sources": {},
240
+ "accessibilities": {},
241
+ "accessibilityLevel": {},
242
+ "currentTrek": {}
128
243
  }; }
129
244
  }
@@ -1,12 +1,26 @@
1
1
  :host {
2
- display: flex;
3
- flex-wrap: wrap;
4
- justify-content: space-around;
2
+ font-family: "Roboto";
3
+ width: 100%;
5
4
  height: 100%;
6
5
  max-height: 100vh;
7
6
  overflow-y: auto;
8
7
  }
9
8
 
9
+ .current-treks-length {
10
+ width: 100%;
11
+ text-align: center;
12
+ padding: 32px 0px;
13
+ color: var(--color-primary);
14
+ font-size: 24px;
15
+ font-weight: bold;
16
+ }
17
+
18
+ .current-treks-container {
19
+ display: flex;
20
+ flex-wrap: wrap;
21
+ justify-content: space-around;
22
+ }
23
+
10
24
  grw-trek-card {
11
25
  margin: 6px;
12
26
  }