@winchsa/ui 0.1.4 → 0.1.6
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/components/forms/DatePicker.vue +1 -1
- package/dist/components/forms/DatePickerRange.vue +0 -2
- package/dist/components/forms/ManualDate.vue +1 -1
- package/dist/components/table/EditableDataTable.vue.d.ts +1 -0
- package/dist/components/table/EditableDataTableRow.vue +1 -0
- package/dist/components/table/FilterGenerator.vue +0 -1
- package/dist/composables/useTableFilters.js +2 -1
- package/dist/composables/useTableFilters.mjs +2 -1
- package/dist/lang/ar.json +54 -0
- package/dist/lang/en.json +54 -0
- package/dist/types.d.ts +2 -15
- package/dist/utils/client.js +14 -0
- package/dist/utils/client.mjs +14 -0
- package/dist/utils/i18n.d.ts +8 -0
- package/dist/utils/i18n.js +36 -0
- package/dist/utils/i18n.mjs +27 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.mjs +1 -0
- package/dist/utils/toaster.js +5 -8
- package/dist/utils/toaster.mjs +5 -6
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +16 -2
- package/dist/utils/utils.mjs +11 -0
- package/package.json +4 -4
- package/dist/composables/useFormValidation.d.ts +0 -0
- package/dist/composables/useFormValidation.js +0 -1
- package/dist/composables/useFormValidation.mjs +0 -0
- package/dist/styles/@core/scss/template/libs/apex-chart.css +0 -90
- package/dist/styles/@core/scss/template/libs/apex-chart.scss +0 -99
- package/dist/styles/@core/scss/template/libs/shepherd.css +0 -82
- package/dist/styles/@core/scss/template/libs/shepherd.scss +0 -88
- /package/dist/utils/{hijri-date.d.ts → hijriDate.d.ts} +0 -0
- /package/dist/utils/{hijri-date.js → hijriDate.js} +0 -0
- /package/dist/utils/{hijri-date.mjs → hijriDate.mjs} +0 -0
|
@@ -11,7 +11,7 @@ const { t, locale } = useI18n();
|
|
|
11
11
|
const { current } = useTheme();
|
|
12
12
|
const props = defineProps({
|
|
13
13
|
modelValue: { type: [String, Date], required: false, default: "" },
|
|
14
|
-
format: { type: String, required: false, default: "
|
|
14
|
+
format: { type: String, required: false, default: "DD-MM-YYYY" },
|
|
15
15
|
displayFormat: { type: String, required: false },
|
|
16
16
|
label: { type: String, required: false },
|
|
17
17
|
forcedLabel: { type: String, required: false },
|
|
@@ -92,7 +92,6 @@ const label = (type) => {
|
|
|
92
92
|
:error-messages="fromErrorMessages"
|
|
93
93
|
:min-date="fromMinDate"
|
|
94
94
|
:max-date="maxFromDate"
|
|
95
|
-
format="DD-MM-YYYY"
|
|
96
95
|
display-format="DD/MM/YYYY"
|
|
97
96
|
:label="props.label"
|
|
98
97
|
:forced-label="label('from')"
|
|
@@ -116,7 +115,6 @@ const label = (type) => {
|
|
|
116
115
|
:min-date="from || toMinDate"
|
|
117
116
|
:max-date="maxToDate"
|
|
118
117
|
:disabled="disableFrom"
|
|
119
|
-
format="DD-MM-YYYY"
|
|
120
118
|
display-format="DD/MM/YYYY"
|
|
121
119
|
:label="props.label"
|
|
122
120
|
:forced-label="label('to')"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { HijriJS } from "../../utils/
|
|
2
|
+
import { HijriJS } from "../../utils/hijriDate";
|
|
3
3
|
import { computed, ref, watch } from "vue";
|
|
4
4
|
import { useI18n } from "vue-i18n";
|
|
5
5
|
import { VLabel, VIcon, VValidation, VMessages } from "vuetify/components";
|
|
@@ -47,6 +47,7 @@ declare const headers: import("vue").ComputedRef<{
|
|
|
47
47
|
groupValues?: string;
|
|
48
48
|
options?: Record<string, unknown>[] | import("../../types").OptionItem[] | import("vue").Ref<import("../../types").OptionItem[]>;
|
|
49
49
|
disableIfEmpty?: boolean;
|
|
50
|
+
maxDate?: Date | null;
|
|
50
51
|
}[]>;
|
|
51
52
|
declare const moduleIdentifier: import("vue").ComputedRef<string>;
|
|
52
53
|
declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
|
|
@@ -63,7 +63,8 @@ function useTableFilters({
|
|
|
63
63
|
const filterType = currentFilter?.type ?? "text";
|
|
64
64
|
if ((filterType === "autocomplete" || filterType === "autocompleteGroups" || filterType === "select") && !currentFilter?.multiple) {
|
|
65
65
|
if (typeof filterValue === "object") {
|
|
66
|
-
|
|
66
|
+
const value = Array.isArray(filterValue) ? filterValue[0] : filterValue;
|
|
67
|
+
queryParams[filterKey] = value[currentFilter?.trackBy || "id"];
|
|
67
68
|
} else {
|
|
68
69
|
queryParams[filterKey] = filterValue;
|
|
69
70
|
}
|
|
@@ -57,7 +57,8 @@ export function useTableFilters({ formFilters, syncFiltersWithUrl }) {
|
|
|
57
57
|
const filterType = currentFilter?.type ?? "text";
|
|
58
58
|
if ((filterType === "autocomplete" || filterType === "autocompleteGroups" || filterType === "select") && !currentFilter?.multiple) {
|
|
59
59
|
if (typeof filterValue === "object") {
|
|
60
|
-
|
|
60
|
+
const value = Array.isArray(filterValue) ? filterValue[0] : filterValue;
|
|
61
|
+
queryParams[filterKey] = value[currentFilter?.trackBy || "id"];
|
|
61
62
|
} else {
|
|
62
63
|
queryParams[filterKey] = filterValue;
|
|
63
64
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"days": {
|
|
3
|
+
"1": "الأحد",
|
|
4
|
+
"2": "الإثنين",
|
|
5
|
+
"3": "الثلاثاء",
|
|
6
|
+
"4": "الأربعاء",
|
|
7
|
+
"5": "الخميس",
|
|
8
|
+
"6": "الجمعة",
|
|
9
|
+
"7": "السبت"
|
|
10
|
+
},
|
|
11
|
+
"days_ranges": {
|
|
12
|
+
"today": "اليوم",
|
|
13
|
+
"week": "أسبوع",
|
|
14
|
+
"yesterday": "أمس",
|
|
15
|
+
"current_month": "الشهر الحالي",
|
|
16
|
+
"previous_month": "الشهر السابق",
|
|
17
|
+
"last_3_months": "آخر 3 شهور",
|
|
18
|
+
"last_6_months": "آخر 6 شهور",
|
|
19
|
+
"current_year": "السنة الحالية",
|
|
20
|
+
"last_2_years": "آخر سنتين",
|
|
21
|
+
"last_3_years": "آخر 3 سنوات"
|
|
22
|
+
},
|
|
23
|
+
"currency": {
|
|
24
|
+
"sr": "ر.س"
|
|
25
|
+
},
|
|
26
|
+
"measurement_units": {
|
|
27
|
+
"km": "كم",
|
|
28
|
+
"km_h": "كم/س"
|
|
29
|
+
},
|
|
30
|
+
"http": {
|
|
31
|
+
"403": "ليس لديك صلاحية لتنفيذ العملية",
|
|
32
|
+
"429": "لقد تخطيت عدد محاولات المسموح به ، الرجاء المحاولة لاحقاً",
|
|
33
|
+
"500": "خلل أثناء تنفيذ العملية"
|
|
34
|
+
},
|
|
35
|
+
"validation": {
|
|
36
|
+
"email": "يجب أن يكون عنوان بريد إلكتروني صحيح ",
|
|
37
|
+
"required": "هذا الحقل مطلوب",
|
|
38
|
+
"confirmed": " كلمة المرور غير متطابق",
|
|
39
|
+
"password_confirmation": "تأكيد كلمة المرور",
|
|
40
|
+
"between": "أدخل رقماً بين {min} و {max}",
|
|
41
|
+
"integer": "يجب أن يكون الحقل عددًا صحيحًا",
|
|
42
|
+
"number": "يجب أن يكون الحقل رقماً ",
|
|
43
|
+
"alphabetic": "يجب أن يكون الحقل أحرف أبجدية",
|
|
44
|
+
"url": "يجب أن يكون الحقل عنوان URL صالحًا",
|
|
45
|
+
"length": "يجب أن يكون الحقل {length} حرفًا",
|
|
46
|
+
"alpha_dash": "غير مسموح بجميع الأحرف",
|
|
47
|
+
"file_size_limit_exceeded": "يجب أن يكون حجم الملف أقل من {size} ميجابايت",
|
|
48
|
+
"file_type_not_allowed": "يجب أن يكون نوع الملف {types}",
|
|
49
|
+
"optional": "اختياري",
|
|
50
|
+
"date": "يجب أن يكون التاريخ {format}",
|
|
51
|
+
"iban": "هذا الحقل يجب ان يتكون من 24 خانة على الأقل ويكون بصيغة الآيبان",
|
|
52
|
+
"invalid": "هذا الحقل غير صحيح"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"days": {
|
|
3
|
+
"1": "Sun",
|
|
4
|
+
"2": "Mon",
|
|
5
|
+
"3": "Tue",
|
|
6
|
+
"4": "Wed",
|
|
7
|
+
"5": "Thu",
|
|
8
|
+
"6": "Fri",
|
|
9
|
+
"7": "Sat"
|
|
10
|
+
},
|
|
11
|
+
"days_ranges": {
|
|
12
|
+
"today": "Today",
|
|
13
|
+
"week": "Week",
|
|
14
|
+
"yesterday": "Yesterday",
|
|
15
|
+
"current_month": "Current month",
|
|
16
|
+
"previous_month": "Previous month",
|
|
17
|
+
"last_3_months": "Last 3 months",
|
|
18
|
+
"last_6_months": "Last 3 months",
|
|
19
|
+
"current_year": "Current year",
|
|
20
|
+
"last_2_years": "Last 2 years",
|
|
21
|
+
"last_3_years": "Last 3 years"
|
|
22
|
+
},
|
|
23
|
+
"currency": {
|
|
24
|
+
"sr": "SAR"
|
|
25
|
+
},
|
|
26
|
+
"measurement_units": {
|
|
27
|
+
"km": "KM",
|
|
28
|
+
"km_h": "KM/H"
|
|
29
|
+
},
|
|
30
|
+
"http": {
|
|
31
|
+
"403": "You do not have permission to perform this operation",
|
|
32
|
+
"429": "You have exceeded the number of attempts allowed, please try again later",
|
|
33
|
+
"500": "An error occurred during the execution of the operation"
|
|
34
|
+
},
|
|
35
|
+
"validation": {
|
|
36
|
+
"email": "The Email field must be a valid email",
|
|
37
|
+
"required": "This field is required",
|
|
38
|
+
"confirmed": "Password does not match",
|
|
39
|
+
"password_confirmation": "Password confirmation",
|
|
40
|
+
"between": "Enter a number between {min} and {max}",
|
|
41
|
+
"integer": "Field must be an integer",
|
|
42
|
+
"number": "Field must be a number",
|
|
43
|
+
"alphabetic": "Field must be alphabetic",
|
|
44
|
+
"url": "Field must be a valid URL",
|
|
45
|
+
"length": "Field must be {length} characters",
|
|
46
|
+
"alpha_dash": "All characters are not allowed",
|
|
47
|
+
"file_size_limit_exceeded": "File size must be less than {size} MB",
|
|
48
|
+
"file_type_not_allowed": "Must be one of the following types: {types}",
|
|
49
|
+
"optional": "Optional",
|
|
50
|
+
"date": "Must be date in format {format}",
|
|
51
|
+
"iban": "This Field Must Consist of at Least 24 Characters and Be in IBAN Format",
|
|
52
|
+
"invalid": "This Field is invalid"
|
|
53
|
+
}
|
|
54
|
+
}
|
package/dist/types.d.ts
CHANGED
|
@@ -143,6 +143,7 @@ export type EditableDataTableItem = {
|
|
|
143
143
|
groupValues?: string
|
|
144
144
|
options?: Record<string, unknown>[] | OptionItem[] | Ref<OptionItem[]>
|
|
145
145
|
disableIfEmpty?: boolean
|
|
146
|
+
maxDate?: Date | null
|
|
146
147
|
}
|
|
147
148
|
|
|
148
149
|
export type OptionItem = {
|
|
@@ -204,23 +205,9 @@ export type GridColumn = {
|
|
|
204
205
|
xxl?: string
|
|
205
206
|
}
|
|
206
207
|
|
|
207
|
-
// Suppress intlify type inference errors
|
|
208
|
-
declare module '@intlify/core-base' {
|
|
209
|
-
export interface CoreTranslation {
|
|
210
|
-
[key: string]: any;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// Global type augmentation to suppress TS2742 errors
|
|
215
208
|
declare global {
|
|
216
209
|
interface Window {
|
|
217
|
-
|
|
210
|
+
i18n?: any;
|
|
218
211
|
}
|
|
219
212
|
}
|
|
220
213
|
|
|
221
|
-
// Suppress TS2742 errors for vue-i18n
|
|
222
|
-
declare module 'vue-i18n' {
|
|
223
|
-
interface ComposerTranslation {
|
|
224
|
-
(key: string, ...args: any[]): string;
|
|
225
|
-
}
|
|
226
|
-
}
|
package/dist/utils/client.js
CHANGED
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.client = void 0;
|
|
7
7
|
var _ofetch = require("ofetch");
|
|
8
|
+
var _toaster = require("./toaster");
|
|
9
|
+
var _i18n = require("./i18n");
|
|
8
10
|
const clientInstance = _ofetch.ofetch.create({
|
|
9
11
|
credentials: "include"
|
|
10
12
|
});
|
|
@@ -31,6 +33,18 @@ async function apiRequest(method, path, options) {
|
|
|
31
33
|
}),
|
|
32
34
|
...headers
|
|
33
35
|
},
|
|
36
|
+
onResponseError: error => {
|
|
37
|
+
if (error.response.status === 401) {
|
|
38
|
+
localStorage.clear();
|
|
39
|
+
window.location.href = "/login";
|
|
40
|
+
}
|
|
41
|
+
if (error.response.status === 500) {
|
|
42
|
+
(0, _toaster.toaster)().error((0, _i18n.i18n)().global.t("http.500"));
|
|
43
|
+
}
|
|
44
|
+
if (error.response.status === 429) {
|
|
45
|
+
(0, _toaster.toaster)().error((0, _i18n.i18n)().global.t("http.429"));
|
|
46
|
+
}
|
|
47
|
+
},
|
|
34
48
|
...restOptions
|
|
35
49
|
});
|
|
36
50
|
}
|
package/dist/utils/client.mjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ofetch } from "ofetch";
|
|
2
|
+
import { toaster } from "./toaster.mjs";
|
|
3
|
+
import { i18n } from "./i18n.mjs";
|
|
2
4
|
const clientInstance = ofetch.create({ credentials: "include" });
|
|
3
5
|
async function apiRequest(method, path, options) {
|
|
4
6
|
const baseUrl = import.meta.env.VITE_BASE_API;
|
|
@@ -17,6 +19,18 @@ async function apiRequest(method, path, options) {
|
|
|
17
19
|
...token && { Authorization: `Bearer ${token}` },
|
|
18
20
|
...headers
|
|
19
21
|
},
|
|
22
|
+
onResponseError: (error) => {
|
|
23
|
+
if (error.response.status === 401) {
|
|
24
|
+
localStorage.clear();
|
|
25
|
+
window.location.href = "/login";
|
|
26
|
+
}
|
|
27
|
+
if (error.response.status === 500) {
|
|
28
|
+
toaster().error(i18n().global.t("http.500"));
|
|
29
|
+
}
|
|
30
|
+
if (error.response.status === 429) {
|
|
31
|
+
toaster().error(i18n().global.t("http.429"));
|
|
32
|
+
}
|
|
33
|
+
},
|
|
20
34
|
...restOptions
|
|
21
35
|
});
|
|
22
36
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.i18n = exports.createI18nInstance = void 0;
|
|
7
|
+
var _vueI18n = require("vue-i18n");
|
|
8
|
+
var _en = _interopRequireDefault(require("../lang/en.json"));
|
|
9
|
+
var _ar = _interopRequireDefault(require("../lang/ar.json"));
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const defaultMessages = {
|
|
13
|
+
en: _en.default,
|
|
14
|
+
ar: _ar.default
|
|
15
|
+
};
|
|
16
|
+
let _i18nInstance = (0, _vueI18n.createI18n)({
|
|
17
|
+
legacy: false,
|
|
18
|
+
locale: "ar",
|
|
19
|
+
fallbackLocale: "ar",
|
|
20
|
+
globalInjection: true,
|
|
21
|
+
messages: defaultMessages
|
|
22
|
+
});
|
|
23
|
+
const i18n = () => _i18nInstance;
|
|
24
|
+
exports.i18n = i18n;
|
|
25
|
+
const createI18nInstance = messages => {
|
|
26
|
+
const mergedMessages = (0, _utils.mergeDeep)(defaultMessages, messages);
|
|
27
|
+
_i18nInstance = (0, _vueI18n.createI18n)({
|
|
28
|
+
legacy: false,
|
|
29
|
+
locale: "ar",
|
|
30
|
+
fallbackLocale: "ar",
|
|
31
|
+
globalInjection: true,
|
|
32
|
+
messages: mergedMessages
|
|
33
|
+
});
|
|
34
|
+
return _i18nInstance;
|
|
35
|
+
};
|
|
36
|
+
exports.createI18nInstance = createI18nInstance;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createI18n } from "vue-i18n";
|
|
2
|
+
import en from "../lang/en.json";
|
|
3
|
+
import ar from "../lang/ar.json";
|
|
4
|
+
import { mergeDeep } from "./utils.mjs";
|
|
5
|
+
const defaultMessages = {
|
|
6
|
+
en,
|
|
7
|
+
ar
|
|
8
|
+
};
|
|
9
|
+
let _i18nInstance = createI18n({
|
|
10
|
+
legacy: false,
|
|
11
|
+
locale: "ar",
|
|
12
|
+
fallbackLocale: "ar",
|
|
13
|
+
globalInjection: true,
|
|
14
|
+
messages: defaultMessages
|
|
15
|
+
});
|
|
16
|
+
export const i18n = () => _i18nInstance;
|
|
17
|
+
export const createI18nInstance = (messages) => {
|
|
18
|
+
const mergedMessages = mergeDeep(defaultMessages, messages);
|
|
19
|
+
_i18nInstance = createI18n({
|
|
20
|
+
legacy: false,
|
|
21
|
+
locale: "ar",
|
|
22
|
+
fallbackLocale: "ar",
|
|
23
|
+
globalInjection: true,
|
|
24
|
+
messages: mergedMessages
|
|
25
|
+
});
|
|
26
|
+
return _i18nInstance;
|
|
27
|
+
};
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
|
@@ -91,6 +91,17 @@ Object.keys(_toaster).forEach(function (key) {
|
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
});
|
|
94
|
+
var _i18n = require("./i18n");
|
|
95
|
+
Object.keys(_i18n).forEach(function (key) {
|
|
96
|
+
if (key === "default" || key === "__esModule") return;
|
|
97
|
+
if (key in exports && exports[key] === _i18n[key]) return;
|
|
98
|
+
Object.defineProperty(exports, key, {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () {
|
|
101
|
+
return _i18n[key];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
94
105
|
var _utils = require("./utils");
|
|
95
106
|
Object.keys(_utils).forEach(function (key) {
|
|
96
107
|
if (key === "default" || key === "__esModule") return;
|
package/dist/utils/index.mjs
CHANGED
package/dist/utils/toaster.js
CHANGED
|
@@ -6,22 +6,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.responseAlert = responseAlert;
|
|
7
7
|
exports.toaster = void 0;
|
|
8
8
|
var _vueSonner = require("vue-sonner");
|
|
9
|
-
var
|
|
9
|
+
var _i18n = require("./i18n");
|
|
10
10
|
const toaster = () => {
|
|
11
|
-
const {
|
|
12
|
-
t
|
|
13
|
-
} = (0, _vueI18n.useI18n)();
|
|
14
11
|
const success = message => {
|
|
15
|
-
_vueSonner.toast.success(message ?? t("success"));
|
|
12
|
+
_vueSonner.toast.success(message ?? (0, _i18n.i18n)().global.t("success"));
|
|
16
13
|
};
|
|
17
14
|
const error = message => {
|
|
18
|
-
_vueSonner.toast.error(message ?? t("error"));
|
|
15
|
+
_vueSonner.toast.error(message ?? (0, _i18n.i18n)().global.t("error"));
|
|
19
16
|
};
|
|
20
17
|
const successLang = message => {
|
|
21
|
-
_vueSonner.toast.success(t(message));
|
|
18
|
+
_vueSonner.toast.success((0, _i18n.i18n)().global.t(message));
|
|
22
19
|
};
|
|
23
20
|
const errorLang = message => {
|
|
24
|
-
_vueSonner.toast.error(t(message));
|
|
21
|
+
_vueSonner.toast.error((0, _i18n.i18n)().global.t(message));
|
|
25
22
|
};
|
|
26
23
|
return {
|
|
27
24
|
success,
|
package/dist/utils/toaster.mjs
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { toast as sonnerToast } from "vue-sonner";
|
|
2
|
-
import {
|
|
2
|
+
import { i18n } from "./i18n.mjs";
|
|
3
3
|
export const toaster = () => {
|
|
4
|
-
const { t } = useI18n();
|
|
5
4
|
const success = (message) => {
|
|
6
|
-
sonnerToast.success(message ?? t("success"));
|
|
5
|
+
sonnerToast.success(message ?? i18n().global.t("success"));
|
|
7
6
|
};
|
|
8
7
|
const error = (message) => {
|
|
9
|
-
sonnerToast.error(message ?? t("error"));
|
|
8
|
+
sonnerToast.error(message ?? i18n().global.t("error"));
|
|
10
9
|
};
|
|
11
10
|
const successLang = (message) => {
|
|
12
|
-
sonnerToast.success(t(message));
|
|
11
|
+
sonnerToast.success(i18n().global.t(message));
|
|
13
12
|
};
|
|
14
13
|
const errorLang = (message) => {
|
|
15
|
-
sonnerToast.error(t(message));
|
|
14
|
+
sonnerToast.error(i18n().global.t(message));
|
|
16
15
|
};
|
|
17
16
|
return {
|
|
18
17
|
success,
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare const isEmptyArray: (arr: unknown) => boolean;
|
|
|
6
6
|
export declare const buildFormData: <T>(data: T | T[], excludedKeys?: string[], formData?: FormData, parentKey?: string) => FormData;
|
|
7
7
|
export declare const stripLeadingZero: (mobile: string) => string;
|
|
8
8
|
export declare const cloneObjectDeep: <T>(obj: T) => T;
|
|
9
|
+
export declare const mergeDeep: (target: any, source: any) => any;
|
package/dist/utils/utils.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.stripLeadingZero = exports.isNullOrUndefined = exports.isEmptyArray = exports.isEmpty = exports.generateUniqueId = exports.generateRandomId = exports.cloneObjectDeep = exports.buildFormData = void 0;
|
|
6
|
+
exports.stripLeadingZero = exports.mergeDeep = exports.isNullOrUndefined = exports.isEmptyArray = exports.isEmpty = exports.generateUniqueId = exports.generateRandomId = exports.cloneObjectDeep = exports.buildFormData = void 0;
|
|
7
7
|
const generateRandomId = length => {
|
|
8
8
|
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
9
9
|
let result = "";
|
|
@@ -67,4 +67,18 @@ exports.stripLeadingZero = stripLeadingZero;
|
|
|
67
67
|
const cloneObjectDeep = obj => {
|
|
68
68
|
return JSON.parse(JSON.stringify(obj));
|
|
69
69
|
};
|
|
70
|
-
exports.cloneObjectDeep = cloneObjectDeep;
|
|
70
|
+
exports.cloneObjectDeep = cloneObjectDeep;
|
|
71
|
+
const mergeDeep = (target, source) => {
|
|
72
|
+
const output = {
|
|
73
|
+
...target
|
|
74
|
+
};
|
|
75
|
+
for (const key in source) {
|
|
76
|
+
if (typeof source[key] === "object" && source[key] !== null && !Array.isArray(source[key])) {
|
|
77
|
+
output[key] = mergeDeep(target[key] || {}, source[key]);
|
|
78
|
+
} else {
|
|
79
|
+
output[key] = source[key];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return output;
|
|
83
|
+
};
|
|
84
|
+
exports.mergeDeep = mergeDeep;
|
package/dist/utils/utils.mjs
CHANGED
|
@@ -54,3 +54,14 @@ export const stripLeadingZero = (mobile) => {
|
|
|
54
54
|
export const cloneObjectDeep = (obj) => {
|
|
55
55
|
return JSON.parse(JSON.stringify(obj));
|
|
56
56
|
};
|
|
57
|
+
export const mergeDeep = (target, source) => {
|
|
58
|
+
const output = { ...target };
|
|
59
|
+
for (const key in source) {
|
|
60
|
+
if (typeof source[key] === "object" && source[key] !== null && !Array.isArray(source[key])) {
|
|
61
|
+
output[key] = mergeDeep(target[key] || {}, source[key]);
|
|
62
|
+
} else {
|
|
63
|
+
output[key] = source[key];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return output;
|
|
67
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@winchsa/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -26,22 +26,22 @@
|
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@intlify/unplugin-vue-i18n": "^4.0.0",
|
|
28
28
|
"@tanstack/vue-query": "^5.74.5",
|
|
29
|
-
"@vuepic/vue-datepicker": "^11.0.0",
|
|
30
29
|
"@vueuse/core": "11.3.0",
|
|
31
30
|
"@vueuse/router": "^13.1.0",
|
|
32
31
|
"ofetch": "^1.4.1",
|
|
33
32
|
"vue": "^3.5.13",
|
|
34
33
|
"vue-i18n": "9.14.4",
|
|
35
|
-
"vue-multiselect": "^3.1.0",
|
|
36
34
|
"vue-router": "4.4.5",
|
|
35
|
+
"vue-sonner": "^1.3.0",
|
|
37
36
|
"vue3-perfect-scrollbar": "2.0.0",
|
|
38
37
|
"vuetify": "3.3.12"
|
|
39
38
|
},
|
|
40
39
|
"dependencies": {
|
|
40
|
+
"@vuepic/vue-datepicker": "^11.0.0",
|
|
41
41
|
"cropperjs": "^1.6.2",
|
|
42
42
|
"print-js": "^1.6.0",
|
|
43
43
|
"v-calendar": "^3.1.2",
|
|
44
|
-
"vue-
|
|
44
|
+
"vue-multiselect": "^3.1.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@tanstack/eslint-plugin-query": "^5.73.3",
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
File without changes
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
@charset "UTF-8";
|
|
2
|
-
/** if false, disabled buttons will be greyed out */
|
|
3
|
-
/*
|
|
4
|
-
TODO: Add docs on when to use placeholder vs when to use SASS variable
|
|
5
|
-
|
|
6
|
-
Placeholder
|
|
7
|
-
- When we want to keep customization to our self between templates use it
|
|
8
|
-
|
|
9
|
-
Variables
|
|
10
|
-
- When we want to allow customization from both user and our side
|
|
11
|
-
- You can also use variable for consistency (e.g. mx 1 rem should be applied to both vertical nav items and vertical nav header)
|
|
12
|
-
*/
|
|
13
|
-
/*
|
|
14
|
-
❗ Heads up
|
|
15
|
-
==================
|
|
16
|
-
Here we assume we will always use shorthand property which will apply same padding on four side
|
|
17
|
-
This is because this have been used as value of top property by `.popper-content`
|
|
18
|
-
*/
|
|
19
|
-
.v-application .apexcharts-canvasline[stroke=transparent] {
|
|
20
|
-
display: "none";
|
|
21
|
-
}
|
|
22
|
-
.v-application .apexcharts-canvas .apexcharts-tooltip {
|
|
23
|
-
box-shadow: 0 3px 8px rgba(var(--v-shadow-key-umbra-color), 0.14), 0 0 transparent, 0 0 transparent;
|
|
24
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
25
|
-
background: rgb(var(--v-theme-surface));
|
|
26
|
-
}
|
|
27
|
-
.v-application .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title {
|
|
28
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
29
|
-
background: rgb(var(--v-theme-surface));
|
|
30
|
-
font-weight: 500;
|
|
31
|
-
}
|
|
32
|
-
.v-application .apexcharts-canvas .apexcharts-tooltip.apexcharts-theme-light {
|
|
33
|
-
color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
|
|
34
|
-
}
|
|
35
|
-
.v-application .apexcharts-canvas .apexcharts-tooltip.apexcharts-theme-dark {
|
|
36
|
-
color: white;
|
|
37
|
-
}
|
|
38
|
-
.v-application .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-series-group:first-of-type {
|
|
39
|
-
padding-block-end: 0;
|
|
40
|
-
}
|
|
41
|
-
.v-application .apexcharts-canvas .apexcharts-xaxistooltip {
|
|
42
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
43
|
-
background: rgb(var(--v-theme-gray-50));
|
|
44
|
-
color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
|
|
45
|
-
}
|
|
46
|
-
.v-application .apexcharts-canvas .apexcharts-xaxistooltip::after {
|
|
47
|
-
border-block-end-color: rgb(var(--v-theme-gray-50));
|
|
48
|
-
}
|
|
49
|
-
.v-application .apexcharts-canvas .apexcharts-xaxistooltip::before {
|
|
50
|
-
border-block-end-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
51
|
-
}
|
|
52
|
-
.v-application .apexcharts-canvas .apexcharts-yaxistooltip {
|
|
53
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
54
|
-
background: rgb(var(--v-theme-gray-50));
|
|
55
|
-
}
|
|
56
|
-
.v-application .apexcharts-canvas .apexcharts-yaxistooltip::after {
|
|
57
|
-
border-inline-start-color: rgb(var(--v-theme-gray-50));
|
|
58
|
-
}
|
|
59
|
-
.v-application .apexcharts-canvas .apexcharts-yaxistooltip::before {
|
|
60
|
-
border-inline-start-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
61
|
-
}
|
|
62
|
-
.v-application .apexcharts-canvas .apexcharts-xaxistooltip-text,
|
|
63
|
-
.v-application .apexcharts-canvas .apexcharts-yaxistooltip-text {
|
|
64
|
-
color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
|
|
65
|
-
}
|
|
66
|
-
[dir=rtl] .v-application .apexcharts-canvas .apexcharts-yaxis .apexcharts-yaxis-texts-g .apexcharts-yaxis-label {
|
|
67
|
-
text-anchor: start;
|
|
68
|
-
}
|
|
69
|
-
.v-application .apexcharts-canvas .apexcharts-text,
|
|
70
|
-
.v-application .apexcharts-canvas .apexcharts-tooltip-text,
|
|
71
|
-
.v-application .apexcharts-canvas .apexcharts-datalabel-label,
|
|
72
|
-
.v-application .apexcharts-canvas .apexcharts-datalabel,
|
|
73
|
-
.v-application .apexcharts-canvas .apexcharts-xaxistooltip-text,
|
|
74
|
-
.v-application .apexcharts-canvas .apexcharts-yaxistooltip-text,
|
|
75
|
-
.v-application .apexcharts-canvas .apexcharts-legend-text {
|
|
76
|
-
font-family: "Public Sans", sans-serif, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
|
|
77
|
-
}
|
|
78
|
-
.v-application .apexcharts-canvas .apexcharts-pie-label {
|
|
79
|
-
fill: white;
|
|
80
|
-
filter: none;
|
|
81
|
-
}
|
|
82
|
-
.v-application .apexcharts-canvas .apexcharts-marker {
|
|
83
|
-
box-shadow: none;
|
|
84
|
-
}
|
|
85
|
-
.v-application .apexcharts-canvas .apexcharts-legend-marker {
|
|
86
|
-
margin-inline-end: 0.3875rem !important;
|
|
87
|
-
}
|
|
88
|
-
[dir=rtl] .v-application .apexcharts-canvas .apexcharts-legend-marker {
|
|
89
|
-
margin-inline-end: 0.75rem !important;
|
|
90
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
@use '../../../../assets/scss/variables/_vuetify.scss' as vuetify;
|
|
2
|
-
@use '../../../../@layouts/styles/mixins' as layoutsMixins;
|
|
3
|
-
@use '../../base/mixins';
|
|
4
|
-
|
|
5
|
-
.v-application .apexcharts-canvas {
|
|
6
|
-
&line[stroke='transparent'] {
|
|
7
|
-
display: 'none';
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.apexcharts-tooltip {
|
|
11
|
-
@include mixins.elevation(3);
|
|
12
|
-
|
|
13
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
14
|
-
background: rgb(var(--v-theme-surface));
|
|
15
|
-
|
|
16
|
-
.apexcharts-tooltip-title {
|
|
17
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
18
|
-
background: rgb(var(--v-theme-surface));
|
|
19
|
-
font-weight: 500;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
&.apexcharts-theme-light {
|
|
23
|
-
color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
&.apexcharts-theme-dark {
|
|
27
|
-
color: white;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.apexcharts-tooltip-series-group:first-of-type {
|
|
31
|
-
padding-block-end: 0;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.apexcharts-xaxistooltip {
|
|
36
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
37
|
-
background: rgb(var(--v-theme-gray-50));
|
|
38
|
-
color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
|
|
39
|
-
|
|
40
|
-
&::after {
|
|
41
|
-
border-block-end-color: rgb(var(--v-theme-gray-50));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
&::before {
|
|
45
|
-
border-block-end-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.apexcharts-yaxistooltip {
|
|
50
|
-
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
51
|
-
background: rgb(var(--v-theme-gray-50));
|
|
52
|
-
|
|
53
|
-
&::after {
|
|
54
|
-
border-inline-start-color: rgb(var(--v-theme-gray-50));
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
&::before {
|
|
58
|
-
border-inline-start-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.apexcharts-xaxistooltip-text,
|
|
63
|
-
.apexcharts-yaxistooltip-text {
|
|
64
|
-
color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.apexcharts-yaxis .apexcharts-yaxis-texts-g .apexcharts-yaxis-label {
|
|
68
|
-
@include layoutsMixins.rtl {
|
|
69
|
-
text-anchor: start;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.apexcharts-text,
|
|
74
|
-
.apexcharts-tooltip-text,
|
|
75
|
-
.apexcharts-datalabel-label,
|
|
76
|
-
.apexcharts-datalabel,
|
|
77
|
-
.apexcharts-xaxistooltip-text,
|
|
78
|
-
.apexcharts-yaxistooltip-text,
|
|
79
|
-
.apexcharts-legend-text {
|
|
80
|
-
font-family: vuetify.$body-font-family !important;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.apexcharts-pie-label {
|
|
84
|
-
fill: white;
|
|
85
|
-
filter: none;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.apexcharts-marker {
|
|
89
|
-
box-shadow: none;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.apexcharts-legend-marker {
|
|
93
|
-
margin-inline-end: 0.3875rem !important;
|
|
94
|
-
|
|
95
|
-
@include layoutsMixins.rtl {
|
|
96
|
-
margin-inline-end: 0.75rem !important;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/** if false, disabled buttons will be greyed out */
|
|
2
|
-
.shepherd-button {
|
|
3
|
-
border-radius: 6px;
|
|
4
|
-
block-size: 1.75rem;
|
|
5
|
-
font-size: 0.8125rem;
|
|
6
|
-
font-weight: 500;
|
|
7
|
-
margin-inline-end: 0.75rem;
|
|
8
|
-
padding-block: 0.25rem;
|
|
9
|
-
padding-inline: 1rem;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.shepherd-footer {
|
|
13
|
-
background: rgb(var(--v-theme-background));
|
|
14
|
-
padding-block: 0.5rem 1rem;
|
|
15
|
-
padding-inline: 1rem;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.shepherd-element .shepherd-content .shepherd-header {
|
|
19
|
-
background: rgb(var(--v-theme-background));
|
|
20
|
-
padding-block: 1rem 0;
|
|
21
|
-
padding-inline: 1rem;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.shepherd-element .shepherd-content .shepherd-header .shepherd-title {
|
|
25
|
-
color: rgb(var(--v-theme-on-background));
|
|
26
|
-
font-size: 1.125rem;
|
|
27
|
-
font-weight: 500;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.shepherd-text {
|
|
31
|
-
padding: 1rem;
|
|
32
|
-
background: rgb(var(--v-theme-background));
|
|
33
|
-
color: rgb(var(--v-theme-on-background));
|
|
34
|
-
font-size: 0.9375rem;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.shepherd-cancel-icon {
|
|
38
|
-
color: rgba(var(--v-theme-on-background), var(--v-disabled-opacity)) !important;
|
|
39
|
-
font-size: 1.5rem;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.shepherd-element[data-popper-placement^=bottom] {
|
|
43
|
-
margin-block-start: 0.75rem !important;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.shepherd-element[data-popper-placement^=top] {
|
|
47
|
-
margin-block-end: 0.75rem !important;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.shepherd-element[data-popper-placement^=right] {
|
|
51
|
-
margin-inline-start: 0.75rem !important;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.shepherd-element[data-popper-placement^=left] {
|
|
55
|
-
margin-inline-end: 0.75rem !important;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.shepherd-element[data-popper-placement] .shepherd-arrow::before {
|
|
59
|
-
background: rgb(var(--v-theme-background)) !important;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.shepherd-element {
|
|
63
|
-
border-radius: 6px;
|
|
64
|
-
background: transparent;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.nextBtnClass,
|
|
68
|
-
.nextBtnClass:not(:disabled):hover {
|
|
69
|
-
background: rgb(var(--v-theme-primary));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.backBtnClass,
|
|
73
|
-
.backBtnClass:not(:disabled):hover {
|
|
74
|
-
background: rgba(var(--v-theme-secondary), var(--v-activated-opacity));
|
|
75
|
-
color: rgb(var(--v-theme-secondary));
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@media screen and (max-width: 600px) {
|
|
79
|
-
.shepherd-element {
|
|
80
|
-
max-inline-size: 75vw;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
// commented out because it's not used
|
|
2
|
-
// @use 'shepherd.js/dist/css/shepherd.css';
|
|
3
|
-
|
|
4
|
-
@use '../../../../assets/scss/variables/vuetify.scss' as variables;
|
|
5
|
-
|
|
6
|
-
.shepherd-button {
|
|
7
|
-
border-radius: variables.$button-border-radius;
|
|
8
|
-
block-size: 1.75rem;
|
|
9
|
-
font-size: 0.8125rem;
|
|
10
|
-
font-weight: variables.$button-font-weight;
|
|
11
|
-
margin-inline-end: 0.75rem;
|
|
12
|
-
padding-block: 0.25rem;
|
|
13
|
-
padding-inline: 1rem;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.shepherd-footer {
|
|
17
|
-
background: rgb(var(--v-theme-background));
|
|
18
|
-
padding-block: 0.5rem 1rem;
|
|
19
|
-
padding-inline: 1rem;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.shepherd-element .shepherd-content .shepherd-header {
|
|
23
|
-
background: rgb(var(--v-theme-background));
|
|
24
|
-
padding-block: 1rem 0;
|
|
25
|
-
padding-inline: 1rem;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.shepherd-element .shepherd-content .shepherd-header .shepherd-title {
|
|
29
|
-
color: rgb(var(--v-theme-on-background));
|
|
30
|
-
font-size: 1.125rem;
|
|
31
|
-
font-weight: 500;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.shepherd-text {
|
|
35
|
-
padding: 1rem;
|
|
36
|
-
background: rgb(var(--v-theme-background));
|
|
37
|
-
color: rgb(var(--v-theme-on-background));
|
|
38
|
-
font-size: variables.$card-text-font-size;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.shepherd-cancel-icon {
|
|
42
|
-
color: rgba(var(--v-theme-on-background), var(--v-disabled-opacity)) !important;
|
|
43
|
-
font-size: 1.5rem;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.shepherd-element[data-popper-placement^='bottom'] {
|
|
47
|
-
margin-block-start: 0.75rem !important;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.shepherd-element[data-popper-placement^='top'] {
|
|
51
|
-
margin-block-end: 0.75rem !important;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.shepherd-element[data-popper-placement^='right'] {
|
|
55
|
-
margin-inline-start: 0.75rem !important;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.shepherd-element[data-popper-placement^='left'] {
|
|
59
|
-
margin-inline-end: 0.75rem !important;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.shepherd-element[data-popper-placement] {
|
|
63
|
-
.shepherd-arrow::before {
|
|
64
|
-
background: rgb(var(--v-theme-background)) !important;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.shepherd-element {
|
|
69
|
-
border-radius: variables.$card-border-radius;
|
|
70
|
-
background: transparent;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.nextBtnClass,
|
|
74
|
-
.nextBtnClass:not(:disabled):hover {
|
|
75
|
-
background: rgb(var(--v-theme-primary));
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.backBtnClass,
|
|
79
|
-
.backBtnClass:not(:disabled):hover {
|
|
80
|
-
background: rgba(var(--v-theme-secondary), var(--v-activated-opacity));
|
|
81
|
-
color: rgb(var(--v-theme-secondary));
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
@media screen and (max-width: 600px) {
|
|
85
|
-
.shepherd-element {
|
|
86
|
-
max-inline-size: 75vw;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|