@dative-gpi/foundation-shared-components 1.0.33 → 1.0.34
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/components/FSClickable.vue +9 -0
- package/components/FSDialogFormBody.vue +4 -4
- package/components/FSDialogMultiFormBody.vue +3 -3
- package/components/FSDialogSubmit.vue +3 -3
- package/components/FSFadeOut.vue +10 -3
- package/components/fields/FSAutocompleteField.vue +3 -3
- package/components/fields/FSSelectField.vue +3 -3
- package/components/fields/FSTreeViewField.vue +3 -3
- package/components/fields/periodicField/FSPeriodicDailyField.vue +17 -10
- package/components/fields/periodicField/FSPeriodicMonthlyField.vue +29 -15
- package/components/fields/periodicField/FSPeriodicWeeklyField.vue +13 -7
- package/components/fields/periodicField/FSPeriodicYearlyField.vue +19 -10
- package/components/lists/FSFilterButton.vue +19 -20
- package/components/lists/FSHiddenButton.vue +10 -12
- package/components/map/FSMap.vue +240 -399
- package/components/map/FSMapFeatureGroup.vue +51 -0
- package/components/map/FSMapLayerButton.vue +2 -2
- package/components/map/FSMapMarker.vue +116 -0
- package/components/map/FSMapMarkerClusterGroup.vue +67 -0
- package/components/map/FSMapOverlay.vue +69 -83
- package/components/map/FSMapPolygon.vue +81 -0
- package/components/map/FSMapTileLayer.vue +50 -0
- package/components/map/keys.ts +4 -0
- package/package.json +4 -4
- package/styles/components/fs_card.scss +0 -1
- package/styles/components/fs_clickable.scss +1 -1
- package/styles/components/fs_fade_out.scss +2 -1
- package/styles/components/fs_map.scss +36 -30
- package/styles/components/fs_tabs.scss +4 -0
- package/styles/components/index.scss +0 -1
- package/utils/leafletMarkers.ts +8 -2
- package/components/map/FSMapEditPointAddressOverlay.vue +0 -164
- package/styles/components/fs_map_overlay.scss +0 -38
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
v-if="$props.href"
|
|
4
4
|
:href="$props.href"
|
|
5
5
|
:style="style"
|
|
6
|
+
:class="$props.class"
|
|
6
7
|
@mouseover="hover = true"
|
|
7
8
|
@mouseleave="hover = false"
|
|
8
9
|
@mousedown="active = true"
|
|
@@ -44,6 +45,7 @@
|
|
|
44
45
|
v-else-if="$props.to"
|
|
45
46
|
:style="style"
|
|
46
47
|
:to="$props.to"
|
|
48
|
+
:class="$props.class"
|
|
47
49
|
@mouseover="hover = true"
|
|
48
50
|
@mouseleave="hover = false"
|
|
49
51
|
@mousedown="active = true"
|
|
@@ -85,6 +87,7 @@
|
|
|
85
87
|
v-else
|
|
86
88
|
:type="$props.type"
|
|
87
89
|
:style="style"
|
|
90
|
+
:class="$props.class"
|
|
88
91
|
@click.stop="onClick"
|
|
89
92
|
@mouseover="hover = true"
|
|
90
93
|
@mouseleave="hover = false"
|
|
@@ -115,6 +118,7 @@
|
|
|
115
118
|
v-if="$props.load"
|
|
116
119
|
>
|
|
117
120
|
<v-progress-circular
|
|
121
|
+
:class="$props.class"
|
|
118
122
|
class="fs-clickable-load"
|
|
119
123
|
width="2"
|
|
120
124
|
size="24"
|
|
@@ -156,6 +160,11 @@ export default defineComponent({
|
|
|
156
160
|
required: false,
|
|
157
161
|
default: "0"
|
|
158
162
|
},
|
|
163
|
+
class: {
|
|
164
|
+
type: [String, Array] as PropType<string | string[] | null>,
|
|
165
|
+
required: false,
|
|
166
|
+
default: null
|
|
167
|
+
},
|
|
159
168
|
to: {
|
|
160
169
|
type: [String, Object] as PropType<string | RouteLocation | null>,
|
|
161
170
|
required: false,
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
gap="24px"
|
|
13
13
|
>
|
|
14
14
|
<FSFadeOut
|
|
15
|
-
:height="height"
|
|
16
15
|
padding="0 8px 0 0"
|
|
16
|
+
:maxHeight="maxHeight"
|
|
17
17
|
>
|
|
18
18
|
<slot
|
|
19
19
|
name="body"
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
gap="24px"
|
|
61
61
|
>
|
|
62
62
|
<FSFadeOut
|
|
63
|
-
:height="height"
|
|
64
63
|
padding="0 8px 0 0"
|
|
64
|
+
:maxHeight="maxHeight"
|
|
65
65
|
>
|
|
66
66
|
<slot
|
|
67
67
|
name="validation"
|
|
@@ -227,7 +227,7 @@ export default defineComponent({
|
|
|
227
227
|
const formRef = ref<HTMLElement | null>(null);
|
|
228
228
|
const valid = ref(false);
|
|
229
229
|
|
|
230
|
-
const
|
|
230
|
+
const maxHeight = computed(() => {
|
|
231
231
|
const other = 24 + 24 // Paddings
|
|
232
232
|
+ (isMobileSized.value ? 24 : 32) + 24 // Title
|
|
233
233
|
+ (props.subtitle ? (isMobileSized.value ? 14 : 16) + 8 : 0) // Subtitle
|
|
@@ -262,8 +262,8 @@ export default defineComponent({
|
|
|
262
262
|
cancelLabel,
|
|
263
263
|
submitLabel,
|
|
264
264
|
ColorEnum,
|
|
265
|
+
maxHeight,
|
|
265
266
|
formRef,
|
|
266
|
-
height,
|
|
267
267
|
valid,
|
|
268
268
|
onValidate,
|
|
269
269
|
onSubmit
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
gap="24px"
|
|
15
15
|
>
|
|
16
16
|
<FSFadeOut
|
|
17
|
-
:height="height"
|
|
18
17
|
padding="0 8px 0 0"
|
|
18
|
+
:maxHeight="maxHeight"
|
|
19
19
|
>
|
|
20
20
|
<slot
|
|
21
21
|
:name="`step-${step}`"
|
|
@@ -167,7 +167,7 @@ export default defineComponent({
|
|
|
167
167
|
const valid = ref(false);
|
|
168
168
|
const valids = ref(Array.from({ length: props.steps }, () => false));
|
|
169
169
|
|
|
170
|
-
const
|
|
170
|
+
const maxHeight = computed(() => {
|
|
171
171
|
const other = 24 + 24 // Paddings
|
|
172
172
|
+ (isMobileSized.value ? 24 : 32) + 24 // Title
|
|
173
173
|
+ (props.subtitle ? (isMobileSized.value ? 14 : 16) + 8 : 0) // Subtitle
|
|
@@ -220,7 +220,7 @@ export default defineComponent({
|
|
|
220
220
|
nextButtonLabel,
|
|
221
221
|
currentStep,
|
|
222
222
|
ColorEnum,
|
|
223
|
-
|
|
223
|
+
maxHeight,
|
|
224
224
|
valids,
|
|
225
225
|
valid,
|
|
226
226
|
onPrevious,
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
#body
|
|
12
12
|
>
|
|
13
13
|
<FSFadeOut
|
|
14
|
-
:height="height"
|
|
15
14
|
padding="0 8px 0 0"
|
|
15
|
+
:maxHeight="maxHeight"
|
|
16
16
|
>
|
|
17
17
|
<slot
|
|
18
18
|
name="body"
|
|
@@ -167,7 +167,7 @@ export default defineComponent({
|
|
|
167
167
|
const { isMobileSized } = useBreakpoints();
|
|
168
168
|
const { $tr } = useTranslationsProvider();
|
|
169
169
|
|
|
170
|
-
const
|
|
170
|
+
const maxHeight = computed(() => {
|
|
171
171
|
const other = 24 + 24 // Paddings
|
|
172
172
|
+ (isMobileSized.value ? 24 : 32) + 24 // Title
|
|
173
173
|
+ (props.subtitle ? (isMobileSized.value ? 14 : 16) + 8 : 0) // Subtitle
|
|
@@ -187,7 +187,7 @@ export default defineComponent({
|
|
|
187
187
|
cancelLabel,
|
|
188
188
|
submitLabel,
|
|
189
189
|
ColorEnum,
|
|
190
|
-
|
|
190
|
+
maxHeight
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
193
|
});
|
package/components/FSFadeOut.vue
CHANGED
|
@@ -22,8 +22,14 @@ export default defineComponent({
|
|
|
22
22
|
name: "FSFadeOut",
|
|
23
23
|
props: {
|
|
24
24
|
height: {
|
|
25
|
-
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
|
|
26
|
-
required:
|
|
25
|
+
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null | undefined>,
|
|
26
|
+
required: false,
|
|
27
|
+
default: undefined
|
|
28
|
+
},
|
|
29
|
+
maxHeight: {
|
|
30
|
+
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null | undefined>,
|
|
31
|
+
required: false,
|
|
32
|
+
default: undefined
|
|
27
33
|
},
|
|
28
34
|
width: {
|
|
29
35
|
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
|
|
@@ -59,7 +65,8 @@ export default defineComponent({
|
|
|
59
65
|
const elementId = `id${uuidv4()}`;
|
|
60
66
|
|
|
61
67
|
const style = computed((): StyleValue => ({
|
|
62
|
-
"--fs-fade-out-height" : sizeToVar(props.height),
|
|
68
|
+
"--fs-fade-out-height" : props.height ? sizeToVar(props.height) : undefined,
|
|
69
|
+
"--fs-fade-out-max-height" : props.maxHeight ? sizeToVar(props.maxHeight) : undefined,
|
|
63
70
|
"--fs-fade-out-width" : sizeToVar(props.width),
|
|
64
71
|
"--fs-fade-out-padding" : sizeToVar(props.padding),
|
|
65
72
|
"--fs-fade-out-mask-color" : backgrounds.base,
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
v-model="search"
|
|
82
82
|
/>
|
|
83
83
|
<FSFadeOut
|
|
84
|
-
:
|
|
84
|
+
:maxHeight="maxHeight"
|
|
85
85
|
>
|
|
86
86
|
<FSCol
|
|
87
87
|
v-if="$props.multiple"
|
|
@@ -515,7 +515,7 @@ export default defineComponent({
|
|
|
515
515
|
});
|
|
516
516
|
});
|
|
517
517
|
|
|
518
|
-
const
|
|
518
|
+
const maxHeight = computed(() => {
|
|
519
519
|
const other = 8 + 8 // Paddings
|
|
520
520
|
+ (isMobileSized ? 36 : 40) + 8; // Header
|
|
521
521
|
return `calc(100vh - 40px - ${other}px)`;
|
|
@@ -625,10 +625,10 @@ export default defineComponent({
|
|
|
625
625
|
validateOn,
|
|
626
626
|
ColorEnum,
|
|
627
627
|
listStyle,
|
|
628
|
+
maxHeight,
|
|
628
629
|
messages,
|
|
629
630
|
classes,
|
|
630
631
|
dialog,
|
|
631
|
-
height,
|
|
632
632
|
search,
|
|
633
633
|
slots,
|
|
634
634
|
style,
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
#body
|
|
62
62
|
>
|
|
63
63
|
<FSFadeOut
|
|
64
|
-
:
|
|
64
|
+
:maxHeight="maxHeight"
|
|
65
65
|
>
|
|
66
66
|
<FSCol
|
|
67
67
|
v-if="$props.multiple"
|
|
@@ -377,7 +377,7 @@ export default defineComponent({
|
|
|
377
377
|
|
|
378
378
|
const messages = computed((): string[] => props.messages ?? getMessages(props.modelValue, props.rules));
|
|
379
379
|
|
|
380
|
-
const
|
|
380
|
+
const maxHeight = computed(() => {
|
|
381
381
|
const other = 8 + 8; // Paddings
|
|
382
382
|
return `calc(100vh - 40px - ${other}px)`;
|
|
383
383
|
});
|
|
@@ -477,9 +477,9 @@ export default defineComponent({
|
|
|
477
477
|
validateOn,
|
|
478
478
|
ColorEnum,
|
|
479
479
|
listStyle,
|
|
480
|
+
maxHeight,
|
|
480
481
|
messages,
|
|
481
482
|
dialog,
|
|
482
|
-
height,
|
|
483
483
|
style,
|
|
484
484
|
openMobileOverlay,
|
|
485
485
|
onCheckboxChange,
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
#body
|
|
58
58
|
>
|
|
59
59
|
<FSFadeOut
|
|
60
|
-
:
|
|
60
|
+
:maxHeight="maxHeight"
|
|
61
61
|
>
|
|
62
62
|
<v-treeview
|
|
63
63
|
:itemTitle="$props.itemTitle"
|
|
@@ -381,7 +381,7 @@ export default defineComponent({
|
|
|
381
381
|
|
|
382
382
|
const messages = computed((): string[] => props.messages ?? getMessages(props.modelValue, props.rules));
|
|
383
383
|
|
|
384
|
-
const
|
|
384
|
+
const maxHeight = computed(() => {
|
|
385
385
|
const other = 8 + 8; // Paddings
|
|
386
386
|
return `calc(100vh - 40px - ${other}px)`;
|
|
387
387
|
});
|
|
@@ -501,11 +501,11 @@ export default defineComponent({
|
|
|
501
501
|
innerValue,
|
|
502
502
|
fieldSlots,
|
|
503
503
|
validateOn,
|
|
504
|
+
maxHeight,
|
|
504
505
|
menuSlots,
|
|
505
506
|
treeItems,
|
|
506
507
|
messages,
|
|
507
508
|
dialog,
|
|
508
|
-
height,
|
|
509
509
|
style,
|
|
510
510
|
menu,
|
|
511
511
|
openMobileOverlay,
|
|
@@ -80,24 +80,31 @@ export default defineComponent({
|
|
|
80
80
|
|
|
81
81
|
const selectedConfiguration = ref("custom");
|
|
82
82
|
|
|
83
|
-
const days = computed(() => {
|
|
84
|
-
|
|
83
|
+
const days = computed((): number => {
|
|
84
|
+
if (isNaN(parseInt(props.modelValue[2].replace("*/", "")))) {
|
|
85
|
+
return 0
|
|
86
|
+
}
|
|
87
|
+
return parseInt(props.modelValue[2].replace("*/", ""));
|
|
85
88
|
});
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
|
|
90
|
+
const time = computed((): number => {
|
|
91
|
+
if (isNaN(parseInt(props.modelValue[0])) || isNaN(parseInt(props.modelValue[1]))) {
|
|
92
|
+
return 0;
|
|
93
|
+
}
|
|
94
|
+
return ((parseInt(props.modelValue[0])) + (parseInt(props.modelValue[1]) * 60)) * 60 * 1000;
|
|
88
95
|
});
|
|
89
96
|
|
|
90
|
-
const onUpdateDays = (value: number) => {
|
|
97
|
+
const onUpdateDays = (value: number): void => {
|
|
91
98
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
92
99
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
93
100
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `*/${value}`, "*", "*"]);
|
|
94
|
-
}
|
|
101
|
+
};
|
|
95
102
|
|
|
96
|
-
const onUpdateHours = (value: number) => {
|
|
103
|
+
const onUpdateHours = (value: number): void => {
|
|
97
104
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
98
105
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
99
106
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `*/${days.value}`, "*", "*"]);
|
|
100
|
-
}
|
|
107
|
+
};
|
|
101
108
|
|
|
102
109
|
return {
|
|
103
110
|
availableConfigurations,
|
|
@@ -107,7 +114,7 @@ export default defineComponent({
|
|
|
107
114
|
time,
|
|
108
115
|
onUpdateHours,
|
|
109
116
|
onUpdateDays
|
|
110
|
-
}
|
|
117
|
+
};
|
|
111
118
|
}
|
|
112
|
-
})
|
|
119
|
+
});
|
|
113
120
|
</script>
|
|
@@ -134,39 +134,53 @@ export default defineComponent({
|
|
|
134
134
|
|
|
135
135
|
const selectedConfiguration = ref(props.modelValue[4] !== "*" ? "customDayWeek" : "customDayNumber");
|
|
136
136
|
|
|
137
|
-
const dayNumber = computed(() =>
|
|
138
|
-
props.modelValue[4] !== "*"
|
|
139
|
-
|
|
137
|
+
const dayNumber = computed((): number => {
|
|
138
|
+
if (props.modelValue[4] !== "*" || isNaN(parseInt(props.modelValue[2]))) {
|
|
139
|
+
return 1;
|
|
140
|
+
}
|
|
141
|
+
return parseInt(props.modelValue[2]);
|
|
142
|
+
});
|
|
140
143
|
|
|
141
|
-
const dayWeek = computed(() =>
|
|
142
|
-
props.modelValue[4]
|
|
143
|
-
|
|
144
|
+
const dayWeek = computed((): number => {
|
|
145
|
+
if (props.modelValue[4] !== "*" || isNaN(parseInt(props.modelValue[4]))) {
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
return parseInt(props.modelValue[4]) - 1;
|
|
149
|
+
});
|
|
144
150
|
|
|
145
|
-
const dayWeekNumber = computed(() =>
|
|
146
|
-
props.modelValue[2].includes("-")
|
|
147
|
-
|
|
151
|
+
const dayWeekNumber = computed((): number => {
|
|
152
|
+
if (!props.modelValue[2].includes("-") || isNaN(parseInt(props.modelValue[2].split("-")[1]))) {
|
|
153
|
+
return 1;
|
|
154
|
+
}
|
|
155
|
+
return Math.floor(parseInt(props.modelValue[2].split("-")[1]) / 7);
|
|
156
|
+
});
|
|
148
157
|
|
|
149
|
-
const time = computed(() =>
|
|
158
|
+
const time = computed((): number => {
|
|
159
|
+
if (isNaN(parseInt(props.modelValue[0])) || isNaN(parseInt(props.modelValue[1]))) {
|
|
160
|
+
return 0;
|
|
161
|
+
}
|
|
162
|
+
return ((parseInt(props.modelValue[0])) + (parseInt(props.modelValue[1]) * 60)) * 60 * 1000;
|
|
163
|
+
});
|
|
150
164
|
|
|
151
|
-
const onUpdateDayNumber = (value: number) => {
|
|
165
|
+
const onUpdateDayNumber = (value: number): void => {
|
|
152
166
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
153
167
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
154
168
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `${value}`, `*`, `*`]);
|
|
155
169
|
};
|
|
156
170
|
|
|
157
|
-
const onUpdateDayWeekNumber = (value: number) => {
|
|
171
|
+
const onUpdateDayWeekNumber = (value: number): void => {
|
|
158
172
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
159
173
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
160
174
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `${(value - 1) * 7 + 1}-${value * 7}`, `*`, `${dayWeek.value + 1}`]);
|
|
161
175
|
};
|
|
162
176
|
|
|
163
|
-
const onUpdateDayWeek = (value: number) => {
|
|
177
|
+
const onUpdateDayWeek = (value: number): void => {
|
|
164
178
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
165
179
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
166
180
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `${(dayWeekNumber.value - 1) * 7 + 1}-${dayWeekNumber.value * 7}`, `*`, `${value + 1}`]);
|
|
167
181
|
};
|
|
168
182
|
|
|
169
|
-
const onUpdateHours = (value: number) => {
|
|
183
|
+
const onUpdateHours = (value: number): void => {
|
|
170
184
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
171
185
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
172
186
|
if (selectedConfiguration.value === "customDayNumber") {
|
|
@@ -177,7 +191,7 @@ export default defineComponent({
|
|
|
177
191
|
}
|
|
178
192
|
};
|
|
179
193
|
|
|
180
|
-
watch(() => selectedConfiguration.value, (value: string) => {
|
|
194
|
+
watch(() => selectedConfiguration.value, (value: string): void => {
|
|
181
195
|
const hours = Math.floor(time.value / (60 * 60 * 1000));
|
|
182
196
|
const minutes = Math.floor(time.value / (60 * 1000) % 60);
|
|
183
197
|
if(value === "customDayNumber") {
|
|
@@ -79,22 +79,28 @@ export default defineComponent({
|
|
|
79
79
|
];
|
|
80
80
|
|
|
81
81
|
const selectedConfiguration = ref("custom");
|
|
82
|
-
|
|
83
|
-
const day = computed(() => {
|
|
84
|
-
|
|
82
|
+
|
|
83
|
+
const day = computed((): number => {
|
|
84
|
+
if (isNaN(parseInt(props.modelValue[4]))) {
|
|
85
|
+
return 0;
|
|
86
|
+
}
|
|
87
|
+
return parseInt(props.modelValue[4]) - 1;
|
|
85
88
|
});
|
|
86
89
|
|
|
87
|
-
const time = computed(() => {
|
|
88
|
-
|
|
90
|
+
const time = computed((): number => {
|
|
91
|
+
if (isNaN(parseInt(props.modelValue[0])) || isNaN(parseInt(props.modelValue[1]))) {
|
|
92
|
+
return 0;
|
|
93
|
+
}
|
|
94
|
+
return ((parseInt(props.modelValue[0])) + (parseInt(props.modelValue[1]) * 60)) * 60 * 1000;
|
|
89
95
|
});
|
|
90
96
|
|
|
91
|
-
const onUpdateDay = (value: number) => {
|
|
97
|
+
const onUpdateDay = (value: number): void => {
|
|
92
98
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
93
99
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
94
100
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `*`, `*`, `${value + 1}`]);
|
|
95
101
|
};
|
|
96
102
|
|
|
97
|
-
const onUpdateHours = (value: number) => {
|
|
103
|
+
const onUpdateHours = (value: number): void => {
|
|
98
104
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
99
105
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
100
106
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `*`, `*`, `${day.value + 1}`]);
|
|
@@ -88,32 +88,41 @@ export default defineComponent({
|
|
|
88
88
|
];
|
|
89
89
|
|
|
90
90
|
const selectedConfiguration = ref("custom");
|
|
91
|
-
|
|
92
|
-
const day = computed(() => {
|
|
93
|
-
|
|
91
|
+
|
|
92
|
+
const day = computed((): number => {
|
|
93
|
+
if (isNaN(parseInt(props.modelValue[2]))) {
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
return parseInt(props.modelValue[2]);
|
|
94
97
|
});
|
|
95
98
|
|
|
96
|
-
const month = computed(() => {
|
|
97
|
-
|
|
99
|
+
const month = computed((): number => {
|
|
100
|
+
if (isNaN(parseInt(props.modelValue[3]))) {
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
return parseInt(props.modelValue[3]) - 1;
|
|
98
104
|
});
|
|
99
105
|
|
|
100
|
-
const time = computed(() => {
|
|
101
|
-
|
|
106
|
+
const time = computed((): number => {
|
|
107
|
+
if (isNaN(parseInt(props.modelValue[0])) || isNaN(parseInt(props.modelValue[1]))) {
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
return ((parseInt(props.modelValue[0])) + (parseInt(props.modelValue[1]) * 60)) * 60 * 1000;
|
|
102
111
|
});
|
|
103
112
|
|
|
104
|
-
const onUpdateDay = (value: number) => {
|
|
113
|
+
const onUpdateDay = (value: number): void => {
|
|
105
114
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
106
115
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
107
116
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `${value}`, `${month.value + 1}`, "*"]);
|
|
108
117
|
};
|
|
109
118
|
|
|
110
|
-
const onUpdateHours = (value: number) => {
|
|
119
|
+
const onUpdateHours = (value: number): void => {
|
|
111
120
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
112
121
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
113
122
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `${day.value}`, `${month.value + 1}`, "*"]);
|
|
114
123
|
};
|
|
115
124
|
|
|
116
|
-
const onUpdateMonth = (value: number) => {
|
|
125
|
+
const onUpdateMonth = (value: number): void => {
|
|
117
126
|
const hours = Math.floor(value / (60 * 60 * 1000));
|
|
118
127
|
const minutes = Math.floor(value / (60 * 1000) % 60);
|
|
119
128
|
emit("update:modelValue", [`${minutes}`, `${hours}`, `${day.value}`, `${value + 1}`, "*"]);
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
#activator="{ props }"
|
|
8
8
|
>
|
|
9
9
|
<FSChip
|
|
10
|
+
prependIcon="mdi-filter-variant"
|
|
10
11
|
class="fs-filter-button"
|
|
11
12
|
variant="standard"
|
|
12
|
-
|
|
13
|
-
:height="[30, 24]"
|
|
13
|
+
:height="['30px', '24px']"
|
|
14
14
|
:color="ColorEnum.Dark"
|
|
15
15
|
:editable="true"
|
|
16
16
|
:label="label"
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
:border="false"
|
|
24
24
|
>
|
|
25
25
|
<FSCol
|
|
26
|
-
gap="12px"
|
|
27
26
|
padding="16px 0 24px 16px"
|
|
27
|
+
gap="12px"
|
|
28
28
|
>
|
|
29
29
|
<FSCol
|
|
30
|
-
gap="12px"
|
|
31
30
|
padding="0 16px 0 0"
|
|
31
|
+
gap="12px"
|
|
32
32
|
>
|
|
33
33
|
<FSSpan
|
|
34
34
|
font="text-overline"
|
|
@@ -37,11 +37,11 @@
|
|
|
37
37
|
</FSSpan>
|
|
38
38
|
<FSChip
|
|
39
39
|
class="fs-filter-button-chip"
|
|
40
|
-
:height="[30, 24]"
|
|
41
|
-
:editable="true"
|
|
42
|
-
:color="$props.color"
|
|
43
|
-
:variant="getAllVariant()"
|
|
44
40
|
:label="$tr('ui.data-table.all-values', 'All values')"
|
|
41
|
+
:height="['30px', '24px']"
|
|
42
|
+
:variant="getAllVariant()"
|
|
43
|
+
:color="$props.color"
|
|
44
|
+
:editable="true"
|
|
45
45
|
@click="onToggleAll"
|
|
46
46
|
/>
|
|
47
47
|
<FSDivider
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
</FSCol>
|
|
56
56
|
<FSFadeOut
|
|
57
57
|
padding="0 8px 0 0"
|
|
58
|
-
|
|
58
|
+
maxHeight="360px"
|
|
59
59
|
>
|
|
60
60
|
<FSCol
|
|
61
61
|
gap="6px"
|
|
@@ -63,12 +63,12 @@
|
|
|
63
63
|
<FSChip
|
|
64
64
|
v-for="(filter, index) in searchedFilters"
|
|
65
65
|
class="fs-filter-button-chip"
|
|
66
|
-
:height="[30, 24]"
|
|
67
|
-
:key="index"
|
|
68
|
-
:editable="true"
|
|
69
|
-
:label="filter.text"
|
|
70
|
-
:color="$props.color"
|
|
71
66
|
:variant="getVariant(filter)"
|
|
67
|
+
:height="['30px', '24px']"
|
|
68
|
+
:color="$props.color"
|
|
69
|
+
:label="filter.text"
|
|
70
|
+
:editable="true"
|
|
71
|
+
:key="index"
|
|
72
72
|
@click="() => onToggle(filter)"
|
|
73
73
|
>
|
|
74
74
|
<template
|
|
@@ -89,8 +89,7 @@
|
|
|
89
89
|
<script lang="ts">
|
|
90
90
|
import { computed, defineComponent, type PropType, ref } from "vue";
|
|
91
91
|
|
|
92
|
-
import type
|
|
93
|
-
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
92
|
+
import { type ColorBase, ColorEnum, type FSDataTableColumn, type FSDataTableFilter } from "@dative-gpi/foundation-shared-components/models";
|
|
94
93
|
import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui/composables";
|
|
95
94
|
|
|
96
95
|
import FSSearchField from "../fields/FSSearchField.vue";
|
|
@@ -195,15 +194,15 @@ export default defineComponent({
|
|
|
195
194
|
|
|
196
195
|
return {
|
|
197
196
|
searchedFilters,
|
|
197
|
+
singlePick,
|
|
198
198
|
ColorEnum,
|
|
199
199
|
expanded,
|
|
200
200
|
search,
|
|
201
201
|
label,
|
|
202
|
-
singlePick,
|
|
203
|
-
getVariant,
|
|
204
202
|
getAllVariant,
|
|
205
|
-
|
|
206
|
-
|
|
203
|
+
onToggleAll,
|
|
204
|
+
getVariant,
|
|
205
|
+
onToggle
|
|
207
206
|
};
|
|
208
207
|
}
|
|
209
208
|
});
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
:border="false"
|
|
22
22
|
>
|
|
23
23
|
<FSCol
|
|
24
|
-
gap="12px"
|
|
25
24
|
padding="16px 0px 24px 16px"
|
|
25
|
+
gap="12px"
|
|
26
26
|
>
|
|
27
27
|
<FSCol
|
|
28
|
-
gap="12px"
|
|
29
28
|
padding="0 16px 0 0"
|
|
29
|
+
gap="12px"
|
|
30
30
|
>
|
|
31
31
|
<FSSpan
|
|
32
32
|
font="text-overline"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
</FSCol>
|
|
37
37
|
<FSFadeOut
|
|
38
38
|
padding="0 8px 0 0"
|
|
39
|
-
|
|
39
|
+
maxHeight="360px"
|
|
40
40
|
>
|
|
41
41
|
<FSCol
|
|
42
42
|
gap="6px"
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
<FSChip
|
|
45
45
|
v-for="(header, index) in $props.headers"
|
|
46
46
|
class="fs-hidden-button-chip"
|
|
47
|
-
:height="[30, 24]"
|
|
48
|
-
:key="index"
|
|
49
|
-
:editable="true"
|
|
50
|
-
:label="header.text"
|
|
51
|
-
:color="$props.color"
|
|
52
47
|
variant="full"
|
|
48
|
+
:height="['30px', '24px']"
|
|
49
|
+
:color="$props.color"
|
|
50
|
+
:label="header.text"
|
|
51
|
+
:editable="true"
|
|
52
|
+
:key="index"
|
|
53
53
|
@click="$emit('update:show', header)"
|
|
54
54
|
>
|
|
55
55
|
</FSChip>
|
|
@@ -61,11 +61,9 @@
|
|
|
61
61
|
</template>
|
|
62
62
|
|
|
63
63
|
<script lang="ts">
|
|
64
|
-
import type
|
|
65
|
-
import { defineComponent, ref } from "vue";
|
|
64
|
+
import { defineComponent, type PropType, ref } from "vue";
|
|
66
65
|
|
|
67
|
-
import type
|
|
68
|
-
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
66
|
+
import { type ColorBase, ColorEnum, type FSDataTableColumn } from "@dative-gpi/foundation-shared-components/models";
|
|
69
67
|
|
|
70
68
|
import FSCard from "../FSCard.vue";
|
|
71
69
|
import FSChip from "../FSChip.vue";
|