builder-settings-types 0.0.240 → 0.0.242
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/types/index.d.ts +37 -62
- package/dist/utils/settingsTypes.d.ts +3 -6
- package/package.json +2 -2
package/dist/types/index.d.ts
CHANGED
|
@@ -1,58 +1,37 @@
|
|
|
1
1
|
import { Setting, SettingProps } from '../base/settings';
|
|
2
2
|
import { SettingGroup } from '../base/settings-group/settingsGroup';
|
|
3
|
-
import { NumberSetting } from '../settings/number-settings/numberSettings';
|
|
4
|
-
import { StringSetting } from '../settings/string-settings/stringSettings';
|
|
5
|
-
import { ColorWithOpacitySetting } from '../settings/color-with-opacity-settings/colorWithOpacitySettings';
|
|
6
|
-
import { Toggle } from '../settings/toggle-settings/toggleSettings';
|
|
7
|
-
import { UploadSetting } from '../settings/upload-image-settings/uploadImageSettings';
|
|
8
|
-
import { MarginTopSetting } from '../settings/margin-top-settings/marginTopSettings';
|
|
9
|
-
import { SelectApiSettings } from '../settings/select-api/select-api';
|
|
10
|
-
import { SelectSetting } from '../settings/select-settings/selectSettings';
|
|
11
|
-
import { MultiLanguageSetting, MultiLanguageValue } from '../settings/multi-language-settings/multiLanguageSettings';
|
|
12
|
-
import { BorderSettingSet } from '../groups/borderSettingsSet';
|
|
13
3
|
import { HeaderTypographySettingSet } from '../groups/headerTypographySettingsSet';
|
|
14
|
-
import {
|
|
4
|
+
import { AlignValue } from '../settings/align-settings/alignSettings';
|
|
15
5
|
export type SettingValue = string | number | boolean | null | undefined;
|
|
16
6
|
export type ComplexSettingValue = SettingValue | Record<string, SettingValue> | Array<SettingValue> | Date;
|
|
7
|
+
type HeaderTypographyValue<T> = T extends HeaderTypographySettingSet ? {
|
|
8
|
+
color: string;
|
|
9
|
+
fontFamily: string;
|
|
10
|
+
fontWeight: string;
|
|
11
|
+
fontSize: number;
|
|
12
|
+
} & (T extends {
|
|
13
|
+
settings: infer G;
|
|
14
|
+
} ? G extends {
|
|
15
|
+
align: AlignValue;
|
|
16
|
+
} ? {
|
|
17
|
+
align: AlignValue;
|
|
18
|
+
} : {
|
|
19
|
+
align?: AlignValue;
|
|
20
|
+
} : {
|
|
21
|
+
align?: AlignValue;
|
|
22
|
+
}) : never;
|
|
17
23
|
export type SettingsProps = SettingValue | ComplexSettingValue;
|
|
18
24
|
export type SettingInstance<T extends SettingsProps = SettingsProps> = Setting<T, SettingProps<T>>;
|
|
19
|
-
export type SettingChild<T extends SettingsProps = SettingsProps> = SettingInstance<T> | SettingGroup<Record<string, SettingChild
|
|
25
|
+
export type SettingChild<T extends SettingsProps = SettingsProps> = SettingInstance<T> | SettingGroup<Record<string, SettingChild<T>>>;
|
|
20
26
|
export type SettingsMap = Record<string, SettingChild | object>;
|
|
21
27
|
export type SettingGroupInstance<TSettings extends SettingsMap = SettingsMap> = SettingGroup<TSettings>;
|
|
22
|
-
type
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
readonly fontSize: number;
|
|
28
|
-
} & (HasAlignSetting<T> extends true ? {
|
|
29
|
-
readonly align: AlignValue;
|
|
30
|
-
} : {}) : T extends {
|
|
31
|
-
getValues(): infer R;
|
|
32
|
-
} ? R : {
|
|
33
|
-
readonly color: string;
|
|
34
|
-
readonly fontFamily: string;
|
|
35
|
-
readonly fontWeight: string;
|
|
36
|
-
readonly fontSize: number;
|
|
37
|
-
readonly align?: AlignValue;
|
|
38
|
-
};
|
|
39
|
-
export type ExtractSettingValue<T> = T extends Setting<infer V, infer P> ? V : T extends NumberSetting ? number : T extends StringSetting ? string : T extends ColorWithOpacitySetting ? string : T extends Toggle ? string : T extends UploadSetting ? string : T extends MarginTopSetting ? number : T extends SelectApiSettings<infer U> ? U : T extends SelectSetting<infer U> ? U : T extends MultiLanguageSetting ? MultiLanguageValue : T extends AlignSetting ? AlignValue : T extends BorderSettingSet ? {
|
|
40
|
-
readonly color: string;
|
|
41
|
-
readonly radius: number;
|
|
42
|
-
readonly size: number;
|
|
43
|
-
} : T extends {
|
|
44
|
-
getValues(): infer R;
|
|
45
|
-
} ? R : never;
|
|
28
|
+
export type ExtractSettingValue<T> = T extends Setting<infer V, infer P> ? V : T extends {
|
|
29
|
+
setValue(value: infer V | undefined): void;
|
|
30
|
+
} ? V : T extends {
|
|
31
|
+
value: infer V;
|
|
32
|
+
} ? V : never;
|
|
46
33
|
export type ExtractSettingValues<TSettings extends SettingsMap> = {
|
|
47
|
-
|
|
48
|
-
readonly color: string;
|
|
49
|
-
readonly radius: number;
|
|
50
|
-
readonly size: number;
|
|
51
|
-
} : TSettings[K] extends HeaderTypographySettingSet ? HeaderTypographyValues<TSettings[K]> : TSettings[K] extends SettingGroup<infer S> ? ExtractSettingValues<S> : TSettings[K] extends {
|
|
52
|
-
value: infer U;
|
|
53
|
-
} ? U : TSettings[K] extends {
|
|
54
|
-
getValues(): infer R;
|
|
55
|
-
} ? R : unknown;
|
|
34
|
+
[K in keyof TSettings]: TSettings[K] extends Setting<infer V, infer P> ? V : TSettings[K] extends SettingGroup<infer S> ? ExtractSettingValues<S> : unknown;
|
|
56
35
|
};
|
|
57
36
|
export type ExtractSettingValuesOptional<TSettings extends SettingsMap> = {
|
|
58
37
|
[K in keyof TSettings]?: TSettings[K] extends Setting<infer V, infer P> ? V : TSettings[K] extends SettingGroup<infer S> ? ExtractSettingValuesOptional<S> : unknown;
|
|
@@ -71,26 +50,22 @@ export declare function isSetting(value: unknown): value is SettingInstance;
|
|
|
71
50
|
export declare function isSettingGroup(value: unknown): value is SettingGroupInstance;
|
|
72
51
|
export declare function isSettingChild(value: unknown): value is SettingChild;
|
|
73
52
|
export type SettingIteratorCallback<TSettings extends SettingsMap> = (key: keyof TSettings, setting: TSettings[typeof key]) => void;
|
|
74
|
-
export type
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
} ?
|
|
81
|
-
|
|
82
|
-
} ?
|
|
83
|
-
|
|
84
|
-
settings: SettingGroup<infer S>;
|
|
85
|
-
} ? ExtractSettingValues<S> : T extends (...args: never[]) => {
|
|
86
|
-
settings: infer S;
|
|
87
|
-
} ? S extends SettingsMap ? ExtractSettingValues<S> : never : never;
|
|
53
|
+
export declare type ExtractSettingGroupValues<T> = T extends SettingGroup<infer S> ? {
|
|
54
|
+
[K in keyof S]: S[K] extends Setting<infer V, infer P> ? ExtractSettingValue<S[K]> : S[K] extends SettingGroup<infer U> ? ExtractSettingGroupValues<S[K]> : unknown;
|
|
55
|
+
} : never;
|
|
56
|
+
export type SettingsToProps<T> = T extends SettingGroup<infer S> ? {
|
|
57
|
+
[K in keyof S]: S[K] extends Setting<infer V, infer P> ? V : S[K] extends HeaderTypographySettingSet ? HeaderTypographyValue<S[K]> : S[K] extends SettingGroup<infer U> ? SettingsToProps<S[K]> : S[K] extends {
|
|
58
|
+
setValue(value: infer V | undefined): void;
|
|
59
|
+
} ? V : S[K] extends {
|
|
60
|
+
value: infer V;
|
|
61
|
+
} ? V : unknown;
|
|
62
|
+
} : never;
|
|
88
63
|
export type GetSettings<T> = T extends {
|
|
89
64
|
settings: SettingGroup<infer S>;
|
|
90
|
-
} ?
|
|
65
|
+
} ? ExtractSettingGroupValues<S> : T extends SettingGroup<infer S> ? ExtractSettingGroupValues<S> : never;
|
|
91
66
|
export type ExtractSettingsFromComponent<T> = T extends {
|
|
92
67
|
settings: SettingGroup<infer S>;
|
|
93
|
-
} ?
|
|
68
|
+
} ? ExtractSettingGroupValues<S> : T extends {
|
|
94
69
|
settings: infer S;
|
|
95
|
-
} ? S extends SettingGroup<infer U> ?
|
|
70
|
+
} ? S extends SettingGroup<infer U> ? ExtractSettingGroupValues<U> : never : never;
|
|
96
71
|
export type { Setting, SettingGroup };
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { ExtractSettingValues
|
|
1
|
+
import { ExtractSettingValues, DeepPartial as NewDeepPartial, SettingsMap } from '../types/index';
|
|
2
2
|
export * from '../types/index';
|
|
3
|
-
export type SettingsToProps<T> = T extends {
|
|
4
|
-
getValues(): infer R;
|
|
5
|
-
} ? R : never;
|
|
6
3
|
export type InferSettingsProps<T> = T extends {
|
|
7
4
|
getValues(): infer R;
|
|
8
5
|
} ? R : never;
|
|
9
6
|
export type ExtractSettingsFromComponent<T> = T extends {
|
|
10
7
|
settings: infer S;
|
|
11
|
-
} ? S extends SettingsMap ?
|
|
12
|
-
export type SettingsToPropsOptional<T> = NewDeepPartial<
|
|
8
|
+
} ? S extends SettingsMap ? ExtractSettingValues<S> : never : never;
|
|
9
|
+
export type SettingsToPropsOptional<T> = NewDeepPartial<ExtractSettingValues<T extends SettingsMap ? T : never>>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "builder-settings-types",
|
|
3
3
|
"description": "builder settings",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.242",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/builder-settings-types.cjs.js",
|
|
7
7
|
"module": "dist/builder-settings-types.es.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"author": "onAim",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"builder-settings-types": "^0.0.
|
|
34
|
+
"builder-settings-types": "^0.0.240",
|
|
35
35
|
"nanoid": "^5.1.0",
|
|
36
36
|
"vite-plugin-dts": "^4.5.0"
|
|
37
37
|
}
|