@tekkare/auriga 0.2.43 → 0.2.45

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 (60) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/argChaptersNav.vue +24 -11
  3. package/dist/runtime/components/argChaptersNav.vue.d.ts +1 -0
  4. package/dist/runtime/components/argComplexSelect.vue +52 -51
  5. package/dist/runtime/components/argComplexSelect.vue.d.ts +11 -26
  6. package/dist/runtime/components/argDate.vue +46 -18
  7. package/dist/runtime/components/argDate.vue.d.ts +1 -1
  8. package/dist/runtime/components/argDropdownSelect.vue +25 -5
  9. package/dist/runtime/components/argDropdownSelect.vue.d.ts +4 -4
  10. package/dist/runtime/components/argFilterCard.vue +27 -34
  11. package/dist/runtime/components/argFilterCard.vue.d.ts +1 -0
  12. package/dist/runtime/components/argFooter.vue +29 -14
  13. package/dist/runtime/components/argFooter.vue.d.ts +3 -1
  14. package/dist/runtime/components/argHomeAllBlocks.vue +29 -15
  15. package/dist/runtime/components/argHomeAllBlocks.vue.d.ts +4 -3
  16. package/dist/runtime/components/argHomeHeader.vue +28 -3
  17. package/dist/runtime/components/argHomeHeader.vue.d.ts +3 -1
  18. package/dist/runtime/components/argHomeLayout.vue +1 -1
  19. package/dist/runtime/components/argHomeSelectedBlock.vue +29 -8
  20. package/dist/runtime/components/argHomeSelectedBlock.vue.d.ts +3 -1
  21. package/dist/runtime/components/argMainLayout.vue +1 -1
  22. package/dist/runtime/components/argMapsFrRegionsToDepartements.vue +31 -15
  23. package/dist/runtime/components/argMapsFrRegionsToDepartements.vue.d.ts +12 -2
  24. package/dist/runtime/components/argMultipleSelect.vue +29 -8
  25. package/dist/runtime/components/argMultipleSelect.vue.d.ts +5 -4
  26. package/dist/runtime/components/argNoSavedScope.vue +44 -38
  27. package/dist/runtime/components/argNoSavedScope.vue.d.ts +4 -15
  28. package/dist/runtime/components/argNoSelectedScope.vue +35 -31
  29. package/dist/runtime/components/argNoSelectedScope.vue.d.ts +2 -1
  30. package/dist/runtime/components/argScopeChange.vue +27 -20
  31. package/dist/runtime/components/argScopeChange.vue.d.ts +2 -1
  32. package/dist/runtime/components/argScopeCriteria.vue +33 -32
  33. package/dist/runtime/components/argScopeCriteria.vue.d.ts +4 -11
  34. package/dist/runtime/components/argScopeCriteriaIndicator.vue +31 -18
  35. package/dist/runtime/components/argScopeCriteriaIndicator.vue.d.ts +3 -1
  36. package/dist/runtime/components/argScopeHeader.vue +27 -12
  37. package/dist/runtime/components/argScopeHeader.vue.d.ts +1 -0
  38. package/dist/runtime/components/argScopeManage.vue +30 -36
  39. package/dist/runtime/components/argScopeManage.vue.d.ts +1 -0
  40. package/dist/runtime/components/argScopeModal.vue +33 -64
  41. package/dist/runtime/components/argScopeModal.vue.d.ts +1 -0
  42. package/dist/runtime/components/argSearchInput.vue +37 -15
  43. package/dist/runtime/components/argSearchInput.vue.d.ts +2 -10
  44. package/dist/runtime/components/argSidebar.vue +28 -16
  45. package/dist/runtime/components/argSidebar.vue.d.ts +1 -0
  46. package/dist/runtime/components/argSourceCollapse.vue +26 -6
  47. package/dist/runtime/components/argSourceCollapse.vue.d.ts +1 -0
  48. package/dist/runtime/components/argTable.vue +42 -14
  49. package/dist/runtime/components/argTable.vue.d.ts +5 -5
  50. package/dist/runtime/components/argTipsBox.vue +27 -17
  51. package/dist/runtime/components/argTipsBox.vue.d.ts +3 -2
  52. package/dist/runtime/components/argToolbarSources.vue +29 -22
  53. package/dist/runtime/components/argToolbarSources.vue.d.ts +3 -1
  54. package/dist/runtime/components/locales/en.json +180 -1
  55. package/dist/runtime/components/locales/es.json +179 -1
  56. package/dist/runtime/components/locales/fr.json +179 -1
  57. package/dist/runtime/components/locales/jp.json +179 -2
  58. package/package.json +1 -1
  59. package/dist/runtime/components/textHighlight.vue +0 -251
  60. package/dist/runtime/components/textHighlight.vue.d.ts +0 -96
@@ -20,9 +20,7 @@
20
20
  class="arg_sidebar_home"
21
21
  >
22
22
  <arg-tooltip
23
- :tooltip-text="
24
- lang === 'en' ? 'Home' : lang === 'es' ? 'Inicio' : 'Accueil'
25
- "
23
+ :tooltip-text="langData === null ? '' : langData?.home"
26
24
  :disable="sidebarOpen"
27
25
  dir="right"
28
26
  :class="[
@@ -32,19 +30,11 @@
32
30
  >
33
31
  <arg-icon name="House" color="var(--primary)" />
34
32
  </arg-tooltip>
35
- <span v-if="lang === 'en' && sidebarOpen"> Home </span>
36
- <span v-else-if="lang === 'fr' && sidebarOpen"> Accueil </span>
37
- <span v-else-if="lang === 'es' && sidebarOpen"> Inicio </span>
33
+ <span v-if="sidebarOpen"> {{ langData?.home }} </span>
38
34
  </nuxt-link>
39
35
  <div class="sidebar_toggle" @click="toggleSidebar()">
40
36
  <arg-tooltip
41
- :tooltip-text="
42
- lang === 'en'
43
- ? 'Open sidebar'
44
- : lang === 'es'
45
- ? 'Abrir la barra lateral'
46
- : 'Ouvrir le menu latéral'
47
- "
37
+ :tooltip-text="langData === null ? '' : langData?.open"
48
38
  :disable="sidebarOpen"
49
39
  dir="right"
50
40
  :class="[
@@ -80,7 +70,9 @@
80
70
  <script>
81
71
  import {
82
72
  onMounted,
73
+ onBeforeMount,
83
74
  ref,
75
+ watch,
84
76
  defineComponent
85
77
  } from "vue";
86
78
  import argIcon from "./argIcon.vue";
@@ -99,18 +91,37 @@ export default defineComponent({
99
91
  type: String,
100
92
  default: "en",
101
93
  validator: (value) => {
102
- return ["en", "fr", "es"].includes(value);
94
+ return ["en", "fr", "es", "jp"].includes(value);
103
95
  }
104
96
  },
105
97
  homeLink: { type: String, default: "/" }
106
98
  },
107
99
  emits: ["onSidebarChange", "update:Sidebar"],
108
100
  setup(props, { emit }) {
109
- onMounted(() => {
101
+ onMounted(async () => {
110
102
  window?.addEventListener("resize", handleResize);
111
103
  handleResize();
112
104
  });
113
105
  const sidebarOpen = ref(true);
106
+ const langData = ref(null);
107
+ async function setLang() {
108
+ const jsonFiles = import.meta.glob("./locales/*.json");
109
+ for (const path in jsonFiles) {
110
+ if (path.split("/")[2].includes(props.lang)) {
111
+ const json = await jsonFiles[path]();
112
+ langData.value = json.sidebar;
113
+ }
114
+ }
115
+ }
116
+ onBeforeMount(async () => {
117
+ await setLang();
118
+ });
119
+ watch(
120
+ () => props.lang,
121
+ () => {
122
+ setLang();
123
+ }
124
+ );
114
125
  function handleResize() {
115
126
  if (window.innerWidth >= 1e3) {
116
127
  sidebarOpen.value = true;
@@ -126,7 +137,8 @@ export default defineComponent({
126
137
  }
127
138
  return {
128
139
  sidebarOpen,
129
- toggleSidebar
140
+ toggleSidebar,
141
+ langData
130
142
  };
131
143
  }
132
144
  });
@@ -19,6 +19,7 @@ declare const _default: import("vue").DefineComponent<{
19
19
  }, {
20
20
  sidebarOpen: import("vue").Ref<boolean>;
21
21
  toggleSidebar: () => void;
22
+ langData: import("vue").Ref<any>;
22
23
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("onSidebarChange" | "update:Sidebar")[], "onSidebarChange" | "update:Sidebar", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
24
  name: {
24
25
  type: StringConstructor;
@@ -28,7 +28,7 @@
28
28
  <div class="copy_action" @click.stop="copy()">
29
29
  <arg-icon name="Copy" color="var(--cool-grey)" size="16" />
30
30
  <p>
31
- {{ lang === "fr" ? "Copier" : lang === "es" ? "Copiar" : "Copy" }}
31
+ {{ langData?.copySource }}
32
32
  </p>
33
33
  </div>
34
34
  </div>
@@ -40,7 +40,7 @@
40
40
  </p> -->
41
41
  <div class="oip_row v-start gap-16">
42
42
  <div class="tag_display">
43
- <p class="toolbar_tag_title">Sector</p>
43
+ <p class="toolbar_tag_title">{{ langData?.sector }}</p>
44
44
  <arg-tags>{{ sourceSector }}</arg-tags>
45
45
  </div>
46
46
  </div>
@@ -57,7 +57,8 @@ import {
57
57
  ref,
58
58
  computed,
59
59
  watch,
60
- defineComponent
60
+ defineComponent,
61
+ onBeforeMount
61
62
  } from "vue";
62
63
  import argFlag from "./argFlag.vue";
63
64
  import argIcon from "./argIcon.vue";
@@ -86,13 +87,32 @@ export default defineComponent({
86
87
  type: String,
87
88
  default: "en",
88
89
  validator: (value) => {
89
- return ["en", "fr", "es"].includes(value);
90
+ return ["en", "fr", "es", "jp"].includes(value);
90
91
  }
91
92
  }
92
93
  },
93
94
  emits: ["copyTitle"],
94
95
  setup(props, { emit }) {
95
96
  const sourceOpen = ref(false);
97
+ const langData = ref(null);
98
+ async function setLang() {
99
+ const jsonFiles = import.meta.glob("./locales/*.json");
100
+ for (const path in jsonFiles) {
101
+ if (path.split("/")[2].includes(props.lang)) {
102
+ const json = await jsonFiles[path]();
103
+ langData.value = json.sourceCollapse;
104
+ }
105
+ }
106
+ }
107
+ onBeforeMount(async () => {
108
+ setLang();
109
+ });
110
+ watch(
111
+ () => props.lang,
112
+ () => {
113
+ setLang();
114
+ }
115
+ );
96
116
  function closeSource() {
97
117
  sourceOpen.value = false;
98
118
  }
@@ -138,11 +158,11 @@ export default defineComponent({
138
158
  navigator.clipboard.writeText(props.sourceTitle);
139
159
  emit("copyTitle");
140
160
  }
141
- return { closeSource, sourceOpen, copy, getCountryName };
161
+ return { closeSource, sourceOpen, copy, getCountryName, langData };
142
162
  }
143
163
  });
144
164
  </script>
145
165
 
146
166
  <style scoped>
147
- .oip_source_card_collapse{align-self:stretch;border:1px solid var(--light,#dbdef0);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:8px 8px 8px 16px;transition:gap .3s linear,max-height .3s linear,background-color .3s linear,padding .3s linear}.oip_source_card_collapse:hover .header>svg{color:var(--primary)!important}.oip_source_card_collapse.close{background-color:var(--white,#fff);gap:0;max-height:110px}.oip_source_card_collapse.open{background-color:var(--demi-fond);gap:16px;max-height:800px;padding:8px 8px 16px 16px}.icon_open{transition:transform .3s}.icon_rotate{transform:rotateX(180deg)}.source_card_header{align-items:center;align-self:stretch;display:flex;flex-direction:row;gap:8px;justify-content:space-between}.source_title{font-family:Figtree;font-size:14px;font-style:normal;font-weight:700;line-height:160%}.source_content{display:flex;flex-direction:column;gap:16px;margin-right:-6px;padding-right:4px;transition:max-height .3s linear,opacity .3s linear}.hide_content{max-height:0;opacity:0}.show_content{max-height:100%;opacity:1;overflow-y:scroll}.show_content::-webkit-scrollbar{height:5px;width:5px}.show_content::-webkit-scrollbar-thumb{background:var(--medium);border-radius:12px!important}.show_content::-webkit-scrollbar-thumb:hover{background:var(--medium)!important}.source_tag{align-self:stretch;display:flex}.toolbar_source_update,.toolbar_tag_title{color:var(--dark);font-size:12px;font-style:normal;font-weight:400;line-height:normal}.tag_display{align-items:flex-start;display:flex;flex-direction:column;gap:var(--s,8px);justify-content:center}.copy_action{align-items:center;background:var(--white);border:1px solid var(--light);border-radius:6px;box-shadow:0 1px 2px 0 rgba(30,41,59,.1);color:var(--dark);cursor:pointer;display:flex;flex-direction:row;font-size:12px;font-style:normal;font-weight:500;gap:4px;line-height:normal;padding:4px 8px 4px 6px}.copy_action:hover,.copy_action:hover svg{color:var(--primary)!important}.title_container{display:flex;flex-direction:column;gap:4px}
167
+ .oip_source_card_collapse{align-self:stretch;border:1px solid var(--light,#dbdef0);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:8px 8px 8px 16px;transition:gap .3s linear,max-height .3s linear,background-color .3s linear,padding .3s linear}.oip_source_card_collapse:hover .header>svg{color:var(--primary)!important}.oip_source_card_collapse.close{background-color:var(--white,#fff);gap:0;max-height:110px}.oip_source_card_collapse.open{background-color:var(--demi-fond);gap:16px;max-height:800px;padding:8px 8px 16px 16px}.icon_open{transition:transform .3s}.icon_rotate{transform:rotateX(180deg)}.source_card_header{align-items:center;align-self:stretch;display:flex;flex-direction:row;gap:8px;justify-content:space-between}.source_title{font-family:Figtree;font-size:14px;font-style:normal;font-weight:700;line-height:160%}.source_content{display:flex;flex-direction:column;gap:16px;margin-right:-6px;padding-right:4px;transition:max-height .3s linear,opacity .3s linear}.hide_content{max-height:0;opacity:0}.show_content{max-height:100%;opacity:1;overflow-y:scroll}.show_content::-webkit-scrollbar{height:5px;width:5px}.show_content::-webkit-scrollbar-thumb{background:var(--medium);border-radius:12px!important}.show_content::-webkit-scrollbar-thumb:hover{background:var(--medium)!important}.source_tag{align-self:stretch;display:flex}.toolbar_source_update,.toolbar_tag_title{color:var(--dark);font-size:12px;font-style:normal;font-weight:400;line-height:normal}.tag_display{align-items:flex-start;display:flex;flex-direction:column;gap:var(--s,8px);justify-content:center}.copy_action{align-items:center;background:var(--white);border:1px solid var(--light);border-radius:6px;box-shadow:0 1px 2px 0 rgba(30,41,59,.1);color:var(--dark);cursor:pointer;display:flex;flex-direction:row;font-size:12px;font-style:normal;font-weight:500;gap:4px;line-height:normal;padding:4px 8px 4px 6px;white-space:nowrap}.copy_action:hover,.copy_action:hover svg{color:var(--primary)!important}.title_container{display:flex;flex-direction:column;gap:4px}
148
168
  </style>
@@ -25,6 +25,7 @@ declare const _default: import("vue").DefineComponent<{
25
25
  sourceOpen: import("vue").Ref<boolean>;
26
26
  copy: () => void;
27
27
  getCountryName: import("vue").ComputedRef<string>;
28
+ langData: import("vue").Ref<any>;
28
29
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "copyTitle"[], "copyTitle", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
29
30
  sourceTitle: {
30
31
  type: StringConstructor;
@@ -178,14 +178,25 @@
178
178
  </tbody>
179
179
  </table>
180
180
  <div v-if="finalTable.length === 0" class="empty_table">
181
- <arg-no-data :text="noDataValues[0]" :sub-text="noDataValues[1]" />
181
+ <arg-no-data
182
+ :text="
183
+ noDataValues !== null ? noDataValues[0] : langData?.emptyTitle
184
+ "
185
+ :sub-text="
186
+ noDataValues !== null ? noDataValues[1] : langData?.emptySub
187
+ "
188
+ />
182
189
  </div>
183
190
  <div v-else-if="loadingData" class="empty_table">
184
191
  <arg-tekkare-loader v-if="loaderType === 'tekkare'" />
185
192
  <arg-data-loader
186
193
  v-else
187
- :text="loaderValues[0]"
188
- :sub-text="loaderValues[1]"
194
+ :text="
195
+ loaderValues !== null ? loaderValues[0] : langData?.loadingTitle
196
+ "
197
+ :sub-text="
198
+ loaderValues !== null ? loaderValues[1] : langData?.loadingSub
199
+ "
189
200
  />
190
201
  </div>
191
202
  <div
@@ -245,7 +256,7 @@
245
256
  btn-style="skeleton"
246
257
  prefix-icon="Table"
247
258
  @click="showFull = !showFull"
248
- >{{ showFull ? "Show with pagination" : "Show full table" }}</arg-btn
259
+ >{{ showFull ? langData?.page : langData?.full }}</arg-btn
249
260
  >
250
261
  </div>
251
262
  </div>
@@ -265,7 +276,8 @@ import {
265
276
  ref,
266
277
  computed,
267
278
  watch,
268
- defineComponent
279
+ defineComponent,
280
+ onBeforeMount
269
281
  } from "vue";
270
282
  export default defineComponent({
271
283
  name: "argTable",
@@ -329,14 +341,11 @@ export default defineComponent({
329
341
  },
330
342
  noDataValues: {
331
343
  type: Array,
332
- default: () => [
333
- "No content found for your search.",
334
- "Change or empty your search."
335
- ]
344
+ default: () => null
336
345
  },
337
346
  loaderValues: {
338
347
  type: Array,
339
- default: () => ["Doing data science", "Thanks for waiting"]
348
+ default: () => null
340
349
  },
341
350
  loadingData: {
342
351
  type: Boolean,
@@ -370,7 +379,7 @@ export default defineComponent({
370
379
  type: String,
371
380
  default: "en",
372
381
  validator: (value) => {
373
- return ["en", "fr", "es"].includes(value);
382
+ return ["en", "fr", "es", "jp"].includes(value);
374
383
  }
375
384
  },
376
385
  customPlaceholder: {
@@ -399,6 +408,25 @@ export default defineComponent({
399
408
  const hasReadMore = ref([]);
400
409
  const tableKey = ref(0);
401
410
  const cropKey = ref(0);
411
+ const langData = ref(null);
412
+ async function setLang() {
413
+ const jsonFiles = import.meta.glob("./locales/*.json");
414
+ for (const path in jsonFiles) {
415
+ if (path.split("/")[2].includes(props.lang)) {
416
+ const json = await jsonFiles[path]();
417
+ langData.value = json.table;
418
+ }
419
+ }
420
+ }
421
+ onBeforeMount(async () => {
422
+ setLang();
423
+ });
424
+ watch(
425
+ () => props.lang,
426
+ () => {
427
+ setLang();
428
+ }
429
+ );
402
430
  const alternateColor = computed(() => {
403
431
  return props.whiteLines === null ? true : false;
404
432
  });
@@ -680,16 +708,16 @@ export default defineComponent({
680
708
  if (props.customPlaceholder !== null) {
681
709
  return props.customPlaceholder;
682
710
  } else if (props.searchColumns !== null) {
683
- let columnNames = `${props.lang === "fr" ? "Rechercher par" : props.lang === "es" ? "Buscar por" : "Search by"} ${props.heads[props.searchColumns[0]]}`;
711
+ let columnNames = `${langData.value?.searchBy} ${props.heads[props.searchColumns[0]]}`;
684
712
  for (let i = 1; i < props.searchColumns.length; i++) {
685
713
  if (i === props.searchColumns.length - 1) {
686
- columnNames += ` ${props.lang === "fr" ? "ou" : props.lang === "es" ? "o" : "or"} ${props.heads[props.searchColumns[i]]}...`;
714
+ columnNames += ` ${langData.value?.or} ${props.heads[props.searchColumns[i]]}...`;
687
715
  } else
688
716
  columnNames += `, ${props.heads[props.searchColumns[i]]}`;
689
717
  }
690
718
  return columnNames;
691
719
  } else
692
- return props.lang === "fr" ? "Rechercher..." : props.lang === "es" ? "Buscar todo..." : "Search all...";
720
+ return langData.value?.searchAll;
693
721
  });
694
722
  getColumnTypes();
695
723
  dataValues.value = fillTable.value;
@@ -130,11 +130,11 @@ declare const _default: import("vue").DefineComponent<{
130
130
  };
131
131
  noDataValues: {
132
132
  type: ArrayConstructor;
133
- default: () => string[];
133
+ default: () => null;
134
134
  };
135
135
  loaderValues: {
136
136
  type: ArrayConstructor;
137
- default: () => string[];
137
+ default: () => null;
138
138
  };
139
139
  loadingData: {
140
140
  type: BooleanConstructor;
@@ -209,7 +209,7 @@ declare const _default: import("vue").DefineComponent<{
209
209
  finalTable: import("vue").ComputedRef<any>;
210
210
  resultCount: import("vue").ComputedRef<any>;
211
211
  totalPages: import("vue").ComputedRef<number>;
212
- getPlaceHolder: import("vue").ComputedRef<string>;
212
+ getPlaceHolder: import("vue").ComputedRef<any>;
213
213
  getHeight: import("vue").ComputedRef<string>;
214
214
  sendSearch: () => void;
215
215
  toggleCrop: import("vue").Ref<any>;
@@ -349,11 +349,11 @@ declare const _default: import("vue").DefineComponent<{
349
349
  };
350
350
  noDataValues: {
351
351
  type: ArrayConstructor;
352
- default: () => string[];
352
+ default: () => null;
353
353
  };
354
354
  loaderValues: {
355
355
  type: ArrayConstructor;
356
- default: () => string[];
356
+ default: () => null;
357
357
  };
358
358
  loadingData: {
359
359
  type: BooleanConstructor;
@@ -10,7 +10,7 @@
10
10
  <slot name="Text" />
11
11
  </div>
12
12
  <div v-if="haveClose" class="tip_action" @click="displayTip = false">
13
- {{ tipsLang === "fr" ? "Fermer" : "Close" }}
13
+ {{ langData?.close }}
14
14
  </div>
15
15
  <div
16
16
  v-else-if="haveMore"
@@ -23,19 +23,7 @@
23
23
  :class="['action-icon', showMore ? 'icon-rotate' : '']"
24
24
  />
25
25
  <p>
26
- {{
27
- tipsLang === "fr"
28
- ? showMore
29
- ? "Réduire"
30
- : "En savoir plus"
31
- : tipsLang === "es"
32
- ? showMore
33
- ? "Ocultar"
34
- : "Saber más"
35
- : showMore
36
- ? "Hide"
37
- : "Learn more"
38
- }}
26
+ {{ showMore ? langData?.more : langData?.hide }}
39
27
  </p>
40
28
  </div>
41
29
  </div>
@@ -48,7 +36,9 @@
48
36
  <script>
49
37
  import {
50
38
  ref,
51
- defineComponent
39
+ defineComponent,
40
+ onBeforeMount,
41
+ watch
52
42
  } from "vue";
53
43
  import argEmoji from "./argEmoji.vue";
54
44
  import argIcon from "./argIcon.vue";
@@ -68,7 +58,7 @@ export default defineComponent({
68
58
  type: String,
69
59
  default: "en",
70
60
  validator: (value) => {
71
- return ["en", "fr", "es"].includes(value);
61
+ return ["en", "fr", "es", "jp"].includes(value);
72
62
  }
73
63
  },
74
64
  defaultOpen: {
@@ -79,9 +69,29 @@ export default defineComponent({
79
69
  setup(props, { emit }) {
80
70
  const displayTip = ref(true);
81
71
  const showMore = ref(props.defaultOpen);
72
+ const langData = ref(null);
73
+ async function setLang() {
74
+ const jsonFiles = import.meta.glob("./locales/*.json");
75
+ for (const path in jsonFiles) {
76
+ if (path.split("/")[2].includes(props.tipsLang)) {
77
+ const json = await jsonFiles[path]();
78
+ langData.value = json.tips;
79
+ }
80
+ }
81
+ }
82
+ onBeforeMount(async () => {
83
+ setLang();
84
+ });
85
+ watch(
86
+ () => props.tipsLang,
87
+ () => {
88
+ setLang();
89
+ }
90
+ );
82
91
  return {
83
92
  displayTip,
84
- showMore
93
+ showMore,
94
+ langData
85
95
  };
86
96
  }
87
97
  });
@@ -10,7 +10,7 @@ declare const _default: import("vue").DefineComponent<{
10
10
  tipsLang: {
11
11
  type: StringConstructor;
12
12
  default: string;
13
- validator: (value: unknown) => boolean;
13
+ validator: (value: string) => boolean;
14
14
  };
15
15
  defaultOpen: {
16
16
  type: BooleanConstructor;
@@ -19,6 +19,7 @@ declare const _default: import("vue").DefineComponent<{
19
19
  }, {
20
20
  displayTip: import("vue").Ref<boolean>;
21
21
  showMore: import("vue").Ref<boolean>;
22
+ langData: import("vue").Ref<any>;
22
23
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
24
  haveClose: {
24
25
  type: BooleanConstructor;
@@ -31,7 +32,7 @@ declare const _default: import("vue").DefineComponent<{
31
32
  tipsLang: {
32
33
  type: StringConstructor;
33
34
  default: string;
34
- validator: (value: unknown) => boolean;
35
+ validator: (value: string) => boolean;
35
36
  };
36
37
  defaultOpen: {
37
38
  type: BooleanConstructor;
@@ -3,13 +3,7 @@
3
3
  <p class="oip_heading">Sources</p>
4
4
  <div class="source_legal">
5
5
  <p>
6
- {{
7
- lang === "fr"
8
- ? "Pour être conforme à l’"
9
- : lang === "es"
10
- ? "Para cumplir con "
11
- : "To comply with the"
12
- }}
6
+ {{ langData?.comply }}
13
7
  <span class="open_data_link"
14
8
  ><a
15
9
  :href="
@@ -22,22 +16,10 @@
22
16
  Open Data License 2.0</a
23
17
  ></span
24
18
  >,
25
- {{
26
- lang === "fr"
27
- ? "vous devez annotez vos documents avec les sources utilisées."
28
- : lang === "es"
29
- ? "debe enumerar en sus informes las fuentes utilizadas."
30
- : "you must list in your reports the sources used."
31
- }}
19
+ {{ langData?.list }}
32
20
  </p>
33
21
  <p v-if="showCopy">
34
- {{
35
- lang === "fr"
36
- ? "Le bouton “Copier” est prévu pour faciliter cette démarche."
37
- : lang === "es"
38
- ? "El botón ”Copiar” facilita este proceso."
39
- : "The ”Copy” button is provided to ease this process."
40
- }}
22
+ {{ langData?.copy }}
41
23
  </p>
42
24
  </div>
43
25
  <div class="toolbar_sources_display">
@@ -48,6 +30,9 @@
48
30
 
49
31
  <script>
50
32
  import {
33
+ ref,
34
+ watch,
35
+ onBeforeMount,
51
36
  defineComponent
52
37
  } from "vue";
53
38
  export default defineComponent({
@@ -57,13 +42,35 @@ export default defineComponent({
57
42
  type: String,
58
43
  default: "en",
59
44
  validator: (value) => {
60
- return ["en", "fr", "es"].includes(value);
45
+ return ["en", "fr", "es", "jp"].includes(value);
61
46
  }
62
47
  },
63
48
  showCopy: {
64
49
  type: Boolean,
65
50
  default: true
66
51
  }
52
+ },
53
+ setup(props) {
54
+ const langData = ref(null);
55
+ async function setLang() {
56
+ const jsonFiles = import.meta.glob("./locales/*.json");
57
+ for (const path in jsonFiles) {
58
+ if (path.split("/")[2].includes(props.lang)) {
59
+ const json = await jsonFiles[path]();
60
+ langData.value = json.toolbarSource;
61
+ }
62
+ }
63
+ }
64
+ onBeforeMount(async () => {
65
+ setLang();
66
+ });
67
+ watch(
68
+ () => props.lang,
69
+ () => {
70
+ setLang();
71
+ }
72
+ );
73
+ return { langData };
67
74
  }
68
75
  });
69
76
  </script>
@@ -8,7 +8,9 @@ declare const _default: import("vue").DefineComponent<{
8
8
  type: BooleanConstructor;
9
9
  default: boolean;
10
10
  };
11
- }, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
11
+ }, {
12
+ langData: import("vue").Ref<any>;
13
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
12
14
  lang: {
13
15
  type: StringConstructor;
14
16
  default: string;