@stephenchenorg/astro 8.4.1 → 8.6.0
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/company-setting/index.d.ts +2 -2
- package/dist/form-validator/index.d.ts +15 -13
- package/dist/form-validator/index.js +20 -2
- package/dist/page/index.d.ts +3 -3
- package/dist/pagination-vue-client-side/index.d.ts +7 -7
- package/dist/pagination-vue-server-side/index.d.ts +11 -11
- package/package.json +8 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as graphql0 from "graphql";
|
|
2
2
|
|
|
3
3
|
//#region src/company-setting/types.d.ts
|
|
4
4
|
interface DataCompanySetting {
|
|
@@ -42,6 +42,6 @@ declare function createCompanySetting(companySetting: Partial<CompanySetting>):
|
|
|
42
42
|
};
|
|
43
43
|
//#endregion
|
|
44
44
|
//#region src/company-setting/fragments.d.ts
|
|
45
|
-
declare const companySettingFields:
|
|
45
|
+
declare const companySettingFields: graphql0.DocumentNode;
|
|
46
46
|
//#endregion
|
|
47
47
|
export { CompanySetting, DataCompanySetting, companySettingFields, createCompanySetting };
|
|
@@ -9,19 +9,6 @@ interface FormRule<T = any> {
|
|
|
9
9
|
when?: (value: T, form: Record<string, any>) => boolean;
|
|
10
10
|
}
|
|
11
11
|
//#endregion
|
|
12
|
-
//#region src/form-validator/FormValidator.d.ts
|
|
13
|
-
declare class FormValidator {
|
|
14
|
-
rules: Record<string, FormRule[]>;
|
|
15
|
-
errors: FormErrors;
|
|
16
|
-
errorsUpdatedCallbacks: ((errors: FormErrors) => void)[];
|
|
17
|
-
validate(data: Record<string, any>): boolean;
|
|
18
|
-
prependRules(field: string, rules: FormRule | FormRule[]): void;
|
|
19
|
-
appendRules(field: string, rules: FormRule | FormRule[]): void;
|
|
20
|
-
setErrors(errors: FormErrors): void;
|
|
21
|
-
resetErrors(): void;
|
|
22
|
-
onErrorsUpdated(callback: (errors: FormErrors) => void): void;
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
12
|
//#region src/form-validator/components/FormField.d.ts
|
|
26
13
|
declare const FormField: vue15.DefineComponent<vue15.ExtractPropTypes<{
|
|
27
14
|
id: {
|
|
@@ -51,6 +38,20 @@ declare const FormField: vue15.DefineComponent<vue15.ExtractPropTypes<{
|
|
|
51
38
|
};
|
|
52
39
|
}>, {}, {}, string, vue15.ComponentProvideOptions, true, {}, any>;
|
|
53
40
|
//#endregion
|
|
41
|
+
//#region src/form-validator/FormValidator.d.ts
|
|
42
|
+
declare class FormValidator {
|
|
43
|
+
rules: Record<string, FormRule[]>;
|
|
44
|
+
errors: FormErrors;
|
|
45
|
+
errorsUpdatedCallbacks: ((errors: FormErrors) => void)[];
|
|
46
|
+
validate(data: Record<string, any>): boolean;
|
|
47
|
+
prependRules(field: string, rules: FormRule | FormRule[]): void;
|
|
48
|
+
appendRules(field: string, rules: FormRule | FormRule[]): void;
|
|
49
|
+
removeRules(field: string): void;
|
|
50
|
+
setErrors(errors: FormErrors): void;
|
|
51
|
+
resetErrors(): void;
|
|
52
|
+
onErrorsUpdated(callback: (errors: FormErrors) => void): void;
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
54
55
|
//#region src/form-validator/components/FormValidatorProvider.d.ts
|
|
55
56
|
interface FormValidatorProviderExposed {
|
|
56
57
|
formValidator: () => FormValidator;
|
|
@@ -72,6 +73,7 @@ declare const FormValidatorProvider: vue15.DefineComponent<vue15.ExtractPropType
|
|
|
72
73
|
}, SlotsType<{
|
|
73
74
|
default: {
|
|
74
75
|
errors: FormErrors;
|
|
76
|
+
hasErrors: boolean;
|
|
75
77
|
};
|
|
76
78
|
}>, {}, {}, string, vue15.ComponentProvideOptions, true, {}, any>;
|
|
77
79
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, inject, onMounted, provide, ref, toRaw, watch } from "vue";
|
|
1
|
+
import { defineComponent, inject, onBeforeUnmount, onMounted, provide, ref, shallowRef, toRaw, watch } from "vue";
|
|
2
2
|
|
|
3
3
|
//#region src/form-validator/injectionKey.ts
|
|
4
4
|
const formValidatorInjectionKey = Symbol("");
|
|
@@ -33,6 +33,12 @@ const FormField = defineComponent({
|
|
|
33
33
|
formValidator.onErrorsUpdated((errors) => {
|
|
34
34
|
error.value = errors[props.id]?.[0] || null;
|
|
35
35
|
});
|
|
36
|
+
onBeforeUnmount(() => {
|
|
37
|
+
formValidator.removeRules(props.id);
|
|
38
|
+
const currentErrors = { ...formValidator.errors };
|
|
39
|
+
delete currentErrors[props.id];
|
|
40
|
+
formValidator.setErrors(currentErrors);
|
|
41
|
+
});
|
|
36
42
|
return () => slots.default?.({ error: error.value });
|
|
37
43
|
}
|
|
38
44
|
});
|
|
@@ -71,6 +77,9 @@ var FormValidator = class {
|
|
|
71
77
|
if (!this.rules[field]) this.rules[field] = [];
|
|
72
78
|
this.rules[field].push(...Array.isArray(rules) ? rules : [rules]);
|
|
73
79
|
}
|
|
80
|
+
removeRules(field) {
|
|
81
|
+
delete this.rules[field];
|
|
82
|
+
}
|
|
74
83
|
setErrors(errors) {
|
|
75
84
|
this.errors = structuredClone(toRaw(errors));
|
|
76
85
|
this.errorsUpdatedCallbacks.forEach((callback) => callback(this.errors));
|
|
@@ -94,7 +103,13 @@ const FormValidatorProvider = defineComponent({
|
|
|
94
103
|
slots: Object,
|
|
95
104
|
setup(props, { slots, expose }) {
|
|
96
105
|
const formValidator = new FormValidator();
|
|
106
|
+
const errors = shallowRef({});
|
|
107
|
+
const hasErrors = ref(false);
|
|
97
108
|
provide(formValidatorInjectionKey, formValidator);
|
|
109
|
+
formValidator.onErrorsUpdated((_errors) => {
|
|
110
|
+
hasErrors.value = Object.keys(_errors).length > 0;
|
|
111
|
+
errors.value = structuredClone(_errors);
|
|
112
|
+
});
|
|
98
113
|
onMounted(() => {
|
|
99
114
|
formValidator.setErrors(props.errors);
|
|
100
115
|
});
|
|
@@ -102,7 +117,10 @@ const FormValidatorProvider = defineComponent({
|
|
|
102
117
|
formValidator.setErrors(props.errors);
|
|
103
118
|
}, { deep: true });
|
|
104
119
|
expose({ formValidator: () => formValidator });
|
|
105
|
-
return () => slots.default?.({
|
|
120
|
+
return () => slots.default?.({
|
|
121
|
+
errors: errors.value,
|
|
122
|
+
hasErrors: hasErrors.value
|
|
123
|
+
});
|
|
106
124
|
}
|
|
107
125
|
});
|
|
108
126
|
var FormValidatorProvider_default = FormValidatorProvider;
|
package/dist/page/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as graphql4 from "graphql";
|
|
2
2
|
|
|
3
3
|
//#region src/page/field/fragments.d.ts
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ import * as graphql3 from "graphql";
|
|
|
6
6
|
* Page fields fragment requires explicit import image
|
|
7
7
|
* fields fragment `imageFields` from Image module.
|
|
8
8
|
*/
|
|
9
|
-
declare const pageFields:
|
|
9
|
+
declare const pageFields: graphql4.DocumentNode;
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/page/types.d.ts
|
|
12
12
|
interface DataPage {
|
|
@@ -88,7 +88,7 @@ declare function pageTextField(fields: PageField[], key: string): string | null;
|
|
|
88
88
|
declare function pageImageFieldForBackground(fields: PageField[], key: string): string;
|
|
89
89
|
//#endregion
|
|
90
90
|
//#region src/page/seo-meta/fragments.d.ts
|
|
91
|
-
declare const seoMetaFields: (dummyClass: string) =>
|
|
91
|
+
declare const seoMetaFields: (dummyClass: string) => graphql4.DocumentNode;
|
|
92
92
|
//#endregion
|
|
93
93
|
//#region src/page/seo-meta/helpers.d.ts
|
|
94
94
|
type UseSeoMetaOptions = Partial<Omit<PageMeta, 'title'>> & {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as vue9 from "vue";
|
|
2
2
|
import { MaybeRefOrGetter } from "vue";
|
|
3
3
|
|
|
4
4
|
//#region src/pagination-vue-client-side/types.d.ts
|
|
@@ -16,12 +16,12 @@ declare function usePagination(options: {
|
|
|
16
16
|
visiblePages?: MaybeRefOrGetter<number | undefined>;
|
|
17
17
|
onChange?: (page: number) => void;
|
|
18
18
|
}): {
|
|
19
|
-
items:
|
|
20
|
-
showPagination:
|
|
21
|
-
canFirst:
|
|
22
|
-
canPrev:
|
|
23
|
-
canNext:
|
|
24
|
-
canLast:
|
|
19
|
+
items: vue9.ComputedRef<number[]>;
|
|
20
|
+
showPagination: vue9.ComputedRef<boolean>;
|
|
21
|
+
canFirst: vue9.ComputedRef<boolean>;
|
|
22
|
+
canPrev: vue9.ComputedRef<boolean>;
|
|
23
|
+
canNext: vue9.ComputedRef<boolean>;
|
|
24
|
+
canLast: vue9.ComputedRef<boolean>;
|
|
25
25
|
gotoFirst: () => void;
|
|
26
26
|
gotoPrev: () => void;
|
|
27
27
|
gotoNext: () => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as vue0 from "vue";
|
|
2
2
|
import { MaybeRefOrGetter } from "vue";
|
|
3
3
|
|
|
4
4
|
//#region src/pagination-vue-server-side/types.d.ts
|
|
@@ -16,16 +16,16 @@ declare function usePagination(options: {
|
|
|
16
16
|
perPage?: MaybeRefOrGetter<number | undefined>;
|
|
17
17
|
visiblePages?: MaybeRefOrGetter<number | undefined>;
|
|
18
18
|
}): {
|
|
19
|
-
items:
|
|
20
|
-
showPagination:
|
|
21
|
-
canFirst:
|
|
22
|
-
canPrev:
|
|
23
|
-
canNext:
|
|
24
|
-
canLast:
|
|
25
|
-
firstUrl:
|
|
26
|
-
prevUrl:
|
|
27
|
-
nextUrl:
|
|
28
|
-
lastUrl:
|
|
19
|
+
items: vue0.ComputedRef<number[]>;
|
|
20
|
+
showPagination: vue0.ComputedRef<boolean>;
|
|
21
|
+
canFirst: vue0.ComputedRef<boolean>;
|
|
22
|
+
canPrev: vue0.ComputedRef<boolean>;
|
|
23
|
+
canNext: vue0.ComputedRef<boolean>;
|
|
24
|
+
canLast: vue0.ComputedRef<boolean>;
|
|
25
|
+
firstUrl: vue0.ComputedRef<string>;
|
|
26
|
+
prevUrl: vue0.ComputedRef<string>;
|
|
27
|
+
nextUrl: vue0.ComputedRef<string>;
|
|
28
|
+
lastUrl: vue0.ComputedRef<string>;
|
|
29
29
|
getUrl: (page: number) => string;
|
|
30
30
|
};
|
|
31
31
|
//#endregion
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stephenchenorg/astro",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.6.0",
|
|
5
5
|
"description": "Stephenchenorg Astro 前端通用套件",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://stephenchenorg-astro.netlify.app",
|
|
@@ -98,21 +98,21 @@
|
|
|
98
98
|
"awesome-graphql-client": "^2.1.0",
|
|
99
99
|
"graphql": "^16.12.0",
|
|
100
100
|
"graphql-tag": "^2.12.6",
|
|
101
|
-
"nanostores": "^1.0
|
|
101
|
+
"nanostores": "^1.1.0",
|
|
102
102
|
"query-string": "^9.3.1"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
|
-
"@astrojs/check": "^0.9.
|
|
105
|
+
"@astrojs/check": "^0.9.6",
|
|
106
106
|
"@astrojs/vue": "^5.1.3",
|
|
107
107
|
"@ycs77/eslint-config": "^6.1.0",
|
|
108
|
-
"astro": "^5.
|
|
109
|
-
"bumpp": "^10.3.
|
|
108
|
+
"astro": "^5.16.4",
|
|
109
|
+
"bumpp": "^10.3.2",
|
|
110
110
|
"eslint": "^9.39.1",
|
|
111
111
|
"eslint-plugin-astro": "^1.5.0",
|
|
112
112
|
"eslint-plugin-astro-explicit-wrapper": "^1.0.5",
|
|
113
|
-
"tsdown": "^0.
|
|
113
|
+
"tsdown": "^0.17.2",
|
|
114
114
|
"typescript": "^5.9.3",
|
|
115
|
-
"vitest": "^4.0.
|
|
116
|
-
"vue": "^3.5.
|
|
115
|
+
"vitest": "^4.0.15",
|
|
116
|
+
"vue": "^3.5.25"
|
|
117
117
|
}
|
|
118
118
|
}
|