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.
Files changed (38) hide show
  1. package/dist/base/drawable.d.ts +6 -0
  2. package/dist/base/settings-base.d.ts +7 -0
  3. package/dist/base/settings-group/settingsGroup.d.ts +100 -0
  4. package/dist/base/settings.d.ts +49 -0
  5. package/dist/groups/background-setting-set/backgroundSettingsSet.d.ts +19 -0
  6. package/dist/groups/borderSettingsSet.d.ts +24 -0
  7. package/dist/groups/headerTypographySettingsSet.d.ts +34 -0
  8. package/dist/groups/margin-setting-group/marginSettingGroup.d.ts +17 -0
  9. package/dist/groups/margin-setting-group/marginSettings.d.ts +16 -0
  10. package/dist/index.d.ts +30 -786
  11. package/dist/main.d.ts +1 -0
  12. package/dist/settings/align-settings/alignSettings.d.ts +9 -0
  13. package/dist/settings/animation-settings/animationSettings.d.ts +12 -0
  14. package/dist/settings/button-settings/buttonSettings.d.ts +16 -0
  15. package/dist/settings/color-settings/colorSettings.d.ts +23 -0
  16. package/dist/settings/color-with-opacity-settings/colorWithOpacitySettings.d.ts +33 -0
  17. package/dist/settings/gap-settings/gapSettings.d.ts +26 -0
  18. package/dist/settings/height-setting/heightSettings.d.ts +12 -0
  19. package/dist/settings/html-settings/htmlSettings.d.ts +18 -0
  20. package/dist/settings/html-settings/index.d.ts +1 -0
  21. package/dist/settings/margin-bottom-settings/marginBottomSettings.d.ts +8 -0
  22. package/dist/settings/margin-top-settings/marginTopSettings.d.ts +8 -0
  23. package/dist/settings/multi-language-settings/multiLanguageSettings.d.ts +32 -0
  24. package/dist/settings/number-settings/numberSettings.d.ts +25 -0
  25. package/dist/settings/opacity-settings/opacitySettings.d.ts +12 -0
  26. package/dist/settings/select-api/select-api.d.ts +37 -0
  27. package/dist/settings/select-settings/selectSettings.d.ts +41 -0
  28. package/dist/settings/size-setting/dimensionSettings.d.ts +38 -0
  29. package/dist/settings/string-settings/stringSettings.d.ts +14 -0
  30. package/dist/settings/toggle-settings/index.d.ts +1 -0
  31. package/dist/settings/toggle-settings/toggleSettings.d.ts +21 -0
  32. package/dist/settings/upload-image-settings/uploadImageSettings.d.ts +31 -0
  33. package/dist/settings/width-setting/widthSettings.d.ts +12 -0
  34. package/dist/types/index.d.ts +34 -0
  35. package/dist/utils/deepClone.d.ts +1 -0
  36. package/dist/utils/nestingCalculator.d.ts +96 -0
  37. package/dist/utils/settingsTypes.d.ts +13 -0
  38. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,786 +1,30 @@
1
- export declare type AddItemConfig<TSettings extends SettingsMap> = {
2
- buttonLabel?: string;
3
- keyPrefix: string;
4
- createItem: (index: number) => SettingChild;
5
- };
6
-
7
- declare class AlignSetting_2 extends Setting<AlignValue, AlignSettingProps> {
8
- inputType: InputTypes;
9
- constructor(props?: AlignSettingProps);
10
- draw(): HTMLElement;
11
- }
12
- export { AlignSetting_2 as AlignSetting }
13
-
14
- export declare interface AlignSettingProps extends SettingProps<AlignValue> {
15
- }
16
-
17
- export declare type AlignValue = "left" | "center" | "right";
18
-
19
- export declare class AnimationSetting extends Setting<AnimationValue, AnimationSettingProps> {
20
- inputType: InputTypes;
21
- private selectSetting;
22
- constructor(props?: AnimationSettingProps);
23
- draw(): HTMLElement;
24
- destroy(): void;
25
- }
26
-
27
- export declare interface AnimationSettingProps extends SettingProps<AnimationValue> {
28
- title?: string;
29
- }
30
-
31
- export declare type AnimationValue = "fade" | "slide" | "zoom" | "bounce" | "pulse" | "none";
32
-
33
- export declare type AnySettingValue = SettingValue | ComplexSettingValue;
34
-
35
- export declare function asSettingGroupWithSettings<TSettings extends SettingsMap>(settingGroup: SettingGroup<TSettings>): SettingGroupWithSettings<TSettings>;
36
-
37
- export declare class BackgroundSettingSet extends SettingGroup<{
38
- backgroundImage: UploadSetting;
39
- opacity: OpacitySetting;
40
- backgroundColor: ColorWithOpacitySetting;
41
- }> {
42
- constructor(props?: {
43
- backgroundImage?: string;
44
- opacity?: number;
45
- backgroundColor?: string;
46
- uploadProps?: UploadSettingProps;
47
- collapsed?: boolean;
48
- });
49
- draw(): HTMLElement;
50
- getCssCode(): string;
51
- }
52
-
53
- /**
54
- * A SettingGroup for configuring "Border" settings.
55
- * It includes child settings for color, opacity, radius, and size.
56
- * You can pass default values to override the internal defaults.
57
- */
58
- export declare class BorderSettingSet extends SettingGroup<{
59
- color: ColorWithOpacitySetting;
60
- radius: NumberSetting;
61
- size: NumberSetting;
62
- }> {
63
- constructor(defaults?: {
64
- color?: string;
65
- radius?: number;
66
- size?: number;
67
- collapsed?: boolean;
68
- });
69
- /**
70
- * Optional helper to generate CSS from the current settings.
71
- */
72
- getCssCode(): string;
73
- }
74
-
75
- export declare class ButtonSetting extends Setting<void, ButtonSettingProps> {
76
- inputType: InputTypes;
77
- constructor(props: ButtonSettingProps);
78
- bgWithAlpha: string;
79
- draw(): HTMLElement;
80
- }
81
-
82
- export declare interface ButtonSettingProps extends SettingProps<void> {
83
- label: string;
84
- onClick?: () => void;
85
- className?: string;
86
- wrapperClassName?: string;
87
- backgroundColor?: string;
88
- textColor?: string;
89
- borderColor?: string;
90
- }
91
-
92
- export declare class ColorSetting extends StringSetting {
93
- inputType: InputTypes;
94
- detectChange?: (value: string | undefined) => void;
95
- private element;
96
- private colorInputEl;
97
- private textInputEl;
98
- constructor(props: ColorSettingProps);
99
- private static normalizeColorValue;
100
- private static normalizeHexValue;
101
- private static rgbToHexStatic;
102
- setValue(newValue: string | undefined): void;
103
- private hexToRgb;
104
- draw(): HTMLElement;
105
- getElement(): HTMLElement | null;
106
- getNormalizedValue(): string;
107
- isValidHex(): boolean;
108
- toRgb(): string;
109
- }
110
-
111
- export declare interface ColorSettingProps extends StringSettingsProps {
112
- detectChange?: (value: string | undefined) => void;
113
- }
114
-
115
- export declare class ColorWithOpacitySetting extends Setting<string, ColorWithOpacitySettingProps> {
116
- inputType: InputTypes;
117
- detectChange?: (value: string | undefined) => void;
118
- private element;
119
- private colorInputEl;
120
- private textInputEl;
121
- private opacityInputEl;
122
- private colorPreviewEl;
123
- constructor(props?: ColorWithOpacitySettingProps);
124
- private static normalizeHexWithOpacity;
125
- private getRgbColor;
126
- private getOpacityPercent;
127
- private static combineColorOpacity;
128
- setValue(newValue: string | undefined): void;
129
- private updateInputElements;
130
- private updateColorPreview;
131
- private handleColorChange;
132
- private handleTextInput;
133
- private handleOpacityChange;
134
- draw(): HTMLElement;
135
- getElement(): HTMLElement | null;
136
- getValue(): string | undefined;
137
- getRgbaValue(): string;
138
- getColorAndOpacity(): {
139
- color: string;
140
- opacity: number;
141
- };
142
- }
143
-
144
- export declare interface ColorWithOpacitySettingProps extends SettingProps<string> {
145
- detectChange?: (value: string | undefined) => void;
146
- wrapperClassName?: string;
147
- }
148
-
149
- export declare type ComplexSettingValue = SettingValue | Record<string, SettingValue> | Array<SettingValue> | Date;
150
-
151
- export declare function createSettingGroup<TSettings extends SettingsMap>(groupProps: SettingGroupProps<TSettings>): SettingGroupWithSettings<TSettings>;
152
-
153
- export declare function createTabSettingGroup<TSettings extends SettingsMap = SettingsMap>(groupProps: SettingGroupProps<TSettings>): TabSettingGroup<TSettings>;
154
-
155
- export declare type DeepPartial<T> = {
156
- [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
157
- };
158
-
159
- export declare type DeleteItemConfig = {
160
- keyPrefix?: string;
161
- showDeleteButton?: boolean;
162
- deleteButtonLabel?: string;
163
- };
164
-
165
- export declare class DimensionSetting extends Setting<DimensionValue, DimensionSettingProps> {
166
- inputType: {
167
- readonly width: "number";
168
- readonly height: "number";
169
- };
170
- private widthSetting;
171
- private heightSetting;
172
- private minWidth;
173
- private maxWidth?;
174
- private minHeight;
175
- private maxHeight?;
176
- private locked;
177
- private aspectRatio;
178
- private isUpdating;
179
- constructor(props?: DimensionSettingProps);
180
- private handleWidthChange;
181
- private handleHeightChange;
182
- private toggleLock;
183
- private getLockSVG;
184
- setValue(newValue: DimensionValue): void;
185
- draw(): HTMLElement;
186
- isLocked(): boolean;
187
- setLocked(locked: boolean): void;
188
- }
189
-
190
- export declare interface DimensionSettingProps extends SettingProps<DimensionValue> {
191
- locked?: boolean;
192
- minWidth?: number;
193
- maxWidth?: number;
194
- minHeight?: number;
195
- maxHeight?: number;
196
- width?: number;
197
- height?: number;
198
- }
199
-
200
- export declare interface DimensionValue {
201
- width: number;
202
- height: number;
203
- }
204
-
205
- export declare type ExtractSettingValue<T> = T extends Setting<infer V, any> ? V : never;
206
-
207
- export declare type ExtractSettingValues<TSettings extends SettingsMap> = {
208
- readonly [K in keyof TSettings]: TSettings[K] extends Setting<infer V, any> ? V : TSettings[K] extends SettingGroup<infer S> ? ExtractSettingValues<S> : unknown;
209
- };
210
-
211
- export declare type ExtractSettingValuesOptional<TSettings extends SettingsMap> = {
212
- [K in keyof TSettings]?: TSettings[K] extends Setting<infer V, any> ? V : TSettings[K] extends SettingGroup<infer S> ? ExtractSettingValuesOptional<S> : unknown;
213
- };
214
-
215
- export declare class GapSetting extends Setting<number, GapSettingsProps> {
216
- inputType: InputTypes;
217
- private inputValues;
218
- mobileValue?: number;
219
- constructor(props?: GapSettingsProps);
220
- draw(): HTMLElement;
221
- private createGapInput;
222
- private validateValue;
223
- getMobileValue(): number | undefined;
224
- setMobileValue(value: number | undefined): void;
225
- }
226
-
227
- export declare interface GapSettingsProps extends SettingProps<number> {
228
- minValue?: number;
229
- maxValue?: number;
230
- step?: number;
231
- suffix?: GapSuffix;
232
- className?: string;
233
- inputClassName?: string;
234
- wrapperClassName?: string;
235
- rowGap?: boolean;
236
- columnGap?: boolean;
237
- onBlur?: () => void;
238
- mobile?: number;
239
- }
240
-
241
- export declare type GapSuffix = "px" | "em" | "rem" | "%" | "vh" | "vw" | "pt" | "none";
242
-
243
- export declare interface HeaderTypographySettings {
244
- title?: string;
245
- colorDefault?: string;
246
- showAlign?: boolean;
247
- colorOpacityDefault?: number;
248
- fontFamilyDefault?: string;
249
- fontFamilyOptions?: SelectOption[];
250
- fontFamilyGetOptions?: () => SelectOption[];
251
- fontFamilyGetOptionsAsync?: () => Promise<SelectOption[]>;
252
- fontWeightDefault?: string;
253
- fontWeightOptions?: SelectOption[];
254
- fontWeightGetOptions?: () => SelectOption[];
255
- fontWeightGetOptionsAsync?: () => Promise<SelectOption[]>;
256
- fontSizeDefault?: number;
257
- alignDefault?: AlignValue;
258
- collapsed?: boolean;
259
- hideCondition?: () => boolean;
260
- fontSizeMobileDefault?: number;
261
- }
262
-
263
- export declare class HeaderTypographySettingSet extends SettingGroup<{
264
- color: ColorWithOpacitySetting;
265
- fontFamily: SelectSetting<string>;
266
- fontWeight: SelectSetting<string>;
267
- fontSize: NumberSetting;
268
- align?: AlignSetting_2;
269
- }> {
270
- constructor(props?: HeaderTypographySettings);
271
- getCssCode(): string;
272
- }
273
-
274
- export declare class HeightSetting extends NumberSetting {
275
- inputType: InputTypes;
276
- mobileValue?: number;
277
- constructor(props?: HeightSettingProps);
278
- getMobileValue(): number | undefined;
279
- setMobileValue(value: number | undefined): void;
280
- }
281
-
282
- export declare type HeightSettingProps = NumberSettingsProps & {
283
- mobile?: number;
284
- };
285
-
286
- export declare class HtmlSetting extends Setting<string, HtmlSettingsProps> {
287
- inputType: InputTypes;
288
- private textareaEl?;
289
- constructor(props?: HtmlSettingsProps);
290
- setValue(newValue: string): void;
291
- draw(): HTMLElement;
292
- }
293
-
294
- export declare interface HtmlSettingsProps extends SettingProps<string> {
295
- maxLength?: number;
296
- value?: string;
297
- className?: string;
298
- textareaClassName?: string;
299
- wrapperClassName?: string;
300
- rows?: number;
301
- placeholder?: string;
302
- onChange?: (value: string) => void;
303
- }
304
-
305
- export declare interface IChangable<T> {
306
- setOnChange(onChange: (value: T) => void): void;
307
- }
308
-
309
- export declare interface IDrawable {
310
- draw(): HTMLElement;
311
- }
312
-
313
- export declare type InferSettingsProps<T> = T extends {
314
- getValues(): infer R;
315
- } ? R : never;
316
-
317
- export declare type InputProps = {
318
- iconClassName?: string;
319
- labelClassName?: string;
320
- value: unknown;
321
- inputType: InputTypes;
322
- title?: string;
323
- icon?: string;
324
- inputCustomizer?: (input: HTMLInputElement) => void;
325
- inputClassName?: string;
326
- wrapperClassName?: string;
327
- placeholder?: string;
328
- };
329
-
330
- export declare type InputTypes = "number" | "text" | "select" | "color" | "date" | "button";
331
-
332
- /** @deprecated Use isSetting from "../../types" instead */
333
- export declare function isSetting(value: unknown): value is SettingChild;
334
-
335
- export declare function isSettingChild(value: unknown): value is SettingChild;
336
-
337
- export declare function isSettingGroup(value: unknown): value is SettingChild;
338
-
339
- export declare function iterateSettings<TSettings extends SettingsMap>(settings: TSettings, callback: SettingIteratorCallback<TSettings>): void;
340
-
341
- export declare class MarginBottomSetting extends NumberSetting {
342
- inputType: InputTypes;
343
- constructor(props?: MarginBottomSettingsProps);
344
- }
345
-
346
- export declare interface MarginBottomSettingsProps extends NumberSettingsProps {
347
- }
348
-
349
- declare class MarginNumberSetting extends Setting<number | 'auto' | undefined, MarginNumberSettingsProps> {
350
- inputType: InputTypes;
351
- constructor(props: MarginNumberSettingsProps);
352
- draw(): HTMLElement;
353
- }
354
-
355
- declare interface MarginNumberSettingsProps extends SettingProps<number | 'auto'> {
356
- minValue?: number;
357
- maxValue?: number;
358
- className?: string;
359
- inputClassName?: string;
360
- wrapperClassName?: string;
361
- suffix?: NumberSuffix;
362
- default: number | 'auto';
363
- }
364
-
365
- export declare class MarginSettingGroup extends SettingGroup<{
366
- marginTop: MarginNumberSetting;
367
- marginRight: MarginNumberSetting;
368
- marginBottom: MarginNumberSetting;
369
- marginLeft: MarginNumberSetting;
370
- }> {
371
- constructor(defaults?: {
372
- marginTop?: number | "auto";
373
- marginRight?: number | "auto";
374
- marginBottom?: number | "auto";
375
- marginLeft?: number | "auto";
376
- collapsed?: boolean;
377
- });
378
- getCssCode(): string;
379
- }
380
-
381
- export declare class MarginTopSetting extends NumberSetting {
382
- inputType: InputTypes;
383
- constructor(props?: MarginTopSettingsProps);
384
- }
385
-
386
- export declare interface MarginTopSettingsProps extends NumberSettingsProps {
387
- }
388
-
389
- export declare type MobileSettingValues<TSettings extends SettingsMap> = {
390
- [K in keyof TSettings]?: TSettings[K] extends Setting<infer V, any> ? V : TSettings[K] extends SettingGroup<infer S> ? MobileSettingValues<S> : unknown;
391
- };
392
-
393
- export declare class MultiLanguageSetting extends Setting<MultiLanguageValue, MultiLanguageSettingsProps> {
394
- inputType: Record<keyof MultiLanguageValue, "text">;
395
- private container;
396
- private languagesContainer;
397
- private addLanguageSelect;
398
- private addButton;
399
- private defaultLanguages;
400
- constructor(props?: MultiLanguageSettingsProps);
401
- private get availableLanguages();
402
- private get usedLanguageCodes();
403
- private get availableLanguageOptions();
404
- private updateAddLanguageSelect;
405
- private createLanguageRow;
406
- private updateLanguageValue;
407
- private removeLanguage;
408
- private addLanguage;
409
- private createAddLanguageSection;
410
- draw(): HTMLElement;
411
- setValue(value: MultiLanguageValue): void;
412
- }
413
-
414
- export declare interface MultiLanguageSettingsProps extends SettingProps<MultiLanguageValue> {
415
- availableLanguages?: Array<{
416
- code: string;
417
- name: string;
418
- }>;
419
- maxLanguages?: number;
420
- placeholder?: string;
421
- }
422
-
423
- export declare interface MultiLanguageValue {
424
- [languageCode: string]: string;
425
- }
426
-
427
- export declare class NumberSetting extends Setting<number, NumberSettingsProps> {
428
- inputType: InputTypes;
429
- private inputElement;
430
- mobileValue?: number;
431
- constructor(props: NumberSettingsProps);
432
- draw(): HTMLElement;
433
- setValue(value: number | undefined): void;
434
- private validateValue;
435
- getMobileValue(): number | undefined;
436
- setMobileValue(value: number | undefined): void;
437
- private validateProps;
438
- }
439
-
440
- export declare interface NumberSettingsProps extends SettingProps<number> {
441
- minValue?: number;
442
- maxValue?: number;
443
- step?: number;
444
- className?: string;
445
- inputClassName?: string;
446
- wrapperClassName?: string;
447
- suffix?: NumberSuffix;
448
- mobile?: number;
449
- onBlur?: () => void;
450
- }
451
-
452
- export declare type NumberSuffix = "px" | "em" | "rem" | "%" | "vh" | "vw" | "pt" | "none";
453
-
454
- export declare class OpacitySetting extends NumberSetting {
455
- inputType: InputTypes;
456
- mobileValue?: number;
457
- constructor(props?: OpacitySettingProps);
458
- getMobileValue(): number | undefined;
459
- setMobileValue(value: number | undefined): void;
460
- }
461
-
462
- export declare type OpacitySettingProps = NumberSettingsProps & {
463
- mobile?: number;
464
- };
465
-
466
- export declare type Primitive = string | number | boolean | symbol | bigint | null | undefined;
467
-
468
- export declare interface SelectApiOption {
469
- name: string;
470
- value: string | object;
471
- }
472
-
473
- export declare interface SelectApiSettingProps<T = any> extends SettingProps<T> {
474
- options?: SelectApiOption[];
475
- getOptions?: () => SelectApiOption[];
476
- getOptionsAsync?: () => Promise<SelectApiOption[]>;
477
- loadingText?: string;
478
- errorText?: string;
479
- onChange?: (value: T) => void;
480
- detectChange?: (value: T | undefined) => void;
481
- }
482
-
483
- export declare class SelectApiSettings<T = any> extends Setting<T, SelectApiSettingProps<T>> {
484
- inputType: T extends Primitive ? InputTypes : Record<keyof T, InputTypes>;
485
- private _options;
486
- private isOpen;
487
- private selectedOptionIndex;
488
- private optionsListEl;
489
- private svgContainer;
490
- private buttonEl;
491
- private isLoading;
492
- private container;
493
- private hasInitializedOptions;
494
- private detectChangeCallback?;
495
- constructor(props?: SelectApiSettingProps<T>);
496
- private initializeOptions;
497
- private createOption;
498
- draw(): HTMLElement;
499
- getJson(excludeSelectSettings?: boolean): string;
500
- private selectApiOption;
501
- private updateOptionsList;
502
- private updateButtonText;
503
- setDetectChange(callback: (value: T | undefined) => void): void;
504
- setValue(value: T): void;
505
- }
506
-
507
- export declare interface SelectOption {
508
- name: string;
509
- value: string | object;
510
- }
511
-
512
- export declare class SelectSetting<T = any> extends Setting<T, SelectSettingProps<T>> {
513
- inputType: T extends Primitive ? InputTypes : Record<keyof T, InputTypes>;
514
- private _options;
515
- private isOpen;
516
- private selectedOptionIndex;
517
- private optionsListEl;
518
- private svgContainer;
519
- private buttonEl;
520
- private isLoading;
521
- private container;
522
- private clickOutsideListener;
523
- private resizeListener;
524
- constructor(props?: SelectSettingProps<T>);
525
- setValue(newValue: T): void;
526
- private createOption;
527
- draw(): HTMLElement;
528
- /**
529
- * Check if dropdown should be positioned above the button
530
- */
531
- private checkDropdownPosition;
532
- private selectOption;
533
- /**
534
- * Clean up dropdown positioning when closed
535
- */
536
- private cleanupDropdownPosition;
537
- private updateOptionsList;
538
- private updateButtonText;
539
- destroy(): void;
540
- }
541
-
542
- export declare interface SelectSettingProps<T = any> extends SettingProps<T> {
543
- options?: SelectOption[];
544
- getOptions?: () => SelectOption[];
545
- getOptionsAsync?: () => Promise<SelectOption[]>;
546
- loadingText?: string;
547
- placeholder?: string;
548
- }
549
-
550
- export declare type SerializedSettingValues = Record<string, unknown>;
551
-
552
- export declare abstract class Setting<T, P extends SettingProps<T>> implements IDrawable, IChangable<T> {
553
- protected props: P;
554
- static DefaultUploadUrl: string;
555
- static SetUploadUrl(url: string): void;
556
- destroy(): void;
557
- protected inputEl?: HTMLInputElement;
558
- id: string;
559
- value: T | undefined;
560
- title: string | undefined;
561
- desktop: T | undefined;
562
- includeGetJson: boolean;
563
- abstract inputType: T extends Primitive ? InputTypes : Record<keyof T, InputTypes>;
564
- onChange: ((value: T) => void) | undefined;
565
- onBlur: ((value: T) => void) | undefined;
566
- constructor(props?: P);
567
- setOnChange(onChange: (value: T) => void): Setting<T, P>;
568
- setOnBlur(onBlur: (value: T) => void): Setting<T, P>;
569
- setValue(newValue: T): void;
570
- clone(): Setting<T, P>;
571
- abstract draw(): HTMLElement;
572
- createInput(props: InputProps): HTMLElement;
573
- createLabel(title: string, className?: string): HTMLSpanElement;
574
- createIcon(icon: string, className?: string): HTMLSpanElement;
575
- }
576
-
577
- export declare type SettingBlurCallback = () => void;
578
-
579
- export declare type SettingChangeCallback<T> = (value: T) => void;
580
-
581
- export declare type SettingChanges<TSettings extends SettingsMap> = ExtractSettingValuesOptional<TSettings>;
582
-
583
- export declare type SettingChild<T extends AnySettingValue = AnySettingValue> = SettingInstance<T> | SettingGroup<any>;
584
-
585
- export declare class SettingGroup<TSettings extends SettingsMap> implements IDrawable, IChangable<ExtractSettingValues<TSettings>> {
586
- title: string;
587
- settings: TSettings;
588
- id: string;
589
- onChange?: SettingChangeCallback<ExtractSettingValues<TSettings>> | undefined;
590
- onBlur?: SettingBlurCallback;
591
- private isCollapsed;
592
- private isMain;
593
- private includeGetJson;
594
- private elementRef;
595
- private static hiddenElements;
596
- private isHidden;
597
- private custom;
598
- initialValues: ExtractSettingValues<TSettings>;
599
- private changeTimeout;
600
- private isHandlingChange;
601
- private changeHandlers;
602
- private blurTimeout;
603
- private lastChangeTime;
604
- private handleBlur;
605
- private pendingBlurHandler;
606
- private originalDefaultValues;
607
- private nestingLevel;
608
- private addItemCfg?;
609
- private deleteItemCfg?;
610
- constructor(groupProps: SettingGroupProps<TSettings>);
611
- private propagateNestingLevel;
612
- getNestingLevel(): number;
613
- setNestingLevel(level: number): void;
614
- private updateNestingStyles;
615
- private forceChildUIRefresh;
616
- removeSetting(key: string): void;
617
- updateVisibility(): void;
618
- clone(): SettingGroupWithSettings<TSettings>;
619
- resetDefault(): void;
620
- setMobileValues(values: MobileSettingValues<TSettings>): void;
621
- getMobileValues(): MobileSettingValues<TSettings>;
622
- getMobileValues<K extends keyof TSettings>(childKey: K): unknown;
623
- setOnChange(onChange: SettingChangeCallback<ExtractSettingValues<TSettings>>): SettingGroup<TSettings>;
624
- cleanup(): void;
625
- setValue(values: ExtractSettingValuesOptional<TSettings>): void;
626
- private wireChild;
627
- addSetting(key: string, setting: SettingChild): void;
628
- private addDeleteButtonToElement;
629
- private showDeleteConfirmation;
630
- private getNextIndexFromPrefix;
631
- calculateChanges(oldValues: ExtractSettingValues<TSettings>, newValues: ExtractSettingValues<TSettings>): Record<string, {
632
- from: unknown;
633
- to: unknown;
634
- }>;
635
- getValues(): ExtractSettingValues<TSettings>;
636
- getValues<K extends keyof TSettings>(childKey: K): unknown;
637
- private getValuesForJson;
638
- getDefaultValues(): ExtractSettingValues<TSettings>;
639
- getDefaultValues<K extends keyof TSettings>(childKey: K): unknown;
640
- draw(): HTMLElement;
641
- collapse(): void;
642
- expand(): void;
643
- getJson(): string;
644
- setJson(jsonString: string): void;
645
- }
646
-
647
- export declare type SettingGroupInstance<TSettings extends SettingsMap = SettingsMap> = SettingGroup<TSettings>;
648
-
649
- export declare type SettingGroupProps<TSettings extends SettingsMap> = {
650
- id?: string;
651
- title: string;
652
- settings: TSettings;
653
- collapsed?: boolean;
654
- main?: boolean;
655
- custom?: boolean;
656
- includeGetJson?: boolean;
657
- addItem?: AddItemConfig<TSettings>;
658
- deleteItem?: DeleteItemConfig;
659
- };
660
-
661
- export declare type SettingGroupWithSettings<TSettings extends SettingsMap> = SettingGroup<TSettings> & TSettings;
662
-
663
- export declare type SettingInstance<T extends AnySettingValue = AnySettingValue> = Setting<T, SettingProps<T>>;
664
-
665
- export declare type SettingIteratorCallback<TSettings extends SettingsMap> = (key: keyof TSettings, setting: TSettings[typeof key]) => void;
666
-
667
- export declare interface SettingProps<T> {
668
- default?: T;
669
- title?: string;
670
- placeholder?: string;
671
- icon?: string;
672
- inputProps?: InputProps;
673
- id?: string;
674
- detectChange?: (value: T | undefined) => void;
675
- includeGetJson?: boolean;
676
- }
677
-
678
- export declare type SettingsMap = Record<string, Setting<any, any> | SettingGroup<any>>;
679
-
680
- export declare type SettingsToProps<T> = T extends {
681
- getValues(): infer R;
682
- } ? R : never;
683
-
684
- /** @deprecated Use DeepPartial from "../../types" instead */
685
- export declare type SettingsToPropsOptional<T> = DeepPartial<ExtractSettingValues<T extends SettingsMap ? T : never>>;
686
-
687
- export declare type SettingValue = string | number | boolean | null | undefined;
688
-
689
- export declare class StringSetting extends Setting<string, StringSettingsProps> {
690
- inputType: InputTypes;
691
- constructor(props?: StringSettingsProps);
692
- draw(): HTMLElement;
693
- }
694
-
695
- export declare interface StringSettingsProps extends SettingProps<string> {
696
- maxLength?: number;
697
- value?: string;
698
- className?: string;
699
- inputClassName?: string;
700
- wrapperClassName?: string;
701
- onChange?: (value: string) => void;
702
- }
703
-
704
- declare class TabSettingGroup<TSettings extends SettingsMap = SettingsMap> extends SettingGroup<TSettings> {
705
- private activeTabId;
706
- private tabsContainer?;
707
- private contentContainers?;
708
- constructor(groupProps: SettingGroupProps<TSettings>);
709
- getActiveTabId(): string;
710
- switchToTab(tabId: string): void;
711
- private updateTabUI;
712
- draw(): HTMLElement;
713
- }
714
- export { TabSettingGroup }
715
- export { TabSettingGroup as TabsSettingGroup }
716
-
717
- export declare type TabSettingsGroupGenericType = Record<string, SettingGroup<SettingsMap>>;
718
-
719
- export declare class Toggle extends Setting<string, ToggleSettingProps> {
720
- inputType: InputTypes;
721
- private detectChangeCallback?;
722
- constructor(props: ToggleSettingProps);
723
- draw(): HTMLElement;
724
- setDetectChange(callback: (value: string | undefined) => void): void;
725
- }
726
-
727
- export declare interface ToggleSettingProps extends SettingProps<string> {
728
- title?: string;
729
- icon?: string;
730
- default?: string;
731
- options?: ToggleValue[];
732
- activeColor?: string;
733
- inactiveColor?: string;
734
- detectChange?: (value: string | undefined) => void;
735
- }
736
-
737
- export declare interface ToggleValue {
738
- value: string;
739
- status: boolean;
740
- }
741
-
742
- export declare class UploadSetting extends Setting<string, UploadSettingProps> {
743
- inputType: InputTypes;
744
- private previewWrapper;
745
- private previewEl;
746
- private emptyStateEl;
747
- private errorContainer;
748
- private messageListener;
749
- private loadingSpinner;
750
- constructor(props?: UploadSettingProps);
751
- private setupMessageListener;
752
- private cleanupMessageListener;
753
- destroy(): void;
754
- private showError;
755
- private hideError;
756
- private showLoading;
757
- private hideLoading;
758
- private validateFileSize;
759
- private updatePreviewState;
760
- draw(): HTMLElement;
761
- }
762
-
763
- export declare interface UploadSettingProps extends SettingProps<string> {
764
- defaultUrl?: string;
765
- delete?: boolean;
766
- uploadUrl?: string;
767
- requestMethod?: string;
768
- requestHeaders?: Record<string, string>;
769
- formFieldName?: string;
770
- parseResponse?: (responseData: unknown) => string;
771
- maxFileSizeMB?: number;
772
- }
773
-
774
- export declare class WidthSetting extends NumberSetting {
775
- inputType: InputTypes;
776
- mobileValue?: number;
777
- constructor(props?: WidthSettingProps);
778
- getMobileValue(): number | undefined;
779
- setMobileValue(value: number | undefined): void;
780
- }
781
-
782
- export declare type WidthSettingProps = NumberSettingsProps & {
783
- mobile?: number;
784
- };
785
-
786
- export { }
1
+ export * from './base/settings-group/settingsGroup';
2
+ export { TabSettingGroup } from './base/settings-group/settingsGroup';
3
+ export { TabSettingGroup as TabsSettingGroup } from './base/settings-group/settingsGroup';
4
+ export * from './base/drawable';
5
+ export * from './base/settings';
6
+ export * from './settings/color-settings/colorSettings';
7
+ export * from './settings/color-with-opacity-settings/colorWithOpacitySettings';
8
+ export * from './settings/html-settings/htmlSettings';
9
+ export * from './settings/number-settings/numberSettings';
10
+ export * from './settings/string-settings/stringSettings';
11
+ export * from './settings/opacity-settings/opacitySettings';
12
+ export * from './settings/select-settings/selectSettings';
13
+ export * from './settings/align-settings/alignSettings';
14
+ export * from './settings/button-settings/buttonSettings';
15
+ export * from './settings/size-setting/dimensionSettings';
16
+ export * from './settings/upload-image-settings/uploadImageSettings';
17
+ export * from './settings/height-setting/heightSettings';
18
+ export * from './settings/width-setting/widthSettings';
19
+ export * from './settings/select-api/select-api';
20
+ export * from './settings/toggle-settings/toggleSettings';
21
+ export * from './settings/gap-settings/gapSettings';
22
+ export * from './settings/margin-bottom-settings/marginBottomSettings';
23
+ export * from './settings/margin-top-settings/marginTopSettings';
24
+ export * from './settings/multi-language-settings/multiLanguageSettings';
25
+ export * from './settings/animation-settings/animationSettings';
26
+ export * from './groups/borderSettingsSet';
27
+ export * from './groups/headerTypographySettingsSet';
28
+ export * from './groups/margin-setting-group/marginSettingGroup';
29
+ export * from './groups/background-setting-set/backgroundSettingsSet';
30
+ export * from './utils/settingsTypes';