@tekkare/auriga 0.1.26 → 0.1.28
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.
- package/dist/module.json +1 -1
- package/dist/runtime/components/allIcons.vue +4 -1
- package/dist/runtime/components/argActions.vue +47 -64
- package/dist/runtime/components/argActions.vue.d.ts +2 -16
- package/dist/runtime/components/argAdvancedSearchBar.vue.d.ts +2 -2
- package/dist/runtime/components/argBtn.vue +4 -2
- package/dist/runtime/components/argBtn.vue.d.ts +9 -0
- package/dist/runtime/components/argCheckbox.vue +1 -1
- package/dist/runtime/components/argDropdownSelect.vue +1 -1
- package/dist/runtime/components/argFileBtn.vue.d.ts +2 -2
- package/dist/runtime/components/argFlag.vue.d.ts +1 -1
- package/dist/runtime/components/argHeaderTabs.vue +2 -6
- package/dist/runtime/components/argHomeAllBlocks.vue +200 -0
- package/dist/runtime/components/argHomeAllBlocks.vue.d.ts +89 -0
- package/dist/runtime/components/argHomeContent.vue +46 -0
- package/dist/runtime/components/argHomeContent.vue.d.ts +2 -0
- package/dist/runtime/components/argHomeHeader.vue +82 -0
- package/dist/runtime/components/argHomeHeader.vue.d.ts +33 -0
- package/dist/runtime/components/argHomeKpis.vue +73 -0
- package/dist/runtime/components/argHomeKpis.vue.d.ts +38 -0
- package/dist/runtime/components/argHomeLayout.vue +38 -0
- package/dist/runtime/components/argHomeLayout.vue.d.ts +2 -0
- package/dist/runtime/components/argHomeSelectedBlock.vue +94 -0
- package/dist/runtime/components/argHomeSelectedBlock.vue.d.ts +14 -0
- package/dist/runtime/components/argIcon.vue +2 -0
- package/dist/runtime/components/argIcon.vue.d.ts +1 -0
- package/dist/runtime/components/argInfoBar.vue +11 -8
- package/dist/runtime/components/argLangSelect.vue +141 -0
- package/dist/runtime/components/argLangSelect.vue.d.ts +55 -0
- package/dist/runtime/components/argMultipleChoice.vue +1 -1
- package/dist/runtime/components/argMultipleSelect.vue +1 -1
- package/dist/runtime/components/argNoSelectedScope.vue +17 -5
- package/dist/runtime/components/argScopeHeader.vue +0 -4
- package/dist/runtime/components/argScopeHeader.vue.d.ts +0 -9
- package/dist/runtime/components/argScopeLayout.vue +2 -28
- package/dist/runtime/components/argScopeLayout.vue.d.ts +1 -13
- package/dist/runtime/components/argStyle.vue +20 -17
- package/dist/runtime/components/argTable.vue +1 -1
- package/dist/runtime/components/argTextBtn.vue +70 -0
- package/dist/runtime/components/argTextBtn.vue.d.ts +29 -0
- package/dist/runtime/components/argTooltip.vue +10 -66
- package/package.json +1 -1
package/dist/module.json
CHANGED
|
@@ -701,6 +701,7 @@ export default defineComponent({
|
|
|
701
701
|
"MinusSquareFill",
|
|
702
702
|
"MinusSquareDisable",
|
|
703
703
|
"Minus",
|
|
704
|
+
"Molecule",
|
|
704
705
|
"Money",
|
|
705
706
|
"MonitorPlay",
|
|
706
707
|
"Monitor",
|
|
@@ -1098,7 +1099,9 @@ export default defineComponent({
|
|
|
1098
1099
|
"YoutubeLogo"
|
|
1099
1100
|
];
|
|
1100
1101
|
const filteredIcon = computed(() => {
|
|
1101
|
-
return iconNames.filter(
|
|
1102
|
+
return iconNames.filter(
|
|
1103
|
+
(a) => a.toLowerCase().includes(searchIcon.value.toLowerCase())
|
|
1104
|
+
);
|
|
1102
1105
|
});
|
|
1103
1106
|
return {
|
|
1104
1107
|
iconNames,
|
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
<div>
|
|
3
|
+
<div
|
|
4
|
+
v-if="actionType === 'cancel' || actionType === 'close'"
|
|
5
|
+
class="cancel_action"
|
|
6
|
+
@click="sendAction()"
|
|
7
|
+
>
|
|
8
|
+
<slot v-if="customize" />
|
|
9
|
+
<span v-else>{{ getActionText }}</span>
|
|
10
|
+
</div>
|
|
11
|
+
<arg-text-btn
|
|
12
|
+
v-else-if="actionType === 'download' || actionType === 'see-analysis'"
|
|
13
|
+
:disable="disable"
|
|
14
|
+
@onClick="sendAction()"
|
|
15
|
+
>
|
|
16
|
+
<slot v-if="customize" />
|
|
17
|
+
<span v-else>{{ getActionText }}</span>
|
|
18
|
+
</arg-text-btn>
|
|
19
|
+
<arg-btn
|
|
20
|
+
v-else-if="actionType === 'scope' || actionType === 'save-analysis'"
|
|
21
|
+
:btn-style="disable ? 'disable' : 'primary-fill'"
|
|
22
|
+
:round="actionType === 'save-analysis'"
|
|
23
|
+
@onClick="sendAction()"
|
|
24
|
+
>
|
|
25
|
+
<slot v-if="customize" />
|
|
26
|
+
<span v-else>{{ getActionText }}</span>
|
|
27
|
+
</arg-btn>
|
|
17
28
|
</div>
|
|
18
29
|
</template>
|
|
19
30
|
|
|
@@ -22,17 +33,16 @@ import {
|
|
|
22
33
|
computed,
|
|
23
34
|
defineComponent
|
|
24
35
|
} from "vue";
|
|
36
|
+
import argBtn from "./argBtn.vue";
|
|
37
|
+
import argTextBtn from "./argTextBtn.vue";
|
|
25
38
|
export default defineComponent({
|
|
26
39
|
name: "argActions",
|
|
40
|
+
components: { argBtn, argTextBtn },
|
|
27
41
|
props: {
|
|
28
42
|
actionType: {
|
|
29
43
|
type: String,
|
|
30
44
|
required: true
|
|
31
45
|
},
|
|
32
|
-
customText: {
|
|
33
|
-
type: String,
|
|
34
|
-
default: null
|
|
35
|
-
},
|
|
36
46
|
customize: {
|
|
37
47
|
type: Boolean,
|
|
38
48
|
default: false
|
|
@@ -49,61 +59,33 @@ export default defineComponent({
|
|
|
49
59
|
}
|
|
50
60
|
}
|
|
51
61
|
},
|
|
52
|
-
emits: [
|
|
53
|
-
"onDownload",
|
|
54
|
-
"onScope",
|
|
55
|
-
"onCancel",
|
|
56
|
-
"onClose",
|
|
57
|
-
"onSeeAnalysis",
|
|
58
|
-
"onSaveAnalysis"
|
|
59
|
-
],
|
|
62
|
+
emits: ["onClickAction"],
|
|
60
63
|
setup(props, { emit }) {
|
|
61
64
|
const getActionText = computed(() => {
|
|
62
|
-
|
|
63
|
-
let finalText = "";
|
|
64
|
-
switch (props.actionType) {
|
|
65
|
-
case "cancel":
|
|
66
|
-
finalText = props.lang === "fr" ? "Annuler" : "Cancel";
|
|
67
|
-
break;
|
|
68
|
-
case "scope":
|
|
69
|
-
finalText = props.lang === "fr" ? "Mon scope" : "My scope";
|
|
70
|
-
break;
|
|
71
|
-
case "see-analysis":
|
|
72
|
-
finalText = props.lang === "fr" ? "Voir l'analyse" : "Go to analysis";
|
|
73
|
-
break;
|
|
74
|
-
case "save-analysis":
|
|
75
|
-
finalText = props.lang === "fr" ? "Sauvegarder et continuer " : "Save and continue";
|
|
76
|
-
break;
|
|
77
|
-
case "download":
|
|
78
|
-
finalText = props.lang === "fr" ? "Tout t\xE9l\xE9charger" : "Download all";
|
|
79
|
-
break;
|
|
80
|
-
case "close":
|
|
81
|
-
finalText = props.lang === "fr" ? "Fermer" : "Close";
|
|
82
|
-
}
|
|
83
|
-
return finalText;
|
|
84
|
-
} else
|
|
85
|
-
return props.customText;
|
|
86
|
-
});
|
|
87
|
-
function sendAction() {
|
|
65
|
+
let finalText = "";
|
|
88
66
|
switch (props.actionType) {
|
|
89
67
|
case "cancel":
|
|
90
|
-
|
|
68
|
+
finalText = props.lang === "fr" ? "Annuler" : "Cancel";
|
|
91
69
|
break;
|
|
92
70
|
case "scope":
|
|
93
|
-
|
|
94
|
-
break;
|
|
95
|
-
case "download":
|
|
96
|
-
emit("onDownload");
|
|
71
|
+
finalText = props.lang === "fr" ? "Mon scope" : "My scope";
|
|
97
72
|
break;
|
|
98
73
|
case "see-analysis":
|
|
99
|
-
|
|
74
|
+
finalText = props.lang === "fr" ? "Voir l'analyse" : "Go to analysis";
|
|
100
75
|
break;
|
|
101
76
|
case "save-analysis":
|
|
102
|
-
|
|
77
|
+
finalText = props.lang === "fr" ? "Sauvegarder et continuer " : "Save and continue";
|
|
78
|
+
break;
|
|
79
|
+
case "download":
|
|
80
|
+
finalText = props.lang === "fr" ? "Tout t\xE9l\xE9charger" : "Download all";
|
|
103
81
|
break;
|
|
104
82
|
case "close":
|
|
105
|
-
|
|
83
|
+
finalText = props.lang === "fr" ? "Fermer" : "Close";
|
|
106
84
|
}
|
|
85
|
+
return finalText;
|
|
86
|
+
});
|
|
87
|
+
function sendAction() {
|
|
88
|
+
emit("onClickAction");
|
|
107
89
|
}
|
|
108
90
|
return {
|
|
109
91
|
getActionText,
|
|
@@ -136,6 +118,7 @@ export default defineComponent({
|
|
|
136
118
|
font-weight: 400;
|
|
137
119
|
line-height: 160%;
|
|
138
120
|
cursor: pointer;
|
|
121
|
+
width: fit-content;
|
|
139
122
|
}
|
|
140
123
|
|
|
141
124
|
.cancel_action:hover {
|
|
@@ -149,16 +132,16 @@ export default defineComponent({
|
|
|
149
132
|
justify-content: center;
|
|
150
133
|
align-items: center;
|
|
151
134
|
gap: var(--s, 8px);
|
|
152
|
-
border-radius:
|
|
135
|
+
border-radius: 8px;
|
|
153
136
|
background: var(--primary-primary, #2176ff);
|
|
154
137
|
font-size: 14px;
|
|
155
138
|
font-style: normal;
|
|
156
139
|
font-weight: 700;
|
|
157
140
|
line-height: normal;
|
|
158
141
|
color: var(--pure-white);
|
|
142
|
+
box-shadow: 4px 7px 12px 0px rgba(33, 118, 255, 0.2);
|
|
159
143
|
}
|
|
160
|
-
|
|
161
|
-
.scope_action.disable {
|
|
144
|
+
.s .scope_action.disable {
|
|
162
145
|
background: var(--dividers) !important;
|
|
163
146
|
color: var(--wild-blue-yonder) !important;
|
|
164
147
|
}
|
|
@@ -3,10 +3,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
3
3
|
type: StringConstructor;
|
|
4
4
|
required: true;
|
|
5
5
|
};
|
|
6
|
-
customText: {
|
|
7
|
-
type: StringConstructor;
|
|
8
|
-
default: null;
|
|
9
|
-
};
|
|
10
6
|
customize: {
|
|
11
7
|
type: BooleanConstructor;
|
|
12
8
|
default: boolean;
|
|
@@ -23,15 +19,11 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
23
19
|
}, {
|
|
24
20
|
getActionText: import("vue").ComputedRef<string>;
|
|
25
21
|
sendAction: () => void;
|
|
26
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin,
|
|
22
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "onClickAction"[], "onClickAction", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
27
23
|
actionType: {
|
|
28
24
|
type: StringConstructor;
|
|
29
25
|
required: true;
|
|
30
26
|
};
|
|
31
|
-
customText: {
|
|
32
|
-
type: StringConstructor;
|
|
33
|
-
default: null;
|
|
34
|
-
};
|
|
35
27
|
customize: {
|
|
36
28
|
type: BooleanConstructor;
|
|
37
29
|
default: boolean;
|
|
@@ -46,14 +38,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
46
38
|
validator: (value: string) => boolean;
|
|
47
39
|
};
|
|
48
40
|
}>> & {
|
|
49
|
-
|
|
50
|
-
onOnScope?: ((...args: any[]) => any) | undefined;
|
|
51
|
-
onOnCancel?: ((...args: any[]) => any) | undefined;
|
|
52
|
-
onOnClose?: ((...args: any[]) => any) | undefined;
|
|
53
|
-
onOnSeeAnalysis?: ((...args: any[]) => any) | undefined;
|
|
54
|
-
onOnSaveAnalysis?: ((...args: any[]) => any) | undefined;
|
|
41
|
+
onOnClickAction?: ((...args: any[]) => any) | undefined;
|
|
55
42
|
}, {
|
|
56
|
-
customText: string;
|
|
57
43
|
customize: boolean;
|
|
58
44
|
disable: boolean;
|
|
59
45
|
lang: string;
|
|
@@ -58,7 +58,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
58
58
|
iconColor: import("vue").ComputedRef<"var(--primary)" | "var(--wild-blue-yonder)">;
|
|
59
59
|
hasShortcut: import("vue").ComputedRef<boolean>;
|
|
60
60
|
infoHeight: import("vue").ComputedRef<boolean>;
|
|
61
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("
|
|
61
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:Value" | "onClose")[], "update:Value" | "onClose", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
62
62
|
placeHolderValue: {
|
|
63
63
|
type: StringConstructor;
|
|
64
64
|
default: string;
|
|
@@ -81,8 +81,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
81
81
|
default: () => never[];
|
|
82
82
|
};
|
|
83
83
|
}>> & {
|
|
84
|
-
onOnClose?: ((...args: any[]) => any) | undefined;
|
|
85
84
|
"onUpdate:Value"?: ((...args: any[]) => any) | undefined;
|
|
85
|
+
onOnClose?: ((...args: any[]) => any) | undefined;
|
|
86
86
|
}, {
|
|
87
87
|
placeHolderValue: string;
|
|
88
88
|
customShortcuts: any[];
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
:class="
|
|
6
6
|
`oip_${btnStyle}_button oip_btn oip_btn_${size} ` +
|
|
7
7
|
[becomeSmall === true ? 'prmt_button_big ' : ''] +
|
|
8
|
-
[fullWidth === true ? 'oip_full_btn' : '']
|
|
8
|
+
[fullWidth === true ? 'oip_full_btn ' : ''] +
|
|
9
|
+
[round === true ? 'oip_round_btn' : '']
|
|
9
10
|
"
|
|
10
11
|
@click="send()"
|
|
11
12
|
>
|
|
@@ -77,7 +78,8 @@ export default defineComponent({
|
|
|
77
78
|
validator: (value) => {
|
|
78
79
|
return ["s", "m"].includes(value);
|
|
79
80
|
}
|
|
80
|
-
}
|
|
81
|
+
},
|
|
82
|
+
round: { type: Boolean, default: false }
|
|
81
83
|
},
|
|
82
84
|
emits: ["onClick"],
|
|
83
85
|
setup(props, { emit }) {
|
|
@@ -36,6 +36,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
36
36
|
default: string;
|
|
37
37
|
validator: (value: string) => boolean;
|
|
38
38
|
};
|
|
39
|
+
round: {
|
|
40
|
+
type: BooleanConstructor;
|
|
41
|
+
default: boolean;
|
|
42
|
+
};
|
|
39
43
|
}, {
|
|
40
44
|
getIconColor: import("vue").ComputedRef<string>;
|
|
41
45
|
send: () => void;
|
|
@@ -77,6 +81,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
77
81
|
default: string;
|
|
78
82
|
validator: (value: string) => boolean;
|
|
79
83
|
};
|
|
84
|
+
round: {
|
|
85
|
+
type: BooleanConstructor;
|
|
86
|
+
default: boolean;
|
|
87
|
+
};
|
|
80
88
|
}>> & {
|
|
81
89
|
onOnClick?: ((...args: any[]) => any) | undefined;
|
|
82
90
|
}, {
|
|
@@ -89,5 +97,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
89
97
|
loading: boolean;
|
|
90
98
|
fullWidth: boolean;
|
|
91
99
|
size: string;
|
|
100
|
+
round: boolean;
|
|
92
101
|
}, {}>;
|
|
93
102
|
export default _default;
|
|
@@ -356,7 +356,7 @@ export default defineComponent({
|
|
|
356
356
|
color: var(--independence) !important;
|
|
357
357
|
}
|
|
358
358
|
.oip_select_complex_selection_loop:hover > svg.add {
|
|
359
|
-
color: var(--primary-
|
|
359
|
+
color: var(--primary-hover) !important;
|
|
360
360
|
}
|
|
361
361
|
|
|
362
362
|
.oip_select_complex_selection_loop:hover svg {
|
|
@@ -32,7 +32,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
32
32
|
}>;
|
|
33
33
|
onPreview: () => void;
|
|
34
34
|
onDownload: () => void;
|
|
35
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("
|
|
35
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("onPreview" | "onDownload")[], "onPreview" | "onDownload", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
36
36
|
fileType: {
|
|
37
37
|
type: StringConstructor;
|
|
38
38
|
required: false;
|
|
@@ -60,8 +60,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
60
60
|
default: boolean;
|
|
61
61
|
};
|
|
62
62
|
}>> & {
|
|
63
|
-
onOnDownload?: ((...args: any[]) => any) | undefined;
|
|
64
63
|
onOnPreview?: ((...args: any[]) => any) | undefined;
|
|
64
|
+
onOnDownload?: ((...args: any[]) => any) | undefined;
|
|
65
65
|
}, {
|
|
66
66
|
download: boolean;
|
|
67
67
|
preview: boolean;
|
|
@@ -162,17 +162,13 @@ export default defineComponent({
|
|
|
162
162
|
color: var(--wild-blue-yonder);
|
|
163
163
|
list-style: none;
|
|
164
164
|
font-style: normal;
|
|
165
|
-
font-size:
|
|
166
|
-
font-weight:
|
|
165
|
+
font-size: 14px;
|
|
166
|
+
font-weight: 500;
|
|
167
167
|
text-align: center;
|
|
168
168
|
padding: 0px 0px 8px 0px;
|
|
169
169
|
white-space: pre-line;
|
|
170
170
|
overflow-wrap: break-word;
|
|
171
171
|
vertical-align: middle;
|
|
172
|
-
font-size: 16px;
|
|
173
|
-
font-style: normal;
|
|
174
|
-
font-weight: 700;
|
|
175
|
-
line-height: normal;
|
|
176
172
|
}
|
|
177
173
|
|
|
178
174
|
.header_one_tab:hover {
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="arg_home_all_blocks">
|
|
3
|
+
<div v-if="hasGlobal" class="arg_home_all_blocks">
|
|
4
|
+
<h1 class="arg_home_blocks_title">{{ getGlobalTitle }}</h1>
|
|
5
|
+
<div class="oip_row v-start gap-16 wrap">
|
|
6
|
+
<div
|
|
7
|
+
v-for="(block, index) in globalBlocks"
|
|
8
|
+
:key="index"
|
|
9
|
+
class="oip_card block_card"
|
|
10
|
+
@click="selectBlock(block)"
|
|
11
|
+
>
|
|
12
|
+
<slot v-if="customizeBlocks" name="custom" v-bind:block="block" />
|
|
13
|
+
<div v-else class="block_content">
|
|
14
|
+
<p class="block_title">{{ block.title }}</p>
|
|
15
|
+
<p class="block_descr">{{ block.description }}</p>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<h1 class="arg_home_blocks_title">{{ getTitle }}</h1>
|
|
21
|
+
<arg-search-input
|
|
22
|
+
v-model:Value="searchBlocks"
|
|
23
|
+
:place-holder-value="getSearchPlaceholder"
|
|
24
|
+
/>
|
|
25
|
+
<div class="oip_row v-start gap-16 wrap">
|
|
26
|
+
<div
|
|
27
|
+
v-for="(block, index) in filterBlocks"
|
|
28
|
+
:key="index"
|
|
29
|
+
class="oip_card block_card"
|
|
30
|
+
:class="selectedBlock?.title === block.title ? 'block_selected' : ''"
|
|
31
|
+
@click="selectBlock(block)"
|
|
32
|
+
>
|
|
33
|
+
<slot v-if="customizeBlocks" name="custom" v-bind:block="block" />
|
|
34
|
+
<div v-else class="block_content">
|
|
35
|
+
<p class="block_title">
|
|
36
|
+
<span v-if="block.country"
|
|
37
|
+
><arg-flag
|
|
38
|
+
:slug="block.country.toLowerCase()"
|
|
39
|
+
height="14" /></span
|
|
40
|
+
>{{ block.title }}
|
|
41
|
+
</p>
|
|
42
|
+
<p class="block_descr">{{ block.description }}</p>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</template>
|
|
48
|
+
|
|
49
|
+
<script>
|
|
50
|
+
import {
|
|
51
|
+
ref,
|
|
52
|
+
computed,
|
|
53
|
+
defineComponent
|
|
54
|
+
} from "vue";
|
|
55
|
+
import argSearchInput from "./argSearchInput.vue";
|
|
56
|
+
import argFlag from "./argFlag.vue";
|
|
57
|
+
export default defineComponent({
|
|
58
|
+
name: "argHomeAllBlocks",
|
|
59
|
+
components: { argSearchInput, argFlag },
|
|
60
|
+
props: {
|
|
61
|
+
title: {
|
|
62
|
+
type: String,
|
|
63
|
+
default: null
|
|
64
|
+
},
|
|
65
|
+
globalTitle: {
|
|
66
|
+
type: String,
|
|
67
|
+
default: null
|
|
68
|
+
},
|
|
69
|
+
searchPlaceholder: {
|
|
70
|
+
type: String,
|
|
71
|
+
default: null
|
|
72
|
+
},
|
|
73
|
+
appBlocks: {
|
|
74
|
+
type: Array,
|
|
75
|
+
required: true
|
|
76
|
+
},
|
|
77
|
+
globalBlocks: {
|
|
78
|
+
type: Array,
|
|
79
|
+
default: () => []
|
|
80
|
+
},
|
|
81
|
+
hasGlobal: {
|
|
82
|
+
type: Boolean,
|
|
83
|
+
default: false
|
|
84
|
+
},
|
|
85
|
+
customizeBlocks: {
|
|
86
|
+
type: Boolean,
|
|
87
|
+
default: false
|
|
88
|
+
},
|
|
89
|
+
lang: {
|
|
90
|
+
type: String,
|
|
91
|
+
default: "en",
|
|
92
|
+
validator: (value) => {
|
|
93
|
+
return ["en", "fr"].includes(value);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
emits: ["onSelectBlock", "update:Block"],
|
|
98
|
+
setup(props, { emit }) {
|
|
99
|
+
const searchBlocks = ref("");
|
|
100
|
+
const selectedBlock = ref(null);
|
|
101
|
+
const getTitle = computed(() => {
|
|
102
|
+
if (props.title !== null) {
|
|
103
|
+
return props.title;
|
|
104
|
+
} else
|
|
105
|
+
return props.hasGlobal ? props.lang === "en" ? "Countries" : "Pays" : props.lang === "en" ? "All themes" : "Tous les th\xE8mes";
|
|
106
|
+
});
|
|
107
|
+
const getGlobalTitle = computed(() => {
|
|
108
|
+
if (props.globalTitle !== null) {
|
|
109
|
+
return props.globalTitle;
|
|
110
|
+
} else
|
|
111
|
+
return props.lang === "en" ? "Global Themes" : "Th\xE8mes Globaux";
|
|
112
|
+
});
|
|
113
|
+
const getSearchPlaceholder = computed(() => {
|
|
114
|
+
if (props.searchPlaceholder !== null) {
|
|
115
|
+
return props.searchPlaceholder;
|
|
116
|
+
} else
|
|
117
|
+
return props.lang === "en" ? "Search here..." : "Recherchez ici...";
|
|
118
|
+
});
|
|
119
|
+
const filterBlocks = computed(() => {
|
|
120
|
+
return props.appBlocks.filter((a) => includesValue(a));
|
|
121
|
+
});
|
|
122
|
+
function includesValue(a) {
|
|
123
|
+
const hasValue = ref(false);
|
|
124
|
+
for (const [key] of Object.entries(a)) {
|
|
125
|
+
const value = a[key];
|
|
126
|
+
if (typeof value === "string" && value.toLowerCase().includes(searchBlocks.value.toLowerCase())) {
|
|
127
|
+
hasValue.value = true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return hasValue.value;
|
|
131
|
+
}
|
|
132
|
+
function selectBlock(block) {
|
|
133
|
+
selectedBlock.value = block;
|
|
134
|
+
emit("onSelectBlock", selectedBlock.value);
|
|
135
|
+
emit("update:Block", selectedBlock.value);
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
searchBlocks,
|
|
139
|
+
getTitle,
|
|
140
|
+
getSearchPlaceholder,
|
|
141
|
+
selectedBlock,
|
|
142
|
+
selectBlock,
|
|
143
|
+
filterBlocks,
|
|
144
|
+
getGlobalTitle
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
</script>
|
|
149
|
+
|
|
150
|
+
<style scoped>
|
|
151
|
+
.arg_home_all_blocks {
|
|
152
|
+
display: flex;
|
|
153
|
+
flex-direction: column;
|
|
154
|
+
align-items: flex-start;
|
|
155
|
+
gap: 24px;
|
|
156
|
+
}
|
|
157
|
+
.block_card {
|
|
158
|
+
flex: 0 0 calc(50% - 59px);
|
|
159
|
+
margin: 0px !important;
|
|
160
|
+
padding: 24px !important;
|
|
161
|
+
cursor: pointer;
|
|
162
|
+
border: 1.5px solid transparent;
|
|
163
|
+
}
|
|
164
|
+
.block_card:hover {
|
|
165
|
+
border-color: rgba(33, 118, 255, 0.2) !important;
|
|
166
|
+
}
|
|
167
|
+
.block_card:not(.block_selected):hover .block_title {
|
|
168
|
+
color: var(--primary) !important;
|
|
169
|
+
}
|
|
170
|
+
.block_descr {
|
|
171
|
+
display: -webkit-box;
|
|
172
|
+
-webkit-line-clamp: 2;
|
|
173
|
+
-webkit-box-orient: vertical;
|
|
174
|
+
overflow: hidden;
|
|
175
|
+
font-size: 14px;
|
|
176
|
+
font-style: normal;
|
|
177
|
+
font-weight: 400;
|
|
178
|
+
line-height: 160%;
|
|
179
|
+
}
|
|
180
|
+
.block_content {
|
|
181
|
+
display: flex;
|
|
182
|
+
flex-direction: column;
|
|
183
|
+
gap: 12px;
|
|
184
|
+
align-items: flex-start;
|
|
185
|
+
}
|
|
186
|
+
.block_title {
|
|
187
|
+
font-size: 16px;
|
|
188
|
+
font-style: normal;
|
|
189
|
+
font-weight: 700;
|
|
190
|
+
line-height: normal;
|
|
191
|
+
display: flex;
|
|
192
|
+
flex-direction: row;
|
|
193
|
+
align-items: flex-end;
|
|
194
|
+
gap: 8px;
|
|
195
|
+
}
|
|
196
|
+
.block_selected {
|
|
197
|
+
background: var(--primary) !important;
|
|
198
|
+
color: var(--pure-white) !important;
|
|
199
|
+
}
|
|
200
|
+
</style>
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
title: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
default: null;
|
|
5
|
+
};
|
|
6
|
+
globalTitle: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
default: null;
|
|
9
|
+
};
|
|
10
|
+
searchPlaceholder: {
|
|
11
|
+
type: StringConstructor;
|
|
12
|
+
default: null;
|
|
13
|
+
};
|
|
14
|
+
appBlocks: {
|
|
15
|
+
type: ArrayConstructor;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
globalBlocks: {
|
|
19
|
+
type: ArrayConstructor;
|
|
20
|
+
default: () => never[];
|
|
21
|
+
};
|
|
22
|
+
hasGlobal: {
|
|
23
|
+
type: BooleanConstructor;
|
|
24
|
+
default: boolean;
|
|
25
|
+
};
|
|
26
|
+
customizeBlocks: {
|
|
27
|
+
type: BooleanConstructor;
|
|
28
|
+
default: boolean;
|
|
29
|
+
};
|
|
30
|
+
lang: {
|
|
31
|
+
type: StringConstructor;
|
|
32
|
+
default: string;
|
|
33
|
+
validator: (value: string) => boolean;
|
|
34
|
+
};
|
|
35
|
+
}, {
|
|
36
|
+
searchBlocks: import("vue").Ref<string>;
|
|
37
|
+
getTitle: import("vue").ComputedRef<string>;
|
|
38
|
+
getSearchPlaceholder: import("vue").ComputedRef<string>;
|
|
39
|
+
selectedBlock: any;
|
|
40
|
+
selectBlock: (block: any) => void;
|
|
41
|
+
filterBlocks: import("vue").ComputedRef<unknown[]>;
|
|
42
|
+
getGlobalTitle: import("vue").ComputedRef<string>;
|
|
43
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("onSelectBlock" | "update:Block")[], "onSelectBlock" | "update:Block", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
44
|
+
title: {
|
|
45
|
+
type: StringConstructor;
|
|
46
|
+
default: null;
|
|
47
|
+
};
|
|
48
|
+
globalTitle: {
|
|
49
|
+
type: StringConstructor;
|
|
50
|
+
default: null;
|
|
51
|
+
};
|
|
52
|
+
searchPlaceholder: {
|
|
53
|
+
type: StringConstructor;
|
|
54
|
+
default: null;
|
|
55
|
+
};
|
|
56
|
+
appBlocks: {
|
|
57
|
+
type: ArrayConstructor;
|
|
58
|
+
required: true;
|
|
59
|
+
};
|
|
60
|
+
globalBlocks: {
|
|
61
|
+
type: ArrayConstructor;
|
|
62
|
+
default: () => never[];
|
|
63
|
+
};
|
|
64
|
+
hasGlobal: {
|
|
65
|
+
type: BooleanConstructor;
|
|
66
|
+
default: boolean;
|
|
67
|
+
};
|
|
68
|
+
customizeBlocks: {
|
|
69
|
+
type: BooleanConstructor;
|
|
70
|
+
default: boolean;
|
|
71
|
+
};
|
|
72
|
+
lang: {
|
|
73
|
+
type: StringConstructor;
|
|
74
|
+
default: string;
|
|
75
|
+
validator: (value: string) => boolean;
|
|
76
|
+
};
|
|
77
|
+
}>> & {
|
|
78
|
+
onOnSelectBlock?: ((...args: any[]) => any) | undefined;
|
|
79
|
+
"onUpdate:Block"?: ((...args: any[]) => any) | undefined;
|
|
80
|
+
}, {
|
|
81
|
+
lang: string;
|
|
82
|
+
title: string;
|
|
83
|
+
globalTitle: string;
|
|
84
|
+
searchPlaceholder: string;
|
|
85
|
+
globalBlocks: unknown[];
|
|
86
|
+
hasGlobal: boolean;
|
|
87
|
+
customizeBlocks: boolean;
|
|
88
|
+
}, {}>;
|
|
89
|
+
export default _default;
|