builder-settings-types 0.0.223 → 0.0.227

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/index.d.ts CHANGED
@@ -1,12 +1,7 @@
1
- export declare type AddItemConfig<T> = {
1
+ export declare type AddItemConfig<TSettings extends SettingsMap> = {
2
2
  buttonLabel?: string;
3
- buttonIconSvg?: string;
4
3
  keyPrefix: string;
5
- createItem: (index: number) => Setting<any, any> | SettingGroup<any>;
6
- expandNewItem?: boolean;
7
- showDeleteButton?: boolean;
8
- deleteButtonLabel?: string;
9
- deleteButtonIconSvg?: string;
4
+ createItem: (index: number) => SettingChild;
10
5
  };
11
6
 
12
7
  declare class AlignSetting_2 extends Setting<AlignValue, AlignSettingProps> {
@@ -35,51 +30,23 @@ export declare interface AnimationSettingProps extends SettingProps<AnimationVal
35
30
 
36
31
  export declare type AnimationValue = "fade" | "slide" | "zoom" | "bounce" | "pulse" | "none";
37
32
 
38
- export declare function asSettingGroupWithSettings<T extends Record<string, Setting<any, any> | SettingGroup<any>>>(settingGroup: SettingGroup<T>): SettingGroupWithSettings<T>;
33
+ export declare type AnySettingValue = SettingValue | ComplexSettingValue;
34
+
35
+ export declare function asSettingGroupWithSettings<TSettings extends SettingsMap>(settingGroup: SettingGroup<TSettings>): SettingGroupWithSettings<TSettings>;
39
36
 
40
37
  export declare class BackgroundSettingSet extends SettingGroup<{
41
38
  backgroundImage: UploadSetting;
42
39
  opacity: OpacitySetting;
43
40
  backgroundColor: ColorWithOpacitySetting;
44
41
  }> {
45
- /**
46
- * Constructs a new BackgroundSettingSet.
47
- *
48
- * @param props An object that may include default values for each setting and additional
49
- * properties for the UploadSetting via `uploadProps`.
50
- *
51
- * Example:
52
- * {
53
- * backgroundImage: 'https://example.com/myimage.png',
54
- * opacity: 80,
55
- * backgroundColor: "0, 0, 30",
56
- * uploadProps: {
57
- * uploadUrl: 'https://st-admapi.onaim.io/api/File/UploadImage',
58
- * requestMethod: 'POST',
59
- * requestHeaders: {
60
- * accept: 'text/plain',
61
- * Authorization: 'bearer <your-token-here>',
62
- * },
63
- * formFieldName: 'File',
64
- * parseResponse: (data) => data.data.url,
65
- * }
66
- * }
67
- */
68
42
  constructor(props?: {
69
43
  backgroundImage?: string;
70
44
  opacity?: number;
71
45
  backgroundColor?: string;
72
46
  uploadProps?: UploadSettingProps;
73
47
  collapsed?: boolean;
74
- hideCondition?: () => boolean;
75
48
  });
76
- /**
77
- * Override draw() to reorder the child settings and insert an "OR" label between the two sections.
78
- */
79
49
  draw(): HTMLElement;
80
- /**
81
- * Helper method to generate CSS based on the current settings.
82
- */
83
50
  getCssCode(): string;
84
51
  }
85
52
 
@@ -98,7 +65,6 @@ export declare class BorderSettingSet extends SettingGroup<{
98
65
  radius?: number;
99
66
  size?: number;
100
67
  collapsed?: boolean;
101
- hideCondition?: () => boolean;
102
68
  });
103
69
  /**
104
70
  * Optional helper to generate CSS from the current settings.
@@ -180,17 +146,20 @@ export declare interface ColorWithOpacitySettingProps extends SettingProps<strin
180
146
  wrapperClassName?: string;
181
147
  }
182
148
 
183
- export declare function createSettingGroup<T extends Record<string, Setting<any, any> | SettingGroup<any>>>(groupProps: SettingGroupProps<T>): SettingGroupWithSettings<T>;
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>;
184
154
 
185
155
  export declare type DeepPartial<T> = {
186
156
  [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
187
157
  };
188
158
 
189
- export declare type DeleteItemConfig<T> = {
159
+ export declare type DeleteItemConfig = {
190
160
  keyPrefix?: string;
191
161
  showDeleteButton?: boolean;
192
162
  deleteButtonLabel?: string;
193
- deleteButtonIconSvg?: string;
194
163
  };
195
164
 
196
165
  export declare class DimensionSetting extends Setting<DimensionValue, DimensionSettingProps> {
@@ -233,9 +202,15 @@ export declare interface DimensionValue {
233
202
  height: number;
234
203
  }
235
204
 
236
- declare type ExtractSettingGroupValues<T> = T extends SettingGroup<infer S> ? {
237
- [K in keyof S]?: S[K] extends Setting<infer V, any> ? V : S[K] extends SettingGroup<any> ? ExtractSettingGroupValues<S[K]> : any;
238
- } : never;
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
+ };
239
214
 
240
215
  export declare class GapSetting extends Setting<number, GapSettingsProps> {
241
216
  inputType: InputTypes;
@@ -339,10 +314,10 @@ export declare type InferSettingsProps<T> = T extends {
339
314
  getValues(): infer R;
340
315
  } ? R : never;
341
316
 
342
- declare type InputProps = {
317
+ export declare type InputProps = {
343
318
  iconClassName?: string;
344
319
  labelClassName?: string;
345
- value: any;
320
+ value: unknown;
346
321
  inputType: InputTypes;
347
322
  title?: string;
348
323
  icon?: string;
@@ -354,11 +329,14 @@ declare type InputProps = {
354
329
 
355
330
  export declare type InputTypes = "number" | "text" | "select" | "color" | "date" | "button";
356
331
 
357
- export declare function isSetting(value: any): value is Setting<any, any>;
332
+ /** @deprecated Use isSetting from "../../types" instead */
333
+ export declare function isSetting(value: unknown): value is SettingChild;
358
334
 
359
- export declare function isSettingGroup(value: any): value is SettingGroup<any>;
335
+ export declare function isSettingChild(value: unknown): value is SettingChild;
360
336
 
361
- export declare function iterateSettings<T extends Record<string, Setting<any, any> | SettingGroup<any>>>(settings: T, callback: (key: string, setting: Setting<any, any> | SettingGroup<any>) => void): void;
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;
362
340
 
363
341
  export declare class MarginBottomSetting extends NumberSetting {
364
342
  inputType: InputTypes;
@@ -391,12 +369,11 @@ export declare class MarginSettingGroup extends SettingGroup<{
391
369
  marginLeft: MarginNumberSetting;
392
370
  }> {
393
371
  constructor(defaults?: {
394
- marginTop?: number | 'auto';
395
- marginRight?: number | 'auto';
396
- marginBottom?: number | 'auto';
397
- marginLeft?: number | 'auto';
372
+ marginTop?: number | "auto";
373
+ marginRight?: number | "auto";
374
+ marginBottom?: number | "auto";
375
+ marginLeft?: number | "auto";
398
376
  collapsed?: boolean;
399
- hideCondition?: () => boolean;
400
377
  });
401
378
  getCssCode(): string;
402
379
  }
@@ -409,6 +386,10 @@ export declare class MarginTopSetting extends NumberSetting {
409
386
  export declare interface MarginTopSettingsProps extends NumberSettingsProps {
410
387
  }
411
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
+
412
393
  export declare class MultiLanguageSetting extends Setting<MultiLanguageValue, MultiLanguageSettingsProps> {
413
394
  inputType: Record<keyof MultiLanguageValue, "text">;
414
395
  private container;
@@ -566,6 +547,8 @@ export declare interface SelectSettingProps<T = any> extends SettingProps<T> {
566
547
  placeholder?: string;
567
548
  }
568
549
 
550
+ export declare type SerializedSettingValues = Record<string, unknown>;
551
+
569
552
  export declare abstract class Setting<T, P extends SettingProps<T>> implements IDrawable, IChangable<T> {
570
553
  protected props: P;
571
554
  static DefaultUploadUrl: string;
@@ -591,23 +574,28 @@ export declare abstract class Setting<T, P extends SettingProps<T>> implements I
591
574
  createIcon(icon: string, className?: string): HTMLSpanElement;
592
575
  }
593
576
 
594
- export declare class SettingGroup<T extends Record<string, Setting<any, any> | SettingGroup<any>>> implements IDrawable, IChangable<T> {
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>> {
595
586
  title: string;
596
- settings: T;
597
- description?: string;
598
- icon?: string;
587
+ settings: TSettings;
599
588
  id: string;
600
- onChange?: ((value: T) => void) | undefined;
601
- onBlur?: () => void;
589
+ onChange?: SettingChangeCallback<ExtractSettingValues<TSettings>> | undefined;
590
+ onBlur?: SettingBlurCallback;
602
591
  private isCollapsed;
603
592
  private isMain;
604
593
  private includeGetJson;
605
594
  private elementRef;
606
- private hideCondition?;
607
595
  private static hiddenElements;
608
596
  private isHidden;
609
597
  private custom;
610
- initialValues: Record<string, any>;
598
+ initialValues: ExtractSettingValues<TSettings>;
611
599
  private changeTimeout;
612
600
  private isHandlingChange;
613
601
  private changeHandlers;
@@ -617,67 +605,64 @@ export declare class SettingGroup<T extends Record<string, Setting<any, any> | S
617
605
  private pendingBlurHandler;
618
606
  private originalDefaultValues;
619
607
  private nestingLevel;
620
- private parentNestingLevel;
621
608
  private addItemCfg?;
622
609
  private deleteItemCfg?;
623
- constructor(groupProps: SettingGroupProps<T>);
610
+ constructor(groupProps: SettingGroupProps<TSettings>);
624
611
  private propagateNestingLevel;
625
612
  getNestingLevel(): number;
626
613
  setNestingLevel(level: number): void;
627
614
  private updateNestingStyles;
628
- static hide(): void;
629
- static show(): void;
630
- setOnChange(onChange: (value: T) => void): SettingGroup<T>;
631
- setOnBlur(onBlur: () => void): SettingGroup<T>;
632
- private setupBlurHandlers;
633
- cleanup(): void;
634
- clone(): SettingGroupWithSettings<T>;
635
- setValue(values: Record<string, any>): void;
636
- /** Force UI refresh for all child settings */
637
615
  private forceChildUIRefresh;
638
- /** Attach change/blur bubbling for a newly added child */
639
- private wireChild;
640
- addSetting(key: string, setting: Setting<any, any> | SettingGroup<any>): void;
641
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;
642
628
  private addDeleteButtonToElement;
643
629
  private showDeleteConfirmation;
644
630
  private getNextIndexFromPrefix;
645
- calculateChanges(oldValues: Record<string, any>, newValues: Record<string, any>): Record<string, any>;
646
- hide(): void;
647
- show(): void;
648
- getValues<K extends keyof T>(childKey?: K): any;
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;
649
637
  private getValuesForJson;
650
- getDefaultValues<K extends keyof T>(childKey?: K): any;
651
- getMobileValues<K extends keyof T>(childKey?: K): any;
652
- setMobileValues(values: Record<string, any>): void;
653
- resetDefault(): void;
638
+ getDefaultValues(): ExtractSettingValues<TSettings>;
639
+ getDefaultValues<K extends keyof TSettings>(childKey: K): unknown;
654
640
  draw(): HTMLElement;
655
641
  collapse(): void;
656
642
  expand(): void;
657
- updateVisibility(): void;
658
- toggle(): void;
659
643
  getJson(): string;
660
644
  setJson(jsonString: string): void;
661
645
  }
662
646
 
663
- export declare type SettingGroupProps<T> = {
664
- title: string;
665
- settings: T;
647
+ export declare type SettingGroupInstance<TSettings extends SettingsMap = SettingsMap> = SettingGroup<TSettings>;
648
+
649
+ export declare type SettingGroupProps<TSettings extends SettingsMap> = {
666
650
  id?: string;
651
+ title: string;
652
+ settings: TSettings;
667
653
  collapsed?: boolean;
668
654
  main?: boolean;
669
- description?: string;
670
- icon?: string;
671
- hideCondition?: () => boolean;
672
- onBlur?: () => void;
673
655
  custom?: boolean;
674
- parentNestingLevel?: number;
675
656
  includeGetJson?: boolean;
676
- addItem?: AddItemConfig<T>;
677
- deleteItem?: DeleteItemConfig<T>;
657
+ addItem?: AddItemConfig<TSettings>;
658
+ deleteItem?: DeleteItemConfig;
678
659
  };
679
660
 
680
- export declare type SettingGroupWithSettings<T extends Record<string, Setting<any, any> | SettingGroup<any>>> = SettingGroup<T> & T;
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;
681
666
 
682
667
  export declare interface SettingProps<T> {
683
668
  default?: T;
@@ -690,11 +675,16 @@ export declare interface SettingProps<T> {
690
675
  includeGetJson?: boolean;
691
676
  }
692
677
 
693
- export declare type SettingsToProps<T> = T extends SettingGroup<infer S> ? {
694
- [K in keyof S]?: S[K] extends Setting<infer V, any> ? V : S[K] extends SettingGroup<any> ? ExtractSettingGroupValues<S[K]> : any;
695
- } : never;
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;
696
683
 
697
- export declare type SettingsToPropsOptional<T> = DeepPartial<SettingsToProps<T>>;
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;
698
688
 
699
689
  export declare class StringSetting extends Setting<string, StringSettingsProps> {
700
690
  inputType: InputTypes;
@@ -711,26 +701,11 @@ export declare interface StringSettingsProps extends SettingProps<string> {
711
701
  onChange?: (value: string) => void;
712
702
  }
713
703
 
714
- export declare type TabGroupProps<T> = {
715
- title: string;
716
- settings: T;
717
- id?: string;
718
- collapsed?: boolean;
719
- main?: boolean;
720
- description?: string;
721
- icon?: string;
722
- hideCondition?: () => boolean;
723
- onBlur?: () => void;
724
- custom?: boolean;
725
- parentNestingLevel?: number;
726
- includeGetJson?: boolean;
727
- };
728
-
729
- declare class TabSettingGroup<T extends TabSettingsGroupGenericType> extends SettingGroup<T> {
704
+ declare class TabSettingGroup<TSettings extends SettingsMap = SettingsMap> extends SettingGroup<TSettings> {
730
705
  private activeTabId;
731
706
  private tabsContainer?;
732
707
  private contentContainers?;
733
- constructor(groupProps: TabGroupProps<T>);
708
+ constructor(groupProps: SettingGroupProps<TSettings>);
734
709
  getActiveTabId(): string;
735
710
  switchToTab(tabId: string): void;
736
711
  private updateTabUI;
@@ -739,7 +714,7 @@ declare class TabSettingGroup<T extends TabSettingsGroupGenericType> extends Set
739
714
  export { TabSettingGroup }
740
715
  export { TabSettingGroup as TabsSettingGroup }
741
716
 
742
- export declare type TabSettingsGroupGenericType = Record<string, SettingGroup<any>>;
717
+ export declare type TabSettingsGroupGenericType = Record<string, SettingGroup<SettingsMap>>;
743
718
 
744
719
  export declare class Toggle extends Setting<string, ToggleSettingProps> {
745
720
  inputType: InputTypes;
@@ -792,7 +767,7 @@ export declare interface UploadSettingProps extends SettingProps<string> {
792
767
  requestMethod?: string;
793
768
  requestHeaders?: Record<string, string>;
794
769
  formFieldName?: string;
795
- parseResponse?: (responseData: any) => string;
770
+ parseResponse?: (responseData: unknown) => string;
796
771
  maxFileSizeMB?: number;
797
772
  }
798
773
 
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.223",
4
+ "version": "0.0.227",
5
5
  "type": "module",
6
6
  "main": "dist/builder-settings-types.cjs.js",
7
7
  "module": "dist/builder-settings-types.es.js",