@funhub/platform 0.1.28 → 0.1.29
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/biz.d.mts +28 -10
- package/dist/biz.mjs +1 -1
- package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.d.mts +11 -11
- package/dist/components/biz/business/banner/variants/basic-banner/material.d.mts +1 -1
- package/dist/components/biz/business/banner-carousel/client.mjs +2 -0
- package/dist/components/biz/business/banner-carousel/default-props.mjs +2 -0
- package/dist/components/biz/business/banner-carousel/material.d.mts +22 -0
- package/dist/components/biz/business/banner-carousel/material.mjs +2 -0
- package/dist/components/biz/business/banner-carousel/schema.d.mts +23 -0
- package/dist/components/biz/business/banner-carousel/schema.mjs +2 -0
- package/dist/components/biz/business/banner-carousel/server.d.mts +18 -0
- package/dist/components/biz/business/banner-carousel/server.mjs +2 -0
- package/dist/components/biz/business/channel-list/channel-filter-dialog.mjs +1 -1
- package/dist/components/biz/business/channel-list/client.mjs +1 -1
- package/dist/components/biz/business/channel-list/material.d.mts +4 -2
- package/dist/components/biz/business/channel-list/schema.d.mts +9 -7
- package/dist/components/biz/business/channel-list/schema.mjs +1 -1
- package/dist/components/biz/business/detail/materials/registry.d.mts +34 -28
- package/dist/components/biz/business/detail/materials/video-detail-actions/client.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/index.d.mts +2 -2
- package/dist/components/biz/business/detail/materials/video-detail-actions/material.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/material.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/server.d.mts +10 -2
- package/dist/components/biz/business/detail/materials/video-detail-info/client.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/index.d.mts +2 -2
- package/dist/components/biz/business/detail/materials/video-detail-info/material.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/server.d.mts +10 -2
- package/dist/components/biz/business/detail/materials/video-detail-info-title/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/index.d.mts +2 -2
- package/dist/components/biz/business/detail/materials/video-detail-info-title/material.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/server.d.mts +10 -2
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/index.d.mts +2 -2
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/material.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/server.d.mts +10 -2
- package/dist/components/biz/business/detail/materials/video-detail-player/client.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/index.d.mts +2 -2
- package/dist/components/biz/business/detail/materials/video-detail-player/material.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/material.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/server.d.mts +10 -2
- package/dist/components/biz/business/detail/materials/video-detail-recommend/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-recommend/index.d.mts +2 -2
- package/dist/components/biz/business/detail/materials/video-detail-recommend/material.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-recommend/schema.d.mts +23 -23
- package/dist/components/biz/business/detail/materials/video-detail-recommend/server.d.mts +10 -2
- package/dist/components/biz/business/floating-ball/client.d.mts +1 -1
- package/dist/components/biz/business/floating-ball/material.d.mts +2 -1
- package/dist/components/biz/business/floating-ball/server.d.mts +11 -0
- package/dist/components/biz/business/header-search/header-avatar-icon/index.d.mts +2 -2
- package/dist/components/biz/business/header-search/header-avatar-icon/material.d.mts +2 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/material.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/server.d.mts +10 -2
- package/dist/components/biz/business/header-search/header-avatar-logo-search/index.d.mts +2 -2
- package/dist/components/biz/business/header-search/header-avatar-logo-search/material.d.mts +2 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/material.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/server.d.mts +10 -2
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/index.d.mts +2 -2
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.d.mts +2 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/server.d.mts +10 -2
- package/dist/components/biz/business/header-search/header-logo-search/index.d.mts +2 -2
- package/dist/components/biz/business/header-search/header-logo-search/material.d.mts +2 -1
- package/dist/components/biz/business/header-search/header-logo-search/material.mjs +1 -1
- package/dist/components/biz/business/header-search/header-logo-search/server.d.mts +10 -2
- package/dist/components/biz/business/header-search/header-search/index.d.mts +2 -2
- package/dist/components/biz/business/header-search/header-search/material.d.mts +2 -1
- package/dist/components/biz/business/header-search/header-search/material.mjs +1 -1
- package/dist/components/biz/business/header-search/header-search/server.d.mts +10 -2
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.d.mts +5 -5
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.d.mts +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/runtime/client.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/schema/component.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/inspector-schema.d.mts +5 -5
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.d.mts +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/runtime/client.mjs +1 -1
- package/dist/components/biz/business/index.d.mts +27 -8
- package/dist/components/biz/business/index.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/client.d.mts +1 -1
- package/dist/components/biz/business/large-feature-grid/material.d.mts +2 -1
- package/dist/components/biz/business/large-feature-grid/server.d.mts +11 -0
- package/dist/components/biz/business/marquee/index.d.mts +2 -2
- package/dist/components/biz/business/marquee/material.d.mts +2 -1
- package/dist/components/biz/business/marquee/material.mjs +1 -1
- package/dist/components/biz/business/marquee/schema.d.mts +14 -14
- package/dist/components/biz/business/profile/index.d.mts +21 -0
- package/dist/components/biz/business/profile/profile-header/client.d.mts +19 -0
- package/dist/components/biz/business/profile/profile-header/client.mjs +2 -0
- package/dist/components/biz/business/profile/profile-header/index.d.mts +5 -0
- package/dist/components/biz/business/profile/profile-header/material.d.mts +9 -1
- package/dist/components/biz/business/profile/profile-header/material.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/schema.d.mts +40 -0
- package/dist/components/biz/business/profile/profile-header/schema.mjs +2 -0
- package/dist/components/biz/business/profile/profile-header/server.d.mts +33 -0
- package/dist/components/{pages/profile/_components/user-profile-header → biz/business/profile/profile-header}/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +2 -0
- package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/client.d.mts +17 -0
- package/dist/components/biz/business/profile/profile-main/client.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/index.d.mts +16 -0
- package/dist/components/biz/business/profile/profile-main/material.d.mts +14 -1
- package/dist/components/biz/business/profile/profile-main/material.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/schema.d.mts +55 -0
- package/dist/components/biz/business/profile/profile-main/schema.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/server.d.mts +11 -0
- package/dist/components/biz/business/profile/profile-main/server.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/shell.d.mts +25 -0
- package/dist/components/biz/business/profile/profile-main/shell.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.d.mts +25 -0
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/index.d.mts +3 -0
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/server.d.mts +54 -0
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/server.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.d.mts +19 -0
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/index.d.mts +3 -0
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/server.d.mts +48 -0
- package/dist/components/{pages/profile/_components → biz/business/profile/profile-main}/tabs/history-tab/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/index.d.mts +13 -0
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.d.mts +76 -0
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/index.d.mts +3 -0
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/server.d.mts +39 -0
- package/dist/components/{pages/profile/_components → biz/business/profile/profile-main}/tabs/like-tab/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.d.mts +30 -0
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/index.d.mts +3 -0
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/server.d.mts +33 -0
- package/dist/components/{pages/profile/_components → biz/business/profile/profile-main}/tabs/publish-tab/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/utils.mjs +2 -0
- package/dist/components/biz/business/profile/profile-main/variants.d.mts +32 -0
- package/dist/components/biz/business/profile/profile-main/variants.mjs +2 -0
- package/dist/components/biz/business/search-history/client.d.mts +7 -7
- package/dist/components/biz/business/search-history/client.mjs +1 -1
- package/dist/components/biz/business/search-history/index.d.mts +4 -4
- package/dist/components/biz/business/search-history/material.d.mts +3 -2
- package/dist/components/biz/business/search-history/material.mjs +1 -1
- package/dist/components/biz/business/search-history/schema.d.mts +8 -8
- package/dist/components/biz/business/search-history/server.d.mts +4 -4
- package/dist/components/biz/business/search-history/server.mjs +1 -1
- package/dist/components/biz/business/search-input/client.d.mts +2 -2
- package/dist/components/biz/business/search-input/client.mjs +1 -1
- package/dist/components/biz/business/search-input/index.d.mts +2 -2
- package/dist/components/biz/business/search-input/material.d.mts +2 -1
- package/dist/components/biz/business/search-input/material.mjs +1 -1
- package/dist/components/biz/business/search-input/schema.d.mts +5 -5
- package/dist/components/biz/business/shortcut-grid/client.d.mts +1 -1
- package/dist/components/biz/business/shortcut-grid/material.d.mts +2 -1
- package/dist/components/biz/business/shortcut-grid/schema.d.mts +11 -11
- package/dist/components/biz/business/shortcut-grid/server.d.mts +11 -0
- package/dist/components/biz/business/tab-bar/index.d.mts +2 -2
- package/dist/components/biz/business/tab-bar/material.d.mts +2 -1
- package/dist/components/biz/business/tab-bar/material.mjs +1 -1
- package/dist/components/biz/business/tab-bar/schema.d.mts +9 -9
- package/dist/components/biz/business/text-recommend/client.d.mts +2 -2
- package/dist/components/biz/business/text-recommend/client.mjs +1 -1
- package/dist/components/biz/business/text-recommend/index.d.mts +2 -2
- package/dist/components/biz/business/text-recommend/material.d.mts +2 -1
- package/dist/components/biz/business/text-recommend/material.mjs +1 -1
- package/dist/components/biz/business/text-recommend/schema.d.mts +6 -6
- package/dist/components/biz/business/video-horizontal-list/client.d.mts +5 -14
- package/dist/components/biz/business/video-horizontal-list/client.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/index.d.mts +2 -2
- package/dist/components/biz/business/video-horizontal-list/material.d.mts +12 -2
- package/dist/components/biz/business/video-horizontal-list/material.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/schema.d.mts +21 -3
- package/dist/components/biz/business/video-horizontal-list/schema.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/server.d.mts +1 -1
- package/dist/components/biz/business/video-horizontal-list/server.mjs +1 -1
- package/dist/components/biz/example/button/index.d.mts +2 -2
- package/dist/components/biz/example/button/material.d.mts +2 -1
- package/dist/components/biz/example/button/schema.d.mts +14 -14
- package/dist/components/biz/renderer/renderer.d.mts +3 -3
- package/dist/components/biz/renderer/renderer.mjs +1 -1
- package/dist/components/pages/profile/page.mjs +1 -1
- package/dist/components/pages/search/page-client.mjs +1 -1
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/materials.d.mts +4 -4
- package/dist/materials.mjs +1 -1
- package/dist/utils/schema/inspector.d.mts +111 -111
- package/dist/utils/schema/material.d.mts +13 -11
- package/dist/utils/schema/schema.d.mts +26 -26
- package/dist/utils/schema/utils.d.mts +1 -1
- package/dist/utils.mjs +1 -1
- package/package.json +1 -1
- package/dist/assets/images/Frame.mjs +0 -2
- package/dist/components/pages/profile/_components/tabs/collect-tab/client.mjs +0 -2
- package/dist/components/pages/profile/_components/tabs/collect-tab/server.mjs +0 -2
- package/dist/components/pages/profile/_components/tabs/history-tab/client.mjs +0 -2
- package/dist/components/pages/profile/_components/tabs/like-tab/client.mjs +0 -2
- package/dist/components/pages/profile/_components/tabs/publish-tab/client.mjs +0 -2
- package/dist/components/pages/profile/_components/user-profile-header/client.mjs +0 -2
- package/dist/components/pages/profile/_components/user-profile-header/user-profile-avatar.mjs +0 -2
- package/dist/components/pages/profile/_components/user-profile-header/user-profile-cover-background.mjs +0 -2
- package/dist/components/pages/profile/_components/user-profile-main/server.mjs +0 -2
- package/dist/components/pages/profile/_components/user-profile-main/shell.mjs +0 -2
- package/dist/components/pages/profile/utils.mjs +0 -2
|
@@ -1,117 +1,117 @@
|
|
|
1
1
|
|
|
2
|
-
import z from "zod";
|
|
2
|
+
import z$1 from "zod";
|
|
3
3
|
|
|
4
4
|
//#region utils/schema/inspector.d.ts
|
|
5
5
|
type InspectorFieldOption<T> = Omit<T, 'type'>;
|
|
6
|
-
declare const textInspectorFieldSchema: z.ZodObject<{
|
|
7
|
-
type: z.ZodLiteral<"text">;
|
|
8
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
9
|
-
label: z.ZodString;
|
|
10
|
-
description: z.ZodOptional<z.ZodString>;
|
|
11
|
-
}, z.core.$strip>;
|
|
12
|
-
type TextInspectorFieldOption = InspectorFieldOption<z.infer<typeof textInspectorFieldSchema>>;
|
|
13
|
-
declare const textareaInspectorFieldSchema: z.ZodObject<{
|
|
14
|
-
type: z.ZodLiteral<"textarea">;
|
|
15
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
16
|
-
label: z.ZodString;
|
|
17
|
-
description: z.ZodOptional<z.ZodString>;
|
|
18
|
-
}, z.core.$strip>;
|
|
19
|
-
type TextareaInspectorFieldOption = InspectorFieldOption<z.infer<typeof textareaInspectorFieldSchema>>;
|
|
20
|
-
declare const numberInspectorFieldSchema: z.ZodObject<{
|
|
21
|
-
type: z.ZodLiteral<"number">;
|
|
22
|
-
defaultValue: z.ZodOptional<z.ZodNumber>;
|
|
23
|
-
label: z.ZodString;
|
|
24
|
-
description: z.ZodOptional<z.ZodString>;
|
|
25
|
-
}, z.core.$strip>;
|
|
26
|
-
type NumberInspectorFieldOption = InspectorFieldOption<z.infer<typeof numberInspectorFieldSchema>>;
|
|
27
|
-
declare const colorInspectorFieldSchema: z.ZodObject<{
|
|
28
|
-
type: z.ZodLiteral<"color">;
|
|
29
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
30
|
-
label: z.ZodString;
|
|
31
|
-
description: z.ZodOptional<z.ZodString>;
|
|
32
|
-
}, z.core.$strip>;
|
|
33
|
-
type ColorInspectorFieldOption = InspectorFieldOption<z.infer<typeof colorInspectorFieldSchema>>;
|
|
34
|
-
declare const selectInspectorFieldSchema: z.ZodObject<{
|
|
35
|
-
type: z.ZodLiteral<"select">;
|
|
36
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
37
|
-
label: z.ZodString;
|
|
38
|
-
description: z.ZodOptional<z.ZodString>;
|
|
39
|
-
}, z.core.$strip>;
|
|
40
|
-
type SelectInspectorFieldOption = InspectorFieldOption<z.infer<typeof selectInspectorFieldSchema>>;
|
|
41
|
-
declare const checkboxInspectorFieldSchema: z.ZodObject<{
|
|
42
|
-
type: z.ZodLiteral<"checkbox">;
|
|
43
|
-
defaultValue: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
-
label: z.ZodString;
|
|
45
|
-
description: z.ZodOptional<z.ZodString>;
|
|
46
|
-
}, z.core.$strip>;
|
|
47
|
-
type CheckboxInspectorFieldOption = InspectorFieldOption<z.infer<typeof checkboxInspectorFieldSchema>>;
|
|
48
|
-
declare const switchInspectorFieldSchema: z.ZodObject<{
|
|
49
|
-
type: z.ZodLiteral<"switch">;
|
|
50
|
-
defaultValue: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
-
label: z.ZodString;
|
|
52
|
-
description: z.ZodOptional<z.ZodString>;
|
|
53
|
-
}, z.core.$strip>;
|
|
54
|
-
type SwitchInspectorFieldOption = InspectorFieldOption<z.infer<typeof switchInspectorFieldSchema>>;
|
|
55
|
-
declare const arrayInspectorFieldSchema: z.ZodObject<{
|
|
56
|
-
type: z.ZodLiteral<"array">;
|
|
57
|
-
defaultValue: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
58
|
-
label: z.ZodString;
|
|
59
|
-
description: z.ZodOptional<z.ZodString>;
|
|
60
|
-
}, z.core.$strip>;
|
|
61
|
-
type ArrayInspectorFieldOption = InspectorFieldOption<z.infer<typeof arrayInspectorFieldSchema>>;
|
|
62
|
-
declare const objectInspectorFieldSchema: z.ZodObject<{
|
|
63
|
-
type: z.ZodLiteral<"object">;
|
|
64
|
-
defaultValue: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
65
|
-
label: z.ZodString;
|
|
66
|
-
description: z.ZodOptional<z.ZodString>;
|
|
67
|
-
}, z.core.$strip>;
|
|
68
|
-
type ObjectInspectorFieldOption = InspectorFieldOption<z.infer<typeof objectInspectorFieldSchema>>;
|
|
69
|
-
declare const componentInspectorFieldMetaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
70
|
-
type: z.ZodLiteral<"text">;
|
|
71
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
72
|
-
label: z.ZodString;
|
|
73
|
-
description: z.ZodOptional<z.ZodString>;
|
|
74
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
75
|
-
type: z.ZodLiteral<"textarea">;
|
|
76
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
77
|
-
label: z.ZodString;
|
|
78
|
-
description: z.ZodOptional<z.ZodString>;
|
|
79
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
80
|
-
type: z.ZodLiteral<"number">;
|
|
81
|
-
defaultValue: z.ZodOptional<z.ZodNumber>;
|
|
82
|
-
label: z.ZodString;
|
|
83
|
-
description: z.ZodOptional<z.ZodString>;
|
|
84
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
85
|
-
type: z.ZodLiteral<"color">;
|
|
86
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
87
|
-
label: z.ZodString;
|
|
88
|
-
description: z.ZodOptional<z.ZodString>;
|
|
89
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
90
|
-
type: z.ZodLiteral<"select">;
|
|
91
|
-
defaultValue: z.ZodOptional<z.ZodString>;
|
|
92
|
-
label: z.ZodString;
|
|
93
|
-
description: z.ZodOptional<z.ZodString>;
|
|
94
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
95
|
-
type: z.ZodLiteral<"checkbox">;
|
|
96
|
-
defaultValue: z.ZodOptional<z.ZodBoolean>;
|
|
97
|
-
label: z.ZodString;
|
|
98
|
-
description: z.ZodOptional<z.ZodString>;
|
|
99
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
100
|
-
type: z.ZodLiteral<"switch">;
|
|
101
|
-
defaultValue: z.ZodOptional<z.ZodBoolean>;
|
|
102
|
-
label: z.ZodString;
|
|
103
|
-
description: z.ZodOptional<z.ZodString>;
|
|
104
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
105
|
-
type: z.ZodLiteral<"array">;
|
|
106
|
-
defaultValue: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
107
|
-
label: z.ZodString;
|
|
108
|
-
description: z.ZodOptional<z.ZodString>;
|
|
109
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
110
|
-
type: z.ZodLiteral<"object">;
|
|
111
|
-
defaultValue: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
112
|
-
label: z.ZodString;
|
|
113
|
-
description: z.ZodOptional<z.ZodString>;
|
|
114
|
-
}, z.core.$strip>], "type">;
|
|
115
|
-
type ComponentInspectorFieldMeta = z.infer<typeof componentInspectorFieldMetaSchema>;
|
|
6
|
+
declare const textInspectorFieldSchema: z$1.ZodObject<{
|
|
7
|
+
type: z$1.ZodLiteral<"text">;
|
|
8
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
9
|
+
label: z$1.ZodString;
|
|
10
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
11
|
+
}, z$1.core.$strip>;
|
|
12
|
+
type TextInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof textInspectorFieldSchema>>;
|
|
13
|
+
declare const textareaInspectorFieldSchema: z$1.ZodObject<{
|
|
14
|
+
type: z$1.ZodLiteral<"textarea">;
|
|
15
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
16
|
+
label: z$1.ZodString;
|
|
17
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
18
|
+
}, z$1.core.$strip>;
|
|
19
|
+
type TextareaInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof textareaInspectorFieldSchema>>;
|
|
20
|
+
declare const numberInspectorFieldSchema: z$1.ZodObject<{
|
|
21
|
+
type: z$1.ZodLiteral<"number">;
|
|
22
|
+
defaultValue: z$1.ZodOptional<z$1.ZodNumber>;
|
|
23
|
+
label: z$1.ZodString;
|
|
24
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
25
|
+
}, z$1.core.$strip>;
|
|
26
|
+
type NumberInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof numberInspectorFieldSchema>>;
|
|
27
|
+
declare const colorInspectorFieldSchema: z$1.ZodObject<{
|
|
28
|
+
type: z$1.ZodLiteral<"color">;
|
|
29
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
30
|
+
label: z$1.ZodString;
|
|
31
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
32
|
+
}, z$1.core.$strip>;
|
|
33
|
+
type ColorInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof colorInspectorFieldSchema>>;
|
|
34
|
+
declare const selectInspectorFieldSchema: z$1.ZodObject<{
|
|
35
|
+
type: z$1.ZodLiteral<"select">;
|
|
36
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
37
|
+
label: z$1.ZodString;
|
|
38
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
39
|
+
}, z$1.core.$strip>;
|
|
40
|
+
type SelectInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof selectInspectorFieldSchema>>;
|
|
41
|
+
declare const checkboxInspectorFieldSchema: z$1.ZodObject<{
|
|
42
|
+
type: z$1.ZodLiteral<"checkbox">;
|
|
43
|
+
defaultValue: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
44
|
+
label: z$1.ZodString;
|
|
45
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
46
|
+
}, z$1.core.$strip>;
|
|
47
|
+
type CheckboxInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof checkboxInspectorFieldSchema>>;
|
|
48
|
+
declare const switchInspectorFieldSchema: z$1.ZodObject<{
|
|
49
|
+
type: z$1.ZodLiteral<"switch">;
|
|
50
|
+
defaultValue: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
51
|
+
label: z$1.ZodString;
|
|
52
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
53
|
+
}, z$1.core.$strip>;
|
|
54
|
+
type SwitchInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof switchInspectorFieldSchema>>;
|
|
55
|
+
declare const arrayInspectorFieldSchema: z$1.ZodObject<{
|
|
56
|
+
type: z$1.ZodLiteral<"array">;
|
|
57
|
+
defaultValue: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnknown>>;
|
|
58
|
+
label: z$1.ZodString;
|
|
59
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
60
|
+
}, z$1.core.$strip>;
|
|
61
|
+
type ArrayInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof arrayInspectorFieldSchema>>;
|
|
62
|
+
declare const objectInspectorFieldSchema: z$1.ZodObject<{
|
|
63
|
+
type: z$1.ZodLiteral<"object">;
|
|
64
|
+
defaultValue: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
|
|
65
|
+
label: z$1.ZodString;
|
|
66
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
67
|
+
}, z$1.core.$strip>;
|
|
68
|
+
type ObjectInspectorFieldOption = InspectorFieldOption<z$1.infer<typeof objectInspectorFieldSchema>>;
|
|
69
|
+
declare const componentInspectorFieldMetaSchema: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
70
|
+
type: z$1.ZodLiteral<"text">;
|
|
71
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
72
|
+
label: z$1.ZodString;
|
|
73
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
74
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
75
|
+
type: z$1.ZodLiteral<"textarea">;
|
|
76
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
77
|
+
label: z$1.ZodString;
|
|
78
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
79
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
80
|
+
type: z$1.ZodLiteral<"number">;
|
|
81
|
+
defaultValue: z$1.ZodOptional<z$1.ZodNumber>;
|
|
82
|
+
label: z$1.ZodString;
|
|
83
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
84
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
85
|
+
type: z$1.ZodLiteral<"color">;
|
|
86
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
87
|
+
label: z$1.ZodString;
|
|
88
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
89
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
90
|
+
type: z$1.ZodLiteral<"select">;
|
|
91
|
+
defaultValue: z$1.ZodOptional<z$1.ZodString>;
|
|
92
|
+
label: z$1.ZodString;
|
|
93
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
94
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
95
|
+
type: z$1.ZodLiteral<"checkbox">;
|
|
96
|
+
defaultValue: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
97
|
+
label: z$1.ZodString;
|
|
98
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
99
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
100
|
+
type: z$1.ZodLiteral<"switch">;
|
|
101
|
+
defaultValue: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
102
|
+
label: z$1.ZodString;
|
|
103
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
104
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
105
|
+
type: z$1.ZodLiteral<"array">;
|
|
106
|
+
defaultValue: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnknown>>;
|
|
107
|
+
label: z$1.ZodString;
|
|
108
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
109
|
+
}, z$1.core.$strip>, z$1.ZodObject<{
|
|
110
|
+
type: z$1.ZodLiteral<"object">;
|
|
111
|
+
defaultValue: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
|
|
112
|
+
label: z$1.ZodString;
|
|
113
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
114
|
+
}, z$1.core.$strip>], "type">;
|
|
115
|
+
type ComponentInspectorFieldMeta = z$1.infer<typeof componentInspectorFieldMetaSchema>;
|
|
116
116
|
//#endregion
|
|
117
117
|
export { ArrayInspectorFieldOption, CheckboxInspectorFieldOption, ColorInspectorFieldOption, ComponentInspectorFieldMeta, NumberInspectorFieldOption, ObjectInspectorFieldOption, SelectInspectorFieldOption, SwitchInspectorFieldOption, TextInspectorFieldOption, TextareaInspectorFieldOption };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { InferSchemaProps } from "./schema.mjs";
|
|
3
|
-
import z from "zod";
|
|
4
3
|
import { ComponentProps, ComponentType, ReactNode } from "react";
|
|
4
|
+
import z$1 from "zod";
|
|
5
5
|
|
|
6
6
|
//#region utils/schema/material.d.ts
|
|
7
7
|
/**
|
|
@@ -16,20 +16,22 @@ declare const MATERIAL_CATEGORY: {
|
|
|
16
16
|
readonly 大图宫格: "大图宫格";
|
|
17
17
|
readonly 顶部功能: "顶部功能";
|
|
18
18
|
readonly 行为组件: "行为组件";
|
|
19
|
+
readonly 视频模块: "视频模块";
|
|
20
|
+
readonly 频道: "频道";
|
|
19
21
|
};
|
|
20
|
-
type MaterialPropsSchema = z.ZodObject<z.ZodRawShape>;
|
|
22
|
+
type MaterialPropsSchema = z$1.ZodObject<z$1.ZodRawShape>;
|
|
21
23
|
type MaterialSchemaProps<TSchema extends MaterialPropsSchema> = InferSchemaProps<TSchema>;
|
|
22
24
|
type SchemaExtraKeys<TSchemaProps, TComponentProps> = Exclude<keyof TSchemaProps, keyof TComponentProps>;
|
|
23
25
|
type SchemaIncompatibleKeys<TSchemaProps, TComponentProps> = { [Key in keyof TSchemaProps]-?: Key extends keyof TComponentProps ? TSchemaProps[Key] extends TComponentProps[Key] ? never : Key : Key }[keyof TSchemaProps];
|
|
24
26
|
type EnsurePropsSchemaSubset<TComponent extends ComponentType<any>, TPropsSchema extends MaterialPropsSchema> = [SchemaExtraKeys<MaterialSchemaProps<TPropsSchema>, ComponentProps<TComponent>>] extends [never] ? [SchemaIncompatibleKeys<MaterialSchemaProps<TPropsSchema>, ComponentProps<TComponent>>] extends [never] ? TPropsSchema : never : never;
|
|
25
27
|
type EnsureComponentCompatibleWithSchema<TComponent extends ComponentType<any>, TPropsSchema extends MaterialPropsSchema> = EnsurePropsSchemaSubset<TComponent, TPropsSchema> extends never ? never : TComponent;
|
|
26
|
-
interface DefineMaterialOption<
|
|
28
|
+
interface DefineMaterialOption<TServerComponent extends ComponentType<any>, TClientComponent extends ComponentType<any>, TPropsSchema extends MaterialPropsSchema, TType extends string = string> {
|
|
27
29
|
type: TType;
|
|
28
30
|
name: string;
|
|
29
31
|
icon: ReactNode;
|
|
30
|
-
serverComponent:
|
|
31
|
-
clientComponent:
|
|
32
|
-
propsSchema: EnsurePropsSchemaSubset<
|
|
32
|
+
serverComponent: TServerComponent;
|
|
33
|
+
clientComponent: TClientComponent;
|
|
34
|
+
propsSchema: EnsurePropsSchemaSubset<TServerComponent | TClientComponent, TPropsSchema>;
|
|
33
35
|
category: typeof MATERIAL_CATEGORY[keyof typeof MATERIAL_CATEGORY];
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
@@ -37,10 +39,10 @@ interface DefineMaterialOption<TComponent extends ComponentType<any>, TPropsSche
|
|
|
37
39
|
* @param option 物料配置
|
|
38
40
|
* @returns 物料配置
|
|
39
41
|
*/
|
|
40
|
-
declare function defineMaterial<
|
|
41
|
-
interface OverwriteMaterialOption<
|
|
42
|
-
serverComponent?: EnsureComponentCompatibleWithSchema<
|
|
43
|
-
clientComponent?: EnsureComponentCompatibleWithSchema<
|
|
42
|
+
declare function defineMaterial<TServerComponent extends ComponentType<any>, TClientComponent extends ComponentType<any>, TPropsSchema extends MaterialPropsSchema, const TType extends string>(option: DefineMaterialOption<TServerComponent, TClientComponent, TPropsSchema, TType>): DefineMaterialOption<TServerComponent, TClientComponent, TPropsSchema, TType>;
|
|
43
|
+
interface OverwriteMaterialOption<TServerComponent extends ComponentType<any>, TClientComponent extends ComponentType<any>, TPropsSchema extends MaterialPropsSchema> {
|
|
44
|
+
serverComponent?: EnsureComponentCompatibleWithSchema<TServerComponent, TPropsSchema>;
|
|
45
|
+
clientComponent?: EnsureComponentCompatibleWithSchema<TClientComponent, TPropsSchema>;
|
|
44
46
|
}
|
|
45
47
|
/**
|
|
46
48
|
* 基于已有物料重写配置,当前支持重写server/client component。
|
|
@@ -48,6 +50,6 @@ interface OverwriteMaterialOption<TComponent extends ComponentType<any>, TPropsS
|
|
|
48
50
|
* @param option 重写配置
|
|
49
51
|
* @returns 重写后的物料配置
|
|
50
52
|
*/
|
|
51
|
-
declare function overwriteMaterial<
|
|
53
|
+
declare function overwriteMaterial<TRawServerComponent extends ComponentType<any>, TRawClientComponent extends ComponentType<any>, TPropsSchema extends MaterialPropsSchema, TType extends string, TServerComponent extends ComponentType<any> = TRawServerComponent, TClientComponent extends ComponentType<any> = TRawClientComponent>(rawMaterial: DefineMaterialOption<TRawServerComponent, TRawClientComponent, TPropsSchema, TType>, option?: OverwriteMaterialOption<TServerComponent, TClientComponent, TPropsSchema>): DefineMaterialOption<TServerComponent, TClientComponent, TPropsSchema, TType>;
|
|
52
54
|
//#endregion
|
|
53
55
|
export { DefineMaterialOption, defineMaterial, overwriteMaterial };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { ArrayInspectorFieldOption, CheckboxInspectorFieldOption, ColorInspectorFieldOption, ComponentInspectorFieldMeta, NumberInspectorFieldOption, ObjectInspectorFieldOption, SelectInspectorFieldOption, SwitchInspectorFieldOption, TextInspectorFieldOption, TextareaInspectorFieldOption } from "./inspector.mjs";
|
|
3
|
-
import z from "zod";
|
|
3
|
+
import z$1 from "zod";
|
|
4
4
|
|
|
5
5
|
//#region utils/schema/schema.d.ts
|
|
6
6
|
declare const INSPECTOR_META_KEY = "inspector";
|
|
@@ -13,42 +13,42 @@ type MaterialComponentProps<T = object> = {
|
|
|
13
13
|
* @param inspectorMeta
|
|
14
14
|
* @returns
|
|
15
15
|
*/
|
|
16
|
-
declare function withInspectorMeta<T extends z.ZodTypeAny>(schema: T, inspectorMeta: ComponentInspectorFieldMeta): T;
|
|
16
|
+
declare function withInspectorMeta<T extends z$1.ZodTypeAny>(schema: T, inspectorMeta: ComponentInspectorFieldMeta): T;
|
|
17
17
|
/**
|
|
18
18
|
* 定义组件props schema
|
|
19
19
|
* 使用defineXXXPropSchema定义defaultValue时,目前仅限于在第一层定义
|
|
20
20
|
* @param shape
|
|
21
21
|
* @returns
|
|
22
22
|
*/
|
|
23
|
-
declare function defineComponentPropsSchema<const TShape extends z.ZodRawShape>(shape: TShape): z.ZodObject<{ -readonly [P in keyof TShape]: TShape[P] }, z.core.$strip>;
|
|
23
|
+
declare function defineComponentPropsSchema<const TShape extends z$1.ZodRawShape>(shape: TShape): z$1.ZodObject<{ -readonly [P in keyof TShape]: TShape[P] }, z$1.core.$strip>;
|
|
24
24
|
interface SchemaHasDefaultValue {
|
|
25
25
|
readonly __schemaHasDefaultValueBrand: never;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* 推导 schema 的 props 类型,兼容空 schema 的 strict index signature。
|
|
29
29
|
*/
|
|
30
|
-
type InferSchemaProps<TSchema extends z.ZodTypeAny> = z.infer<TSchema> extends Record<string, never> ? {} : z.infer<TSchema>;
|
|
31
|
-
type SchemaByRequired<TSchema extends z.ZodTypeAny, TRequired extends boolean | undefined> = TRequired extends false ? z.ZodOptional<TSchema> : TSchema;
|
|
32
|
-
type MaybeSchemaWithDefaultValue<TSchema extends z.ZodTypeAny, TOption extends {
|
|
30
|
+
type InferSchemaProps<TSchema extends z$1.ZodTypeAny> = z$1.infer<TSchema> extends Record<string, never> ? {} : z$1.infer<TSchema>;
|
|
31
|
+
type SchemaByRequired<TSchema extends z$1.ZodTypeAny, TRequired extends boolean | undefined> = TRequired extends false ? z$1.ZodOptional<TSchema> : TSchema;
|
|
32
|
+
type MaybeSchemaWithDefaultValue<TSchema extends z$1.ZodTypeAny, TOption extends {
|
|
33
33
|
defaultValue?: unknown;
|
|
34
34
|
}> = TOption extends {
|
|
35
35
|
defaultValue: infer TDefaultValue;
|
|
36
36
|
} ? [TDefaultValue] extends [undefined] ? TSchema : TSchema & SchemaHasDefaultValue : TSchema;
|
|
37
37
|
declare function defineTextPropSchema<const TOption extends TextInspectorFieldOption & {
|
|
38
38
|
required?: boolean;
|
|
39
|
-
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodString, TOption['required']>, TOption>;
|
|
39
|
+
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodString, TOption['required']>, TOption>;
|
|
40
40
|
declare function defineTextareaPropSchema<const TOption extends TextareaInspectorFieldOption & {
|
|
41
41
|
required?: boolean;
|
|
42
|
-
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodString, TOption['required']>, TOption>;
|
|
42
|
+
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodString, TOption['required']>, TOption>;
|
|
43
43
|
declare function defineNumberPropSchema<const TOption extends NumberInspectorFieldOption & {
|
|
44
44
|
required?: boolean;
|
|
45
|
-
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodNumber, TOption['required']>, TOption>;
|
|
45
|
+
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodNumber, TOption['required']>, TOption>;
|
|
46
46
|
declare function defineColorPropSchema<const TOption extends ColorInspectorFieldOption & {
|
|
47
47
|
required?: boolean;
|
|
48
|
-
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodString, TOption['required']>, TOption>;
|
|
48
|
+
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodString, TOption['required']>, TOption>;
|
|
49
49
|
declare function defineSelectPropSchema<const TOption extends SelectInspectorFieldOption & {
|
|
50
50
|
required?: boolean;
|
|
51
|
-
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodString, TOption['required']>, TOption>;
|
|
51
|
+
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodString, TOption['required']>, TOption>;
|
|
52
52
|
type StringTuple = readonly [string, ...string[]];
|
|
53
53
|
type SelectEnumInspectorFieldOption<TValues extends StringTuple> = Omit<SelectInspectorFieldOption, 'defaultValue'> & {
|
|
54
54
|
defaultValue?: TValues[number];
|
|
@@ -61,27 +61,27 @@ type SelectEnumInspectorFieldOption<TValues extends StringTuple> = Omit<SelectIn
|
|
|
61
61
|
*/
|
|
62
62
|
declare function defineSelectEnumPropSchema<const TValues extends StringTuple, const TOption extends SelectEnumInspectorFieldOption<TValues> & {
|
|
63
63
|
required?: boolean;
|
|
64
|
-
}>(values: TValues, option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodType<TValues[number]>, TOption['required']>, TOption>;
|
|
64
|
+
}>(values: TValues, option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodType<TValues[number]>, TOption['required']>, TOption>;
|
|
65
65
|
declare function defineCheckboxPropSchema<const TOption extends CheckboxInspectorFieldOption & {
|
|
66
66
|
required?: boolean;
|
|
67
|
-
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodBoolean, TOption['required']>, TOption>;
|
|
67
|
+
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodBoolean, TOption['required']>, TOption>;
|
|
68
68
|
declare function defineSwitchPropSchema<const TOption extends SwitchInspectorFieldOption & {
|
|
69
69
|
required?: boolean;
|
|
70
|
-
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodBoolean, TOption['required']>, TOption>;
|
|
71
|
-
type SchemaShape<TSchema extends z.ZodObject<z.ZodRawShape>> = TSchema extends z.ZodObject<infer TShape> ? TShape : never;
|
|
72
|
-
type SchemaFieldDefaultValue<TFieldSchema> = TFieldSchema extends z.ZodTypeAny ? TFieldSchema extends SchemaHasDefaultValue ? Exclude<z.infer<TFieldSchema>, undefined> : never : never;
|
|
73
|
-
type SchemaDefaultProps<TSchema extends z.ZodObject<z.ZodRawShape>> = { [Key in keyof SchemaShape<TSchema> as [SchemaFieldDefaultValue<SchemaShape<TSchema>[Key]>] extends [never] ? never : Key]: SchemaFieldDefaultValue<SchemaShape<TSchema>[Key]> };
|
|
70
|
+
}>(option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodBoolean, TOption['required']>, TOption>;
|
|
71
|
+
type SchemaShape<TSchema extends z$1.ZodObject<z$1.ZodRawShape>> = TSchema extends z$1.ZodObject<infer TShape> ? TShape : never;
|
|
72
|
+
type SchemaFieldDefaultValue<TFieldSchema> = TFieldSchema extends z$1.ZodTypeAny ? TFieldSchema extends SchemaHasDefaultValue ? Exclude<z$1.infer<TFieldSchema>, undefined> : never : never;
|
|
73
|
+
type SchemaDefaultProps<TSchema extends z$1.ZodObject<z$1.ZodRawShape>> = { [Key in keyof SchemaShape<TSchema> as [SchemaFieldDefaultValue<SchemaShape<TSchema>[Key]>] extends [never] ? never : Key]: SchemaFieldDefaultValue<SchemaShape<TSchema>[Key]> };
|
|
74
74
|
/**
|
|
75
75
|
* 提取schema中定义的默认props
|
|
76
76
|
* @param schema
|
|
77
77
|
* @returns
|
|
78
78
|
*/
|
|
79
|
-
declare function getSchemaDefaultProps<const TSchema extends z.ZodObject<z.ZodRawShape>>(schema: TSchema): SchemaDefaultProps<TSchema>;
|
|
80
|
-
type ArrayItemInspectorOption<TItemSchema extends z.ZodTypeAny> = Omit<ArrayInspectorFieldOption, 'defaultValue'> & {
|
|
81
|
-
defaultValue?: z.infer<TItemSchema>[];
|
|
79
|
+
declare function getSchemaDefaultProps<const TSchema extends z$1.ZodObject<z$1.ZodRawShape>>(schema: TSchema): SchemaDefaultProps<TSchema>;
|
|
80
|
+
type ArrayItemInspectorOption<TItemSchema extends z$1.ZodTypeAny> = Omit<ArrayInspectorFieldOption, 'defaultValue'> & {
|
|
81
|
+
defaultValue?: z$1.infer<TItemSchema>[];
|
|
82
82
|
};
|
|
83
|
-
type ObjectPropInspectorOption<TShape extends z.ZodRawShape> = Omit<ObjectInspectorFieldOption, 'defaultValue'> & {
|
|
84
|
-
defaultValue?: z.infer<z.ZodObject<TShape>>;
|
|
83
|
+
type ObjectPropInspectorOption<TShape extends z$1.ZodRawShape> = Omit<ObjectInspectorFieldOption, 'defaultValue'> & {
|
|
84
|
+
defaultValue?: z$1.infer<z$1.ZodObject<TShape>>;
|
|
85
85
|
};
|
|
86
86
|
/**
|
|
87
87
|
* 定义数组字段schema,支持声明数组项schema。
|
|
@@ -89,17 +89,17 @@ type ObjectPropInspectorOption<TShape extends z.ZodRawShape> = Omit<ObjectInspec
|
|
|
89
89
|
* @param option inspector 字段配置
|
|
90
90
|
* @returns zod schema
|
|
91
91
|
*/
|
|
92
|
-
declare function defineArrayItemPropSchema<TItemSchema extends z.ZodTypeAny, const TOption extends ArrayItemInspectorOption<TItemSchema> & {
|
|
92
|
+
declare function defineArrayItemPropSchema<TItemSchema extends z$1.ZodTypeAny, const TOption extends ArrayItemInspectorOption<TItemSchema> & {
|
|
93
93
|
required?: boolean;
|
|
94
|
-
}>(itemSchema: TItemSchema, option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodArray<TItemSchema>, TOption['required']>, TOption>;
|
|
94
|
+
}>(itemSchema: TItemSchema, option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodArray<TItemSchema>, TOption['required']>, TOption>;
|
|
95
95
|
/**
|
|
96
96
|
* 定义对象字段schema,支持声明对象shape。
|
|
97
97
|
* @param shape 对象字段shape
|
|
98
98
|
* @param option inspector 字段配置
|
|
99
99
|
* @returns zod schema
|
|
100
100
|
*/
|
|
101
|
-
declare function defineObjectPropSchema<const TShape extends z.ZodRawShape, const TOption extends ObjectPropInspectorOption<TShape> & {
|
|
101
|
+
declare function defineObjectPropSchema<const TShape extends z$1.ZodRawShape, const TOption extends ObjectPropInspectorOption<TShape> & {
|
|
102
102
|
required?: boolean;
|
|
103
|
-
}>(shape: TShape, option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z.ZodObject<TShape>, TOption['required']>, TOption>;
|
|
103
|
+
}>(shape: TShape, option: TOption): MaybeSchemaWithDefaultValue<SchemaByRequired<z$1.ZodObject<TShape>, TOption['required']>, TOption>;
|
|
104
104
|
//#endregion
|
|
105
105
|
export { INSPECTOR_META_KEY, InferSchemaProps, MaterialComponentProps, SchemaHasDefaultValue, defineArrayItemPropSchema, defineCheckboxPropSchema, defineColorPropSchema, defineComponentPropsSchema, defineNumberPropSchema, defineObjectPropSchema, defineSelectEnumPropSchema, defineSelectPropSchema, defineSwitchPropSchema, defineTextPropSchema, defineTextareaPropSchema, getSchemaDefaultProps, withInspectorMeta };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { DefineMaterialOption } from "./material.mjs";
|
|
3
3
|
|
|
4
4
|
//#region utils/schema/utils.d.ts
|
|
5
|
-
type MaterialLike = DefineMaterialOption<any, any, string>;
|
|
5
|
+
type MaterialLike = DefineMaterialOption<any, any, any, string>;
|
|
6
6
|
type MaterialMap<TMaterials extends readonly MaterialLike[]> = { [Type in TMaterials[number]['type']]: Extract<TMaterials[number], {
|
|
7
7
|
type: Type;
|
|
8
8
|
}> };
|
package/dist/utils.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineMaterial as e,overwriteMaterial as t}from"./utils/schema/material.mjs";import{
|
|
2
|
+
import{defineMaterial as e,overwriteMaterial as t}from"./utils/schema/material.mjs";import{cn as n}from"./utils/cn.mjs";import{clearMyChannelsFromStorage as r,loadHiddenChannelIdsFromStorage as i,loadMyChannelsFromStorage as a,saveHiddenChannelIdsToStorage as o}from"./utils/channel-storage.mjs";import{debounceFun as s,formatVideoDuration as c,generateDynamicSign as l,generateUUID as u,getAtUserElement as d,getCookie as f,getCurrentSecondTime as p,getUserId as m,hashPassword as h,isClient as g,isMobileDevice as _,numToString as v,parseResolution as y,parseTextAtUserIds as b,randomString as x,removeCookie as S,replaceAtUserElement as C,replaceAtUserElementHtmlStr as w,secondToTime as T,setCookie as E,stringToNumber as D,stripHtmlTags as O,updateUrlParams as k}from"./utils/common.mjs";import A from"./utils/get-res-url.mjs";import{decryptImageToArrayBuffer as j,decryptImageToUint8Array as M,decryptImageUrl as N,guessImageContentTypeFromUrl as P,isEncryptedImageUrl as F}from"./utils/decrypt-image-client.mjs";import I from"./utils/event-bus.mjs";import L,{HttpClient as R,HttpError as z}from"./utils/http.mjs";import{checkFollowStatus as B,followUser as V,getAppId as H,getCurrentUserId as U,unfollowUser as W}from"./utils/follow-service.mjs";import{disablePageScroll as G,enablePageScroll as K,normalizeClassName as q,pxToVw as J}from"./utils/helper.mjs";import{compressImage as Y,defaultImageCompressionMaxSizeMB as X,defaultImageCompressionQuality as Z,getImageCompressionQuality as Q,imageCompressionQualityRules as $}from"./utils/image-compression.mjs";import{components as ee,loadComponent as te,rewriteComponent as ne}from"./utils/loaders.mjs";import{createInputAndSelectFile as re,getCoverImage as ie,getImageResolutionFromFile as ae}from"./utils/media.mjs";import{uploadToS3WithPresignedUrl as oe}from"./utils/s3-uploader.mjs";import{INSPECTOR_META_KEY as se,defineArrayItemPropSchema as ce,defineCheckboxPropSchema as le,defineColorPropSchema as ue,defineComponentPropsSchema as de,defineNumberPropSchema as fe,defineObjectPropSchema as pe,defineSelectEnumPropSchema as me,defineSelectPropSchema as he,defineSwitchPropSchema as ge,defineTextPropSchema as _e,defineTextareaPropSchema as ve,getSchemaDefaultProps as ye,withInspectorMeta as be}from"./utils/schema/schema.mjs";import{generateMaterialMap as xe}from"./utils/schema/utils.mjs";import{base64ToUint8Array as Se,uint8ArrayToBase64 as Ce,uint8ArrayToNumberArray as we}from"./utils/uint8.mjs";import{encryptBncBuffer as Te,uploadFile as Ee}from"./utils/upload-file.mjs";export{I as EventBus,R as HttpClient,z as HttpError,se as INSPECTOR_META_KEY,Se as base64ToUint8Array,B as checkFollowStatus,r as clearMyChannelsFromStorage,n as cn,ee as components,Y as compressImage,re as createInputAndSelectFile,s as debounceFun,j as decryptImageToArrayBuffer,M as decryptImageToUint8Array,N as decryptImageUrl,X as defaultImageCompressionMaxSizeMB,Z as defaultImageCompressionQuality,ce as defineArrayItemPropSchema,le as defineCheckboxPropSchema,ue as defineColorPropSchema,de as defineComponentPropsSchema,e as defineMaterial,fe as defineNumberPropSchema,pe as defineObjectPropSchema,me as defineSelectEnumPropSchema,he as defineSelectPropSchema,ge as defineSwitchPropSchema,_e as defineTextPropSchema,ve as defineTextareaPropSchema,G as disablePageScroll,K as enablePageScroll,Te as encryptBncBuffer,V as followUser,c as formatVideoDuration,l as generateDynamicSign,xe as generateMaterialMap,u as generateUUID,H as getAppId,d as getAtUserElement,f as getCookie,ie as getCoverImage,p as getCurrentSecondTime,U as getCurrentUserId,Q as getImageCompressionQuality,ae as getImageResolutionFromFile,A as getResUrl,ye as getSchemaDefaultProps,m as getUserId,P as guessImageContentTypeFromUrl,h as hashPassword,L as httpClient,$ as imageCompressionQualityRules,g as isClient,F as isEncryptedImageUrl,_ as isMobileDevice,te as loadComponent,i as loadHiddenChannelIdsFromStorage,a as loadMyChannelsFromStorage,q as normalizeClassName,v as numToString,t as overwriteMaterial,y as parseResolution,b as parseTextAtUserIds,J as pxToVw,x as randomString,S as removeCookie,C as replaceAtUserElement,w as replaceAtUserElementHtmlStr,ne as rewriteComponent,o as saveHiddenChannelIdsToStorage,T as secondToTime,E as setCookie,D as stringToNumber,O as stripHtmlTags,Ce as uint8ArrayToBase64,we as uint8ArrayToNumberArray,W as unfollowUser,k as updateUrlParams,Ee as uploadFile,oe as uploadToS3WithPresignedUrl,be as withInspectorMeta};
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
var e=`data:image/png;base64,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`;export{e as default};
|