@simsustech/quasar-components 0.11.9 → 0.11.11
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/CHANGELOG.md +15 -0
- package/dist/LocaleSelect.vue_vue_type_script_setup_true_lang-Du4fNbTV.js +573 -0
- package/dist/authentication.js +218 -106
- package/dist/form.js +164 -305
- package/dist/general.js +51 -95
- package/dist/md3.js +435 -0
- package/dist/{nl-BTgHOvpQ.js → nl-BJwNz421.js} +70 -0
- package/dist/{nl-jHKPHlmh.js → nl-CneFq5NZ.js} +4 -0
- package/dist/nl-NLgZUAKl.js +6 -0
- package/dist/types/ui/authentication/AccountsTable.vue.d.ts +5 -0
- package/dist/types/ui/authentication/ConsentList.vue.d.ts +3 -0
- package/dist/types/ui/authentication/EmailChangeForm.vue.d.ts +2 -2
- package/dist/types/ui/authentication/LoginButton.vue.d.ts +1 -1
- package/dist/types/ui/authentication/LoginForm.vue.d.ts +6 -2
- package/dist/types/ui/authentication/LogoutButton.vue.d.ts +12 -0
- package/dist/types/ui/authentication/LogoutForm.vue.d.ts +18 -0
- package/dist/types/ui/authentication/PasswordChangeForm.vue.d.ts +10 -2
- package/dist/types/ui/authentication/RegisterForm.vue.d.ts +10 -2
- package/dist/types/ui/authentication/RequestOtpForm.vue.d.ts +2 -2
- package/dist/types/ui/authentication/UserMenuButton.vue.d.ts +4 -1
- package/dist/types/ui/authentication/index.d.ts +2 -0
- package/dist/types/ui/authentication/lang/index.d.ts +12 -0
- package/dist/types/ui/form/DateInput.vue.d.ts +19 -1
- package/dist/types/ui/form/FormInput.vue.d.ts +2 -15
- package/dist/types/ui/form/FormItem.vue.d.ts +2 -19
- package/dist/types/ui/form/LocaleSelect.vue.d.ts +6 -4
- package/dist/types/ui/form/lang/index.d.ts +1131 -0
- package/dist/types/ui/general/QDrawerList.vue.d.ts +2 -7
- package/dist/types/ui/general/QLanguageSelect.vue.d.ts +7 -4
- package/dist/types/ui/general/QStyledCard.vue.d.ts +9 -5
- package/dist/types/ui/general/QStyledLayout.vue.d.ts +1 -1
- package/dist/types/ui/general/QSubmitButton.vue.d.ts +1 -1
- package/dist/types/ui/general/ResourcePage.vue.d.ts +17 -5
- package/dist/types/ui/general/ResponsiveDialog.vue.d.ts +9 -4
- package/dist/types/ui/md3/Md3Layout.vue.d.ts +31 -0
- package/dist/types/ui/md3/NavigationRailFabs.vue.d.ts +14 -0
- package/dist/types/ui/md3/index.d.ts +3 -0
- package/dist/types/ui/md3/lang/en-US.d.ts +3 -0
- package/dist/types/ui/md3/lang/index.d.ts +12 -0
- package/dist/types/ui/md3/lang/nl.d.ts +3 -0
- package/package.json +21 -14
- package/src/ui/authentication/AccountsTable.vue +18 -9
- package/src/ui/authentication/ConsentList.vue +13 -18
- package/src/ui/authentication/LoginForm.vue +12 -3
- package/src/ui/authentication/LogoutButton.vue +31 -0
- package/src/ui/authentication/LogoutForm.vue +49 -0
- package/src/ui/authentication/PasswordChangeForm.vue +11 -3
- package/src/ui/authentication/RegisterForm.vue +11 -3
- package/src/ui/authentication/UserMenuButton.vue +9 -3
- package/src/ui/authentication/index.ts +2 -0
- package/src/ui/authentication/lang/en-US.ts +4 -0
- package/src/ui/authentication/lang/index.ts +4 -0
- package/src/ui/authentication/lang/nl.ts +4 -0
- package/src/ui/form/DateInput.vue +53 -26
- package/src/ui/form/LocaleSelect.vue +29 -43
- package/src/ui/form/lang/en-US.ts +377 -0
- package/src/ui/form/lang/index.ts +377 -0
- package/src/ui/form/lang/nl.ts +377 -0
- package/src/ui/general/QLanguageSelect.vue +30 -105
- package/src/ui/general/QLanguageSelectBtn.vue.bak +99 -0
- package/src/ui/general/QStyledCard.vue +2 -2
- package/src/ui/general/ResourcePage.vue +13 -5
- package/src/ui/general/ResponsiveDialog.vue +23 -6
- package/src/ui/general/index.ts +1 -0
- package/src/ui/md3/Md3Layout.vue +139 -0
- package/src/ui/md3/NavigationRailFabs.vue +68 -0
- package/src/ui/md3/index.ts +3 -0
- package/src/ui/md3/lang/en-US.ts +7 -0
- package/src/ui/md3/lang/index.ts +41 -0
- package/src/ui/md3/lang/nl.ts +7 -0
- package/vite.config.ts +4 -73
- package/dist/flags.js +0 -255
- package/dist/icons.js +0 -25
- package/dist/index-DnmJt2wP.js +0 -7921
- package/dist/nl-BL9hHEHL.js +0 -76
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import { QList } from 'quasar';
|
|
2
|
-
declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
|
|
3
1
|
declare var __VLS_6: {};
|
|
4
|
-
type __VLS_Slots =
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
5
3
|
default?: (props: typeof __VLS_6) => any;
|
|
6
|
-
}
|
|
7
|
-
declare const __VLS_self: import("vue").DefineComponent<{}, {
|
|
8
|
-
QList: typeof QList;
|
|
9
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
4
|
+
};
|
|
10
5
|
declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
11
6
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
12
7
|
export default _default;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { QuasarLanguage } from 'quasar';
|
|
2
|
-
import {
|
|
2
|
+
import type { Language as FormLanguage } from '../form/lang/index.js';
|
|
3
3
|
export interface Props {
|
|
4
|
-
modelValue:
|
|
5
|
-
languageImports: Record<
|
|
4
|
+
modelValue: keyof FormLanguage['countries'];
|
|
5
|
+
languageImports: Record<keyof FormLanguage['countries'], () => Promise<{
|
|
6
6
|
default: QuasarLanguage;
|
|
7
7
|
}>>;
|
|
8
|
-
|
|
8
|
+
locales: {
|
|
9
|
+
icon: string;
|
|
10
|
+
isoName: keyof FormLanguage['languages'];
|
|
11
|
+
}[];
|
|
9
12
|
}
|
|
10
13
|
declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
14
|
export default _default;
|
|
@@ -6,11 +6,15 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {
|
|
|
6
6
|
variables: import("vue").Ref<{}, {}>;
|
|
7
7
|
functions: import("vue").Ref<{}, {}>;
|
|
8
8
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
9
|
-
image?: (
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
image?: (props: {}) => any;
|
|
10
|
+
} & {
|
|
11
|
+
title?: (props: {}) => any;
|
|
12
|
+
} & {
|
|
13
|
+
subtitle?: (props: {}) => any;
|
|
14
|
+
} & {
|
|
15
|
+
default?: (props: {}) => any;
|
|
16
|
+
} & {
|
|
17
|
+
actions?: (props: {}) => any;
|
|
14
18
|
}>;
|
|
15
19
|
export default _default;
|
|
16
20
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -5,7 +5,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {
|
|
|
5
5
|
variables: import("vue").Ref<{}, {}>;
|
|
6
6
|
functions: import("vue").Ref<{}, {}>;
|
|
7
7
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
8
|
-
leftDrawerItems?: (
|
|
8
|
+
leftDrawerItems?: (props: {}) => any;
|
|
9
9
|
}>;
|
|
10
10
|
export default _default;
|
|
11
11
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -20,7 +20,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {},
|
|
|
20
20
|
color: string;
|
|
21
21
|
loading: boolean;
|
|
22
22
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
23
|
-
default?: (
|
|
23
|
+
default?: (props: {}) => any;
|
|
24
24
|
}>;
|
|
25
25
|
export default _default;
|
|
26
26
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -3,6 +3,10 @@ export interface Props {
|
|
|
3
3
|
disabled?: boolean;
|
|
4
4
|
topBarFab?: boolean;
|
|
5
5
|
topBarShrink?: boolean;
|
|
6
|
+
icons?: {
|
|
7
|
+
add: string;
|
|
8
|
+
edit: string;
|
|
9
|
+
};
|
|
6
10
|
}
|
|
7
11
|
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
8
12
|
update: (args_0: {
|
|
@@ -24,15 +28,23 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {},
|
|
|
24
28
|
}) => any) | undefined;
|
|
25
29
|
}>, {
|
|
26
30
|
type: "create" | "update";
|
|
31
|
+
icons: {
|
|
32
|
+
add: string;
|
|
33
|
+
edit: string;
|
|
34
|
+
};
|
|
27
35
|
disabled: boolean;
|
|
28
36
|
topBarFab: boolean;
|
|
29
37
|
topBarShrink: boolean;
|
|
30
38
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
31
|
-
default?: (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
default?: (props: {}) => any;
|
|
40
|
+
} & {
|
|
41
|
+
fab?: (props: {}) => any;
|
|
42
|
+
} & {
|
|
43
|
+
header?: (props: {}) => any;
|
|
44
|
+
} & {
|
|
45
|
+
'top-bar-buttons'?: (props: {}) => any;
|
|
46
|
+
} & {
|
|
47
|
+
'header-side'?: (props: {}) => any;
|
|
36
48
|
}>;
|
|
37
49
|
export default _default;
|
|
38
50
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export interface Props {
|
|
2
2
|
display?: boolean;
|
|
3
3
|
buttonType?: 'submit' | 'send';
|
|
4
|
-
closeIcon?: string;
|
|
5
4
|
padding?: boolean;
|
|
5
|
+
icons?: {
|
|
6
|
+
close: string;
|
|
7
|
+
};
|
|
6
8
|
}
|
|
7
9
|
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {
|
|
8
10
|
variables: import("vue").Ref<{}, {}>;
|
|
@@ -28,11 +30,14 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {
|
|
|
28
30
|
done: (success?: boolean) => void;
|
|
29
31
|
}) => any) | undefined;
|
|
30
32
|
}>, {
|
|
33
|
+
icons: {
|
|
34
|
+
close: string;
|
|
35
|
+
};
|
|
31
36
|
buttonType: "submit" | "send";
|
|
32
|
-
closeIcon: string;
|
|
33
37
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
34
|
-
title?: (
|
|
35
|
-
|
|
38
|
+
title?: (props: {}) => any;
|
|
39
|
+
} & {
|
|
40
|
+
default?: (props: {}) => any;
|
|
36
41
|
}>;
|
|
37
42
|
export default _default;
|
|
38
43
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
ready?: boolean;
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_22: {}, __VLS_44: {
|
|
5
|
+
showSticky: boolean;
|
|
6
|
+
}, __VLS_46: {}, __VLS_48: {}, __VLS_54: {}, __VLS_64: {
|
|
7
|
+
showSticky: boolean;
|
|
8
|
+
};
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
'header-toolbar'?: (props: typeof __VLS_22) => any;
|
|
11
|
+
} & {
|
|
12
|
+
fabs?: (props: typeof __VLS_44) => any;
|
|
13
|
+
} & {
|
|
14
|
+
'drawer-mini-navigation'?: (props: typeof __VLS_46) => any;
|
|
15
|
+
} & {
|
|
16
|
+
drawer?: (props: typeof __VLS_48) => any;
|
|
17
|
+
} & {
|
|
18
|
+
footer?: (props: typeof __VLS_54) => any;
|
|
19
|
+
} & {
|
|
20
|
+
fabs?: (props: typeof __VLS_64) => any;
|
|
21
|
+
};
|
|
22
|
+
declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
23
|
+
ready: boolean;
|
|
24
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
26
|
+
export default _default;
|
|
27
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
28
|
+
new (): {
|
|
29
|
+
$slots: S;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
type?: 'add' | 'edit';
|
|
3
|
+
showSticky?: boolean;
|
|
4
|
+
busEmits: {
|
|
5
|
+
add?: string;
|
|
6
|
+
edit?: string;
|
|
7
|
+
};
|
|
8
|
+
icons?: {
|
|
9
|
+
add: string;
|
|
10
|
+
edit: string;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface Language {
|
|
2
|
+
isoName: string;
|
|
3
|
+
}
|
|
4
|
+
import type { Ref } from 'vue';
|
|
5
|
+
export declare const lang: Ref<{
|
|
6
|
+
isoName: string;
|
|
7
|
+
}, Language | {
|
|
8
|
+
isoName: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const defineLang: (lang: Language) => Language;
|
|
11
|
+
export declare const useLang: () => Ref<Language>;
|
|
12
|
+
export declare const loadLang: (isoName: string) => Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simsustech/quasar-components",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.11",
|
|
4
4
|
"author": "Stefan van Herwijnen",
|
|
5
5
|
"description": "High level components for Quasar Framework",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
"import": "./dist/form.js",
|
|
33
33
|
"src": "./src/ui/form/index.ts"
|
|
34
34
|
},
|
|
35
|
+
"./md3": {
|
|
36
|
+
"types": "./dist/types/ui/md3/index.d.ts",
|
|
37
|
+
"import": "./dist/md3.js",
|
|
38
|
+
"src": "./src/ui/md3/index.ts"
|
|
39
|
+
},
|
|
35
40
|
"./css": {
|
|
36
41
|
"import": "./dist/quasar-components.css"
|
|
37
42
|
},
|
|
@@ -46,37 +51,39 @@
|
|
|
46
51
|
},
|
|
47
52
|
"bugs": "https://github.com/simsusech/quasar-components/issues",
|
|
48
53
|
"dependencies": {
|
|
54
|
+
"@vueuse/core": "^13.1.0",
|
|
49
55
|
"validator": "^13.15.0"
|
|
50
56
|
},
|
|
51
57
|
"peerDependencies": {
|
|
52
58
|
"quasar": "^2.18.1"
|
|
53
59
|
},
|
|
54
60
|
"devDependencies": {
|
|
55
|
-
"@
|
|
56
|
-
"@types/
|
|
61
|
+
"@iconify-json/flagpack": "^1.2.2",
|
|
62
|
+
"@types/node": "^22.15.3",
|
|
63
|
+
"@types/validator": "^13.15.0",
|
|
57
64
|
"@types/ws": "^8.18.1",
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
59
|
-
"@typescript-eslint/parser": "^8.
|
|
65
|
+
"@typescript-eslint/eslint-plugin": "^8.31.1",
|
|
66
|
+
"@typescript-eslint/parser": "^8.31.1",
|
|
60
67
|
"@vitejs/plugin-vue": "^5.2.3",
|
|
61
68
|
"@vue/server-renderer": "^3.5.13",
|
|
62
|
-
"eslint": "^9.
|
|
63
|
-
"eslint-config-prettier": "^10.1.
|
|
69
|
+
"eslint": "^9.25.1",
|
|
70
|
+
"eslint-config-prettier": "^10.1.2",
|
|
64
71
|
"eslint-plugin-prettier": "^5.2.6",
|
|
65
72
|
"eslint-plugin-prettier-vue": "^5.0.0",
|
|
66
|
-
"eslint-plugin-vue": "^10.
|
|
67
|
-
"glob": "^11.0.
|
|
73
|
+
"eslint-plugin-vue": "^10.1.0",
|
|
74
|
+
"glob": "^11.0.2",
|
|
68
75
|
"local-pkg": "^1.1.1",
|
|
69
76
|
"prettier": "^3.5.3",
|
|
70
77
|
"quasar": "^2.18.1",
|
|
71
78
|
"rimraf": "^6.0.1",
|
|
72
79
|
"typescript": "5.8.3",
|
|
73
|
-
"typescript-eslint": "^8.
|
|
74
|
-
"unplugin-vue-components": "^28.
|
|
75
|
-
"vite": "^6.
|
|
80
|
+
"typescript-eslint": "^8.31.1",
|
|
81
|
+
"unplugin-vue-components": "^28.5.0",
|
|
82
|
+
"vite": "^6.3.4",
|
|
76
83
|
"vue": "^3.5.13",
|
|
77
84
|
"vue-eslint-parser": "^10.1.3",
|
|
78
|
-
"vue-router": "^4.5.
|
|
79
|
-
"vue-tsc": "^2.2.
|
|
85
|
+
"vue-router": "^4.5.1",
|
|
86
|
+
"vue-tsc": "^2.2.10"
|
|
80
87
|
},
|
|
81
88
|
"scripts": {
|
|
82
89
|
"build:plugin": "vite build",
|
|
@@ -17,17 +17,17 @@
|
|
|
17
17
|
</q-tr>
|
|
18
18
|
</template>
|
|
19
19
|
<template #top-right>
|
|
20
|
-
<q-btn icon="
|
|
20
|
+
<q-btn :icon="searchIcon" flat>
|
|
21
21
|
<q-menu>
|
|
22
22
|
<div class="q-pa-sm">
|
|
23
23
|
<q-input v-model="name" :label="lang.account.fields.name">
|
|
24
24
|
<template #append>
|
|
25
25
|
<q-icon
|
|
26
26
|
v-if="name"
|
|
27
|
-
name="cancel"
|
|
28
|
-
@click="name = ''"
|
|
29
27
|
class="q-field__focusable-action"
|
|
30
28
|
role="button"
|
|
29
|
+
:name="cancelIcon"
|
|
30
|
+
@click="name = ''"
|
|
31
31
|
/>
|
|
32
32
|
</template>
|
|
33
33
|
</q-input>
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
<template #append>
|
|
36
36
|
<q-icon
|
|
37
37
|
v-if="email"
|
|
38
|
-
name="cancel"
|
|
39
|
-
@click="email = ''"
|
|
40
38
|
class="q-field__focusable-action"
|
|
41
39
|
role="button"
|
|
40
|
+
:name="cancelIcon"
|
|
41
|
+
@click="email = ''"
|
|
42
42
|
/>
|
|
43
43
|
</template>
|
|
44
44
|
</q-input>
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
<template #append>
|
|
56
56
|
<q-icon
|
|
57
57
|
v-if="roles.length"
|
|
58
|
-
name="cancel"
|
|
59
|
-
@click="roles = []"
|
|
60
58
|
class="q-field__focusable-action"
|
|
61
59
|
role="button"
|
|
60
|
+
:name="cancelIcon"
|
|
61
|
+
@click="roles = []"
|
|
62
62
|
/>
|
|
63
63
|
</template>
|
|
64
64
|
</q-select>
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
{{ col.value }}
|
|
73
73
|
</q-td>
|
|
74
74
|
<q-td auto-width>
|
|
75
|
-
<q-btn size="sm" round flat icon="
|
|
75
|
+
<q-btn size="sm" round flat :icon="moreVertIcon">
|
|
76
76
|
<q-menu>
|
|
77
77
|
<q-list>
|
|
78
78
|
<q-item clickable @click="openAddRoleDialog(props.row)">
|
|
@@ -127,6 +127,11 @@ const props = defineProps<{
|
|
|
127
127
|
pagination: Pagination
|
|
128
128
|
mappedRoles: Record<string, string> // value: label
|
|
129
129
|
columns?: QTableColumn[]
|
|
130
|
+
icons?: {
|
|
131
|
+
search: string
|
|
132
|
+
cancel: string
|
|
133
|
+
moreVert: string
|
|
134
|
+
}
|
|
130
135
|
}>()
|
|
131
136
|
|
|
132
137
|
const emit = defineEmits<{
|
|
@@ -136,7 +141,7 @@ const emit = defineEmits<{
|
|
|
136
141
|
(e: 'removeRole', { id, role }: { id: number; role: string }): void
|
|
137
142
|
}>()
|
|
138
143
|
|
|
139
|
-
const { modelValue, count, mappedRoles, columns } = toRefs(props)
|
|
144
|
+
const { modelValue, count, mappedRoles, columns, icons } = toRefs(props)
|
|
140
145
|
|
|
141
146
|
// const { useQuery } = await createUseTrpc()
|
|
142
147
|
const lang = useLang()
|
|
@@ -275,4 +280,8 @@ const openRemoveRoleDialog = (account: Account) => {
|
|
|
275
280
|
emit('removeRole', { id: account.id, role })
|
|
276
281
|
})
|
|
277
282
|
}
|
|
283
|
+
|
|
284
|
+
const searchIcon = icons.value?.search ?? 'search'
|
|
285
|
+
const cancelIcon = icons.value?.cancel ?? 'cancel'
|
|
286
|
+
const moreVertIcon = icons.value?.moreVert ?? 'more_vert'
|
|
278
287
|
</script>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<q-list>
|
|
3
3
|
<q-item v-for="scope in scopes" :key="scope.name">
|
|
4
4
|
<q-item-section avatar>
|
|
5
|
-
<q-icon color="green" name="
|
|
5
|
+
<q-icon color="green" :name="checkIcon" />
|
|
6
6
|
</q-item-section>
|
|
7
7
|
<q-item-section>
|
|
8
8
|
{{ scope.name }}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</q-item>
|
|
11
11
|
<q-item v-for="claim in claims" :key="claim.name">
|
|
12
12
|
<q-item-section avatar>
|
|
13
|
-
<q-icon color="green" name="
|
|
13
|
+
<q-icon color="green" :name="checkIcon" />
|
|
14
14
|
</q-item-section>
|
|
15
15
|
<q-item-section>
|
|
16
16
|
{{ claim.name }}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</q-item>
|
|
19
19
|
<q-item v-for="resourceScope in resourceScopes" :key="resourceScope.name">
|
|
20
20
|
<q-item-section avatar>
|
|
21
|
-
<q-icon color="green" name="
|
|
21
|
+
<q-icon color="green" :name="checkIcon" />
|
|
22
22
|
</q-item-section>
|
|
23
23
|
<q-item-section>
|
|
24
24
|
{{ resourceScope.name }}
|
|
@@ -34,7 +34,7 @@ export default {
|
|
|
34
34
|
</script>
|
|
35
35
|
|
|
36
36
|
<script setup lang="ts">
|
|
37
|
-
import { computed, ref, watch } from 'vue'
|
|
37
|
+
import { computed, ref, toRefs, watch } from 'vue'
|
|
38
38
|
import { useQuasar } from 'quasar'
|
|
39
39
|
import { useLang, loadLang } from './lang'
|
|
40
40
|
|
|
@@ -48,21 +48,14 @@ export interface Props {
|
|
|
48
48
|
resourceScopes?: {
|
|
49
49
|
name: string
|
|
50
50
|
}[]
|
|
51
|
+
icons?: {
|
|
52
|
+
check: string
|
|
53
|
+
}
|
|
51
54
|
}
|
|
52
|
-
defineProps<Props>()
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
// e: "asyncEmit",
|
|
57
|
-
// {
|
|
58
|
-
// value,
|
|
59
|
-
// done,
|
|
60
|
-
// }: {
|
|
61
|
-
// value: string;
|
|
62
|
-
// done: () => void;
|
|
63
|
-
// }
|
|
64
|
-
// ): void;
|
|
65
|
-
// }>();
|
|
55
|
+
const props = defineProps<Props>()
|
|
56
|
+
|
|
57
|
+
const { icons } = toRefs(props)
|
|
58
|
+
|
|
66
59
|
const $q = useQuasar()
|
|
67
60
|
const lang = useLang()
|
|
68
61
|
if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName)
|
|
@@ -74,6 +67,8 @@ const message = computed(() => lang.value.consent.message)
|
|
|
74
67
|
const allow = computed(() => lang.value.consent.allow)
|
|
75
68
|
const deny = computed(() => lang.value.consent.deny)
|
|
76
69
|
|
|
70
|
+
const checkIcon = icons.value?.check ?? 'check'
|
|
71
|
+
|
|
77
72
|
const variables = ref({
|
|
78
73
|
message,
|
|
79
74
|
allow,
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
>
|
|
45
45
|
<template #append>
|
|
46
46
|
<q-icon
|
|
47
|
-
:name="showPassword ?
|
|
47
|
+
:name="showPassword ? visibilityIcon : visibilityOffIcon"
|
|
48
48
|
class="cursor-pointer"
|
|
49
49
|
@click="showPassword = !showPassword"
|
|
50
50
|
/>
|
|
@@ -69,7 +69,7 @@ export default {
|
|
|
69
69
|
</script>
|
|
70
70
|
|
|
71
71
|
<script setup lang="ts">
|
|
72
|
-
import { ref, computed, watch } from 'vue'
|
|
72
|
+
import { ref, computed, watch, toRefs } from 'vue'
|
|
73
73
|
import { useQuasar, QFormProps, QForm, QInputProps } from 'quasar'
|
|
74
74
|
import { useLang, loadLang } from './lang'
|
|
75
75
|
import isEmail from 'validator/es/lib/isEmail'
|
|
@@ -92,8 +92,14 @@ export interface Props {
|
|
|
92
92
|
| 'autofocus'
|
|
93
93
|
| ('label' & { style?: Partial<CSSStyleDeclaration> })
|
|
94
94
|
>
|
|
95
|
+
icons?: {
|
|
96
|
+
visibility: string
|
|
97
|
+
visibilifyOff: string
|
|
98
|
+
}
|
|
95
99
|
}
|
|
96
|
-
defineProps<Props>()
|
|
100
|
+
const props = defineProps<Props>()
|
|
101
|
+
const { icons } = toRefs(props)
|
|
102
|
+
|
|
97
103
|
// const attrs = useAttrs();
|
|
98
104
|
const emit = defineEmits<{
|
|
99
105
|
(
|
|
@@ -154,6 +160,9 @@ const submit: InstanceType<typeof QSubmitButton>['$props']['onSubmit'] = (
|
|
|
154
160
|
})
|
|
155
161
|
}
|
|
156
162
|
|
|
163
|
+
const visibilityIcon = icons.value?.visibility ?? 'visibility'
|
|
164
|
+
const visibilityOffIcon = icons.value?.visibilifyOff ?? 'visibility_off'
|
|
165
|
+
|
|
157
166
|
const variables = ref({
|
|
158
167
|
header,
|
|
159
168
|
createAccount,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<q-submit-button>
|
|
3
|
+
<slot name="icon" />
|
|
4
|
+
{{ lang.logout.logout }}
|
|
5
|
+
</q-submit-button>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script lang="ts">
|
|
9
|
+
export default {
|
|
10
|
+
name: 'LogoutButton'
|
|
11
|
+
}
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<script setup lang="ts">
|
|
15
|
+
import { watch } from 'vue'
|
|
16
|
+
import { useQuasar } from 'quasar'
|
|
17
|
+
import { useLang, loadLang } from './lang/index.js'
|
|
18
|
+
import QSubmitButton from '../general/QSubmitButton.vue'
|
|
19
|
+
|
|
20
|
+
export interface Props {
|
|
21
|
+
withNetwork?: string
|
|
22
|
+
}
|
|
23
|
+
defineProps<Props>()
|
|
24
|
+
|
|
25
|
+
const $q = useQuasar()
|
|
26
|
+
const lang = useLang()
|
|
27
|
+
if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName)
|
|
28
|
+
watch($q.lang, (val) => {
|
|
29
|
+
loadLang($q.lang.isoName)
|
|
30
|
+
})
|
|
31
|
+
</script>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
{{ lang.logout.confirmation }}
|
|
3
|
+
<q-form
|
|
4
|
+
ref="formRef"
|
|
5
|
+
data-allow-mismatch="props"
|
|
6
|
+
class="q-gutter-md"
|
|
7
|
+
v-bind="form"
|
|
8
|
+
method="post"
|
|
9
|
+
:action="action"
|
|
10
|
+
>
|
|
11
|
+
<input type="hidden" name="xsrf" :value="xsrfSecret" />
|
|
12
|
+
<slot name="default" />
|
|
13
|
+
</q-form>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script lang="ts">
|
|
17
|
+
export default {
|
|
18
|
+
name: 'LoginForm'
|
|
19
|
+
}
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<script setup lang="ts">
|
|
23
|
+
import { ref, watch } from 'vue'
|
|
24
|
+
import { useQuasar, QFormProps, QForm } from 'quasar'
|
|
25
|
+
import { useLang, loadLang } from './lang'
|
|
26
|
+
|
|
27
|
+
export interface Props {
|
|
28
|
+
form?: QFormProps & Partial<HTMLFormElement> & Partial<HTMLDivElement>
|
|
29
|
+
action: string
|
|
30
|
+
xsrfSecret: string
|
|
31
|
+
}
|
|
32
|
+
defineProps<Props>()
|
|
33
|
+
|
|
34
|
+
const $q = useQuasar()
|
|
35
|
+
const lang = useLang()
|
|
36
|
+
if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName)
|
|
37
|
+
watch($q.lang, (val) => {
|
|
38
|
+
loadLang($q.lang.isoName)
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
const formRef = ref<QForm>()
|
|
42
|
+
|
|
43
|
+
const variables = ref({})
|
|
44
|
+
const functions = ref({})
|
|
45
|
+
defineExpose({
|
|
46
|
+
variables,
|
|
47
|
+
functions
|
|
48
|
+
})
|
|
49
|
+
</script>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
>
|
|
20
20
|
<template #append>
|
|
21
21
|
<q-icon
|
|
22
|
-
:name="showPassword ?
|
|
22
|
+
:name="showPassword ? icons.visibility : icons.visibilityOff"
|
|
23
23
|
class="cursor-pointer"
|
|
24
24
|
@click="showPassword = !showPassword"
|
|
25
25
|
/>
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
>
|
|
39
39
|
<template #append>
|
|
40
40
|
<q-icon
|
|
41
|
-
:name="showRepeatPassword ?
|
|
41
|
+
:name="showRepeatPassword ? icons.visibility : icons.visibilityOff"
|
|
42
42
|
class="cursor-pointer"
|
|
43
43
|
@click="showRepeatPassword = !showRepeatPassword"
|
|
44
44
|
/>
|
|
@@ -79,11 +79,19 @@ export interface Props {
|
|
|
79
79
|
| 'autofocus'
|
|
80
80
|
| ('label' & { style?: Partial<CSSStyleDeclaration> })
|
|
81
81
|
>
|
|
82
|
+
icons?: {
|
|
83
|
+
visibility: string
|
|
84
|
+
visibilityOff: string
|
|
85
|
+
}
|
|
82
86
|
}
|
|
83
87
|
const props = withDefaults(defineProps<Props>(), {
|
|
84
88
|
minimumPasswordLength: 8,
|
|
85
89
|
form: undefined,
|
|
86
|
-
input: undefined
|
|
90
|
+
input: undefined,
|
|
91
|
+
icons: () => ({
|
|
92
|
+
visibility: 'visibility',
|
|
93
|
+
visibilityOff: 'visibility_off'
|
|
94
|
+
})
|
|
87
95
|
})
|
|
88
96
|
// const attrs = useAttrs();
|
|
89
97
|
const emit = defineEmits<{
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
>
|
|
51
51
|
<template #append>
|
|
52
52
|
<q-icon
|
|
53
|
-
:name="showPassword ?
|
|
53
|
+
:name="showPassword ? icons.visibility : icons.visibilityOff"
|
|
54
54
|
class="cursor-pointer"
|
|
55
55
|
@click="showPassword = !showPassword"
|
|
56
56
|
/>
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
>
|
|
69
69
|
<template #append>
|
|
70
70
|
<q-icon
|
|
71
|
-
:name="showPassword ?
|
|
71
|
+
:name="showPassword ? icons.visibility : icons.visibilityOff"
|
|
72
72
|
class="cursor-pointer"
|
|
73
73
|
@click="showPassword = !showPassword"
|
|
74
74
|
/>
|
|
@@ -115,12 +115,20 @@ export interface Props {
|
|
|
115
115
|
| 'autofocus'
|
|
116
116
|
| ('label' & { style?: Partial<CSSStyleDeclaration> })
|
|
117
117
|
>
|
|
118
|
+
icons?: {
|
|
119
|
+
visibility: string
|
|
120
|
+
visibilityOff: string
|
|
121
|
+
}
|
|
118
122
|
}
|
|
119
123
|
const props = withDefaults(defineProps<Props>(), {
|
|
120
124
|
minimumPasswordLength: 8,
|
|
121
125
|
extraFields: undefined,
|
|
122
126
|
form: undefined,
|
|
123
|
-
input: undefined
|
|
127
|
+
input: undefined,
|
|
128
|
+
icons: () => ({
|
|
129
|
+
visibility: 'visibility',
|
|
130
|
+
visibilityOff: 'visibility_off'
|
|
131
|
+
})
|
|
124
132
|
})
|
|
125
133
|
// const attrs = useAttrs();
|
|
126
134
|
const emit = defineEmits<{
|