@dmitryvim/form-builder 0.2.16 → 0.2.18
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/README.md +1 -0
- package/dist/browser/formbuilder.min.js +86 -58
- package/dist/browser/formbuilder.v0.2.18.min.js +386 -0
- package/dist/cjs/index.cjs +508 -24
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +499 -24
- package/dist/esm/index.js.map +1 -1
- package/dist/form-builder.js +86 -58
- package/dist/types/components/index.d.ts +2 -1
- package/dist/types/components/switcher.d.ts +13 -0
- package/dist/types/components/textarea.d.ts +2 -1
- package/dist/types/types/config.d.ts +1 -0
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/schema.d.ts +9 -1
- package/package.json +2 -2
- package/dist/browser/formbuilder.v0.2.16.min.js +0 -358
|
@@ -3,6 +3,7 @@ import { renderTextElement, renderMultipleTextElement } from "./text.js";
|
|
|
3
3
|
import { renderTextareaElement, renderMultipleTextareaElement } from "./textarea.js";
|
|
4
4
|
import { renderNumberElement, renderMultipleNumberElement } from "./number.js";
|
|
5
5
|
import { renderSelectElement, renderMultipleSelectElement } from "./select.js";
|
|
6
|
+
import { renderSwitcherElement, renderMultipleSwitcherElement } from "./switcher.js";
|
|
6
7
|
import { renderFileElement, renderFilesElement, renderMultipleFileElement } from "./file.js";
|
|
7
8
|
import { renderColourElement, renderMultipleColourElement } from "./colour.js";
|
|
8
9
|
import { renderSliderElement, renderMultipleSliderElement } from "./slider.js";
|
|
@@ -10,4 +11,4 @@ import { renderSingleContainerElement, renderMultipleContainerElement, setValida
|
|
|
10
11
|
import { renderGroupElement } from "./group.js";
|
|
11
12
|
export declare function renderElement(element: Element, ctx: RenderContext): HTMLElement;
|
|
12
13
|
export { setContainerValidateElement };
|
|
13
|
-
export { renderTextElement, renderMultipleTextElement, renderTextareaElement, renderMultipleTextareaElement, renderNumberElement, renderMultipleNumberElement, renderSelectElement, renderMultipleSelectElement, renderFileElement, renderFilesElement, renderMultipleFileElement, renderColourElement, renderMultipleColourElement, renderSliderElement, renderMultipleSliderElement, renderSingleContainerElement, renderMultipleContainerElement, renderGroupElement, };
|
|
14
|
+
export { renderTextElement, renderMultipleTextElement, renderTextareaElement, renderMultipleTextareaElement, renderNumberElement, renderMultipleNumberElement, renderSelectElement, renderMultipleSelectElement, renderSwitcherElement, renderMultipleSwitcherElement, renderFileElement, renderFilesElement, renderMultipleFileElement, renderColourElement, renderMultipleColourElement, renderSliderElement, renderMultipleSliderElement, renderSingleContainerElement, renderMultipleContainerElement, renderGroupElement, };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SwitcherElement, RenderContext, ComponentContext, ValidationResult, Element } from "../types/index.js";
|
|
2
|
+
export declare function renderSwitcherElement(element: SwitcherElement, ctx: RenderContext, wrapper: HTMLElement, pathKey: string): void;
|
|
3
|
+
export declare function renderMultipleSwitcherElement(element: SwitcherElement, ctx: RenderContext, wrapper: HTMLElement, pathKey: string): void;
|
|
4
|
+
/**
|
|
5
|
+
* Validate switcher field and return extracted value with errors.
|
|
6
|
+
* Mirrors select validation logic — reads from hidden <input> elements.
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateSwitcherElement(element: Element, key: string, context: ComponentContext): ValidationResult;
|
|
9
|
+
/**
|
|
10
|
+
* Update switcher field value in the DOM without re-render.
|
|
11
|
+
* Updates the hidden input value and refreshes button visual states.
|
|
12
|
+
*/
|
|
13
|
+
export declare function updateSwitcherField(element: Element, fieldPath: string, value: any, context: ComponentContext): void;
|
|
@@ -6,6 +6,7 @@ export declare function renderMultipleTextareaElement(element: TextareaElement,
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function validateTextareaElement(element: TextareaElement, key: string, context: ComponentContext): ValidationResult;
|
|
8
8
|
/**
|
|
9
|
-
* Update textarea field - delegates to text updater since they share update logic
|
|
9
|
+
* Update textarea field - delegates to text updater since they share update logic,
|
|
10
|
+
* then triggers resize on autoExpand textareas.
|
|
10
11
|
*/
|
|
11
12
|
export declare function updateTextareaField(element: TextareaElement, fieldPath: string, value: any, context: ComponentContext): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { SelectOption, ElementAction, EnableCondition, BaseElement, TextElement, TextareaElement, NumberElement, SelectElement, FileElement, FilesElement, ColourElement, SliderElement, ContainerElement, GroupElement, Element, Schema, ExternalAction, FormData, RenderContext, } from "./schema.js";
|
|
1
|
+
export type { SelectOption, ElementAction, EnableCondition, BaseElement, TextElement, TextareaElement, NumberElement, SelectElement, SwitcherElement, FileElement, FilesElement, ColourElement, SliderElement, ContainerElement, GroupElement, Element, Schema, ExternalAction, FormData, RenderContext, } from "./schema.js";
|
|
2
2
|
export type { Translations, Locale, Config, ResourceMetadata, } from "./config.js";
|
|
3
3
|
export type { State } from "./state.js";
|
|
4
4
|
export type { ComponentContext, ValidationResult, ComponentValidator, ComponentUpdater, ComponentOperations, } from "./component-operations.js";
|
|
@@ -54,6 +54,7 @@ export interface TextareaElement extends BaseElement {
|
|
|
54
54
|
multiple?: boolean;
|
|
55
55
|
minCount?: number;
|
|
56
56
|
maxCount?: number;
|
|
57
|
+
autoExpand?: boolean;
|
|
57
58
|
}
|
|
58
59
|
export interface NumberElement extends BaseElement {
|
|
59
60
|
type: "number";
|
|
@@ -119,6 +120,13 @@ export interface SliderElement extends BaseElement {
|
|
|
119
120
|
minCount?: number;
|
|
120
121
|
maxCount?: number;
|
|
121
122
|
}
|
|
123
|
+
export interface SwitcherElement extends BaseElement {
|
|
124
|
+
type: "switcher";
|
|
125
|
+
options: SelectOption[];
|
|
126
|
+
multiple?: boolean;
|
|
127
|
+
minCount?: number;
|
|
128
|
+
maxCount?: number;
|
|
129
|
+
}
|
|
122
130
|
export interface GroupElement extends BaseElement {
|
|
123
131
|
type: "group";
|
|
124
132
|
elements: Element[];
|
|
@@ -127,7 +135,7 @@ export interface GroupElement extends BaseElement {
|
|
|
127
135
|
max?: number;
|
|
128
136
|
};
|
|
129
137
|
}
|
|
130
|
-
export type Element = TextElement | TextareaElement | NumberElement | SelectElement | FileElement | FilesElement | ColourElement | SliderElement | ContainerElement | GroupElement;
|
|
138
|
+
export type Element = TextElement | TextareaElement | NumberElement | SelectElement | SwitcherElement | FileElement | FilesElement | ColourElement | SliderElement | ContainerElement | GroupElement;
|
|
131
139
|
export interface Schema {
|
|
132
140
|
version?: string;
|
|
133
141
|
elements: Element[];
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.2.
|
|
6
|
+
"version": "0.2.18",
|
|
7
7
|
"description": "A reusable JSON schema form builder library",
|
|
8
8
|
"main": "./dist/cjs/index.cjs",
|
|
9
9
|
"module": "./dist/esm/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"build:demo": "rm -rf dist/demo && mkdir -p dist/demo && cp -R public/. dist/demo && cp dist/browser/formbuilder.min.js dist/demo/form-builder.js",
|
|
32
32
|
"build:artifacts": "npm run clean && npm run build:lib && npm run build:types && npm run build:browser",
|
|
33
33
|
"build": "npm run build:artifacts && npm run build:demo",
|
|
34
|
-
"dev": "npm run build && serve dist/demo
|
|
34
|
+
"dev": "npm run build && serve dist/demo",
|
|
35
35
|
"pretest": "npm run build",
|
|
36
36
|
"test": "jest",
|
|
37
37
|
"format": "prettier --write .",
|