builder-settings-types 0.0.227 → 0.0.229
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/base/drawable.d.ts +6 -0
- package/dist/base/settings-base.d.ts +7 -0
- package/dist/base/settings-group/settingsGroup.d.ts +100 -0
- package/dist/base/settings.d.ts +49 -0
- package/dist/groups/background-setting-set/backgroundSettingsSet.d.ts +19 -0
- package/dist/groups/borderSettingsSet.d.ts +24 -0
- package/dist/groups/headerTypographySettingsSet.d.ts +34 -0
- package/dist/groups/margin-setting-group/marginSettingGroup.d.ts +17 -0
- package/dist/groups/margin-setting-group/marginSettings.d.ts +16 -0
- package/dist/index.d.ts +30 -786
- package/dist/main.d.ts +1 -0
- package/dist/settings/align-settings/alignSettings.d.ts +9 -0
- package/dist/settings/animation-settings/animationSettings.d.ts +12 -0
- package/dist/settings/button-settings/buttonSettings.d.ts +16 -0
- package/dist/settings/color-settings/colorSettings.d.ts +23 -0
- package/dist/settings/color-with-opacity-settings/colorWithOpacitySettings.d.ts +33 -0
- package/dist/settings/gap-settings/gapSettings.d.ts +26 -0
- package/dist/settings/height-setting/heightSettings.d.ts +12 -0
- package/dist/settings/html-settings/htmlSettings.d.ts +18 -0
- package/dist/settings/html-settings/index.d.ts +1 -0
- package/dist/settings/margin-bottom-settings/marginBottomSettings.d.ts +8 -0
- package/dist/settings/margin-top-settings/marginTopSettings.d.ts +8 -0
- package/dist/settings/multi-language-settings/multiLanguageSettings.d.ts +32 -0
- package/dist/settings/number-settings/numberSettings.d.ts +25 -0
- package/dist/settings/opacity-settings/opacitySettings.d.ts +12 -0
- package/dist/settings/select-api/select-api.d.ts +37 -0
- package/dist/settings/select-settings/selectSettings.d.ts +41 -0
- package/dist/settings/size-setting/dimensionSettings.d.ts +38 -0
- package/dist/settings/string-settings/stringSettings.d.ts +14 -0
- package/dist/settings/toggle-settings/index.d.ts +1 -0
- package/dist/settings/toggle-settings/toggleSettings.d.ts +21 -0
- package/dist/settings/upload-image-settings/uploadImageSettings.d.ts +31 -0
- package/dist/settings/width-setting/widthSettings.d.ts +12 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/utils/deepClone.d.ts +1 -0
- package/dist/utils/nestingCalculator.d.ts +96 -0
- package/dist/utils/settingsTypes.d.ts +13 -0
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IDrawable, IChangable } from './drawable';
|
|
2
|
+
export interface ISettingsContainer<T> extends IDrawable, IChangable<T> {
|
|
3
|
+
getValues(): T;
|
|
4
|
+
setOnChange(onChange: (value: T) => void): ISettingsContainer<T>;
|
|
5
|
+
setOnBlur(onBlur: () => void): ISettingsContainer<T>;
|
|
6
|
+
draw(): HTMLElement;
|
|
7
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { IChangable, IDrawable } from '../drawable';
|
|
2
|
+
import { SettingsMap, SettingChild, ExtractSettingValues, ExtractSettingValuesOptional, SettingChangeCallback, SettingBlurCallback, MobileSettingValues, SettingIteratorCallback } from '../../types/index';
|
|
3
|
+
export type AddItemConfig<TSettings extends SettingsMap> = {
|
|
4
|
+
buttonLabel?: string;
|
|
5
|
+
keyPrefix: string;
|
|
6
|
+
createItem: (index: number) => SettingChild;
|
|
7
|
+
};
|
|
8
|
+
export type DeleteItemConfig = {
|
|
9
|
+
keyPrefix?: string;
|
|
10
|
+
showDeleteButton?: boolean;
|
|
11
|
+
deleteButtonLabel?: string;
|
|
12
|
+
};
|
|
13
|
+
export type SettingGroupProps<TSettings extends SettingsMap> = {
|
|
14
|
+
id?: string;
|
|
15
|
+
title: string;
|
|
16
|
+
settings: TSettings;
|
|
17
|
+
collapsed?: boolean;
|
|
18
|
+
main?: boolean;
|
|
19
|
+
custom?: boolean;
|
|
20
|
+
includeGetJson?: boolean;
|
|
21
|
+
addItem?: AddItemConfig<TSettings>;
|
|
22
|
+
deleteItem?: DeleteItemConfig;
|
|
23
|
+
};
|
|
24
|
+
export declare function iterateSettings<TSettings extends SettingsMap>(settings: TSettings, callback: SettingIteratorCallback<TSettings>): void;
|
|
25
|
+
export type SettingGroupWithSettings<TSettings extends SettingsMap> = SettingGroup<TSettings> & TSettings;
|
|
26
|
+
export type TabSettingsGroupGenericType = Record<string, SettingGroup<SettingsMap>>;
|
|
27
|
+
export declare class SettingGroup<TSettings extends SettingsMap> implements IDrawable, IChangable<ExtractSettingValues<TSettings>> {
|
|
28
|
+
title: string;
|
|
29
|
+
settings: TSettings;
|
|
30
|
+
id: string;
|
|
31
|
+
onChange?: SettingChangeCallback<ExtractSettingValues<TSettings>> | undefined;
|
|
32
|
+
onBlur?: SettingBlurCallback;
|
|
33
|
+
private isCollapsed;
|
|
34
|
+
private isMain;
|
|
35
|
+
private includeGetJson;
|
|
36
|
+
private elementRef;
|
|
37
|
+
private static hiddenElements;
|
|
38
|
+
private isHidden;
|
|
39
|
+
private custom;
|
|
40
|
+
initialValues: ExtractSettingValues<TSettings>;
|
|
41
|
+
private changeTimeout;
|
|
42
|
+
private isHandlingChange;
|
|
43
|
+
private changeHandlers;
|
|
44
|
+
private blurTimeout;
|
|
45
|
+
private lastChangeTime;
|
|
46
|
+
private handleBlur;
|
|
47
|
+
private pendingBlurHandler;
|
|
48
|
+
private originalDefaultValues;
|
|
49
|
+
private nestingLevel;
|
|
50
|
+
private addItemCfg?;
|
|
51
|
+
private deleteItemCfg?;
|
|
52
|
+
constructor(groupProps: SettingGroupProps<TSettings>);
|
|
53
|
+
private propagateNestingLevel;
|
|
54
|
+
getNestingLevel(): number;
|
|
55
|
+
setNestingLevel(level: number): void;
|
|
56
|
+
private updateNestingStyles;
|
|
57
|
+
private forceChildUIRefresh;
|
|
58
|
+
removeSetting(key: string): void;
|
|
59
|
+
updateVisibility(): void;
|
|
60
|
+
clone(): SettingGroupWithSettings<TSettings>;
|
|
61
|
+
resetDefault(): void;
|
|
62
|
+
setMobileValues(values: MobileSettingValues<TSettings>): void;
|
|
63
|
+
getMobileValues(): MobileSettingValues<TSettings>;
|
|
64
|
+
getMobileValues<K extends keyof TSettings>(childKey: K): unknown;
|
|
65
|
+
setOnChange(onChange: SettingChangeCallback<ExtractSettingValues<TSettings>>): SettingGroup<TSettings>;
|
|
66
|
+
cleanup(): void;
|
|
67
|
+
setValue(values: ExtractSettingValuesOptional<TSettings>): void;
|
|
68
|
+
private wireChild;
|
|
69
|
+
addSetting(key: string, setting: SettingChild): void;
|
|
70
|
+
private addDeleteButtonToElement;
|
|
71
|
+
private showDeleteConfirmation;
|
|
72
|
+
private getNextIndexFromPrefix;
|
|
73
|
+
calculateChanges(oldValues: ExtractSettingValues<TSettings>, newValues: ExtractSettingValues<TSettings>): Record<string, {
|
|
74
|
+
from: unknown;
|
|
75
|
+
to: unknown;
|
|
76
|
+
}>;
|
|
77
|
+
getValues(): ExtractSettingValues<TSettings>;
|
|
78
|
+
getValues<K extends keyof TSettings>(childKey: K): unknown;
|
|
79
|
+
private getValuesForJson;
|
|
80
|
+
getDefaultValues(): ExtractSettingValues<TSettings>;
|
|
81
|
+
getDefaultValues<K extends keyof TSettings>(childKey: K): unknown;
|
|
82
|
+
draw(): HTMLElement;
|
|
83
|
+
collapse(): void;
|
|
84
|
+
expand(): void;
|
|
85
|
+
getJson(): string;
|
|
86
|
+
setJson(jsonString: string): void;
|
|
87
|
+
}
|
|
88
|
+
export declare function createTabSettingGroup<TSettings extends SettingsMap = SettingsMap>(groupProps: SettingGroupProps<TSettings>): TabSettingGroup<TSettings>;
|
|
89
|
+
export declare class TabSettingGroup<TSettings extends SettingsMap = SettingsMap> extends SettingGroup<TSettings> {
|
|
90
|
+
private activeTabId;
|
|
91
|
+
private tabsContainer?;
|
|
92
|
+
private contentContainers?;
|
|
93
|
+
constructor(groupProps: SettingGroupProps<TSettings>);
|
|
94
|
+
getActiveTabId(): string;
|
|
95
|
+
switchToTab(tabId: string): void;
|
|
96
|
+
private updateTabUI;
|
|
97
|
+
draw(): HTMLElement;
|
|
98
|
+
}
|
|
99
|
+
export declare function createSettingGroup<TSettings extends SettingsMap>(groupProps: SettingGroupProps<TSettings>): SettingGroupWithSettings<TSettings>;
|
|
100
|
+
export declare function asSettingGroupWithSettings<TSettings extends SettingsMap>(settingGroup: SettingGroup<TSettings>): SettingGroupWithSettings<TSettings>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { IChangable, IDrawable } from './drawable';
|
|
2
|
+
export interface SettingProps<T> {
|
|
3
|
+
default?: T;
|
|
4
|
+
title?: string;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
inputProps?: InputProps;
|
|
8
|
+
id?: string;
|
|
9
|
+
detectChange?: (value: T | undefined) => void;
|
|
10
|
+
includeGetJson?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type Primitive = string | number | boolean | symbol | bigint | null | undefined;
|
|
13
|
+
export type InputTypes = "number" | "text" | "select" | "color" | "date" | "button";
|
|
14
|
+
export type InputProps = {
|
|
15
|
+
iconClassName?: string;
|
|
16
|
+
labelClassName?: string;
|
|
17
|
+
value: unknown;
|
|
18
|
+
inputType: InputTypes;
|
|
19
|
+
title?: string;
|
|
20
|
+
icon?: string;
|
|
21
|
+
inputCustomizer?: (input: HTMLInputElement) => void;
|
|
22
|
+
inputClassName?: string;
|
|
23
|
+
wrapperClassName?: string;
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
};
|
|
26
|
+
export declare abstract class Setting<T, P extends SettingProps<T>> implements IDrawable, IChangable<T> {
|
|
27
|
+
protected props: P;
|
|
28
|
+
static DefaultUploadUrl: string;
|
|
29
|
+
static SetUploadUrl(url: string): void;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
protected inputEl?: HTMLInputElement;
|
|
32
|
+
id: string;
|
|
33
|
+
value: T | undefined;
|
|
34
|
+
title: string | undefined;
|
|
35
|
+
desktop: T | undefined;
|
|
36
|
+
includeGetJson: boolean;
|
|
37
|
+
abstract inputType: T extends Primitive ? InputTypes : Record<keyof T, InputTypes>;
|
|
38
|
+
onChange: ((value: T) => void) | undefined;
|
|
39
|
+
onBlur: ((value: T) => void) | undefined;
|
|
40
|
+
constructor(props?: P);
|
|
41
|
+
setOnChange(onChange: (value: T) => void): Setting<T, P>;
|
|
42
|
+
setOnBlur(onBlur: (value: T) => void): Setting<T, P>;
|
|
43
|
+
setValue(newValue: T): void;
|
|
44
|
+
clone(): Setting<T, P>;
|
|
45
|
+
abstract draw(): HTMLElement;
|
|
46
|
+
createInput(props: InputProps): HTMLElement;
|
|
47
|
+
createLabel(title: string, className?: string): HTMLSpanElement;
|
|
48
|
+
createIcon(icon: string, className?: string): HTMLSpanElement;
|
|
49
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SettingGroup } from '../../base/settings-group/settingsGroup';
|
|
2
|
+
import { ColorWithOpacitySetting } from '../../settings/color-with-opacity-settings/colorWithOpacitySettings';
|
|
3
|
+
import { OpacitySetting } from '../../settings/opacity-settings/opacitySettings';
|
|
4
|
+
import { UploadSetting, UploadSettingProps } from '../../settings/upload-image-settings/uploadImageSettings';
|
|
5
|
+
export declare class BackgroundSettingSet extends SettingGroup<{
|
|
6
|
+
backgroundImage: UploadSetting;
|
|
7
|
+
opacity: OpacitySetting;
|
|
8
|
+
backgroundColor: ColorWithOpacitySetting;
|
|
9
|
+
}> {
|
|
10
|
+
constructor(props?: {
|
|
11
|
+
backgroundImage?: string;
|
|
12
|
+
opacity?: number;
|
|
13
|
+
backgroundColor?: string;
|
|
14
|
+
uploadProps?: UploadSettingProps;
|
|
15
|
+
collapsed?: boolean;
|
|
16
|
+
});
|
|
17
|
+
draw(): HTMLElement;
|
|
18
|
+
getCssCode(): string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SettingGroup } from '../base/settings-group/settingsGroup';
|
|
2
|
+
import { ColorWithOpacitySetting } from '../settings/color-with-opacity-settings/colorWithOpacitySettings';
|
|
3
|
+
import { NumberSetting } from '../settings/number-settings/numberSettings';
|
|
4
|
+
/**
|
|
5
|
+
* A SettingGroup for configuring "Border" settings.
|
|
6
|
+
* It includes child settings for color, opacity, radius, and size.
|
|
7
|
+
* You can pass default values to override the internal defaults.
|
|
8
|
+
*/
|
|
9
|
+
export declare class BorderSettingSet extends SettingGroup<{
|
|
10
|
+
color: ColorWithOpacitySetting;
|
|
11
|
+
radius: NumberSetting;
|
|
12
|
+
size: NumberSetting;
|
|
13
|
+
}> {
|
|
14
|
+
constructor(defaults?: {
|
|
15
|
+
color?: string;
|
|
16
|
+
radius?: number;
|
|
17
|
+
size?: number;
|
|
18
|
+
collapsed?: boolean;
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Optional helper to generate CSS from the current settings.
|
|
22
|
+
*/
|
|
23
|
+
getCssCode(): string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SettingGroup } from '../base/settings-group/settingsGroup';
|
|
2
|
+
import { AlignSetting, AlignValue } from '../settings/align-settings/alignSettings';
|
|
3
|
+
import { ColorWithOpacitySetting } from '../settings/color-with-opacity-settings/colorWithOpacitySettings';
|
|
4
|
+
import { NumberSetting } from '../settings/number-settings/numberSettings';
|
|
5
|
+
import { SelectOption, SelectSetting } from '../settings/select-settings/selectSettings';
|
|
6
|
+
export interface HeaderTypographySettings {
|
|
7
|
+
title?: string;
|
|
8
|
+
colorDefault?: string;
|
|
9
|
+
showAlign?: boolean;
|
|
10
|
+
colorOpacityDefault?: number;
|
|
11
|
+
fontFamilyDefault?: string;
|
|
12
|
+
fontFamilyOptions?: SelectOption[];
|
|
13
|
+
fontFamilyGetOptions?: () => SelectOption[];
|
|
14
|
+
fontFamilyGetOptionsAsync?: () => Promise<SelectOption[]>;
|
|
15
|
+
fontWeightDefault?: string;
|
|
16
|
+
fontWeightOptions?: SelectOption[];
|
|
17
|
+
fontWeightGetOptions?: () => SelectOption[];
|
|
18
|
+
fontWeightGetOptionsAsync?: () => Promise<SelectOption[]>;
|
|
19
|
+
fontSizeDefault?: number;
|
|
20
|
+
alignDefault?: AlignValue;
|
|
21
|
+
collapsed?: boolean;
|
|
22
|
+
hideCondition?: () => boolean;
|
|
23
|
+
fontSizeMobileDefault?: number;
|
|
24
|
+
}
|
|
25
|
+
export declare class HeaderTypographySettingSet extends SettingGroup<{
|
|
26
|
+
color: ColorWithOpacitySetting;
|
|
27
|
+
fontFamily: SelectSetting<string>;
|
|
28
|
+
fontWeight: SelectSetting<string>;
|
|
29
|
+
fontSize: NumberSetting;
|
|
30
|
+
align?: AlignSetting;
|
|
31
|
+
}> {
|
|
32
|
+
constructor(props?: HeaderTypographySettings);
|
|
33
|
+
getCssCode(): string;
|
|
34
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SettingGroup } from '../../base/settings-group/settingsGroup';
|
|
2
|
+
import { MarginNumberSetting } from './marginSettings';
|
|
3
|
+
export declare class MarginSettingGroup extends SettingGroup<{
|
|
4
|
+
marginTop: MarginNumberSetting;
|
|
5
|
+
marginRight: MarginNumberSetting;
|
|
6
|
+
marginBottom: MarginNumberSetting;
|
|
7
|
+
marginLeft: MarginNumberSetting;
|
|
8
|
+
}> {
|
|
9
|
+
constructor(defaults?: {
|
|
10
|
+
marginTop?: number | "auto";
|
|
11
|
+
marginRight?: number | "auto";
|
|
12
|
+
marginBottom?: number | "auto";
|
|
13
|
+
marginLeft?: number | "auto";
|
|
14
|
+
collapsed?: boolean;
|
|
15
|
+
});
|
|
16
|
+
getCssCode(): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { InputTypes, Setting, SettingProps } from '../../base/settings';
|
|
2
|
+
import { NumberSuffix } from '../../settings/number-settings/numberSettings';
|
|
3
|
+
export interface MarginNumberSettingsProps extends SettingProps<number | 'auto'> {
|
|
4
|
+
minValue?: number;
|
|
5
|
+
maxValue?: number;
|
|
6
|
+
className?: string;
|
|
7
|
+
inputClassName?: string;
|
|
8
|
+
wrapperClassName?: string;
|
|
9
|
+
suffix?: NumberSuffix;
|
|
10
|
+
default: number | 'auto';
|
|
11
|
+
}
|
|
12
|
+
export declare class MarginNumberSetting extends Setting<number | 'auto' | undefined, MarginNumberSettingsProps> {
|
|
13
|
+
inputType: InputTypes;
|
|
14
|
+
constructor(props: MarginNumberSettingsProps);
|
|
15
|
+
draw(): HTMLElement;
|
|
16
|
+
}
|